第二章 背景回顧
2.3 單目標基因演算法
n
n× 的原始影像 X k
k×
切割
成大小為 且不重疊區塊X ,接著對每個區塊進行奇異值分解的運算,會得B
到每個區塊的對角矩陣SB =[σ1B,σ2B,,σkB],浮水印 W W ′
在嵌入之前先進行打亂 的動作,打亂後的浮水印以 表示之,接著根據(2-5)式對每個區塊中的最大
B B
B = + ⋅W
′ σ α
σ1 1 (2-5)
的奇異值σ 進行修改,接著再以修改過後的1B SB矩陣進行反奇異值分解運算,得 到藏匿後的影像 Y。
2.3 單目標基因演算法
在 1975 年 John H. Holland 受達爾文的進化論「物競天擇,適者生存」所啟 發,提出了基因演算法(genetic algorithm)[29],是一種用於求取最佳化解答的搜 尋演算法。其仿效大自然中物種的演化方式進行尋優,透過選擇(selection)、交 配(crossover)、與突變(mutation)等三個演化機制進行演化,隨著世代的演進,最 後會決定出一個最好的解答。
基 因 演 算 法 的 基 本 流 程 如 圖 2.7 所 示 。 一 開 始 會 隨 機 產 生 一 個 族 群 (population),族群中有數條染色體(chromosome),每一條染色體代表著一個問題 的「可能解答」, 染 色體是 由一 串基因 (gene)所組成。透過適應函數(fitness function),可計算每條染色體的適應值(fitness value),適應值代表著每條染色體 在所處的環境(要解決的問題)中,它們各自適應程度的好壞,適應程度不好的染
色體在後續的演化過程中,有比較大的機率會被淘汰掉;相對的,適應程度較好 的染色體,其優良的基因有比較大的機率會遺傳至下一個世代。利用選擇運算元 從族群中挑選一定數量的染色體至交配池(mating pool)中,交配池中的染色體經 過交配和突變的運算產生子代(offspring)染色體。持續計算各染色體的適應值、
配合選擇、交配和突變等運算,直到停止條件達成,最後會決定出一條適應值最 好的染色體,即所謂的最佳解。
隨機產 生族群
計算適
應程度 挑選 交配與
終止條件達成 突變 開始
結束 是
否
圖 2.7:基因演算法的簡易流程圖
以下我們將逐步介紹染色體的編碼,選擇、交配與突變等機制,以及終止條件的 訂定。
2.3.1 染色體編碼
根據要解決的問題的不同,染色體的編碼方式可分為下列四種:
1. 二元編碼(binary-coded):染色體中所有的基因皆由 0 或 1 所組成。
2. 實數編碼(real-coded):染色體中所有的基因可為整數或是實數。
3. 排列編碼(permutation-coded):染色體中所有的基因為一組有序列關係的數字 所構成。
4. 樹狀編碼(tree-coded):染色體是由一個樹狀結構所組成。
2.3.2 選擇機制
在進行交配與突變之前,必須從現有的族群中挑選出要進行演化的染色體。
這些被挑選出來的染色體會被複製到交配池中成為父代染色體,適應值越高的染 色體,被挑選到的機率越高。挑選的機制有很多種,比較常見的方法是輪盤選擇 法(roulette wheel selection)與競爭選擇法(tournament selection)。
(a) 輪盤選擇法:
被挑選到的機率分別為 13%、8%、23%、39%。由上述所
算得的機率,可繪製出一個像輪盤的圓餅圖(如 所示)。再根據每條染
色體被挑選到的機率,隨機從中挑選出要被複製到交配池中的染色體。
圖 2.8:依據染色體被挑選的機率所繪製的圓餅圖 (b) 競爭選擇法:
隨機從族群中選出 k 條染色體,其中k ≥2。在從這 k 條染色體中,將
適應值最好的染色體複製到交配池中。
2.3.3 交配與突變
基因演算法經由父代的交配與突變產生新的子代,其中交配是透過兩條父代 染色體交換彼此的基因內容產生兩條新的子代染色體;突變則是藉由突變一條父 代染色體的某些基因,產生一條新的子代染色體。
常見的交配機制有下列三種:
(a) 單點交配法(one-point crossover)
隨機選取一個交配點,以這個交配點為中心將兩條父代染色體的基因分 割成兩部份。將兩條父代染色體被切開的基因進行互換後,產生兩條新的子 代染色體(如圖 2.9 所示)。
Parent 1:
Parent 2:
交配點
Child 1:
Child 2:
互換
進行交配
圖 2.9:二元編碼單點交配 (b) 雙點交配法(two-point crossover)
隨機選取兩個交配點,接著將位於兩交配點中的父代染色體基因進行互 換,進而產生兩條新的子代染色體。
Parent 2:
交配點
Child 1:
Child 2:
互換
進行交配 交配點
Parent 1:
圖 2.10:二元編碼雙點交配
(c) 均勻交配法(uniform crossover)
以隨機的方式產生一組由 0 與 1 組成的遮罩(mask),並且其長度與染色 體長度相同。根據遮罩上的內容決定兩條父代染色體相對應的基因是否要進 行交換。如果遮罩內容是 1,則進行交換;否則不進行交換。
Parent 1:
Parent 2:
Child 1:
Child 2:
進行交配
0 1 1 0 1 0 1 1
0 1 1 0 1 0 1 1
Mask:
圖 2.11:二元編碼均勻交配
突變程序會依突變機率決定該基因是否要進行突變,以二元編碼為例,其突 變方法是字元反轉,也就是從 1 變 0,或從 0 變 1。
Child :
0 1 1 0 1 0 1 1
0 1 1 0 1 0 1 1
0 1 0 0 1 0 1 1
0 1 0 0 1 0 1 1
進行突變 Parent :
圖 2.12:二元編碼突變
2.3.4 終止條件
終止基因演算法的情況有下列三種:
1. 當迭代次數已達到指定的次數。
2. 當有染色體的適應值達到所要求的值。
3. 多次的迭代過程中,未能得到適應值更好的染色體。