之前对动态规划问题有了一个初步的了解,举的是一个经典的背包问题的例子,但是分析的不够透彻,这里再对它做进一步的说明。
一:动态规划问题的每一步都是最优解,因此OPT(i,w)是一个单调非减函数,当然有些问题是单调非增函数,总之是一种单调函数!
二:动态规划问题把大的问题分成了一系列互不相关的子问题来解决,因此以后用这个算法的时候要考虑 目标问题是否可以划分成独立的子问题。
三:OPT(i,w) 这个目标函数存在了两个变量i和w,因此动态问题不限定自变量的个数,只要能够构造相应的N维空间就可以解决问题:
四: 在这个例子中时间复杂度为O(nw),这是对两个变量来说看似是一个多项式时间,但是我们所说的运行时间对应的输入只有一个,本问题可以用nw个常数时间代表时间复杂度,并且看起来是合理的,而之所以说她存在着多项式时间可以通过推导得出!
以上做了放缩后的结果,并把变量统一成一个I,得到的是一个近似解,这个近似解是指数分布,这也就解释了背包问题是一个伪多项式问题了!