• 沒有找到結果。

第四章 使用範例

4.2 CCT 範例

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

52

圖 4.4:個別教室排課結果顯示

4.2 CCT 範例

系統結果的測試,在 Curriculum-Based Course TimeTabling (CCT) [28]

的競賽網站中也提供了相當多來自各地的實際範例。雖然該競賽網站的目的不在 於教師個人的喜好,但我們仍採用其中的範例 EA08 課程問題描述[30] ( 123 堂 課,14 間教室,一週 5 天,一天 10 時段) 來進行系統測試,得到的結果如圖 4.5 所示。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

53

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

54

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

55

圖 4.5:EA08 排課結果範例

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

56

第五章 結論與研究建議

5.1 結論

在市面上這麼多的校園排課協助程式中,我們希望提供一個不同,並且以大 學教師需要作為排課出發點的排課系統。我們了解到,在條件不會過度限制的情 況下,輸入的教師、課程或較室的資料越多,排課結果的可能數量越可觀。因此,

我們將教師的排課需求作為我們排課結果篩選的最主要參考依據,希望能替各系 所在每學期的開課時提供一個排課結果的參考。

我們的系統主要透過幾個方式進行排課結果的篩選。依序可以分為以下幾個 步驟:

1. 收集每學期課程、教室、以及教師喜好厭惡的相關資料。

2. 進行排課的初步資料輸入,其中包含兩種方法:DSL 輸入,或是 GUI 方式輸 入。在 DSL 以及 GUI 的模式中,使用者都可以隨時切換資料的設定,並且儲 存成檔案。在本系統 GUI 的模式中,資料的儲存會產生兩種檔案類型,XML 黨以及 YYC 檔。我們另外搭配 BaseX,可以使的每學期的排課資料提供外界 做為參考。

3. 在 DSL 以及 GUI 模式下的資料設定完成後,JaCoP 將會開始將資料進行處理,

並且找出能符合所有限制條件的可能解。由於可能解的數量眾多,可能超出

度,未來研究方向也可考慮將第一次的課表編排結果編寫成 Incremental mode,

讓使用者直接在系統上再做第二次課程編排的前置設定,增加系統的服務效能。

在處理 TimeTabling 問題時,本系統的經驗也可應用於其他類似系統的快速 開發,例如: 中小學排課,工廠或醫院排班,考試的時間與教室安排,具限制條 件的餐飲調配。

[1] School 課表. (2011) From http://en.wikipedia.org/wiki/School_課表.

[2] Groovy Builders. Retrieved March, (2012). From http://groovy.codehaus.org/Builders.

[3] JaCop. (2003) From http://bach.istc.kobe-u.ac.jp/JaCop/.

[4] @ONE 爸爸的隨想手札. (2007) From

http://aone.blog.ithome.com.tw/post/284/9782.

[5] Venkat Subramaniam. (2008) Programming Groovy: Dynamic Productivity for the Java Developer. The Pragmatic Bookshelf.

[6] Fergal Dearle. (2010) Groovy for Domain-Specific Languages. Packt publishing.

[7] Dierk Konig. (2007) Groovy in Action. Manning Publications Co.

[8] Constraint satisfaction problem. Retrieved (2012) From

http://en.wikipedia.org/wiki/Constraint_satisfaction_problem

[9] Schaerf A (1995). “A survey of automated timetabling”. Artificial Intelligence Review, vol.13, pp.87-127.

[10] Carter M. W., Laprorte G (1998). “Recent Developments in Practical Course timetabling”. In[11] pp.3-19.

[11] Burke E. K., Carter M. (Eds.) (2000). The Practice and Theory of Automated timetabling

[12] Carter M. W., Laprorte G (1998). “Recent Developments in Practical Course Timetabling”. In[11] pp.3-19..

[13] Even S., Itai, A. and Shamir, A. (1975). “On the Complesity of 課表 and

Multi-commodity Flow Problem”, 16th IEEE Annual Symposium on foundations of Computer Science, pp. 184-193

[14] 謝昆霖,沈進成,周君妍,鄭丞君(2004)。基因演算法應用於顧客旅遊行程 路徑最適化模式之研究。旅遊管理研究,第四卷,第一期,頁 53-66。

[15] 陳奕憲(2011)。基因演算法在國民中學排課問題之最佳化研究。南華大學資 訊管理學系,碩士論文。

[16] A. Schaerf (1996). Tabu search techniques for large high-school timetabling problems. In Proc. of AAAI-96, pp. 363–368. AAAI Press/MIT Press

[17] T. Duong (2004). Combining constraint programming and simulated annealing on university exam timetabling, Research Informatics Vietnam and Francophone, pp. 205–210.

[18] H. Asmuni, E.K. Burke and J. Garibaldi (2005). Fuzzy multiple ordering criteriafor examination timetabling

[19] Borning A., Duisberg R., Freeman Benson B., Kramer A., Woolf M.. (1987).

Constraint Hierarchies. Proceedings of the 1987 ACM Conference on Object Oriented Programming Systems, Languagesand Applications. Pp. 48-60 [20] Freuder E. C., Wallace R. J.. (1992). Partial Constraint Satisfaction. Artifical

Intelligence

[21] Bluenight 專欄. Retrieved July (2012). From

http://blog.csdn.net/chl033/article/details/4020334.

[22] Groovy Home Page. Retrieved April (2014). From http://groovy.codehaus.org/

[23] Domain Specific Language. Retrieved April (2014). From

http://en.wikipedia.org/wiki/Domain-specific_language

[24] International Timetabling Competition Retrieved April (2014). From

http://www.cs.qub.ac.uk/itc2007/

[25] JavaFX: Getting Started with JavaFX Retrieved April (2014). From

http://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm#JFX ST784

[26] MetaObject Protocol Retrieved April (2014). From

http://en.wikipedia.org/wiki/Metaobject

[27] MeteProgramming Retrieved April (2014). From

http://en.wikipedia.org/wiki/Metaprogramming

[28] Curriculum-Based Course TimeTabling Retrieved April (2014). From

http://tabu.diegm.uniud.it/ctt/index.php

[29] Constraint Programming Retrieved May (2014). From

http://en.wikipedia.org/wiki/Constraint_programming

[30] CTT EA08 Example Retrieved April (2014). From

http://tabu.diegm.uniud.it/ctt/index.php?page=stats&name=EA08

[31] 王子夏(2007)。應用基因演算法於大專院校教師派課問題之研究。崑山科技 大學資訊管理系,2007 年資訊科技國際研討會論文集。

[32] MBAlib, Retrieved (2012) From

http://wiki.mbalib.com/zh-tw/%E6%A8%A1%E7%B3%8A%E6%8E%A7%E5%88%B 6

[33] MBAlib, Retrieved (2012) From

http://wiki.mbalib.com/zh-tw/%E7%A6%81%E5%BF%8C%E6%90%9C%E7%B4%A 2%E7%AE%97%E6%B3%95

[34] 模擬退火法, Retrieved (2012) From

http://jjcommons.csie.isu.edu.tw/research/download/SA.pdf

[35] Guide to Constraint Programming. (1998) From

http://ktiml.mff.cuni.cz/~bartak/constraints/pcsp.html.

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

61

[36] Metropolis, N., Rosenbluth, A., Rosenbluth, M., Teller, A., and Teller, E.,

“Equation of state calculations for fast computing machines,” Journal of Chemical Physics, Vol. 21, pp. 1087-1092, 1953.

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

62

附錄

JaCoP 描述附錄 1:

1. 同教師的不同課程不得時段安排不得重疊

2. 不同教師的課程不得安排於同一時間的同一教室 3. 同一課程的不同節次於同一天內連續上課

JaCoP 描述附錄 2:

1. 同一年級的必修課不得安排於同一時段

2. 同一年級的必修與選修課不得安排於同一時段

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

63

JaCoP 描述附錄 3:

單一課程的不安排上課時段

JaCoP 描述附錄 4:

教師的不安排上課時段

JaCoP 描述附錄 5:

所有課程的日不安排上課區段

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

64

JaCoP 描述附錄 6:

1. 課程的日指定上課時段 2. 課程的週指定上課日

3. 所有課程的一週固定不安排上課時段

JaCoP 描述附錄 7:

教室的不開放上課時段

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

65

JaCoP 描述附錄 8:

教室的可容納人數須滿足課程的上課人數

JaCoP 描述附錄 9:

教室的資源是否支援課程需要

JaCoP 描述附錄 10:

課程的不安排教室

JaCoP 描述附錄 11:

課程的指定上課教室

相關文件