1、/在 Visual C+控制台程序中编译执行 #include #include #define M 10000 /全局变量 float kernel1131;/核心矩阵表 int m=0,n=0,t=0;/m:结构向量的个数 /n:约束不等式个数 /t:目标函数类型:1 代表求求最小值,1 代表求最大值 /输入接口函数 void input() /读入所求问题的基本条件 coutm; coutn; int i,j; /初始化核心向量 for (i=0;i=):“kernel ij; for (i=1;ikernel 0i; cint; /矩阵调整 if(t=-1) for(i=1;i=0)
2、flag=1; else flag=-1; break; if(flag=1) for(i=1;i=n;i+) if(temp3i=m+n) temp1=1; else temp1=-1; break; /输出结果 coutendlendl; cout“结 果 输 出“endlendl; if(temp1=1) cout“ 此线性规划的最优解存在!“endlendl“ 最优解为:“endlendl“ “; for(i=1;i=n;i+) temp5temp3i=kernel i0; for(i=1;i=m;i+) f+=t*kernel 0i*temp5i; for(i=1;i=m;i+) c
3、out“x“i“ = “temp5i; if(i!=m) cout“, “; cout“ ;“endlendl“ 最优目标函数值 f= “fendlendl; return ; else cout“ 此线性规划无解“endlendl; return ; if(flag=-1) temp=100000; for(i=1;i=m+n+n;i+) if(kernel n+1itemp) temp=kernel n+1i; h=i; for(i=1;i=n;i+) if(kernel ih=0) temp2=1; else temp2=-1; break; if(temp2=1) cout“此线性规划
4、无约束“; return ; if(temp2=-1) c=100000; for(i=1;i=n;i+) if(kernel ih!=0) bi=kernel i0/kernel ih; if(kernel ih=0) bi=100000; if(bi0) bi=100000; if(bic) c=bi; k=i; temp3k=h; temp4k=kernel 0h; d=kernel kh; for(i=0;i=m+n+n;i+) kernel ki=kernel ki/d; for(i=1;i=n;i+) if(i=k) continue; aa=kernel ih; for(j=0;j=m+n+n;j+) kernel ij=kernel ij-aa*kernel kj; while(1); return ; /主函数 void main() cout“-单纯形算法程序-“endlendl; input(); comput();