- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
演化计算--论文
用郭涛算法计算多目标优化问题
本文将用一个实际的例子讲述如何用郭涛算法计算多目标优化问题,在这里,先简单的介绍一下郭涛算法。
郭涛算法的思想十分简单,但是却是一种很好的演化算法,它对于求解有多个最有解(即有多个“山峰”供爬山的情况)以及求解多目标优化问题是一种十分有效的算法。下面给出算法的描述。
GT Algorithm:
Begin
P(0):=initialize(X1(0), X2(0), X3(0),…,Xn(0));
t:=0; //xi∈D
evaluate f(D);
XBest:=arg( f(Xi));
XWorst:=arg( f(Xi));
While |f(XBest)-f(XWorst)|≥εdo //多父体杂交
Select m points Xz’, X2’ ,Xm’ from p(t) randomly
X’:=∑ajxj ; //其中使得∑aj=1;-0.5≤aj≤1.5;
If f(x’)f(XWorst) then
XWorst:= x’;
Evaluate XBest:=arg( f(Xi));
XWorst:=arg( f(Xi));
t:=t+1;
end While;
end;
在本算法中,可以作出两点改进的地方:
可以连续选择S个点,一次淘汰掉S个点,这样有利于提高效率。
m可以在|f(XBest)-f(XWorst)|≤ε and m3 时,每次减1,减少网的大小,以提高效率。
本文中举出的例子是一个简单的多目标优化问题,题目是这样的:
min(f1(x),f2(x)),-1《x《3 , 0《x《2
其中 {
本例子采用Delphi 5实现通过,其程序界面如图一所示:
图一
其种群大小由用户控制,多目标优化采用给f1、f2加权的办法取总的函数的最小值,权值亦由用户来确定,运行结果由界面可以直接看出。
下面的图二、图三、图四、图五是几种权值和种群大小下的运行结果。
图二 图三
图四 图五
由以上运行结果可以看出,在种群数为20、30左右时,运行速度教快,为100左右时,稍微慢一点(不过也是较快的,基本感觉不出来)。在种群数较大,比如为100左右时,相当容易得到精确解,种群数小时,要得到精确解就相对难一点。
下面这个过程是给出郭涛算法中所给出的aj,本例子中只是利用了两个aj,所以本过程是相当简单的。程序段如下:
procedure assigna(var a:array of real);
//本过程通过随机函数给a数组赋值,
//使得∑a[i]=1并且-0.5=a[i]=1.5
label ReAssign;
begin
ReAssign:
a[0]:=(random(200) - 50)/100;
a[1]:=1 - a[0];
if (a[1]1.5) or (a[1] -0.5) then
goto ReAssign;
end;
在下面的主体程序中,需要说明的是,本例子中,只是取出两个父体利用郭涛算法进行杂交,杂交所用系数即为上面的过程所求出的a[0]、a[1]。两个父体的选择上,一个采用已经求出的使总函数最好(即总函数值最小)的x值,即为XBEST,一个则在所有的样本中随机选取。由于郭涛算法本身教为简单,加上如上说明和程序段中的注释,下面的程序就不难理解了。
procedure TForm1. ComputeClick(Sender: TObject);
var i,m,f1,f2,iBest,iWorst:integer;
a:array[0..1] of real;
p:array of real;
s:string;
x,x1,x2,f,fBest,fWorst,XBest,XWorst:real;
label ReAssign;
begin
m:=StrToInt(Edit3.Text);
SetLength(p,m);
for i:=0 to m -1 do
begin
p[i]:=random(200)/100;
end;
f1:=StrToInt(Edit1.Text);
f2:=StrToInt(Edit2.Text);
//以下选出fWorst,fBest,XBest,XWorst;
fBest:=f1*p[0]*p[0]+f2*(p[0]-2)*(p[0]-2);
fWorst:=fBe
您可能关注的文档
最近下载
- 土地资源调查课件.pptx VIP
- 2025教学主任及教秘专项培训班考核试卷含答案.docx
- QC∕T 948-2013 汽车顶部装载装置.pdf VIP
- 八上名著《红岩》:故事梗概+知识点+考点大集合.doc VIP
- 《劳动经济学讲义》课件.ppt VIP
- ISO各体系认证审核前准备资料清单.doc VIP
- 巧虎目录清单.doc VIP
- 销售管理专业《销售案例研究 ( 实践 ) 》课程调研报告样本.pdf VIP
- 2025年新精通版(三年级起)英语三年级上册课件 Unit 2 Lesson 3 .pptx VIP
- 场效应MOS管AK4435参数-9.1A-30V封装SOP-8.pdf VIP
文档评论(0)