贪婪与动态

0 algorithm dynamic greedy

我有一些关于算法的一般性问题,当你遇到一些问题并想要编写一些算法时,你如何处理问题,你如何决定使用贪婪算法或动态编程?提前致谢

And*_*ite 5

总的来说,我试图将新问题转化为一个众所周知的问题,该问题具有众所周知的解决方案.然后选择正确的算法是微不足道的.根据我的经验,这涵盖了大多数情况.

如果第一步失败,我会尝试贪婪的方法并尝试证明它不起作用.证明部分可能很棘手,但基本上你必须证明在某个中间步骤中本地最佳选择不会产生总体最佳结果.从那里我分支出来,通常动态是我尝试的第一个选择之一.

如果所有其他方法都失败了,我会开始研究一种接近于手头问题的良好近似算法.许多问题可以"足够好"地解决,只需要花费一小部分时间和资源,使其成为明显的赢家.

  • "科尔门"一书是关于入门的书籍,但不适合轻松的人(http://www.amazon.com/Introduction-Algorithms-Second-Thomas-Cormen/dp/0262032937) (2认同)