geatpy icon indicating copy to clipboard operation
geatpy copied to clipboard

不能多次遍历循环调用吗?

Open cccccs opened this issue 3 years ago • 6 comments

写了一个循环多次调用,但第二次的时候就会卡住了,终止之后出现如下情况: File "/Users/bytedance/PycharmProjects/pythonProject/optimizeVar.py", line 46, in [population, obj_trace, var_trace] = myAlgorithm.run(prophetPop) # 执行算法模板,插入先知种群 File "/Users/bytedance/.local/lib/python3.5/site-packages/geatpy/templates/soeas/DE/DE_currentToBest_1_bin/soea_DE_currentToBest_1_bin_templet.py", line 65, in run return self.finishing(population) # 调用finishing完成后续工作并返回结果 File "/Users/bytedance/.local/lib/python3.5/site-packages/geatpy/Algorithm.py", line 319, in finishing ea.trcplot(self.obj_trace, [['种群个体平均目标函数值', '种群最优个体目标函数值']], xlabels = [['Number of Generation']], ylabels = [['Value']], gridFlags = [[False]]) File "core/trcplot.py", line 121, in trcplot.trcplot File "/opt/anaconda3/envs/python35/lib/python3.5/site-packages/matplotlib/pyplot.py", line 253, in show return _show(*args, **kw) File "/opt/anaconda3/envs/python35/lib/python3.5/site-packages/matplotlib/backend_bases.py", line 3266, in show cls.mainloop() File "/opt/anaconda3/envs/python35/lib/python3.5/site-packages/matplotlib/backends/_backend_tk.py", line 1037, in mainloop Tk.mainloop() File "/opt/anaconda3/envs/python35/lib/python3.5/tkinter/init.py", line 414, in mainloop _default_root.tk.mainloop(n)

cccccs avatar Sep 20 '20 06:09 cccccs

@cccccs 您好!这边测试了一下是可以循环多次调用的噢。如果遇到代码上的问题,可以联系工作客服QQ:1061655504寻求远程协助。

geatpy-dev avatar Sep 20 '20 06:09 geatpy-dev

image

geatpy-dev avatar Sep 20 '20 06:09 geatpy-dev

@cccccs 笑哭ing......这位仁兄你肯定是忘记了把弹出的图像框关掉,不关掉图像框它就会一直挂起。此时如果强制终止程序,就会出现你粘贴上来的错误提示。这个异常提示是matplotlib中弹出来的。

sc1101 avatar Sep 20 '20 07:09 sc1101

@cccccs 笑哭ing......这位仁兄你肯定是忘记了把弹出的图像框关掉,不关掉图像框它就会一直挂起。此时如果强制终止程序,就会出现你粘贴上来的错误提示。这个异常提示是matplotlib中弹出来的。 确实eemmmmm

cccccs avatar Sep 20 '20 07:09 cccccs

@cccccs 您好!这边测试了一下是可以循环多次调用的噢。如果遇到代码上的问题,可以联系工作客服QQ:1061655504寻求远程协助。

我能否把这个画图关掉。。 我循环很多次 就要一个个点。。

cccccs avatar Sep 20 '20 09:09 cccccs

@cccccs 在main.py里面设置myAlgorithm.drawing = 0。您可以去看一下那个moea_demo5案例,里面就调用了2次算法模板。

geatpy-dev avatar Sep 20 '20 09:09 geatpy-dev