【发布时间】:2019-11-27 23:39:00
【问题描述】:
所以我正在为 Python 中的旅行商问题开发一种遗传算法,目前使用 Tkinter 来显示我的结果。算法进展顺利,但我需要找出显示结果的一些问题。
基本上,我让它生成一组随机点并将它们显示在窗口中,然后当我让它运行解决方案时,它会创建以在单个集合中找到的最佳顺序连接所有点的线(或“代”)的订单。从那里,它应该可以选择生成下一代,这将清除所有当前线,使点可见,然后根据下一代的最佳解决方案绘制新线。但是,目前我无法确定在不清除点的情况下清除线条的最佳方法。
这是我用来生成线条的代码:
for i in range(0, numCities-1):
x1 = points[bestOrder[i]][0]
y1 = points[bestOrder[i]][1]
x2 = points[bestOrder[i+1]][0]
y2 = points[bestOrder[i+1]][1]
w.create_line(x1, y1, x2, y2)
在此示例中,“w”代表我的画布,“numCities”是在窗口中分配的值,用于确定要创建多少点。我打算将这些行的清除与按下按钮时将调用的函数联系起来。
对于实现我在这里尝试做的最佳方式的任何建议?即使它需要重组我如何让线路生成工作,我也愿意做任何事情。
【问题讨论】:
标签: python tkinter tkinter-canvas traveling-salesman