【正文】
har(10)表44語音課體育課上機(jī)課位置表:Y_T_STable 44 the place table:Y_T_S編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1類別categoryChar(1)區(qū)別三類教室2教室名roomnameChar(15)3教室編號roomIDsmallint4班級classChar(15)加上班級就可以確定班級上課的位置范圍5學(xué)院academyChar(15)表 45 理論課教室表:LLKAddressTable 45 the classroom table of theory course:LLKAddress編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1學(xué)院AcademyChar(20)2班級classChar(15)3教學(xué)樓TbuildingChar(10)表46 學(xué)院表:AcademyTable 46 academy table:Academy編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1學(xué)院academyChar(20)2學(xué)院編號academyIDChar(10)主鍵表47 專業(yè)實驗課位置表:ZYSYRoomTable 47 the lab classroom place:ZYSYRoom編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1學(xué)院academyChar(20)2教室名roomnameChar(15)3教室編號roomIDsmallint4班級classChar(15)5容納人數(shù)containSumsmallint表48 位置表:AddressTable 48 place table:Address編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1學(xué)院academyChar(15)唯一2教學(xué)樓TbuidingChar(10)3班級ClassChar(15)表49 教師_課程表T_CTable 47 teacher and course table編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1教師名Tnamechar(10)2教師編號TnoSmallint主屬性3課程courseChar(15)4課程編號courseNoSmallint主屬性表410 教師表:TeacherTable 410 teacher table:Teacher編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1教師名Tnamechar(10)2教師編號TnoSmallint唯一3學(xué)院academychar(15)4年齡TageSmallint正整數(shù)5職稱Titlechar(10)表 411開課任務(wù)表:ClassTaskTable 411 the plan table:ClassTask編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1開課學(xué)期semesterChar(15)主屬性2學(xué)院academyChar(15)3班級classChar(15)主屬性4教師名Tnamechar(10)5教師編號TnoSmallint主屬性6課程編號courseNoSmallint7人數(shù)Pnosmallint8課程coursesmallint9課程屬性courseAtrrchar(15)10周數(shù)weekSumSmallint11上課次數(shù)timesSmallint12是否固定IsSettledChar(1)為0則不固定13固定時間位置TimePitchsmallint表412 課表:CourseTableTable 411 course table:CourseTable編號數(shù)據(jù)項數(shù)據(jù)項別名數(shù)據(jù)類型數(shù)據(jù)項含義1開課學(xué)期semesterChar(15)主屬性2學(xué)院academyChar(15)3班級classChar(15)主屬性4教師名Tnamechar(10)5教師編號TnoSmallint(2)主屬性6課程courseChar(15)7地點(diǎn)addressChar(20)主屬性8周數(shù)weekSumSmallint(2)9時間timeChar(15)主屬性 數(shù)據(jù)庫的物理設(shè)計數(shù)據(jù)庫的物理設(shè)計這一環(huán)節(jié)也是很重要的,它要綜合考慮存取時間、存儲空間利用率和維護(hù)代價三方面的因素。對于排課問題要進(jìn)行的分析主要有:教學(xué)計劃、各學(xué)院教學(xué)任務(wù)、教室基礎(chǔ)數(shù)據(jù)、時間模式、開課任務(wù)、及各種課表等數(shù)據(jù)。本文的數(shù)據(jù)庫設(shè)計及其實現(xiàn)如下: 概念模型設(shè)計 因為概念結(jié)構(gòu)是面向現(xiàn)實世界的,用戶容易理解,能夠參加設(shè)計討論,提出意見,在將分析結(jié)果抽象為邏輯數(shù)據(jù)庫時可以降低設(shè)計的難度。關(guān)聯(lián)容器的使用方法如圖6所示:圖6容器結(jié)構(gòu)圖完成種群初始化后,個體的數(shù)據(jù)結(jié)構(gòu)如下圖示:圖7 個體結(jié)構(gòu)圖4另外,在初始化種群時,基于容器的容器使其更加簡捷。按種群規(guī)模的大小ZQS,產(chǎn)生一定數(shù)量的個體,每個個體都存放到一個按序編號的表中,由這些個體組成初始種群。如此循環(huán)bjs次,產(chǎn)生了與班級數(shù)目對等的染色體數(shù)目。如產(chǎn)生的隨機(jī)數(shù)對應(yīng)的時間片中己有數(shù)據(jù),則重新產(chǎn)生,直到將所有教師編碼無重復(fù)地填入該行中。 對每一個課程表可以形成一個二維數(shù)組kcb (25,bjs),每一列就表示一個班級的課表。其中ZQS為種群大小。為了更好地闡述排課遺傳算法,定義排課遺傳算法名詞:a.“基因”——混合型的教師編碼,即TIT25時間片中的值;b.“染色體”——班級名稱與TlT25中的“基因”組成的串;c.“個體”——由bjs(班級數(shù))個染色體組合而成的二維數(shù)據(jù)表,即對應(yīng)于一張課表。在大多數(shù),每周上6學(xué)時的課程不會太多,大多數(shù)時4學(xué)時和2學(xué)時; 通過以上把課程與教師等同的處理后,原課表的五要素(班級、教室、課程、時間、教師)轉(zhuǎn)化為四要素(班級、課程、時間)和班級。對于每一門課程既可能只上一次(規(guī)定2學(xué)時課占用一個時間片),也可能上多次,如4學(xué)時、6學(xué)時等。區(qū)分:計算機(jī)專業(yè)的實驗課是和非計算機(jī)專業(yè)的上節(jié)實驗課不同的,他們有自己的實驗室,屬于專業(yè)實驗課。 為了解決“特定資源”沖突問題,可在教師編碼中加上2B表示該教師所教授的課程的性質(zhì)。 我們給了15bit去表示教師,15bit能表示215個數(shù),足矣滿足任何一所高校的教師編號,所以,在數(shù)據(jù)庫里,教師表里教師編號的數(shù)據(jù)項要為短整型。下面我們給了很清晰的解釋:圖4 編碼結(jié)構(gòu)圖下面我們對每個字段給予解釋: 有些教師的課程是固定在某個時間段的,所以在排課過程中,判斷第一位就可以得知可否移動此基因片。構(gòu)造合適的基因結(jié)構(gòu)是遺傳算法能否順利實現(xiàn)的關(guān)鍵,設(shè)定混合式的教師編碼作為本系統(tǒng)遺傳算法的“基因”。(5)班級+課程+教師+時間的記錄集的產(chǎn)生。(3)遺傳操作:包括選擇算子、交叉算子和變異算子,產(chǎn)生子代,逐漸優(yōu)化。(1)沖突檢測和消除:初始化種群后,先對其進(jìn)行各類沖突的檢測,如存在沖突則消除它,而且在每次產(chǎn)生下一代后都要進(jìn)行沖突檢測。這塊的設(shè)計在整個系統(tǒng)是最重要的,效率的高低,課表的優(yōu)劣都由本模塊確定。 可以把排課過程常見的約束條件分類羅列如下表22所示,這些約束條件也比較符合排課過程的實際情況。其中基本硬約束是指教師、學(xué)生和教室在時空概念上發(fā)生了不可能發(fā)生的事情,既是時間,空間,人之間的矛盾,它是排課過程中最基本的約束條件,也是眾多排課模型中都要涉及的約束條件;硬約束是根據(jù)學(xué)校的實際情況,排課時必須遵循的原則,否則將會導(dǎo)致排課結(jié)果無意義,所以要因地制宜;軟約束是指排課過程中滿足更佳但不滿足又無妨的約束條件,這些條件的目的就是使課表更加人性化,每個排課都是要突出解決軟約束這個問題的,違背這些約束就與實際情況相悖。而對教師、教室、學(xué)生及時間等幾部分資源進(jìn)行最優(yōu)化組合配置,才能保證充分發(fā)揮各資源的優(yōu)勢和提高教學(xué)質(zhì)量。避免沖突也是排課問題中要解決的核心問題。此圖描述了功能模塊圖,如圖2示:圖2 功能模塊圖Chart 2 the function model chart 排課是將教師與學(xué)生在時間和空間上根據(jù)不同的約束條件進(jìn)行排列組合,在此同時也要安排課程,以使教學(xué)正常進(jìn)行。它的實現(xiàn)運(yùn)用了遺傳算法中的選擇、交叉、變異等操作,對算法得出的結(jié)果中最好的一個個體保留,就是要求的結(jié)果,雖然不是最完美符合的,但是它的適應(yīng)度值已經(jīng)完全可以符合學(xué)校教學(xué)所要求的了。還有對已排好的課程做一些調(diào)整操作。 這個模塊很好的解決了每個學(xué)院不同的特殊情況,以教師為重點(diǎn),學(xué)院可以隨意調(diào)整。根據(jù)業(yè)務(wù)分析和數(shù)據(jù)分析,可得出排課系統(tǒng)主要完成以下幾個功能:這一模塊首先是每個學(xué)院從教學(xué)計劃中安排自己學(xué)院的開課任務(wù)書,具體就是對本學(xué)院課程和教師的安排。每個教室在同一時間內(nèi)只能接納一門課程的授課,并且教室容量應(yīng)該大于等于上課的人數(shù)。本文在地理位置上是學(xué)校統(tǒng)一規(guī)劃,進(jìn)而綜合解決位置問題,學(xué)校要規(guī)劃好各個學(xué)院的學(xué)生在哪些教學(xué)樓里就近上課,而這樣做的目的就是為了減少學(xué)生和教師的走動范圍。(5)“特殊課”問題:像體育課,要跟硬件設(shè)施有關(guān),故要妥善處理。(3)“多學(xué)時”問題:對于有些課程既可能只上一次,既2學(xué)時課程,而有些課程可能上多次,如4學(xué)時、6學(xué)時等,多學(xué)時的課程如何處理也是在編排課程表時必須解決的問題。在處理課程與教師時要注意以下幾個問題:(1)“授一班多門課”問題:同一教師可以只上一門課,也可上多門課,如果同一教師在同一個班級教授多門課程,那么把課程和教師作同一變量考慮就會引起課程的混亂,此問題須分情況解決,我們將在系統(tǒng)設(shè)計中,學(xué)院安排開課任務(wù)時解決此問題。如普通教室、語音室、操場、實驗室或機(jī)房等等。每個課程都要有授課教師。我們在此系統(tǒng)的排課都是按一個大節(jié)開設(shè)的,符合按25個時間片劃分的設(shè)計,但確有少量的課程的周學(xué)時數(shù)為單數(shù),如“3學(xué)時”或“5學(xué)時”,在此仍按“4學(xué)時”或“6學(xué)時”進(jìn)行編排,雖然這會浪費(fèi)一小節(jié)課程。 表21周時間片分布表Table21 the management table of the week time slip 周一周二周三周四周五T1T6T11T16T21T2T7T12T17T22T3T8T13T18T23T4T9T14T19T24T5T10T15T20T25根據(jù)時間片編號,可進(jìn)一步轉(zhuǎn)化為125的表格。用Tl, T2,......,T25表示,其中TI, T2, T