GA包的ga功能实现

implementation of ga function of GA package

我只是不知道如何在 R 中使用 ga() 的 GA 包。

让我举例说明我正在尝试做的事情。

我想获得向客户展示比萨饼的最佳顺序,以最大限度地提高销售所有比萨饼的机会。

假设,我有 3 个比萨饼,"pizza1", "pizza2", "pizz3"。对于每个订单(这个问题可能有 3 个订单)我使用 fitness(order) 函数计算一些适应度,其中 returns 一些数值。

我想大规模实施这整件事。

谁能帮我设置 ga() 函数的参数。

这是我正在尝试的

library(GA)

algo <- ga(type = "permutation", fitness = fitness, 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=... 都是指定 "lowest" 和 "highest" 的向量可能的值。