• 沒有找到結果。

基因演算法於排課問題上之研究

N/A
N/A
Protected

Academic year: 2021

Share "基因演算法於排課問題上之研究"

Copied!
8
0
0

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

全文

(1)基因演算法於排課問題上之研究 Research on Course Scheduler Problem By Genetic Computing 葉耀明. 王富民. 國立臺灣師範大學資訊教育系. 國立臺灣師範大學資訊教育系. 台北市和平東路一段 162 號 ymyeh@ice.ntnu.edu.tw. 台北市和平東路一段 162 號 fmwang@ice.ntnu.edu.tw. 摘要 排課問題是一個 NP-Complete 的問題, 一直都沒有很好的解決方法。但是此問題又是 毎一個學校在毎個學期都會碰到的一個必要 行政作業,其問題的條件限制包括課程、教 師、教室、班級、以及設備等複雜因素。很不 容易將其轉換成電腦可以解決的程式系統。本 論文提出一種改良後的基因演算法運算機制 來解決此限制條件非常複雜的排課問題。我們 的改良後運算機制可以自然地將排課問題在 課程、教師、教室、班級、以及設備等複雜的 限制條件融入基因演算法中並有效地求解。接 著為了提高此系統的執行效率,我們進而將此 基因演算法運算機制導入可以做並行處理的 基因代理人計算的概念,並提出兩種基因代理 人運算模式:Message Queue、Collection。經 過效率執行評估後,我們發現多執行緒和多處 理程序下的基因演算法程式確實可以提高本 系統的執行效率。 關鍵詞: 排課問題、基因演算法、基因代理 人計算。. Abstract Course Scheduling Problem is an NP-Complete Problem, however, it is also a necessary administration task for every school in every semester. The constraints of a Course Scheduling Problem include complicated parameters such as courses, teachers, classrooms, classes and facilities in a school. It is very difficult to develop an efficient computer system to solve this kind of problem. This paper proposes a modified genetic algorithm to solve the Course Scheduling Problem, which can adapt these complicated parameters very easily and solve the problem efficiently. In order to improve the execution performance of the system, we also introduce genetic agent computing concept into our computing mechanism, which can provide concurrency computation through distributed. system. We propose two genetic agent computing models: Message Queue and Collection. We find that the multi-thread and multi-process versions of genetic agent computing indeed can improve the execution performance of our system. Keywords: Course Scheduling Problem, Genetic Algorithm, Genetic Agent Computing.. 一. 簡介 排課的主要功能在於將教育構想有計畫 的轉變為實際的教學活動。影響排課的因素歸 納起來有四項:即教師、課程、學生、和教學 設施。其他如法規、習慣或個人偏好等,也都 構成排課的限制條件。故排課問題相當複雜, 而且是動態的[1]。而 N.L.Lawrie,D.C. Wood 和 S.Even 等 人 證 明 了 排 課 問 題 是 一 個 NP-Complete 的問題[1]13][14][15]。 電腦排課在 60 年代即有學者投入研究, 如 Appleby、Csima 與 Gotlish 等人利用一些簡 單的經驗法則(Heuristic Rule)來解決一些規 模不是很大的問題。到了 80 年代 Selim 採用 的方式[2][16][17]主要是對課程科目進行處 理,首先將固定時段的課程優先排入,然後依 序填入其他課程。Dowsland 的作法[2][18][19] 是採用模組化,將整個排課系統分成資料輸入 模組、指定模組、課表顯示模組、改進模組四 個模組。Loo 的作法[2][20]是將教師、教室、 及學生的可排時段設置成矩陣方式來表示,然 後先將指定時段的科目先排入課表,再指定科 目的優先權,並依優先權的順序將科目排入課 表之中。 國內也有許多的學者研究電腦化的排課 問題。例如包冬意等人[3]以啟發式法則來處理 排課先期作業,再利用排課群體決策支援系統 讓 各 相關 人員 來 共同 協商 未 排入 的相 關 課 程;盧坤勇[4]則是利用指派法則來處理排課問 題;唐學明[1]所採用的是利用經驗式回溯搜尋 (heuristic backtracking)法來解決此類問題; 而邱孟佑、廖鴻圖[5]等人則是將電腦排課系統.

(2) 建立於 Internet 之上。 本論文提出一種改良後的基因演算法 (Genetic Algorithm)運算機制來解決此限制條 件非常複雜的排課問題。基因演算法是一種多 點推測的搜尋方法且可保證函數最佳化的方 法。這方法可使函數收斂於廣域的最佳解,而 不會掉入區域最佳解中。 近年來的基因演算法的研究中,有了和原 來不同的變革,例如合作式演化的基因演算法 ( co-operative co-evolution genetic algorithm, CCGA),就是一個族群之中包含了許多種 (species)或子族群(sub-populations),其中每 一個種類代表了問題的一個變數或是一部份 需要被最佳化的。當所有的種被整合在一起即 為整個問題的完整解[6]。AGUIRRE 等人則提 出基因運算的合作式模組(Cooperative Model for Genetic Operations)去改善基因演算法 [7]。T.Matsumura 等人也針對多處理機提出了 在 平 行 分 散 式 的 基 因 演 算 法 ( Parallel and Distributed Genetic Algorithm, PDGA)中染色 體遷移的影響[8]。K.Kojima 等人則提出了網 路 的 基 因 演 算 法 ( Network based Genetic Algorithm)[9],將其加入了代表團管理模組 (delegation management model),目的是希望 降低網路通訊的負荷。而 Nicolas Barnier 等人 則針對限制滿足的問題[10]中,將每個限制滿 足的條件分成不同的變數,針對不同的變數再 另作處理。 為了提昇基因演算法的執行效率,我們 提出結合代理者計算(Agent Computing)的概 念到基因演算法中。所謂代理者(Agent) [11],是一個實體(可能是電腦或人類)具有 完成我們需求的能力,而代理者和代理者間可 相互影響。代理者主要概念在於其具有某部分 的自主能力且彼此間能夠相互影響。並且可能 同時存在於一個處理機中或是多處理機中。例 如 Etzioni 和 Weld 所提出的 Sofobt 提供了網路 使用者在網際網路上搜尋資料的個人智慧化 輔助[11]。Krulwich 則設計 BarginFinder 幫助 CD 購買者在網路上搜尋最好的價錢。而 Maes 則描述一系列的代理者包含了 Maxime(電子 郵件過濾代理者) 、MCL(會議排程代理者)、 NewT(新聞過濾代理者,可讓使用者從網路 上獲得所感興趣的新聞資源)。. 二.. 排課問題. 所謂排課問題就是針對教學的對象(即學 生),安排所需研習的課程且上課的時間與場 地,在同一時間上不會發生授課教師或上課教 室上的衝突,並且可以滿足教師、班級、課程 的需求。換句話說,如何解決教師、課程、班 級、教室、與課程的設備需求間的相互關係以. 求得最好的結果即為所謂的排課問題,以下針 對這五項主要因素的需求做一個描述: (1)教師:必須考慮到教師的專長(也就是可 任教的科目) 、教師所必須任教的最低鐘 點數、教師是否習慣連堂上課及教師上 課的合適時段。 (2)班級:必須考慮該班的學生人數(以便找 尋可容納該班級所有學生的教室)及該 班所必須修習的課程。 (3)教室:必須考慮教室的大小及教室所包含 的設備。 (4)課程:必須考慮課程的合適時段、課程是 否連堂上課、課程是否為許多班級一起 修習的共同課程、課程間的是否避免時 間互斥性及哪些課程需要哪些設備。 (5)設備:必須考慮到學校中所擁有何種設備 及數量。 在排課之初,排課者必須要知道上述的 需求,但是為了方便排課的進行,我們先將一 些條件予以事先處理,得到(1)課程-教師、 (2)課程-課程、(3)課程-班級、(4)教室設備的四種關係。而由此可以很明顯的知道, 哪門課可由那個老師任教且可被安排在哪一 間教室,並且不可和哪些課程排在同一時段。 除此之外,我們將需求分成必要性條件 (necessary condition) 及 滿 足 性 條 件 (satisfied condition)兩種條件來討論。 1、必要性條件(necessary condition): 所謂的必要性條件就是在現實情況之 下,絕不能違反的原則,茲列於下: 1.1 教師必要性條件(NT) (NT1)教師鐘點數: 教師每週上課的時數必 須大於或等於其系所要求的最低時數。 (NT2)教師時間非重疊性: 除共同課程時間 外,同一位教師不可同時間對一個班級 以上授課。 1.2 課程必要性條件(NO) (NO1)共同課程一致性:修習共同課程的班 級必須在同一時間、同一教室上課。 1.3 教室必要性條件(NR) (NR1)教室大小。 (NR2)教室時間非重疊性。 (NR3)教室設備必要性。 2、滿足性條件(satisfied condition): 所謂的滿足性條件即是受限在現實環境 之下,排課的角色仍可忍受的條件。茲列於 下: 2.1 教師滿足性條件(ST) (ST1)教師合適時段。 (ST2)教師不合適時段。 (ST3)教師連堂上課需求。 2.2 課程滿足性條件(SO) (SO1)課程合適時段。.

(3) (SO2)課程不合適時段。 (SO3)課程連堂需求。 (SO4)相異課程時間互斥性:在同一時間內 互斥的兩門課不可排入同一時段,而該 互斥性沒有遞移性的關係。 所以整個排課的最終結果是希望能夠得 到每個班級所修習的每一門課的上課時間、上 課教室及上課的教師,並且彼此間不互相衝 突。換句話說,我們希望在符合上述必要性條 件的解中去找尋較能符合滿足性條件的解。. 三.基因演算法與其運算模組 基因演算法是 John Holland 在 1975 年所提 出。剛開始時,是在解集合中選擇一組被稱為 族群(population)之隨機解,在族群中的每 一 個 個 體 ( individual ) 均 被 稱 為 染 色 體 (chromosome),而這染色體所表達的就是我 們所求問題的一個解。染色體透過一連串的疊 代 ( iteration ) 的 程 序 , 形 成 了 新 的 世 代 (generation)。在每一世代當中,每個染色體 利用一些標準來做評估,以產生相對應的適應 值(fitness value),利用此適應值來篩選父代 (parent)及子代(offspring)中較優良的個體 來作為下一世代。所謂子代(offspring)的染 色體,是藉由兩種方式來形成:一是藉由交配 (crossover)的機制,結合目前世代中的兩個 染色體;一是藉由突變的機制,改變染色體中 的字串。在篩選過程中,擁有較好的適應值就 會有較高的機率被選擇為下一代的染色體,以 符合生物學上優勝劣敗的原則。經過多次世代 演化之後,其結果會向較佳的染色體收斂,而 這就是我們所希望的較佳解或次佳解 [12]。 所以我們針對上述的問題提出一個改變 原基因演算法的機制,將修正過後的演算法分 成初始化機制、基因運算機制、評估機制、調 整機制、遷移機制及演化機制。在討論這六個 機制之前,先介紹如何將排課問題中所需之要 件化成染色體的形式。 A. 染色體的結構 在運用基因演算法的時候,在一個染色 體就是一個問題解的原則下,將一個染色體安 排為所有班級的一週課表。所以其安排方式如 下: (一)染色體的表示法: 每一個染色體所代表的是一種排課方 式,而基因則是由每個班級來表示。以下式子 顯示染色體的結構,其中 X 所代表的是一個 染色體: X = {x1,x2,…,xn}, 其中 xi 所代表的是第 i 個基因(班級 i) (公式一) (二)基因的表示法: 每個基因所代表的是一個班級一週的總 課堂數。每堂課 tj,代表為該班(該基因)在第. j 個時段的上課課程,故每個基因 x 的結構可 以由下列式子表示: x = [t1,t2,…,tm], 其中 ti 所代表的是該班的第 i 個時段 (公式二) 在染色體中每個不同基因的時段,是以字 元來表示,其順序是以大寫字母 A∼Z、小寫 字母 a~z、數字 0~8 的順序記錄了課程(數字 9 表示該堂為空堂)。 B. 運算模組 以下則針對改良後的基因演算法的六個 模組化機制做一個說明,其演算法如圖 1,架 構圖則如圖 2: (一)、初始化機制(Initiation operation): 在染色體的初始化上,對於其選擇染色 體中的基因是採用隨機選擇,但在其他要素的 互動上,所採用的是經過有選擇性的選出能配 合這染色體的要素。 以排課來例,排課主要為課程、班級、 教室、教師四個要素的互動關係,若染色體的 形式以班級及課程為主,教室及教師就成為需 要配合的要素。所以首先和傳統的基因演算法 一樣必須隨機選擇出一組染色體,也就是隨機 取出一組合理的班級與課程的對應關係。再來 則必須針對這組隨機選擇的班級課程,有選擇 性的找出合理的教師和教室與該課程對應。 (二)、基因運算機制(Genetic operation) 基因運算機制主要分為交配(crossover) 與突變(mutation)兩部分。在我們的排課系統 中的交配及突變運算如下所述: (1)交配 在基因演算法中,one-cut-point 交配的方 式通常是以基因為單位做交換的動作,以產生 新的子代。但在此提出的方法,和原有的方式 略有不同,因為在本系統中的基因並非只是單 純的一個值而是一個字串,若只是單純的對基 因做交換的動作,在基因數少的情況之下,可 能不會產生多大的演化效用,故本交配的方法 在隨機取分割點(cut point)的時候,並不以 基因為單位,而以課堂為單位,取的分割點可 能位於基因之上,造成切割基因的效果,以達 到改造基因的目的。此法的表示如下: 假設兩個父代分別為 X 及 Y,其中 X={[a, b, c],[d,↓e, f],[g, h, i]} Y={[c, b, a],[f,↓d, e],[g, i, h]} 若取的分割點剛好位於第 2 個基因的第一 個時段之後,則其子代分別為 X'及 Y': X'={[a, b, c],[d,↓f, e],[g, i, h]} Y'={[c, b, a],[f,↓d, e],[g, h, i]} 上述情形,針對有完整基因的部分,和原有的 one-cut-point 一樣,純粹做交換的動作,但對 被切割的基因,採用部分保留而另一部份則參 照另一父代染色體所沒有的部分依序填入。 (2)突變.

(4) 突變是針對要突變的基因做改變,其改變 方 式 為將 該基 因 的字 串重 新 做一 次隨 機 排 列。突變主要根據兩個數值:突變代數及突變 個數。所謂的突變代數是指多少代突變一次, 而突變個數是指所有可能突變的基因個數乘 上突變機率即為要突變的基因個數。在本系統 中,為了要獲得較好的染色體,也就是要獲得 較好的適應函數值,故保留最好的染色體不予 突變。 (三)、評估機制(Evaluation operation) 評估機制包含了兩個部分,一個為適應 函數(fitness function),另一個為限制函數 (constraint function)。適應函數的計算是針對染 色體去求出適應值(fitness value),根據這適 應值的大小得知此是否為較佳解。限制函數的 計算是針對染色體去求出限制值(constraint value) ,以得知此染色體是否為合理染色體(解 集合中的一個元素)。以下就本排課系統為 例,說明適應函數及限制函數的做法: (1)適應函數 適應函數主要針對合理染色體的去計算 適應值,並對滿足性條件作分析。如果該染色 體符合其條件的話,則其適應值為該適應函數 值之累加。其定義如下: 若欲解決之問題有其非必要限制條件 S1,S2....Sn 且 相 對 應 的 適 應 函 數 為 f1(X), f2(X), ..., fn(X),其中 X 代表的是欲評估的染色 體,則該染色體的適應值(fitness)如公式三。 F(X)=w1*f1(X)+w2*f2(X)+...+wn*fn(X),其中 w1 ,w2,...,wn 分別代表各條件之權重。(公式三) 就排課系統的七個滿足性條件(ST1∼ ST3、SO1∼SO4)相對應的適應函數分別為 f1~f7,針對每一個染色體 X,其適應值 F(X) 為 w1*f1(X)+w2*f2(X)+...+w7*f7(X),其中 w1 ∼ w7 為使用者所輸入相對應的滿足性條件的權 重值。以下分別說明各函數之作法: (f1)教師合適時段的適應函數:針對滿足性條 件(ST1)。計算方式為該染色體中,有多少 時段是該課程的任課教師的較合適時段,其值 為符合時段(time slots)數,其值為正。 (f2)教師不合適時段的適應函數:針對滿足性 條件(ST2)。計算方式為該染色體中,有多 少時段是該課程的任課教師的不合適時段,其 值為符合時段數乘上-1,故其值為負。 (f3)教師連堂上課需求的適應函數:針對滿足 性條件(ST3)。計算方式,該染色體中的每 一個課程的任課教師是否滿足該教師的連堂 需求,其值為滿足連堂需求的課程數,故其值 為正。 (f4)課程合適時段的適應函數:針對滿足性條 件(SO1)。計算方式為該染色體中,有多少 時段是課程位於較合適時段,適應函數值為符 合時段數,故其值為正。. (f5)課程不合適時段的適應函數:針對滿足性 條件(SO2)。計算方式為該染色體中,有多 少時段是課程位於較不合適時段,其值為符合 時段數乘上-1,故其值為負。 (f6)課程連堂需求的適應函數:針對滿足性條 件(SO3)。計算方式為該染色體中的每一個 課程是否滿足連堂需求,換句話說,適應函數 值為滿足連堂需求的課程數,故其值為正。 (f7)相異課程時間互斥性的適應函數:針對滿 足性條件(SO4)。計算方式為針對該染色體 中的每個基因中的每個 time slot,計算不同基 因同一相對的 time slot 位置的互斥的課程 數。其適應函數值即為該課程數乘上(-1), 故其值為負。 (2)限制函數 限制函數主要針對所有子代染色體的去 計算限制值,也就是針對必要限制條件作分 析。若該染色體滿足其必要性的限制條件,則 可得知該染色體為合理的染色體,同時也是該 問題的解集合中的一個元素。其定義如下: 若欲解決之問題有其必要條件 N1,N2,...,Nn 且 相 對 應 的 限 制 函 數 為 g1(X), g2(X),..., gn(X),其中 X 代表的是欲評估的染色體,則 該染色體的限制值(constraint value)如公式四。 G(X)=w1*g1(X)+w2*g2(X)+...+wn*gn(X) ,其 中 w1 ,w2,...,wn 分別代表各條件之權重。而一個 合理的染色體 X 必須滿足為 G(X)< C (C 為一個定值)。(公式四) 就排課系統的六個必要性條件(NT1、 NT2、NO1、NR1∼NR3) ,相對應的限制函數 分別為 g1~g6,針對每一個染色體 X,其限制 值 G(X)為 w1*g1(X)+w2*g2(X)+...+w6*g6(X), 其中 w1 ∼w6 為使用者所輸入相對應的限制 性條件權重值。以下分別說明各函數之作法。 (g1)教師鐘點數的限制函數:針對必要性條 件(NT1)。計算方式為計算該染色體中,有 多少教師的開課鐘點數小於其下限,則其限制 函數的值為該教師數。 (g2)教師時間非重疊性的限制函數:針對必 要性條件(NT2)。計算方式為計算該染色體 中的每個基因的相對位置,出現其同一教師的 個數。 (g3)共同課程時間一致性的限制函數:針對 必要性條件(NO1)。計算方式為針對該染色 體的每一個班級(基因),若該班級具有共同 課程但該課程的上課班級數不滿必須上課的 班級數,則其值為該課程所欠缺的班級數。 (g4)教室大小的限制函數:針對必要性條件 (NR1)。計算方式為計算該染色體中,有多 少課程的教室大小無法容納預定的修課人數 ,其值為該課程數。 (g5)教室時間非重疊性的限制函數:針對必 要性條件(NR2)。計算方式為計算該染色體.

(5) 中每個基因的相對位置,在非同一課程卻出現 同一教室的個數。 (g6)教室設備必要性的限制函數:針對必要 性條件(NR3)。計算方式為對每一個的已開 之課程計算其教室的設備是否滿足其需求,其 值為不滿其需求的設備數目。 所以在此我們可以很明確的得知,所謂 的排課問題,就是要在限制值最小的染色體 中,找出最大的適應值的染色體,此染色體就 是我們要找的解。 (四)、調整機制(Adjustability operation) 通常在過多的限制條件的情況下,很容易 產生不合理的染色體(irregular chromosome), 故針對此類交配或突變之後的不合理的染色 體或針對較不容易收斂的限制條件,利用經過 設計好的調整函式(adjust function)來改良染色 體中基因的排列方式,以求得較優良的染色 體,也就是運用調整函式來幫助我們盡快求出 所需的解, 調整機制中的調整函式大體上可分成兩 種,一種是將不合理的染色體調整為合理的染 色體,另一種則是針對染色體中不易收斂的限 制條件,來做調整,使該染色體較符合其問題 需求。調整函式 Ad 的定義為 Ad(X)= X’, 其中 X 為經過評估機制後被認為有需調整的 染色體,X’為調整後的染色體,在調整機制中 不同的調整函式並沒有相關性的運算關係。以 下針對排課問題來說明調整機制。 在本排課的系統之中,除了不合理的染 色體子代(也就是不合理解)需要調整外,就 是本系統處理連堂的問題,因為基因演算法大 部分採用隨機的運算方式,較難將一門課的所 有時數排在一起。故在此將會使用調整機制的 功能,將其調整至理想的染色體。以下就說明 各調整函數的作法。 (1)教師的調整 針對教師的必要性條件有兩個,一個是教 師的鐘點數(NT1),一個是教師時間非重疊性 (NT2)。 對於教師開課的最低鐘點問題,首先藉由 評估機制去判斷該染色體是否存在有教師開 課的鐘點數小於到其最低鐘點數。調整函式的 作法為尋找該教師的可任教科目中那一個已 開課的任課教師開課的鐘點數最多,在不影響 其他衝突的情況之下,將其取代原開課教師, 否則往下找另一個課程。 對於教師時間非重疊性的問題,一樣是藉 由評估機制去判斷該染色體是否存在有時段 具有教師衝突的情況。調整函式的作法為針對 該染色體中的時段分別比較具有教師衝突的 課程,選擇教師衝突的堂數較多的課程,則另 外擇一可任教的教師,若其衝突課程的的衝突 堂數一樣多時,則選擇其可任教教師較多的課. 程,擇另一可任教之教師。 (2)教室的調整 針對教室的必要性限制條件有三個,一個 是教室大小(NR1),一個是教室時間非重疊性 (NR2),另一個則為教室設備必要性(NR3)。 對於教室大小的問題,找出該染色體中教 室大小無法容納該課程學生人數者,替換成其 他可容納該課程人數的教室。 對於教室時間非重疊性的問題,將要調整 的染色體,依次比較每個基因的每個時段,看 其教室是否相同,若在該基因的時段發現其教 室相同,則在其衝突的基因中,隨機取出一基 因調整該時段的教室,去選擇其另外符合需求 的教室。 對於教室設備必要性的問題,利用評估函 式可得知那些時段,教室設備無法滿足該課 程,找尋該時段可滿足此課程的教室來替換原 教室。 (3)共同課程的調整 其限制性條件是共同課程時間一致性 (NO1) ,作法是將要調整的染色體隨機依次取 出基因,且將該班的共同課程與其他班級比較 是否具有相同一門課,若有,則調整其他班共 同課程的時段與該班相同,而被調整的基因其 被置換掉的字元代碼,則填入原來的共同課程 字元代碼的位置。 (4)連堂問題的調整 針對連堂問題所針對的滿足性條件有兩 個:一個是教師連堂上課需求(ST3) ;另一個 是課程連堂需求(SO3)。採用的方式為假定 該課程為要求連堂方式,且包含了教室的要求 或課程的要求,此時視其課程是否上一堂或下 一堂是否為空堂,若是則計算將該課程位於其 他的時段移入該空堂位置的適應值,再去比較 原來的適應值何者較高,若為後者較高,則移 動該課程。 (五)、遷移機制(Migration operation) 多族群的基因演算法,在 80 年代中,即 有學者提出,認為多族群的基因演算法效果會 比單一族群的基因演算法效果較好,這好比近 親通婚所生出的下一代會生出畸形兒的機率 會遠大於非近親通婚所生出的下一代的道裡 一樣。在此針對融入了一個新的機制-遷移機 制( Migration operation) 。主要作用在接受其 他族群的較優良個體,融入本族群之中,在該 機制存有遷移函式(Migration function)有兩 種形式,一種是選擇其他族群的優良染色體進 入本族群中進行演化,另一種是將本族群之優 良染色體給其他族群所用,如下所示: (1)將本族群第 t 代較好的 num 個染色體送至 族 群 i 的 Queue 中 。 其 函 式 表 示 為 MFout(Generation(t),num ,Populationi) (2)將本族群接獲至其他族群的 Queue 中的染.

(6) 色體取出,和第 t 代的染色體一起加入演 化 並 清 除 該 Queue 。 其 函 式 表 示 為 MFin(Generation(t))。 在圖 2 的架構圖中,遷移機制與演化機制 是以雙箭頭表示,是因為演化機制所選出之優 良個體還是要給其他的族群所用。 (六)、演化機制(Evolution operation) 在演化機制中,主要是從父代及子代的 染色體中選擇出下一世代的染色體。在本排課 系統中,從父代及子代中選出染色體限制值不 超過我們的上限,且適應值較大者進入下一世 代演化,用此方式的留下個數和原父代相同的 且限制值符合我們的需求且適應值會越來越 好的染色體。 Procedure: Multiple_Thread Genetic Algorithm begin t←0; Initiation operation [ Generation(t) ]; Evaluation operation [ Generation(t) ]; while (not termination condition) begin Genetic operation [ Generation(t) ] result Offspring(t); Evaluation operation [ Offspring(t) ]; Adjustability operation [ Offspring(t) ]; Migration Operation[ random select other population ]result Foreign(t); Evolution operation [ Generation(t),Offspring(t),Foreign(t)] result Generation(t+1); Migration Operation[ Generation(t+1) ] t←t+1; end end 圖 1.改良後的基因演算法. 圖 2.改良後的基因演算法的架構圖. 四.基因代理人計算 為了將多族群的基因演算法充分應用在 分散式系統的環境之下,我們提出一種基因代 理人的方式,也就是將基因演算法分別給予不. 同的執行緒或是不同的機器上來執行,給個執 行緒或是每台機器中都至少有一個可獨立運 作的基因演算法在執行。在此,我們將針對遷 移機制來詳加討論如何處理族群間的合作。 遷移機制中的個體遷移,我們是主要是 以 QUEUE 的方式來處理,其處理的方式為在 每一個基因演算法中,設有一個 QUEUE,對 其外來族群的個體要進入本族群中,會先進入 QUEUE 中等待,當該族群到了需要外來個體 一起進入本族群演化之時,就從 QUEUE 中, 抓取其中的染色體,進入本族群的演化機制, 並清除 QUEUE 中的值。而針對本族群的個體 要遷移至其他的族群演化,則在一定代數後將 本身較優良的染色體,送至其他族群的 QUEUE 中等待。換句話說,對於本族群外的 基因運算,其運算結果都可幫助本身族群的演 化,故都可稱為本族群的基因代理者。對於這 種基因代理人的機制我們將其分成兩種,分別 為 Message Queue Process 及 Collection Process,以下分別討論: (1)Message Queue Process: 每一個基因運算代理者都和本身族群站 在平等的地位,本身族群必須將自己的優良染 色體提供給其他的代理者,同時也獲得其他基 因運算代理者的優良染色體,換句話說,不管 是本身或是其他代理者都存有一個 message queue 以處理外來的個體。此種方式,對於採 用單機上的多執行緒效率較為好,因為若是溝 通於網路之上,可能因為個體的遷移過於平凡 而使的整體的效能下降。 (2)Collection Process 對於整體系統而言,只有一個主要族群中 含有 Queue 來處理外來個體,其他的基因運算 代理者,只是一個幫助主要族群演化的助手, 換句話說,主要族群只單方面接收基因代理者 的優良個體,而不將本身的優良染色體遷移出 去,且除了主要族群之外,其他的基因代理者 並不互相溝通。此種方式,較適合於分散式環 境的多處理機,因為會比 message queue 的方 式所需的網路的負荷還要小很多。 為了將基因代理人計算的方式運作於分散 式系統上,我們在此先提出一個代理者系統 (RPOS),此系統的環境的主要目的是將主要 族群的基因代理人複製到其他主機之上,換句 話說,代理者系統的主要功能在於負責傳遞基 因運算物件(將主機中的排課代理者複製到其 他機器上),並啟動該物件。使得基因代理人 計算具有自動自發的功能。基因代理者系統本 身是以 CORBA 及 JAVA 來實作,其架構主要 分成三部分,架構圖如圖 3: (1) RPOS.Server.RPOServer:接收 Client 端的物件並複製於本機上,並依 Client 的需求,在本機上啟動該物件。.

(7) (2). (3). RPOS.Client.RPOClient:向 Server 端 傳送物件,並傳送啟動該物件的訊息 給 Server 端。 RPOS_CORBA:使 PROS 的 Client 端能使用 Server 端的物件,也就是藉 由 Server 的物件使得 Client 的訊息及 物件能傳送到 Server 端。. 5000 4500 4000 3500 3000 全部時間(秒) 2500 演算法時間(秒) 2000 1500 1000 500 0 單執行緒. 圖 3.RPOS 架構圖 有了 RPOS 的系統之後,對於我們的分散式下 的環境的基因運算的步驟如下: 步驟 1:將代理者複製到可運作的機器上。 步驟 2:主機及代理者分別啟動基因演算法(其 運算所需的資料透過 http 協定向主機 讀取 XML 檔案)。 步驟 3:每個代理者每代運算最佳的染色體傳 回主機的存放染色體的 Queue 中。 步驟 4:主機的基因演算法每經過一定代數, 比較本身及 Queue 的染色體,選擇較 優者染色體進入下一代演化,並清除 存放染色體的 Queue。 整個系統的架構圖如圖 4 所示:. 圖 4.系統架構圖. 五.效能評估 我們發展的排課系統中針對運用單執行 緒、多執行緒及多處理程序環境下的基因演算 法進行評估與分析。. 多執行緒. 分散式環境. 圖 5.單執行緒、多執行緒及多處理程序執行時 間比較 由圖 5 可明顯看出在染色體個數=40 時,分成 10 個族群的情況之下,每 5 代做一 次遷移時,當個體越大時,其時間差距越大。 其中單執行緒與多執行緒的時間差距大約 1∼ 1.5 倍,而多執行緒與分散式環境的時間差距 為 5∼6 倍。 接著我們針對執行效率及適應值的收斂 來兩方面來加以討論。 (一)執行效率 1.分散式環境的執行效率大於多執行緒。多執 行緒的執行效率大於單執行緒。 2.當個體越大時,其運算時間越長,但是其單 執行緒、多執行緒及分散式環境下的時間差 仍成一定的比例,不會因個體大小影響。 3.當每一世代的染色體個數越多,則運算時間 越長,但對單執行緒與多執行緒的時間比例 上仍是相同的差距。如在對多執行緒及分散 式環境下的運算結果,則會因為染色體的個 數增加,而有所成長。 4.對遷移越頻繁而言,當越頻繁,則所需的時 間越長,但是對多執行緒或是分散式的環境 而言,時間差距並沒有改變多少。 (二)適應值的評估 1.對單執行緒、多執行緒及分散式環境的適應 值影響最明顯的是染色體個數,當染色體個 數越多時,則其值越快收斂。 2.多執行緒及分散式環境下的適應值在剛開 始的時後,可能會比單執行緒較差,但是在 經過一段的演化之後,反而會比單執行緒得 出較好的結果。. 六.結論 本論文提出一種改良後的基因演算法運 算 機 制來 解決 限 制條 件非 常 複雜 的排 課 問 題,進而將此基因演算法運算機制導入可以做 並行處理的基因代理人計算的概念,並提出兩 種基因代理人運算模式:Message Queue、 Collection。 針對修正後的基因演算法及基因代理人 運算的系統,我們提出幾點結論:.

(8) 1.利用將基因演算法的模組化機制方便於討 論及修改原來基因演算法。 2.在評估機制中,利用兩種不同的評估方式 (適應值及限制值) ,可方便篩選出優良的染 色體。 3.利用調整機制的修正染色體將可使得染色 體演化的過程中不易出現不合理的解。 4.在多族群的環境下,利用遷移機制,方便於 族群之間的染色體交換。5.在分散式環境下 的多族群合作方式,採用了區域網路中 Agent 合作的方式求出解,在未來發展上, 可透過 SOAP 的方式,將合作群擴展至 Internet 上。 6.在本研究中的 Agent,在未來發展上,應可 擴展為自行整合資料的能力。 7.在本研究中的 Agent,在未來發展上,可擴 展為具有自行複製的能力,以減少通訊的時 間。 8.本研究的解決排課問題是建立在基因演算 法上,由於基因演算法本身並不具有回饋的 機制,故未來發展上,可以利用具有回饋機 制的螞蟻演算法,應可更快速解決排課問 題。. [9].. [10].. [11].. [12].. [13].. 七.參考文獻 [1]. 唐學明,"軍事學校電腦排課問題之探討", 復興崗學報 59 期,1996。 [2]. 劉明淵,"電腦在排課作業上的應用-問題 的性質與幾個系統的作法", 資訊與教育 雜誌 1993.4. [3]. 包冬意,賴永進,吳智輝, "大專院校排課 自動化之研究",大葉學報 2(1): p.135-144,1993。 [4]. 盧坤勇, "電腦化排課系統指派法則探討", 聯合學報 12 期. p107- 116 。民國 83.11。 [5]. 邱孟佑,廖鴻圖,"植基於 Intranet 上之電腦 輔助排課系統",德明學報 12 期,頁 1-13, , 民 86.3。 [6]. N.Chaiyaratans and A.M.S.Zalzala, "Recent Developments in Evolutionary and Genetic Algorithm:Theory and Applications", Genetic Algorithms in Engineering Systems: Innovations and Applications,2-4 September 1997, Conference Publication No.446, @IEEE,1997 [7]. Hayatt Regency Bethesda, "Cooperative Model for Genetic Operators to Improve GAs", IEEE International Conference on Intelligence, Information and Systems Nov. 1-3, 1999. [8]. T.Mastsumura, M.Nakamura, J.Okech ,"Effects of Chromosome Migration on a Parallel and Distributes Genetic Algorithm", Proceedings of the. [14].. [15].. [16].. [17].. [18].. [19].. [20].. 1997 International symposium on Parallel Architectures, Algorithm, and Network, 1997. (I-SPAN '97). Kazunori Kojima, Wataru Kawamata, Hiroshi Matsuo and Masaaki Ishigame , "Network Based Genetic Algorithm", Proceedings of the Seventh International Conference on Parallel and Distributed Systems: Workshops (ICPADS'00 Workshops) Copyright (c) 2000 Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Nicolas Barnier, Pascal Brisset, "Optimization by hybridization of a genetic algorithm with constraint satisfaction techniques", 1998 IEEE http://iciis99.cs.unr.edu/schedule.html. Caroline C. Hayes, ”Agents in a Nutshell-A Very Brief Introduction”, IEEE Transactions on Knowledge and Data Engineering, VOL 11, NO.1,January/FEBRARY 1999. M.Gen , R.Cheng,"Genetic Algorithm & Engineer Design",Willey-Interscience Publication,pp.2-4,1997 N.L.Lawrie, "An Integer Linear Programming Model of a School Timetabling Problem", The Computer Journal, Vol.12, pp307-316. 1969. D.C.Wood, "A Technique for Colouring a Graph Applicable to Large Scale Timetabling Problem", The Computer Journal, Vol.12, p317-319. 1969. S.Even, A.Itai, A.Shamir, "On the Complesity of Timetable and Multicommodity Flow Problems", 16th IEEE Annual Symposium on Foundatiions of Computer Science, pp.184-193, 1975. Selim,SM,"An algorithm for constructing a University faculty timetable". Comput. Edue., 6. pp.323-332. 1982. Selim,SM, "An algorithm for producing course and lecture timetable". Comput. Edue., 6. pp.323-332. 1983. Dowsland,W.B. and Lim,s"Computer aided school timetabling - part1: the history of computerised timetabling", Compute Education,pp22-23. 1982,Nov. Dowsland,W.B. and Lim,s,"Computer aided school timetabling - part2: the micro-computer for school timetabling", Compute Education,pp2-4. 1982,Nov. Loo,E.H. Goh,T,N. and Ong, H.L., " A heuristic approach to scheduling university timetables.", Comput. Edue. 10(3),pp.397-388.1986..

(9)

參考文獻

相關文件

有關 PHP 的敘述何者有誤?①可在 Apache、MS IIS 等 Web 伺服 器執行的 Script②只能在 Linux 或 Unix 作業系統上執行,無法於 Windows 或 Mac

首先,在套裝程式軟體 Matlab 中執行 k-means 分群法,將前置樣本中的 學測成績分成三群或四群。特別注意的是,在執行 k-means

大略來說 , 以上兩者決定 dynamic programming a lgorithm 的執行時間. ( 之前說的 Subproblem graphs

大略來說 , 以上兩者決定 dynamic programming a lgorithm 的執行時間.. ( 之前說的 Subproblem graphs

• 我們通常用 nD/mD 來表示一個狀態 O(N^n) ,轉移 O(N^m) 的 dp 演算法. • 在做每題

每個 zone 交由一部 name server負責的作 法會有一個問題,萬一這個 name server 當 掉,可能造成 Internet上其它機器無法取得屬 於這個 zone 的資料(就是 domain name

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出

• 在線 (online):程式/演算法 必須對前一個詢問或操作做出