解决多旅行推销员问题的更好方法

2024-06-17 07:48:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在为我的课程学习数据结构和算法。我目前的项目是关于一个多旅行推销员问题,在这个问题上,我得到了一组x和y坐标(每个坐标代表一个要达成的订单)和n个推销员来完成所有的订单。每个推销员都必须回到同一个起点。我正在努力获得销售人员所有巡演的最小最大距离,并在合理的时间内运行代码

我使用了最便宜的插入方法,通过遍历所有订单并最小化销售人员的每个行程来构造每个行程。然后,我使用2选项局部搜索优化来优化每个路由。到目前为止,我已经研究了优化算法(LKH,模拟退火,蚁群系统),但是没有太多的准则来实现这些算法,所以我决定尝试不同的构造算法,因为Christofides给出了最佳近似值(1.5倍最优解)

我目前正在研究Christofides的算法,试图缩短距离,但我不确定对于一个多旅行推销员的问题,在划分数据方面,最好的方法是什么。有没有什么方法可以对数据进行分区,以获得更好的巡视构造或任何其他资源,我可以在Python中实现代码


Tags: 数据项目方法代码订单算法距离数据结构