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

正文內(nèi)容

關(guān)于遺傳算法研究的內(nèi)容調(diào)研設(shè)計(jì)畢業(yè)論文-wenkub.com

2025-06-19 04:04 本頁(yè)面
   

【正文】 i++) { random = ()。 } } } } /** * 變異 在一個(gè)個(gè)體的城市序列中隨機(jī)取兩個(gè)位置交換 */ public void mutate() { double random。 k++) { if (k != i amp。 population[x].citys[j] == population[x].citys[i]) { population[x].citys[j] = tempX。 // 修復(fù)個(gè)體X for (int j = 1。 i++) { int tempX = population[x].citys[i]。 } } /** * 雙切點(diǎn)交叉函數(shù) */ private void doublePointCrossover(int x, int y) { // 第一個(gè)切點(diǎn)在0到cityNum1之間隨機(jī)選擇 int location1 = (int) (() * (cityNum 1)) + 1。 while (true) { y = (int) (() * popSize)。 } } } /** * 交叉主體函數(shù) */ public void crossover() { int x = 1。 j cityNum。 j++) { population[i].citys[j] = bestPopualtion[0].citys[j]。 for (int i = 0。 i popSize。 i popSize。 i popSize。 for (int i = 0。 } } population[0].calFitness()。 population[i].citys[j] = num[r]。 } int temp = cityNum。 int[] num = new int[cityNum]。 i popSize。 ()。 int x = ()。 } FileInputStream fis。 (j + 1) != null) {distance[i][j] = (i + 1).calDistance((j + 1))。 i++) { for (int j = 0。 distance = new double[cityNum][cityNum]。 } catch (FileNotFoundException e) { ()。 } private void initFileStresm() { outFile = new File(./)。 // 由前面各次迭代取得的最優(yōu)解組成的種群,最前面一個(gè)是當(dāng)前最優(yōu)解private Genotype[] bestPopualtion = new Genotype[bestPopSize]。 // 計(jì)算期望概率 = (double) ( * popSize)。 } // 再加上節(jié)點(diǎn)n1和節(jié)點(diǎn)0之間的距離 +=distance[[0]][[cityNum 1]]。 /** * 計(jì)算基因適應(yīng)度 */ public void calFitness() { = 0。 /** 個(gè)體的選擇概率 */ private double selectP。 /** 算法輸出文件 */ private File outFile。 /** 變異概率 */ private double initPmultation = 。 /** 城市個(gè)數(shù) */ private int cityNum。import 。import 。參考文獻(xiàn)[1] 馬玉明,賀愛(ài)玲,李愛(ài)民.遺傳算法的理論研究綜述[J]. 山東輕工業(yè)學(xué)院學(xué)報(bào), 2004,18(3):77~80.[2] [3] 李敏強(qiáng),寇紀(jì)淞,林丹,李書(shū)全.遺傳算法的基本理論與應(yīng)用[M].北京:科學(xué)出版社,2002:1516.[3] [4] 谷峰,吳勇,唐?。z傳算法的改進(jìn).微機(jī)發(fā)展,2003,13(6):80、885.[5] 周春光,梁艷春.計(jì)算智能(第三版)[M].吉林大學(xué)出版社,2009:第三篇進(jìn)化計(jì)算.[6] 馬立肖,王江晴. 遺傳算法在組合優(yōu)化問(wèn)題中的應(yīng)用[J].計(jì)算機(jī)工程與科學(xué),2005,27(7):72~782.[7] 王煦法.遺傳算法及其應(yīng)用[J].小型微型計(jì)算機(jī)系統(tǒng),1995,16(2):5964.[8] 張樹(shù)波.一種用于多種生物序列比對(duì)的協(xié)同進(jìn)化算法[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(8):3740.[9] HanadaK, YokoyamaT, ShimizuT. Multiplesequencealignment bygeneticalgorithm[ J]. GenomeInformatics, 2000, 11: 317318.[10] 。在學(xué)習(xí)遺傳算法之前,我非常自信的認(rèn)為像遺傳算法這種隨機(jī)搜索算法求解組合優(yōu)化問(wèn)題所求得的解應(yīng)該會(huì)非常的不穩(wěn)定,波動(dòng)范圍很大。遺傳算法由于具有魯棒性(Robust)強(qiáng),實(shí)現(xiàn)簡(jiǎn)單,對(duì)問(wèn)題依賴性小、便于并行分布處理等優(yōu)點(diǎn),為求解復(fù)雜系統(tǒng)優(yōu)化問(wèn)題提供了通用框架,被廣泛的應(yīng)用在:函數(shù)優(yōu)化、組合優(yōu)化、生產(chǎn)調(diào)度、自動(dòng)控制、圖像處理和模式識(shí)別、人工生命、遺傳程序設(shè)計(jì)、機(jī)器學(xué)習(xí)、多重序列比對(duì)等領(lǐng)域。我們將前者稱為遺傳算法的隨機(jī)模型理論(stochastic modeling),后者稱為遺傳算法的進(jìn)化動(dòng)力學(xué)理論(evolution dynamics)。在這次畢業(yè)設(shè)計(jì)中我掌握了遺傳算法的基本實(shí)現(xiàn)技術(shù),還實(shí)現(xiàn)了求解TSP的改進(jìn)遺傳算法。從前面倒序算子、插入算子、交換變異算子的實(shí)現(xiàn)可以知道:倒序變異引發(fā)的位串上基因位置變化最大,其次是插入算子,交換變異算子因?yàn)閮H有有兩個(gè)基因的位置發(fā)生互換,因此變化最小。本文中的改良遺傳算法設(shè)置參數(shù)如下:種群大小50,最大迭代次數(shù):6000,交叉概率:,初始變異概率:;模擬退火算法采用文獻(xiàn)[13]中的算法,其實(shí)溫度T=100000,終止溫度T0=1,退火速度α=;基本遺傳算法程序采用MATLAB的遺傳算法工具箱[14],參數(shù)如下:染色體個(gè)數(shù)N=30,交叉概率Pc=,變異概率Pm=,迭代次數(shù)100。 第四章 求解TSP的實(shí)驗(yàn)結(jié)果分析硬件:gateway Nv4426c筆記本電腦,配置如下:CPU:Pentium174。 } population[index].citys[loc1] = temp。 } } 插入變異算子private void insertMutate(int index, int loc1, int loc2) { int temp = population[index].citys[loc2]。 int distances = loc2 center。 } } } } 交換變異算子:private void exchangeMutate(int index, int loc1, int loc2) { int temp = population[index].citys[loc1]。 case 1: // 采用倒序的方式變異 backMutate(i, loc1, loc2)。 loc1 = loc。 if (random population[i].pmultation) { loc1 = (int) (() * (cityNum 1)) + 1。 int loc1,loc2。本算法的變異操作由交換變異、倒序變異和插入變異三種變異算子混合。amp。 break。 j cityNum。 int tempY = population[y].citys[i]。 // 第二個(gè)切點(diǎn)在location1+1到cityNum之間隨機(jī)選擇 int location2 = (int) (() * (cityNum location1 1))+ location1 + 1。 // 防止自己與自己交叉 if (y != x)break。 int y = 1。 } } }本算法采用雙切點(diǎn)交叉算子。 j cityNum。 j++) { population[i].citys[j]=bestPopualtion[0].citys[j]。 for (int i = 0。 } } }其中沒(méi)有被選擇(isSelected=false)的個(gè)體就是被淘汰掉的個(gè)體。 } }根據(jù)期望概率淘汰掉當(dāng)前種群中部分適應(yīng)度較差的個(gè)體: private void calIsSelected() { for (int i = 0。 計(jì)算種群適應(yīng)度之和的代碼: private void calfitnessSum() { fitnessSum = 0。 // 計(jì)算選擇概率 } = 0。// 由前面各次迭代取得的最優(yōu)解組成的種群,最前面一個(gè)是當(dāng)前最優(yōu)解private Genotype[] bestPopualtion = new Genotype[popSize]。 j cityNum 1。 temp。 j cityNum。 j cityNum。采用的種群初始化策略為隨機(jī)初始化。初始變異率:發(fā)生變異的基因位數(shù)所占全體個(gè)體的基因總位數(shù)的比例,~。范圍一般取600060000。 個(gè)體的適應(yīng)度:本算法使用巡回當(dāng)前位串表示的城市訪問(wèn)順序的總距離(包括回到起點(diǎn))表示個(gè)體的適應(yīng)度,因此適應(yīng)度值越小表示適應(yīng)度越好。如:一染色體X的順序?qū)崝?shù)編碼為(2 3 1 5 4 7 6 8),解碼就是要把相鄰兩點(diǎn)的距離進(jìn)行求和,具體地說(shuō)就是要把2與3,3與1,1與5,5與4,4與7,7與6,6與8,8與2之間的距離相加,相加的結(jié)果就是由解碼得到的路徑長(zhǎng)度。例如n=8時(shí),位串:Xt= [2 3 1 5 4 7 6 8] 表示231547682的一條旅行路線這種編碼是問(wèn)題能得到自然表示,相當(dāng)方便。也正因?yàn)門(mén)SP是一個(gè)NP難問(wèn)題,使用窮舉法求解城市個(gè)數(shù)較多(如100個(gè)以上)的TSP是不可能的(需要的時(shí)間極長(zhǎng))。因此這是一個(gè)NP難問(wèn)題。 旅行商問(wèn)題概述 旅行商問(wèn)題的描述顧名思義,旅行商問(wèn)題(Traveling salesman problem簡(jiǎn)稱TSP)就是有一個(gè)推銷員,要到n個(gè)城市推銷商品,最后再回到出發(fā)點(diǎn),為了節(jié)約時(shí)間和成本,他想找出一個(gè)包含所有n個(gè)城市并且總路徑(包括回到出發(fā)點(diǎn))最短的環(huán)路。這樣就保證了當(dāng)前最優(yōu)個(gè)體不會(huì)丟失,加快了算法的收斂速度。其它常見(jiàn)的變異操作如:倒序(位串上的某一段基因位置反轉(zhuǎn))、插入(位串上的某一個(gè)基因被插入到位串中的其它位置)。循環(huán)交叉操作的具體步驟如下:選P1的第一個(gè)元素作為C1的第一個(gè)元素;選P2的第一個(gè)元素作為C2的第一個(gè)元素;在P1中找P2的第一個(gè)元素賦給C1的相對(duì)位置……重復(fù)此過(guò)程,直到P2上得到P1的第一個(gè)元素為止,稱為一個(gè)循環(huán);對(duì)最前的基因按PP2基因輪替原則重復(fù)以上過(guò)程;重復(fù)以上過(guò)程,直至所有位已完成。P1和P2其中稱為父代染色體,C1和C2稱為子代染色體。賭輪選擇的基本思想:做一個(gè)輪盤(pán),然后按照各個(gè)染色體的個(gè)體適應(yīng)度比例轉(zhuǎn)化為選中概率(選擇概率),將輪盤(pán)分成若干個(gè)扇區(qū),隨機(jī)地產(chǎn)生「0, 1 ]之間的隨機(jī)數(shù),這樣就相當(dāng)于轉(zhuǎn)動(dòng)輪盤(pán),獲得轉(zhuǎn)盤(pán)停止時(shí)指針位置,指針停止在某一扇區(qū),該扇區(qū)代表的個(gè)體即被選中。(3) 根據(jù)最優(yōu)問(wèn)題的類型,由目標(biāo)函數(shù)值按一定的轉(zhuǎn)換規(guī)則求出個(gè)體的適應(yīng)度。遺傳算法的一個(gè)特點(diǎn)是它僅使用所求問(wèn)題的目標(biāo)函數(shù)值就可以得到下一步的有關(guān)搜索信息。對(duì)生存環(huán)境適應(yīng)程度較好的物種將有更多的繁殖機(jī)會(huì);而對(duì)生存環(huán)境適應(yīng)度較差的物種,其繁殖機(jī)會(huì)就相對(duì)較少,甚至?xí)饾u滅絕。Pm:變異概率。如:Xt=[C1,C2,C3,…,Cn]就表示順序訪問(wèn)城市C1,C2,C3,....,Cn。編碼原則二(最小字符集編碼原則): 應(yīng)使用能使問(wèn)題得到自然表示或描述的具有最小編碼字符集的編碼方案。 end whileend //算法結(jié)束 基本遺傳算法的實(shí)現(xiàn) 在遺傳算法的運(yùn)行過(guò)程中,它不對(duì)所求解問(wèn)題的實(shí)際決策變量自己進(jìn)行操作,而是對(duì)表示可行解的個(gè)體編碼施加選擇、交叉、變異等遺傳運(yùn)算,通過(guò)這種遺傳操作來(lái)達(dá)到優(yōu)化的目的,這是遺傳算法的特點(diǎn)之一。 end for for i=1 to M do //執(zhí)行選擇算子//選擇當(dāng)前種群中的優(yōu)良個(gè)體并復(fù)制到下一代種群,進(jìn)行下一輪遺傳操作 Select operation to P(t)。 基本遺傳算法描述基本遺傳算法可定義為一個(gè)8元組:SGA=(C,E,P0,M,O,R,W,T) (21)式中:C ——個(gè)體的編碼方法;E——個(gè)體適應(yīng)度評(píng)價(jià)函數(shù);P0——初始種群;M——種群大?。籓——選擇算子;R——交叉算子;W——變異算子;T——算法終止條件; 圖 21 SGA流程圖基本遺傳算法(SGA)流程如下:(1) 隨機(jī)初始化種群(2) 計(jì)算種群中各個(gè)個(gè)體的適應(yīng)度(3)根據(jù)個(gè)體的適應(yīng)度選擇優(yōu)良的個(gè)體保留下來(lái),作為下一代種群,并保持種群大小不變(使用優(yōu)良個(gè)體的位串覆蓋被淘汰被的個(gè)體的位串)。這樣,由不同的編碼方法和不同的遺傳算子就構(gòu)成了各種不同的遺傳算法。擬解決的問(wèn)題主要有
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1