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" 的向量可能的值。
我只是不知道如何在 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" 的向量可能的值。