我希望在R中实现遗传算法,其中染色体由两个变量组成。 我遇到的问题是我希望一个变量取整数值而另一个变量浮动值。
R有两个遗传算法包:
1。)GA - 这允许我们只取染色体中变量的浮点值。 以下是实施代码“
GA <- ga(type = "real-valued", fitness = function(x) f(x[1],x[2]),
min = c(0,0), max =c(1,2),popsize = 2)
#f is some single objective function which takes 2 input parameters
2。)gramEvol - 这个包允许我们单独使用染色体中变量的整数值。
但我找不到任何允许染色体中的变量具有不同数据类型的包,例如我希望实现的一个整数和一个浮点数。
我不希望在R中从头开始编写整个遗传算法,因为它是多余的并且考虑到这些包非常有效。请帮忙。
提前致谢。
编辑(对第一条评论的回复): 从整数变量取浮点值(从GA)时的目标函数只是将它们四舍五入。你所说的正是我现在所做的。 但这会使搜索空间非常大,可以大大减少。
例如:2.4和2.5会导致函数的值相同,但GA实现会将它们视为两个不同的值,因此当我们考虑所有这些值时,搜索空间会相应地大得多。