-
Notifications
You must be signed in to change notification settings - Fork 724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
奇怪的问题 #17
Comments
您好!pop_trace是算法模板中的进化记录器,quickstart中实现的是自定义的算法模板,里面的pop_trace相关记录的顺序恰好是和geatpy内置的sga_real_templet算法模板相反的。详见源码:https://github.com/geatpy-dev/geatpy/blob/master/geatpy/source-code/templets/sga_real_templet.py 您可以自由创建算法模板,来实现改进、创新的进化算法。无论是geatpy内置模板,还是demo中的自定义模板,都是提供了一些范例,它们也有局限性,也不是最优的、不是最符合各个人、各个项目的需求的。因此,十分赞同您能够结合自己的需要对算法模板作出修改。您可以直接把自定义的算法模板写在一个文件中,然后import这个文件就可以顺利调用了。 感谢您的反馈! |
我是一个使用者和收益者. 再次感谢, 不知第一个问题你们有没有碰到过, 也许我自己程序的问题 |
第一个问题这边无法复现,估测是因为执行脚本的问题,请提供能够运行的完整代码,或添加QQ1061655504,我来帮您看看。 |
我运行如下代码:
...
[pop_trace, var_trace, times] = ga.sga_real_templet(AIM_M, 'aimfuc',
None, None, FieldDR, problem = 'I', maxormin =1, MAXGEN = 64,
NIND = 32, SUBPOP = 1, GGAP = 0.85, selectStyle = 'sus',
recombinStyle = 'xovdp', recopt = 0.85, pm = 0.2, distribute =
True, drawing = 1)
print('目标函数最大值:',np.max(pop_trace[:, 1])) # 输出目标函数最大值
print("10 win:", heapq.nsmallest(10,pop_trace[:, 1]))
a=np.reshape(pop_trace[:,1], (-1,1))
b=pd.DataFrame(np.hstack((var_trace,a)))
b.to_csv('output/ipga_result.csv')
print(Top_10_lst)
np.save("top10_result.npy",Top_10_lst)
Top_10=pd.DataFrame(Top_10_lst)
Top_10.to_csv('output/top10_result.csv')
print("end!")
我是在aimfuc中加了一点
def aimfuc(Phen, LegV):
global Top_10_lst
...
fit_element=...
not_good=np.max(Top_10_lst[:,41])
not_good_row=np.argmax(Top_10_lst[:,41])
if fit_element<not_good:
Top_10_lst[not_good_row, 0:40]=Phen[i,0:40]
Top_10_lst[not_good_row, 41]=fit_element
The text was updated successfully, but these errors were encountered: