• 沒有找到結果。

第二章 背景回顧

2.3 單目標基因演算法

n

n× 的原始影像 X k

k×

切割

成大小為 且不重疊區塊X ,接著對每個區塊進行奇異值分解的運算,會得B

到每個區塊的對角矩陣SB =[σ1B2B,,σ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. 多次的迭代過程中,未能得到適應值更好的染色體。

相關文件