为什么贪婪和随机的混合通常是随机本地搜索的“最佳”?

人工智能 优化 搜索 解决问题 本地搜索
2021-10-31 12:14:54

我读到“贪婪”和“随机”的混合是随机本地搜索(SLS)的理想选择,但我不知道为什么。它提到贪婪找到局部最小值,随机性避免被最小值困住。什么是最小值,你怎么能被困?另外,随机性如何避免这种情况?似乎如果它真的是随机的,总有可能最终搜索导致多次死胡同的解决方案(这似乎是对处理的浪费并且可以避免)?

2个回答

作为局部/全球最小值的示例,想象一下在崎岖多山的景观中,您想找到某个区域内的最低点。对于贪婪的搜索,你采取的每一步都会让你走下坡路。如果你下坡的时间足够长,你最终会找到一个平坦的地方,这是最低限度的——从这里开始,你无法采取任何步骤来让你走下坡路。然而,附近有一个山脊,如果你越过它,你可以继续下坡找到一个更低的点,即全球最低点(真正的最低点)。使用你的贪婪方法,你永远不会上山越过山脊,所以你将永远被困在局部最小值中。如果您偶尔采取随机步骤(直接下坡除外),您有机会穿过分隔局部最小值的山脊,并且您有更好的机会找到全局最小值。你是对的,在很多情况下,随机的步骤不会帮助你越过山脊,只会把你带到错误的方向上山,这是浪费时间。但是除非我们允许算法“探索”一点,否则它会满足于它找到的第一个最小值是最好的,并且永远不会到达底部。

贪心动作是在当前或不久的将来最大化某个数量的动作。随机动作是随机动作可以是贪婪动作或任何其他可能的动作)。

例如,假设你饿了。您可以选择吃比萨、沙拉、水果或鱼。比萨是你最喜欢的食物。另一方面,你不喜欢太多的沙拉、水果和鱼,但你知道它们比披萨更健康。如果你选择吃披萨,那么这是一个贪婪的动作。如果你选择披萨,你会最大化多少?你现在的幸福。如果您随机选择其中一个(比萨、沙拉、水果或鱼),那么这是一个随机(或随机)动作。随机动作也可能恰好是比萨,但在第二天,它可能不是比萨,而且通常不会总是比萨。

假设你总是选择披萨。会发生什么?从长远来看,你会变胖,你的健康会恶化。但是,每次您选择披萨时,您都会在那一刻变得更快乐(局部最大值)。如果你每次想吃的时候随机选择食物,那么你更有可能同时吃沙拉、水果和鱼。从长远来看,这可能对您的健康更有益,因此这可以避免您陷入局部最大值(在您吃饭的那一刻感到快乐,但由于可能的健康问题而在以后的生活中不快乐)。

在人工智能的背景下,这些想法是相同的。有几种算法使用随机动作以避免陷入局部极值。例如模拟退火蚁群优化算法-学习(使用ε-贪婪)或遗传算法局部搜索(或贪心)算法的一个示例是2-opt(针对 TSP 问题)。