r – GA包的ga函数的实现

我只是无法弄清楚如何在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参数吗?这些问题对于我的外行人问题是什么意思?

最佳答案 文档并不好 – 除了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 = …都是指定“最低”和“最高”可能值的向量.

点赞