基於 Python 實現的遺傳算法 Hands-On Genetic Algorithms with Python

[美]伊亞爾·沃桑斯基(Eyal Wirsansky) 著 譯 吳虎勝 朱利 江川 呂龍

  • 基於 Python 實現的遺傳算法-preview-1
  • 基於 Python 實現的遺傳算法-preview-2
  • 基於 Python 實現的遺傳算法-preview-3
基於 Python 實現的遺傳算法-preview-1

買這商品的人也買了...

相關主題

商品描述

遺傳算法是受自然進化啟發的搜索、優化和學習算法家族中的一員。通過模擬進化過程,遺傳算法較傳統搜索算法具有更多優勢,可為各式問題提供高質量的解決方案。本書基於Python語言將遺傳算法應用於各種任務,提供在人工智能和其他很多領域應用遺傳算法的實踐經驗。同時,本書涵蓋了人工智能領域的新進展。

目錄大綱

 

目錄

 

 

第1部分遺傳算法基礎

 

第1章遺傳算法簡介

 

1.1遺傳算法的概念

 

1.1.1達爾文進化論

 

1.1.2遺傳算法分析

 

1.2遺傳算法背後的理論

 

1.3與傳統算法的區別

 

1.3.1種群基礎

 

1.3.2基因編碼

 

1.3.3適應度函數

 

1.3.4概率行為

 

1.4遺傳算法的優點

 

1.4.1全局優化

 

1.4.2處理復雜問題

 

1.4.3處理缺少數學模型的問題

 

1.4.4抗噪聲能力

 

1.4.5並行處理

 

1.4.6持續學習

 

1.5遺傳算法的局限性

 

1.5.1特殊定義

 

1.5.2超參數優化

 

1.5.3計算密集型操作

 

1.5.4過早收斂

 

1.5.5無絕對最優解

 

1.6遺傳算法的適用情形

 

小結

 

拓展閱讀

 

第2章理解遺傳算法的關鍵要素

 

2.1遺傳算法的基本流程

 

2.1.1創建初始種群

 

2.1.2計算適應度值

 

2.1.3應用選擇、交叉和變異算子

 

2.1.4迭代停止的條件

 

 

 

 

 

2.2選擇算子

 

2.2.1輪盤賭選擇

 

2.2.2隨機通用抽樣

 

2.2.3基於排序的選擇

 

2.2.4適應度縮放

 

2.2.5錦標賽選擇

 

2.3交叉算子

 

2.3.1單點交叉

 

2.3.2兩點交叉和k點交叉

 

2.3.3均勻交叉法

 

2.3.4有序列表的交叉

 

2.3.5順序交叉

 

2.4變異算子

 

2.4.1反轉變異

 

2.4.2交換變異

 

2.4.3逆序變異

 

2.4.4重組變異

 

2.5實數編碼的遺傳算法

 

2.5.1混合交叉

 

2.5.2模擬二進制交叉

 

2.5.3實數變異

 

2.6理解精英保留策略

 

2.7小生境和共享

 

2.8遺傳算法解決問題的應用方法

 

小結

 

拓展閱讀

 

第2部分使用遺傳算法解決問題

 

第3章DEAP框架的使用

 

3.1技術要求

 

3.2DEAP簡介

 

3.3使用creator模塊

 

3.3.1創建Fitness類

 

3.3.2創建Individual類

 

3.4使用Toolbox類

 

3.4.1創建遺傳算子

 

3.4.2創建種群

 

3.4.3計算適應度

 

3.5OneMax問題

 

3.6使用DEAP解決OneMax問題

 

3.6.1選擇染色體

 

3.6.2計算適應度值

 

3.6.3選擇遺傳算子

 

3.6.4設置停止條件

 

3.7使用DEAP實現算法

 

3.7.1準備工作

 

3.7.2演化求解

 

3.7.3運行程序

 

3.8使用內置算法

 

3.8.1Statistics對象

 

3.8.2算法

 

3.8.3logbook對象

 

3.8.4運行程序

 

3.8.5添加名人堂 

 

3.9算法參數設置實驗

 

3.9.1種群規模與代數

 

3.9.2交叉算子

 

3.9.3變異算子

 

3.9.4選擇算子

 

小結

 

拓展閱讀

 

第4章組合優化

 

4.1技術要求

 

4.2搜索問題和組合優化

 

4.3求解背包問題

 

4.3.1Rosetta Code 01背包問題

 

4.3.2解的表示

 

4.3.3Python問題表示

 

4.3.4遺傳算法的解

 

4.4求解TSP問題

 

4.4.1TSPLIB基準文件

 

4.4.2解的表示

 

4.4.3Python問題表示

 

4.4.4遺傳算法的解

 

4.4.5使用強化探索和精英保留來改進結果

 

4.5求解VRP問題

 

4.5.1解的表示

 

4.5.2Python問題表示

 

4.5.3遺傳算法的解

 

小結

 

拓展閱讀

 

第5章約束滿足

 

5.1技術要求

 

5.2搜索問題中的約束滿足

 

5.3求解N皇後問題

 

5.3.1解的表示方式

 

5.3.2Python對問題的表示方式

 

5.3.3遺傳算法求解N皇後問題

 

5.4求解護士排班問題

 

5.4.1解的表示方式

 

5.4.2硬約束與軟約束

 

5.4.3基於Python的問題表示

 

5.4.4遺傳算法求解護士排班問題

 

5.5求解圖著色問題

 

5.5.1解的表示方式

 

5.5.2使用硬約束和軟約束解決圖著色問題

 

5.5.3基於Python的問題表示

 

5.5.4遺傳算法求解

 

小結

 

拓展閱讀

 

第6章連續函數優化

 

6.1技術要求

 

6.2實數染色體與實數遺傳算子

 

6.3連續函數下的DEAP應用

 

6.4優化Eggholder函數

 

6.4.1利用遺傳算法優化Eggholder函數

 

6.4.2增加變異率來提高速度

 

6.5優化Himmelblau函數

 

6.5.1用遺傳算法優化Himmelblau函數

 

6.5.2利用小生境和共享來尋找多個解

 

6.6Simionescu函數與約束優化

 

6.6.1基於遺傳算法的約束優化

 

6.6.2用遺傳算法優化Simionescu函數

 

6.6.3使用約束尋找多個解

 

小結

 

拓展閱讀

 

第3部分遺傳算法的人工智能應用

 

第7章使用特徵選擇改善機器學習模型

 

7.1技術要求 

 

7.2有監督機器學習

 

7.2.1分類

 

7.2.2回歸 

 

7.2.3有監督學習算法 

 

7.3有監督學習中的特徵選擇 

 

7.4Friedman1選擇特徵問題 

 

7.4.1解的表示 

 

7.4.2Python問題表示 

 

7.4.3遺傳算法求解 

 

7.5分類數據集Zoo的特徵選擇

 

7.5.1Python問題表示

 

7.5.2遺傳算法求解 

 

小結

 

拓展閱讀

 

第8章機器學習模型的超參數優化

 

8.1技術要求

 

8.2機器學習中的超參數

 

8.2.1超參數優化

 

8.2.2Wine數據集

 

8.2.3自適應增強分類器

 

8.3基於遺傳算法的網格搜索來優化超參數

 

8.3.1測試分類器的默認性能

 

8.3.2運行常規的網格搜索

 

8.3.3運行基於遺傳算法的網格搜索

 

8.4直接使用遺傳算法優化超參數

 

8.4.1超參數表示

 

8.4.2評估分類器的準確性

 

8.4.3使用遺傳算法優化超參數

 

小結

 

拓展閱讀

 

第9章深度學習網絡的結構優化

 

9.1技術要求

 

9.2人工神經網絡與深度學習

 

9.2.1多層感知器

 

9.2.2深度學習和捲積神經網絡 

 

9.3優化深度學習分類器的架構

 

9.3.1鳶尾花數據集

 

9.3.2表示隱藏層的配置

 

9.3.3評估分類器的準確性

 

9.3.4使用遺傳算法優化 MLP 架構

 

9.4將架構優化與超參數優化相結合

 

9.4.1解的表示

 

9.4.2評估分類器的準確性

 

9.4.3使用遺傳算法優化 MLP 的組合配置

 

小結

 

拓展閱讀

 

第10章基於遺傳算法的強化學習

 

10.1技術要求

 

10.2強化學習

 

10.3OpenAI Gym

 

10.4處理MountainCar環境問題

 

10.4.1解的表示

 

10.4.2解的評估

 

10.4.3基於Python的問題表示

 

10.4.4遺傳算法求解

 

10.5處理CartPole環境問題

 

10.5.1用神經網絡控制CartPole

 

10.5.2解的表示和評估

 

10.5.3基於Python的問題表示

 

10.5.4遺傳算法求解

 

小結

 

拓展閱讀

 

第4部分相關方法

 

第11章遺傳圖像重建

 

11.1技術要求

 

11.2用多邊形重建圖像

 

11.3Python中的圖像處理

 

11.3.1Python圖像處理庫

 

11.3.2用多邊形繪制圖像

 

11.3.3測量圖像之間的差異

 

11.4利用遺傳算法重建圖像

 

11.4.1解的表示與評價

 

11.4.2基於Python的問題表示

 

11.4.3遺傳算法的實現

 

11.4.4圖像重建結果

 

小結

 

拓展閱讀

 

第12章其他進化和生物啟發計算方法

 

12.1技術要求

 

12.2進化計算和生物啟發計算

 

12.3遺傳編程

 

12.3.1遺傳編碼示例——偶校驗

 

12.3.2遺傳編程實現

 

12.3.3簡化的解

 

12.4粒子群優化算法

 

12.4.1PSO實例——函數優化

 

12.4.2粒子群優化實現

 

12.5其他相關方法

 

12.5.1進化策略

 

12.5.2差分進化算法

 

12.5.3蟻群算法

 

12.5.4人工免疫系統

 

12.5.5人工生命

 

小結

 

拓展閱讀