[0,1]。这是否意味着0是下界(lb),1是上界(ub)?这些值是否会干扰我在约束中设置的lb和ub值?lb和ub。如果我的lb是0,ub是5,这是否意味着我的最后一点值将在0和5之内?lb和ub在0和5之间,我是否一直将初始范围设置为[0,5],并且可以假设这是初始范围的最佳选项,并且不需要使用任何其他值?发布于 2012-11-28 14:36:12
遗传算法是一种基于种群的优化方法。因此,在任何给定的时间,都有大量的候选解决方案。
假设您试图解决一个最大的问题--一个简单的问题,目标是用L=8最大限度地利用长度为L的二进制字符串中的1位数,每个候选解决方案如下
00101101 ==> fitness = 4要用遗传算法解决这个问题,您需要随机创建这样的个体的种群。让N=10是人口的大小。然后,您可能会得到以下10个个体(位字符串后面的[]中的适应度值)。
11011001 [5]
00100110 [3]
11010110 [5]
10010110 [4]
01010110 [4]
11101100 [5]
01001001 [3]
11001011 [4]
10111101 [6]
01001010 [3]这是“最初的人口”。然后遗传算法将从这个种群中选择父母,繁殖它们,可能变异后代,并从后代中产生一个新的种群,可能还包括现有的亲本种群。然后迭代此过程,直到您决定停止该算法,通常是在目标函数的评估数最大或代数最多之后。
最佳健身指的是你目前人群中最好的个体的健康状况,或者你在跑步过程中发现的最好个体的健康状况。根据您使用的GA类型,这些可能是或不相同的东西。举个例子,我以上的例子中,最好的适合度是6。但是,如果我所创造的最好的后代有5岁,而且我不允许父母活到超过一代人,那么下一代的最佳体质可能是5或6,这取决于我们对“最佳健康”的理解。我不太熟悉MATLAB的GA工具箱,可以告诉你它的意思是哪一个,但我的猜测是,这是算法在任何时候都遇到的最适合的情况。
平均适应度只是整个人口的健身值的平均值。每一代,人口变化,你得到一个新的平均人口适应度。一般来说,你最感兴趣的是最好的健身,因为你只需要一个解决方案,你显然会选择最好的一个。但是,平均适应度对于向您展示算法正在做什么非常有用。如果平均适应度达到最佳适应度,则可能意味着种群包含最佳个体的N个副本,而进一步的搜索很可能是浪费精力,而不需要重新启动或大规模的突变操作。
所以你通常看到的是,随着时间的推移,最好的适应度往往会变得更好,一开始会很快,然后随着算法找到越来越好的解决方案而放慢速度,而这些解决方案越来越难改进。平均适应度总是不会比最佳适应度更好,而且通常会更差,两者之间的差异通常会随着时间的推移而减小,直到算法完全收敛为止(总体是一致的,包含同一个“最佳”个体的N个副本)。
我不能真正回答的ub,lb问题。我猜这是输入变量允许的范围,但是您需要查阅工具箱的文档,才能确定这些参数的含义。
https://softwareengineering.stackexchange.com/questions/177474
复制相似问题