• 沒有找到結果。

第二章 文獻回顧

2.3 相關演算法

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

其定義為將N個數字分到K的子集合中,這些子集合中數字的加總,儘量越相近越好,

它的成本函數為每一個子集合中數字加總與平均值的差距。這樣的問題,在實務中也 常出現,例如平均負荷問題(Load balancing),給予N個已知長度的工作,如何將這些 工作分散到K個處理器上,使得每個處理器的負載能夠均等。

2.2.3 區域合併

陳威豪[13]於計程車招呼站服務範圍劃分的研究中,提到考慮區域的同質性與區 域的位相關係(相鄰性、外型等),此類型的問題可將其定義為「如何因應決策者的 需要,依其準則及限制,將研究範圍內的基本空間單元(Basic Spatial Unit, BSU)合 併成若干個區域」問題。這裡所指的基本空間單元乃是指在研究區域內的區域單元

(area unit),如研究區域為某一縣市時,則基本空間單元可以是該縣市的鄉鎮行政 界或村里行政界等。

區域合併問題最早由Keane[30]提出,他將此類問題以一數學函數E來表示,其數 學形式為E = f (S,R, A,F)。其中E為合併結果,S為有限且彼此無重疊的基本空間單元,

R為一套合併的準則,A為合併的程序。由此函數式可知,假設研究區域內有n個基本

空間單元,並希望將n個基本空間單元合併成k個分區(1≤ k ≤ n ),則可能的合併組合F 的數目將取決於合併的準則與限制。

2.3 相關演算法

本節將針對禁忌搜尋法、基因演算法、禁忌基因演算法之特性及相關應用等文獻 來進行探討,以作為建構巡修區的劃分方法之參考。

2.3.1 禁忌搜尋法

禁忌搜尋法(Tabu Search)是 Fred Glover 所提出[27],目前已經應用的領域有排 程、TSP、字元辨識、積體電路設計、類神經網路、區位選址等組合最佳化問題。

禁忌搜尋法的流程是先建立一起始解,接著找尋最優的鄰近解或是符合解禁規則的

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

解作為移步的依據,也就是在現行解的鄰近區域搜尋優解,其中有個重要的觀念就 是禁忌名單(Tabu Llist)的記憶機制,原理是將已經搜尋過的解記錄下來,以避免重 複或無意義的搜尋[13]。

禁忌名單長度會影響到求解尋優過程的結果,當禁忌名單長度太短時,搜尋的 過程可能會回到相同的區域中,造成落入區域解的囿限;若禁忌名單長度太長,除 了要花費較多的時間檢查移步是否被禁忌外,還可能導致搜尋過程遠離最佳解位置 的可能性。等待將所有鄰近區域搜尋完畢後,選擇一個最佳的方向來進行解現行解 的變更,若出現比目前最佳解還要好的解,則將更新目前最佳解,一直到符合終止 條件才停止。

禁忌搜尋法所搜尋的解與一般區域搜尋最大的差別是可以接受比目前最佳解還 差的解,這樣的方式可以讓搜尋跳出區域最佳解,能夠有更廣的搜尋區間。而解禁規 則是如果候選之解移步方式在禁忌名單中,但是卻較目前最佳解來的好,則允許此移 動進行。終止條件是用來停止演算法的條件,為了在可接受時間內搜尋出好的解,通 常會使用預設搜尋次數、目標值持續未改善次數、預設允許CPU 最長之執行時間或 是預設可接受的目標函數值來當成搜尋終止條件。

禁忌搜尋法可分為長期記憶機制及短期記憶機制兩種,短期記憶的重點在加速達 到區域最佳化,而在長期記憶階段則使用加強性與多樣性將搜尋帶入新的區域以求得 更佳的解。而短期記憶機制的禁忌搜尋法,又稱為簡單禁忌法。簡單禁忌法的主要精 神就是利用短期記憶結構紀錄前幾次的移動,避免在尋找最佳解的過程中,重複找到 最近幾次找到的最佳解或是相同的解,而形成一個搜尋上的浪費。這種短期的記憶結 構稱為禁忌名單,當候選解已被記錄在禁忌名單內時,表示這個候選解已被禁忌限制 住(tabu)。由於禁忌名單的設計可能使得我們錯過找到最佳解的機會,所以在使用 限制條件時,必需配合凌越法則(aspiration criteria),以提供被限制條件限制住的候 選解有再次被選擇的機會,例如雖然候選解已經被限制住(在禁忌名單內),但是如果 此候選解的目標函數比目前所找到的最佳解更好時,則仍可選取這個候選解當做最佳

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

解。禁忌串列記錄的法則是採先進先出法(FIFO),亦即把新找到的迴圈最佳解放進 去,將串列中最舊的迴圈最佳解移去,只存放最近幾次記錄[21]。

2.3.2 基因演算法

基因演算法(Genetic Algorithm,GA) [28]是一種模仿大自然界中,物競天擇和基 因交配的演算方式。主要的目的為嚴謹地架構出自然生物系統的進化過程,以期由此 激起自然系統和人工系統兩大領域發展上的大突破,近來被廣泛的應用於搜尋各類問 題的最佳解,藉由生物物種的基本運算子,在每代間進行演化,終而尋得適當問題的 最佳解。

黃衍明[16]引述Holland曾於Adaptation in Natural and Artificial Systems 一書提到 在生物學、經濟學、模式辨識等方面均有近似基因演算的現象。國內的應用研究領域,

大抵與Holland 之理解相符。Holland 發展基因演算法發之初衷,並非針對最佳化用 途,而是設計出「適應系統」(adaptive system),能夠使系統隨著問題處境的變化 而進行調適,而最佳化的求解只是基因演算法的邊際效用而已。因此將基因演算法的 用途侷限在最佳化的求解之中將會誤導基因演算法的發展(DeJong,1993),該視為基 因演算法的末流。

然而若干基因演算法的研究者寧願將二者均視為知識分化的結果,二者可被合稱 為「genetic based algorithms」。若仔細觀察「正規的基因演算法」與「最佳化導向的 基因演算法」之差別便可以發現,正規的基因演算法使用「交配」的機會較大,以漸 變的方式建立系統之環境適應性,較尊重系統的穩定性;而「最佳化導向的基因演算 法」則多使用「突變」,以迅速地找到最佳方案,較為忽略系統之穩定性。

基因演算法運用了四種重要的機制,包括選擇、複製、交配及突變。透過選擇能 將較對環境有強佳適應力的優秀基因挑出,之後再將挑出的優秀基因多複制幾組,即 篩選掉表現不好的基因組將優秀基因產生更多的親代。透過交配動作,讓優秀的基因 組跟其它基因組產生較多的子代。利用突變,讓優秀基因組產生新的變化,以避免落

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

入局部最佳解。John H. Holland 認為可以透過把問題轉為基因型(Genotype),利用競 爭-生存以及基因交換-突變,尋求出問題的正確解答。

應用基因演算法則來解最佳化問題的基本精神為:將所要搜尋的所有參數編碼成 稱為染色體 (chromosonl)的離散 (discrete) 或二元 (binary) 字串 (string) 來代表參數 的值;如此隨機地重覆產生N個初始物種(字串),然後依據求解之條件來設計適應函數 (fitness function),適應函數值高的物種將被挑選至交配池 (mating pool) 中,此即複製 過程,再依交配及突變過程的運算,即完成一代的基因演算法則,如此重覆下去以產 生適應性最強的物種[25]。以下為基因演算法的各階段程序說明:

1. 染色體編碼:根據問題的屬性予以編碼,稱為「染色體」(Chromosome Representation),建立資料結構。較傳統的染色體編碼方法為位元串列(bit string)。但也可以有不同的染色體編碼法,例如「圖」(graphs)。染色體編碼 可以是目的導向的,可根據資料處理的目的而進行編碼;也可以是問題導向的,

根據面臨問題的屬性選擇適合的染色體編碼法。

2. 目標函數與適應函數:目標函數(objective functions,或稱評量函數evaluation functions)是度量各組染色體的機制,可對應到「適應函數」。這個對應關係可 以使一組染色體的目標值對應到一個適應值,觀察其適應值的高低可以獲知其對 目標的適應程度。

3. 選擇:選擇優良的雙親(parents)對產生高適應性的結果(offsprings)。根據前 一步驟的「適應值」進行產生結果之挑選:「適應值」越高的染色體將獲選比較 多,「適應值」較低的染色體獲選數量便相對較少。而此步驟便是決定「適應值」

與獲選分配比例的關係。

4. 交配(crossover):交配過程是隨機地選取交配池中的兩個母代物種字串,並且彼 此交換位元資訊,進而組成另外兩個新的物種。交配過程有三種型式:(1)單點交 配(2)兩點交配(3)字罩交配。

5. 突變(mutation):突變過程是隨機地選取一物種字串並且隨機地選取突變點,然後

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

改變物種字串裡的位元資訊。突變的目的在隨機的改變基因,以產生出原本父母 代所未擁有的基因。

由於基因演算法能夠跳脫陷於區域最佳解的特性,因此已漸漸被應用在求解分群 最佳化的問題上。在2000年Maulik與Bandyopadhyay等學者將基因演算法應用在資料分 群上,除了發揮了基因演算法的基本特色外,更提出了幾種改進突變的方法,最後利 用真實資料及模擬資料的方式,驗證了使用GA在分群結果上優於傳統的分群演算法 [12]。

2.3.2 禁忌基因演算法

一般而言,基因演算法是屬於多點搜尋法(Multi-point Search),利用某些轉移規則 決定下一點應該往哪個方向移動,由於其利用解空間中許多不同的點同時進行搜尋,

所以可以降低落入局部最佳解的機率。惟基因演算法的缺點在於無記憶功能,導致在 搜尋過程中,容易搜尋到重複相同的點,增加系統搜尋時間。為解決此問題Ting[31]

提出將基因演算結合禁忌搜尋的特性,以禁忌列記錄搜尋過之基因組,成功解決了基 因演算法無記憶功能的缺點,建立一個以基因演算法為主,禁忌演算法為輔的演算 法。Vilcot[32]建議使用禁忌演算法於初始母體的建立,將禁忌演算法融合於基因演算 法中,可提升求解品質。可見混合式啟發法具有改良元演算法之優勢,因此本研究將 採用基因演算法具有多點同步搜尋之優點,結合禁忌搜尋法減化重複相同取樣步驟的 特性,進行一個混合式啟發解法,稱為禁忌基因演算法(Tabu Genetic Algorithm, TGA)。

提出將基因演算結合禁忌搜尋的特性,以禁忌列記錄搜尋過之基因組,成功解決了基 因演算法無記憶功能的缺點,建立一個以基因演算法為主,禁忌演算法為輔的演算 法。Vilcot[32]建議使用禁忌演算法於初始母體的建立,將禁忌演算法融合於基因演算 法中,可提升求解品質。可見混合式啟發法具有改良元演算法之優勢,因此本研究將 採用基因演算法具有多點同步搜尋之優點,結合禁忌搜尋法減化重複相同取樣步驟的 特性,進行一個混合式啟發解法,稱為禁忌基因演算法(Tabu Genetic Algorithm, TGA)。

相關文件