gpt4 book ai didi

r - 如何将非优化参数传递给 GA 包中的适应度函数

转载 作者:行者123 更新时间:2023-12-01 13:31:03 27 4
gpt4 key购买 nike

我在 R 中使用 GA 包(使用遗传算法进行优化的 R 包)并且需要优化适应度函数 F(x1, x2, A_dataframe, b_const),其中
x1 - 优化变量,min=0,max=1。
x2 - 优化变量,min=2,max=3。
A_dataframe - 不是优化变量的数据帧,而是适应度函数计算所需的已知数据帧。
b_const - 一个常量变量,也不是用于优化,而是适应度函数计算所需的已知变量。
所以适应度函数=F。

我尝试使用下一个代码。

TotalFunction <- function(A_dataframe, b_const) {

F <- function(x1, x2, A_dataframe, b_const) {
#code of fitness function
}

GA <- ga(type="real-valued", fitness=function(x) F(x[1], x[2], A_dataframe, b_const),
A_dataframe, b_const, min=c(0, 2), max=(1, 3), popSize=50, maxiter=100)

return(GA)
}

你能帮我创建正确的 ga 函数吗?是否可以通过 ga 函数将已知数据帧传递给适应度函数?非常感谢。

最佳答案

我建议将您的健身功能移到 TotalFunction 之外。提高可读性并避免名称冲突/混淆。

F <- function( x1, x2, A_dataframe, b_const ) {
#code of fitness function
}

鉴于上述 F 的定义,您可以调用 ga预先指定值为 A_dataframe 的函数和 b_const如下:
## A <- ... define your data frame
## B <- ... define your constant
result <- ga(type="real-valued", fitness=function(x) F(x[1], x[2], A, b),
min=c(0, 2), max=(1, 3), popSize=50, maxiter=100)

这将正确利用您的健身功能 F使用参数的预定义值 A_dataframe , 和 b_const .使其动态依赖于 AB ,我们可以把它包装成一个函数:
ga_Ab <- function( A, b )
{
ga(type="real-valued", fitness=function(x) F(x[1], x[2], A, b),
min=c(0, 2), max=(1, 3), popSize=50, maxiter=100)
}

关于r - 如何将非优化参数传递给 GA 包中的适应度函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com