遗传算法:我的健身功能可以过于复杂吗?

时间:2017-10-26 11:11:11

标签: genetic-algorithm evolutionary-algorithm fitness

在遗传算法中,使健身功能不是数学计算是正确的吗?它有一个递归函数和一个循环吗?

我正在评估我是否可以使用遗传算法来完成我的论文,而我所考虑的这种健身功能可能会有点复杂。但也许不是,我只需要确保程序可以处理这样的功能而且它不会造成瓶颈,对吧?

基本理念:

FitnessFunction(){
    fitness = RecursiveFunction();
}

RecursiveFunction(){
    do{
        //Do something
    }while(other_condition);

    if(another_condition){
        return RecursiveFunction();
    }

    return fitness;
}

2 个答案:

答案 0 :(得分:2)

只要你的函数返回一个适应值(看起来确实如此),我就不会发现这个问题。实际上,遗传算法和进化计算一般非常适用于复杂适应度函数,这些函数在很多情况下是不可微分的,因此很难用于梯度下降等其他训练方法。

答案 1 :(得分:2)

这将是一个瓶颈,但这是预料之中的。评估函数通常占用大部分执行时间,因为遗传算子(交叉,变异)是相比较简单的操作。我已经看过GA的评估函数是模拟接收地震的房屋结构,所以你应该没问题。

然而,值得分离,测量时间并尝试尽可能优化功能。考虑到它将为数百或数千个人运行多代,并且您将重复整个过程,调整参数和GA实施。