
动态规划
SL_World
中国科学院大学计算机应用技术专业在读研究生
展开
-
动态规划-3.1.3矩阵连乘问题之备忘录方法(自顶向下)
备忘录方法为每个子问题建立一个记录项,初始化时,该记录项存入一个特殊值,表示该子问题尚未解决。在求解过程中,对每个待求子问题,首先查看其相应的记录项。有变化则不算,无则算。 代码如下:public class test3_1_3 { static int[] p = {30,35,15,5,10,20,25}; static int n = p.length; static原创 2017-11-26 21:58:59 · 1472 阅读 · 0 评论 -
动态规划-3.9 0-1背包问题
问题描述:给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 0-1背包问题是一个特殊的整数规划问题。0-1背包问题的目标函数和约束条件如下: 其最优值为m(i,j),即m(i,j)是背包容量为j,可选择物品为i,i+1,…,n时0-1背包问题的最优值。由0-1背包问题的最优子结构性质,可以建立计算m(i,j)原创 2017-11-08 21:58:37 · 828 阅读 · 0 评论 -
动态规划-3.8流水作业调度
问题描述: n个作业{1,2,…,n}要在由2台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi。 流水作业调度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。 分析: 直观上,一个最优调度应使机器M1没原创 2017-11-07 15:14:52 · 3216 阅读 · 0 评论 -
【动态规划】二维背包问题之0 1背包(二维 0-1背包)
原文出处:http://www.54fox.com/2011/12/dynamicprogram-01-knapsack/动态规划是个十分有趣而且重要的算法,据说这个算法的发明者当初是在为美国国防部做的一个项目中发明了这个算法,为了让别人不知道他在做什么随便起了一个名字叫做动态规划(dynamic programming),因此你永远不要试图从它的名字中理解它的思想。动态规划的基本思想与分治法类似转载 2018-01-02 00:56:55 · 7233 阅读 · 0 评论 -
动态规划-3.1.2矩阵连乘问题之迭代法(自底向上)
问题描述:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少 问题分析:由于矩阵乘法满足结合律,所以计算矩阵的连乘可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。 若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依此次序反复调用2个矩阵相乘原创 2018-01-09 23:22:47 · 2805 阅读 · 4 评论 -
3.1.1矩阵连乘问题之穷举法
public class test3_1_1 { public static void matrixMultiply(int[][] a,int[][] b,int[][] c,int ra,int ca,int rb,int cb){ if(ca!=rb){ //若矩阵A的列数≠矩阵B的行数,则无法相乘 System.err.println("矩原创 2017-11-26 00:55:24 · 2101 阅读 · 1 评论