遗传算法 - 适应度函数
简单定义的适应度函数是一个函数,它将问题的候选解决方案作为输入,并产生输出作为输出,该解决方案对于所考虑的问题有多“适合”我们的“好”程度。
适应度值的计算在遗传算法中重复进行,因此它应该足够快。适应度值计算缓慢会对 GA 产生不利影响,并使其异常缓慢。
在大多数情况下,适应度函数和目标函数相同,因为目标是最大化或最小化给定的目标函数。然而,对于具有多个目标和约束的更复杂的问题,算法设计者可能会选择不同的适应度函数。
适应度函数应具有以下特征 -
适应度函数的计算速度应该足够快。
它必须定量地衡量给定解决方案的适合程度或从给定解决方案中产生个体的适合程度。
在某些情况下,由于当前问题的固有复杂性,直接计算适应度函数可能是不可能的。在这种情况下,我们会进行适应度近似来满足我们的需求。
下图显示了 0/1 背包解的适应度计算。这是一个简单的适应度函数,它只是对正在挑选的物品(其中有 1)的利润值进行求和,从左到右扫描元素直到背包满。