<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          遺傳算法(Genetic Algorithm)詳解與實(shí)現(xiàn)

          共 6498字,需瀏覽 13分鐘

           ·

          2021-10-20 19:17

          遺傳算法簡(jiǎn)介

          遺傳算法是受自然進(jìn)化理論啟發(fā)的一系列搜索算法。通過(guò)模仿自然選擇和繁殖的過(guò)程,遺傳算法可以為涉及搜索,優(yōu)化和學(xué)習(xí)的各種問(wèn)題提供高質(zhì)量的解決方案。同時(shí),它們類(lèi)似于自然進(jìn)化,因此可以克服傳統(tǒng)搜索和優(yōu)化算法遇到的一些障礙,尤其是對(duì)于具有大量參數(shù)和復(fù)雜數(shù)學(xué)表示形式的問(wèn)題。

          類(lèi)比達(dá)爾文進(jìn)化論

          達(dá)爾文進(jìn)化理論

          遺傳算法是類(lèi)比自然界的達(dá)爾文進(jìn)化實(shí)現(xiàn)的簡(jiǎn)化版本。達(dá)爾文進(jìn)化論的原理概括總結(jié)如下:

          1. 變異:種群中單個(gè)樣本的特征(性狀,屬性)可能會(huì)有所不同,這導(dǎo)致了樣本彼此之間有一定程度的差異。

          2. 遺傳:某些特征可以遺傳給其后代。導(dǎo)致后代與雙親樣本具有一定程度的相似性。

          3. 選擇:種群通常在給定的環(huán)境中爭(zhēng)奪資源。更適應(yīng)環(huán)境的個(gè)體在生存方面更具優(yōu)勢(shì),因此會(huì)產(chǎn)生更多的后代。

          換句話說(shuō),進(jìn)化維持了種群中個(gè)體樣本彼此不同。那些適應(yīng)環(huán)境的個(gè)體更有可能生存,繁殖并將其性狀傳給下一代。這樣,隨著世代的更迭,物種變得更加適應(yīng)其生存環(huán)境。而進(jìn)化的重要推動(dòng)因素是交叉(crossover)或重組(recombination)或雜交——結(jié)合雙親的特征產(chǎn)生后代。交叉有助于維持人口的多樣性,并隨著時(shí)間的推移將更好的特征融合在一起。此外,變異(mutations)或突變(特征的隨機(jī)變異)可以通過(guò)引入偶然性的變化而在進(jìn)化中發(fā)揮重要作用。

          遺傳算法對(duì)應(yīng)概念

          遺傳算法試圖找到給定問(wèn)題的最佳解。達(dá)爾文進(jìn)化論保留了種群的個(gè)體性狀,而遺傳算法則保留了針對(duì)給定問(wèn)題的候選解集合(也稱為individuals)。這些候選解經(jīng)過(guò)迭代評(píng)估(evaluate),用于創(chuàng)建下一代解。更優(yōu)的解有更大的機(jī)會(huì)被選擇,并將其特征傳遞給下一代候選解集合。這樣,隨著代際更新,候選解集合可以更好地解決當(dāng)前的問(wèn)題。基因型(Genotype)在自然界中,通過(guò)基因型表征繁殖,繁殖和突變,基因型是組成染色體的一組基因的集合。在遺傳算法中,每個(gè)個(gè)體都由代表基因集合的染色體構(gòu)成。例如,一條染色體可以表示為二進(jìn)制串,其中每個(gè)位代表一個(gè)基因:

          種群(Population)遺傳算法保持大量的個(gè)體(individuals)——針對(duì)當(dāng)前問(wèn)題的候選解集合。由于每個(gè)個(gè)體都由染色體表示,因此這些種族的個(gè)體(individuals)可以看作是染色體集合:

          適應(yīng)度函數(shù)(Fitness function)在算法的每次迭代中,使用適應(yīng)度函數(shù)(也稱為目標(biāo)函數(shù))對(duì)個(gè)體進(jìn)行評(píng)估。目標(biāo)函數(shù)是用于優(yōu)化的函數(shù)或試圖解決的問(wèn)題。適應(yīng)度得分更高的個(gè)體代表了更好的解,其更有可能被選擇繁殖并且其性狀會(huì)在下一代中得到表現(xiàn)。隨著遺傳算法的進(jìn)行,解的質(zhì)量會(huì)提高,適應(yīng)度會(huì)增加,一旦找到具有令人滿意的適應(yīng)度值的解,終止遺傳算法。

          選擇(Selection)在計(jì)算出種群中每個(gè)個(gè)體的適應(yīng)度后,使用選擇過(guò)程來(lái)確定種群中的哪個(gè)個(gè)體將用于繁殖并產(chǎn)生下一代,具有較高值的個(gè)體更有可能被選中,并將其遺傳物質(zhì)傳遞給下一代。仍然有機(jī)會(huì)選擇低適應(yīng)度值的個(gè)體,但概率較低。這樣,就不會(huì)完全摒棄其遺傳物質(zhì)。交叉(Crossover)為了創(chuàng)建一對(duì)新個(gè)體,通常將從當(dāng)前代中選擇的雙親樣本的部分染色體互換(交叉),以創(chuàng)建代表后代的兩個(gè)新染色體。此操作稱為交叉或重組:

          突變(Mutation)突變操作的目的是定期隨機(jī)更新種群,將新模式引入染色體,并鼓勵(lì)在解空間的未知區(qū)域中進(jìn)行搜索。突變可能表現(xiàn)為基因的隨機(jī)變化。變異是通過(guò)隨機(jī)改變一個(gè)或多個(gè)染色體值來(lái)實(shí)現(xiàn)的。例如,翻轉(zhuǎn)二進(jìn)制串中的一位:

          遺傳算法理論

          構(gòu)造遺傳算法的理論假設(shè)——針對(duì)當(dāng)前問(wèn)題的最佳解是由多個(gè)要素組成的,當(dāng)更多此類(lèi)要素組合在一起時(shí),將更接近于問(wèn)題的最優(yōu)解。種群中的個(gè)體包含一些最優(yōu)解所需的要素,重復(fù)選擇和交叉過(guò)程將個(gè)體將這些要素傳達(dá)給下一代,同時(shí)可能將它們與其他最優(yōu)解的基本要素結(jié)合起來(lái)。這將產(chǎn)生遺傳壓力,從而引導(dǎo)種群中越來(lái)越多的個(gè)體包含構(gòu)成最佳解決方案的要素。

          圖式定理(schema theorem)

          要素假設(shè)的一個(gè)更形式化的表達(dá)是Holland圖式定理,也稱為遺傳算法的基本定理。該定理是指圖式是可以在染色體內(nèi)找到的模式(或模板)。每個(gè)圖式代表染色體中具有一定相似性的子集。例如,如果一組染色體用長(zhǎng)度為4的二進(jìn)制串表示,則圖式101表示所有這些染色體,其中最左邊的位置為1,最右邊的兩個(gè)位置為01,從左邊數(shù)的第二個(gè)位置為1或0,其中表示通配符。對(duì)于每個(gè)圖式,具有以下兩個(gè)度量:

          1. 階(Order):固定數(shù)字的數(shù)量

          2. 定義長(zhǎng)度(Defining length):最遠(yuǎn)的兩個(gè)固定數(shù)字之間的距離

          下表提供了四位二進(jìn)制圖式及其度量的幾個(gè)示例:

          圖式OrderDefining Length
          110143
          1*0133
          *10132
          **0121
          1***10
          ****00

          種群中的每個(gè)染色體都對(duì)應(yīng)于多個(gè)圖式。例如,染色體1101對(duì)應(yīng)于該表中出現(xiàn)的每個(gè)圖式,因?yàn)樗c它們代表的每個(gè)模式匹配。如果該染色體具有較高的適應(yīng)度,則它及其代表的所有圖式都更有可能從選擇操作中幸存。當(dāng)這條染色體與另一條染色體交叉或發(fā)生突變時(shí),某些圖式將保留下來(lái),而另一些則將消失。低階圖式和定義長(zhǎng)度短的圖式更有可能幸存。因此,圖式定理指出,低階、定義長(zhǎng)度短且適合度高于平均值的圖式頻率在連續(xù)的世代中呈指數(shù)增長(zhǎng)。換句話說(shuō),隨著遺傳算法的發(fā)展,代表更有效解決方案的屬性的更小、更簡(jiǎn)單的要素基塊將越來(lái)越多地出現(xiàn)在群體中。

          遺傳算法與傳統(tǒng)算法的差異

          遺傳算法與傳統(tǒng)的搜索和優(yōu)化算法(例如基于梯度的算法)之間存在一些重要區(qū)別。

          1. 基于種群

          遺傳搜索是針對(duì)一組候選解決方案(individuals)而不是單個(gè)候選方案進(jìn)行的。在搜索過(guò)程中,算法會(huì)保留當(dāng)前一代的一組個(gè)體。遺傳算法的每次迭代都會(huì)創(chuàng)建下一代個(gè)體。相反,大多數(shù)其他搜索算法都維持單個(gè)解決方案,并迭代地修改它以尋找最佳解決方案。例如,梯度下降算法沿當(dāng)前最陡下降方向迭代移動(dòng)當(dāng)前解,梯度方向?yàn)榻o定函數(shù)的梯度的負(fù)數(shù)。2. 遺傳表征 遺傳算法不是直接在候選解上運(yùn)行,而是在它們的表示(或編碼)(通常稱為染色體,chromosomes)上運(yùn)行。染色體能夠利用交叉和突變的遺傳操作。使用遺傳表示的弊端是使搜索過(guò)程與原始問(wèn)題域分離。遺傳算法不知道染色體代表什么,也不試圖解釋它們。3. 適應(yīng)度函數(shù) 適應(yīng)度函數(shù)表示要解決的問(wèn)題。遺傳算法的目的是找到利用適應(yīng)度函數(shù)求得的得分最高的個(gè)體。與許多傳統(tǒng)的搜索算法不同,遺傳算法僅考慮利用適應(yīng)度函數(shù)獲得的值,而不依賴于導(dǎo)數(shù)或任何其他信息。這使它們適合處理難以或不可能在數(shù)學(xué)上求導(dǎo)的函數(shù)。4. 概率行為 盡管許多傳統(tǒng)算法本質(zhì)上是確定性的,但是遺傳算法用來(lái)從一代產(chǎn)生下一代的規(guī)則是概率性的。例如,選擇的個(gè)體將被用來(lái)創(chuàng)建下一代,選擇個(gè)體的概率隨著個(gè)體的適應(yīng)度得分增加,但仍有可能選擇一個(gè)得分較低的個(gè)體。盡管此過(guò)程具有概率性,但基于遺傳算法的搜索并不是隨機(jī)的;取而代之的是,它利用隨機(jī)將搜索引向搜索空間中有更好機(jī)會(huì)改善結(jié)果的區(qū)域。

          遺傳算法的優(yōu)缺點(diǎn)

          優(yōu)點(diǎn)

          1. 全局最優(yōu)

          在許多情況下,優(yōu)化問(wèn)題具有局部最大值和最小值。這些值代表的解比周?chē)慕庖?,但并不是最佳的解。大多?shù)傳統(tǒng)的搜索和優(yōu)化算法,尤其是基于梯度的搜索和優(yōu)化算法,很容易陷入局部最大值,而不是找到全局最大值。遺傳算法更有可能找到全局最大值。這是由于使用了一組候選解,而不是一個(gè)候選解,而且在許多情況下,交叉和變異操作將導(dǎo)致候選解與之前的解有所不同。只要設(shè)法維持種群的多樣性并避免過(guò)早趨同(premature convergence),就可能產(chǎn)生全局最優(yōu)解。2. 處理復(fù)雜問(wèn)題 由于遺傳算法僅需要每個(gè)個(gè)體的適應(yīng)度函數(shù)得分,而與適應(yīng)度函數(shù)的其他方面(例如導(dǎo)數(shù))無(wú)關(guān),因此它們可用于解決具有復(fù)雜數(shù)學(xué)表示、難以或無(wú)法求導(dǎo)的函數(shù)問(wèn)題。3. 處理缺乏數(shù)學(xué)表達(dá)的問(wèn)題 遺傳算法可用于完全缺乏數(shù)學(xué)表示的問(wèn)題。這是由于適應(yīng)度是人為設(shè)計(jì)的。例如,想要找到最有吸引力顏色組合,可以嘗試不同的顏色組合,并要求用戶評(píng)估這些組合的吸引力。使用基于意見(jiàn)的得分作為適應(yīng)度函數(shù)應(yīng)用遺傳算法搜索最佳得分組合。即使適應(yīng)度函數(shù)缺乏數(shù)學(xué)表示,并且無(wú)法直接從給定的顏色組合計(jì)算分?jǐn)?shù),但仍可以運(yùn)行遺傳算法。只要能夠比較兩個(gè)個(gè)體并確定其中哪個(gè)更好,遺傳算法甚至可以處理無(wú)法獲得每個(gè)個(gè)體適應(yīng)度的情況。例如,利用機(jī)器學(xué)習(xí)算法在模擬比賽中駕駛汽車(chē),然后利用基于遺傳算法的搜索可以通過(guò)讓機(jī)器學(xué)習(xí)算法的不同版本相互競(jìng)爭(zhēng)來(lái)確定哪個(gè)版本更好,從而優(yōu)化和調(diào)整機(jī)器學(xué)習(xí)算法。4. 耐噪音 一些問(wèn)題中可能存在噪聲現(xiàn)象。這意味著,即使對(duì)于相似的輸入值,每次得到的輸出值也可能有所不同。例如,當(dāng)從傳感器產(chǎn)生異常數(shù)據(jù)時(shí),或者在得分基于人的觀點(diǎn)的情況下,就會(huì)發(fā)生這種情況。盡管這種行為可以干擾許多傳統(tǒng)的搜索算法,但是遺傳算法通常對(duì)此具有魯棒性,這要?dú)w功于反復(fù)交叉和重新評(píng)估個(gè)體的操作。5. 并行性 遺傳算法非常適合并行化和分布式處理。適應(yīng)度是針對(duì)每個(gè)個(gè)體獨(dú)立計(jì)算的,這意味著可以同時(shí)評(píng)估種群中的所有個(gè)體。另外,選擇、交叉和突變的操作可以分別在種群中的個(gè)體和個(gè)體對(duì)上同時(shí)進(jìn)行。6. 持續(xù)學(xué)習(xí) 進(jìn)化永無(wú)止境,隨著環(huán)境條件的變化,種群逐漸適應(yīng)它們。遺傳算法可以在不斷變化的環(huán)境中連續(xù)運(yùn)行,并且可以在任何時(shí)間點(diǎn)獲取和使用當(dāng)前最佳的解。但是需要環(huán)境的變化速度相對(duì)于遺傳算法的搜索速度慢。

          局限性

          1. 需要特殊定義:將遺傳算法應(yīng)用于給定問(wèn)題時(shí),需要為它們創(chuàng)建合適的表示形式——定義適應(yīng)度函數(shù)和染色體結(jié)構(gòu),以及適用于該問(wèn)題的選擇、交叉和變異算子。

          2. 超參數(shù)調(diào)整:遺傳算法的行為由一組超參數(shù)控制,例如種群大小和突變率等。將遺傳算法應(yīng)用于特定問(wèn)題時(shí),沒(méi)有標(biāo)準(zhǔn)的超參數(shù)設(shè)定規(guī)則。

          3. 計(jì)算密集:種群規(guī)模較大時(shí)可能需要大量計(jì)算,在達(dá)到良好結(jié)果之前會(huì)非常耗時(shí)??梢酝ㄟ^(guò)選擇超參數(shù)、并行處理以及在某些情況下緩存中間結(jié)果來(lái)緩解這些問(wèn)題。

          4. 過(guò)早趨同:如果一個(gè)個(gè)體的適應(yīng)能力比種群的其他個(gè)體的適應(yīng)能力高得多,那么它的重復(fù)性可能足以覆蓋整個(gè)種群。這可能導(dǎo)致遺傳算法過(guò)早地陷入局部最大值,而不是找到全局最大值。為了防止這種情況的發(fā)生,需要保證物種的多樣性。

          5. 無(wú)法保證的解的質(zhì)量:遺傳算法的使用并不能保證找到當(dāng)前問(wèn)題的全局最大值(但幾乎所有的搜索和優(yōu)化算法都存在此類(lèi)問(wèn)題,除非它是針對(duì)特定類(lèi)型問(wèn)題的解析解)。通常,遺傳算法在適當(dāng)使用時(shí)可以在合理的時(shí)間內(nèi)提供良好的解決方案。

          遺傳算法應(yīng)用場(chǎng)景

          1. 數(shù)學(xué)表示復(fù)雜的問(wèn)題:由于遺傳算法僅需要適應(yīng)度函數(shù)的結(jié)果,因此它們可用于難以求導(dǎo)或無(wú)法求導(dǎo)的目標(biāo)函數(shù)問(wèn)題,大量參數(shù)問(wèn)題以及參數(shù)混合問(wèn)題類(lèi)型。

          2. 沒(méi)有數(shù)學(xué)表達(dá)式的問(wèn)題:只要可以獲得分?jǐn)?shù)值或有一種方法可以比較兩個(gè)解,遺傳算法就不需要對(duì)問(wèn)題進(jìn)行數(shù)學(xué)表示。

          3. 涉及噪聲數(shù)據(jù)問(wèn)題:遺傳算法可以應(yīng)對(duì)數(shù)據(jù)可能不一致的問(wèn)題,例如源自傳感器輸出或基于人類(lèi)評(píng)分的數(shù)據(jù)。

          4. 隨時(shí)間而變化的環(huán)境所涉及的問(wèn)題:遺傳算法可以通過(guò)不斷創(chuàng)建適應(yīng)變化的新一代來(lái)響應(yīng)較為緩慢的環(huán)境變化。

          但是當(dāng)問(wèn)題具有已知的和專業(yè)的解決方法時(shí),使用現(xiàn)有的傳統(tǒng)方法或分析方法可能是更有效的選擇。

          遺傳算法的組成要素

          遺傳算法的核心是循環(huán)——依次應(yīng)用選擇,交叉和突變的遺傳算子,然后對(duì)個(gè)體進(jìn)行重新評(píng)估——一直持續(xù)到滿足停止條件為止

          算法的基本流程

          以下流程圖顯示了基本遺傳算法流程的主要階段:

          no

          yes

          開(kāi)始

          創(chuàng)建初始種群

          計(jì)算種群中每個(gè)個(gè)體的適應(yīng)度

          選擇

          交叉

          突變

          計(jì)算種群中每個(gè)個(gè)體的適應(yīng)度

          滿足終止條件?

          選擇適應(yīng)度最高的個(gè)體

          結(jié)束

          創(chuàng)建初始種群

          初始種群是隨機(jī)選擇的一組有效候選解(個(gè)體)。由于遺傳算法使用染色體代表每個(gè)個(gè)體,因此初始種群實(shí)際上是一組染色體。

          計(jì)算適應(yīng)度

          適應(yīng)度函數(shù)的值是針對(duì)每個(gè)個(gè)體計(jì)算的。對(duì)于初始種群,此操作將執(zhí)行一次,然后在應(yīng)用選擇、交叉和突變的遺傳算子后,再對(duì)每個(gè)新一代進(jìn)行。由于每個(gè)個(gè)體的適應(yīng)度獨(dú)立于其他個(gè)體,因此可以并行計(jì)算。由于適應(yīng)度計(jì)算之后的選擇階段通常認(rèn)為適應(yīng)度得分較高的個(gè)體是更好的解決方案,因此遺傳算法專注于尋找適應(yīng)度得分的最大值。如果是需要最小值的問(wèn)題,則適應(yīng)度計(jì)算應(yīng)將原始值取反,例如,將其乘以值(-1)。

          選擇、交叉和變異

          將選擇,交叉和突變的遺傳算子應(yīng)用到種群中,就產(chǎn)生了新一代,該新一代基于當(dāng)前代中較好的個(gè)體。選擇(selection)操作負(fù)責(zé)當(dāng)前種群中選擇有優(yōu)勢(shì)的個(gè)體。交叉(crossover,或重組,recombination)操作從選定的個(gè)體創(chuàng)建后代。這通常是通過(guò)兩個(gè)被選定的個(gè)體互換他們?nèi)旧w的一部分以創(chuàng)建代表后代的兩個(gè)新染色體來(lái)完成的。變異(mutation)操作可以將每個(gè)新創(chuàng)建個(gè)體的一個(gè)或多個(gè)染色體值(基因)隨機(jī)進(jìn)行變化。突變通常以非常低的概率發(fā)生。

          算法終止條件

          在確定算法是否可以停止時(shí),可能有多種條件可以用于檢查。兩種最常用的停止條件是:

          1. 已達(dá)到最大世代數(shù)。這也用于限制算法消耗的運(yùn)行時(shí)間和計(jì)算資源。

          2. 在過(guò)去的幾代中,個(gè)體沒(méi)有明顯的改進(jìn)。這可以通過(guò)存儲(chǔ)每一代獲得的最佳適應(yīng)度值,然后將當(dāng)前的最佳值與預(yù)定的幾代之前獲得的最佳值進(jìn)行比較來(lái)實(shí)現(xiàn)。如果差異小于某個(gè)閾值,則算法可以停止。

          其他停止條件:

          1. 自算法過(guò)程開(kāi)始以來(lái)已經(jīng)超過(guò)預(yù)定時(shí)間。

          2. 消耗了一定的成本或預(yù)算,例如CPU時(shí)間和/或內(nèi)存。

          3. 最好的解已接管了一部分種群,該部分大于預(yù)設(shè)的閾值。

          其他

          精英主義(elitism)

          盡管遺傳算法群體的平均適應(yīng)度通常隨著世代的增加而增加,但在任何時(shí)候都有可能失去當(dāng)代的最佳個(gè)體。這是由于選擇、交叉和變異運(yùn)算符在創(chuàng)建下一代的過(guò)程中改變了個(gè)體。在許多情況下,丟失是暫時(shí)的,因?yàn)檫@些個(gè)體(或更好的個(gè)體)將在下一代中重新引入種群。但是,如果要保證最優(yōu)秀的個(gè)體總是能進(jìn)入下一代,則可以選用精英主義策略。這意味著,在我們使用通過(guò)選擇、交叉和突變創(chuàng)建的后代填充種群之前,將前n個(gè)個(gè)體(n是預(yù)定義參數(shù))復(fù)制到下一代。復(fù)制后的的精英個(gè)體仍然有資格參加選擇過(guò)程,因此仍可以用作新個(gè)體的親本。Elitism策略有時(shí)會(huì)對(duì)算法的性能產(chǎn)生重大的積極影響,因?yàn)樗苊饬酥匦掳l(fā)現(xiàn)遺傳過(guò)程中丟失的良好解決方案所需的潛在時(shí)間浪費(fèi)。

          小生境與共享

          在自然界中,任何環(huán)境都可以進(jìn)一步分為多個(gè)子環(huán)境或小生境,這些小生境由各種物種組成,它們利用每個(gè)小生境中可用的獨(dú)特資源,例如食物和庇護(hù)所。例如,森林環(huán)境由樹(shù)梢,灌木,森林地面,樹(shù)根等組成;這些可容納不同物種,它們生活在該小生境中并利用其資源。當(dāng)幾種不同的物種共存于同一個(gè)小生境中時(shí),它們都將爭(zhēng)奪相同的資源,從而形成了尋找新的,無(wú)人居住的生態(tài)位并將其填充的趨勢(shì)。在遺傳算法領(lǐng)域,這種小生境現(xiàn)象可用于維持種群的多樣性以及尋找?guī)讉€(gè)最佳解決方案,每個(gè)解決方案均被視為小生境。例如,假設(shè)遺傳算法試圖最大化具有幾個(gè)不同峰值的適應(yīng)度函數(shù):

          由于遺傳算法的趨勢(shì)是找到全局最大值,因此一段時(shí)間后大多數(shù)個(gè)體集中在最高峰附近。在圖中通過(guò)使用×標(biāo)記的位置表示這一點(diǎn),×代表了當(dāng)前代的個(gè)體。但是有時(shí),除了全局最大值外,我們還希望找到其他部分(或全部)峰值。為此,可以將每個(gè)峰視為小生境,以與其高度成比例的方式提供資源。然后,找到一種在占用資源的個(gè)體之間共享(或分配)這些資源的方法,理想情況下,這將促使物種進(jìn)行相應(yīng)的分配,最高峰會(huì)吸引最多的人,因?yàn)樗峁┑莫?jiǎng)勵(lì)最多,而其他峰由于提供較少的獎(jiǎng)勵(lì)而相應(yīng)減少物種數(shù)量:

          實(shí)現(xiàn)共享機(jī)制的一種方法是將每個(gè)個(gè)體的原始適應(yīng)度值除以(與之相關(guān)的)其他所有個(gè)體的距離之和。另一種選擇是將每個(gè)個(gè)體的原始適應(yīng)度除以周?chē)硞€(gè)半徑內(nèi)的其他個(gè)體的數(shù)量。

          遺傳算法實(shí)踐

          采用deap框架實(shí)現(xiàn)遺傳算法的Hello world——OneMax問(wèn)題,代碼實(shí)現(xiàn)鏈接。


          作者:盼小輝丶
          鏈接:https://juejin.cn/post/7020641022644322340
          來(lái)源:稀土掘金
          著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蜜桃传媒一区 | 韩国av三级片麻豆 | 成人做爰黄级A片免费看土方 | 在线观看色情视频 | A A A片免费看视频 |