优化设计混合惩罚函数法程序_第1页
优化设计混合惩罚函数法程序_第2页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、源程序:packageHyBrid;publicclasshybridpublicstaticintcount=1;publicstaticdoublex=1,30;publicstaticdoubler=3,c=0.7,w1=0;publicstaticdoubledv=newdouble2;publicstaticdoublex1=newdouble2;publicdoublefunction(doublex1,doublex2)目标函数return120*xl+x2;publicdoubleg1(doublex1,doublex2)约束条件一doubleG1=-x1;returnG1;p

2、ublicdoubleg2(doublex1,doublex2)约束条件二doubleG2=-x2;returnG2;publicdoubleg3(doublex1,doublex2)约束条件三doubleG3=1-0.25*x2;returnG3;publicdoubleg4(doublex1,doublex2)约束条件四doubleG4=1-7*x1*x2/45;returnG4;publicdoubleg5(doublex1,doublex2)/约束条件五doubleG5=1-7*Math.pow(x1,3)*x2/45;returnG5;publicdoubleg6(doublex1,

3、doublex2)/约束条件六doubleG6=1-Math.pow(x2,2)*x1/320;returnG6;publicdoublefun(doublex,doubler)/构建惩罚函数doubleFUN=0;doublef=function(x0,x1);doubleg10=g1(x0,x1);doubleg20=g2(x0,x1);doubleg30=g3(x0,x1);doubleg40=g4(x0,x1);doubleg50=g5(x0,x1);doubleg60=g6(x0,xl);/*判断条件一的正负*/if(g100)FUN-=r/g10;elseFUN+=(1.0/r)*

4、Math.pow(g10,2);/*判断条件二的正负*/if(g200)FUN-=r/g20;elseFUN+=(1.0/r)*Math.pow(g20,2);/*判断条件三的正负*/if(g300)FUN-=r/g30;elseFUN+=(1/r)*Math.pow(g30,2);/*判断条件四的正负*/if(g400)FUN-=r/g40;elseFUN+=(1/r)*Math.pow(g40,2);/*判断条件五的正负*/if(g500)FUN-=r/g50;elseFUN+=(1/r)*Math.pow(g50,2);/*判断条件六的正负*/if(g600)FUN-=r/g60;els

5、eFUN+=(1/r)*Math.pow(g60,2);returnf+FUN;publicdoublereflect(doublea,doublex3,doublexh)反射doubleresult1=newdouble2;resultl0=x30+a*(x30-xh0);resultll=x3l+a*(x3l-xhl);returnresultl;publicdoublestretch(doublec,doublex3,doublex4)延伸doubleresult2=newdouble2;result20=x30+c*(x40-x30);result21=x31+c*(x41-x31);

6、returnresult2;publicdoubleshrink(doubleb,doublex3,doublexh)收缩doubleresult3=newdouble2;result30=x30+b*(xh0-x30);result31=x31+b*(xh1-x31);returnresult3;publicvoidnarrow(doublex0,doublex1,doublex2,doublexe)缩小x00=0.5*(x00+xe0);x01=0.5*(x01+xe1);x10=0.5*(x10+xe0);x11=0.5*(x11+xe1);x20=0.5*(x20+xe0);x21=0

7、.5*(x21+xe1);publicdoublesimple(doublex)存放初始点doublea=1.12,eps=0.0001;初试步长、精度doubleresX=newdouble2;存放最小值点intmax=0,mid=0,min=0;doublefmax=-1000,fmin=1000,fmid=0;分别标记三个点中的好点、坏点、不坏不好点hybrids=newhybrid();doublenumber=newdouble72;number0=newdouble2;/number0存放起点xOnumber00=x0;number01=x1;number1=newdouble2;

8、/number1存放点xlnumber10=0.9659*a+number00;number11=0.2588*a+number01;number2=newdouble2;/number2存放点x2number20=0.2588*a+number00;number21=0.9659*a+number01;for(inti=0;ifmax)max=i;fmax=s.fun(numberi,r);elseif(s.fun(numberi,r)fmin)min=i;fmin=s.fun(numberi,r);for(intj=0;jeps|Math.abs(s.fun(number1,r)-s.fu

9、n(number3,r)eps|Math.abs(s.fun(number2,r)-s.fun(number3,r)eps)for(inti=0;ifmax)max=i;fmax=s.fun(numberi,r);elseif(s.fun(numberi,r)fmin)min=i;fmin=s.fun(numberi,r);for(intj=0;js.fun(numbermin,r)&s.fun(number4,r)s.fun(numbermid,r)numbermax0=number40;numbermax1=number41;fmax=s.fun(number4,r);elseif(s.f

10、un(number4,r)s.fun(numbermin,r)number5=s.stretch(2,number3,number4);if(s.fun(number5,r)=fmax)number6=s.shrink(0.5,number3,numbermax);if(s.fun(number6,r)fmax)s.narrow(number0,number1,number2,numbermin);elsenumbermax0=number60;numbermax1=number61;fmax=s.fun(number6,r);elseif(s.fun(number4,r)s.fun(numb

11、ermid,r)numbermax0=number40;numbermax1=number41;fmax=s.fun(number4,r);number6=s.shrink(0.5,number3,numbermax);if(s.fun(number6,r)fmax)s.narrow(number0,number1,number2,numbermin);elsenumbermax0=number60;numbermaxl=number6l;fmax=s.fun(number6,r);System.out.printf(第+count+次单纯形优化结果:x1=+%-5.4ft+x2=+%-5.4

12、ft+f(x1,x2)=+%-5.4ftnn,numbermin0,numbermin1,s.function(numbermin0,numbermin1);resXO=numberminO;resX1=numbermin1;returnresX;publicstaticvoidmain(Stringargs)hybridh=newhybrid();doublegetX=newdouble2;dow1=h.fun(x,r);for(inti=0;i=0.0001);System.out.printf(最后结果是:+x1=+%-5.4f+tx2=+%-5.4f+tf(x1x2)=+%-5.4f,

13、x0,x1,h.fun(x,r);程序运行结果:第初单纯形优化结果:盘1=06291x2=252石71f(xl,x2.)=100.7550第23次单纯形优化结果:蛊1=063Q6x2=252450f(xl,x2)=1009194第次单纯形彳尤化结果:xl=06313x2=25.2787f(xl,x2)=1010344第曲灰单纯形优化结果:xl=06319X2-252254f(xl,x2)-=101l1石g第空初单纯形优化结果:xl=06324x2=25.2372f(xl,k2.)=101丘第27次单纯形优化结果:套1=06327x2=25f(xl,x2)=1012158第籾单纯形彳尤化结果:蛊1=06329x2=25f(xl,x2)=101.2414第决单纯形优化结果:xl=06331X2-252S37f(xl,k2)=1012574第3。初单纯形优化结果:盘1=

温馨提示

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

评论

0/150

提交评论