推荐回答
functionf=fitnessfcnxifx+y+m+n=1%写入那些约束条件ff=f;%f函数elseff=inf。
符翩翩2019-11-05 22:19:20
提示您:回答为网友贡献,仅供参考。
其他回答
-
1、一般有两种方法,一种是在生成初始种群时只生成满足约束的个体;另一种是随机产生个体,并且在随后的操作中判断个体是否满足约束条件。2、这是遗传算法的特点决定的;遗传算法是一种随机搜索算法,每次都因种群规模的不同、参数的不同而得到不同的结果。即便参数都相同,每次运算得到的近似最优解也不一定相同。一般取n次运算中的最好结果来作为最终的最优解。当然,如果你的约束条件设置不妥,或者参数设置不适当,那么也会造成每次运算的近似最优解相差过大,且质量不高。这些都要注意。3、我用MATLAB自己编写遗传算法来解决问题,因为其自带的工具箱比较固定,只能解决简单、典型的问题。但你的问题稍加复杂时,工具箱的作用就发挥不出来。
齐晓宁2019-11-05 22:05:17
-
原理大概是,设置一个初始种群,种群里的个体就是平滑因子,经过遗传算法的选择、交叉、变异后,逐渐找到一个最佳的spread,即为最终结果。附件是一个GA-BP算法的程序,虽然不同,但是原理是相近的,可以参考。遗传算法的基本运算过程如下:a初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P0。b个体评价:计算群体Pt中各个个体的适应度。c选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。d交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。e变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体Pt经过选择、交叉、变异运算之后得到下一代群体Pt+1。f终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
米增春2019-11-05 22:02:08