最近我一直在研究一些贪心算法问题。我对局部最优感到困惑。如您所知,贪心算法由局部最优选择组成。但是结合局部最优决策并不一定意味着全局最优,对吧?
以找零为例:用最少的硬币来凑 15 美分,如果我们有 10 美分、5 美分和 1 美分的硬币,那么你可以用一个 10 美分和一个 5 美分来实现。但是如果我们添加一个 12¢ 的硬币,贪心算法就会失败,因为 (1×12¢ + 3×1¢) 使用的硬币比 (1×10¢ + 1×5¢) 多。
考虑一些经典的贪心算法,例如 Huffman、Dijkstra。在我看来,这些算法是成功的,因为它们没有退化的情况,这意味着局部最优步骤的组合总是等于全局最优。我理解对了吗?
如果我的理解是正确的,是否有检查贪心算法是否最优的通用方法?
我在网站的其他地方发现了一些关于贪心算法的讨论。但是,这个问题并没有涉及太多细节。