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