使用动态编程或贪婪方法解决问题的方法?

Eri*_*ric 4 algorithm analysis dynamic greedy

该问题应该具有哪些属性,以便我可以决定使用动态编程或贪婪方法的方法?

dan*_*ben 8

动态编程问题表现出最佳的子结构.这意味着问题的解决方案可以表示为严重较小的子问题的解决方案的函数.

这种问题的一个例子是矩阵链乘法.

只有当局部最优选择导致完全最优解时,才能使用贪心算法.这可能很难立即看到,但通常更容易实现,因为您只需要考虑一件事(贪婪的选择)而不是多个(所有较小的子问题的解决方案).

一种着名的贪婪算法是Kruskal用于查找最小生成树的算法.