1、数学建模背包问题的解法程序多项式的时间算法数学建模实验报告关于“一维背包”,“多项式时间算法”,“矩阵对策”等问题的探讨 经济系数学与应用数学0901班 钱晓东 2011年5月4日 数学建模实验报告 我选做的是第一题和第六题,主要是关于01背包问题,多项式时间算法,矩阵对策的基本算法和线性规划方法求解矩阵问题,现将我的分析过程,计算方法以及运算结果报告如下:【真题再现】题目1:某人外出旅游,现有三个旅行包,容积大小分别为1000毫升、1500毫升和2000毫升,根据需要列出需带物品清单,其中一些物品是必带物品共有7件,其体积大小分别为400、300、150、250、450、760、190、(单
2、位毫升)。尚有10件可带可不带物品,如果不带将在目的地购买,通过网络查询可以得知其在目的地的价格(单位:元)。这些物品的容量及价格分别见下表,试给出一个合理的安排方案把物品放在三个旅行包里。提示:参阅运筹学中整数规划,0-1规划等知识,可运用matlab,lindo,lingo等软件或手工求解。题目提供者:王震老师(Email:williamwangz)题目6:1、线性规划的数学模型和算法发展史;2、什么是多项式时间算法;3、什么是P,NP,NPC问题;4、矩阵对策的基本算法;5、用线性规划方法求解矩阵;6、给出你完成每个问题的时间.提示:请查阅线性规划相关知识。题目提供者:刘仓翼老师(Ema
3、il:)【我的求解】题目一:(1)解读题意:题目涉及背包问题,提供3个容积分别是1000毫升、1500毫升、2000毫升的包,列出了7件必需带的物品体积分别为:400毫升、300毫升、150毫升、250毫升、450毫升、760毫升、190毫升。而7件必须带的物品恰好装满1000毫升和2000毫升的背包。即问题转换为:一个背包的额问题,其容积为2000毫升,要求在10件可带可不带的物品中做出合理的安排。(2)建立模型:设有容积为的背包,有个体积分别为(=1,2,),价格分别为的物品可以装入背包,问应该选择那几件物品装入背包,才能得到最大的价值?解:令设装入物品的总价值为,则上述背包问题的数学模型
4、为:分别将对应的数值代入上式,得: (3)求解结果:利用lingo软件求解,在lingo中输入如下程序:max 100x3+75x6+200x7+90x8+30x10st200x1+350x2+500x3+430x4+320x5+120x6+700x7+420x8+250x9+100x10O,那么根据循序渐进的计算步骤,显然可有A = O(O)+ O(O+2)+ O(O+4)+ + O(P)= O(P2)。 A = O(P2),完全能够满足在对任意一个奇数P的因数分解时,对于计算量的要求,所以这是一种多项式时间的算法。算法在时间上的复杂度,是这种算法是否有效的关键。即使是这种估算不很精准,究竟
5、应该是A O(P2),A = O(P2),还是A = O(P3)就不太重要了,有待于进一步去深入分析,因为毕竟目前还没有一种通用且有效的多项式时间算法存在。需要指出的是,在这种计算的时间复杂度上,我们完成的是对于所有小于P的奇数的因数分解。如果在此基础上,需要再对单个的新奇数P+2进行因数分解,计算量将下降一个等级,变成仅仅是O(P)。 目前可用于因数分解的复杂度最低的算法是量子算法,计算复杂度为O(P3)的量级,空间复杂度为O(P),但是它还不能被实际应用,常用主流算法的复杂度又只是次指数时间复杂度,而本文给出的算法却声称可以达到O(P2)的量级。结论:从经过计算机验证后得到的不同数值的运算
6、时间,以及两P值运行时间的比值看,该算法属于多项式的时间算法,复杂度为O(P2)。 3P,NP,NPC问题(1)P类问题的概念:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。(2)NP类问题的概念:NP问题不是非P类问题。NP问题是指可以在多项式的时间里验证一个解的问题。NP问题的另一个定义是,可以在多项式的时间里猜出一个解的 问题。(3) 约化具有一项重要的性质:约化具有传递性。如果问题A可约化为问题B,问题B可约化为问题C,则问题A一定可约化为问题C。一个问题约化为另一个问题,时间复杂度增加了,问题的应用范围也增大了。通过对某些问题的不断约化,我们能够不
7、断寻找复杂度 更高,但应用范围更广的算法来代替复杂度虽然低,但只能用于很小的一类问题的算法。回想前面讲的P和NP问题,联想起约化的传递性,自然地,我们会想问,如果不断地约化上去,不断找到能“通吃”若干小NP问题的一个稍复杂的大NP问题,那么最后是否有可能找到一个时间复杂度最高,并且能“通吃”所有的 NP问题的这样一个超级NP问题?答案居然是肯定的。也就是说,存在这样一个NP问题,所有的NP问题都可以约化成它。换句话说,只要解决了这个问题,那 么所有的NP问题都解决了。这种问题的存在难以置信,并且更加不可思议的是,这种问题不只一个,它有很多个,它是一类问题。这一类问题就是传说中的NPC 问题,也
8、就是NP-完全问题。4.矩阵对策的基本算法: (1) 22矩阵对策的线性方程组法 所谓22矩阵对策是指局中人的赢得矩阵为22阶的,即 如果此对策有纯策略意义下的解,则很容易求解;如果没有纯策略意义下的解,则为求出各局中人的最优混合策略可求解下列方程组: a11x1a21x2v a11y1a12y2v a12x1a22x2v a21y1a22y2v y1y21 x1x21 当没有纯策略意义下的解时,方程组一定有严格非负解,即为各局中人的最优混合策略。(2)线性规划法 当对策的值大于0时,可利用线性规划法求解矩阵对策。构造两个线性规划问题 min zxi i aijxi1 (j=1,2,n) i
9、xi0 (i=1,2,m) max wyj j aijyj1 (i=1,2,m) j yj0 (j=1,2,n) 不难验证,这两个线性规划问题互为对偶问题。当它们取得最优解时必然有相同的目标值。 设上述线性规划问题的解为x、y、z, 则矩阵对策的解为: 对策的值 VG=1/z 局中人的最优策略 x*=VG x 局中人的最优策略 y*=VGy 5.用线性规划方法求解矩阵;解:求解问题可化成两个互为对偶的线性规划问题(1) (2) 加入松弛变量和剩余变量变为标准型,得到新的约束条件,如下:(1) (2) 利用单纯形表的方法求解目标函数值最小(或最大)的线性规划问题。 把第i个约束方程移项,就可以用非基变量来表示基变量xi,其中: 上面假设x1,x2,xm是基变量,即第i行约束方程的基变量正好是xi,而经过迭代后,基将发生变化,计算zj的式子也会发生变化。如果迭代后的第i行约束方程中的基变量为xBi,与xBi相应的目标函数系数为cBi, 其中,(cB)是由第1列第m行各约束方程中的基变量相应的目标函数依次组成的有序行向量。即求得最优解为: 6.完成每个问题的时间:第1题:1小时;第2题:3小时;第3题:1天;第4题:1小时;第5题:3小时第6题:2分钟 2011年5月4日星期三