第 2 章 啟發式演算法及排序優化問題文獻探討
2.1 啟發式演算法
2.1.1 禁忌搜尋法
禁忌搜尋法(Tabu Search, TS)的基本概念最早由 Fred Glover 於 1977 年提出,
而後提出完整的演算架構(Glover and Laguna, 1997)。禁忌搜尋法是一種著重區域搜 尋的啟發式演算法,在搜尋機制上配合記憶功能,使得搜尋不致落入區域最佳解 (local optima)無法跳脫。
禁忌搜尋法是由一初始可行解為始,經由移步法則(move)進行微小變動,在鄰 域(neighborhood)間有向搜尋最佳解。每個搜尋代次以上一次所搜尋到的最佳解經 由移步產生鄰近解組成鄰域。接著在鄰域中搜尋出鄰域中的最佳解,並將形成此 解的移步存入禁忌清單(Tabu list)中。為了避免重覆搜尋到相同的解,列為禁忌的 移步將被禁止進行。除了禁忌清單外,尚有一個重要的準則就是破禁準則(aspiration criteria),是用以破除禁忌清單中的限制。當所有鄰近解都列於禁忌清單無法移動 時,依破禁準則清除所有禁忌清單,使搜尋可以繼續。另外,搜尋的停止條件,
則依問題的差異而有不同的準則設定。
禁忌搜尋法僅使用單一代理人進行移動搜尋,面對較龐大的解空間時難以掌 握全域的搜尋範圍。因此禁忌演算法不適合求解維度較高或解空間較龐大的優化 問題。
2.1.2 粒子團優化演算法
粒子團優化演算法(Particle Swarm Optimization, PSO)是 Kennedy 和 Eberlart (1995)所提出,其演算概念是師法自自然界的生物群體行為。群居的生物如鳥群或 魚群在移動時能透過群體間特定的訊息傳達方式,使得團體的行動方向一致。粒 子團優佳化演算法即是仿照此種方式,將優化問題的一個解視為一個粒子,各粒
子會參考自己解搜尋歷程中最佳的經驗以及群體的最佳經驗決定移動方向。如此 在群體彼此的影響和資訊參照下逐步接近最佳解。
以鳥群的覓食行為而言,鳥即是PSO 中定義的粒子。一開始所有的鳥都不知 道食物的位置,只是隨機地選擇方向和移動速度做為下次移動的依據。單隻鳥雖 然不知道食物所在的正確位置,但是卻可以透過像嗅覺的方式來判斷附近是否有 食物以及目前自己距離食物的遠近。在搜尋過程中,個別的鳥會記憶過往經驗中 靠食物最近的位置,在食物搜尋行為中,會儘量朝該位置搜尋。除此之外,單隻 鳥和鳥群間有資訊溝通的能力,知道整個鳥群的搜尋歷程中離食物最近的位置。
因此,單隻鳥的搜尋趨向,除了自身的經驗記憶外,也會參考群體經驗,增加找 到食物的可能性。粒子團優化演算法將一群本質是解代理人的粒子視為群居的生 物,他們的覓食行為有兩個行為模式:
(1) 認知模式(Cognition-Only Model):生物個體有著自我最佳經驗的記憶;PSO 個 體粒子會記憶它迄今曾經搜尋過的最佳解資訊。
(2) 社會模式(Social-Only Model):群居生物具有社會性,生物個體間的經驗會彼此 交換並傳承下去。PSO 中的群體有記錄整個群體迄今最佳解的資訊。
個體粒子的位置即代表一個解,目標函式值用來衡量解的好壞。問題的全域 最佳解即如鳥群尋覓的食物所在。藉由個體對過往搜尋經驗的記憶和分享,群體 將群策群力朝最佳解移動。
2.1.3 仿電磁吸斥優化演算法
仿電磁吸斥優化演算法(Electromagnetism-like Mechanism, EM)是由 Birbil 和 Fang (2003)提出的一種新啟發式演算法。該演算法屬於多個智慧型代理人(multiple intelligent agents)的協同合作模式,亦是群體智慧(swarm intelligence)的一種。仿電 磁吸斥優化演算法是模仿自然界電磁吸斥的物理現象,使一群代理人(agents)彼此 互動且有向性地朝全域最佳解移動。
仿電磁吸斥優化演算法將各個解視為帶電荷(charge)的粒子(particle)。透過目 標函數值的計算,比較各個解的目標函數值,優者賦予較高的電荷,劣者賦予較
低的電荷。粒子以其在群體中所帶電荷及在解空間中的相對位置建立電磁磁力場。
此磁力場的建立係模仿或模擬目標函數值在解集空間的分佈狀況。接著仿照電磁 磁力場中帶電粒子相互吸、斥的物理現象,訂定每個粒子下一代次的基本移動方 向。由兩粒子的電荷和距離計算吸力和斥力。求算單一粒子受其他粒子吸的合力 方向,設定該粒子的移動方向。粒子的移動方向是高電荷者遠離低電荷者,低電 荷者追向高電荷者。合力方向係在規範移動的方向是正向或逆向。粒子真正的移 動距離是由一個隨機值和基本移動距離決定。粒子群中的粒子全部移動到新的位 置後,由所有解或只限最佳解的粒子進行(或不進行)區域搜尋,目的在於探究 鄰近區域的解品質。區域搜尋若得到較佳的解,則逕行位置取代。透過粒子群中 的粒子不斷地模擬電磁吸斥的物理現象,使劣解朝向優解移動、優解也能趨避較 差解。每一個代次透過目標函數值的計算重新建立電磁磁力場,展示出朝向全域 最佳解移動的群體智慧。
PSO 和 EM 都使用多代理人進行搜尋,且所有代理人的移動是受目前最佳解 驅策而具有方向性。然而當所有代理人皆朝同一方向前進,過程中也未因搜尋到 更好的解而改變整體方向時,代理人往往會收斂在一個區域內。在無類似GA 的 突變機制跳脫區域另闢新境下,當群體的初始位置不夠廣布於整個解空間時,搜 尋結果常會落入區域最佳解。
2.1.4 遺傳演算法
遺傳演算法(Genetic Algorithm, GA)是由 Holland 於 1975 年提出,其觀念源自 於達爾文演化論中「物競天擇,適者生存」的原理(Goldberg, 1989; Holland, 1992)。
生物繁衍後代時,親代的基因會藉由遺傳複製給子代。在自然界的汰弱存強機制 下,存留下的個體有高度的適應力,也會有較好的競爭優勢。演化過程基因會有 突變的可能,會導致個體衰亡或是擁有適應環境的新能力。遺傳演算法簡化了生 物演化的複雜過程,成為具體可行的最佳化問題求解步驟,是目前學術及業界廣 泛運用的一種求解優化問題法。
遺傳演算法的演化群是由一個以上的獨立機體(organism)集合而成;每個機體 由一條或多條染色體(chromosome)構成。染色體則由一序列的基因(gene)所組成。
基因值通常代表問題中的變數值。群體組成如圖2-1 所示。
圖2-1. 遺傳演算法資料結構
遺傳演算法的演化機制是由機體內的染色體經由複製(reproduction)、交配 (crossover)、突變(mutation)等運算過程產生子代(offspring)。由每個機體內的染色 體值計算出該機體的適存值(fitness)。適存值決定該機體存活到下一代的機率。進 行GA 演化前,需將優化問題的變數編碼(encoding)成基因序列組成染色體。計算 適存值時需將染色體解碼(decoding)成問題的解以估算解品質。編碼方式依問題型 式不同,有實數編碼、整數編碼,及二元編碼等。不同編碼方式須配合不同的交 配與突變演算方式,以適用於求解各類型優化問題。
GA 的演化機制可應用於求解各類型的優化問題,因此被學、業界廣泛研究改 良並應用,至今已逐漸成熟。GA 的搜尋過程主要是倚靠保存優質染色體繼續下一 代次的演化,交配過程並不能保證會產生較好的解。此外,演化趨於穩定時,群 體內的染色體(代理人)內的基因值會趨向一致性,而不易跳脫區域最佳解。
Population
Organism
Gene Chromosome
2.1.5 蟻拓尋優法
蟻拓最佳化技術(Ant Colony Optimization, ACO)是晚近出現的一種啟發式演 算法。ACO 是具有類似蟻拓優化演算的演算法統稱。第一個發展出來的 ACO 是 螞蟻系統(Ant System, AS)。AS 是由 Dorigo 等人(1996)提出,演算法設計的靈感來 自於自然界中螞蟻的覓食行為的觀察。
蟻拓優化技術師法自然界中螞蟻尋覓食物時的行為。首先,螞蟻會以隨機搜 尋的方式離開巢穴尋找食物。移動時螞蟻會沿路釋放名為「費洛蒙(pheromone)」
的分泌物,以引導螞蟻返回巢穴。若是出來覓食的螞蟻有找到食物,這些找到食 物的螞蟻就會在返回巢穴的路徑上,添加額外的費洛蒙作為記號,供其他螞蟻依 循。由於剛開始找到食物的螞蟻可能不只一隻,所以能到達食物的路線也不只一 條。因往返頻率的密集或稀疏,在較短的路徑上會累積較多的費洛蒙。隨後的螞 蟻處於隨機移動的狀態下,能辨別先前螞蟻所釋放的費洛蒙,跟隨費洛蒙強度最 強的路徑行走,並繼續釋放自身的費洛蒙,更強化此路徑的標記。此程序有正向 循環的回饋特色,當選擇相同路徑的螞蟻數愈多,後來的螞蟻選擇此路徑行走的 機率也相對地提高。
典型的蟻拓優化應用是求解旅行推銷員問題(Traveling Salesman Problem, TSP)。螞蟻由其中一個城市出發,藉由費洛蒙的濃度分佈而尋找到鄰近的城市,
再由搜尋到的城市出發,搜尋下一個鄰近的城市。如此逐步建構出最短的路徑繞 行所有城市。經研究證實,ACO 應用於求解 TSP 有不錯的驗證成效。但螞蟻在搜 尋過程中可能會發生過早收斂或停滯現象。過早收斂是由於螞蟻每次僅選擇費洛 蒙濃度高且成本低的路徑,可能因此限於區域最佳解中而無法跳脫。停滯現象是 由於螞蟻搜尋下一個鄰近城市的過程中,有兩條以上距離成本差異性不大的路徑,
因此費洛蒙濃度沒有明顯差異,使螞蟻需耗費較長時間才能決定行走方向,同時 也可能走到較長的路徑上。
2.1.6 仿水流優化演算法
仿水流優化演算法(Water Flow-like Algorithm, WFA)是由 Yang 及 Wang 提出,
是一仿效水流在物理空間中流動的特性而設計的優化演算法(王元鵬, 2006; Yang
and Wang, 2007)。WFA 的演算機制是將解空間視為地理空間,每股水流的位置代 表一個解。當水流在空間中流動時,會依地理特性改變流向、速度,逐步向地理 最低處移動。水流具有分流的特性,會分成多股支流。當流經同一區域時,水流
and Wang, 2007)。WFA 的演算機制是將解空間視為地理空間,每股水流的位置代 表一個解。當水流在空間中流動時,會依地理特性改變流向、速度,逐步向地理 最低處移動。水流具有分流的特性,會分成多股支流。當流經同一區域時,水流