运筹学课设代码_第1页
运筹学课设代码_第2页
运筹学课设代码_第3页
运筹学课设代码_第4页
运筹学课设代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、importjava.util.Scanner;importjava.util.regex.Pattern;publicclassyunxingprivateintm;/约束条件的个数privateintn;/变量个数privateintm1;/=的约束条件个数privateinterror;/判断是否是错误的privateintbasic;privateintnonbasic;privatedoublea;/约束条件的系数矩阵publicdoubleminmax;/目标函数的最大值或最小值publicstaticvoidmain(Stringargs)Scannersc=newScanner

2、(System.in);System.out.println(请输入目标函数类型:1表示max;-1表示min:);/容错处理稍后再做doubleminmax=Integer.parseInt(sc.next();/System.out.println(请输入约束条件个数:);intm=sc.nextInt();/System.out.println(请输入变量个数:);intn=sc.nextInt();/System.out.println(请输入=的约束条件个数:);intm3=sc.nextInt();/doublea=newdoublemn+1;for(inti=0;im;i+)Sy

3、stem.out.println(“请输入系数矩阵第+(i+1)+”行(注:数与数间用,间隔,并且先输入完=的):);doubleb=newdoublen+1;Stringregex=,;Patternp=Ppile(regex);Stringr=p.split(sc.next();for(intj=0;jr.length;j+)if(!(rj.trim().equals()bj=Double.parseDouble(rj);aij=bj;System.out.println(,输入的系数矩阵为:);for(inti=0;im;i+)for(intj=0;jn+1;j+)System.out.

4、print(aij+t);System.out.println();/doublex=newdoublen;System.out.println(请输入目标函数系数(注:数与数间用,间隔):”);Stringregex=,;Patternp=Ppile(regex);Stringr=p.split(sc.next();for(intj=0;jr.length;j+)if(!(rj.trim().equals()xj=Double.parseDouble(rj);danchunxingfadanchunxingfa=newdanchunxingfa(minmax,m,n,m1,m2,m3,a,x

5、);danchunxingfa.solve();publicclassdanchunxingfaprivateintm;/约束条件的个数privateintn;/变量个数privateintm1;/=的约束条件个数privateinterror;/判断是否是错误的privateintbasic;privateintnonbasic;privatedoublea;/约束条件的系数矩阵privatedoubleminmax;/目标函数的最大值或最小值publicdanchunxingfa(doubleminmax,intm,intn,intm1,intm2,intm3,doublea,double

6、x)doublevalue;this.error=0;this.minmax=minmax;this.m=m;this.n=n;this.ml=ml;this.m2=m2;this.mS=m3;if(m!=ml+m2+m3)(this.error=1;this.a=newdoublem+2;for(inti=0;im+2;i+)(this.ai=newdoublen+m+m3+l;this.basic=newintm+2;this.nonbasic=newintn+m3+l;for(inti=0;i=m+1;i+)(for(intj=0;j=n+m+m3;j+)(this.aij=0.0;fo

7、r(intj=0;j=n+m3;j+)(nonbasicj=j;for(inti=1J=n+m3+l;i=m;i+,j+)(basici=j;for(inti=m-m3+lj=n+1;i=m;i+,j+)(this.aij=-l;this.am+lj=-l;for(inti=1;i=m;i+)(for(intj=1;j=n;j+)(value=ai-lj-l;this.aij=value;value=ai-1n;if(value0)error=1;this.ai0=value;for(intj=1;j=n;j+)/value=xj-1;this.a0j=value*minmax;for(int

8、j=1;j=n;j+)value=0;for(inti=m1+1;i=m;i+)value+=this.aij;this.am+1j=value;publicintenter(intobjrow)intcol=0;for(intj=1;j=this.n+this.m3;j+)if(this.nonbasicj10e-8)col=j;break;returncol;publicintleave(intcol)doubletemp=-1;introw=0;for(inti=1;i10e-8)val=this.ai0/val;if(valtemp|temp=-1)row=i;temp=val;ret

9、urnrow;publicvoidswapbasic(introw,intcol)inttemp=this.basicrow;this.basicrow=this.nonbasiccol;this.nonbasiccol=temp;publicvoidpivot(introw,intcol)for(intj=0;j=this.n+this.m3;j+)if(j!=col)this.arowj=this.arowj/this.arowcol;this.arowcol=1.0/this.arowcol;for(inti=0;i=this.m+1;i+)if(i!=row)for(intj=0;j=

10、this.n+this.m3;j+)if(j!=col)this.aij=this.aij-this.aicol*this.arowj;if(Math.abs(this.aij)0)row=leave(col);elsereturn0;if(row0)pivot(row,col);elsereturn2;publicintphase1()this.error=simplex(this.m+1);if(this.error0)returnthis.error;for(inti=1;ithis.n+this.m1+this.m3)if(this.ai010e-8)return3;for(intj=

11、1;j=10e-8)pivot(i,j);break;return0;publicintphase2()returnsimplex(0);publicintcompute()if(this.error0)returnthis.error;if(this.m!=this.m1)this.error=phase1();if(this.error0)returnthis.error;returnphase2();publicvoidsolve()error=compute();switch(error)case0:output();break;System.out.println(nn!);break;System.out.println(无界解!);break;System.out.println(无可行解!);break;default:break;publicvoidoutput()intbasicp=newintn+1;for(inti=0;i=n;i+)basicpi=0;for(inti=1;i=1&basici=n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论