遗传算法与模拟退火 - 性能比较和用例

在bean搜索和遗传算法的模拟退火之间有什么相关差异 - 性能和用例? 我知道SA可以被认为是人口规模只有一个的GA,但我不知道两者之间的关键区别。 此外,我试图想到一个SA将胜过GA或GA将胜过SA的情况,只有一个简单的例子可以帮助我理解就足够了。     
已邀请:
由于他们受到不同领域的启发,因此很难对这两者进行比较。 遗传算法维护一组可能的解决方案,并在每个步骤中选择可能的解决方案对,将它们组合(交叉),并应用一些随机变化(变异)。该算法基于“适者生存”的思想,其中选择过程根据适合度标准进行(通常在优化问题中,它仅仅是使用当前解决方案评估的目标函数的值)。完成交叉是希望两个好的解决方案结合起来可能会提供更好的解决方案。 另一方面,模拟退火仅跟踪可能解决方案空间中的一个解决方案,并且在每次迭代时根据一些概率(随时间衰减)考虑是否移动到相邻解决方案或保持在当前解决方案中。这与启发式搜索(比如贪婪搜索)的不同之处在于它不会受到局部最优问题的影响,因为它可以从所有相邻解决方案都是当前最差解决方案的情况中解脱出来。     
我不是这些算法的专家,但我会尽力帮忙。 我认为两者之间最大的区别在于GA的交叉思想,因此任何更适合GA而不是SA的学习任务的例子都取决于交叉在这种情况下的含义以及如何实现。 交叉的想法是,你可以有意义地结合两个解决方案,以产生一个更好的解决方案。我认为只有问题的解决方案以某种方式构建才有意义。我可以想象,例如,在多类分类中采用两个(或许多)分类器,这些分类器擅长对特定类进行分类,并通过投票将它们组合以制作更好的分类器。另一个例子可能是遗传编程,其中解决方案可以表示为树,但我发现很难找到一个很好的例子,你可以组合两个程序来创建一个更好的。 我认为很难为一个人提出一个引人注目的案例,因为他们确实是非常相似的算法,也许是从非常不同的起点开发的。     

要回复问题请先登录注册