Machine learning 遗传算法——加权图中的最短路径

Machine learning 遗传算法——加权图中的最短路径,machine-learning,artificial-intelligence,genetic-algorithm,Machine Learning,Artificial Intelligence,Genetic Algorithm,我想做一个遗传算法来解决加权连通图中的最短路径问题。类似于旅行推销员,但不是完全连通图,它只是连通的 我的想法是以二进制形式为每个染色体随机生成一条由n-1个节点组成的路径,其中数字表示路径中的节点。然后,我将根据权重总和(如果不能从A到B,我会给它惩罚)和其中的交叉/变异位来选择最佳值。行吗?这感觉有点像小版本的蛮力。有更好的办法吗 谢谢 遗传算法几乎是“bruteforce的小版本”。它只是一种元启发式,而不是一种具有良好收敛保证的优化方法。它基本上依赖于随机性来提供新的解决方案,因此它是一

我想做一个遗传算法来解决加权连通图中的最短路径问题。类似于旅行推销员,但不是完全连通图,它只是连通的

我的想法是以二进制形式为每个染色体随机生成一条由n-1个节点组成的路径,其中数字表示路径中的节点。然后,我将根据权重总和(如果不能从A到B,我会给它惩罚)和其中的交叉/变异位来选择最佳值。行吗?这感觉有点像小版本的蛮力。有更好的办法吗


谢谢

遗传算法几乎是“bruteforce的小版本”。它只是一种元启发式,而不是一种具有良好收敛保证的优化方法。它基本上依赖于随机性来提供新的解决方案,因此它是一个“稍微好一点的随机搜索”

那么“它会起作用吗”?是的,它会有所作为,只要你在变异中有足够的随机性,它甚至(最终)会收敛到最优。它会比随机搜索更好吗?很难说,这取决于几十个因素,不仅是你的编码,还有所有使用的超参数等。一般来说,遗传算法都是关于尝试和错误的。特别是不丢失任何信息的染色体(你的不丢失)并不重要,这意味着一切都取决于交叉和变异的巧妙实施(只要染色体不丢失任何信息,它们都是等价的)。

编辑

您可以使用置换编码GA。在置换编码中,您应该给出起点和终点。遗传算法用你的适应度函数搜索最佳染色体。候选解(染色体)类似于2-5-4-3-1或2-3-1-4-5或1-2-5-4-3等。因此,你的解取决于你的适应度函数。(请查看R的GA包,以便轻松应用置换GA。)

连接是问题的约束。我的最佳建议是创建如下约束矩阵:

FirstPoint SecondPoint Connected
A          B           true
A          C           true
A          E           false
...        ...         ...
在标准TSP中,只考虑距离。在你的适应度函数中,你必须考虑这个矩阵并添加一个惩罚来返回每个false的值。
Example chromosome: A-B-E-D-C
A-B: 1
B-E: 1
E-D: 4
D-C: 3

Fitness value: 9

因为约束是硬约束,所以可以使用最大整数值作为惩罚。GA将找到最佳解决方案。:)

差不多吧。ABEDC将是我需要找到的最短路径。
Example chromosome: A-E-B-C-D
A-E: penalty
E-B: 1
B-C: 6
C-D: 3

Fitness value: 10 + penalty value.