我可以将这个问题命名为“具有互节点的多个旅行推销员问题”。我有一群来自城市不同地点的人。他们想计划参观特定的商店。我怎么解决这个问题?如何对问题建模以使用元启发式算法,例如 GA 或 ACO?
问问题
104 次
1 回答
1
我将假设问题如下;
每个人都可能想去大地图上的任何一组城市。
两个或更多人可以同时在同一个城市
两个或更多人可以同时使用相同的边缘。
对于遗传算法,每个染色体看起来像这样;
人 1 的路线| 人 2 的路线| 人 3 的路线..
一个示例生成可以是;
染色体1= 2,6,7,1|4,7,2|3,5,6
染色体2= 6,7,2,1|2,4,7|3,5,6
您将需要分别为每条路线应用交叉和变异操作。您可以使用 PMX(部分映射交叉)之类的交叉方法进行排列表示。您可以使用随机交换、插入、争夺突变等操作。
对于蚁群优化,每只蚂蚁都需要在每次迭代中为每个人构建解决方案。此外,应该为每个人的路线存储不同的信息素值。因为,即使他们有共同的位置(例如他们都有城市 2 和 3),这并不意味着这些城市之间的边缘应该具有相同的合意性(2 和 3 之间的边缘可能适合 person1 但它可以不适合person2)。
所以,我认为最好分别为每个人找到路线。因为每个人的路线的解决方案之间不可能有信息交换。
于 2017-06-29T16:02:03.350 回答