欢迎来到天天文库
浏览记录
ID:43363926
大小:270.64 KB
页数:7页
时间:2019-10-01
《单纯形法程序说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、线性规划问题的单纯形法程序程序设计人员:闫保(20010674010)专业:应用数学数学模型:maxz=£cjXj戶1St.若知''(i=l,..,m)(j=l,.・・・,n)X.>0丄一、dnm标准形:maxz二工0内+工0忌=工5小>1/=!;=1St.Im(i=1,,m)(j=l,,n+m)Xj>02、注的代码段(声明A)。程序不适用于求解需用大M法解的规划问题(=,乙)b/o若要求解帶有人工变量的线性规划问题还有待修改。程序应用实例:maxz=2x,+x25x2<15S.T6x}+2x2<24%!+x2<5xpx2>0n=5m=3c[n]二{2丄0,0,0}b[m]={15,24,5}a[m][n]={{0,5丄0,0},{620丄0},{1丄0Q1},}程序流程图:(单纯形法计算步骤的框图)程序#include#include#defineN10/*定义最大列维数*/#d3、efineM10/*定义最大行维数*/typedefstructXappearance{intbase;/*base=-l:代表变量x不是基。Base=0,l...m-l:代表变量x是基,且第base个分量是1*/intman;代变量x是否是人工变量。取1代表是人工变量,取0代表是松弛变量或决策变量*/floatcz;/*变量x的检验数*/}Xapp;/*定义白变量Xi的状态*/intn,m;/*定义实际列和行维数。*/intcb[M];代整型数组Cb[M]用来保存基有哪些决策变量Xi组成,第行的基是那一列的xfl4、oatbfM];floata[M][N];floatc[N];Xappx[NJ;/*约束向量*//*系数矩阵*//*目标函数向量或价值系数勺/*决策变量*/voidinit(){inti,j;printf("inputn=");scanf(u%d",&n);/*输入实际列数*/printf(Hinputm=");scanf("%d”,&m);/*输入实际行数*/for(i=0;i5、{printf(Hinputb%d=”,i);scanf(H%f&b[i]);}for(i=0;i0.0){t=0;break;}严输入价值系数*//*输入约束向量*//*输入系数矩阵*//*判断所有5是否小于0*/returnt;voidstart(){inti,6、j,k,pj,pi;for(i=0;i=2)break;}elseif(a[j][i]==O)pj++;/*确定Xi是否是基*//*初始基可行解*/if(pj==m-1&&pi==1&&x[i].cz==0)xlij.base=k;}for(i=();i7、for(i=0;i8、j]];/*声明A:此处未对x是人工变量加以标注。*//*计算检验数勺/*计算检验数*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
2、注的代码段(声明A)。程序不适用于求解需用大M法解的规划问题(=,乙)b/o若要求解帶有人工变量的线性规划问题还有待修改。程序应用实例:maxz=2x,+x25x2<15S.T6x}+2x2<24%!+x2<5xpx2>0n=5m=3c[n]二{2丄0,0,0}b[m]={15,24,5}a[m][n]={{0,5丄0,0},{620丄0},{1丄0Q1},}程序流程图:(单纯形法计算步骤的框图)程序#include#include#defineN10/*定义最大列维数*/#d
3、efineM10/*定义最大行维数*/typedefstructXappearance{intbase;/*base=-l:代表变量x不是基。Base=0,l...m-l:代表变量x是基,且第base个分量是1*/intman;代变量x是否是人工变量。取1代表是人工变量,取0代表是松弛变量或决策变量*/floatcz;/*变量x的检验数*/}Xapp;/*定义白变量Xi的状态*/intn,m;/*定义实际列和行维数。*/intcb[M];代整型数组Cb[M]用来保存基有哪些决策变量Xi组成,第行的基是那一列的xfl
4、oatbfM];floata[M][N];floatc[N];Xappx[NJ;/*约束向量*//*系数矩阵*//*目标函数向量或价值系数勺/*决策变量*/voidinit(){inti,j;printf("inputn=");scanf(u%d",&n);/*输入实际列数*/printf(Hinputm=");scanf("%d”,&m);/*输入实际行数*/for(i=0;i5、{printf(Hinputb%d=”,i);scanf(H%f&b[i]);}for(i=0;i0.0){t=0;break;}严输入价值系数*//*输入约束向量*//*输入系数矩阵*//*判断所有5是否小于0*/returnt;voidstart(){inti,6、j,k,pj,pi;for(i=0;i=2)break;}elseif(a[j][i]==O)pj++;/*确定Xi是否是基*//*初始基可行解*/if(pj==m-1&&pi==1&&x[i].cz==0)xlij.base=k;}for(i=();i7、for(i=0;i8、j]];/*声明A:此处未对x是人工变量加以标注。*//*计算检验数勺/*计算检验数*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
5、{printf(Hinputb%d=”,i);scanf(H%f&b[i]);}for(i=0;i0.0){t=0;break;}严输入价值系数*//*输入约束向量*//*输入系数矩阵*//*判断所有5是否小于0*/returnt;voidstart(){inti,
6、j,k,pj,pi;for(i=0;i=2)break;}elseif(a[j][i]==O)pj++;/*确定Xi是否是基*//*初始基可行解*/if(pj==m-1&&pi==1&&x[i].cz==0)xlij.base=k;}for(i=();i7、for(i=0;i8、j]];/*声明A:此处未对x是人工变量加以标注。*//*计算检验数勺/*计算检验数*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
7、for(i=0;i8、j]];/*声明A:此处未对x是人工变量加以标注。*//*计算检验数勺/*计算检验数*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
8、j]];/*声明A:此处未对x是人工变量加以标注。*//*计算检验数勺/*计算检验数*/voidptable(){inti,j;printf("Cj->for(i=0;i9、base10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
9、base
10、bfor(i=0;i11、",i12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
11、",i
12、);printf(HH);for(i=();i13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
13、%1Off,c[cb[i]],i,b[i]);for(j=0;j14、H,a[i]15、j]);}printf(MCj-Zj16、“);for(i=0;i
14、H,a[i]
15、j]);}printf(MCj-Zj
16、“);for(i=0;i
此文档下载收益归作者所有