贪婪算法通常用于求解什么问题
贪婪法通常用来解决具有最大值或最小值的优化问题。
它就登山一样,一步步向前推进,从某一个初始状态出发,根据当前局部的(而不是全局的)最优策略,以满足约束方程为条件,以使得目标函数的值增加最快(最慢)为准则,选择一个能够最快地到达要求的要求的输入元素,以便尽快地构成问题的可行解。
有穷性:算法的有穷性是指算法必须能在执行有限个步骤之后终止;确切性:算法的每一步骤必须有确切的定义;输入项:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。
扩展资料:
对于一个给定的问题,往往可能有好几种量度标准。初看起来,这些量度标准似乎都是可取的,但实际上,用其中的大多数量度标准作贪婪处理所得到该量度意义下的最优解并不是问题的最优解,而是次优解。因此,选择能产生问题最优解的最优量度标准是使用贪婪算法的核心。
一般情况下,要选出最优量度标准并不是一件容易的事,但对某问题能选择出最优量度标准后,用贪婪算法求解则特别有效。
若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。 而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。