不从定义等角度来考虑动态规划的含义,而只是从解决问题的思路上来说明如何将问题化繁为简。
问题特点
通过一个经典的动态规划来了解动态规划问题。
如下一个图,求出从起始点到终止点的最短路径:
初看起来,这个问题就是一个最短路径问题,使用迪杰斯特拉最短路径,或者弗洛伊德算法,甚至A*算法都可以完美求解。
但如果再仔细观察,就可以发现另一个特征,即阶段特征,上面的图的路径都是分为阶段的:
我们将路径剔除,但保留路径的连接关系,可以看出,原图可以分为4个阶段,相邻的阶段间有路径项链,阶段内部没有路径。
这也是动态规划的一般思路,即整体可以分为多个阶段,阶段与阶段间是相关的,通过阶段