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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于遺傳算法的壓縮彈簧的優(yōu)化設(shè)計(jì)-資料下載頁

2025-06-06 16:08本頁面
  

【正文】 st_m(14) = 9 const_m(15) = 10 const_m(16) = 12 const_m(17) = 14 const_m(18) = 16 群體 規(guī)模的 確定 遺傳算法是對群體進(jìn)行操作,需要準(zhǔn)備一些初始搜索的群體,而初始群體中每個個體是通過隨機(jī)方法產(chǎn)生后組成的一個染色體串,這個染色體串中的每個個體分別在每一個基因取值范圍內(nèi)取得一組基因而形成的。 就群體染色體數(shù)的選擇,從理論上說,群體染色體數(shù)越多,則遺傳算法找到的最優(yōu)解更優(yōu),但由于群體染色體數(shù)太大,必然增大尋找最優(yōu)解的工作量。反之,當(dāng)群體染色體數(shù)選少了,則尋找最優(yōu)解的工作量減小,但是尋找的解是否是最優(yōu)解就很難說了。因此對群體染色體數(shù)的大小,要根據(jù)具體問題來確定 [6]。 這里選取染色體數(shù)為 200。 初始解的 產(chǎn)生 隨機(jī)產(chǎn)生 popsize(群體規(guī)模)個長度為 3 的 染色體 ,作為初始 群體 。產(chǎn)生初始解時,對于染色體的第 1 位基因值 pop_m(i),令其值等于 [1, 18]范圍內(nèi)的一個隨機(jī)整數(shù),產(chǎn)生方法為: pop_m(i) = Int(Rnd() * 18) + 1 ( 42) pop_m(i)隨機(jī)產(chǎn)生的整數(shù)再與數(shù)組 const_m(18)一一對應(yīng)。 對于染色體的第 2 位基因值 pop_z(i),令其值等于 [20, 40]范圍內(nèi)的一個隨機(jī)整數(shù),產(chǎn)生方法為: pop_z(i) = CInt(Rnd() * 20 + 20) ( 43) 對于染色體的第 3 位基因值 pop_faidi(i),令其值等于 [, ]范圍內(nèi)的一個隨機(jī)實(shí)數(shù),產(chǎn)生方法為: pop_faidi(i) = (Rnd() * 600 + 800) / 1000 ( 44) 青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 22 目標(biāo)函數(shù) 和適應(yīng)函數(shù) 的 計(jì)算 目標(biāo)函數(shù) 隨機(jī)產(chǎn)生 popsize(即染色體 群體規(guī)模 , 前面 已經(jīng)選擇,為 200)個 染色體 ,作為初始種群, 由于是實(shí)數(shù)編碼 和 整數(shù)編碼 的混合編碼 , 為了讓初始種群盡量遍布整個解空間,其群體規(guī)模要相對比二進(jìn)制編碼 優(yōu)化時的群體規(guī)模大。 為 了減少不可行解的產(chǎn)生,提高優(yōu)化算法的計(jì)算效率,產(chǎn)生初始解時 使 齒數(shù) 、 模數(shù) 、 齒寬系數(shù) 等 各 約束條件 自動得到滿足 。 小齒輪齒數(shù) 4020 ??z , 模數(shù) 162 ??m , 齒寬系數(shù) ?? d? , 另外還要滿足兩齒輪的接觸疲勞約束和彎曲疲勞約束。 此優(yōu)化問題帶有約束條件,我們采用懲罰函數(shù)法來對違背約束條件的個體進(jìn)行懲罰,并將此懲罰體現(xiàn)在適應(yīng)度函數(shù)設(shè)計(jì) 中。可表示如下 [6]: min ? ? ? ? ? ?xrpxfrx ??,? ( 45) 式中 : ??xp 為懲罰項(xiàng), r 為懲罰因子, r 可根據(jù)經(jīng)驗(yàn)選取, ??xp 在本設(shè)計(jì)中為每個染色體的接觸疲勞應(yīng)力與標(biāo)準(zhǔn)接觸疲勞應(yīng)力之差和彎曲疲勞應(yīng)力與標(biāo)準(zhǔn)彎曲疲勞應(yīng)力之差的和。 采用懲罰函數(shù)法的程序如下: Dim p1 As Double Dim p2 As Double Dim p3 As Double Dim chengfaxishu_m As Double chengfaxishu_m = 10000 For k = 1 To popsize If cigema_h(k) = cigemabiaozhun_h Then p1 = cigema_h(k) cigemabiaozhun_h Else p1 = 0 End If 青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 23 If cigema_f1(k) = cigemabiaozhun_f1 Then p2 = cigema_f1(k) cigemabiaozhun_f1 Else p2 = 0 End If If cigema_f2(k) = cigemabiaozhun_f2 Then p3 = cigema_f2(k) cigemabiaozhun_f2 Else p3 = 0 End If objf(k) = objf(k) + chengfaxishu_m * (p1 + p2 + p3) a(k) = chengfaxishu_m * (p1 + p2 + p3) Next k 程序中, p1, p2, p3 分別為接觸疲勞約束和彎曲疲勞約束時的懲罰項(xiàng); chengfaxishu_m為 懲 罰 因 子 ,此 處 選 擇 100000 ; cigemabiaozhun_h 為接觸標(biāo)準(zhǔn)疲勞應(yīng)力;cigemabiaozhun_f1 為小齒輪彎曲標(biāo)準(zhǔn)疲勞應(yīng)力; cigemabiaozhun_f2 為大齒輪彎曲標(biāo)準(zhǔn)疲勞應(yīng)力; cigema_h(k)為每個染色體的接觸疲勞應(yīng)力; cigema_f2(k)、 cigema_f2(k)分別為每個染色體(小大齒輪)的彎曲疲勞應(yīng)力。 故可得加上懲罰函數(shù)后的目標(biāo)函數(shù)為: objf(k) = objf(k) + chengfaxishu_m * (p1 + p2 + p3) ( 46) 計(jì)算 適應(yīng)函數(shù) 遺傳算法用適應(yīng)度大小來評估個體(或解)的優(yōu)劣,從而決定遺傳機(jī)會的多少,這個評估個體適應(yīng)度的函數(shù)稱為適應(yīng)度函數(shù)。適應(yīng)度較高 的個體遺傳到下一代的概率較大;而適應(yīng)度較底的個體遺傳到下一代的概率相對小一些 [6]。 通常優(yōu)化問題求解時是把待求問題的目標(biāo)函數(shù)映射成適應(yīng)度函數(shù)。對于求最小的目標(biāo)函數(shù) ??xf 映射成適應(yīng)度函數(shù)的方法 可為: ? ? ? ?xfCxp ?? m ax 若 ? ?maxCxf ? ( 47) 青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 24 這里的 maxC 可取為最大目標(biāo)函數(shù)的 倍,即適應(yīng)函數(shù)為: fitness(x ) = * max_objf objf(x ) ( 48) 由前面的式( 313)得目標(biāo)函數(shù)為: ? ? ? ?? ? ? ?? ? 332332 4/14/1 zuzmuxf dd ???? ??????? ( 49) 選擇 復(fù)制 操作 選擇復(fù)制操作 是對群體中的個體按優(yōu)勝劣汰的方式選取,并遺傳到下一代群體的運(yùn)算操作,它是建立在群體中個體的 適應(yīng) 函數(shù)值 評估 基礎(chǔ)上的。 適應(yīng)函數(shù)值 較大 的個體被遺傳到下一代群體中的概率較大, 適應(yīng)函數(shù)值 較小 的個體被遺傳到 下一代群體中的概率較小。通過選擇操作可避免基因缺失,提高全局收斂性和計(jì)算效率 [6]。 適應(yīng)度比例選擇方法是基本的選擇方法,也叫輪盤賭選擇。該方法的基本思想是:各個個體的被選中的概率與其適應(yīng)度大小成正比。 由第 2 章中式( 26)得每個個 體的累計(jì)概率為: s iz epop,2,1,s iz epop1???? ?? ?iffpj iii ( 410) 顯然,概率反映了個體的適應(yīng)度在整個群體的個體適應(yīng)度總和中所占的比例,個體適應(yīng)度越大,其被選擇的概率就越高,反之亦然。此優(yōu)化設(shè)計(jì)中我們隨機(jī)產(chǎn)生一隨機(jī)數(shù)temp_a,當(dāng)累計(jì)概率大于 temp_a 時,則選擇對應(yīng)的個體,并用 temp_b 來記錄。選擇的輪盤賭函數(shù)程序如下: Function select_lunpandu() Randomize Dim temp_a As Double Dim temp_b As Integer temp_a = Rnd() For i = 1 To popsize If leijigailv(i) temp_a Then temp_b = i select_lunpandu = temp_b 青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 25 Exit For End If Next i 交叉操作 遺傳算法的交叉是產(chǎn)生新個體的主要操作過程。某兩個個體之間的部分染色體是以某一概率,進(jìn)行部分基因交換,產(chǎn)生兩個新的染色體。這一過程是模擬生物進(jìn)化過程中繁殖的雜交現(xiàn)象。 對于 整數(shù)和 實(shí)數(shù)編碼 的染色體可采用算術(shù)交叉的方法 [6]。它是由 兩個個體的線形組合而產(chǎn)生 出兩個新個體,若兩個個體 tAX 、 tBX 之間進(jìn)行算術(shù)交叉,則交叉運(yùn)算后所產(chǎn)生出的兩個新個體為: ? ?? ??????????????ttttttBA1BAB1A X1XX X1XX ?? ?? ( 411) 式中 : ? 為 一隨機(jī)產(chǎn)生的 [0, 1]間的隨機(jī)數(shù) 。 本設(shè)計(jì)程序中用 temp_gema 表示 ? 。程序中利用隨機(jī)產(chǎn)生的 temp_pc,若temp_pc=jiaochagailv_pc(交叉概率) 則兩個個體進(jìn)行交叉,從而得到新的兩個個體;若不交叉則個體保持不變。 在交叉操作的過程中,交叉概率的選擇是要認(rèn)真考慮的。交叉概率的 取值范圍按經(jīng)驗(yàn)得一般是 [, ], 本例中交叉概率為 。 程序如下: Public Sub cross(n1 As Integer, n2 As Integer, i As Integer) Randomize Dim temp_gema As Double Dim temp_pc As Double temp_pc =Rnd() If temp_pc = jiaochagailv_pc Then temp_gema = Rnd() newpop_m(i)=Int(temp_gema*pop_m(n1)+(1temp_gema)*pop_m(n2)) newpop_m(i+1)=Int(temp_gema*pop_m(n2)+(1temp_gema)*pop_m(n1)) 青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 26 newpop_z(i)=CInt(temp_gema*pop_z(n1)+(1temp_gema)*pop_z(n2)) newpop_z(i+1)=CInt(temp_gema*pop_z(n2)+(1temp_gema)*pop_z(n1)) newpop_faidi(i)=temp_gema*pop_faidi(n1)+(1temp_gema)*pop_faidi(n2) newpop_faidi(i+1)=temp_gema*pop_faidi(n2)+(1temp_gema)*pop_faidi(n1) Else newpop_m(i)=pop_m(i) newpop_m(i+1)=pop_m(i+1) newpop_z(i)=pop_z(i) newpop_z(i+1)=pop_z(i+1) newpop_faidi(i)=pop_faidi(i) newpop_faidi(i+1)=pop_faidi(i+1) End If End Sub 變異運(yùn)算 變異的目的是為了防止丟失一些有用的遺傳基因,即增強(qiáng)遺傳算法搜索最優(yōu)解的能力,尤其是當(dāng)群體中的個體經(jīng)遺傳算法可能使某些串位失去多樣性,從而可能失去檢驗(yàn)有用遺傳基因的機(jī)會。 目前有多種主要的 變異 算子,我選擇了非均勻變異算子。所謂非均勻變異即對原有的基因值作一 隨機(jī)擾動,以擾動后的結(jié)果作為變異后的新基因值。對每一個基因都以相同的概率進(jìn)行變異之后,相當(dāng)于整個解矢量在解空間中作一個輕微的變動。非均勻變異的操作過程不同之處在于重點(diǎn)搜索原個體附近的微小區(qū)域 [6]。 由第 2 章得,對于實(shí)數(shù)編碼的個體,隨機(jī)選擇某位基因,其一般形式為: ???? xx ( 412) 式中: ? 為一較小的波動量,其選擇比較困難,最優(yōu)值視具體情況而定,甚至在優(yōu)化過程中可 以改變。 本論文中有三個設(shè)計(jì)變量,即相當(dāng)于三個基因。為了 保持選擇交叉后得到的優(yōu)秀個體 ,每個個體只有一個基因進(jìn)行變異。函數(shù) Int(Rnd * 3 + 1)只能產(chǎn)生 2 或 3,即隨機(jī)產(chǎn)生為 1 時,第一個設(shè)計(jì)變量 摸數(shù) 進(jìn)行變異,而其它兩個變量保持不變(函數(shù)隨機(jī)產(chǎn)生青島理工大學(xué)本科畢業(yè)設(shè)計(jì)(論文)說明書 27 2 或 3 時類似 , 即 2 時是齒數(shù)變量進(jìn)行變異, 3 時為設(shè)計(jì)變量齒寬系數(shù)進(jìn)行變異 ),這樣就保證了每次只有一個基因進(jìn)行變異。至于基因變異時是 “ ?? ”還是 “ ?? ”問題,可通過一隨機(jī)數(shù) 0 或 1,當(dāng)為 0 時進(jìn)行 ?? 操作,為 1 時進(jìn)行 ?? 操作。 三個設(shè)計(jì)變量的 ? 視具體情況可選取如下:模數(shù)的 ? = temp2 * temp4( temp2 為一隨機(jī)數(shù), temp4 = 3) ;齒數(shù)的? = temp3 * temp7( temp3 為一隨機(jī)數(shù), temp7 = 8);齒寬系數(shù)的 ? = temp5 * temp8( temp5為隨機(jī)數(shù), temp8 = ) 在進(jìn)行變異處理后,產(chǎn)生的新染色體即生成了一組新的設(shè)計(jì)變量。 若產(chǎn)生的新的基因值超過約束條件,則強(qiáng) 迫產(chǎn)生的新的基因返回到原先的最大或最小基因 ,例 如若某一基因變異后得到的新基因值大于了約束條件要求的最大值,則強(qiáng)迫新的基因值為原先的最大值。 變異運(yùn)算中的變異概率的選擇也是十分關(guān)鍵的。如果
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1