在遗传算法中,使健身功能不是数学计算是正确的吗?它有一个递归函数和一个循环吗?
我正在评估我是否可以使用遗传算法来完成我的论文,而我所考虑的这种健身功能可能会有点复杂。但也许不是,我只需要确保程序可以处理这样的功能而且它不会造成瓶颈,对吧?。
基本理念:
FitnessFunction(){
fitness = RecursiveFunction();
}
RecursiveFunction(){
do{
//Do something
}while(other_condition);
if(another_condition){
return RecursiveFunction();
}
return fitness;
}
答案 0 :(得分:2)
只要你的函数返回一个适应值(看起来确实如此),我就不会发现这个问题。实际上,遗传算法和进化计算一般非常适用于复杂适应度函数,这些函数在很多情况下是不可微分的,因此很难用于梯度下降等其他训练方法。
答案 1 :(得分:2)
这将是一个瓶颈,但这是预料之中的。评估函数通常占用大部分执行时间,因为遗传算子(交叉,变异)是相比较简单的操作。我已经看过GA的评估函数是模拟接收地震的房屋结构,所以你应该没问题。
然而,值得分离,测量时间并尝试尽可能优化功能。考虑到它将为数百或数千个人运行多代,并且您将重复整个过程,调整参数和GA实施。