附錄2求解RDC的 MATLAB 編程源代碼_第1頁
附錄2求解RDC的 MATLAB 編程源代碼_第2頁
附錄2求解RDC的 MATLAB 編程源代碼_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、附錄2求解rdc的 matlab 編程源代碼 附錄:求解rdc的 matlab 編程源代碼 程序用matlab 6.0 編制而成的,基于遺傳算法的程序,實現(xiàn)了求解配送模型的過程。 1.適值函數(shù) function sol,eval=fitness(sol,options) d=0 8 12 15 18 40 20 32 16; 8 0 13 8 20 10 15 22 20; 12 13 0 15 20 20 15 15 15; 15 8 15 0 20 10 18 18 30; 18 20 20 20 0 20 15 15 20; 40 10 20 10 20 0 14 18 15; 20 1

2、5 15 18 15 14 0 14 20; 32 22 15 18 15 18 14 0 20; 16 20 15 30 20 15 20 20 0; g=0 3 5 2 6 4 4 1 3; s=rand(size(g) t=0 2 2 1 2.5 1.5 2 0.5 1.5; a=0 6 6 7 8 7 7 7 9; b=0 9 8 9 12 11 10 10 12; sum2=0; sum3=0; sum4=0; for k=1:4 for i=1:9 forj=1:9 if (sum2=0)&(c2=0) fsum=0; for i=1:9 for j=1:9 fsum=fsum+d

3、(i,j)*xijk; end end eval=fsum; else eval=-10000; end eval=-eval; 2.遺傳算法求解的matlab 代碼 %the matrix for distance d=0 8 12 15 18 40 20 32 16; 8 0 13 8 20 10 15 22 20; 12 13 0 15 20 20 15 15 15; 15 8 15 0 20 10 18 18 30; 18 20 20 20 0 20 15 15 20; 40 10 20 10 20 0 14 18 15; 20 15 15 18 15 14 0 14 20; 32 2

4、2 15 18 15 18 14 0 20; 16 20 15 30 20 15 20 20 0; g=0 3 5 2 6 4 4 1 3; t=0 2 2 1 2.5 1.5 2 0.5 1.5; a=0 6 6 7 8 7 7 7 9; b=0 9 8 9 12 11 10 10 12; bounds=2;2;2;2;2;2;2;2;2; flag=0; while flagelse ykj=0; end sum2=sum2+g(j)*ykj; sum4=sum4+ykj; end end end s(i)=rand(size(g) c1=s(i)-a(i); c2=b(i)-s(i);

5、if (sum2=0)&(c2=0) flag=flag+1; initpop(flag,:)=init; else continue end end p endpop bpop tracej=ga(bounds,fitness,initpop,1e-5 1 1,. maxgeomselect,0.08,arithxover,20,nonunifmutate,2 1 3); 3.初始化函數(shù)的matlab 代碼 function pop=initializega(num, bounds, evalfn,evalops,options) defaults 1e-6 1 if nargin=maxg

6、en; 5.基于正態(tài)分布的序列選擇函數(shù)matlab 代碼 functionnewpop=normgeomselect(oldpop,options) q=options(2); e=size(oldpop,2); n=size(oldpop,1); newpop=zeros(n,e); fitp2,bounds,ops) c1=pl*a+p2*(1-a); c2=pl*(1-a)+p2*a; 7.變異函數(shù) function parent=nonunifmutate(parent,bounds,ops) cg=ops(1); mg=ops(3); b=ops(4); df=bounds(:,2)

7、-bounds(:,1); numvar=size(parent,2)-1; mpoint=round(rand*(num var-1)+1; and=round(rand); if md newvalue=parent(mpoint)+delta(cg,mg,bounds(mpoint,2)-parent(mpoint),b); else newvalue=parent(mpoint)-delta(cg,mg,parent(mpoint)-bounds(mpoint,1),b); end parent(mpoint)=newvalue;%make the child 8.主運行函數(shù)ga 的m

8、atlab 代碼 function x,endpop,bpop,traceinfo=ga(bounds,evalfn,evalops,startpop,opts,. termfn,termops,selectfn,selectops,xoverfns,xoverops,mutfns,mutops) n=nargm; if n2|n=6|n=10|n=12 disp(lnsufficient arguements) end if n3 evalops=; end if n5 opts=1e-6 1 0; end if isempty(opts) opts=1e-6 1 0; end if any(evalfn48) if opts(2)=1 e1str=x=c1; c1(xzomelength)=, eva

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論