优化设计实验指导书(完整版)

优化设计实验指导书(完整版)
优化设计实验指导书(完整版)

优化设计实验指导书

潍坊学院机电工程学院

2008年10月

目录

实验一黄金分割法 (2)

实验二二次插值法 (5)

实验三 Powell法 (8)

实验四复合形法 (12)

实验五惩罚函数法 (19)

实验一黄金分割法

一、实验目的

1、加深对黄金分割法的基本理论和算法框图及步骤的理解。

2、培养学生独立编制、调试黄金分割法C语言程序的能力。

3、掌握常用优化方法程序的使用方法。

4、培养学生灵活运用优化设计方法解决工程实际问题的能力。

二、实验内容

1、编制调试黄金分割法C语言程序。

2、利用调试好的C语言程序进行实例计算。

3、根据实验结果写实验报告

三、实验设备及工作原理

1、设备简介

装有Windows系统及C语言系统程序的微型计算机,每人一台。

2、黄金分割法(0.618法)原理

0.618法适用于区间上任何单峰函数求极小点的问题。对函数除“单峰”外不作

其它要求,甚至可以不连续。因此此法适用面相当广。

0.618法采用了区间消去法的基本原理,在搜索区间内适当插入两点和,它们把

分为三段,通过比较和点处的函数值,就可以消去最左段或最右段,即完成一次迭代。

然后再在保留下来的区间上作同样处理,反复迭代,可将极小点所在区间无限缩小。

现在的问题是:在每次迭代中如何设置插入点的位置,才能保证简捷而迅速地找到极小点。

在0.618法中,每次迭代后留下区间内包含一个插入点,该点函数值已计算过,因此以后的每次迭代只需插入一个新点,计算出新点的函数值就可以进行比较。

设初始区间[a,b]的长为L。为了迅速缩短区间,应考虑下述两个原则:(1)等比收缩原理——使区间每一项的缩小率不变,用表示(0<λ<1)。

(2)对称原理——使两插入点x1和x2,在[a,b]中位置对称,即消去任何一边区间[a,x1]或[x2,b],都剩下等长区间。

即有

ax1=x2b

如图4-7所示,这里用ax1表示区间的长,余类同。若第一次收缩,如消去[x2,b]区间,则有:λ=(ax2)/(ab)=λL/L

若第二次收缩,插入新点x3,如消去区间[x1,x2],则有λ=(ax1)/(ax2)=(1-λ)L/λL

根据原理应有:(ax2)/(ab)=(ax1)/ax2

即λL/L=(1-λ)L/λL

可得λ^2+λ-1=0

解此方程,舍去负根,取有用的根为λ=(sqrt(5)-1)/2=0.618

λ=0.618这样的比例又称为黄金分割比,它是一个具有奇妙性质的数,历史上曾不断作为美学方面的最佳比而反复出现。黄金分割比至今仍有很多应用。

3、黄金分割法计算步骤

(1)确定f(x)的初始搜索区间[a,b]及终止限。

(2)计算x2=a+0.618(b-a),f2=f(x2)

(3)计算x1=a+0.382(b-a),f1=f(x1).

(4)若|x2-x1|<$,则输出x*=(x1+x2)/2,停机;否则,若|x2-x1|>=$,转(5)。

(5)若f1<=f2,则置b≡x2.x2=x1,,然后转(3);否则,f1>f2,则置a=x1,x1=x2,f2=f1,转(4)。

4、黄金分割法计算框图

四、实验步骤:

1.编制调试程序。

2.计算实例。

五、实验报告内容

1、绘制程序框图。

2、记录计算结果并分析。

实验二二次插值法

一、实验目的

1、加深对二次插值法的基本理论和算法框图及步骤的理解。

2、培养学生独立编制、调试二次插值法C语言程序的能力。

二、实验内容

1、编制调试二次插值法C语言程序。

2、利用调试好的C语言程序进行实例计算。

3、根据实验结果写实验报告

三、实验设备及工作原理

1、设备简介

装有Windows系统及C语言系统程序的微型计算机,每人一台。

2、二次插值法原理

多项式是逼近函数的一种常用工具。利用插值多项式进行一维搜索的基本思想是构造一个较低的插值多项式P(x)来近似地代替原目标函数f(x),并以函数P(x)的极值点x

p

*

(即P/(x)=0的根)作为目标函数f(x)的近似极值点。再通过比较各插值点和x

p

*的函数值及其所在位置,设法缩减搜索区间。从而最终逼近函数f(x)的极值点.

如果P(x)是二次多项式,则称为二次插值法,若P(x)是三次多项式,则称为三次插值法。一般来说,三次插值的收敛性要好一些,但要计算函数导数;而二次插值计算较简单且具有一定的精度,故应用广泛。

二次插值又称为抛物线法。设原目标函数f(x)的初始单峰搜索区间[x

1,x

3

]已确定。函

数f(x)在x

1,x

2

,x

3

三点处函数值f

1

,f

2

,f

3

,其中x

1

2

3

,且f(x

1

)>f(x

2

)

3

)。即在三点

处函数值为“高——低——高”形态(或称“两头大,中间小”),见图4-9。

作二次插值多项式 P(x)=α

0+α

1

x+α

2

x2

根据插值条件:在插值点处函数P(x)与目标函数f(x)应具有相同函数值。P(x)应满足

P(x

1)=α

1

x

1

2

x

1

2=f

1

P(x

2)=α

1

x

1

2

x

2

2=f

2

……………2-1

P(x

3)=α

1

x

1

2

x

3

2=f

3

对式P(x)=α

0+α

1

x+α

2

x2求导并令其等于零,得

P/(x)=α

1+2α

2

x=0

或写为 x=-α

1/2α

2

……………2-2

由式2-1中相邻两方程相减消去,得到

α1(x1-x2)+α2(x12-x22)=f1-f2

α1(x2-x3)+α2(x23-x32)=f2-f3……………2-3

由此解出α

1和α

2

,再代入2-2,于是插值多项式P(x)的极小点为

x

p *=[(x

2

2-x

3

2)f

1

+(x

3

2-x

2

2)f

2

+(x

1

2-x

2

2)f

3

]/2[(x

2

-x

3

)f

1

+(x

3

-x

2

)f

2

+(x

1

-x

2

)f

3

] ……2-4

x

p

*即为目标函数f(x)的极小点的一个近似点。

若f(x)本身为二次函数,则在理论上按式2-4一次求值就可找到最优点,x

p

*即为所

求。若f(x)为高于二次的函数或其它函数,则一般x

p

*不与原函数f(x)的极小点x*重合,如课本图示。为了求得满足一定精度要求的f(x)的极小点x*,可采用逐步缩小区间的办法。

如课本图示,搜索区间的缩小可根据x

p *和x

2

,f(x

p

*)和f(x

2

)的相互关系,分六种不同的情

况。图中阴影部分为消去的区间。可将f(x

p *)和f(x

2

)中函数值高的点作为缩小后的新区间

的一个边界点。然后以x

2,x

p

*,x

1

(或x

3

)再次构造一条具有“高——低——高”形态的抛

物线。如此反复进行,直到搜索区间内的∣x

2-x

p

*∣值小于规定的精度ε时,停止迭代,

最后以x

p *和x

2

中函数值较小的点作为f(x)的极值点x*。

3、二次插值法计算步骤:

(1)确定初始搜索区间[x

1,x

3

]并给定ε.在初始区间[x

1

,x

3

]内选定一点x

2

,应满足条件:

x 1

2

3

,f(x

1

)>f(x

2

)

3

),即函数值具有“两头大,中间小”的性质。这可以采用中

所述进退法完成。

(2)以x

1,x

2

,x

3

三点构造新插值曲线P(x),并按式4-9求出x

p

*。

(3)检验∣x

2-x

p

*∣<ε?若是终止迭代,以x

2

,x

p

*中函数值较小的点作为最优点x*;若否,

转下一步。

(4)判别x

2和x

p

*,f(x

2

)和f(x

p

*)的相互关系属于图4-10中何种情况。舍去函数值较大

的点x

1(或x

3

)缩小区间,用x

2

,x

p

*,x

3

(或x

1

)作为新的三点(在这三点处函数值

仍保持“高——低——高”形态),转向(2)重新构造新插值曲线P(x)。

4、二次插值法的计算框图见下图:

四、实验步骤:

1.编制调试程序。

2.计算实例。

五、实验报告内容

3、绘制程序框图。

4、记录计算结果并分析。

实验三 Powell 法

一、实验目的

1、加深对Powell 法的基本理论和算法框图及步骤的理解。

2、熟悉、调试Powell 法语言程序。

3、巩固无约束优化方法。

二、实验内容

1、调试Powell 法C 语言程序。

2、利用调试好的C 语言程序进行实例计算。

3、根据实验结果写实验报告

三、实验设备及工作原理

1、设备简介

装有Windows 系统及C 语言系统程序的微型计算机,每人一台。 2、Powell 法原理

(1) 鲍威尔共轭方向法原理 1)共轭方向的构造

(以二维为例)对于某两点 ,分别沿方向 ( 不平行)一维搜索得到两个最优点 ,构成方向 ,则 与

为共轭方向。如图所示。

共轭方向法的迭代过程

2010

,X X

1

S

12010,S X X

-21,X X 122X X S

-=1S 2S

2)鲍威尔共轭方向法基本原理:

a 、第一轮迭代与坐标轮换法相同。将本轮迭代起点和N 次一维搜索的末点组成一个新的方向,沿这个方向一维搜索,得到本轮迭代的终点。

b 、从第二轮起,舍去前一轮的第一个一维搜索方向,将前一轮的后N 个一维搜索方向作为本轮迭代的前N 个方向,这N 个方向的一维搜索终点与本轮搜索的起点构成第N+1个一维搜索方向,沿这个方向做一维搜索,得到本轮搜索的终点。

c 、若不满足精度要求,则重复迭代。

(3)鲍威尔共轭方向法的特点

收敛速度比坐标轮换法有明显的提高。前提是每轮迭代所产生的新的方向与本轮前N-1个方向之间要保持线性无关。若这些方向之间线性相关,则降低了搜索空间的维数,导致不能完全穷尽对设计空间每个方向的搜索,从而不能收敛于真正的最优解。

(2)改进的鲍威尔法 1)基本原理

共轭方向法的前提是每一轮迭代中新生成的第N+1个方向与其它方向线性无关,如果出现线性相关,则导致算法不能正确收敛。

鲍威尔为了解决该问题,加入了对共轭方向的判断。

如果线性无关则采用该方向,但并不是机械的替换上一轮第一个方向,而是替换函数值下降最多的方向。如果线性相关,则还是用上一轮迭代的方向。

2)线性相关性的判别准则

其中:f1——本轮迭代起点函数值

???

-?

(5.0))(2(f f f f f f f f f k m k m

f2——本轮迭代终点函数值 f3——映射点函数值

Δmk ——函数值下降最大的一步

一维搜索 若满足该公式,则去掉第m 个方向,下一轮迭代的m 到N 方向采用本轮次第m+1到N+1个方向;若不满足,则本轮迭代结束,以本轮终点为下一轮起点,仍采用本轮的N 个方向进行迭代。

3、基本步骤

(1)给定初始点和计算精度。

(2)置k=1,取N 个坐标轴的单位向量为搜索方向 (i=0,1,…,N -1),

(3)从 出发,沿 一维搜索,得到N 个极小点

,(i=1,2,…,N ),找到函数值下降最快的一次一维搜索的函数下降值和方

向,记作Δk

m , (4)计算反射点 , 计算f 1,f 2,f 3。 (5)若满足判别条件,构造本轮迭代第N+1个方向:

由N 次一维搜索的终点沿 一维搜索得到本轮迭代终点,作为

下一轮迭代(k +1轮)起点;去掉方向,将 作为下一轮迭代的第N 个

方向。否则,保留前N 个搜索方向到下一轮迭代,取m in(f 2,f 3)对应的点作为下一轮起点。

(6)若满足迭代终止条件:

终止迭代,输出优化结果; 否则k ←k+1,返回(3)。

4、Powell 法的计算框图见下图:

四、实验步骤

1.编制调试程序。 k

X 0 k

i S k m

S k

i X k

k N k N X X X 012 -←+

k k N k

N X X S 0

-←k

m S k

N S

1010210010)

()

()(εε<-?<-+++k k k k

k X X X f X f X f

五、实验报告内容

1、绘制程序框图。

2、记录计算结果并分析

实验四复合形法

一、实验目的

1、加深对复合形法的基本理论和算法框图及步骤的理解。

2、培养学生独立编制、调试复合形法C语言程序的能力。

二、实验内容

1、编制调试复合形法C语言程序。

2、利用调试好的C语言程序进行实例计算。

3、根据实验结果写实验报告

三、实验设备及工作原理

1、设备简介

装有Windows系统及C语言系统程序的微型计算机,每人一台。

2、复合形法原理

(1)在设计空间找到K个可行点构成多面体(二维:多边形,三维:多面体,再高维的:超多面体),即所谓初始复合形。根据复合型各顶点目标函数值的大小找到复合形的最坏点,以其它K-1个顶点的形心为中点,找到最坏点的映射点,其它K-1个点与这个映射点构成新的复合形。这样反复进行坏点的映射,使得复合形不断更新或者收缩,使之逐渐逼近约束最优点。

(2)初始复合形的形成

a、初始复合形的顶点数K的确定:

K一般取在一般n+1?K?2n,当维数n较小时取较大的K(如K=2n);当n较大时,取较小的K。

b、初始复合形的顶点的确定

1)人工试凑的方法-适于维数较低的问题

2)随机产生法之一

①利用随机函数在(0,1)内产生n个随机数,可以得n个变量

x i=a i+ξi (b i-a i) i=1,2,…n

a , b分别为n个变量的下界和上界

于是得复合形的第一个顶点记为X (1) ,经过K 次这样的步骤可以依次得到(a i , b i )内的K 个随机点X (1),X (2),…,X (K) ,共产生K ×n 个随机数。

会有两种情况:a 、K 个随机点都不可行,重新产生; b 、至少有一个点是可行点,设法调入可行域

② 将非可行点调入可行域(结合图5-

8)

由随机法产生的K 个随机点排队,可行点放在前面,非可行点放在后面,假设前q 个点为可行点,那么第q+1个点X (q+1) 为非可行点,将X (q+1)

(3)初始复合形的搜索方法 a 、映射(也叫反射)(见图)

步骤:1) 计算复合形各顶点的目标函数值,比较其大小,找出最好点X (L) 、最坏点X (H) 、次坏点X (SH);

2) 算除去最坏点之外的k-1顶点的中心X (C)

3) 计算映射点X (R) X (R) = X (C) +α(X (C) -X (H))

4)如果映射点X (R) 既为可行点,且F R

合形;否则将α缩小0.7倍,继续用上述公式计算X (R) ,直到

=-k

j Xj

k 1

1

1

X(R)既可行又适用。

b、扩张的方法(见图)

如果得到的反射点X(R)为可行点,而且目标函数值下降较多(如Fr

X(E)= X(R) +γ(X(R) -X(C)) γ取1

如果X(E)既为可行点,且F E

c、收缩的方法(见图)

如果在中心点X(C)以外找不到合适的反射点,则可用收缩的方法在X(C)和X(H)中间找较好的新点X(K)

X(K)= X(H) +β(X(C) -X(H)) 收缩系数β取0.7

如果该点适用,收缩成功,用X(K)代替X(H) .

d.压缩的方法(见图)

如果以上方法均无效,还可以将复合形各顶点向最好点靠拢的方法,即压缩。

2、复合形法的迭代步骤

(1)输入各常量,如设计变量个数n,收敛精度ε1、ε2,初始反射系数α,设计变量的上下界值b j和a j,j=1,2,…,n。

(2)产生初始复合形,其各顶点要在可行域内,且满足约束条件。即第一个顶点产生方法不限,其余k-1个顶点可按随机法产生(设复合形有k个顶点)。

x j(i)=a j+ξij(b j-a j) i=1,2,…,k, j=1,2,…,n

式中,k为顶点号;j为点的第j个坐标,a j、b j为对应于x j分量的边界约束;ξij为伪随机数,一般微机产生。

(3)计算各顶点的目标函数值,找出最坏点X(H)、次坏点X(SH)、最好点X(L),即

X(H): F(X(H))=max {F(X(i)),i=1,2,…,k}

X(SH): F(X(SH))=max {F(X(i)),i=1,2,…,k,i≠H}

X(L): F(X(L))=min{F(X(i)),i=1,2,…,k}

(4)计算除最坏点X(H)之外的k-1个顶点的中心点X(c),即

X(c)=1/k∑X(i) (k=i,2,…,k,k≠H)

检验中心X(c),若X(c)在可行域内,则继续执行步骤(5);若X(c)不在可行域内,此时可行域为非凸集,如下左图所示,此时作下述计算:

利用最坏点X(H)和中心点X(c)重新确定一个区域,即在以X(H)为起点。X(c)为端点的超方体中重新利用伪随机数产生新的复合形,即转回(2)。新区域如上左图中虚线所示,此时,各设计变量x j的边界约束应是

若x j(H)

a=x(H)

b j=x j(c)

若x j(H)>x j(c),j=1,2,…,n,则取

a j=x j(c)

b j=x j(H)

如此产生的新的中心点X(c),一般已在可行域内,若该点仍落在可行域外,则应再转回步骤(2),如此反复,直至X(c)为可行点为止。

(5)在最坏点X(b)和中心点X(c)的连线方向上取反射点X(r),即

X(R)=X(c)+α(X(c)-X(H)) 式反射系数α的初值一般取为α=1.3

求出反射点X(R)后,对该点进行可行性检查,若X(R)越出了可行域,如上右图所示,则将反射系数α减半,使X(R)点退回可行域,得到新的X(R)点。若新反射点X(R)仍未退回可行域,继续将α减半,如此反复,直至X(R)为可行点为止。

(6)构成新的复合形:计算反射点的函数值F(X(R)),并与最坏点X(H)比较。有两种情况:

1)若F(X(R))

2)若F(X(R))?F(X(H)),则将反射系数α减半,转步骤(5),重新计算反射点。如果新的反射点X(R)既为可行点,又满足F(X(R))

若直到反射系数α小于一个预先给定的很小正数时,反射点的函数值仍大于最坏点函数值,则说明该反射方向不好,此时改用次坏点X(SH)代替最坏点X(H),即X(H)←X(SH),换一个反射方向,转步骤(4)。

(7)终止判别:反复执行上述过程中,随着反射系数α的不断减半,复合形逐渐向最优点收缩,复合形越来越小,直到满足下列情况之一:

1)各顶点与好点的函数值之差的均方根小于误差限

{1/k∑[F(X(i))-F(X(L))]2}1/2?ε1

2)各顶点与好点的函数值平方和小于误差限

∑[F(X(i))-F(X(L))]2?ε2

3) 各顶点与好点的函数值之差的绝对值之和小于误差限

∑|F(X(i))-F(X(L))|?ε3

若复合形不满足迭代终止条件,则应转向步骤(3),开始下一次迭代。

四、实验步骤:

1.编制调试程序。

2.计算实例。

5、绘制程序框图。

6、记录计算结果并分析。

实验五 惩罚函数法

一、实验目的

1、加深对惩罚函数法的基本理论和算法框图及步骤的理解。

2、调试并熟悉惩罚函数法的C 语言程序。

3、掌握常用约束优化方法程序的使用方法。

二、实验内容

1、调试惩罚函数法的C 语言程序。

2、利用调试好的C 语言程序进行实例计算。

3、根据实验结果写实验报告

三、实验设备及工作原理

1、设备简介

装有Windows 系统及C 语言系统程序的微型计算机,每人一台。 2、惩罚函数法原理 外罚函数法基本原理

惩罚函数定义在可行域外部,迭代过程从外部逼近最优点。 1)不等式约束的处理

a 、惩罚项:

要求:迭代点离约束越远,惩罚项越大。

式中:

b 、惩罚系数,一般取递增的等比数列。

??

?

?

?<===≥∈n q v X h p u X g t s R

X X F v u n

,,2,1,0)(,,2,1,0)(..),(min ∑

=p

u u k X g 1

2

)))(,0(min(

γ??

?=-=

(在可行域内)

在可行域外)

0)((2

)

()())(,0min(X g X g X g X g u u u u

C 、 惩罚函数: 2)等式约束的处理:

1)惩罚项:

2) 惩罚函数 3)带有惩罚项的目标函数的构造:

3、惩罚函数法算法流程:

=+=p u u k

k X g X F X 1

2

)))

(,0(min()(),(

γ

γφ+∞

→<<

γ

γγ......021∑

=p

v v k

X h 1

2

)

( γ

=+=q v v k

k X h X F X 1

2

)

()(),(

γ

γφ∑∑

==++=q v v

k

p u u k

k X h

X g X F X 1

21

2

)

()))(,0(min()(),(

γ

γ

γφ

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

实验优化设计考试答案

第一题 考察温度对烧碱产品得率的影响,选了四种不同温度进行试验,在同一温度下进行了5次试验(三数据见下表)。希望在显着性水平为。 1.SSE的公式 2.SSA的公式 3.将表格粘贴进Excel,然后进行数据分析,勾选标于第一行,显示在下面 P=,远小于,所以是显着的 “方差分析” “响应C1C2C3C4” “选单因素未重叠” 4.打开Minitab,复制表格, “统计” 点击“比较”勾选第一个,确定 结果:工作表3 单因子方差分析:60度,65度,70度,75度 来源自由度SSMSFP 因子误差合计 S==%R-Sq(调整)=% 平均值(基于合并标准差)的单组95%置信区间 水平N平均值标准差------+---------+---------+---------+--- 60度度度度合并标准差= Tukey95%同时置信区间 所有配对比较 单组置信水平=% 60度减自: 下限中心上限------+---------+---------+---------+--- 65度度度度减自: 下限中心上限------+---------+---------+---------+--- 70度度度减自: 下限中心上限------+---------+---------+---------+--- 75度获得结果,区间相交包含的不明显,反之明显 第二题 为研究线路板焊点拉拔力与烘烤温度、烘烤时间和焊剂量之间关系。从生产过程中收集20批数据,见下表: 1.将表格粘贴进Minitab,然后“统计”“回归”“回归”“响应,变量”“图形,四 合一” 2.P小于,显着 4.残差分析 第三题 钢片在镀锌前需要用酸洗方法除锈, 为提高除锈效率,缩短酸洗时间,需 要寻找好的工艺参数。现在试验中考 察如下因子与水平:

机械优化设计论文(基于MATLAB工具箱的机械优化设计)

基于MATLAB工具箱的机械优化设计 长江大学机械工程学院机械11005班刘刚 摘要:机械优化设计是一种非常重要的现代设计方法,能从众多的设计方案中找出最佳方案,从而大大提高设计效率和质量。本文系统介绍了机械优化设计的研究内容及常规数学模型建立的方法,同时本文通过应用实例列举出了MATLAB 在工程上的应用。 关键词:机械优化设计;应用实例;MATLAB工具箱;优化目标 优化设计是20世纪60年代随计算机技术发展起来的一门新学科, 是构成和推进现代设计方法产生与发展的重要内容。机械优化设计是综合性和实用性都很强的理论和技术, 为机械设计提供了一种可靠、高效的科学设计方法, 使设计者由被动地分析、校核进入主动设计, 能节约原材料, 降低成本, 缩短设计周期, 提高设计效率和水平, 提升企业竞争力、经济效益与社会效益。国内外相关学者和科研人员对优化设计理论方法及其应用研究十分重视, 并开展了大量工作, 其基本理论和求解手段已逐渐成熟。 国内优化设计起步较晚, 但在众多学者和科研人员的不懈努力下, 机械优化设计发展迅猛, 在理论上和工程应用中都取得了很大进步和丰硕成果, 但与国外先进优化技术相比还存在一定差距, 在实际工程中发挥效益的优化设计方案或设计结果所占比例不大。计算机等辅助设备性能的提高、科技与市场的双重驱动, 使得优化技术在机械设计和制造中的应用得到了长足发展, 遗传算法、神经网络、粒子群法等智能优化方法也在优化设计中得到了成功应用。目前, 优化设计已成为航空航天、汽车制造等很多行业生产过程的一个必须且至关重要的环节。 一、机械优化设计研究内容概述 机械优化设计是一种现代、科学的设计方法, 集思考、绘图、计算、实验于一体, 其结果不仅“可行”, 而且“最优”。该“最优”是相对的, 随着科技的发展以及设计条件的改变, 最优标准也将发生变化。优化设计反映了人们对客观世界认识的深化, 要求人们根据事物的客观规律, 在一定的物质基和技术条件下充分发挥人的主观能动性, 得出最优的设计方案。 优化设计的思想是最优设计, 利用数学手段建立满足设计要求优化模型; 方法是优化方法, 使方案参数沿着方案更好的方向自动调整, 以从众多可行设计方案中选出最优方案; 手段是计算机, 计算机运算速度极快, 能够从大量方案中选出“最优方案“。尽管建模时需作适当简化, 可能使结果不一定完全可行或实际最优, 但其基于客观规律和数据, 又不需要太多费用, 因此具有经验类比或试验手段无可比拟的优点, 如果再辅之以适当经验和试验, 就能得到一个较圆满的优化设计结果。 传统设计也追求最优结果, 通常在调查分析基础上, 根据设计要求和实践

西安交大结构优化设计实验报告

结构优化设计实验报告 1.实验背景 结构优化能在保证安全使用的前提下保证工程结构减重,提高工程的经济效益,这也是课程练习的有效补充。 2.实验课题 问题1:考察最速下降法、拟牛顿法(DFP,BFGS)、单纯形法的性能,使用matlab中的fminunc 和fminsearch 函数。 ●目标函数1: 目标函数,多元二次函数 其中,,,, 初值 ●目标函数2 1.3 结果分析:从上述结果可以看出牛顿法具有较好的稳定性,最速下降法和单纯形法在求解超越函数时稳定性不佳,最速下降法迭代次数最少,单纯形法

迭代次数最多。 问题2:使用matlab中的linprog和quadprog函数验证作业的正确性。 用单纯形法求解线性规划问题的最优解 ●目标函数1 6 , 运行结果: 单纯形法的解析解 用两相法求解线性规划问题的最优解 ●目标函数2 , 运行结果: 单纯形法的解析解 求解二次规划问题的最优解 ●目标函数2 , , 运行结果:

问题3:用Matlab命令函数fmincon求解非线性约束规划问题 ●目标函数1 运行结果: 迭代次数:8 ●目标函数2 运行结果: 迭代次数:16 问题4:用Matlab命令函数fmincon求解人字形钢管架优化问题。已知:2F = 600kN,2B = 6 m,T=5 mm,钢管材料E = 210 GPa,密度=, 许用应力[ ]=160MPa,根据工艺要求2m ≤ h≤6m ,20mm ≤ D≤300mm 。求h , D 使总重量W为最小。

求 目标函数1 运行结果:

迭代次数:8 问题5:修改满应力程序opt4_1.m 和齿形法程序opt4_2.m ,自行设计一个超静定桁架结构,并对其进行优化。要求: (1)设计变量数目不小于2; (2)给出应力的解析表达式; (3)建立以重量最小为目标函数、应力为约束的优化模型。 分别用满应立法和齿轮法求解图2超静定结构,已知材料完全相同, , , 2000,1500==σσ , 满应力法和齿轮法运行结果:

北京理工大学《数据结构与算法设计》实验报告实验一

《数据结构与算法设计》 实验报告 ——实验一 学院: 班级: 学号: 姓名:

一、实验目的 1.通过实验实践、巩固线性表的相关操作; 2.熟悉VC环境,加强编程、调试的练习; 3.用C语言编写函数,实现循环链表的建立、插入、删除、取数据等基本操作; 4.理论知识与实际问题相结合,利用上述基本操作实现约瑟夫环。 二、实验内容 1、采用单向环表实现约瑟夫环。 请按以下要求编程实现: ①从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表。环表中的 结点编号依次为1,2,……,m。 ②从键盘输入整数s(1<=s<=m)和n,从环表的第s个结点开始计数为1,当计数到 第n个结点时,输出该第n结点对应的编号,将该结点从环表中消除,从输出结点 的下一个结点开始重新计数到n,这样,不断进行计数,不断进行输出,直到输出 了这个环表的全部结点为止。 三、程序设计 1、概要设计 为实现上述程序功能,应用单向环表寄存编号,为此需要建立一个抽象数据类型:单向环表。 (1)、单向环表的抽象数据类型定义为: ADT Joseph{ 数据对象:D={ai|ai∈ElemSet,i=1,2,3……,n,n≥0} 数据关系:R1={ |ai∈D,i=1,2,……,n} 基本操作: create(&L,n) 操作结果:构造一个有n个结点的单向环表L。 show(L) 初始条件:单向环表L已存在。 操作结果:按顺序在屏幕上输出L的数据元素。 Josephf( L,m,s,n) 初始条件:单向环表L已存在, s>0,n>0,s

试验优化设计与分析(教材)

试验优化设计与分析(教材) 成果总结 成果完成人:任露泉,丛茜,杨印生,李建桥,佟金成果完成单位:吉林大学 推荐等级建议:二等奖

1.立项背景 在现代社会实现过程和目标的最优化,已成为解决科学研究、工程设计、生产管理以及其他方面实际问题的一项重要原则。试验优化技术因其具有设计灵活、计算简便、试验次数少、优化成果多、可靠性高、适用面广等特点,已成为现代设计方法中一个先进的设计方法,成为发达国家企业界人士、工程技术人员、研究人员和管理人员的必备技术,它对于创造利润和提高生产率起着巨大的作用。因此在我国为了赶超世界先进水平,促进科研、生产和管理事业的发展,编著相关教材,大力推广与应用试验优化技术,不仅具有普遍的实际意义,也具有一定的迫切性。 20世纪80年代初,鉴于国民经济建设实践和科学技术研究中对试验优化技术的广泛需求,为推动教学改革、提高教学质量,任露泉教授对试验优化理论与技术进行了深入系统研究,为本科生开设了“试验设计”课程,为研究生开设了“试验优化技术”课程,并于1987年由机械工业出版社出版了教材《试验优化技术》,产生了很高的学术与技术影响。 2001年任露泉教授在《试验优化技术》一书的基础上编著了《试验优化设计与分析》教材,由吉林科技出版社出版发行。该教材是对1987年出版的《试验优化技术》的修改、补充和发展。作者根据对试验优化的教学和科研应用的多年实践与体会,为适应读者学习与使用的实际需要,调整修改了原书中的部分内容和一些方法的设计程式;补充了一些试验优化设计的新方法、新技术;增添了试验优化的一些最新应用实例;并增加了试验优化分析一篇。 本教材2001年获吉林省长白山优秀图书一等奖,2002年被遴选为教育部全国研究生教学用书,再次出版发行,2004年获吉林省教学成果一等奖。 2.教材内容 本教材万字,共分三篇二十一章。第一篇试验设计,除正交设计、干扰控制设计与数据处理等常用技术外,还介绍SN比设计、均匀设计、广义设计、调优运算及稳健设计等正交试验设计技术的拓广应用和现代发展的最新方法;第二篇回归设计,除各种回归的正交设计、旋转设计、饱和设计、多项式设计、还介绍多次变换设计、交互作用搜索设计、混料设计以及D-最优设计等回归设计技术的进一步完善与最新应用技术;在第三篇试验优化技术分析中,介绍了试验数据处理过程中经常遇到的难题及其解决办法,数据分析的最新研究成果及其应用实例。例如:有偏估计、PPR分析、探索性数据分析等;此外还介绍了试验优化的常用统计软件。 3.教材特点

机械优化设计实验指导书

机械优化设计实验指导 书 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

《机械优化设计》 实验指导书 武秋敏编写 院系:印刷包装工程学院 专业:印刷机械 西安理工大学 二00七年九月 上机实验说明 【实验环境】 操作系统: Microsoft Windows XP 应用软件:Visual C++或TC。 【实验要求】 1、每次实验前,熟悉实验目的、实验内容及相关的基本理论知识。 2、无特殊要求,原则上实验为1人1组,必须独立完成。 3、实验所用机器最好固定,以便更好地实现实验之间的延续性和相关性,并便于检查。 4、按要求认真做好实验过程及结果记录。 【实验项目及学时分配】 【实验报告和考核】 1、实验报告必需采用统一的实验报告纸,撰写符合一定的规范,详见实验报告撰写格式及规范。

(一)预习准备部分 1. 预习本次实验指导书中一、二、三部分内容。 2. 按照程序框图试写出汇编程序。 (二)实验过程部分 1. 写出经过上机调试后正确的程序,并说明程序的功能、结构。 2. 记录4000~40FFH内容在执行程序前后的数据结果。 3. 调试说明,包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。 (三)实验总结部分

实验(一) 【实验题目】 一维搜索方法 【实验目的】 1.熟悉一维搜索的方法-黄金分割法,掌握其基本原理和迭代过程; 2.利用计算语言(C语言)编制优化迭代程序,并用给定实例进行迭代验证。 【实验内容】 1.根据黄金分割算法的原理,画出计算框图; 2.应用黄金分割算法,计算:函数F(x)=x2+2x,在搜索区间-3≤x≤5时,求解其极小点X*。 【思考题】 说明两种常用的一维搜索方法,并简要说明其算法的基本思想。 【实验报告要求】 1.预习准备部分:给出实验目的、实验内容,并绘制程序框图; 2.实验过程部分:编写上机程序并将重点语句进行注释;详细描述程序的调过程(包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析。 3.实验总结部分:对本次实验进行归纳总结,给出求解结果。要求给出6重迭代中a、x1、x2、b、y1和y2的值,并将结果与手工计算结果进行比较。 4.回答思考题。

优化设计报告

优化设计实验报告

无约束非线性规划问题 ) sin(1)(min 2 2 35x e x x x x f x -+-++= fun='(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x))'; ezplot(fun,[-2,2]); [xopt,fopt,exitflag,output]=fminbnd(fun,-2,2) 输出: xopt = 0.2176 fopt = -1.1312 exitflag = 1 output = iterations: 12 funcCount: 13 algorithm: 'golden section search, parabolic interpolation' message: [1x112 char]

二维无约束非线性函数最优解 )12424()(min 2212 2211++++=x x x x x e X f x fun='exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1)'; x0=[0,0]; options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8); [x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0,options) f='exp(x)*(4*x^2+2*y^2+4*x*y+2*y+1)'; ezmesh(f); First-order Iteration Func-count f(x) Step-size optimality 0 3 1 2 1 9 0.717044 0.125092 1.05 2 15 0.073904 10 1.28 3 21 0.000428524 0.430857 0.0746 4 24 0.000144084 1 0.0435 5 27 1.95236e-008 1 0.000487 6 30 6.63092e-010 1 9.82e-005 7 33 1.46436e-015 1 4.91e-008 Local minimum possible. fminunc stopped because it cannot decrease the objective function along the current search direction. Computing finite-difference Hessian using user-supplied objective function. x = 0.5000 -1.0000 fval = 1.4644e-015 exitflag = 5 output =

算法设计与实验报告讲解

算法设计与分析实验报告 学院:信息学院 专业:物联网1101 姓名:黄振亮 学号:20113379 2013年11月

目录 作业1 0-1背包问题的动态规划算法 (7) 1.1算法应用背景 (3) 1.2算法原理 (3) 1.3算法描述 (4) 1.4程序实现及程序截图 (4) 1.4.1程序源码 (4) 1.4.2程序截图 (5) 1.5学习或程序调试心得 (6) 作业2 0-1背包问题的回溯算法 (7) 2.1算法应用背景 (3) 2.2算法原理 (3) 2.3算法描述 (4) 2.4程序实现及程序截图 (4) 2.4.1程序源码 (4) 2.4.2程序截图 (5) 2.5学习或程序调试心得 (6) 作业3循环赛日程表的分治算法 (7) 3.1算法应用背景 (3) 3.2算法原理 (3) 3.3算法描述 (4) 3.4程序实现及程序截图 (4)

3.4.1程序源码 (4) 3.4.2程序截图 (5) 3.5学习或程序调试心得 (6) 作业4活动安排的贪心算法 (7) 4.1算法应用背景 (3) 4.2算法原理 (3) 4.3算法描述 (4) 4.4程序实现及程序截图 (4) 4.4.1程序源码 (4) 4.4.2程序截图 (5) 4.5学习或程序调试心得 (6)

作业1 0-1背包问题的动态规划算法 1.1算法应用背景 从计算复杂性来看,背包问题是一个NP难解问题。半个世纪以来,该问题一直是算法与复杂性研究的热点之一。另外,背包问题在信息加密、预算控制、项目选择、材料切割、货物装载、网络信息安全等应用中具有重要的价值。如果能够解决这个问题那么则具有很高的经济价值和决策价值,在上述领域可以获得最大的价值。本文从动态规划角度给出一种解决背包问题的算法。 1.2算法原理 1.2.1、问题描述: 给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问:应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 形式化描述:给定c >0, wi >0, vi >0 , 1≤i≤n.要求找一n元向量(x1,x2,…,xn,), xi ∈{0,1}, ?∑ wi xi≤c,且∑ vi xi达最大.即一个特殊的整数规划问题。 1.2.2、最优性原理: 设(y1,y2,…,yn)是 (3.4.1)的一个最优解.则(y2,…,yn)是下面相应子问题的一个最优解: 证明:使用反证法。若不然,设(z2,z3,…,zn)是上述子问题的一个最优解,而(y2,y3,…,yn)不是它的最优解。显然有 ∑vizi > ∑viyi (i=2,…,n) 且 w1y1+ ∑wizi<= c 因此 v1y1+ ∑vizi (i=2,…,n) > ∑ viyi, (i=1,…,n) 说明(y1,z2, z3,…,zn)是(3.4.1)0-1背包问题的一个更优解,导出(y1,y2,…,yn)不是背包问题的最优解,矛盾。 1.2.3、递推关系:

机械优化设计实验指导书

前言 机械优化设计是一门实践性很强的课程,必须通过实际上机操作运用各种优化方法程序来达到: 1、加深对机械优化设计方法的基本理论和算法步骤的理解; 2、培养独立编制计算机程序的能力; 3、掌握常用优化方法程序的使用; 4、培养灵活运用优化方法解决工程设计问题的能力。 因此,本课程在课堂教学过程中安排适当的时间上计算机运算。本书作为上机实验的指导书,旨在对每次实验目的内容提出具体要求,并加以考核。 实验报告内容 每次上机实验后,学生要做一份完整的实验报告,实验报告内容应包括: 1、优化方法的基本原理简述; 2、自编优化方法源程序。 3、考核题的优化结果及其分析; 4、具体工程设计问题的数学模型、优化设计结果及其分析。

实验一 一维搜索方法(黄金分割法或二次插值法) 1、 目的:加深对一维搜索方法的确定区间的进退法和缩短区间的黄金分割法或二次插值法基本原理的理解 2、 内容:按所给程序框图编制上机程序,上机输入、调试并运行程序,或调试并运行已给程序,用所给考核题进行检验。 3、 考核题(α0=0,h 0=0.1, ε=0.001) (1) 36102+-=t t )t (f min (2) 60645234+-+-=t t t t )t (f min (3) 221)t )(t ()t (f min -+= (4) x e x )x (f min -+=22 (5) 求函数4321322123141x x x x x x x x x x )X (f +--=自点T k ),,,(X 3210---=出发,沿方向T ),,,(4321=d 的最优步长因子α× 和在d 方向的极小点X *和极小值f(X *)。

实验报告-优化设计

福建农林大学金山学院实验报告 系(教研室):信息与机电工程系专业:机械设计制造及其自动化年级:2008 实验课程:优化设计姓名:学号:实验室号:_1# 607 计算机号:实验时间:指导教师签字:成绩: 一、实验目的 通过实验教学加深学生对优化设计方法的理解,培养学生程序调试和出错处理的能力,提高学生应用优化设计方法和程序设计的能力。 本实验课程的基本要求: 1)熟悉VB集成开发环境的使用,掌握设计程序和调试程序的基本方法。 2)掌握一些重要优化算法,并具有较强的编程能力和解决实际优化问题的能力。 3)具有设计简单综合应用型程序的能力。 二、实验内容及进度安排 1、进退法2学时 2、黄金分割法2学时 3、基于最优步长的坐标轮换法2学时 4、鲍威尔法4学时 三、实验设备 微型计算机100台以上,并已安装Visual Basic 6.0。 四、实验要求 1. 设计程序总体编程结构,根据程序N-S图,设计编写出程序; 2. 完成程序调试,并进行实验结果分析; 3. 完成实验报告。 五、实验注意事项 1. 树立严肃认真、一丝不苟的工作精神,养成实验时的正确方法和良好习惯,维护国 家财产不受损失; 2. 严格遵守实验室的规章制度,注意保持实验室内整洁; 3. 上机过程中注意保存程序,以免数据丢失,结束后应存储到个人移动设备并关闭计 算机; 4. 认真做好上机前的准备工作,实验后认真完成实验报告。 六、实验操作步骤及方法 (一).上机前的准备工作包括以下几个方面 1.复习和掌握与本次实验有关的教学内容。 2.根据实验的内容,对问题进行认真的分析,搞清楚要解决的问题是什么?给定的条件 是什么?要求的结果是什么?需要使用什么类型的数据(如整型、实型、双精度型、字符型等)?制定好程序总体编程结构。 3.根据程序N-S图,设计、编写出程序,在纸上编写好相关功能的事件代码。

银行家算法设计实验报告

银行家算法设计实验报告

银行家算法设计实验报告 一.题目分析 1.银行家算法: 我们可以把操作系统看做是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。 当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。 2.基本要求: (1)可以输入某系统的资源以及T0时刻进程对资源的占用及需求情况的表项,以及T0时刻系统的可利用资源数。 (2)对T0时刻的进行安全性检测,即检测在T0时刻该状态是否安全。

(3)进程申请资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回 B. 所申请的资源未大于其所需资源, 但大于系统此时的可利用资源,提 示分配不合理不予分配并返回。 C. 所申请的资源未大于其所需资源, 亦未大于系统此时的可利用资源,预 分配并进行安全性检查: a. 预分配后系统是安全的,将该进 程所申请的资源予以实际分配并 打印后返回。 b. 与分配后系统进入不安全状态,提示系统不安全并返回。 (4)对输入进行检查,即若输入不符合条件,应当报错并返回重新输入。 3.目的: 根据设计题目的要求,充分地分析和理解题 目,叙述系统的要求,明确程序要求实现的功能以及限制条件。 明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。

实验优化设计考试答案精选文档

实验优化设计考试答案 精选文档 TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-

第一题 考察温度对烧碱产品得率的影响,选了四种不同温度进行试验,在同一温度下进行了5次试验(三数据见下表)。希望在显着性水平为。 1.SSE的公式 2.SSA的公式 3.将表格粘贴进Excel,然后进行数据分析,勾选标于第一行,显示在下面 P=,远小于,所以是显着 的 4.打开Minitab,复制表 格,“统计”“方差分 析”“选单因素未重 叠”“响应 C1C2C3C4” 点击“比较”勾选第一 个,确定 结果: 工作表 3 单因子方差分析: 60度, 65度, 70度, 75度 来源自由度 SS MS F P 因子 3

误差 16 合计 19 S = R-Sq = % R-Sq(调整) = % 平均值(基于合并标准差)的单组 95% 置信区间水平 N 平均值标准差 ------+---------+---------+---------+--- 60度 5 (------*------) 65度 5 (------*------) 70度 5 (------*------) 75度 5 (------*------) ------+---------+---------+---------+--- 合并标准差 = Tukey 95% 同时置信区间 所有配对比较 单组置信水平 = % 60度减自: 下限中心上限 ------+---------+---------+---------+--- 65度 (------*------) 70度 (------*-----) 75度 (------*------) ------+---------+---------+---------+--- 65度减自: 下限中心上限 ------+---------+---------+---------+--- 70度 (------*-----) 75度 (------*------) ------+---------+---------+---------+--- 70度减自:

优化设计实验指导书(完整版)

优化设计实验指导书 潍坊学院机电工程学院 2008年10月 目录

实验一黄金分割法 (2) 实验二二次插值法 (5) 实验三 Powell法 (8) 实验四复合形法 (12) 实验五惩罚函数法 (19)

实验一黄金分割法 一、实验目的 1、加深对黄金分割法的基本理论和算法框图及步骤的理解。 2、培养学生独立编制、调试黄金分割法C语言程序的能力。 3、掌握常用优化方法程序的使用方法。 4、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、实验内容 1、编制调试黄金分割法C语言程序。 2、利用调试好的C语言程序进行实例计算。 3、根据实验结果写实验报告 三、实验设备及工作原理 1、设备简介 装有Windows系统及C语言系统程序的微型计算机,每人一台。 2、黄金分割法(0.618法)原理 0.618法适用于区间上任何单峰函数求极小点的问题。对函数除“单峰”外不作 其它要求,甚至可以不连续。因此此法适用面相当广。 0.618法采用了区间消去法的基本原理,在搜索区间内适当插入两点和,它们把 分为三段,通过比较和点处的函数值,就可以消去最左段或最右段,即完成一次迭代。 然后再在保留下来的区间上作同样处理,反复迭代,可将极小点所在区间无限缩小。 现在的问题是:在每次迭代中如何设置插入点的位置,才能保证简捷而迅速地找到极小点。 在0.618法中,每次迭代后留下区间内包含一个插入点,该点函数值已计算过,因此以后的每次迭代只需插入一个新点,计算出新点的函数值就可以进行比较。 设初始区间[a,b]的长为L。为了迅速缩短区间,应考虑下述两个原则:(1)等比收缩原理——使区间每一项的缩小率不变,用表示(0<λ<1)。 (2)对称原理——使两插入点x1和x2,在[a,b]中位置对称,即消去任何一边区间[a,x1]或[x2,b],都剩下等长区间。 即有 ax1=x2b 如图4-7所示,这里用ax1表示区间的长,余类同。若第一次收缩,如消去[x2,b]区间,则有:λ=(ax2)/(ab)=λL/L 若第二次收缩,插入新点x3,如消去区间[x1,x2],则有λ=(ax1)/(ax2)=(1-λ)L/λL

南京邮电大学算法设计实验报告——动态规划法

实验报告 (2009/2010学年第一学期) 课程名称算法分析与设计A 实验名称动态规划法 实验时间2009 年11 月20 日指导单位计算机学院软件工程系 指导教师张怡婷 学生姓名丁力琪班级学号B07030907 学院(系) 计算机学院专业软件工程

实验报告 实验名称动态规划法指导教师张怡婷实验类型验证实验学时2×2实验时间2009-11-20一、实验目的和任务 目的:加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题。 任务:用动态规划法实现求两序列的最长公共子序列,其比较结果可用于基因比较、文章比较等多个领域。 要求:掌握动态规划法的思想,及动态规划法在实际中的应用;分析最长公共子序列的问题特征,选择算法策略并设计具体算法,编程实现两输入序列的比较,并输出它们的最长公共子序列。 二、实验环境(实验设备) 硬件:计算机 软件:Visual C++

三、实验原理及内容(包括操作过程、结果分析等) 1、最长公共子序列(LCS)问题是:给定两个字符序列X={x1,x2,……,x m}和Y={y1,y2,……,y n},要求找出X和Y的一个最长公共子序列。 例如:X={a,b,c,b,d,a,b},Y={b,d,c,a,b,a}。它们的最长公共子序列LSC={b,c,d,a}。 通过“穷举法”列出所有X的所有子序列,检查其是否为Y的子序列并记录最长公共子序列并记录最长公共子序列的长度这种方法,求解时间为指数级别的,因此不可取。 2、分析LCS问题特征可知,如果Z={z1,z2,……,z k}为它们的最长公共子序列,则它们一定具有以下性质: (1)若x m=y n,则z k=x m=y n,且Z k-1是X m-1和Y n-1的最长公共子序列; (2)若x m≠y n且x m≠z k,则Z是X m-1和Y的最长公共子序列; (3)若x m≠y n且z k≠y n,则Z是X和Y的最长公共子序列。 这样就将求X和Y的最长公共子序列问题,分解为求解较小规模的问题: 若x m=y m,则进一步分解为求解两个(前缀)子字符序列X m-1和Y n-1的最长公共子序列问题; 如果x m≠y n,则原问题转化为求解两个子问题,即找出X m-1和Y的最长公共子序列与找出X 和Y n-1的最长公共子序列,取两者中较长者作为X和Y的最长公共子序列。 由此可见,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列,具有最优子结构性质。 3、令c[i][j]保存字符序列X i={x1,x2,……,x i}和Y j={y1,y2,……,y j}的最长公共子序列的长度,由上述分析可得如下递推式: 0 i=0或j=0 c[i][j]= c[i-1][j-1]+1 i,j>0且x i=y j max{c[i][j-1],c[i-1][j]} i,j>0且x i≠y j 由此可见,最长公共子序列的求解具有重叠子问题性质,如果采用递归算法实现,会得到一个指数时间算法,因此需要采用动态规划法自底向上求解,并保存子问题的解,这样可以避免重复计算子问题,在多项式时间内完成计算。 4、为了能由最优解值进一步得到最优解(即最长公共子序列),还需要一个二维数组s[][],数组中的元素s[i][j]记录c[i][j]的值是由三个子问题c[i-1][j-1]+1,c[i][j-1]和c[i-1][j]中的哪一个计算得到,从而可以得到最优解的当前解分量(即最长公共子序列中的当前字符),最终构造出最长公共子序列自身。

机械优化设计实例讲解学习

机械优化设计实例 压杆的最优化设计 压杆是一根足够细长的直杆,以学号为p值,自定义有设计变量的 尺寸限制值,求在p一定时d1、d2和l分别取何值时管状压杆的体积或重 量最小?(内外直径分别为d1、d2)两端承向轴向压力,并会因轴向压力 达到临界值时而突然弯曲,失去稳定性,所以,设计时,应使压应力不 超过材料的弹性极限,还必须使轴向压力小于压杆的临界载荷。 解:根据欧拉压杆公式,两端铰支的压杆,其临界载荷为:I——材料的惯性矩,EI为抗弯刚度 1、设计变量 现以管状压杆的内径d1、外径d2和长度l作为设计变量 2、目标函数 以其体积或重量作为目标函数 3、约束条件 以压杆不产生屈服和不破坏轴向稳定性,以及尺寸限制为约束条件,在外力为p的情况下建立优化模型: 1) 2)

3) 罚函数: 传递扭矩的等截面轴的优化设计解:1、设计变量: 2、目标函数

以轴的重量最轻作为目标函数: 3、约束条件: 1)要求扭矩应力小于许用扭转应力,即: 式中:——轴所传递的最大扭矩 ——抗扭截面系数。对实心轴 2)要求扭转变形小于许用变形。即: 扭转角: 式中:G——材料的剪切弹性模数 Jp——极惯性矩,对实心轴: 3)结构尺寸要求的约束条件: 若轴中间还要承受一个集中载荷,则约束条件中要考虑:根据弯矩联合作用得出的强度与扭转约束条件、弯曲刚度的约束条件、对于较重要的和转速较高可能引起疲劳损坏的轴,应采用疲劳强度校核的安全系数法,增加一项疲劳强度不低于许用值的约束条件。

二级齿轮减速器的传动比分配 二级齿轮减速器,总传动比i=4,求在中心距A最小下如何 分配传动比?设齿轮分度圆直径依次为d1、d2、d3、d4。第一、二 级减速比分别为i1、i2。假设d1=d3,则: 七辊矫直实验 罚函数法是一种对实际计算和理论研究都非常有价值的优化方法,广泛用来求解约束问题。其原理是将优化问题中的不等式约束和等式约束加权转换后,和原目标函数结合成新的目标函数,求解该新目标函数的无约束极小值,以期得到原问题的约束最优解。考虑到本优化程序要处理的是一个兼而有之的问题,故采用混合罚函数法。 一)、优化过程 (1)、设计变量 以试件通过各矫直辊时所受到的弯矩为设计变量: (2)、目标函数

优化设计实验报告(...)(1)

机械优化设计 实 验 报 告 姓名:欧阳龙 学号:2007500817 班级:07机设一班

一、黄金分割法 1、 数学模型 2()2f x x x =+,56x -≤≤ 2、 黄金分割法简介 黄金分割法适用于单谷函数求极小值问题,且函数可以不连续。黄金分割法是建立在区间消去法原理基础上的试探方法,即在搜索区间[],a b 内适当插入两点1α、2α,并计算其函数值。1α、2α将区间分成三段。应用函数的单谷性质,通过函数值大小的比较,删去其中一段,使搜索区间得以缩短。然后再在保留下来的区间上作同样的处置,如此迭代下去,使搜索区间无限缩小,从而得到极小点的数值近似解。黄金分割法能使相邻两次都具有相同的缩短率0.618,故黄金分割法又称作0.618法。 3、黄金分割法程序清单 #include #include /*目标函数*/ float ff(float x) { float y; y=x*x+2*x; return(y); } main() { float a,b,ab,Epsilon; float y1,y2,Alpha1,Alpha2; float Lambda=0.618; printf("please input the arear and Epsilon\n"); scanf("%f,%f,%f",&a,&b,&Epsilon); Alpha1=b-Lambda*(b-a),Alpha2=a+Lambda*(b-a); printf("%f,%f\n",Alpha1,Alpha2); y1=ff(Alpha1);y2=ff(Alpha2); printf("y1=%f,y2=%f\n",y1,y2); do {if(y1>=y2) {a=Alpha1; Alpha1=Alpha2; y1=y2; Alpha2=a+Lambda*(b-a); y2=Alpha2*Alpha2+2*Alpha2; }

算法与设计实验报告

算法与分析实验报告软件工程专业 安徽工业大学 指导老师:许精明

实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 一:实验目的 1:掌握动态规划算法的基本思想,学会用其解决实际问题。 2:通过几个基本的实验,提高算法分析与设计能力,提高动手操作能力和培养良好的编程习惯。 二:实验内容 1:杨辉三角 2:背包问题 3:汉诺塔问题 实验一:杨辉三角

问题分析: ①每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 ②第n行数之和为2^n。 ③下一行每个数字等于上一行的左右两个数字之和。 算法设计及相关源代码: public void yanghui(int n) { int[] a = new int[n]; if(n==1){ System.out.println(1); }else if(n==2) { System.out.print(1 + " " +1); }else{ a[1]=1; System.out.println(a[1]); a[2]=1;

System.out.println(a[1]+" "+a[2]); for(int i=3;i<=n;i++){ a[1]=a[i]=1; for(int j=i-1;j>1;j--){ a[j]=a[j]+a[j-1]; } for(int j=1;j<=i;j++){ System.out.print(a[j]+" "); } System.out.println(); } } } 实验结果:n=10 实验二:0-1背包问题 问题分析::令V(i,j)表示在前i(1<=i<=n)个物品中能够装入容量为就 j(1<=j<=C)的背包中的物品的最大价值,则可以得到如下的动态规划函数: (1) V(i,0)=V(0,j)=0 (2) V(i,j)=V(i-1,j) j

机械优化设计实验指导书(114830)讲解学习

机械优化设计实验指导书 实验一用外推法求解一维优化问题的搜索区间 一、实验目的: 1、加深对外推法(进退法)的基本理论和算法步骤的理解。 2、培养学生独立编制、调试机械优化算法程序的能力。 3、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、主要设备及软件配置 硬件:计算机(1台/人) 软件:VC6.0(Turbo C) 三、算法程序框图及算法步骤 图1-1 外推法(进退法)程序框图

算法程序框图:如图1-1所示。 算法步骤:(1)选定初始点a1=0, 初始步长h=h0,计算 y1=f(a1), a2=a1+h,y2=f(a2)。 (2)比较y1和y2: (a)如y1≤y2, 向右前进;,转(3); (b)如y2>y1, 向左后退;h=-h,将a1与a2,y1与y2的 值互换。转(3)向后探测; (3)产生新的探测点a3=a2+h,y3=f(a3); (4) 比较函数值 y2和y3: (a)如y2>y3, 加大步长 h=2h ,a1=a2, a2=a3,转(3)继续 探测。 (b)如y2≤y3,则初始区间得到:a=min[a1,a3], b=max[a3,a1],函数最小值所在的区间为[a, b] 。 四、实验内容与结果分析 1、根据算法程序框图和算法步骤编写计算机程序; 2、求解函数f(x)=3x2-8x+9的搜索区间,初始点a1=0,初始步长h0=0.1; 3、如果初始点a1=1.8,初始步长h0=0.1,结果又如何? 4、试分析初始点和初始步长的选择对搜索计算的影响。

实验二用黄金分割法求解一维搜索问题 一、实验目的: 1、加深对黄金分割法的基本理论和算法步骤的理解。 2、培养学生独立编制、调试机械优化算法程序的能力。 3、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、主要设备及软件配置 硬件:计算机(1台/人) 软件:VC6.0(Turbo C) 三、算法程序框图及算法步骤 图1-2 黄金分割法程序框图 算法程序框图:如图1-2所示。 算法步骤: 1)给出初始搜索区间[a,b]及收敛精度ε,将λ赋以0.618。

相关文档
最新文档