贪心算法:局部最优到全局近似的智慧
贪心算法是一种通过每步选择局部最优解来寻求全局最优解的启发式算法。它不追求完美,而是在有限步骤内快速找到近似最优解,广泛应用于资源分配、路径规划等场景。本文通过经典案例解析其原理、特性及适用边界。
贪心算法的核心思想
核心原则
- 局部最优:每一步都选择当前状态下最优的选项(如价值最高、成本最低)。
- 无回溯:一旦做出选择,不再修改,直接进入下一步。
- 全局近似:通过累积局部最优解,最终得到接近全局最优的结果(未必是真正最优)。
与其他算法的区别
- 与动态规划:动态规划会保存中间结果并回溯调整,确保全局最优;贪心算法无回溯,效率更高但可能非最优。
- 与穷举法:穷举法遍历所有可能,结果最优但效率极低;贪心算法通过启发式选择减少计算量。
经典案例:背包问题中的贪心策略
问题描述
小偷的背包最大承重为 35 磅,可偷取的物品如下: