臧賀
摘?要:在課表編排過(guò)程中,經(jīng)常出現(xiàn)課程未安排在上午空閑時(shí)間,卻安排在下午甚至晚上的情況,產(chǎn)生此情況原因很多,本文從課表編排最基礎(chǔ)的合班工作出發(fā),依托培養(yǎng)方案,根據(jù)各專(zhuān)業(yè)課程相關(guān)性,將不同專(zhuān)業(yè)進(jìn)行聚類(lèi),生成“專(zhuān)業(yè)聚類(lèi)表”,作為開(kāi)課單位合班依據(jù),從根本上統(tǒng)一合班規(guī)則,進(jìn)而解決課表編排不合理的情況。
關(guān)鍵詞:課表編排?課程相關(guān)性?余弦定理?聚類(lèi)算法
在課表編排過(guò)程中,經(jīng)常出現(xiàn)課程未安排在上午空閑時(shí)間,卻安排在下午甚至晚上的情況,原因有三種,一是教師有其他授課內(nèi)容,二是無(wú)空閑教室可用,三是教學(xué)班合并不統(tǒng)一,學(xué)生的空閑時(shí)間不一致。前兩種情況受客觀條件限制,第三種情況可統(tǒng)一規(guī)則,進(jìn)而規(guī)范合班。下面解釋如何利用余弦定理和K_means聚類(lèi)算法生成“專(zhuān)業(yè)聚類(lèi)表”。
一、利用余弦定理計(jì)算余弦值
向量可表示為帶箭頭的線段,如果兩個(gè)向量夾角接近零,那么這兩個(gè)向量就相近。而要確定兩個(gè)向量方向是否一致,就要利用余弦定理計(jì)算向量的夾角。
比如,本科一年級(jí)共開(kāi)設(shè)10門(mén)公共課,課程包括高等數(shù)學(xué)、英語(yǔ)、大學(xué)計(jì)算機(jī)、中國(guó)近代史綱要、法律基礎(chǔ)、畫(huà)法幾何及機(jī)械制圖、體育課等。按上述順序?qū)φn程進(jìn)行編號(hào),每個(gè)編號(hào)對(duì)應(yīng)10維向量的一個(gè)位置。甲專(zhuān)業(yè)學(xué)10門(mén)課,甲的向量表示為a=(1,1,1,1,1,1,1,1,1,1),括號(hào)里的1表示學(xué),0表示不學(xué)。乙專(zhuān)業(yè)不學(xué)高等數(shù)學(xué)和英語(yǔ),那么乙專(zhuān)業(yè)的向量為b=(0,0,1,1,1,1,1,1,1,1)。上述方法是將各專(zhuān)業(yè)向量化。
公式1:
當(dāng)兩個(gè)專(zhuān)業(yè)向量夾角的余弦等于1時(shí),這兩個(gè)專(zhuān)業(yè)完全重復(fù);當(dāng)夾角的余弦接近于1時(shí),兩個(gè)專(zhuān)業(yè)課程相似;夾角的余弦值越小,兩專(zhuān)業(yè)課程越不相關(guān)。
二、利用K_means聚類(lèi)算法生成“專(zhuān)業(yè)聚類(lèi)表”
K_means聚類(lèi)算法是很典型的基于距離的聚類(lèi)算法,即兩個(gè)對(duì)象的距離越近,其相似性就越大,就可劃分到一類(lèi)。思路如下:
(1)利用余弦定理計(jì)算任意兩專(zhuān)業(yè)的余弦值,生成相關(guān)系數(shù)表。
(2)隨機(jī)選取兩個(gè)專(zhuān)業(yè)比較相關(guān)系數(shù),如果系數(shù)大于0.8(假定),即代表兩專(zhuān)業(yè)相關(guān)性較大,可視為一類(lèi),標(biāo)記為A組。如果小于0.8,則標(biāo)記為B組。
(3)選取第三個(gè)專(zhuān)業(yè),與A組進(jìn)行比較,計(jì)算第三個(gè)專(zhuān)業(yè)與A組每個(gè)專(zhuān)業(yè)系數(shù)和的平均值,如果平均值大于0.8,則標(biāo)記為A組,否則與B組進(jìn)行比較,如果平均值大于0.8則標(biāo)記為B組,否則標(biāo)記為C組,依次類(lèi)推。
(4)遍歷完所有專(zhuān)業(yè)之后,即生成“專(zhuān)業(yè)聚類(lèi)表”。
三、實(shí)例說(shuō)明
以2019級(jí)新生第一學(xué)期課程舉例,該年級(jí)共51個(gè)專(zhuān)業(yè),開(kāi)設(shè)91門(mén)課程。下面將通過(guò)5步制作“專(zhuān)業(yè)聚類(lèi)表”。
(1)篩選課程。從91門(mén)課中,篩選出學(xué)生學(xué)院數(shù)量大于2的課程,共計(jì)16門(mén)。將16門(mén)課編號(hào),形成16維課程向量。
(2)將專(zhuān)業(yè)轉(zhuǎn)為課程向量。將專(zhuān)業(yè)向量化,建立專(zhuān)業(yè)向量表:
(3)計(jì)算專(zhuān)業(yè)相關(guān)系數(shù)。利用公式1計(jì)算任意兩專(zhuān)業(yè)的余弦值,生成專(zhuān)業(yè)相關(guān)系數(shù)表。
(4)利用K_means聚類(lèi)算法進(jìn)行專(zhuān)業(yè)聚類(lèi)。暫將均值系數(shù)設(shè)定為0.8。專(zhuān)業(yè)聚類(lèi)后,51個(gè)專(zhuān)業(yè)分成了9組,其中,第1、2、3、4組分別包含5個(gè)、12個(gè)、12個(gè)、16個(gè)專(zhuān)業(yè),第7組包含2個(gè)專(zhuān)業(yè),其余4組各包含1個(gè)專(zhuān)業(yè)。由此可見(jiàn),前4組分組效果好,包含45個(gè)專(zhuān)業(yè),而5-9組包含6個(gè)專(zhuān)業(yè),不夠理想。
(5)微調(diào)“專(zhuān)業(yè)聚類(lèi)表”。依靠K_means聚類(lèi)方法尚不能提供理想結(jié)果。作者根據(jù)經(jīng)驗(yàn),對(duì)聚類(lèi)結(jié)果進(jìn)行了優(yōu)化,將5-9組合并成第5組,生成了較為合理的“專(zhuān)業(yè)聚類(lèi)表”。
以上5步操作,已將專(zhuān)業(yè)進(jìn)行聚類(lèi),各開(kāi)課單位須依據(jù)“專(zhuān)業(yè)聚類(lèi)表”合并教學(xué)班,達(dá)到學(xué)校統(tǒng)一要求。
結(jié)語(yǔ)
高校課表編排是一項(xiàng)系統(tǒng)工程,需要按照統(tǒng)一的規(guī)則,充分、合理利用資源。因篇幅限制,本文僅提供了一種思路,希望能為負(fù)責(zé)課表編排工作的老師提供一些參考。
參考文獻(xiàn)
[1]張建輝.K_means聚類(lèi)算法研究及應(yīng)用[D].武漢:武漢理工大學(xué),2007.
[2]吳軍.數(shù)學(xué)之美(第二版)[M].北京:人民郵電出版社,2014.
[3]王世純.K_means聚類(lèi)算法在高校學(xué)生成績(jī)分析中的應(yīng)用研究[J].湖北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2019(3).
[4]黃韜.基于k_means聚類(lèi)算法的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展2011,21(7)
[5]盧雅晴,李昆鵬,成幸幸.基于選課滿意度的排課模型及算法[J].系統(tǒng)工程,2016,9,(34):9.