版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗目的加深對邏輯程序運行機理的理解,掌握MATLAB語言的特點、熟悉其編程環(huán)境,同時為后面的人工智能程序設計做好準備。1、熟悉MATLAB語言編程環(huán)境的使用;2、了解MATLAB語言中常量、變量的表示方法;3、了解利用MATLAB進行事實庫、規(guī)則庫的編寫方法;實驗環(huán)境計算機哈爾濱工程大學計算機學院實驗室預習要求實驗前應閱讀實驗指導書,了解實驗目的、預習MATLAB語言的相關(guān)知識。實驗內(nèi)容1、學習使用MATLAB,包括進入MATLAB主程序、編輯源程序、修改環(huán)境目錄、退出等基本操作。2、在MATLAB集成環(huán)境下調(diào)試運行簡單的MATLAB程序,如描述親屬關(guān)系的MATLAB程序或其他小型演繹數(shù)據(jù)庫程序等。實驗方法和步驟步驟一針對TSP問題,確定編碼??刹捎檬M制編碼法,對城市進行編號,每個城市分別用1到n之間不同的整數(shù)表示,n個整數(shù)的一個排列就代表了旅行商問題。步驟二針對TSP問題,適應度函數(shù)可定義為:其中d(ci,ci+1)表示相鄰城市之間的距離。步驟三針對TSP問題,確定交叉規(guī)則。對于采用整數(shù)編碼表示的染色體,可以有以下交叉規(guī)則:(1)常規(guī)交叉法設有父代1和父代2,交配后產(chǎn)生子代1和子代2。隨機選取一個交配位,子代1交配位之前的基因選自父代1交配位之前的基因,交配位之后的基因,從父代2中按順序選取那些沒有出現(xiàn)過的基因。子代2也進行類似的處理。交叉位(黑色所示為交叉位)父代1:12345678父代2:52173864子代1:12345786子代2:52173468步驟四確定變異規(guī)則,以下三種變異規(guī)則可任選一種。(1)基于位置的變異:該方法隨機地產(chǎn)生兩個變異位,然后將第二個變異位上的基因移動到第一個變異位之前。如假定變異位為2和5,對整數(shù)編碼的TSP問題,變異前后的變化為:變異前:12345編譯后:15234(2)基于次序的變異:該方法隨機地產(chǎn)生兩個變異位,然后交換這兩個變異位上的基因。如假定變異位為2和5,對整數(shù)編碼的TSP問題,變異前后的變化為:變異前:12345編譯后:15342步驟五根據(jù)選定的編碼、遺傳操作實現(xiàn)基本遺傳算法(1)根據(jù)在搜索空間U上定義一個適應度函數(shù)f(x),確定種群規(guī)模N,交叉率Pc和變異率Pm,代數(shù)T。(2)隨機產(chǎn)生U中的N個個體s1,s2,…,sN,組成初始種群S={s1,s2,…,sN},置代數(shù)計數(shù)器t=1。(3)計算S中每個個體的適應度f()(4)若終止條件滿足,則取S中適應度最大的個體作為所求結(jié)果,算法結(jié)束。(5)按選擇概率P(xi)所決定的選中機會,每次從S中隨機選定1個個體并將其染色體復制,共做N次,然后將復制所得的N個染色體組成群體S1。(6)按交叉率Pc所決定的參加交叉的染色體數(shù)c,從S1中隨機確定c個染色體,配對進行交叉操作,并用產(chǎn)生的新染色體代替原染色體,得群體S2。(7)按變異率Pm所決定的變異次數(shù)m,從S2中隨機確定m個染色體,分別進行變異操作,并用產(chǎn)生的新染色體代替原染色體,得群體S3。(8)將群體S3作為新一代種群,即用S3代替S,t=t+1,轉(zhuǎn)步3。示例程序functiongaTSPclear;CityNum=30;[dislist,Clist]=tsp(CityNum);inn=100;%初始種群大小gnmax=1000;%最大代數(shù)pc=0.8;%交叉概率pm=0.8;%變異概率%產(chǎn)生初始種群fori=1:inns(i,:)=randperm(CityNum);end[f,p]=objf(s,dislist);gn=1;whilegn<gnmax+1forj=1:2:innseln=sel(s,p);%選擇操作scro=cro(s,seln,pc);%交叉操作scnew(j,:)=scro(1,:);scnew(j+1,:)=scro(2,:);smnew(j,:)=mut(scnew(j,:),pm);%變異操作smnew(j+1,:)=mut(scnew(j+1,:),pm);ends=smnew;%產(chǎn)生了新的種群[f,p]=objf(s,dislist);%計算新種群的適應度%記錄當前代最好和平均的適應度[fmax,nmax]=max(f);ymean(gn)=1000/mean(f);ymax(gn)=1000/fmax;%記錄當前代的最佳個體x=s(nmax,:);drawTSP(Clist,x,ymax(gn),gn,0);gn=gn+1;%pause;endgn=gn-1;figure(2);plot(ymax,'r');holdon;plot(ymean,'b');grid;title('搜索過程');legend('最優(yōu)解','平均解');end%------------------------------------------------%計算適應度函數(shù)function[f,p]=objf(s,dislist);inn=size(s,1);%讀取種群大小fori=1:innf(i)=CalDist(dislist,s(i,:));%計算函數(shù)值,即適應度endf=1000./f';%計算選擇概率fsum=0;fori=1:innfsum=fsum+f(i)^15;endfori=1:innps(i)=f(i)^15/fsum;end%計算累積概率p(1)=ps(1);fori=2:innp(i)=p(i-1)+ps(i);endp=p';end%--------------------------------------------------functionpcc=pro(pc);test(1:100)=0;l=round(100*pc);test(1:l)=1;n=round(rand*99)+1;pcc=test(n);end%--------------------------------------------------%“選擇”操作functionseln=sel(s,p);inn=size(p,1);%從種群中選擇兩個個體fori=1:2r=rand;%產(chǎn)生一個隨機數(shù)prand=p-r;j=1;whileprand(j)<0j=j+1;endseln(i)=j;%選中個體的序號endend%------------------------------------------------%“交叉”操作functionscro=cro(s,seln,pc);bn=size(s,2);pcc=pro(pc);%根據(jù)交叉概率決定是否進行交叉操作,1則是,0則否scro(1,:)=s(seln(1),:);scro(2,:)=s(seln(2),:);ifpcc==1c1=round(rand*(bn-2))+1;%在[1,bn-1]范圍內(nèi)隨機產(chǎn)生一個交叉位c2=round(rand*(bn-2))+1;chb1=min(c1,c2);chb2=max(c1,c2);middle=scro(1,chb1+1:chb2);scro(1,chb1+1:chb2)=scro(2,chb1+1:chb2);scro(2,chb1+1:chb2)=middle;fori=1:chb1whilefind(scro(1,chb1+1:chb2)==scro(1,i))zhi=find(scro(1,chb1+1:chb2)==scro(1,i));y=scro(2,chb1+zhi);scro(1,i)=y;endwhilefind(scro(2,chb1+1:chb2)==scro(2,i))zhi=find(scro(2,chb1+1:chb2)==scro(2,i));y=scro(1,chb1+zhi);scro(2,i)=y;endendfori=chb2+1:bnwhilefind(scro(1,1:chb2)==scro(1,i))zhi=find(scro(1,1:chb2)==scro(1,i));y=scro(2,zhi);scro(1,i)=y;endwhilefind(scro(2,1:chb2)==scro(2,i))zhi=find(scro(2,1:chb2)==scro(2,i));y=scro(1,zhi);scro(2,i)=y;endendendend%--------------------------------------------------%“變異”操作functionsnnew=mut(snew,pm);bn=size(snew,2);snnew=snew;pmm=pro(pm);%根據(jù)變
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46880-2025二氧化碳地質(zhì)封存二氧化碳檢測方法
- 2026年鴨蛋食品加工機維修(加工機故障排除)試題及答案
- 2025年中職中醫(yī)養(yǎng)生保?。ㄖ嗅t(yī)體質(zhì)辨識)試題及答案
- 2025年大學土壤肥料(應用技巧)試題及答案
- 2025年大學工業(yè)機器人技術(shù)(編程優(yōu)化)試題及答案
- 2025年大學農(nóng)業(yè)資源與環(huán)境(農(nóng)業(yè)環(huán)境學)試題及答案
- 2025年高職(大數(shù)據(jù)技術(shù))數(shù)據(jù)備份技術(shù)試題及答案
- 2025年大學農(nóng)業(yè)工程(農(nóng)業(yè)機械化工程)試題及答案
- 2025年中職農(nóng)產(chǎn)品營銷與儲運(農(nóng)產(chǎn)品營銷基礎)試題及答案
- 2025年高職數(shù)控技術(shù)管理應用(應用技術(shù))試題及答案
- 2025福建省能源石化集團有限責任公司秋季招聘416人參考考試試題及答案解析
- 2026年中級消防設施操作員考試題庫及答案
- 新生兒早期基本保健試題含答案
- 《危險化學品包裝物及容器產(chǎn)品生產(chǎn)許可證實施細則(一)》(危險化學品包裝物、容器產(chǎn)品部分)
- 我國第一大河長江課件-八年級地理上冊人教版
- 護理業(yè)務查房管理規(guī)范
- 2025-2026學年安徽省黃山市歙縣人教版四年級上學期期末考試數(shù)學試卷 附解析
- 基于機器視覺的大尺寸板材測量方法:技術(shù)、應用與挑戰(zhàn)
- (14)普通高中音樂課程標準日常修訂版(2017年版2025年修訂)
- SMT工藝流程介紹
- 急診分區(qū)分級課件
評論
0/150
提交評論