|
對 外在 環境 的 適應 能力 ( Fitness ) , 相當於 該 系統 的 性能 指標 ( performanceindex ) , 適應 函數 值 愈 大 表示 該 系統 的 性能 愈 好 , 反之 , 表示 性能 愈 差 。 遺傳 演算法 的 目的 便是 透過 一些 擬生物化 的 人工 運算 過程 , 如 重生 、 交配 、 突變 等 進行 演化 , 最後 , 尋得 適應 函數 的 最佳解 。 如今 , 有 許多 文獻 提出 各式各樣 不同 的 方法 來 改良 遺傳 演算法 , 但 其 基本 精神 都 是 從 「 簡易 遺傳 演算法 」 ( Simple GeneticAlgorithm SGA ) 發展出來 的 。 因此 , 本 節 僅 就 「 簡易 遺傳 演算法 」 的 運作 過程 加以 說明 。 運用 遺傳 演算法 的 基本 運算子 如 重生 、 交配 、 突變 之前 , 必須 先 完成 如下 之 準備 工作 : (一) 定義 適應 函數 ( Fitness Function ) 。 適應 函數 是 遺傳 演算法 的 性能 指標 ( Performance index ) , 例如 , 其中 xi 稱為 函數 f 的 參數 。 遺傳 演算法 的 目的 就 是 要 找到 使 f 函數值 最 大 的 參數值 ( x1 x2 ) 。 (二) 決定 編碼 ( Coding ) 與 解碼 ( Decoding ) 方式 。 為了 有效 的 搜尋 參數 空間 , 首先 要 確認 每 個 參數 的 搜尋 範圍 , 再 將 每 個 參數 以 固定 長度 的 字串 加以 編碼 。 最 簡單 也 最 廣為 使用 的 編碼 方式 是 二進位 編碼 ( BinaryCoding ) 。 在 二進位 編碼 方式 中 , 每 個 參數 都 預先 被 轉換成 n 位元 的 二進制 數字 , 因此 , 如果 函數 f 的 某 個 參數 xi 的 搜尋 範圍 界定 於 ai bi ( 之間 , 那麼 , 以 二進位 編碼 之後 , 將 迫使 實際 的 xi值 量化 至 極 之間 , 其中 k 是 介於 0 到 2n 間 的 任一 整數 。 (三) 產生 位元 字串 ( Bit string ) 。 (四) 產生 原始 族群 ( Initial Population ) 在 啟動 遺傳 演算法 之前 , 必須 先 隨機 產生 S 個 第零 代 的 個體 , ( 位元 字串 ) {p1 ( 0 ( size , ) S 則 視 問題 的 複雜度 而 定 。 一般而言 , 愈 複雜 的 問題 需要 愈 大 的 族群 規模 來 解決 。 由於 每 個 個體 代表 一 個 解 , 因此 , S 個 原始 個體 便 代表 S 個 初始解 。 這 S 個 初始解 的 性能 指標 可能 都 很 低 ( 非 最佳解 ) , 遺傳 演算法 便是 希望 藉由 以下 即將 提到 的 基本 運算子 , 經過 幾 代 演化 之後 , 能 一 代 比 一 代 更 好 , 使 整體 性能 指標 提高 , 最後 達到 最大值 , 求得 適應 函數 的 最佳解 。 圖 11 是 遺傳 演算法 的 運作 流程 , 詳述 如下 : (一) 基本 運算子 產生 了 以 位元 字串 所 表示 的 原始 族群 之後 , 即可 啟動 遺傳 演算法 的 演化 過程 ( 見 圖 11 ) 。 簡易 遺傳 演算法 ( SGA ) 的 演化 過程 包含 三 個 基本 運算子 ( Operators ) : 重生 ( Reproduction ) 、 交配 ( Crossover ) 及 突變 ( Mutation ) 等 。 這些 運算子 的 主要 目的 是 用來 作用於 舊一代 ( Old generation ) 族群 , 以 產生 新一代 ( Newgeneration ) 族群 。 詳述 如下 : ( 1 ( 重生 ( Reproduction ) : 類似 生物 的 無性生殖 。 根據 每 個 個體 的 適應 函數 值 高低 , 決定 該 個體 被 複製 的 機率 。 因此 , 性能 指標 高 的 個體 , 就 會 有 較 高 的 機率 被 選擇到 而 「 自我 複製 」 出 下 一 代 的 新 個體 , 無可置疑 的 , 這 是 一 個 人工版 的 自然 選擇 ( Naturalselection ) 過程 。 因為 性能 指標 差 的 個體 , 被 選中 自我 重生 的 機率 比 性能 指標 高 者 小 , 以至於 在 新 的 族群 中 , 性能 差 的 個體 會 比 舊 族群 中 少 , 取而代之 的 是 性能 較 好 的 個體 。 如果 在 舊 族群 中 有 S 個 個體 , 那麼 在 重生 階段 , 自然 選擇 機制 也 必須 複製出 相同 數目 的 新 個體 。 這 S 個 自我 重生 的 個體 將 悉數 被 放入 一 個 稱 之 為 交配槽 ( Mating pool ) 的 緩衝區 中 , 等待 進一步 的 繁衍 。 有 許多 方法 可以 用來 實現 重生 過程 中 的 自然 選擇 機制 , 其中 最 簡易 也 最 廣為 採用 的 是 「 輪盤法 」 。 此 一 輪盤 不同於 一般 的 等分 格 輪盤 , 其 主要 特色 是 輪盤 中 每 個 槽 (
|