答案 0 :(得分:1)
搜索空间完全取决于您的问题。遗传算法的概念是修改个体群体的“基因组”以创建下一代,测量新一代的适应性并再次以一些随机性修改基因组是为了防止陷入局部极小值。然而,搜索空间完全取决于你在基因组中的含义,而这完全取决于问题所在。
可能有标准的搜索空间(即基因组)已被发现适用于特定问题(我没有听说过)但通常使用GA的最难的部分是定义基因组中的内容以及如何它被允许变异。实用性来自于您不必为模型显式声明不同变量的所有值,但您可以使用或多或少盲目搜索找到好的值(不一定是最好的值)。
示例强>
一个非常重要的例子是演进的无线电天线(Wikipedia)。目的是找到无线电天线的配置,使天线本身尽可能小巧轻便,限制必须响应某些频率并具有低噪声等等。
所以你要建立你的基因组指定
运行你的GA,看看另一端是什么,分析它为什么不起作用。由于模拟中的错误,GAs习惯于产生您没想到的结果。无论如何,你发现基因组可能必须为天线中的每根导线单独编码弯曲的数量,这意味着天线不会是对称的。所以你把它放在你的基因组中并再次运行它。模拟需要在物理世界中工作的东西通常是最昂贵的,因为在某些时候你必须测试现实世界中的个体。
有一个合理的遗传算法教程here,其中有一些关于基因组不同编码方案的有用例子。
最后一点,当人们说GA很简单且易于实现时,它们意味着围绕GA的框架(生成新的人口,评估适应性等)很简单。通常没有说的是,为真正的问题设置GA是非常困难的,并且通常需要大量的试验和错误,因为提出一种运行良好的编码方案对于复杂问题并不简单。开始的最佳方式是开始简单,随着时间的推移使事情变得更加复杂。你当然可以让另一个GA为第一个GA提供编码:)。
答案 1 :(得分:1)
有几个标准基准问题。