我正在尝试针对旅行商问题的遗传算法。我正在使用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个时,我无法对算法进行编码以指定如何生成人口。 (尽管健身功能应保持不变)。
能否请您帮我在这里生成多次迭代的种群。