无约束最优化直接方法之单纯形法

数学与计算科学学院

实验报告

实验项目名称所属课程名称实验类型实验日期

班学姓成

级号名绩

1n +1

v 0=∑v i

i =1, i ≠h

2)反射。

按如下公式通过v 0反射v h :v r =v 0+α(v 0-v h ) α>0为反射系数,常取α=1, v r

称为v h 的反射点。因v h 是坏点,则一般有f(v r )

3)延伸。

经过反射,若不仅有f(v r )1是延伸系数,常取r=2,也可用直线搜索技术确定r. 此时若有f(v e )

4)收缩。(如在R 中,由图a 知以v e 、v i 、v l 为顶点的新单纯形已向极小点靠近了一步。)否则,以反射点替换构成单纯形,转6步(如R 中,由图19.1.1b 可知以v r 、v i 、v l 为顶点的新单纯形向极小点靠近了一步)

图19.1.1a 图19.1.1b

若f(v r )

4.2

若对i=1,2,3--n+1(但i ≠h ) 均有f(v r )>=f(v i ), 则要进行收缩。

收缩分以下两种情况

4.2.1若f(v r ) >=f(v h ), 即反射点比原来单纯形的坏点还坏,则舍弃v r ,对方向

v h -v0进行收缩。如图d

计算公式为v c =v 0+β(v h -v 0) ;其中v c 是v h β=

1若f(v c )>f(v h ) ,即收缩点比原单纯形最坏点还坏,因此放弃v c 点,转5步进行

棱长减半工作。否则以v c 替换v h 构成新单纯形,转6。

4.2.2若f(v r )

v c =v o +β(v r -v o )

若f(v c )>f(v h ), 即收缩点v c 比反射点v r 还坏,则放弃收缩点v c ,

转5进行棱长减半工作,否则以v c 替换v h 构成新单纯形,转6。

图19.1.1c 图19.1.1b 图19.1.1e

5)减小棱长。将原单纯形的最好点保持不动,各棱长减半,计算公式为1

v i =v i +v l , i ≠1, 2, 3 n +1

2

2n +1

1n +11n +! *

6)终止原则。计算=f i , v =v i ,若∑f i -

小点,终止;否则,转1

()

()

【实验结论】(结果)

取初始点。为计算方便不取等边三角形为初始单纯形,而取直角三角形为初始单纯形,其顶点为:

δ0=(8, 9)T , δ1=(10, 11)T , δ2=(8, 11)T

相应函数值f 0=45, f 1=125,f 2=65

max (f 0f 1f 2)=125=f 2, δh =δ1

min (f 0f 1f 2)=45=f 0, δl =δo 其中心

1⎛2⎫

δ= ∑δi -δh ⎪=(8, 10)T

2⎝i =0⎭

先做反射运算(为方便,取α=1)δ3=δ+αδ-δh =(6, 9), f (δ3)=13因

f (z 3)

T

)

δ4=+r δ3-=(4, 8)T , f (δ4)=8

因f (δ4)

T T T

δ0=(8, 9). δ1=(4, 8). δ2=(8, 11)

T

()

f 0=45, f 1=8, f 2=65下面开始第二次迭代

max{f 0, f 1, f 2}=65=f 2, δl =δmin{f 0, f 1, f 2}=8=f 1, δl =δ1

1

(δ0+δ1)=(6, 8. 5)T 2

T

反射δ3=δ+αδ-δh =(4, 6), f (δ3)=4

中心δ=

)

延伸δ4=+r δ3-=(2, 3. 5), f (δ4)>f l =8

T

故以δ3=(4,6)代替δ2。f(δ3)=4代替。转入下一次迭代。如此迭代下去最后可得极小点(5, 6)。

T

【实验小结】(收获体会)

通过本次试验,是我更深的了解了无约束最优化问题的直接解决方法。一般来说,直接方法与使用导数的方法相比,但是其迭代比较简单,同一个问题从不同的思考角度出发就会发现更多的解决方案。三、指导教师评语及成绩:

评语等级

优良

及格

不及格

1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理

3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.

成绩:

指导教师签名:批阅日期:

附录1:源程序

#include#includeint const n=2;

static double Mk=1;

double fun_original(doublex[n]);//既是主函数,也是F(X,Mk)之一double g_fun(doublex[n]);//约束函数double h_fun(doublex[n]);;//等式函数double a_e_f(doublex[n]);

double fun(doublex[n]);//让单纯形法求解此函数最小值

void compare(doublex[n+1][n],doubleLGH[3][n],doubleLGH_tap[3]);//在调用之前LGH 先给x[n+1]赋值

void zx(doublex[n+1][n],doubleLGH[3][n],doubleLGH_tap[3],doublexn_1[n],doublexn_2[n]);double H(doublex[n+1][n],doubleLGH[3][n],doublec);//判别准

则void danchun(doubleoriginal_point[n]);void main(){int k=1;int i;

double r=10;

double c=0.000001;

double x[n]={0,0.5};//给定的初始点在某个增广目标函数的求解域之中do {danchun(x);

//ln(x2)>=0时F(X,Mk)=-X1+X2;无极小点,不用管这个增广目标函数if(Mk*a_e_f(x)

cout=0"

cout

xn_1[j]+=x[i][j];}}

for(i=0;i

xn_2[i]=2*xn_1[i]-LGH[2][i];}

double H(doublex[n+1][n],doubleLGH[3][n],doublec)//判别准则{int i;

double s=0;

for(i=0;i

s+=pow(fun(x[i])-fun(LGH[0]),2);//s+=pow(fun(x[i][n])-fun(LGH[0][n]),2);//////////////}if(s

void danchun(doubleoriginal_point[n]){double x[n+1][n]={0};double c=0.000001;double a=2;double b=0.5;double LGH[3][n]={0};double LGH_tap[3]={0};double xn_1[n]={0};double xn_2[n]={0};double xn_3[n]={0};double xn_4[n]={0};int i,j,tap=0;for(i=0;i

for(i=1;i

x[i][j]=x[0][j]+1;else x[i][j]=x[0][j];}}

compare(x,LGH,LGH_tap);//返回Xl,Xh,Xg 及它们在x[n+1][n]中的下

标zx(x,LGH,LGH_tap,xn_1,xn_2);//返回中心X(n+1)和反射点X(n+2)while(H(x,LGH,c)==0){

if(fun(xn_2)

xn_3[i]=xn_1[i]+a*(xn_2[i]-xn_1[i]);//扩张}if(fun(xn_3)

{

for(i=0;i

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_3[i];{

for(i=0;i

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}

else {

if(fun(xn_2)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}//gotostep 2; }else {

if(fun(xn_2)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}else//means(fun(xn_2)>=fun(LGH[2][n])){for(i=0;i

xn_4[i]=xn_1[i]+b*(xn_2[i]-xn_1[i]);//压缩}if(fun(xn_4)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_4[i];//gotostep 2; }else for(i=0;i

for(j=0;j

x[i][j]=(LGH[0][j]+x[i][j])/2;}

}//gotostep 2

}

}

}

{

else

}

{}

}{

}

}}}//That'sit!!!

compare(x,LGH,LGH_tap);//返回Xl,Xh,Xg 及它们在x[n+1][n]中的下标zx(x,LGH,LGH_tap,xn_1,xn_2);//返回中心X(n+1)和反射点X(n+2)tap++;}

for(i=0;i

original_point[i]=LGH[0][i];//把在某个Mk 值下增广目标函数的最优值返回}

附录2:实验报告填写说明

1.实验项目名称:要求与实验教学大纲一致。

2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3.实验原理:简要说明本实验项目所涉及的理论知识。4.实验环境:实验用的软、硬件环境。

5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特色。

6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。

7.实验结论(结果):根据实验过程中得到的结果,做出结论。8.实验小结:本次实验心得体会、思考和建议。

9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。

数学与计算科学学院

实验报告

实验项目名称所属课程名称实验类型实验日期

班学姓成

级号名绩

1n +1

v 0=∑v i

i =1, i ≠h

2)反射。

按如下公式通过v 0反射v h :v r =v 0+α(v 0-v h ) α>0为反射系数,常取α=1, v r

称为v h 的反射点。因v h 是坏点,则一般有f(v r )

3)延伸。

经过反射,若不仅有f(v r )1是延伸系数,常取r=2,也可用直线搜索技术确定r. 此时若有f(v e )

4)收缩。(如在R 中,由图a 知以v e 、v i 、v l 为顶点的新单纯形已向极小点靠近了一步。)否则,以反射点替换构成单纯形,转6步(如R 中,由图19.1.1b 可知以v r 、v i 、v l 为顶点的新单纯形向极小点靠近了一步)

图19.1.1a 图19.1.1b

若f(v r )

4.2

若对i=1,2,3--n+1(但i ≠h ) 均有f(v r )>=f(v i ), 则要进行收缩。

收缩分以下两种情况

4.2.1若f(v r ) >=f(v h ), 即反射点比原来单纯形的坏点还坏,则舍弃v r ,对方向

v h -v0进行收缩。如图d

计算公式为v c =v 0+β(v h -v 0) ;其中v c 是v h β=

1若f(v c )>f(v h ) ,即收缩点比原单纯形最坏点还坏,因此放弃v c 点,转5步进行

棱长减半工作。否则以v c 替换v h 构成新单纯形,转6。

4.2.2若f(v r )

v c =v o +β(v r -v o )

若f(v c )>f(v h ), 即收缩点v c 比反射点v r 还坏,则放弃收缩点v c ,

转5进行棱长减半工作,否则以v c 替换v h 构成新单纯形,转6。

图19.1.1c 图19.1.1b 图19.1.1e

5)减小棱长。将原单纯形的最好点保持不动,各棱长减半,计算公式为1

v i =v i +v l , i ≠1, 2, 3 n +1

2

2n +1

1n +11n +! *

6)终止原则。计算=f i , v =v i ,若∑f i -

小点,终止;否则,转1

()

()

【实验结论】(结果)

取初始点。为计算方便不取等边三角形为初始单纯形,而取直角三角形为初始单纯形,其顶点为:

δ0=(8, 9)T , δ1=(10, 11)T , δ2=(8, 11)T

相应函数值f 0=45, f 1=125,f 2=65

max (f 0f 1f 2)=125=f 2, δh =δ1

min (f 0f 1f 2)=45=f 0, δl =δo 其中心

1⎛2⎫

δ= ∑δi -δh ⎪=(8, 10)T

2⎝i =0⎭

先做反射运算(为方便,取α=1)δ3=δ+αδ-δh =(6, 9), f (δ3)=13因

f (z 3)

T

)

δ4=+r δ3-=(4, 8)T , f (δ4)=8

因f (δ4)

T T T

δ0=(8, 9). δ1=(4, 8). δ2=(8, 11)

T

()

f 0=45, f 1=8, f 2=65下面开始第二次迭代

max{f 0, f 1, f 2}=65=f 2, δl =δmin{f 0, f 1, f 2}=8=f 1, δl =δ1

1

(δ0+δ1)=(6, 8. 5)T 2

T

反射δ3=δ+αδ-δh =(4, 6), f (δ3)=4

中心δ=

)

延伸δ4=+r δ3-=(2, 3. 5), f (δ4)>f l =8

T

故以δ3=(4,6)代替δ2。f(δ3)=4代替。转入下一次迭代。如此迭代下去最后可得极小点(5, 6)。

T

【实验小结】(收获体会)

通过本次试验,是我更深的了解了无约束最优化问题的直接解决方法。一般来说,直接方法与使用导数的方法相比,但是其迭代比较简单,同一个问题从不同的思考角度出发就会发现更多的解决方案。三、指导教师评语及成绩:

评语等级

优良

及格

不及格

1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理

3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.

成绩:

指导教师签名:批阅日期:

附录1:源程序

#include#includeint const n=2;

static double Mk=1;

double fun_original(doublex[n]);//既是主函数,也是F(X,Mk)之一double g_fun(doublex[n]);//约束函数double h_fun(doublex[n]);;//等式函数double a_e_f(doublex[n]);

double fun(doublex[n]);//让单纯形法求解此函数最小值

void compare(doublex[n+1][n],doubleLGH[3][n],doubleLGH_tap[3]);//在调用之前LGH 先给x[n+1]赋值

void zx(doublex[n+1][n],doubleLGH[3][n],doubleLGH_tap[3],doublexn_1[n],doublexn_2[n]);double H(doublex[n+1][n],doubleLGH[3][n],doublec);//判别准

则void danchun(doubleoriginal_point[n]);void main(){int k=1;int i;

double r=10;

double c=0.000001;

double x[n]={0,0.5};//给定的初始点在某个增广目标函数的求解域之中do {danchun(x);

//ln(x2)>=0时F(X,Mk)=-X1+X2;无极小点,不用管这个增广目标函数if(Mk*a_e_f(x)

cout=0"

cout

xn_1[j]+=x[i][j];}}

for(i=0;i

xn_2[i]=2*xn_1[i]-LGH[2][i];}

double H(doublex[n+1][n],doubleLGH[3][n],doublec)//判别准则{int i;

double s=0;

for(i=0;i

s+=pow(fun(x[i])-fun(LGH[0]),2);//s+=pow(fun(x[i][n])-fun(LGH[0][n]),2);//////////////}if(s

void danchun(doubleoriginal_point[n]){double x[n+1][n]={0};double c=0.000001;double a=2;double b=0.5;double LGH[3][n]={0};double LGH_tap[3]={0};double xn_1[n]={0};double xn_2[n]={0};double xn_3[n]={0};double xn_4[n]={0};int i,j,tap=0;for(i=0;i

for(i=1;i

x[i][j]=x[0][j]+1;else x[i][j]=x[0][j];}}

compare(x,LGH,LGH_tap);//返回Xl,Xh,Xg 及它们在x[n+1][n]中的下

标zx(x,LGH,LGH_tap,xn_1,xn_2);//返回中心X(n+1)和反射点X(n+2)while(H(x,LGH,c)==0){

if(fun(xn_2)

xn_3[i]=xn_1[i]+a*(xn_2[i]-xn_1[i]);//扩张}if(fun(xn_3)

{

for(i=0;i

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_3[i];{

for(i=0;i

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}

else {

if(fun(xn_2)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}//gotostep 2; }else {

if(fun(xn_2)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_2[i];}else//means(fun(xn_2)>=fun(LGH[2][n])){for(i=0;i

xn_4[i]=xn_1[i]+b*(xn_2[i]-xn_1[i]);//压缩}if(fun(xn_4)

x[int(LGH_tap[2])][i]=LGH[2][i]=xn_4[i];//gotostep 2; }else for(i=0;i

for(j=0;j

x[i][j]=(LGH[0][j]+x[i][j])/2;}

}//gotostep 2

}

}

}

{

else

}

{}

}{

}

}}}//That'sit!!!

compare(x,LGH,LGH_tap);//返回Xl,Xh,Xg 及它们在x[n+1][n]中的下标zx(x,LGH,LGH_tap,xn_1,xn_2);//返回中心X(n+1)和反射点X(n+2)tap++;}

for(i=0;i

original_point[i]=LGH[0][i];//把在某个Mk 值下增广目标函数的最优值返回}

附录2:实验报告填写说明

1.实验项目名称:要求与实验教学大纲一致。

2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。3.实验原理:简要说明本实验项目所涉及的理论知识。4.实验环境:实验用的软、硬件环境。

5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特色。

6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析。

7.实验结论(结果):根据实验过程中得到的结果,做出结论。8.实验小结:本次实验心得体会、思考和建议。

9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。


相关内容

  • 运筹学论文
  • 姓名:张弛 班级:经统1401 学号:1409100138 联系方式:[1**********] 运筹学中的线性规划问题 摘要:线性规划是运筹学中研究较早.发展较快.方法较成熟一个重要分支,其应用极其广泛,其作用已为越来越多的人所重视,越来越多地渗透到农业生产.商业活动.军事行动和科学研究等各个方面 ...

  • 现代设计方法(第二章 优化设计)
  • 1. 直接搜索法.它只利用目标函数值构成的搜索方法,如POWELL ,单纯形法: 2. 梯度法.它需要有目标函数及其导数的解析式. 对于非线性的显函数,且变量数较少或中等的问题,用复合形法或罚函数法(其中尤其是内点罚函数法)的求解效果一般都比较理想,前者求得全域最优解的可能性较大.建议当找不到一个可 ...

  • 建筑结构优化及应用
  • 内容简介 本书用了较大篇幅介绍了目前常用的结构优化软件,每一个优化软件均进行了实例应用.全书共9章,主要介绍了结构优化准则法.无约束最优化方法.线性规划.非线性规划.几何规划和动态规划.拓扑优化.钢筋混凝土框架优化设计和高层建筑结构抗侧刚度的优化.本书后面的附录中还给出了钢筋混凝土框架优化设计的核心 ...

  • 最优化基础理论与方法
  • 目录 1.最优化的概念与分类 ................................................................................................................. 2 2. 最优化问题的求解方法 ..... ...

  • 81010218[最优化算法]教学大纲
  • <最优化算法>课程教学大纲 课程编号: 81010218 课程名称:最优化算法 英文名称:Optimization Algorithm 总 学 时:32 学 分:2 适用对象: 信息与计算科学本科专业 先修课程:数学分析(1-3),高等代数(1-2),运筹学 一.课程性质.目的和任务 & ...

  • 脱丙烷塔进料组成的预测
  • 第57卷第6期2006年6月 化 Journal of Chemical 工 Industry 学 and 报 Engineering(China) V01.57No.62006 June 脱丙烷塔进料组成的预测 蒋 东,何小荣 (清华大学化学工程系,北京100084) 关键词:软测量:精馏塔:预测 ...

  • 运筹学 选择题
  • 1.运筹学的主要内容包括:(D) A.线性规划 B.非线性规划 C.存贮论 D.以上都是 2.下面是运筹学的实践案例的是:(D) A.丁谓修宫 B.田忌赛马 C.二战间,英国雷达站与防空系统的协调配合 D.以上都是 3.规划论的内容不包括:(D) A.线性规划 B.非线性规划 C.动态规划 D.网络 ...

  • 第二章 线性规划习题(附答案)
  • 习题 2-1 判断下列说法是否正确: (1) 任何线性规划问题存在并具有惟一的对偶问题: (2) 对偶问题的对偶问题一定是原问题: (3) 根据对偶问题的性质,当原问题为无界解时,其对偶问题无可行解,反之, 当对偶问题无可行解时,其原问题具有无界解: (4) 若线性规划的原问题有无穷多最优解,则其对 ...

  • 结构拓扑优化设计的理论与方法
  • 2011年第1期 2011年1月 化学工程与装备 Chemical Engineering & Equipment 155 结构拓扑优化设计的理论与方法 张德恒,鹿晓阳 (山东建筑大学 力学研究所,山东 济南 250101) 摘 要:从离散结构拓扑优化和连续体结构拓扑优化两个方面,分别对结构 ...