我只是无法弄清楚如何在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 = …都是指定“最低”和“最高”可能值的向量.