欢迎来到天天文库
浏览记录
ID:21866703
大小:257.34 KB
页数:11页
时间:2018-10-25
《运筹学上机报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、上机实验报告班级:测控121专业/方向:测控技术与仪器姓名:实验成绩学号:(10分制)上机实验名称:编程实现Simplex算法求解LP问题上机时间:2014年5月21日上机地点:信自234一、实验目的和要求1、目的:•掌握单纯形算法的计算步骤,并能熟练使用该方法求解线性规划问题。•了解算法+程序实现的过程和方法。2、要求:•使用熟悉的编程语言编制单纯形算法的程序。•独立编程,完成实验,撰写实验报告并总结。二、实验内容和结果1、单纯形算法的步骤及程序流程图。单纯形法的步骤:(1)将线性规划化为标准形。(2)用最
2、快的方法确定一个初始基木可行解X(0)。当s•t均为形式时,以松驰变量做初始基木变量最快。(3)求X(0)中非基木变量xj的检验数叫。则停止运算,X(0)=X*(表示最优解),否则转下一步。(7,=maxfcr.>0}(4)①由j确定xk进基;xk=min{—
3、aik>0}=—②由'&确定xl出基,其屮alk称为主元素;③利用初等变换将alk化为1,并利用alk将同列中其它元素化为0,得新解X(l)。(5)返回(3),直至求得最优解为止。程序流程图:2、单纯形算法程序的规格说明(程序以附录形式给出)。输入:(
4、运行程序所需输入的参数)系数矩阵A初始基变量的数字代码rwm矩阵方程组右边的值矩阵bH标函数各个变量的系数所构成的系数阵C输出:(程序执行之后的结果)最优解为:xl=3.00x2=3.00x3=0.00x4=4、00x5=0.00ZB=15.00功能描述:用单纯型法求最优解3、使用所编程序求解课木P26例5输入:01*eS2100$r205K240,1inXDesRtzop'"^DeJju.cg>1罜组的系数矩阵A<3行5歹l.b=请输入初始基变量的数字代码n^矩阵=345请输入方程组右边的值矩阵b=1216
5、15请输入目标函数各个变量的系数所构成的系数阵C=—2一3000结果:CBXBbS«<1>X(2〉X<3〉X<4>X<5>0.00X<3>12.002.002.001-000.000.000.00X<4>16.004.000.000.001.000.000.00X<5>15.000.005.000.000.001.00-2.00-3-000.000.000.00p=2,q=l0.00X<3>6.002.000.001.000.00-0.400.00X<4>16.004.000-000.001■000.00-3
6、.00X<2)3.000.001.000.000.000.20-2-000.000■000.000.60p=0,q=0-2.00X⑴3.001-000.000.500•00-0.200.00X⑷4.000.000.00一2■001.000.80-3.00X<2>3.000.001-000.000.000.200.000.001.000.000.20所得解已经是最优解?最优解为:xl=3.00x2=3.00x3=0.00x4=4.00x5=0.00ZB=15.00三、实验总结1、上机过程中出现的问题及解决方法。
7、稈序提示错误,似足无法找出错误,通过找同学帮忙解决,编译器发出钤告…主函数未定义返冋值,添加返IN值类型与返IN值后警告消失,算结果不正确…添加三个松弛变量.2、木次实验的体会。程序代码编写耍严谨心细,若所研究的线性规划模型的约泶条件伞是小r类堺,则耑耍引入松弛变【附录】单纯形算法程序(C、C++、madab语言或其它,请注明!)#include#include#definem3/*定义约朿条件方程组的个数*/#definen5/*定义未知量的个数*/floatM=10000
8、00.0;floatA[m][n];/*用于记彔方程组的数口和系数;floatC[n];/*用于存储目标函数屮各个变量的系数*/floatb[m];/*用于存储常约朿条件中的常数*/floatCB[m];/*用于存储基变量的系数*/floatseta[m];/*存放fli基与入基的变化情况*/floatdeltafn];产存储检验数矩陈*/floatx[n];intnum[m];/*用于存放出基与进基变量的情况*/floatZB=0;/*记录0标函数值*/voidinput();voidprint();int
9、danchunxingl();intdanchunxing2(inta);voiddanchunxing3(inta,intb);intdanchunxingl(){inti,k=0;intflag=0;floatmin=0;for(i=0;i=0)flag=1;else{flag=0;break;}if(flag==l)return-1;for(i=0;i
此文档下载收益归作者所有