Han*_*del 6 artificial-intelligence machine-learning genetic-algorithm
我想知道人口规模是否有一般的经验法则.我读过一本书,认为2倍的染色体长度是一个很好的起点.我是否正确地假设如果我有一个包含5个变量的等式,我应该有10个人口?
我也想知道以下是否正确:
人口规模较大.
优点: 更大的多样性,因此更有可能获得恢复健康的特性.
缺点: 需要更长时间来处理.
VS
较小的人口规模.
优点: 每单位时间经历的代数较多.
缺点: 为了弥补较小的人口,突变必须更加突出?
编辑
一点额外的信息,说我有一个方程,其中有5个未知参数.对于每个参数,我有10-50个值之间的任何值,我想尝试分配给这些变量中的每一个.所以举个例子
variable1 = 20个不同的值variable2 = 15个不同的值......
我认为GA对于这样的问题是一个很好的方法,因为搜索空间非常大,即上面的最坏情况将是312,500,000个排列(除非我搞砸了?)n!/(nk)!其中n = 50且k = 1 => 50*50*50*50*50
不幸的是,要检查的参数/值范围的数量可能会有很大不同,所以我正在寻找一些关于我应该设置人口数量的经验法则.
感谢您的帮助+如果您需要/更喜欢在其中一个聊天室中讨论更多信息,请给我一个大喊.
我不确定你在哪里阅读2x染色体长度是一个很好的起点,但我猜它是一本专注于更大问题的书.
如果您只有五个变量,遗传算法可能不是融合解决方案的正确选择.如果染色体长度为5,您可能会发现很快就会发现非确定性(这将在后续运行中发生变化)局部最小值并在该空间周围慢慢迭代,直到找到真正的局部最小值.
但是,如果你坚持使用GA我会建议放弃这个问题的经验法则,并且真的考虑将人口作为衡量你预期随机解决方案的最终解决方案的距离的一个衡量标准.
许多拇指规则依赖于染色体长度的原因是因为这是一个很好的代理,如果我有一百个变量,并且给定随机生成的dna序列将比我只有一个变量更理想.
另外,如果你担心计算强度,我会继续说它不应该是一个问题,因为你正在处理这么小的解决方案集.对于像这样的小型套装,我认为更好的经验法则是:
(ln(chromosome_length*(solution_space/granularity)/mutation_rate))^2
Run Code Online (Sandbox Code Playgroud)
可能会持续不断地针对特定问题进行扩展.
这绝对不是一个很好的经验法则(没有规则),但这是我的逻辑:
但是我认为更好的选择是从一个合理的数字(100)开始并尝试上下迭代,直到找到一个看起来平衡准确性和执行速度的总体大小.
| 归档时间: |
|
| 查看次数: |
3263 次 |
| 最近记录: |