您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > 运筹学-大M法或两阶段法的上机实验
实验报告实验课程名称运筹学实验项目名称大M法或两阶段法的上机实验年级专业学生姓名学号00学院实验时间:年月日1姓名学号实验组实验时间指导教师成绩实验项目名称大M法或两阶段法的上机实验实验目的及要求:实验目的:1.学会用Tora软件或Lindo软件求解线性规划问题,2.理解每一步迭代计算中进基与出基变量等,了解大M法或两段法的上机实验。实验要求:完成作业P97页第6题及第7题(4)。实验(或算法)原理:1.大M法思路:在单纯形法的基础上,为了使解线性规划有一个统一的解法,我们把所有求目标函数最小值的问题化为求目标函数最大值的问题。只要把目标函数乘以-1,就可以把原来求目标函数最小值的问题化为求目标函数最大值问题。为了找到一个满足条件的单位向量(非负),就需要加人工变量,注意人工变量与松弛变量和剩余变量是不同的,松弛变量和人工变量可以取零值也可以取正值,而人工变量只可以取零值,否则就会不等价。我们规定人工变量在目标函数中的系数为-M,M为任意大的数,这样只要人工变量大于零,所求的目标函数就是一个任意小的数,为了使目标函数最大,就必须将人工变量从基变量中换出。如果一直到最后,人工变量仍不能从基变量中换出,也就是说人工变量仍不为零,则该问题无可行解。像这样,为了构造初始可行基得到初始可行解,把人工变量”强行”的加到原来的约束方程中去,又为了尽力地把人工变量从基变量中替换出来就令人工变量在求最大的目标函数里的系数为-M的方法叫做大M法,M叫做罚因子。22.两阶段法原理:两阶段法是处理人工变量的另一种方法,这种方法是将加入人工变量后的线性规划问题分两阶段求解。第一阶段:要判断原线性规划问题是否有基本可行解,保持线性规划问题的约束条件原线性规划问题一样,而目标是求人工变量的相反数之和的最大值,如果此值大于零,即说明不存在使所有人工变量都为零的可行解,即原问题无可行解,因停止计算。如果此值为零,即说明存在一个可行解使得所有的人工变量都为零。第二阶段:将第一阶段的最终单纯形表中的人工变量(都是非基变量)取消,将目标函数换为原来的目标函数,把此可行解作为初始解进行计算,接下来的计算和单纯形法计算原理是一样的。实验硬件及软件平台:PC机,Tora软件,Internet网。实验步骤:大M法步骤:1.打开TORA命令窗口;2.选择Linearprogramming-Selectinputmode-Gotoinputscreen;3.输入待解的方程组-〉Slolvemenu-Solveproblem-Algebraic-Iterations-〉M-method-〉输入值-〉点击GoToOutputFormatScreen-〉点击GoToOutputScreen-〉点击Alllterations。4.得出运行结果。5.改变3步骤中的值(例100改为100000),再按之后的步骤运行,得出结果。6.观察对比结果。两阶段法步骤:1)打开TORA命令窗口;2)选择Linearprogramming-Selectinputmode-Gotoinputscreen;3)输入待解的方程组-〉Slolvemenu-Solveproblem-Algebraic-Iterations-〉Two-phasemethod-〉点击GoToOutputFormatScreen-〉点击Alllterations;4)得出运行结果。3实验内容(包括实验具体内容、算法分析、源代码等等):1.书上P97页第6题:用大M法和两阶段法求解下列线性规划问题。maxz=5;3213xxx约束条件:102x4xx321,16.x2x-x321A:大M法图1.14图1.2由上面的结果可知,满足所求出的0j,得出目标函数的最优解x1=16,x2=0,x3=0,sx4=16,Rx5=0,sx=0,最优值是80。当把M的值改为100000后,值还是一样的,这样就可以得出当M为100时,已经得出有效解。5B:两阶段法6图1.3由图1.3可知,先进行线性规划的第一阶段,满足0j,且z值为零,即说明存在一个可行解使得所有的人工变量都为零,此时x2=2.5,sx6=21,其余为0得出z=0。接下来进行第二阶段,令z=5x1+x2+3x3-0sx4+0Rx5+0sx6,和大M的分析方法一样,最终将得到满足0j时达到最优解:当x1=16,x2=0,x3=0,sx4=6,Rx5=0,sx6=0,最优值为80。2.书上P97页第7题(4)大M法和两阶段法求解下列线性规划问题。maxz=;321xx2x约束条件:,42x2x4x321,204x2x21,162x8x4x321A:大M法7图2.1图2.2由上面的图2.1可知,首先先输入数据即线性规划的系数如图2.1所示令maxz=321xx2x-0sx4+0sx6+0sx7-MRx5;进行下一次迭代,以同样的方法一直下去,直到所求出的为止0j,就可以得出目标函数的最优解:x1=4,sx4=12,sx6=12,其余为0时,最优值为8。当把M的值改为100000后,值还是一样的,这样就可以得出当M为100时,已经得出有效解。8B:两阶段法图2.39由图2.3可知,先进行线性规划的第一阶段,z=0x1+0x2+0x3+0sx4-Rx5+0sx6,通过迭代,满足0j,且z值为零,即说明存在一个可行解使得所有的人工变量都为零,此时x1=1,sx6=18,sx7=12,其余为0,得出z=0。接下来进行第二阶段,令z=2x1+x2+1x3+0sx4+0Rx5+0sx6+0sx7,和大M的分析方法一样,最终将得到满足0j时达到最优解:当x1=4,x2=0,x3=0,sx4=12,Rx5=0,sx6=12,最优值为8。10实验结果与讨论:1.首先找出一个初始基本可行解,然后进行最优性检验,基变化的步骤,最后得到结果。同时学会了用Tora软件求解线性规划问题,并在求解过程中学会理解每一步迭代计算中进基与出基变量。2.为了构造初始可行基得到初始可行解,把人工变量”强行”的加到原来的约束方程中去,又为了尽力地把人工变量从基变量中替换出来就令人工变量在求最大的目标函数里的系数为-M的方法叫做大M法。大M法以及另一种应用人工变量的方法即两阶段法的求解,更加完善了有关线性规划问题的解决,同时给生活中很多相似问题的解决提供了方便。指导教师意见:签名:年月日
本文标题:运筹学-大M法或两阶段法的上机实验
链接地址:https://www.777doc.com/doc-1999663 .html