【算法定义】
动态规划是用于解决最优化问题的一种途径,方法,而不是一种特殊的算法。
【算法图示】
①背包问题
动态规划算法常运用于背包问题,假设你是一个商人,背着一个4磅的背包,你想装进的商品有如下三件,音响(3000元)重4磅,笔记本电脑(2000元)重3磅,吉他(1500元)重1磅,为了让背包里装的价值最高,该如何选择商品?如图所示,是通过动态规划计算出来的结果,各列列头表示1,2,3,4磅容量的背包。各行表示各个物品栏(第二行表示包含一二行,第三行表示包含一,二,三行)。最终结果为3500,也就是最后行最后列,因为我们计算的是4磅的背包。
下图示例,进行解析算法:
第三行为计算机行开始计算,1磅的时候,先第一步(图标1代表红线),先把笔记本电脑放进去(因为是笔记本电脑行,所以先放笔记本电脑),发现第一列放不进去(第一列的背包的容量为1磅),所以这一列的情况取第二步(图标2代表蓝线),作为本单元格