




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)學問題的非傳統(tǒng)解法選講 遺傳算法及其在最優(yōu)化問題中的應用 神經(jīng)網(wǎng)絡(luò)及其在數(shù)據(jù)擬合中的應用9.1遺傳算法 9.1.1遺傳算法及其在最優(yōu)化問題中的應用 遺傳算法是基于進化論,在計算機上模擬生命進化機制而發(fā)展起來的一門新學科,它根據(jù)適者生存、優(yōu)勝劣汰等自然進化規(guī)則搜索和計算問題的解。 美國 Michigen 大學的 John Holland 于 1975 年提出的。 遺傳算法最優(yōu)化工具箱 MATLAB 7.0的遺傳算法與直接搜索工具箱遺傳算法的基本思想 從一個代表最優(yōu)化問題解的一組初值開始進行搜索,這組解稱為一個種群,這里種群由一定數(shù)量的、通過基因編碼的個體組成,其中每一個個體稱為染色體,不同個體
2、通過染色體的復制、交叉或變異又生成新的個體,依照適者生存的規(guī)則,個體也在一代一代進化,通過若干代的進化最終得出條件最優(yōu)的個體。簡單遺傳算法的一般步驟 選擇 n 個個體構(gòu)成初始種群 ,并求出種群內(nèi)各個個體的函數(shù)值。 設(shè)置代數(shù)為 i=1,即設(shè)置其為第一代。 計算選擇函數(shù)的值,所謂選擇即通過概率的形式從種群中選擇若干個個體的方式。 通過染色體個體基因的復制、交叉、變異等創(chuàng)造新的個體,構(gòu)成新的種群 。 i=i+1,若終止條件不滿足,則繼續(xù)進化。遺傳算法和傳統(tǒng)優(yōu)化算法比較 不同于從一個點開始搜索最優(yōu)解的傳統(tǒng)的最優(yōu)化算法,遺傳算法從一個種群開始對問題的最優(yōu)解進行并行搜索,所以更利于全局最優(yōu)化解的搜索。 遺
3、傳算法并不依賴于導數(shù)信息或其他輔助信息來進行最優(yōu)解搜索。 遺傳算法采用的是概率型規(guī)則而不是確定性規(guī)則,所以每次得出的結(jié)果不一定完全相同,有時甚至會有較大的差異。9.1.2 遺傳算法在求解最優(yōu)化問題中的應用舉例 GAOT 工具箱(目標求最大) bound=xm,xM為求解上下界構(gòu)成的矩陣。a由最優(yōu)解與目標構(gòu)成,b為搜索的最終種群,c中間過程參數(shù)表。 MATLAB 7.0 GA工具箱界面, gatool() 例:繪制目標函數(shù)曲線: ezplot(x*sin(10*pi*x)+2,-1,2)測試不同的初值: f=inline(-x.*sin(10*pi*x)-2,x); v=; for x0=-1:
4、0.8:1.5,1.5:0.1:2 x1=fmincon(f,x0,-1,2); v=v; x0,x1,f(x1);end vv = -1.0000 -1.0000 -2.0000 -0.2000 -0.6516 -2.6508 0.6000 0.6516 -2.6508 1.4000 1.4507 -3.4503 1.5000 0.2540 -2.2520 1.6000 1.6506 -3.6503 1.7000 1.2508 -3.2504 1.8000 1.8505 -3.8503 1.9000 0.4522 -2.4511 2.0000 2.0000 -2.0000編寫函數(shù):funct
5、ion sol,y=c10mga1(sol,options) x=sol(1); y=x.*sin(10*pi*x)+2;調(diào)用gaopt( )函數(shù) a,b,c,d=gaopt(-1,2,c10mga1); a,ca = 1.85054746606888 3.85027376676810c = 1.0e+002 * 0.01000000000000 0.01644961385548 0.03624395818177 0.02000000000000 0.01652497353988 0.03647414028140 0.16000000000000 0.01850468596975 0.0385
6、0268083951 0.23000000000000 0.01850553961009 0.03850273728228 1.00000000000000 0.01850547466069 0.03850273766768比較: ff=optimset; ff.Display=iter; x0=1.8; x1=fmincon(f,x0,-1,2,ff); f(x1)ans = -3.85027376676808 f(a(1) % 遺傳算法結(jié)果ans = -3.85027376676810 ezplot(x*sin(10*pi*x)+2,-1,20) 改變求解區(qū)間 a,b,c,d=gaopt(
7、-1,20,c10mga1); a,ca = 19.45005206632863 21.45002604650601c = 1.0e+002 * 0.01000000000000 0.17243264358456 0.18858649532480 0.02000000000000 0.19253552639304 0.21133759487918 0.25000000000000 0.19450021530572 0.21450017081177 0.27000000000000 0.19450024961756 0.21450018981219 0.29000000000000 0.1945
8、0055493368 0.21450025935531 1.00000000000000 0.19450052066329 0.21450026046506 ezplot(x*sin(10*pi*x)+2,12,20) 放大區(qū)間 a,b,c,d=gaopt(12,20,c10mga1); a,ca = 19.85005104334383 21.85002552164857c = 1.0e+002 * 0.01000000000000 0.17647930304626 0.19610637643594 0.03000000000000 0.17648091337382 0.19616374074
9、697 0.05000000000000 0.18841858256128 0.202288599115410.21000000000000 0.19850064250944 0.21850023812862 0.23000000000000 0.19850055906254 0.21850025289993 1.00000000000000 0.19850051043344 0.21850025521649 例:求最小值編寫函數(shù):function sol,f=c10mga3(sol,options) x=sol(1:4); f=-(x(1)+x(2)2-5*(x(3)-x(4)2-(x(2)
10、-2*x(3)4-10*(x(1)-x(4)4; a,b,c,d=gaopt(-1,1; -1 1; -1 1; -1 1,c10mga3); a,ca = -0.0666 0.0681 -0.0148 -0.0154 -0.0002c =1.0000 -0.3061 0.2075 -0.2235 -0.1206 -0.25805.0000 -0.2294 0.2076 0.0352 -0.1217 -0.125393.0000 -0.0666 0.0682 -0.0148 -0.0154 -0.0002100.0000 -0.0666 0.0681 -0.0148 -0.0154 -0.00
11、02 求解區(qū)域太小,有誤差GAOT 的最優(yōu)化函數(shù) 其中:p可給目標函數(shù)增加附加參數(shù), v為精度及顯示控制向量, P0為初始種群, fun1為終止函數(shù)的名稱,默認值maxGenTerm, n為最大的允許代數(shù)。 例:求最小值 tic, xmM=-ones(4,1),ones(4,1)*1000; a,b,c,d=gaopt(xmM,c10mga3,maxGenTerm,2000); a(1:4), dd=c(1:100:end,:); c(end,:), tocans = -0.0049 0.0049 -0.0081 -0.0081dd = 1.0e+009 * 0.0000 0.0000 -0.
12、0000 -0.0000 0.0000 -5.9663 0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000elapsed_time = 76.5200描述函數(shù):matlab7.0function f=c10mga3a(x) f=(x(1)+x(2)2+5*(x(3)-x(4)2+(x(2)-2*x(3)4+10*(x(1)-x(4)4;x=ga(c10mga3a,4) %四個自變量ff=gaoptimset; ff.Generations=2000; ff.PopulationSize=80;ff.CrossoverFcn=crossoverheuris
13、tic; x=ga(c10mga3a,4,ff) f=inline. % 目標函數(shù)描述(x(1)+x(2)2+5*(x(3)-x(4)2+(x(2)-2*x(3)4+10*(x(1)-x(4)4,x) ff=optimset; ff.MaxIter=10000; ff.TolX=1e-7; tic, x=fminsearch(f,10*ones(4,1),ff); toc; x 時間少,精度高elapsed_time = 0.94200000000000ans = 1.0e-006 * 0.03039572499758 -0.03039585246164 -0.75343487601326 -
14、0.75343518285272例:求下面的最優(yōu)化問題 x,y=meshgrid(-1:0.1:3,-3:0.1:3); z=sin(3*x.*y+2)+x.*y+x+y; surf(x,y,z); shading interp % 用光滑曲面表示目標函數(shù)函數(shù)描述:傳統(tǒng)方法 function y=c10mga5(x) y=sin(3*x(1)*x(2)+2)+x(1)*x(2)+x(1)+x(2); x0=1,3; x=fmincon(c10mga5,x0,-1;-3,3;3)x = -1.00000000000000 1.19031291227215函數(shù)描述:function sol,y=c
15、10mga6(sol,options) x=sol(1:2); y=-sin(3*x(1)*x(2)+2)-x(1)*x(2)-x(1)-x(2); xmM=-1 3; -3 3; a,b,c,d=gaopt(xmM,c10mga6,maxGenTerm,500); aa = 2.51604948433614 -3.00000000000000 9.00709500762913遺傳算法優(yōu)化中間結(jié)果(40代即可,無需500代,可用默認100)9.1.3 遺傳算法在有約束最優(yōu)化問題中的應用 不能直接用于有約束最優(yōu)化問題求解 需通過變換處理劃為無約束最優(yōu)化問題 對等式約束可通過等式求解將若干個自變量
16、用其它自變量表示。 不等式約束可用懲罰函數(shù)方法轉(zhuǎn)移到目標函數(shù)中。 仍采用 gaopt() 或 ga() 函數(shù)求解 例:描述函數(shù):function sol,y=c10mga4(sol,options) x=sol(1:2); x=x(:); x(3)=(6+4*x(1)-2*x(2)/3; y1=-2 1 1*x; y2=-1 1 0*x; if (y19 | y2-4 | x(3) a,b,c=gaopt(-1000 0; -1000 0,c10mga4,maxGenTerm,1000); c=c(1:15:end,:); c(end,:); a,ca = -6.99981015633155
17、-10.99962347934527 28.99905078165773c = 1.0e+003 * 0.00100000000000 -0.32769544124065 -0.20423049398177 -0.10000000000000 0.05900000000000 -0.00146223175991 0 0.00131115879955 0.10200000000000 -0.00416116639726 -0.00666729713459 0.01480583198631 0.84900000000000 -0.00689401645967 -0.01080365682806 0
18、.02847008229837 0.89200000000000 -0.00694511749224 -0.01089232545085 0.02872558746118 0.93200000000000 -0.00698531391213 -0.01097813084259 0.02892656956064 0.96800000000000 -0.00699692906988 -0.01099399300138 0.02898464534940 1.00000000000000 -0.00699981015633 -0.01099962347935 0.02899905078166可用線性規(guī)
19、劃得出更精確的結(jié)果 f=1 2 3; A=-2 1 1; 1 -1 0; B=9; 4; Aeq=4 -2 -3; Beq=-6; x=linprog(f,A,B,Aeq,Beq,-inf;-inf;0,0;0;inf); xOptimization terminated successfully.ans = -6.99999999999967 -10.99999999999935 0.00000000000000 f*xans = -28.99999999999836 建議求解方法:用 GA 找出全局最優(yōu)解的大致位置,以其為初值調(diào)用最優(yōu)化函數(shù)求精確解。9.2神經(jīng)網(wǎng)絡(luò)及其在數(shù)據(jù)擬合中的應用9.
20、2.1神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識單個人工神經(jīng)元的數(shù)學表示形式例:常用傳輸函數(shù)曲線 x=-2:0.01:2; y=tansig(x); plot(x,y) x=-2:0.01:2; y=logsig(x); plot(x,y)BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖 其中:xm,xM分別為列向量,為各樣本數(shù)據(jù)的最大最小值。 hi為一行向量,各隱層節(jié)點數(shù)。fi每層傳輸函數(shù),同一層應使用相同的傳輸函數(shù)。例: 考慮一個前饋網(wǎng)絡(luò),2個隱層,第一個有8各節(jié)點,采用Sigmoid傳輸函數(shù),第二層節(jié)點個數(shù)應該等于輸出信號的路數(shù),故節(jié)點數(shù)為1,傳輸函數(shù)為對數(shù)Sigmoid函數(shù)。 net=newff(0,1; -1,5,8,1,tansi
21、g,logsig);3個隱層,1層4個點,線性函數(shù);2層6個點, Sigmoid函數(shù);3層1個點, logsig函數(shù)。 net=newff(0,1; -1,5,4 6 1,purelin,tansig,logsig);可用下面的語句格式設(shè)定其它參數(shù)。 net.trainParam.epochs=300; net.trainFcn=trainlm;9.2.2 神經(jīng)網(wǎng)絡(luò)的訓練與泛化 神經(jīng)網(wǎng)絡(luò)訓練函數(shù) X為n*M,n為輸入變量的路數(shù),M為樣本的組數(shù),Y為m*M,m為輸出變量的路數(shù)。tr為結(jié)構(gòu)體數(shù)據(jù),返回訓練的相關(guān)跟蹤信息。Y1和E為輸出和誤差矩陣。 可多次訓練,原加權(quán)矩陣為初值。 目標值曲線函數(shù) 神
22、經(jīng)網(wǎng)絡(luò)泛化例:由前面最小擬合的例子中的數(shù)據(jù)進行曲線擬合,2個隱層,隱層節(jié)點選擇為5。 x=0:.5:10; y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x); x0=0:0.1:10; y0=0.12*exp(-0.213*x0)+0.54*exp(-0.17*x0).*sin(1.23*x0); net=newff(0,10,5,1,tansig,tansig); net.trainParam.epochs=1000; % 設(shè)置最大步數(shù) net=train(net,x,y); % 訓練神經(jīng)網(wǎng)絡(luò) net.IW1 net.LW2,1 % 隱層
23、權(quán)值和輸出層權(quán)值ans = 0.4765 -1.9076 0.5784 0.9450 -0.2888 -2.7916 0.3052 -2.9388 0.9780 1.1814可改變求解算法 net=newff(0,10,5,1,tansig,tansig); net.trainParam.epochs=100; net.trainFcn=trainlm; net,b1=train(net,x,y); net=newff(0,10,5,1,tansig,tansig); net.trainParam.epochs=100; net.trainFcn=traincgf; net,b2=train(
24、net,x,y); net=newff(0,10,5,1,tansig,tansig); net.trainParam.epochs=100; net.trainFcn=traingdx; net,b3=train(net,x,y);可改變各層傳輸函數(shù) net=newff(0,10,5,1,tansig,logsig); net.trainParam.epochs=100; net.trainFcn=trainlm; net,b2=train(net,x,y); net=newff(0,10,5,1,logsig,tansig); net,b3=train(net,x,y); net=newf
25、f(0,10,5,1,logsig,logsig); net,b4=train(net,x,y);可改變結(jié)構(gòu),選擇隱層15個節(jié)點 net=newff(0,10,15,1,tansig,tansig); net.trainParam.epochs=100; net.trainFcn=trainlm; net,b2=train(net,x,y); figure; y1=sim(net,x0); plot(x0,y0,x0,y1,x,y,o)例:二元函數(shù)的擬合 x,y=meshgrid(-3:.6:3, -2:.4:2); x=x(:); y=y(:); z=(x.2-2*x).*exp(-x.2-y.2-x.*y); % 這三個變量均應為行向量 net=newff(-3 3; -2 2,10,10,1,tansig,tansig,tansig); net.trainParam.epochs=1000; net.trainFcn=trainlm; net,b=train(net,x; y,z); % 訓練神經(jīng)網(wǎng)絡(luò) x2,y2=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西2025年陜西楊凌示范區(qū)事業(yè)單位招聘15人筆試歷年參考題庫附帶答案詳解
- Unit 9 Hot Soup Lesson 1 I'm thirsty(教學設(shè)計)-2023-2024學年北師大版(三起)英語四年級下冊
- 2025年新疆阿克蘇地區(qū)中考一模道德與法治試題(原卷版+解析版)
- 蘇州2025年江蘇蘇州大學附屬第四醫(yī)院(蘇州市獨墅湖醫(yī)院)招聘331人(第二批)筆試歷年參考題庫附帶答案詳解
- 企業(yè)人力資源管理的技巧
- 中國古代書法藝術(shù)欣賞與傳承
- 高中信息技術(shù)板報技術(shù)探索教學實錄 粵教版
- 《11葡萄溝》教學設(shè)計-2024-2025學年語文二年級上冊統(tǒng)編版
- 中藥與先進醫(yī)療設(shè)備的聯(lián)合應用
- 修理樹木合同范例
- 信息科技課評分標準
- 《界面設(shè)計》考試復習題庫及答案(匯總版)
- 十字相乘法分解因式課件
- 語文小初銜接課堂策略研究報告
- 護理品管圈QCC之提高手術(shù)物品清點規(guī)范執(zhí)行率課件
- 電路檢查記錄表
- 設(shè)計交底記錄表
- 220kV花街輸變電工程環(huán)評報告
- 北師大版高中數(shù)學必修第一冊《頻率與概率》說課稿
- 火力發(fā)電工程建設(shè)預算編制與計算標準
- (完整版)離婚協(xié)議書標準版下載
評論
0/150
提交評論