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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于matlab的遺傳算法研究及仿真(編輯修改稿)

2026-01-06 13:45 本頁面
 

【文章內(nèi)容簡介】 號(hào)是模糊的 , 數(shù)據(jù)是有噪聲的 , 一般很難正確給出每個(gè)執(zhí)行的定量評(píng)價(jià) 。 如果采用遺傳算法來學(xué)習(xí) , 就能克服這些困難 , 顯著提高系統(tǒng)性能 。 5 進(jìn)化算法 模擬自然進(jìn)化過程可以產(chǎn)生魯 棒的計(jì)算機(jī)算法 進(jìn)化算法 。 遺傳算法是其 三種典型的算法之一 , 其余兩種算法是進(jìn)化規(guī)劃和進(jìn)化策略 。 這三種算法是彼此獨(dú)立地發(fā)展起來的 。 3 基于 Matlab 下的遺傳算法求解函數(shù)最值問題 遺傳算法 的 標(biāo)準(zhǔn) 函數(shù) 已知函數(shù)曲線為: f(x)=(sin2x+cos3x)3+2, 其中 (0= x =4) 解題步驟說明 本人基于 Matlab 用遺傳算法來求函數(shù)的最值問題(即最大值和最小值) , 解決的步驟主要有以下幾個(gè)方面: (1) 編碼 ; (2) 解碼 ; (3) 計(jì)算適應(yīng)度(函數(shù)值) ; (4) 選擇復(fù)制運(yùn)算 ; (5) 交叉運(yùn)算 ; (6) 變異運(yùn)算 。 編碼問題 編碼是遺傳算法要解決的首要問題 。 Holland 的編碼方法是二進(jìn)制編碼 , 但對(duì)于許多遺傳算法的應(yīng)用 , 特別是在工業(yè)工程中的應(yīng)用 , 這種簡單的編碼方法很難直接描述問題的性質(zhì) 。 近十年來 , 針對(duì)特殊問題 , 人們提出了其它編碼方法 。 例如 : 1 二進(jìn)制編碼 它是遺傳算法中最常用的一種編碼方法 。 它具有下列一些優(yōu)點(diǎn) : (1) 編碼、解碼操作簡單易行 ; (2 ) 交叉、變異操作便于實(shí)現(xiàn) ; (3) 符合最小字符集編碼原則 ; (4) 便于利用模式定理對(duì)算法進(jìn)行理 論分析 。 2 格雷碼編碼 對(duì)于一些連續(xù)優(yōu)化問題 , 二進(jìn)制編碼由于遺傳算法的隨機(jī)特性而使其局部搜索能力較差 。 為改進(jìn)這一特性 , 人們提出用格雷碼進(jìn)行編碼 。 格雷碼編碼方法是二進(jìn)制編碼方法的一種變形 。 它是這樣的一種編碼方法 , 其連續(xù)的兩個(gè)整數(shù)所對(duì)應(yīng)的編碼值之間僅僅只有一個(gè)碼位是不相同的 , 其余碼位都完全相同 。 3 實(shí)數(shù)編碼 對(duì)于一些多維、高精度要求的連續(xù)函數(shù)優(yōu)化問題 , 使用二進(jìn)制編碼來表示個(gè)體將會(huì)帶來一些不利 。 為了克服這些缺點(diǎn) , 人們提出實(shí)數(shù)編碼方法 , 即個(gè)體的每個(gè)基因值用實(shí)數(shù)表示 。 4 符號(hào)編碼方法 是指染色體編碼串中的基因值 取自一個(gè)無數(shù)值含義、而只有代碼含義的符號(hào)集 。 這些符號(hào)可以是字符 , 也可以是數(shù)字 。 本文是采用了 二進(jìn)制編碼 的方法 。 選擇運(yùn)算 遺傳算法使用選擇運(yùn)算 (或稱復(fù)制運(yùn)算 )來實(shí)現(xiàn)對(duì)群體中的個(gè)體進(jìn)行優(yōu)勝劣汰操作 , 選擇操作的任務(wù)就是按某種方法從父代群體中選取一些個(gè)體 , 遺傳到下一代群體 。 下面介紹幾種選擇方法: 1 賭盤選擇 又稱比例選擇方法 。 其基本思想是 :各個(gè)個(gè)體被選中的概率與其適應(yīng)度大小成正比 2 排序選擇 該方法的主要思想是 :對(duì)群體中的所有個(gè)體按其適應(yīng)度大小進(jìn)行排序 ,基于這個(gè)排序來分配各個(gè)個(gè)體被選中的概率 。 3 隨機(jī)聯(lián)賽選擇 該方法的基本思想是 :每次選取 N個(gè)個(gè)體之中適應(yīng)度最高的個(gè)體遺傳到下一代群體中 。 4 最優(yōu)個(gè)體保留方法 它的基本思想是 :當(dāng)前群體中適應(yīng)度最高的個(gè)體不參與交叉和變異運(yùn)算 , 而是用它來替換本代群體中經(jīng)過交叉、變異后所產(chǎn)生的適應(yīng)度最低的個(gè)體 。 本文是采用了 最優(yōu)個(gè)體保留 的 方法 。 交叉運(yùn)算 所謂交叉運(yùn)算 , 是指對(duì)兩個(gè)相互配對(duì)的染色體按某種方式相互交換其部分基因 , 從而形成兩個(gè)新 的個(gè)體 。 交叉運(yùn)算 有以下幾種: 1 單點(diǎn)交叉 又稱為簡單交叉 , 它是指在個(gè)體編碼串中隨機(jī)設(shè)置一個(gè)交叉點(diǎn) , 然后在該點(diǎn)相互交 換兩個(gè)配對(duì)個(gè)體的部分基因 。 2 雙點(diǎn)交叉 它的具體操作過程是 :(1) 在相互配對(duì)的兩個(gè)個(gè)體編碼串中隨機(jī)設(shè)置兩個(gè)交叉點(diǎn) ; (2) 交換兩個(gè)交叉點(diǎn)之間的部分基因 。 3 均勻交叉 它是指兩個(gè)配對(duì)個(gè)體的每一位基因都以相同的概率進(jìn)行交換 , 從而形成兩個(gè)新個(gè)體 。 4 算術(shù)交叉 它是指由兩個(gè)個(gè)體的線性組合而產(chǎn)生出新的個(gè)體 。 本文是采用了 單點(diǎn)交叉 的方法 。 變異運(yùn)算 所謂變異運(yùn)算 , 是指將個(gè)體編碼串中的某些基因值用其它基因值來替換 , 從而形成一個(gè)新的個(gè)體 。 變異運(yùn)算 有以下幾種: 1 基本位變異 它是指對(duì)個(gè)體編碼串以變異概率 p 隨機(jī)指定某一位或某幾位基因作變異運(yùn)算 。 2 均勻變異 它是指分別用 符合某一范圍內(nèi)均勻分布的隨機(jī)數(shù) , 以某一較小的概率來替換個(gè)體中每個(gè)基因 。 3 高斯變異 它是指進(jìn)行變異操作時(shí) , 用均值為μ , 方差為σ 2 的正態(tài)分布的一個(gè)隨機(jī)數(shù)來替換原有基因值 。 4 二元變異 它的操作需要兩條染色體參與 , 兩條染色體通過二元變異操作后生成 兩條新個(gè)體 。 新個(gè)體中的各個(gè)基因分別取原染色體對(duì)應(yīng)基因值的同或 /異或 。 本文是采用了 基本位變異 的方法 。 運(yùn)行參數(shù)說明 至于運(yùn)行參數(shù)本人設(shè)置了 7 個(gè) 參數(shù) , 它們分別是 pop_size、 gen_max、 code_length、u_max、 u_min、 probability_crossover、 probability_mutation。 pop_size 表示 種群規(guī)模 , 遺傳算法每次進(jìn)化都有一定的規(guī)模 , 也就是有多少組(粒子)在當(dāng)前尋找 ; gen_max 表示最大進(jìn)化代數(shù) , 是表示 遺傳算法運(yùn)行結(jié)束條件的一個(gè)參數(shù) , 一般建議的取值范圍是 100~500; code_length 表示 設(shè)定編碼長度 , 它與函數(shù)的精度有關(guān) ; u_max 表示最大值的自變量取值范圍 ; u_min 表示最小值的自變量取值范圍 ; probability_crossover 表示交叉率 , 一般建議的取值范圍是 ~ ; probability_mutation 表示變異率 , 一般建議的取值范圍是 ~ 。 對(duì)遺傳算法求 得的 最值的分析 最優(yōu)解 誰都不知道 是多少 , 本人只是把自變量在 0 到 4 之間 取 的 10000 個(gè) 均勻間隔數(shù) , 函數(shù)值就是這些 間隔數(shù) (自變量)相應(yīng)的 適應(yīng)度 (函數(shù)值) , y_1_max 就是這些 適應(yīng)度 (函數(shù)值)中最大的一個(gè) , y_1_min 就是這些 適應(yīng)度 (函數(shù)值)中最小的一個(gè) 。 可是因?yàn)?本人取 的點(diǎn)有間隔 , 所以求得 的 可能 只是最 大 值附近的某個(gè)點(diǎn) , 最大值 可能在 左邊 , 也可能在右邊 , 同樣 求得 的 也 可能 只是最 小 值附近的某個(gè)點(diǎn) , 最小值 可能在左邊 , 也可能在右邊 。 同理遺傳算法在 尋找 最優(yōu)解的 時(shí)候 , 因?yàn)橛?jì)算精度的問題也會(huì)找到 這樣 一個(gè)點(diǎn) , 這個(gè)點(diǎn)同樣可能不是最優(yōu) 的 , 但是這 也 是沒有辦法的 , 因?yàn)楫吘故苡?jì)算機(jī)的影響 , 所以我們只能希望 求最大值時(shí) , 取到的值越大 越好 , 求最小值時(shí) , 取到的值越小 越好 , 故認(rèn)為最優(yōu)解就是最最大的或者最最小的 。 運(yùn)行程序 以 及對(duì)其解釋 ga_maxmin(80, 100, 10, 4, 0, , ) % 當(dāng) 種群規(guī)模 為 80, 最大進(jìn)化代數(shù) 為100, 編 碼長度 為 10,自變量的 最大值為 4, 自變量 的 最小值 為 0, 交叉 率為, 變異 率為 時(shí),求得的函數(shù) 最值 y_Max = %遺傳算法求解函數(shù)后的最大值 BestS = %遺傳算法求解函數(shù)后的最大值 所對(duì)應(yīng)的自變量編碼 1 1 1 1 1 1 1 1 1 1 x_max = %遺傳算法求解函數(shù)后的最大值 4 所對(duì)應(yīng)的自變量 y_min = %遺傳算法求解函數(shù)后的最小值 BestS_min = %遺傳算法求解函數(shù)后的最小值 所對(duì)應(yīng)的自變量編碼 0 1 1 1 0 1 1 1 0 1 x_min = %遺傳算法求解函數(shù)后的最小值 所對(duì)應(yīng)的自變量 y_1_max = %相對(duì)標(biāo)準(zhǔn)下的最大值 y_1_min = %相對(duì)標(biāo)準(zhǔn)下的最小值 其 最大值與進(jìn)化次數(shù)關(guān)系 如圖 2 所示 : 圖 2 最大值與進(jìn)化次數(shù)關(guān)系圖 其 最小值與進(jìn)化次數(shù)關(guān)系圖 如圖 3 所示 : 圖 3 最小值與進(jìn)化次數(shù)關(guān)系圖 其 原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像 如圖 4 所示 : 圖 4 原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像 從運(yùn)行的結(jié)果看 , 用遺 傳算法求得的 y_Max =(最大值)和 y_1_max =(相對(duì)標(biāo)準(zhǔn)下的最大值)一樣大 , 而用遺傳算法求得的 y_min =(最小值)和 y_1_min =(相對(duì)標(biāo)準(zhǔn)下的最小值)很相近 , 只是相差 , 這樣的結(jié)果算是不錯(cuò)的啦 。 至于上面三個(gè)圖形本人也來簡單介紹一下: 最大值與進(jìn)化次數(shù)關(guān)系圖 , 從圖上可以看出經(jīng)過多少代后 , 最大值將趨向平穩(wěn) ; 最小值與進(jìn)化次數(shù)關(guān)系圖 , 從圖上可以看出經(jīng)過多少代后 , 最小值將趨向平穩(wěn) ; 原函數(shù)和遺傳算法求得的最值點(diǎn)的綜合圖像 , 原函數(shù)是指用 數(shù)學(xué)的角度在 Matlab 下 求得的函數(shù)曲線 , 圖中的點(diǎn)或小圓圈就是用遺傳算法求得的最值點(diǎn) 。 本身遺傳算法就是輸出一個(gè)值 , 它不能像遺傳算法中嵌套神經(jīng)網(wǎng)絡(luò)那 樣的算法 , 可以擬 和 畫出函數(shù) 曲線 。 至于圖中的點(diǎn)或小圓圈為什么才幾個(gè) , 因?yàn)?進(jìn)化多少次就 有 多少個(gè)點(diǎn) , 如果這些點(diǎn)都畫出來的話 , 將會(huì)使得整個(gè)圖都布滿小點(diǎn) , 不過后面 90 個(gè)都重合了 , 所以 只畫出一部分 , 重合的就沒畫出來 , 免得太亂了 。 另外 , 有關(guān)于 BestS = 1 1 1 1 1 1 1 1 1 1, BestS_min =0 1 1 1 0 1 1 1 0 1, 是怎么一回事呢 , BestS 表示 輸出最大函數(shù)值所對(duì)應(yīng)自變量編碼 , BestS_min 表示 輸出最小函數(shù)值所對(duì)應(yīng)自變量編碼 , 0 對(duì)應(yīng) 0 0 0 0 0 0 0 0 0 0, 4 對(duì)應(yīng) 1 1 1 1 1 1 1 1 1 1, 為什么要那么多位呢 , 因?yàn)榭紤]到實(shí)數(shù)范圍的對(duì)應(yīng)編碼 , 例如: x_max =4, x_min =。 從數(shù)學(xué)的角度求解函數(shù) 最優(yōu)值 自變量 x以 本人令自變量 x 在 0 到 4 之間 , 以 為步進(jìn)單位 , 即 x 取 0、 、 、 、 、 ?? 4, 以 13 個(gè)函數(shù)值 為一組 , 一一列出函數(shù)值 , 同時(shí)輸出這些函數(shù)值中最大的一個(gè)函數(shù)值 , 也輸出這些函數(shù)值中最小的一個(gè)函數(shù)值 , 也同時(shí)在數(shù)學(xué)的角度下輸出函數(shù)的曲線 。 從函數(shù)的曲線中 , 我們可以很清楚的看出函數(shù)的最值(最大值和最小值) 。 由于x 取的值不多 , 所以函數(shù)的曲線將會(huì)不是很圓滑 , 有多處曲折的地方 。 x=0::4 y = ( sin( 2 * x ) + cos( 3 * x ) ) .^ 3 + 2 y_max=max(y) y_min=min(y) plot(x,y,39。b39。) x = Columns 1 through 13 0 Columns 14 through 21 y = Columns 1 through 13 Columns 14 through 21 y_max = y_min = 其 在數(shù)學(xué)角度下求得的函數(shù)最值的圖像 如圖 5 所示: 圖 5 在數(shù)學(xué)角度下求得的函數(shù)最值的圖像 自變量 x以 為了讓函數(shù)的曲線更加圓滑 , 本人 令自變量 x 在 0 到 4 之間 , 以 為步進(jìn)單位 , 即x 取 0、 、 、 、 、 、 ?? 4, 以 13 個(gè)函數(shù)值為一組 , 一一列出函數(shù)值 ,同時(shí)輸出這些函數(shù)值中
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1