遗传算法-旅行商-增加更多约束

时间:2018-11-27 14:06:15

标签: r genetic-algorithm traveling-salesman

我正在尝试针对旅行商问题的遗传算法。我正在使用Rpubs http://rpubs.com/somasdhavala/GAeg中提到的示例来理解相同的内容。

以上链接中的实现是一个经典的旅行推销员问题,您需要在最短的路径中访问N个节点。

但是我想在这里添加一个条件/约束,其中我有21个城市,但我只想访问21个城市中的10个城市,而我的旅行距离应该最短。

#GA function
GA.fit <- ga(type = "permutation", fitness = tpsFitness, distMatrix = D, min 
= 1,  max = attr(eurodist, "Size"), popSize = 10, maxiter = 500, run = 100, 
pmutation = 0.2, monitor = NULL)

#Fitness function
tourLength <- function(tour, distMatrix) {
tour <- c(tour, tour[1])
route <- embed(tour, 2)[, 2:1]
sum(distMatrix[route])
}
tpsFitness <- function(tour, ...) 1/tourLength(tour, ...)

作为置换的ga函数参数类型将生成不同的置换,以创建21个城市的人口。但是当我不得不说在21个城市中仅选择10个时,我无法对算法进行编码以指定如何生成人口。 (尽管健身功能应保持不变)。

能否请您帮我在这里生成多次迭代的种群。

0 个答案:

没有答案