博客專欄

        EEPW首頁 > 博客 > 優(yōu)化算法之手推遺傳算法(Genetic Algorithm)的詳細步驟圖解

        優(yōu)化算法之手推遺傳算法(Genetic Algorithm)的詳細步驟圖解

        發(fā)布人:數(shù)據(jù)派THU 時間:2022-03-13 來源:工程師 發(fā)布文章
        來源:DeepHub IMBA

        遺傳算法可以做什么?


        遺傳算法是元啟發(fā)式算法之一。它有與達爾文理論(1859 年發(fā)表)的自然演化相似的機制。如果你問我什么是元啟發(fā)式算法,我們最好談談啟發(fā)式算法的區(qū)別。
        啟發(fā)式和元啟發(fā)式都是優(yōu)化的主要子領域,它們都是用迭代方法尋找一組解的過程。啟發(fā)式算法是一種局部搜索方法,它只能處理特定的問題,不能用于廣義問題。而元啟發(fā)式是一個全局搜索解決方案,該方法可以用于一般性問題,但是遺傳算法在許多問題中還是被視為黑盒。
        那么,遺傳算法能做什么呢?和其他優(yōu)化算法一樣,它會根據(jù)目標函數(shù)、約束條件和初始解給我們一組解。
        圖片


        最優(yōu)局部解與最優(yōu)全局解

        遺傳算法是如何工作的?


        遺傳算法有5個主要任務,直到找到最終的解決方案。它們?nèi)缦隆?/span>

        • 初始化

        • 適應度函數(shù)計算

        • 選擇

        • 交叉

        • 突變

        圖片


        定以我們的問題


        我們將使用以下等式作為遺傳算法的示例。它有 5 個變量和約束,其中 X1、X2、X3、X4 和 X5 是非負整數(shù)且小于 10(0、1、2、4、5、6、7、8、9)。使用遺傳算法,我們將嘗試找到 X1、X2、X3、X4 和 X5 的最優(yōu)解。
        圖片
        將上面的方程轉化為目標函數(shù)。遺傳算法將嘗試最小化以下函數(shù)以獲得 X1、X2、X3、X4 和 X5 的解決方案。

        圖片
        由于目標函數(shù)中有 5 個變量,因此染色體將由 5 個基因組成,如下所示。

        圖片


        初始化


        在初始化時,確定每一代的染色體數(shù)。在這種情況下,染色體的數(shù)量是 5。因此,每個染色體有 5 個基因,在整個種群中總共有 25 個基因。使用 0 到 9 之間的隨機數(shù)生成基因。

        在算法中:一條染色體由幾個基因組成。一組染色體稱為種群


        下圖是第一代的染色體。
        圖片


        適應度函數(shù)計算


        它也被稱為評估。在這一步中,評估先前初始化中的染色體。對于上面示例,使用以下的計算方式。
        這是第一代種群中的第一個染色體。
        圖片
        將 X1、X2、X3、X4 和 X5 代入目標函數(shù),得到 53。

        圖片
        適應度函數(shù)是 1 除以誤差,其中誤差為 (1 + f(x))。

        圖片
        下面公式中加 1 是為了避免零問題

        圖片
        這些步驟也適用于其他染色體。

        圖片

        選擇


        輪盤****法是遺傳算法中的一種隨機選擇方法。這就像****場里的輪盤****。它有一個固定點,并且輪子旋轉直到輪子上的一個區(qū)域到達固定點的前面。

        在遺傳算法的背景下,具有較高適應度值的染色體將更有可能在輪盤****中被選中。


        首先,計算 5 條染色體的總適應度值。



        總計 =


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 古蔺县| 黔东| 宜都市| 南乐县| 盘山县| 兴山县| 岱山县| 息烽县| 雷州市| 伊宁市| 扬中市| 连江县| 弋阳县| 余江县| 东至县| 东乌珠穆沁旗| 星座| 南宫市| 灵石县| 织金县| 白河县| 五河县| 敖汉旗| 梁河县| 田阳县| 长岭县| 涪陵区| 玉田县| 金堂县| 天镇县| 确山县| 石景山区| 高唐县| 奉节县| 尉犁县| 长白| 通州区| 涞水县| 满城县| 奈曼旗| 饶阳县|