• 沒有找到結果。

開發求解分群優化問題之蟻拓尋優法並求解教務單位時間表規劃問題

N/A
N/A
Protected

Academic year: 2021

Share "開發求解分群優化問題之蟻拓尋優法並求解教務單位時間表規劃問題"

Copied!
10
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

開發求解分群優化問題之蟻拓尋優法並求解教務單位時間

表規劃問題

計畫類別: 個別型計畫

計畫編號:

NSC91-2213-E-002-115-執行期間: 91 年 08 月 01 日至 92 年 07 月 31 日

執行單位: 國立臺灣大學工業工程學研究所

計畫主持人: 楊烽正

報告類型: 精簡報告

處理方式: 本計畫可公開查詢

國 92 年 8 月 25 日

(2)

行政院國家科學委員會補助專題研究計畫成果

報告

※※※※※※※※※※※※※※※※※※※※※※※

※※

開發求解分群優化問題之蟻拓尋優法

並求解教務單位時間表規劃問題

※※※※※※※※※※※※※※※※※※※※※※※

※※

計畫類別:

ˇ

個別型計畫

□整合型計畫

計畫編號:NSC

91-2213-E-002-115-執行期間:91 年 8 月 1 日至 92 年 7 月 31 日

(3)

計畫主持人:楊烽正

共同主持人:

本成果報告包括以下應繳交之附件:

□赴國外出差或研習心得報告一份

□赴大陸地區出差或研習心得報告一份

□出席國際學術會議心得報告及發表之論文各一份

□國際合作研究計畫國外研究報告書一份

執行單位:台大工業工程學研究所

中 華 民 國 九 十 二

八 月 二 十 五

開發求解分群優化問題之蟻拓尋優法並求解教務單位時間表規劃問

計畫編號:NSC

91-2213-E-002-115-執行期限:91 年 8 月 1 日至 92 年 7 月 31 日

主持人:楊烽正 台大工業工程學研究所

iefcyang@ms.cc.ntu.edu.tw

一、中文摘要

(4)

以物件導向技術建模並萃取設計樣型(design pattern),以確保此啟發式演算法

能應用於各式物件分群優化問題。

系統實作上,本研究開發蟻拓物件分群尋優軟體礎架(software framework),並

實作包含教務單位入學考試科目時間安排問題分群處理的數種求解系統,以驗證

本研究所開發系統的求解能力及擴充性。結果顯示本軟體礎架確實可有效提供實

務工作者在面臨物件分群優化問題時,繼承此礎架內的類別並自行開發以 ACO

演算法為求解核心的決策支援工具。

關鍵詞:蟻拓尋優法、物件分群優化、設計樣型。 Abstr act:

Object grouping optimization problems, known as NP-hard problems, are frequently encountered in operation research areas and industrial fields. Traditionally, these problems are modeled as set partitioning problems. In this research, viewpoint of group allocation for a set of objects is adopted to construct mathematical models for object grouping optimization problems. This research then focuses on developing an object grouping technique based ACO (Ant Colony Optimization) method to solve this kind of problems. Design patterns of using ACO approaches to solve object grouping optimization problems are discussed. General procedures are postulated for further applications of solving this kind of problems.

To implement the proposed method, this research develops an ACO based software framework, including core software classes, to solve object grouping optimization problems. These classes are dedicated to using ACO techniques to solve object grouping problems. Based on this framework, applications of solving exam timetabling problems and other grouping problems (including graph coloring problems, node number balanced graph coloring problems, and bin packing problems) are also implemented to verify the functionalities and expandability of the framework. The framework this research proposed is a complete decision making tool for discrete optimization problems.

Keywor ds:

ant colony optimization, object grouping optimization, design pattern.

二、計畫緣由與目的

蟻拓尋優技術(Ant Colony Optimization, ACO)是另一個近年來興起、源於自然

界動物行為的啟發式方法,由 Dorigo、Colorni、和 Maniezzo 在 90 年代初期所提

出[2]。此搜尋方法的靈感來自於觀察真實蟻群在搜尋到食物源後要將其搬回巢

穴時,會沿食物源與巢穴間最短的路徑行進。蟻群的此項特性被應用於求解最短

路徑等高度複雜的組合最佳化問題(combinatorial optimization problems),並已

被證明有相當好的成效[3, 4]。ACO 的搜尋方式很容易映射到組合最佳化問題,

也就是搜尋一串資料的排列組合情形而找出最佳者。此演算法代與代之間的資訊

傳遞是透過一個全域性、且持續更新的費洛蒙(pheromone)資料供蟻群參酌。

因此牠們在進行排列組合選擇時,可以取得前面各代的搜尋經驗並配合本身的啟

發式搜尋策略做出最後的抉擇。蟻拓物件排序演算的 UML 活動圖(activity

diagram)如圖 1 所示。

ACO 雖已廣泛運用於求解物件排序的排列組合問題,但缺乏物件分群相關的運

用[1]。因此本研究詳細研擬物件分群優化問題的數學模式,並開發蟻拓物件分

群優化演算法,求解此類問題以擴展蟻拓尋優法的應用層面。研究內容並開發相

關軟體類別庫求解包含教務單位考試科目時間排程問題,以驗證本研究所開發系

統的求解能力及擴充性。

(5)

「物件分群優化問題」

,顧名思義係將一堆物件依設定的目標進行分群作業。若

有限制時,需符合限制條件,使得各物件被分至各群的分佈情形,是目標評斷結

果最佳者。物件分群優化問題在實務應用上處處可見,例如宅配業者要以最少的

車輛將貨品分車且上載到各車,以配送給顧客;傳統的工廠派工問題有 n 個工

作,要分派給 m 個工作站加工,目標是希望各工作站的負荷差異最小;又如圖形

理論中的節點著色問題:給定一網圖,需滿足互有連線的節點不能著相同顏色,

目標是使所有節點皆被著色,且所用的顏色數量最少… 等,皆屬物件分群優化問

題的範疇。

圖 1 蟻拓物件排序演算活動圖

面對含有限制式的問

題,若採用 ACO 求解,

可利用費洛蒙資料反應

出限制條件的內容,限制

螞蟻無法產生不可行的

解。因此不會面臨其他泛

用型啟發式方法會產生

違反限制是的解:如使用

遺傳演算法(Generic

Algorithm, GA)時產生

基因編碼會違反限制

式。使用 GA 求解有限制

式的問題時,常見的解決

方法是直接在適應函數

中加入違反限制式的懲

罰值(penalty),使違反

限制條件的基因編碼解

適應值遠低於合法解,再

經遺傳篩選自然淘汰。另

一種解決方案則在子代

基因產生後,對其進行基

因修補,以確保不違反限

制條件。

以 ACO 求解時,透過費

洛蒙資料的先期處理,可

將違反限制式的候選方案以特殊的符號或數值在全域性的費洛蒙資料中標示起

來。限制螞蟻在建構可行解時選取,因而杜絕了違反限制式的解的出現。此種方

式在一開始建構可行解的過程中即把限制條件納入考慮,故求得的解皆為可行

解。整體看來,其較 GA 待到產生子代後再透過適應函數來評估優劣的處理方式

來得穩固且容易。這是本研究企圖嘗試擴充 ACO 的應用範圍,以求解物件分群

優化問題的動機所在。本研究並嘗試把「蟻拓物件分群優化問題演算流程」的核

心步驟方法萃取出來,提出一套以 ACO 求解物件分群優化問題的設計樣型。

三、蟻拓物件分群演算法

以下詳述本研究開發蟻拓物件分群技術時的各項求解機制及流程。在蟻拓物件排序優化 問題中,螞蟻的工作是在一堆物件中一一選出各物件接續排序,最後完成一組物件的排列順 序解。面臨蟻拓物件分群優化問題時,螞蟻的工作則是在一堆物件中先選出一個物件,選定 定義 目標 函數 並 設定 各項 演算 參數 初始 化蟻 群 及螞 蟻 依據轉移函數決定下一個 接序 排序 的物 件 計算 每個 可行 解的目 標函數值 , 依其 值高 低和 更新 法則更 新全域費 洛 蒙 結束 物件 排 序演 算流 程 [ 否則 ] [ 符合 停止 條件 ] [ 否則 ] [ 完成 一可 行解 ]

(6)

1. 在進入執行工作迴圈前,先初始化特定問題的額外資料。並將現有群集合W初始化為空

集合,令W← ∅。

2. 備妥一份尚未分群的物件集合U ,令UO

3. 依據特定法則如隨機選取(random selection)、比例隨機式選取、或最多互斥限制優先選 取(largest mutual exclusion first)等策略,由U 中選擇一個物件o 作為目標物件。i*

4. 開闢第一群G1,將物件 * i oU中移除並加入G1。把G1加入現有群集合W 中,並更新現有 群數m=1。 5. 更新尚未分群物件集合UU← −U

{ }

oi* ,並針對各特定問題更新相關資料。若U =0, 表示所有物件皆已分群完畢並已求得一分群結果,設定分群結果SW ,停止迴圈執行 並執行步驟 13。 6. 依據特定法則如隨機選取、比例隨機式選取、或最多互斥限制優先選取等策略,由U 中 選擇一個物件

o

i*作為目標物件。 7. 檢驗現有群集合W內各群中的各物件與目標物件 * i o 間是否有物件間互斥限制、各群是否 對目標物件oi*有物件群落限制,以確定物件oi*的可行群。若有群容量上限,亦需檢驗當oi* 放入現有群集合W內的群,是否違反群容量上限。驗證各群的可行性後建立物件 * i o 的可

行群集合Vi*(candidate groups list)收錄所有可納入oi*的可行群。

8. 若物件 * i o 的可行群數為零,即Vi* =0,則開闢一新群Gm+1將 * i o 放入,並添加Gm+1到現有群 集合W內,更新群數m← +m 1,再轉回執行步驟 5。 9. 若有啟動另闢一新群的機制,則產生一隨機亂數q,若q>θ則直接另闢一新群Gm+1將 * i o 放 入,並添加Gm+1到現有群集合W內,更新群數m← +m 1,再轉回執行步驟 5。 10.若 * 1 i = VGj*∈V ,則將物件i* o 置入群i* * j G 中,並轉回執行步驟 5。 11. * i V內可行群數大於 1 時必須進行選擇,因此求算各可行群的選擇機率值pi j* 12.以比例隨機模式由可行群集合 * i V 中選出群Gj*為oi*的著落群。將oi*加入群Gj*中,並轉回 執行步驟 5。 13.螞蟻完成物件分群並獲得可行解

S

,依各物件的群落情形更新費洛蒙 14.最後以目標函數f S 評估解的優劣。

( )

以下說明上述螞蟻求解群數望小的物件分群優化問題的工作流程:在進入分群工作迴圈 前,先初始化某些特定問題的額外相關資料,並將現有群集合W初始化為W← ∅。若問題 有物件間互斥限制(兩物件不能同處一群的限制)時,需將物件間互斥限制矩陣 ij n n a ×   =   A 的 資料隱含於費洛蒙矩陣 ij n n τ ×   =   F 中。先將F初始化後,檢查A內的元素值,依式(1)強制更 新F內的某些元素值為-1: 1, if 1 ij aij τ = − = (1) 因此隨後當螞蟻欲將目前取出的目標物件 * i

o

放入現有的群中時,會參看費洛蒙資料以決定 哪些群為不可行的群。若該群中的物件

o

j與目前欲分群的物件oi*有物件間互斥限制存在(即 1 ij a = ),則螞蟻在參看費洛蒙矩陣時會發現τij = −1,因此不會將已納入物件

o

j的該群視為可 行群。如此可避免螞蟻在建構可行解時將目前物件分到含有物件間互斥限制的群中。蟻拓法 可在求解過程杜絕違反限制條件的解,比 GA 採用懲罰項,或對子代基因進行基因修補的 方式較為簡易,也較具求解效率。 之後準備一份所有尚未分群的物件集合 U (objects list),並令UO 。步驟 3 及 4:透過

(7)

各種選擇物件的策略如隨機抽取、比例隨機式選取、或最多互斥限制優先選取、…等,選出 第一個目標物件 * i o 並開一新的群G1將其放入,隨後將物件 * i o

U

中移除並將oi*加入G1。若 採用比例隨機式選取(輪盤法),物件

o

i被選取的機率

ω

ik i i k o ε ω ε ∀ ∈ =

U (2) i

ε

代表oi的物件間互斥限制數(無物件屬性的分群問題)或物件屬性值(有物件屬性的分群 問題)。限制條件愈多或物件屬性值愈大的物件被選取的機率ω 較高,但隨機選出的不一定i 是擁有限制條件最多或物件屬性值最大的物件。隨後即更新現有群集合W(增加一群G )1 及設定現有群數

m

=

1

。 步驟 5 到步驟 12 是一迴圈程序,主要是選出目標物件並放入至目標群中。先從尚未分群 的物件集合U中依據前述物件選取策略選出一個目前欲分群的目標物件oi*。一旦oi*被選 出,根據其物件間互斥限制、物件群落限制、及群容量上限等,即決定了oi*的可行群集合V 。i* 若可行群集合中無合適的群可放置物件oi*,亦即Vi* =0,則另開一新群Gm+1將o 放入,添加i* 1 m+ G 到現有群集合W內,並轉回執行步驟 5。否則若有啟動另闢一新群的機制,產生一隨機 亂數q,若q>θ則直接另闢一新群Gm+1將

o

i*放入,並添加Gm+1到現有群集合W內,更新群數 1 m← +m ,再轉回執行步驟 5。若物件

o

i*的可行群中恰有一群可放置

o

i*時( * 1 i = V ),則將

o

i* 放入 * j G 中,並轉回執行步驟 5。若Vi*中的個數有 1 個以上時,則依據另一轉移函數求算各可 行群的選擇機率值 * i j p 並決定物件

o

i*要放入哪一可行群G 中,並轉回執行步驟 5。物件j * i o 被 放置到群G 的機率j

( )

( )

( )

( )

* * * * * j i i j i j i j i j i j p β α β α τ η τ η ∈ ⋅ = ⋅

G V (3) 上述式(3)中的「費洛蒙因素項」 * i j

τ

,是物件

o

i*與群G 中所有物件間的費洛蒙平均值j * * k j i k i j o j τ τ ∈ =

G G (4) 「區域啟發式因素項」ηi j* ,則由各問題依問題特性採用特定運算式求算。此項因子通常會 和目標函數的設計相呼應,但著重的是在對目前的目標物件做分群作業的當下而言,盡量強 調以區域性考量的最佳選擇。 如此重複執行直到所有物件皆分群完畢,並更新分群結果群集合 S :SW 。 當螞蟻完成一分群可行解S時,在步驟 13 時螞蟻依據 S 中各物件的群落情形,採式(5)更 新費洛蒙矩陣F中的值。 F 中的元素

τ

rs對應為物件o 與r os被分在同一群的費洛蒙強度,其

(8)

and j 1, 1, 2, , rs G > j= L m (5) rs τ ∆ 的設定值亦由各問題依問題特性採用特定運算式求算。一般採行的策略是求得較佳解的 螞蟻,可有較高的量來更新費洛蒙,以將較佳解的資訊傳遞給往後的螞蟻。當某群中物件數 只有一個時,則該群無任何費洛蒙值更新。 最後以目標函數f S

( )

來評估解的優劣。執行循環數的決定可採用執行固定循環數後即停 止、執行固定時間後即停止、當搜尋停滯即停止等,以終止螞蟻的工作執行。圖 2 以活動圖 展現本研究開發之蟻拓物件分群演算法。詳細演算內容參見主持人指導的學生論文[8]。 GroupSizeMinimizedGroupingAnt::executeTheTask()

Initialize the Related Lists

candidateObjectSet->clear(); feasibleGroups->clear(); groupContainer->clear(); prepareTheCandidateObjectSet(); targetID = candidateObjectSetarray[0] [ candidateObjectSetsize == 1 ]

Select an Object as the Target Object From Candidate Objec tSet

[ else ]

Update the Candidate Object Set

Select a Feasible Group From Current Groups as the Target Group

[ else ]

Check if it Need to Open a New Group [ USE_OPEN_FACTOR ]

[ else ]

Open a New Group to Put the Object [ putValue > openGroupFactor ] [ targetGroup == NULL ]

No Feasible Groups Put the current Object to the

targetGroup [ else ]

End an Object Grouping Iteration

A Complete Solution Is Obtained

[ candidateObjectSetsize == 0 ]

Update Pheromone When the Task is Compleded [ UPDATE_BY_ANT_PER_TASK ]

[ else ] Select the First Object

Open a New Group to Put the Object

Update the Candidate Object Set

Set currentID = targetID

[ else ]

Computation flow for the member function

random factor 圖 2 本研究開發之蟻拓物件分群演算法活動圖

四、結果與討論

本範例將某年台灣大學教務單位研究生入學考試的真實資料透過將考組及科目編碼,並 轉換成本系統所需的輸入資料格式,以蟻拓方法來求解。考試科目排程問題的蟻拓模式是將 考試科目分群,也就是安排時段。各時段內的考試科目安排不能造成某組考生衝堂且一科只 能安排在一個時段中。此例有 445 個考試科目,223 個考試科組,應考人數為 16947 人。圖 3 是跑 100 個執行循環的求解結果。結果分成 8 個時段。

(9)

圖 3 求解台大研究生入 學考試問題結果視窗(分 成 8 個時段) 圖 4 是另一個跑 100 個執行循環的求 解結果視窗,分成最 少的 7 個時段。由於 本 研 究 設 定 此 問 題 的 目 標 函 數 是 µ

( )

2

( )

=

minimize f Z S ×variance v = mvariance

( )

v 。由圖 3 及 4 可發現此二解所求得的時段數 不同,圖 3 的解分成 8 個時段,圖 4 的解則分成 7 個時段。分成 8 個時段的解各時段間的總 應考人數的變異程度較分成 7 個時段的解來得低,也就是比較平衡,但必須多花一個時段才 能完成所有科目的考試。此時這兩組解的選擇須由決策者做出決定。 圖 4 求解台大研究生入 學考試問題結果視窗 (分成 7 個時段)

五、計畫成果

自評

本 研 究已 順 利擴 展 蟻 拓 尋 優 法 的 應 用範圍,由物件排序 至 物 件 分 群 優 化 問 題,並以物件導向技 術 開 發 求 解 物 件 分 群 優 化 問 題 的 軟 體 礎架。該礎架可讓使 用 者 針 對 特 定 的 問 題 研 擬 物 件 分 群 問 題模式後,逕行繼承 礎架內的類別,設定 求 解 問 題 的 目 標 函 數、限制條件、轉移 函數、… 等特定的內 涵。透過客製化介面 及虛擬函數的實作,可有效建立完整的求解系統。本研究獲致的結果可歸納下列數點: 1. 以數學模式描述各類物件分群優化問題,協助分析各種優化問題以尋求 ACO 求解技 術。 2. 於組合最佳化問題的典型應用外,開發 ACO 技術的物件分群優化演算流程,並解析 蟻拓物件分群作業的設計樣型,使此啟發式演算法更具一般性。 3. 開發展現物件分群演算功能的軟體礎架,以因應求解各種物件分群優化問題之需。並 實作包括教務單位入學考試課目時間排程問題等數個物件分群分群優化問題求解系 統。結果顯示系統開發效率高,且蟻拓物件分群優化演算法確實能求解部分離散最佳 化問題。

(10)

Salesman Problem,” IEEE Transactions on Evolutionary Computation, vol.1, no.1, pp. 53-66.

4. Dorigo, M., Maniezzo, V., and Colorni, A., 1996, “Ant System: Optimization by a Colony of Cooperating Agents,” IEEE Transactions on System, Man, and Cybernetics - Part B: Cybernetic, vol.26, no.1, pp. 29-41.

5. How-Ming Shieh, and Ming-Der May, 2001, “Solving The Capacitated Clustering Problem With Genetic Algorithms,” Journal of the Chinese Institute of Industrial Engineers, Vol. 18, No. 3, pp. 1-12.

6. West, D., 1996, Introduction to Graph Theory, Prentice Hall, 2nd edition.

7. 吳森原譯著,1988,圖形論及其應用,曉園出版社,第八、九章,pp. 156-224。

8. 劉昌憲,2003,蟻拓物件分群尋優法及系統開發礎架,碩士論文,台灣大學工業工程學研究所碩士論文。 9. OR LIBRARY 標竿作業研究問題範例參考網址: http://mscmga.ms.ic.ac.uk/info.html

數據

圖 3 求解台大研究生入 學考試問題結果視窗(分 成 8 個時段) 圖 4 是另一個跑 100 個執行循環的求 解結果視窗,分成最 少的 7 個時段。由於 本 研 究 設 定 此 問 題 的 目 標 函 數 是 ( )µ = 2 ( )

參考文獻

相關文件

This kind of algorithm has also been a powerful tool for solving many other optimization problems, including symmetric cone complementarity problems [15, 16, 20–22], symmetric

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

To tackle these problems, this study develops a novel approach integrated with some graph-based heuristic working rules, robust back-propagation neural network (BPNN) engines

4.2 Copy the selected individuals, then apply genetic operators (crossover and mutation) to them to produce new individuals.. 4.3 Select other individuals at random and

To tackle these problems, this study develops a three-stage approach (i.e., firstly create a correct CAD-oriented explosion graph and then find a graph-based assembly sequence

C-C-6 用一般語言及數學語言說明解題的過程 C-C-8 能尊重他人解決數學問題的多元想法 C-E-4 能評析解法的優缺點.

ACO-GA Approach to Solve Vehicle Routing Problems,”. DOM Working Paper 08/2001, University of