用纯Python解决旅行推销员问题的简单库。
python-tsp的Python项目详细描述
python-tsp是一个用纯Python编写的库,用于解决典型的旅行问题 销售人员问题(TSP)。在
安装
pip install python-tsp
示例
将距离矩阵作为一个数阵,很容易计算出哈密顿量 成本最低的路径。例如,要使用动态规划方法:
^{pr2}$解决方案是[0, 1, 3, 2],总距离为17。注意到了 始终是一条闭合路径,因此在节点2之后,我们返回到0。在
用元启发式方法解决同样的问题:
frompython_tsp.heuristicsimportsolve_tsp_simulated_annealingpermutation,distance=solve_tsp_simulated_annealing(distance_matrix)
请记住,作为元启发式,解决方案可能会因执行而有所不同 执行,并没有最佳的保证。但是,它可能是 在更大的情况下更快的选择。在
如果您使用的是开放TSP版本(不需要返回到 原点),只需将距离矩阵第一列的所有元素设置为 零:
distance_matrix[:,0]=0permutation,distance=solve_tsp_dynamic_programming(distance_matrix)
在这个例子中,我们得到距离为12的[0, 2, 3, 1]。在
前面的例子假设你已经有了一个距离矩阵。如果不是的话 在这种情况下,distances模块准备了一些函数来计算 欧几里得距离矩阵或 Great Circle Distance。在
例如,如果您有一个数组,其中每一行都有纬度和经度 有一点
importnumpyasnpfrompython_tsp.distancesimportgreat_circle_distance_matrixsources=np.array([[40.73024833,-73.79440675],[41.47362495,-73.92783272],[41.26591,-73.21026228],[41.3249908,-73.507788]])distance_matrix=great_circle_distance_matrix(sources)
参见project’s repository 更多示例和可用方法列表。在
- 项目
标签: