我有幻灯片,其中比较了2个版本的本地搜索算法:贪婪和最陡。
贪婪: 生成解决方案 x ; 的重复 { 对于N( x )中的每个y 以随机顺序 { if f( y )> f( x )然后 x = y ; } } 直到找不到更好的解决方案
最速: 生成解决方案 x ; 的重复 { 在N( x )中找到最佳解决方案 y ; if f( y )> f( x )然后 x = y ; } 直到找不到更好的解决方案
但是在互联网上的每个地方我都读到贪婪的方法会搜索最好的(不是第一个更好找到的)解决方案。那么区别是什么呢?并且:哪个版本是真的?
答案 0 :(得分:3)
我同意贪婪也意味着最匆匆,因为它试图制造locally optimal choice。对我而言,不同之处在于最速下降/梯度下降的概念与函数优化密切相关,而贪婪常常在组合优化的背景下被听到。然而,两者都描述了相同的“策略”。
在我看来,这些概念不太适合描述您想要描述的行为。我更喜欢最佳改进和第一次改进本地搜索。贪婪的本地搜索和最陡的下降方法都是最好的改进本地搜索方法。
使用正则表达式,贪婪具有类似的含义:考虑与通配符表达式的最大可能匹配。说贪婪匹配与第一种可能性相匹配也是错误的。