- 智能優化技術:適應度地形理論及組合優化問題的應用
- 路輝 周容容 石津華 孫升杰編著
- 5498字
- 2021-08-24 11:50:27
1.2 組合優化問題
1.2.1 組合優化問題的定義
組合優化問題是最優化問題的一類。最優化問題可以自然地分成兩類:一類是連續變量的問題,另一類是離散變量的問題。其中,具有離散變量的問題稱為組合問題。在連續變量的問題里,一般是求一組實數或者一個函數;在組合問題里,是從一個無限集或者可數無限集里尋找一個較優對象,如一個整數,一個集合,一個排列或者一個圖。一般地,這兩類問題具有不同的特點與不同的求解方式。
組合優化問題通??擅枋鰹椋害?{s1,s2,…,sn}為所有狀態構成的解空間,C(si)為狀態si對應的目標函數值,要求尋找最優解s?,使得
?si∈Ω,C(s?)=minC(si)
組合優化往往涉及排序、分類、篩選等問題。
min f(x)
s.t.x∈S,S∈X(S,X:擁有有限個或可數無限個解的離散集合)
式中,f(x)是目標函數;x是問題的解;X是解空間;S是可行解空間(可行域),X包含S。
如果S是有限集合,從理論上講,只要遍歷所有的組合,就能找到最優解,然而隨著問題規模的增大,S中解的個數會迅速增大,實際上要想遍歷所有的解,幾乎是不可能的。
所謂組合優化,是指在離散的、有限的數學結構上,尋找一個(或一組)滿足給定約束條件并使其目標函數值達到最小的解,即在離散狀態下求極值的問題。把某種離散對象按某個確定的約束條件進行安排,當已知合乎這種約束條件的特定安排存在時,尋求這種特定安排在某個優化準則下的極大解或極小解。組合優化的理論基礎包括線性規劃、非線性規劃、整數規劃、動態規劃、網絡分析等,組合優化技術提供了一個快速尋求極大解或極小解的方法。
具體而言,組合優化問題的目標是從組合問題的可行解集中盡可能地求出最優解。組合優化往往涉及排序、分類、篩選、分配等問題,它是運籌學的一個重要分支,在信息技術、經濟管理、工業制造、交通運輸、通信網絡等領域得到廣泛的應用。
1.2.2 組合優化問題的特點
1.約束性
在不同的應用背景下,組合優化問題往往具有一個或多個約束條件,如各變量間的優先級關系、變量取值范圍等。例如,測試任務調度是一類典型的組合優化問題,一般而言,測試任務之間存在各種相關性,因此在測試過程中需要嚴格遵守任務的先后順序,即任務優先級約束。同時,由于儀器的測試能力有限,必須為任務分配可以處理本次測試任務的儀器,即資源約束。
2.離散性
在組合優化問題中,變量是離散的,解空間也是離散的,由大量散點組成。例如:測試任務調度就是一個離散問題,測試任務以及所選儀器均是離散的。對于該類問題,梯度下降法、牛頓法等連續優化方法的使用受限,最初是利用數學規劃或離散系統建模的方法來解決。
3.計算復雜性
在組合優化問題中,隨著變量數的增加,解空間呈指數倍增長,具有組合爆炸效應,從計算時間復雜度來看是一個NP難題(Non-Deterministic Polynomial Problem),求解非常困難。在NP類問題中有這樣一些問題,如果其中有一個存在(不存在)有效算法,那么所有其他問題也都存在(不存在)有效算法,這些問題被稱為NP-完備問題或NPC問題。絕大多數組合優化問題都是NP-完備的。
例如,測試任務調度問題實際分為兩個部分,一是測試任務的合理調度,二是測試資源的優化配置,這兩方面相互影響。從測試任務的角度講,不同的任務序列的全排列有n種(n為任務個數)。從測試資源的角度講,測試任務可選的測試方案組合的總數是按任務個數的指數規律增加的。也就是說,測試任務調度問題是一個在若干約束條件下的組合優化問題,隨著任務和資源個數的增加,解空間急速增大,求解難度增大。
4.多目標
傳統的組合優化問題以求最小值或最大值為目標,可以轉化為最小化或最大化問題。隨著應用場景復雜程度的增加,組合優化問題呈現出多目標的趨勢,如何使多個目標相互協調,在滿足約束條件的前提下滿足問題的需要,成為組合優化問題的一大難點。例如,對于調度問題來說,針對不同的應用場景,需要滿足的調度目標一般不同,甚至可能在某些情況下需要同時滿足多個方面的調度目標的需求,而且這些目標之間往往是有沖突的。比如調度時間最短、資源的總負荷最小等。所以,多目標使組合優化問題的求解更加困難。
一般來說,組合優化問題通常帶有大量的局部極值點,往往是不可微的、不連續的、多維的、有約束條件的、高度非線性的NP完全(難)問題,求解該類問題往往無法利用導數信息,精確得到全局最優解的“有效”算法一般是不存在的。
1.2.3 組合優化問題的應用
1.旅行商問題
旅行商問題(Traveling Salesman Problem,TSP)是一個經典的組合優化問題。經典的TSP可以描述為一個商品推銷員要去若干個城市推銷商品,該推銷員從一個城市出發,需要經過所有城市后,回到出發地。應如何選擇行進路線,以使總的行程最短。從圖論的角度來看,該問題實質是在一個帶權完全無向圖中,找一個權值最小的回路。由于該問題的可行解是所有頂點的全排列,隨著頂點數的增加,會產生組合爆炸,它是一個NP完全問題。由于其在交通運輸、電路板線路設計以及物流配送等領域內有著廣泛的應用,國內外學者對其進行了大量的研究。
2.加工調度問題
加工調度問題是由任務排序子問題和資源分配子問題組成,包括柔性車間調度(Flexi-ble Job-shop Scheduling Problem,FJSP)、并行機調度(Parellel Machine Scheduling Program,PMSP)、測試任務調度(Test Task Scheduling Problem,TTSP)等,廣泛應用于制造業、服務業、云計算、物聯網等領域。該類問題可以歸納為一個特定約束條件下的組合優化問題,它由一系列順序或并行執行的任務(如工件、測試任務等調度需求)組成,每個任務需占用一定的資源并可能存在資源沖突,任務間相互獨立或具有局部優先級關系,其調度目標是將所有任務以合理的順序和方式分配給相互獨立的資源,達到資源利用率高、系統可靠性強等目的。
3.0-1背包問題
背包問題(Knapsack Problem)是一種組合優化的NP完全問題。問題可以描述為給定一組物品,每種物品都有自己的重量和價格,在限定的總重量內,我們如何選擇才能使得物品的總價格最高。問題的名稱來源于如何選擇最合適的物品放置于給定背包中。相似問題經常出現在商業、組合數學,計算復雜性理論、密碼學和應用數學等領域中。例如,尋找最少浪費的方式來削減原材料,選擇投資和投資組合,選擇資產支持資產證券化等??梢姡嘲鼏栴}在各種決策領域中有廣泛的應用。
4.裝箱問題
經典的裝箱問題要求把一定數量的物品放入容量相同的一些箱子中,使得每個箱子中的物品大小之和不超過箱子容量并使所用的箱子數目最少。裝箱問題廣泛存在于工業生產中,包括服裝行業的面料裁剪,運輸行業的集裝箱貨物裝載,加工行業的板材型材下料,印刷行業的排樣和現實生活中包裝、整理物件等。在計算機科學中,多處理器任務調度、資源分配、文件分配、內存管理等底層操作均是裝箱問題的實際應用,甚至還出現在一些棋盤形、方塊形的數學智力游戲中。裝箱問題的研究文獻分布面很廣,在運籌學、計算機輔助設計、計算機圖形學、人工智能、圖像處理、大規模集成電路邏輯布線設計、計算機應用科學等諸多領域都有裝箱問題最新的研究動態和成果出現,從這個角度來講,布局問題涉及了工業生產的方方面面,也足以證明了裝箱問題的應用前景日趨廣泛。
5.圖著色問題
圖著色問題(Graph Coloring Problem,GCP)又稱著色問題,是最著名的NP-完全問題之一。它由地圖的著色問題引申而來:用多種顏色為地圖著色,使得地圖上的每一個區域著一種顏色,且相鄰區域顏色不同。圖著色問題大體分為兩類,即頂點著色和邊著色。頂點著色中,給定無向圖,用每種顏色為圖中的每個頂點著色,要求每個頂點著一種顏色,并使相鄰兩頂點之間有著不同的顏色。在邊著色問題中,給定無向圖,用每種顏色為圖中的每條邊著色,并使相鄰兩條邊有著不同的顏色。圖著色問題應用領域廣泛,如交通管理系統中交叉路口的信號燈設計、不相容化學制品的分庫儲藏問題、排課時間表問題、會場安排問題等。
1.2.4 組合優化問題的求解方法
求解組合優化問題的方法可以分為精確算法和近似算法兩類。常用的精確算法有動態規劃法、分支定界法和枚舉法。
動態規劃法是運籌學的一個分支,是求解決策過程最優化的常用方法。對于組合優化這類離散問題,由于解析數學無法發揮作用,動態規劃便成為一種非常有用的工具。動態規劃可以按照決策過程的演變是否確定分為確定性動態規劃和隨機性動態規劃;也可以按照決策變量的取值是否連續分為連續性動態規劃和離散性動態規劃。雖然動態規劃主要用于求解以時間劃分階段的動態過程的優化問題,但是一些與時間無關的靜態規劃(如線性規劃、非線性規劃),只要人為地引進時間因素,把它視為多階段決策過程,也可以用動態規劃方法方便地求解。
一般來說,只要問題可以劃分成規模更小的子問題,并且原問題的最優解中包含了子問題的最優解,則可以考慮用動態規劃解決。動態規劃的實質是分治思想和解決冗余,因此,動態規劃是一種將問題實例分解為更小的、相似的子問題,并存儲子問題的解而避免計算重復,以解決最優化問題的算法策略。由此可知,動態規劃法與分治法和貪心法類似,它們都是將問題實例歸納為更小的、相似的子問題,并通過求解子問題產生一個全局最優解。其中貪心法的當前選擇可能要依賴已經做出的所有選擇,但不依賴于有待于做出的選擇和子問題。因此貪心法自上向下,一步一步地做出貪心選擇;而分治法中的各個子問題是獨立的(即不包含公共的子問題),因此一旦遞歸地求出各子問題的解后,便可自下而上地將子問題的解合并成問題的解。但不足的是,如果當前選擇可能要依賴子問題的解時,則難以通過局部的貪心策略達到全局最優解;如果各子問題是不獨立的,則分治法要做許多不必要的工作,重復地求解公共的子問題。解決上述問題的辦法是利用動態規劃。該方法主要應用于最優化問題,這類問題會有多種可能的解,每個解都有一個值,而動態規劃找出其中最優(最大或最小)值的解。若存在若干個取最優值的解的話,它只取其中的一個。在求解過程中,該方法也是通過求解局部子問題的解達到全局最優解,但與分治法和貪心法不同的是,動態規劃允許這些子問題不獨立,也允許其通過自身子問題的解做出選擇,該方法對每一個子問題只解一次,并將結果保存起來,避免每次碰到時都要重復計算。因此,動態規劃法所針對的問題有一個顯著的特征,即它所對應的子問題樹中的子問題呈現大量的重復。動態規劃法的關鍵就在于,對于重復出現的子問題,只在第一次遇到時加以求解,并把答案保存起來,讓以后再遇到時直接引用,不必重新求解。
分枝定界法是一個用途十分廣泛的算法,運用這種算法的技巧性很強,不同類型的問題解法也各不相同。分支定界法的基本思想是對有約束條件的最優化問題的所有可行解(數目有限)空間進行搜索。該算法在具體執行時,把全部可行的解空間不斷分割為越來越小的子集(稱為分支),并為每個子集內的解的值計算一個下界或上界(稱為定界)。在每次分支后,對凡是界限超出已知最優值的那些子集不再做進一步分支。這樣,解的許多子集就可以不予考慮了,從而縮小了搜索范圍。這一過程一直進行到找出可行解為止,該可行解的值不大于任何子集的界限。這種算法一般可以求得最優解,但不適用于大規模解空間的搜索。
隨著組合優化問題的發展,問題解空間越來越大,早已超出了精確算法的求解能力。目前,人們尚未找到任何一個NP-完備問題的有效算法。但在很多實際應用中,人們只需找到NP-完備問題的“不錯的”解,而不必是最優解。因而,近似算法成為求解組合優化問題的方法之一。近似算法分為基于數學規劃(最優化)的近似算法、啟發式算法和基于智能優化的近似算法。
1)基于數學規劃的近似算法是根據對問題建立的數學規劃模型,運用如拉格朗日松弛、列生成等算法以獲得問題的近似解。拉格朗日松弛算法求解問題的主要思想是分解和協調。首先對于組合優化問題,其數學模型須具有可分離性。通過使用拉格朗日乘子向量將模型中復雜的耦合約束引入目標函數,使耦合約束解除,形成松弛問題,從而分解為一些相互獨立的易于求解的子問題,設計有效的算法求得所有子問題的最優解。利用乘子的迭代更新實現子問題解的協調。列生成算法是一種已經被認可的成功用于求解大規模線性規劃、整數規劃及混合整數規劃問題的算法。與智能優化算法相比,基于數學規劃的近似算法的優點是通過建立問題的數學模型,松弛模型中難解的耦合約束或整數約束,得到的松弛問題的最優解可以為原問題提供一個下界。同時,基于數學規劃的近似算法還具有很好的自我評價功能,通過算法運行給出的問題的近優解(或最優解)為原問題提供一個上界,上界與下界進行比較,可以衡量算法的性能。
2)啟發式算法是根據求解問題的特點,按照人們經驗的或某種規則設計的。這是一種構造式算法,比較直觀、快速,利用問題的知識設計求解的方法步驟,具有操作簡單的優點,但所得解的質量不一定好。
3)基于智能優化的近似算法是基于一定的優化搜索機制,并具有全局優化性能的一類算法。這類智能優化算法常見的有:模擬退火算法(Simulated Algorithm,SAA)、遺傳算法(Genetic Algorithm,GA)、蟻群算法(Ant Colony Optimization,ACO)、迭代局部搜索算法(Iterated Local Search,ILS)、禁忌搜索算法(Tabu Search,TS)、分散搜索算法(Scatter Search,SS)、粒子群算法(Particle Swarm Optimization,PSO)等,這些算法也稱超啟發式算法(Meta-heuristic)。
智能優化算法是一種通用的算法框架,只要根據具體問題特點對這種算法框架結構進行局部修改,就可以直接應用它去解決不同的問題。這類算法本身不局限于某類問題,具有實踐的通用性,適應于求解工業實際問題,在較快地處理大規模數據的同時得到令人滿意的解。基于智能優化的近似算法,采用不同的搜索策略和優化搜索機制,尋找問題的近似最優解,具有很好的求解優勢。雖然基于智能優化的近似算法不能保證求得全局最優解,但因其高效的優化性能、無需問題特殊信息、易于實現且速度較快等優點,受到諸多領域廣泛的關注和應用?;谥悄軆灮慕扑惴ǔ蔀榍蠼鈴碗s組合優化問題主要的有效方法。