我正在尝试在最小化功能上使用健身/功能共享。我正在使用找到的共享函数here的标准定义,然后将适用度除以生态位数。这将降低适应度,与其利基中的个体数量成比例。然而,在我的情况下,适合度越低,个体越适合。如何使我的健身共享功能与其利基中的个体数量成比例地增加适应度?
以下是代码:
def evalTSPsharing(individual, radius, pop):
individualFitness = evalTSP(individual)[0]
nicheCount = 0
for ind in pop:
distance = abs(individualFitness - evalTSP(ind)[0])
if distance < radius:
nicheCount += (1-(distance/radius))
return (individualFitness/nicheCount,)
我找不到论文的非pdf,但这里是相关部分的图片。同样,这来自上面的链接。
答案 0 :(得分:0)
问题现在已经两年了,但是我试试看: 您可以尝试用乘法替换niche_count除法惩罚,即:
await Program.GetResultAsync(value)
而不是:
individualFitness * nicheCount