- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在模拟退火(使用bean搜索)和遗传算法之间,在性能和用例方面有哪些相关差异?
我知道SA可以看作是GA,人口总数只有一个,但是我不知道两者之间的主要区别。
另外,我正在尝试考虑SA胜过GA或GA胜过SA的情况。只需一个简单的示例即可帮助我理解就足够了。
最佳答案
严格来说,模拟退火(SA)和遗传算法这两件事既不是算法,也不是它们的目的“数据挖掘”。
两者都是元启发式方法-在抽象尺度上比“算法”高出几个级别。换句话说,两个术语均指高级隐喻-一个是从冶金学借来的,另一个是从进化生物学学借来的。在元启发式分类法中,SA是一种单状态方法,而GA是一种种群方法(与PSO,ACO等人同属一个子类,通常称为生物学启发式元启发式方法)。
这两种元启发式方法用于解决优化问题,尤其是(尽管不是排他性的)组合优化(又名约束满足编程)。组合优化是指通过从一组离散项中进行选择来进行优化-换句话说,没有连续函数可将其最小化。背包问题,旅行商问题,裁员问题都是组合优化问题。
与数据挖掘的联系在于,许多(最多?)受监督机器学习(ML)算法的核心是优化问题的解决方案(例如,多层感知器和支持向量机)。
任何解决上限问题的解决方案技术,无论使用哪种算法,都将基本上由以下步骤组成(通常将这些步骤编码为递归循环中的单个块):
编码特定于域的详细信息
在成本函数中(这是
逐步降低价值
从该函数返回
构成了C / O的“解决方案”
问题);
评估成本函数传递
在最初的“猜测”中(开始
迭代);
根据从
成本函数,生成后续
候选解决方案(或超过
一个,取决于
元启发式)
功能;
通过评估每个候选解决方案
将其传递到参数集中
成本函数;
重复步骤(iii)和(iv),直到
一些收敛准则是
满意或最大数量
达到迭代。
元启发式方法针对上述步骤(iii);因此,SA和GA在生成候选解决方案以通过成本函数进行评估的方式上有所不同。换句话说,这是了解这两种元启发式方法有何不同的地方。
非正式地,针对组合优化解决方案的算法的本质是它如何处理其候选函数的成本函数返回的值比当前最佳候选函数差(从成本函数返回最小值的候选函数)差。优化算法处理这种候选解决方案的最简单方法是完全拒绝它-这就是爬山算法的作用。但是通过这样做,简单的爬坡将总是错过一个更好的解决方案,而该解决方案与当前的解决方案被一个小山隔开。换句话说,一种复杂的优化算法必须包括一种技术,用于(暂时)接受比当前最佳解决方案差的(即从当前最佳解决方案上坡)的候选解决方案,因为比当前最佳解决方案更好的解决方案可能会沿着这种情况出现。解。
那么SA和GA如何生成候选解决方案?
SA的本质通常用接受更高成本的候选解决方案的可能性来表示(双括号内的整个表达式是指数:
p = e((-highCost - lowCost)/temperature)
p = pow(math.e, (-hiCost - loCost) / T)
关于artificial-intelligence - 模拟退火和遗传算法之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092774/
我有一个 d3 力布局图可视化效果很好,但它经常过早地“卡住”。例如,节点正朝着一个好的位置摇晃,如果“碰撞”它们(向它们的位置注入(inject)一点随机性并再次 start() ,它们最终会到达那
我是一名优秀的程序员,十分优秀!