贪心算法是一种更简单、更快速的设计技术,可用于某些最优解。用贪心法设计算法的特点是循序渐进。往往是根据当前的情况,根据一个优化措施做出最优选择,而不考虑各种可能的全局情况。它省去了详尽地找到最佳解决方案的需要。一切可能且必须花费大量时间,它采用自上而下、迭代的方式进行连续的贪心选择,并且每做出一次贪心选择,就将问题简化为一个更小的子问题,通过每一步的贪心选择可以得到问题的最优解。虽然保证每一步都能得到局部最优解,但得到的全局解有时不一定是最优的,所以贪心法不会回溯。
贪心算法
贪心算法是一种改进的层次处理方法。其核心是根据题意选择测量标准。然后将多个输入按度量要求的顺序排列,按该顺序一次一个数量。如果此输入和当前在此度量中构成的一些最佳解决方案不能产生可行的解决方案,则不会将输入添加到分解中。这种能在一定度量意义上得到最优解的层次化处理方法称为贪心算法。
对于一个给定的问题,通常可能有多个指标。乍一看,这些度量似乎是可取的,但实际上算法一直没有找到最优解原因,它们中的大多数通过贪心处理得到的度量意义上的最优解并不是问题的最优解,而是次优解。因此,选择能产生问题最优解的最优度量是使用贪心算法的核心。
一般来说,选择最优度量并不是一件容易的事,但是对于某个问题可以选择最优度量之后算法一直没有找到最优解原因,使用贪心算法来解决它特别有效。最优解可以通过一系列局部最优选择来实现,即贪心选择。根据当前状态做出当前情况下的最优选择,即局部最优解选择,然后在做出这个选择后生成解。对应的子问题。每进行一次贪心选择,就将问题简化为一个更小的子问题,最终得到问题的整体最优解。