遺傳算法

簡述

在一個種群繁衍的過程中,存在著自然選擇剑辫,交配繁衍摘昌,基因突變等生物進(jìn)化過程,遺傳算法便是模擬這樣的一個過程虱颗。與上面進(jìn)化過程相對應(yīng)的一個數(shù)據(jù)集在每一次迭代過程中都要經(jīng)過選擇操作沥匈,交換操作,突變操作忘渔。通過模式定理和積木塊假設(shè)可以證明算法有獲得最優(yōu)解的可能性高帖,以及有能力獲得最優(yōu)解。

基礎(chǔ)理論

選擇操作

在生物進(jìn)化的過程中辨萍,一個種群中會受到自然選擇的作用從而達(dá)到優(yōu)勝略汰棋恼。在遺傳算法中,選擇操作便是一個淘汰過程锈玉。它可很直接的選擇適應(yīng)度前50%的個體爪飘,也可以按照個體適應(yīng)值的占比有概率的選擇,書中介紹的選擇算法是輪盤賭算法

輪盤賭算法

即如圖所示拉背,一個個體數(shù)為10的種群师崎,上面是隨機(jī)生成的分塊,下面是種群中個體適應(yīng)值占總適應(yīng)值的比重椅棺,且總和均為1犁罩。


輪盤賭的算法如下(類python的一種偽代碼):

    gen_index, p_index, a_index = 0
    p_sum = p[p_index]
    a_sum = a[a_index]
    while gen_index < length:
        if p_sum <= a_sum:
            new_gen[gen_index++] = old_gen[a_index]
            p_sum += p[++p_index]
        else:
            a_sum += a[++a_index]

依照算法一輪下來,新的一代個體分別是{a2两疚,a3床估,a5,a6诱渤,a6丐巫,a7,a8勺美,a9递胧,a10,a10}赡茸,其中a1和a4因為個體適應(yīng)度太小被淘汰掉了缎脾。

交叉操作

基于概率的兩個個體的基因交換
舉個例子兩個個體為a1 = [2, 3, 5, 6, 7], a2=[1, 4, 5, 6, 8]

    a1_index, a2_index = 0
    pc = 0.2 ##交叉概率
    for i in len(a1):
        for j in len(a2):
            if rand < pc:
                swap(a1[i], a2[j])        

選擇操作需要注意特定問題的個體特性,如旅行商問題就是一個不能重復(fù)的數(shù)組占卧,那么交叉操作就需要成對進(jìn)行遗菠。交叉不一定是兩個相鄰的個體進(jìn)行的联喘,也可以指定特定個體(如當(dāng)前適應(yīng)度最優(yōu)個體),與其他個體交換辙纬。

變異操作

基于概率的個體的基因隨機(jī)變化
舉例個體為a=[1, 2, 3, 4, 5]

    pm = 0.1
    for i in len(a):
        if rand < pm:
            a[i] = randint(lower_bound, upper_bound)

模式定理

模式定義:模式是描述種群在位串的某些確定位置上具有相似性質(zhì)的位串子集的相似性模板
模式階定義:模式H中確定位置的個數(shù)稱作該模式的模式階耸袜,記作O(H)
定義距定義:模式H第一個確定位置和最后一個確定位置的距離為定義距,記作D(H)
模式定理:在遺傳算法選擇牲平、交叉和變異算子的作用下,具有低階域滥、短定義距纵柿、并且其平均適應(yīng)度高于種群平均適應(yīng)度的模式在子代中將呈指數(shù)級增長。
舉例說明:一個種群中的個體是由{0启绰,1昂儒,*}構(gòu)成,0和1是具體的數(shù)值,*表示為通配符委可,那么0100渊跋,01**,00**等都可以表示為模式着倾,0100的模式階就為4拾酝,01**的模式階就為2,0100的定義距為4卡者,01**的定義距為2蒿囤。
現(xiàn)在假如一個初始種群的有兩個個體{00000000,11111111} 崇决,在經(jīng)過遺傳計算(淘汰先不管)后材诽,種群改為{00001111,11110000恒傻,00000000脸侥,11111111}這時候就會明顯發(fā)現(xiàn),00000000這種長定義距的模式只有一個盈厘,0000****這種較低階的睁枕,且定義距短的模式有兩個,在經(jīng)過n次遺傳計算后扑庞,種群中形如這樣的0*******一階定義距為1模式將會是數(shù)量最多的譬重,那么基于這些模式就有可能組成最優(yōu)解,這也是最優(yōu)解產(chǎn)生的必要條件罐氨。(ps:肯定有具體的證明過程了臀规,這只是一個初步的理解xp)

積木塊假設(shè)

積木塊:具有低階、短定義距的模式以及高水平的模式
積木塊假設(shè):個體的積木塊通過選擇栅隐、交叉塔嬉、變異等遺傳算子的作用玩徊,能夠結(jié)合在一起形成高階,長距谨究、高適應(yīng)度的個體代碼串
這也不難理解恩袱,多種模式的個體,可以相互結(jié)合形成胶哲,特定的個體畔塔,這也就說明了,遺傳算法是有能力形成最優(yōu)解的

遺傳算法流程

  1. 初始化:隨機(jī)生成種群NP鸯屿,迭代計數(shù)器g = 0
  2. 個體評價:計算種群中個體的適應(yīng)度
  3. 遺傳運算:選擇運算 交叉運算 變異運算
  4. 終止條件判斷:g > G 停止計算澈吨,輸出結(jié)果;g < G寄摆,g++

遺傳算法的缺點

具體的收斂速度什么的沒找到具體數(shù)據(jù)谅辣,我水平又一般,復(fù)雜算法就不太會分析了婶恼,只知道他是可以收斂的桑阶。但是做了幾道題之后發(fā)現(xiàn),遺傳算法容易提前收斂勾邦,遺傳運算過程中種群多樣性變低蚣录,再想進(jìn)化的話,完全靠變異眷篇,也就是被困在局部最優(yōu)解包归。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市铅歼,隨后出現(xiàn)的幾起案子公壤,更是在濱河造成了極大的恐慌,老刑警劉巖椎椰,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厦幅,死亡現(xiàn)場離奇詭異,居然都是意外死亡慨飘,警方通過查閱死者的電腦和手機(jī)确憨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓤的,“玉大人休弃,你說我怎么就攤上這事∪Ω啵” “怎么了塔猾?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稽坤。 經(jīng)常有香客問我丈甸,道長糯俗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任睦擂,我火速辦了婚禮得湘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘顿仇。我一直安慰自己淘正,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布臼闻。 她就那樣靜靜地躺著跪帝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪些阅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天斑唬,我揣著相機(jī)與錄音市埋,去河邊找鬼。 笑死恕刘,一個胖子當(dāng)著我的面吹牛缤谎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褐着,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼坷澡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了含蓉?” 一聲冷哼從身側(cè)響起频敛,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馅扣,沒想到半個月后斟赚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡差油,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年拗军,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓄喇。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡发侵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妆偏,到底是詐尸還是另有隱情刃鳄,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布钱骂,位于F島的核電站铲汪,受9級特大地震影響熊尉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掌腰,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一狰住、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧齿梁,春花似錦催植、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至省核,卻和暖如春稿辙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背气忠。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工邻储, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旧噪。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓吨娜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親淘钟。 傳聞我的和親對象是個殘疾皇子宦赠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容