GA包的ga函数的实现

时间:2015-09-16 15:52:46

标签: r optimization genetic-algorithm traveling-salesman

我无法弄清楚如何在R中使用ga() GA包。

让我举一个例子说明我要做的事情。

我想获得最佳订单,向顾客展示比萨饼,以最大化销售所有这些比萨饼的机会。

让我们说,我有3个比萨饼,"pizza1", "pizza2", "pizz3"。对于每个订单(此问题可能有3个订单)我使用say fitness(order)函数计算一些适应度,该函数返回一些数值。

我想大规模地实现这一切。

有人可以帮我设置ga()函数的参数。

这是我正在尝试的

library(GA)

algo <- ga(type = "permutation", fitness = fitness, min= ?, max= ?, maxiter = ?)

有人可以帮我设置这个问题的min,max和maxiter以及popsize参数吗?这些问题对于我的外行人问题是什么意思?

1 个答案:

答案 0 :(得分:1)

文档并不是很好 - 除了type="real-valued"之外,没有其他任何示例。 AFAICT,这似乎有效:

library(GA)
f <-function(z) sum((z-c(3,2,1))^2)  # best order is 1, 2, 3
result <- ga(type="permutation", fitness=f, 
             min=c(1,1,1), max=c(3,3,3), names=paste0("pizza",1:3))
summary(result)$solution
#      pizza1 pizza2 pizza3
# [1,]      1      2      3

因此,这会创建一个适应度函数f(...),当比萨被命令1,2,3时,它会被最大化。此函数的参数必须是一个列表(或可强制列表:所以,一个向量),其中数字元素表示不同的选项。因此,例如,(1,2,3)或(3,2,1)等,min=...max=...都是指定&#34;最低&#34;并且&#34;最高&#34;可能的价值观