3、贪心算法的原理与设计

贪心算法的原理与设计

    贪心算法的设计步骤

          1、将最优化问题转化为这样的形式:对其做出一次选择后,只剩下一个子问题要求解。

                    这个问题可以引用前面得到的活动选择问题进行说明 ,如在活动选择问题中,设Aij 代表的是活动ai​ 
                    结束后开始,且在aj结束之前进的一个子问题,于是
                                    Aij=Aik+ak+Akj
                     于我们将区间【i,j】活动的安排就变成了两个子区间【i,k】和【k,j】的优化问题,这问题进行了变化。
                    但是如果我们如果采用贪心策略,先对活动的结束时间进行排序,也就是每次都优先选择结束时间早
                    的问题,这样,我们就将问题解化了,首先,我们不需要用区间来表示了,我们只要选择活动就行了
                    ,其次,我们只有一种选择了,只剩下一个子问题需要我们进行求解,也就是在剩下的活动中,再
                    次选择结束时间最早且起始时间又符合我们要求的子问题。这样选择便只有一个了。

            2、证明贪心选择后,问题总是存在最优解,即贪心总是安全的。

            3、证明贪心选择后,剩余子问题满足性质:其最优子解与贪心选择组合后便得了原问题的最优解。           

            贪心算法可能依览之前做出的选择,如活动安排问题,但是与后面做的选择无关,也就是不依缆
            之后的选择。 




原文地址:https://www.cnblogs.com/yml435/p/4655576.html