当前位置:文档之家› 机械优化设计——复合形方法及源程序

机械优化设计——复合形方法及源程序

机械优化设计
(一)题目:用复合形法求约束优化问题
2 2 2 2
min f xx154 x26;g164x1x20;g3x1100的最优解。
基本思路:在可行域中构造一个具有K个顶点的初始复合形。对该复合形各顶点的目标 函数值进行比较,找到目标函数值最大的顶点(即最坏点),然后按一定的法则求出目标 函数值有所下降的可行的新点,并用此点代替最坏点,构成新的复合形,复合形的形状 每改变一次,就向最优点移动一步,直至逼近最优点。
(二)复合形法的计算步骤
1)选择复合形的顶点数k,一般取2n,在可行域内构成具有k个顶点的初始 复合形。
2) 计算复合形个顶点的目标函数值,比较其大小,找出最好点xl、最坏点xh及此坏点
Xg..
3)计算除去最坏点Xh以外的(k-1)个顶点的中心Xc。判别Xc是否可行,若Xc为可行点, 则转步骤4);若Xc为非可行点,贝U重新确定设计变量的下限和上限值,即令
le-5
**apply(int,int);
double f(double
*);
double *g(doub
e *);
bool judc
e(double *);
int mai n()
将各疋点的目标函数值复合形法收敛控制精度*/
申请矩阵空间*/
/*
否.
/*
约束函数*/
计算出去Xh后的各顶可彳
点中心

标函数*/
1卩
亍点的判断
*/
int n
k;

int i,j
,k1;
int l;
double temporary;
double restrai n;
double reflect;
pri nt‘:(
一次坏点xg代替最坏
sran d(( un sig ned)time(NULL))
的复合形。
(三)复合形法程序框图见下图:
(四)源程序如下:
/*输入值选择
#in elude<>
#in elude
<>
#inelude
<>
#inelude
<>
#defi ne EE0
double
输入n,k,
n=2,k=3.本程序可以处理4n为2或3,k为3或4的情况*/
形成初始复合形的k
计算各顶点的目标函
相关主题