我做的是中小學排課系統,現正研究演算法...我用的是區間法,即如語文一周8節課,則123節課從周一周二可排中隨機選,456節課從周三周四可排課中隨機選,78節課從周五可排課中選.現面臨的問題是:如果語文要求一周有兩次連排(一周8節,上5天),那如何用演算法實作呢??
除了兩節連排,另外的還需要必須不連排,而且得各天分布均勻.望高手給賜教,QQ:29013651,小女子先謝過大家.
uj5u.com熱心網友回復:
排課是比較高深的演算法沒有研究過,不過我一排課的示例,樓主需要參考可以發至郵箱下面是幫助檔案的部分內容
排課思路
課程安排:
在設定好學校基本資訊、排課的各項限制條件,并排好教師授課表后,可按手工或自動排課進行課程表安排。
課程優先級:
根據具體情況,我們所學課程有專業課和基礎課之分,基礎課先排,而后是專業課。
手動排課:
由教師一門一門課程進行設定,由系統提示是否教師沖突或課程是否多排或少排。對于課程安排極其復雜的學校且用自動排課無法排出滿意課程表的學校,可選擇此種方式排課,至少教師排課時的課程數是否正確和教師是否沖突的問題。
自動排課:
課程表采用"并行回溯"的演算法,按年級班級順序一節一節排課,若排到某位置有沖突,系統回溯上一斷點位置,重新安排,直到課程表全部排出為止。排課時充分考慮到課程的均勻性(即課程安排盡可能均勻,如語文一周10節,若一周上5天的話盡可能每天安排兩節課)和教師授課的均勻性(如張三教師一周5天共上15節,則盡可能安排每天3節課,且3節課不連續安排在如123或234接等)。課表安排完全自動化,并采用隨機安排方式,具有排課速度快、準確率高的特點。對排出的課程表不滿意可進行調課或直接在課程報表中進行更改。
uj5u.com熱心網友回復:
排課方法與技巧排課系統采用“并行回溯”的演算法,只需設定好學校基本資訊和排課的各項限制條件后,其余事情則由計算機來完成。課表安排完全自動化(也可手工安排),排完后可進行調整,采用隨機安排方式,具有排課速度快、準確率高、效果好,并能自動計算教師教學作業量,多種格式的班級、教師、全校課程表的輸出。主要功能包括:課表管理(新建、打開、洗掉課表)、基本設定(年級、班級、教師、課程)、教學設定(上課時間、課時、教師任課)、排課設定(班級課表、排課條件、科目優先、排課選項)、教師安排、課程安排(自動、手動)、課表調整(單向、雙向、拖動)、課程報表(班級課表、教師課表、教師任課表等)。
uj5u.com熱心網友回復:
QQ:29013651,郵箱是[email protected],或[email protected]對回貼者newease表示衷心的感謝.
uj5u.com熱心網友回復:
不過1樓的是不是沒看懂呢,我的排課堂教學針對中小學的,大專院校的因為涉及到公共教室的問題,所以不適合我的演算法用.uj5u.com熱心網友回復:
lz要求太了因為許多大學都有教務系統,排課系統是其中的1部分,所以可以現成的代碼(由于排課演算法十分復雜,比如英文不排下午,老師學生不同一上午(或下午)跨校區上課...一般可以排出40%就不錯了)
lz自己簡化1下,不能要求人都做好把?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/96416.html
標籤:腳本語言
