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