d).
o>置u=u3+h=90,f=f(u)=-1224000,k=k+l=3;
f)因为f>f3,kH1,所以置ul=u2=0,
f1=f2=0,u2=u3=-l740000,u3=u=90,f3=f=-l224000。
g)令a=min{ul,u3)=0,b=max{ul,u3)=90,所以该函数的一个单峰区间为[0,90]o
3)法求解:
a)置初始搜索区间[0,90],则a二0,b=90,左右试探点al=a+(b-a)=,
a2=a+(b-a)=,相应的函数值1=(al)=+006,2=(a2)=+006;
b)因为1>2,所以a=al=,al=a2=,a2=a+(b-a)=。
迭代第一次完成。
c)1=(al)=+006,2=(a2)=+006,因为1<2,置b=a2=,
a2=al=,2=1=+006,并计算al=a+(b~a)=。
第二次迭代完成。
d)1=(al)=+006,2=(a2)=+006,因为1>2,所以a=al=,
al=a2=,a2=a+(b~a)=。
第三次次迭代完成。
e)/
三次迭代后,al=,a2=,1=(al)=+006,2=(a2)=+006,
因为1>2,所以置a*=a2=,a*即为问题的解。
所以用法迭代三次的最优解为x*二,优化模型最小值为f(x*)=+006,即正方形的边长为52.5222cm时,储水箱的容积最大,最大为1993600cm2<>
5.用最速下降法求下列无约束优化问题极小点:
Minf(A)二打+4卅+60
设初始点取为/0)={2,2}T,迭代3次。
3)
•n求解一维问题
17
min0(a)=/(X⑹+^/(0>)=(2-4a)2+4(2-16a)2+60,当6/=—时取得
/、设计空间
/x.<5行域
1-
XI
+X,<4
1-
0"
X,<5
•]■
/
/0"
1''/«
>1254
6
设计空间非劣解
图3设计空间
F.(x)
图4目标空间
7.简述遗传算法、拓扑优化算法的思想。
遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,最早由美国密歇根大学的Holland教授提出,起源于20世纪60年代对于自然和人工自适应系统的研究。
遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。
每个个体实际上是染色体带有特征的实体。
染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现。
因此,在一开始需要实现从表现型到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。
这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。
拓扑优化以材料分布为优化对象,通过拓扑优化,可以在均匀分布材料的设计空间中找到最佳的分布方案。
具体来说,是在一个给定的空间区域里,依据已知的负载或支撑等约束条件,解决材料的分布问题,从而使结构的刚度达到最大或使输出位移、应力等目标达到规定要求的一种结构设计方法,是有限元分析和优化方法有机结合的方法。
拓扑优化的研究领域主要分为连续体拓扑优化和离散结构拓扑优化。
不论哪个领域,都要依赖于有限元方法。
连续体拓扑优化是把优化空间的材料离散成有限个单元(壳单元或者体单元),离散结构拓扑优化是在设计空间内建立一个由有限个梁单元组成的基结构,然后根据算法确定设计空间内单元的去留,保留下来的单元即构成最终的拓扑方案,从而实现拓扑优化。
拓扑优化的建模方法有变密度法,水平集法,独立映射法,计划法等。
求解方法即算法主要有:
QC法(优化准则法),MMA法(移动渐进法),SLP(序列线性规划法),SQP(序列二次规划法)。
8.依据自己工作,提出优化设计问题,并写出优化设计数学模型,编写优化程序,求出优化结果并分析。
ftincludeOftincludeO#include<>#include<>#include<>^defineFILEPATH//***〃数据文件名
^defineNCOLONY500^defineCITY500
int
xColony=80;
int
xCity;
double
edgeSpeed=5000;
double
•>
probabl=;
double
probab2=;;
long
N0CHANGE-20000;
long
maxGen=80000;
intcolony[NCOLONY][CITY];doublecityXY[CITY][2];
double
citydisECITY][CITY];
double
dis』[NCOLONY];
讶
double
sumbest,sumTemp;
double
speed;
int
temp[CITY],ibest;
clockt
tiineStartttimeNow,timeTemp;
long
GenNum,Ni;
voidmain()
registerintCl.j,k,posC,posCl;
intkltk2,11,12tposflag;
registerdoubledisChange;
statici=0;
timeStart=timeNow=timeTemp=c1ock();init();
for(;;)
{
for(j=0;jdisChange=O;posflag=0;
posC=rand()%xCity;
for(:
;)
{
if((rand()/{
doposCl=rand()%xCity;
while(posCl==posC):
Cl=colony[i][posCl];
}
else
{
doj=rand()%xCo1ony;whi1e(j==i);
k=posilion(colony[j],temp[posC]);
Cl=colony[j][(k+l)%xCity]:
posCl=position(temp,Cl);
}
if(speed>edgeSpeed&&posCKposC+2)break;
///////////////////////
if((posC+l)%xCity==posCl(posC-l+xCity)%xCity==posCl)break;kl=temp[posC]:
k2=temp[(posC+l)%xCity];
1l=temp[posCl];12=temp[(posCl+l)%xCity];
disChange+=citydis[kl][ll]+citydis[k2][12]-citydis[kl][k2]-citydistil][
12];
invert(posC.posCl);
posflag++;
if(posflag>xCity-1)break;////////////
posC++;
if(posC>=xCity)posC=0;
if(speed{
disp[i]+=disChange;
disChange=0;
tempTest(i);
}
)
if(speed>=edgeSpeed&&disChange<0)
{
disp[i]+=disChange;
k
disChange=O;
tempTest(i);
)
i++;
if(i>=xColony)
{
Ni++;GenNum++;i=0;
probabl=probab1*(1-GenNum*maxGen):
»
■
if(speed{
mapped();
}
if(GenNurn>-maxGen||Ni>二NOCHANGE)
{
LastCPO;
printBest(GenNuin,Ni);exit
(1);
else
for(j=kl;j{tl=j%xCity;t2=(j+l)%xCity;
tempdis+=citydis[tmp[tl]][tmp[t2]];)
returntempdis;
课后习题:
1:
用黄金分割法编程求解函数/以)=10(召+冬-5)2+(召-兀2)2由点
X(0)=[3.86933.3797]出发,沿方向=[-0・6,0・5]卩的极小值点。
解:
X(0)=[3.8693,1.3797]出发,沿=[-0・6,0・5]卩方向,可得
x2=-0.8333^+4.6041,带入原函数得:
/(X)=3.6389x)2-9.1007x,+22.7651,
容易确定其搜索区间为[0.3.8693]o黄金分割法C程序代码如下。
Doublea,b,e,k,u,al,a2,f1,f2,xljieguo,x2jieguo;
e=;k=(sprt(5)-l)/2;
a=0;b=;u二b-a;
while(u>e)
{
al=a+(l-k)*(b-a);a2=a+k**(b~a);
fl=*al**al+;
f2=*a2**a2+;
if(flb=a2;
else
a=a2;
u=b~a;
}
xlJieguo=(b+a)/2;x2Jieguo=*x1jieguo+;
结果显示X⑴=[1.25,3.562475]。
2:
用最速下降法求些列无约束优化问题极小点。
Mi心X)=#+4£_160),设初始点取为X(0)=[2,2f,迭代三次。
解:
依题意以及最速下降法可知:
,其中/=-W(X⑹)。
由题意可知V/-(Xa))=[2xf,8xJ]r,代入原函数可得/(Xa+,))=f(X(k)-akVf(Xik}))=/(X⑷一/[2彳,迟丁),是函数达到极小值则
满足:
川X;])=2(屮)-)•(—2屮>)+8(垮〉_8a・『)・(-8护)=0,即满足
宀空')二16({广。
根据上式,从x⑹出发求得,a0=—=0.13077,所
2(x;*))2+128(x^))2130
以X")=[2,2]7+0.13007[4,16]7=[2.52308,4.08112]「;刃=0.12723,所以
X
(2)=[2.5230&4.08112]7+0.12723(2x2.5230&8x4.08112]f=[2.16510.8.23505]7«2=0.11620,所以,更具前面计算可得:
乂⑶二[2.16510,8.23505]7+0.11620[2x2.1651058x8.2350习7=[2.66827,15.89035”3:
证明DFP法具有二次终止性。
考虑函数/(X)=+x"GX+刃X+C,H为n阶正定矩阵,由DPF方法可以得出
2
y汀=W(xz)-巧(X。
依题意可知只需证明对于心0丄…冲-1如下软式子
成立即可:
且当迭代nT次时,即m二nT时,有Hn=G】
H3j=Sj0s'Hsj=00证明:
当时,结论显然成立。
设结论对j成立,现证明i+1时结论亦成立。
注意到由精确一维搜索及归纳法假设,对于J\有
gj+Pjhgj^j+工(MWI&)Sj
A-j+1
=g;+円+£y[sj=0+乞s:
GSj=0
&.J+lj+1
由也=一4+血=%厲+禺+i及Gsj=兀,得
smGsj=-0+心:
汕+1兀=%品円=0
这就证明了定理中的第一组式子。
下证第二组式子,即
Hdj=j=0,l^..j+lo
由DFP公式立即可得而对于j
$二兀=s:
Gs]=0
yM+y=>^sj=smGsj=°
右rrMiSmj乩十i)jy[]Hmy
有比小=H^y)+-r—->z—-=H加)=s.
S+iX+i刃+1门井i〉j+i
定理证毕。
由上证明可知,DFP拟牛顿法是共馳方向法。
若取%=1,则初始方向为负梯度方向,此时方法变成共龜梯度法。
DFP算法是一个在理论分析和实际应用中都起重要作用的算法。
4:
用坐标轮换法编程求解函数的极小点X•:
/(X)=10(x,+x2-5)2+(x1-x2)2,由点x(°)=[o,or出发,迭代一次(或精度为io”,编程时使用)。
解:
根据坐标轮换法可得,X;“=Xf+ah,xy=x『+a;e2,依题意知,X;°)=[0,0]7,弓=[1,0]7,e2=[0jfo则,min/(Xj)=min(10(a:
—5)2+a;2),求解得£=罟,X|⑴=[罟,0卩,则,min/(XI<2))=min(10(^-«*)2+(^_^)2)求解得罟,则皆=[晋挣,一次迭代完毕。