freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文—基于遺傳算法的0-1背包問題研究(參考版)

2025-07-01 09:53本頁面
  

【正文】 MATLAB 軟件 GUIDE 為用戶提供了一個(gè)方便高效的集成環(huán)境,所有 GUI 支持的用戶控件都集成在這個(gè)環(huán)境中,并提供界面外觀、屬性和行為相應(yīng)方式的設(shè)置方法。大體上,GUI 界面分為視窗、標(biāo)簽、菜單、圖標(biāo)、按鈕等幾部分。GUI 的廣泛應(yīng)用是當(dāng)今計(jì)算機(jī)發(fā)展的重大成就之一,他極大地方便了非專業(yè)用戶的使用。第三章 GUI 界面設(shè)計(jì) 概述圖形用戶界面(Graphical User Interface) ,簡稱 GUI,又稱圖形用戶接口,是指采用圖形方式顯示計(jì)算機(jī)操作用戶界面。表 26 算例 2 循環(huán) 20 的次結(jié)果種群規(guī)模 迭代次數(shù) 最大優(yōu)值 最小值 平均值50 500 616 396 100 500 618 378 200 500 629 377 0 2 4 6 8 10 12 14 16 18 20350400450500550600650 20優(yōu)優(yōu)優(yōu)優(yōu)優(yōu) X: 1Y: 616優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)圖 27 種群規(guī)模為 50 算例 2 的仿真圖 設(shè)計(jì)(論文)專用紙270 2 4 6 8 10 12 14 16 18 20350400450500550600650 20優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)X: 8Y: 618優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)圖 28 種群規(guī)模為 100 算例 2 的仿真圖0 2 4 6 8 10 12 14 16 18 20350400450500550600650 20優(yōu)優(yōu)優(yōu)優(yōu)優(yōu) X: 19Y: 629優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)優(yōu)圖 29 種群規(guī)模為 200 算例 2 的仿真圖當(dāng)物品數(shù)為 150 時(shí)循環(huán) 20 次算例 2 的結(jié)果如表 27 和仿真圖分別圖 2圖21圖 212 所示。當(dāng)物品數(shù)量為 50 時(shí),循環(huán) 20 次的結(jié)果如表 25 和仿真圖分別如圖 24,圖 25,圖 26 所示。Pi 與 C 的數(shù)值由以下公式得出。綜上所述種群規(guī)模、交叉概率以及迭代次數(shù)的設(shè)置對于遺傳算法在求解 01 背包問題時(shí)對于命中最優(yōu)解的影響是非常明的,通過以上實(shí)驗(yàn)的探究我可以看到當(dāng)交叉概率為 ,迭代次數(shù)為 500 時(shí)都命中了最優(yōu)解 3103,那么我可以利用這兩個(gè)參數(shù)對算例 2 進(jìn)行測試。(3)最大迭代次數(shù)對算法性能的影響設(shè)置變異概率為 、交叉概率為 、染色體長度為 50、迭代次數(shù)分別為100、200、300、500、對算例 1 運(yùn)行 20 次,所得結(jié)果如表 24 所示表 24 不同迭代次數(shù)求解算例 1 的結(jié)果最大迭代次數(shù) 總價(jià)值 總體積100 3068 999 設(shè)計(jì)(論文)專用紙24200 3084 1000300 3091 1000500 3103 1000從表 24 可以看出隨著迭代次數(shù)的增加總價(jià)值和總體積也隨之增加并且在迭代500 次時(shí)命中最優(yōu)解。表 23 不同交叉概率求解算例 1 的結(jié)果交叉概率 總價(jià)值 總體積 3091 998 3095 1000 3103 1000 3103 1000 3103 1000 3103 1000 3103 1000從表 23 可以看出當(dāng)交叉概率增大時(shí)與之對應(yīng)的總值和總體積也隨之增加并在交叉概率為 時(shí)命中最優(yōu)解,隨著交叉概率增加大依然保持命中最優(yōu)解。表 22 不同種群規(guī)模求解算例 1 的結(jié)果種群規(guī)模 總價(jià)值 總體積100 3094 996200 3095 996400 3103 1000 設(shè)計(jì)(論文)專用紙23500 3103 1000從上表可以看出,隨著種群規(guī)模的增大總價(jià)值和總體積也隨之增大,并且在種群規(guī)模為 400 的時(shí)候已命中最優(yōu)解 3103,同時(shí)在種群規(guī)模為 500 時(shí)也命中最優(yōu)解,說明種群規(guī)模增大時(shí)遺傳算法在求解背包問題的時(shí)候選擇范圍更廣,更易命中最優(yōu)解。B 不同參數(shù)對算法性能的影響(1)種群規(guī)模對算法性能影響設(shè)置交叉概率為 ,變異概率為 ,最大迭代次數(shù)為 500,染色體長度為50。從圖中可以看出最優(yōu)值仿真曲線和平均值的仿真曲線波動(dòng)不大,表明遺傳算法的尋優(yōu)能力比較好。表 21 算例 1 求解結(jié)果循環(huán)次數(shù) 迭代次數(shù) 最優(yōu)值 最差值 平均值 命中最優(yōu)解概率20 500 3103 1429 45%從表 21 可以看出在程序運(yùn)行 20 次中命中了 9 次最優(yōu)解 3103,平均值為 設(shè)計(jì)(論文)專用紙22,最優(yōu)值與最差值的差值為 1674,說明遺傳算法求解背包問題不易陷入局部最優(yōu)。將種群規(guī)模設(shè)置為 50,最大迭代次數(shù)為 500,交叉概率為 ,變異概率為 。C=1000其中,value 表示背包中物品的價(jià)值,weight 表示相應(yīng)物品的重量, 表示背C包的最大容量。 算例 1A. 實(shí)驗(yàn)設(shè)置與仿真結(jié)果value = [220,208,198,192,180,180,165,162,160,158,155,130,125,122,120,118,115,110,105,101,100,100,98,96,95,90,88,82,80,77,75,73,72,70,69,66,65,63,60,58,56,50,30,20,15,10,8,5,3,1]。對各個(gè)染色體計(jì)算其適應(yīng)度值,淘汰適應(yīng)度值最低的,復(fù)制適應(yīng)度值最高的,用最高的代替最低的,這樣完成選擇;再隨機(jī)產(chǎn)生交叉點(diǎn)及相互交叉的染色體進(jìn)行交叉,計(jì)算交叉后的染色體是否符合要求,即裝入背包的物品的總體積小于背包容量,若 設(shè)計(jì)(論文)專用紙21不符合則交叉失敗,重新交叉,達(dá)到交叉最多次數(shù)未交叉成功則退出;交叉完成后就進(jìn)行變異,根據(jù)變異概率隨機(jī)選擇變異的染色體,隨機(jī)產(chǎn)生變異點(diǎn)進(jìn)行變異,變異后也需要計(jì)算染色體是否符合要求,若不符合則變異失敗,重新變異,達(dá)到變異最多次數(shù)未變異成功則退出。 %index記錄所取得物體編號 數(shù)值試驗(yàn)以及結(jié)果分析程序思路分析如下:采用二進(jìn)制 0I 編碼。temp=samp_arr(max_index, :)。 samp_arr(index)=1samp_arr(index)。 %變異操作,直接針對整個(gè)樣本集操作 muta_arr=( rand(POP_NUM, LEN) P_MUTA )。先選擇一個(gè)變異位進(jìn)行變異,再計(jì)算它的適應(yīng)度,看它是否大于或等于其原來的適應(yīng)度,若不是的話就重新選擇變異位進(jìn)行變異。位點(diǎn)變異比較簡單,針對本問題來說,就是把染色體的變異位1變?yōu)?,0變?yōu)?就可以了,其它位都保持不變。 samp_arr(cross_index(i+1), cross_pos:end)=temp_cross。 %交叉點(diǎn)位置,[1, POP_NUM1] temp_cross=samp_arr(cross_index(i), cross_pos:end)。 end 選擇個(gè)體中的兩個(gè)位置,把這兩個(gè)位置對應(yīng)的值進(jìn)行交換,交叉操作先對可能要經(jīng)行交叉的樣本進(jìn)行索引,隨機(jī)得到一個(gè)數(shù)若這個(gè)數(shù)小于交叉概率的話進(jìn)行相鄰交叉否則不交叉。 cross_index(temp_pos)=cross_index(i)。%在1到POP_NUMi+1之間取隨機(jī)數(shù) temp_pos=i+temp1。 % 交叉操作 cross_index=1:POP_NUM。 (5)交叉操作:判斷染色體是否為活的染色體,若為活的染色體,則將染色體進(jìn)行交叉,一般采用一點(diǎn)交叉方式,交叉概率為P c,具體操作是在個(gè)體串中隨機(jī)設(shè)定一個(gè)交叉點(diǎn),實(shí)行交叉時(shí),該點(diǎn)前或后的兩個(gè)個(gè)體的部分結(jié)構(gòu)進(jìn)行互換,并生成兩個(gè)新個(gè)體。 end winner_index(i)=index。 index=1。 %輪盤,rotary table %生成輪盤,類似于概率分布 For i=2:POP_NUM rtable(i)=rtable(i1)+rtable(i)。相應(yīng)程序如下:% 選擇操作(輪盤賭) fit_sum=sum(fit_arr)。 設(shè)計(jì)(論文)專用紙18 end end end end (4)選擇操作:根據(jù)選擇概率選擇染色體,將上述的個(gè)體作為第 1 代,這里采用以正比于適應(yīng)度的賭輪隨機(jī)選擇方式,每個(gè)體適應(yīng)度值為 fi,則 i 被選中的概率psi 為: ;;對于初始化后的種群,先計(jì)算出每條染色體的適應(yīng)度值,1/nsiiif??再計(jì)算出其被選擇的概率,將它們進(jìn)行比較,把選擇概率最小的一條染色體淘汰掉,并把選擇概率最大的一條染色體進(jìn)行復(fù)制,用這條復(fù)制的來替代淘汰的染色體位置。 if samp_arr(i,index(j))==1 samp_arr(i,index(j))=0。)。 if temp_sum(i) MAX_CAP [temp, index]=sort(rate, 39。 rate=val./vol。把所有的物品都放到背包里,那么就可能就會大于背包容量,如果大于的話,根據(jù)價(jià)值密度的排序,把價(jià)值密度低對應(yīng)的背包去除,一直到滿足設(shè)定的背包容量為止。這個(gè)問題解的總組合數(shù)有 2 個(gè),其數(shù)學(xué)模型表示為: 時(shí),使得 大,X i=1 或 0( 1niiC??1nii?i=1,2 ,…, n)。由于我們之前定義當(dāng)物件 i 被選入背包時(shí), 設(shè)定變量 Xi=1,否則是 Xi=0。如果M=N=IO,那么初始化后的種群可以看作一個(gè) 5 行 10 列的矩陣。具體說來,最終會產(chǎn)生 M 條染色體,而每條染色體又有 N 個(gè)基因,也就是每條染色長度是 N。每產(chǎn)生一個(gè)染色體,就對它進(jìn)行一次檢驗(yàn),如果不滿足約束條件,則拒絕接受。也就是說,現(xiàn)在這個(gè)背包里只有 7 這三個(gè)物件。例如x={0,1,0,1,0,0,1)表示第 7 這三個(gè)物品被選入背包中。隨機(jī)初始化染色體,給出物品體積、物品價(jià)值和背包容量C。運(yùn)用簡單遺傳算法求解背包問題時(shí),若問題的規(guī)模不大時(shí)能夠得到最優(yōu)解或近似最優(yōu)解。遺傳算法流程圖如圖 21 所示: 設(shè)計(jì)(論文)專用紙15隨機(jī)選擇種群數(shù)計(jì)算適應(yīng)度變異交叉停止?jié)M足條件?是否圖 21 遺傳算法流程圖一個(gè)簡單的遺傳算法被 Goldberg 用來進(jìn)行輪廓描述并用來舉例說明遺傳算法的基本組成。(5)全局最優(yōu)收斂(Convergence to the global opt imum)當(dāng)最優(yōu)個(gè)體的適應(yīng)度達(dá)到給定的閥值,或者最優(yōu)個(gè)體的適應(yīng)度和群體適應(yīng)度不再上升時(shí),則算法的迭代過程收斂,算法結(jié)束。因?yàn)樵谒械膫€(gè)體一樣時(shí),交叉是無法產(chǎn)生新的個(gè)體的,這時(shí)只能靠變異產(chǎn)生新的個(gè)體。單靠變異不能在求解中得到好處。例如有個(gè)體 S=101011。在變異時(shí),對執(zhí)行變異的串的對應(yīng)位求反,即把 1 變?yōu)?0,把 0 變?yōu)?。例如有個(gè)體:S 1=100101; S2=010111 選擇它們的左邊 3 位進(jìn)行交叉操作,則有:S1=010101;S 2=l00111 一般而言,交叉概率取值為 。這個(gè)過程反映了隨機(jī)信息交換;目的在于產(chǎn)生新的基因組合,也即產(chǎn)生新的個(gè)體。(3)交叉:對于選中用于繁殖下一代的個(gè)體,隨機(jī)地選擇兩個(gè)個(gè)體的相同位置,按交叉概率 pc。這樣,就產(chǎn)生了對環(huán)境適應(yīng)能力較強(qiáng)的后代。a) 適應(yīng)度較高的個(gè)體,繁殖下一代的數(shù)目較多。給出目標(biāo)函數(shù) f,則f(bi)稱為個(gè)體 bi的適應(yīng)度。在選擇時(shí),以適應(yīng)度為選擇原 設(shè)計(jì)(論文)專用紙14則。問題的最優(yōu)解將通過這些初始假設(shè)解進(jìn)化而求出。一般取 n=30概括地講,遺傳算法求解組合優(yōu)化問題的具體步驟可描述如下:(1)初始化:選擇一個(gè)群體,即選擇一個(gè)串或個(gè)體的集合 bi,i=l,2,…n。這樣在最后滿足收斂條件后的種群最優(yōu)個(gè)體就是問題的近似最優(yōu)解。每個(gè)個(gè)體具有其自的特征,我們根據(jù)這些個(gè)體的不同的特征來確定其存活到下一代的可能性高低,按照優(yōu)勝劣汰的法則,我們由父代來產(chǎn)生子代,如此來繁衍。在解決具體問題時(shí)先大致確定問題的潛在解的一個(gè)集合,這個(gè)集合就是算法的初始種群。遺傳算法的原理可以簡要給出如下:選擇初始值,確定合適的值,完成選擇;進(jìn)行交叉,變異;重復(fù)直到得到最優(yōu)解這里所指的某種結(jié)束準(zhǔn)則一般是指個(gè)體的適應(yīng)度達(dá)到給定的閥值;或者個(gè)體的適應(yīng)度的變化率為零。c) 變異(Mutation):這是在選中的個(gè)體中,對個(gè)體中的某些基因執(zhí)行異向轉(zhuǎn)化。由于在 設(shè)計(jì)(論文)專用紙13選擇用于繁殖下一代的個(gè)體時(shí),是根據(jù)個(gè)體對環(huán)境的適應(yīng)度而決定其繁殖量的,故而有時(shí)也稱為非均勻再生(differential reproduction)。這些選中的個(gè)體用于繁殖下一代。在每個(gè)串中,每個(gè)二進(jìn)制位就是個(gè)體染色體的基因。很明顯,遺傳算法是一種最優(yōu)化方法,它通過進(jìn)化和遺傳機(jī)理,從給出的原始解群中,不斷進(jìn)化產(chǎn)生新的解,最后收斂到一個(gè)特定的串 bi處,即求出最優(yōu)解。我們無法據(jù)此推斷算法的收斂性;c) 模式定理沒有解決算法設(shè)計(jì)中控制參數(shù)選取等問題。模式定理保證了較優(yōu)模式的樣本數(shù)呈指數(shù)增長,從而滿足求最優(yōu)解的必要條件,即遺傳算法存
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1