遗传算法的自定义交叉/变异参数问题

10视图(30天)
你好,
我定制的交叉和变异函数的实现MATLAB的内置遗传算法(ga)。我能够让他们的工作,但是我有一些有关的参数被传递的问题。请注意,我也喂的初始种群产生之前我的代码调用。
如何做到这一点的文档: //www.tianjin-qmedu.com/help/gads/genetic-algorithm-options.html f20829。 这是自定义的语法功能:
xoverKids = myfun(父母、选项、据nvar FitnessFcn,
未使用,thisPopulation)
mutationChildren = myfun(父母、选项、据nvar
FitnessFcn、州thisScore thisPopulation)
首先我应该注意到“未使用”的文件有一个错误的转换函数。R2017b至少,这个论点似乎是一个向量的人口的分数。
我想变异和交叉功能的行为依赖于大量的父母参与(交叉特别)。我还想日志 如何 一个新的更好的解决方案是(一个父精英吗?通过突变产生吗?等等)。我有地方的代码,但我遇到的一些特性输入自定义交叉/变异函数接收。
我的理解是,每个索引thisScore应该对应于每个thisPopulation指数的得分。人口是由连接[eliteKids;xoverkids;在stepGA.m mutationkids]。因此populationSize = 100, eliteCount = 10, crossoverFraction = 0.5,我认为:
thisPopulation(1:10)精英,thisPopulation 11(55)交叉,thisPopulation(56:100)突变。同样thisScore。
当我查询成绩的运行,这就是我所看到的第一个16个元素(在这种情况下的精英数9):
1614386%我期望这是第一个精英得分
1615044
1615044
1615044
1615044
1615044
1615044
1616655
1616655%我希望这是最后一个精英的分数
1685827%我期望这是第一个交叉评分
1621767
1632825
1663424
1614386%这里有一个例子/更好的得分低于一些精英在错误的地方吗?
1618049
1616655
最后的评论显示交叉领域的得分比一些精英地区。这并不与我期望的输入应该如何工作。
谁能澄清这是如何工作或如果这是一个错误吗?
如果它很重要,我的电话ga是这样的:
[x, fval exitflag、输出人口,分数)= ga (fitnessFunctionGA,
据nvar, []、[] [], [], [],
[]、[][],选择);
我有设置选项来并行运行,使用我的自定义初始种群,用我的自定义交叉/变异函数。没有花哨的外面。

答案(1)

赫伯特三角龙
赫伯特三角龙 2021年8月13日
我认为关键是精英也可以定期的父母(嗯……),我不认为有一种东西“精英区”或“交叉区”。MATLAB文档中我什么也没找到,说这完全(虽然我没有花太多时间看),但从MATLAB文件表明它下面的报价: “因为精英个体已经评估, 遗传算法 不重新繁殖期间精英个体的适应度函数。” 这句话就没有目的如果精英相分离的父母。你怎么认为?

类别

找到更多的在遗传算法帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的