遺傳算法(Genetic Algorithm,GA)

干貨 | 嘿漓帅!你和遺傳算法的距離也許只差這一文(附C++代碼和詳細(xì)代碼注釋)

遺傳算法

概念
遺傳算法(Genetic Algorithm,簡稱GA)起源于對生物系統(tǒng)所進(jìn)行的計(jì)算機(jī)模擬研究,是一種隨機(jī)全局搜索優(yōu)化方法鹦马,它模擬了自然選擇和遺傳中發(fā)生的復(fù)制、交叉(crossover)和變異(mutation)等現(xiàn)象忆肾,從任一初始種群(Population)出發(fā)荸频,通過隨機(jī)選擇、交叉和變異操作客冈,產(chǎn)生一群更適合環(huán)境的個(gè)體旭从,使群體進(jìn)化到搜索空間中越來越好的區(qū)域,這樣一代一代不斷繁衍進(jìn)化场仲,最后收斂到一群最適應(yīng)環(huán)境的個(gè)體(Individual)和悦,從而求得問題的優(yōu)質(zhì)解。

常用術(shù)語

  1. 染色體(Chromosome):又可稱為基因型個(gè)體(individuals)渠缕,一定數(shù)量的個(gè)體組成了群體(population)鸽素,群體中個(gè)體的數(shù)量叫做群體大小(population size)亦鳞。
  2. 位串(Bit String):個(gè)體的表示形式馍忽。對應(yīng)于遺傳學(xué)中的染色體。
  3. 基因(Gene):染色體中的元素燕差,用于表示個(gè)體的特征遭笋。
  4. 特征值( Feature):在用串表示整數(shù)時(shí),基因的特征值與二進(jìn)制數(shù)的權(quán)一致谁不;
  5. 適應(yīng)度(Fitness):各個(gè)個(gè)體對環(huán)境的適應(yīng)程度叫做適應(yīng)度(fitness)坐梯。為了體現(xiàn)染色體的適應(yīng)能力,引入了對問題中的每一個(gè)染色體都能進(jìn)行度量的函數(shù)刹帕,叫適應(yīng)度函數(shù)吵血。這個(gè)函數(shù)通常會(huì)被用來計(jì)算個(gè)體在群體中被使用的概率谎替。
  6. 基因型(Genotype):或稱遺傳型,是指基因組定義遺傳特征和表現(xiàn)蹋辅。對于于GA中的位串钱贯。
  7. 表現(xiàn)型(Phenotype):生物體的基因型在特定環(huán)境下的表現(xiàn)特征。對應(yīng)于GA中的位串解碼后的參數(shù)侦另。

基本遺傳算法
SGA是一種群體型操作秩命,該操作以群體中的所有個(gè)體為對象,只使用基本遺傳算子(Genetic Operator):選擇算子(Selection Operator)褒傅、交叉算子(Crossover Operator)和變異算子(Mutation Operator)弃锐,是其它一些遺傳算法的基礎(chǔ)。

表示方法
SGA表示方法

個(gè)體的編碼方法殿托、個(gè)體適應(yīng)度評價(jià)函數(shù)霹菊、初始種群、種群大小支竹、選擇算子旋廷、交叉算子、變異算子礼搁、遺傳運(yùn)算終止條件

GA步驟

  1. 染色體編碼
    編碼:解空間中的解在遺傳算法中的表示形式
    常見的編碼方法有二進(jìn)制編碼饶碘、格雷碼編碼、 浮點(diǎn)數(shù)編碼馒吴、各參數(shù)級聯(lián)編碼扎运、多參數(shù)交叉編碼等。
    解碼:遺傳算法染色體向問題解的轉(zhuǎn)換
  2. 初始種群的生成
    隨機(jī)生成M個(gè)個(gè)體作為初始化群體P0
  3. 適應(yīng)度值評估檢測
    適應(yīng)度函數(shù)表明個(gè)體或解的優(yōu)劣性饮戳。
    適應(yīng)度尺度變換:指算法迭代的不同階段绪囱,能夠通過適當(dāng)改變個(gè)體的適應(yīng)度大小,進(jìn)而避免群體間適應(yīng)度相當(dāng)而造成的競爭減弱莹捡,導(dǎo)致種群收斂于局部最優(yōu)解
    尺度變換常用方法有線性尺度變換、乘冪尺度變換以及指數(shù)尺度變換
  4. 選擇遺傳算子
    選擇操作從舊群體中以一定概率選擇優(yōu)良個(gè)體組成新的種群扣甲,以繁殖得到下一代個(gè)體
  5. 交叉遺傳算子
    交叉操作是指從種群中隨機(jī)選擇兩個(gè)個(gè)體篮赢,通過兩個(gè)染色體的交換組合,把父串的優(yōu)秀特征遺傳給子串琉挖,從而產(chǎn)生新的優(yōu)秀個(gè)體
    常用的交叉算子有單點(diǎn)交叉启泣、雙點(diǎn)交叉或多點(diǎn)交叉、均勻交叉示辈、算術(shù)交叉等
  6. 變異遺傳算子
    為了防止遺傳算法在優(yōu)化過程中陷入局部最優(yōu)解寥茫,在搜索過程中,需要對個(gè)體進(jìn)行變異
    在實(shí)際應(yīng)用中矾麻,主要采用單點(diǎn)變異纱耻,也叫位變異芭梯,即只需要對基因序列中某一個(gè)位進(jìn)行變異
  7. 終止判斷條件

流程圖
GA流程圖

干貨|遺傳算法解決帶時(shí)間窗的車輛路徑規(guī)劃問題(附j(luò)ava代碼及詳細(xì)注釋)

遺傳算法求解混合流水車間調(diào)度問題(附C++代碼)

干貨 | 嘿!你和遺傳算法的距離也許只差這一文(附C++代碼和詳細(xì)代碼注釋)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弄喘,一起剝皮案震驚了整個(gè)濱河市玖喘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蘑志,老刑警劉巖累奈,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異急但,居然都是意外死亡澎媒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門波桩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戒努,“玉大人,你說我怎么就攤上這事突委“芈保” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵匀油,是天一觀的道長缘缚。 經(jīng)常有香客問我,道長敌蚜,這世上最難降的妖魔是什么桥滨? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮弛车,結(jié)果婚禮上齐媒,老公的妹妹穿的比我還像新娘。我一直安慰自己纷跛,他們只是感情好喻括,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贫奠,像睡著了一般唬血。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唤崭,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天拷恨,我揣著相機(jī)與錄音,去河邊找鬼谢肾。 笑死腕侄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冕杠,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼微姊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拌汇?” 一聲冷哼從身側(cè)響起柒桑,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪舀,沒想到半個(gè)月后魁淳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡与倡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年界逛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纺座。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡息拜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出净响,到底是詐尸還是另有隱情少欺,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布馋贤,位于F島的核電站赞别,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏配乓。R本人自食惡果不足惜仿滔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望犹芹。 院中可真熱鬧崎页,春花似錦、人聲如沸腰埂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屿笼。三九已至荒给,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刁卜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工曙咽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛔趴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓例朱,卻偏偏與公主長得像孝情,于是被迫代替她去往敵國和親鱼蝉。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

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