孫瑋
摘 要:針對(duì)高校新生分班分寢室工作的關(guān)聯(lián)性和重要性、分寢室問(wèn)題算法較少等問(wèn)題,對(duì)高校分班分寢室問(wèn)題進(jìn)行了數(shù)學(xué)建模,設(shè)計(jì)了基于矩陣的算法實(shí)現(xiàn),提出了分班分寢室一體化系統(tǒng)。系統(tǒng)以新生招生數(shù)據(jù)和班級(jí)數(shù)作為輸入,自動(dòng)完成學(xué)生班級(jí)、寢室床位及學(xué)號(hào)的編排。本系統(tǒng)已正式上線運(yùn)行多年,具有操作簡(jiǎn)單、效率高等優(yōu)點(diǎn)。
關(guān)鍵詞:分班;分寢室;建模;算法
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:Considering the correlation and importance of assigning classes and dormitories,as well as the lack of algorithms,we proposed an integrated system of assigning classes and dormitories for colleague based on matrix algorithm modeling.By inputting the number of class and new students,the system can automatically complete the assignment of class,dormitory and student number.This system has been officially in use for a few years,and owns the advantages like simple operation and high efficiency.
Keywords:assigning classes;assigning dormitories;modeling;algorithm
1 引言(Introduction)
新生分班分寢室工作是高校展開迎新工作遇到的第一個(gè)問(wèn)題,如何充分利用有限的資源,減少學(xué)生報(bào)到環(huán)節(jié),加快報(bào)到速度,盡快安排學(xué)生入住宿舍成為了高校迎新工作的關(guān)鍵所在[1]。如果采用手工分班的方法,一方面,由于數(shù)據(jù)量大,工作人員將花費(fèi)大量時(shí)間在這一環(huán)節(jié)上,另一方面,數(shù)據(jù)的準(zhǔn)確性、科學(xué)性也得不到保證,不利于各部門之間數(shù)據(jù)的共享性[2]。因此,合理利用計(jì)算機(jī)開發(fā)分班分寢室系統(tǒng),實(shí)現(xiàn)自動(dòng)化成為必然選擇[3]。
班級(jí)和寢室的風(fēng)氣和氛圍,直接或間接影響學(xué)生人生觀、價(jià)值觀的形成,影響學(xué)生學(xué)習(xí)、生活習(xí)慣的養(yǎng)成,影響學(xué)生與人和睦相處能力的培養(yǎng),因此,科學(xué)、合理、人性化地對(duì)學(xué)生進(jìn)行班級(jí)編排、宿舍分配,是高校學(xué)生管理工作中比較重要的一環(huán),也是老師、家長(zhǎng)、學(xué)生普遍關(guān)心的問(wèn)題。但是學(xué)生分班分寢室問(wèn)題影響因素較多,綜合情況復(fù)雜,要把各個(gè)班級(jí)分得合理、均衡確非易事。因此實(shí)現(xiàn)學(xué)生班級(jí)的科學(xué)、合理編排,是值得我們關(guān)注和研究的課題[4]。
目前的文獻(xiàn)都是對(duì)分班問(wèn)題單獨(dú)進(jìn)行探討的[4-8],對(duì)分寢室問(wèn)題的算法研究更是甚少[9,10],但在實(shí)際過(guò)程中,多數(shù)高校的學(xué)號(hào)編排都是按照寢室及床位編號(hào)來(lái)排序,而寢室的安排則是在完成班級(jí)編排的基礎(chǔ)上進(jìn)行的,因此本文設(shè)計(jì)了分班分寢室一體化系統(tǒng),系統(tǒng)僅以新生數(shù)據(jù)和班級(jí)數(shù)作為輸入,就可以實(shí)現(xiàn)學(xué)生的班級(jí)、寢室床位及學(xué)號(hào)的自動(dòng)編排,大大減少了工作人員的工作量和工作時(shí)間,保證了數(shù)據(jù)的準(zhǔn)確性和科學(xué)性。
2 數(shù)學(xué)建模(Mathematical modeling)
2.1 問(wèn)題描述
分班問(wèn)題,可概括為多約束條件下的合理分配問(wèn)題,即根據(jù)學(xué)生的某些特征,按照一定的算法,將具有同一屬性的學(xué)生集合里的每個(gè)個(gè)體,分別編排到各個(gè)班級(jí)中[4,5]。分寢室問(wèn)題跟分班問(wèn)題類似。
我校的分班分寢室問(wèn)題,主要考慮以下幾個(gè)要素:
(1)按學(xué)生專業(yè)進(jìn)行分班。
(2)同專業(yè)每個(gè)班級(jí)的總?cè)藬?shù)應(yīng)平均為第一約束條件。
(3)同專業(yè)每個(gè)班級(jí)的男女生人數(shù)應(yīng)平均為第二約束條件。
(4)同專業(yè)每個(gè)班級(jí)的學(xué)生的來(lái)源省份分布應(yīng)平均為第三約束條件。
(5)按專業(yè)班級(jí)進(jìn)行寢室及床位安排。
(6)每個(gè)班級(jí)的學(xué)生的來(lái)源省份在每個(gè)寢室的分布應(yīng)平均。
2.2 模型設(shè)計(jì)
以某一專業(yè)為例,設(shè)該專業(yè)有n個(gè)學(xué)生,學(xué)生的來(lái)源省份共計(jì)m個(gè),這一專業(yè)將被分成p個(gè)班。
3 算法設(shè)計(jì)(Algorithm design)
3.1 相關(guān)定義
還是以某一專業(yè)為例描述算法。
定義1:為階矩陣,用于存儲(chǔ)所有班級(jí)的基本編排信息,其中,p為該專業(yè)的班級(jí)數(shù),每個(gè)班級(jí)對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第k個(gè)班級(jí)應(yīng)有的總?cè)藬?shù),第2列元素表示第k個(gè)班級(jí)現(xiàn)有女生人數(shù),第3列元素表示第k個(gè)班級(jí)現(xiàn)有男生人數(shù),第4列元素表示第k個(gè)班級(jí)現(xiàn)有人數(shù)。
定義2:為階矩陣,用于存儲(chǔ)所有班級(jí)的學(xué)生來(lái)源省份編排信息,其中,p為該專業(yè)的班級(jí)數(shù),m為該專業(yè)學(xué)生來(lái)源省份的總數(shù),每個(gè)班級(jí)對(duì)應(yīng)矩陣的一行;其中,第j列元素表示第j個(gè)省份在第k個(gè)班級(jí)的現(xiàn)有人數(shù)。
定義3:為階矩陣,用于存儲(chǔ)每個(gè)學(xué)生的基本信息,其中n為該專業(yè)學(xué)生的總數(shù),每個(gè)學(xué)生對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第i個(gè)學(xué)生的班級(jí)編號(hào),第2列元素表示第i個(gè)學(xué)生的性別,“1”表示女生,“0”表示男生,第3列元素表示第i個(gè)學(xué)生的來(lái)源省份編號(hào)。
定義4:為階矩陣,用于存儲(chǔ)該專業(yè)所有女生寢室的基本編排信息,其中,為分配給該專業(yè)的寢室數(shù),每個(gè)班級(jí)對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第個(gè)寢室可安排的人數(shù),第2列元素表示第個(gè)寢室已安排的女生人數(shù),第3列元素表示第個(gè)寢室第①號(hào)床位的安排情況,“1”表示已安排,“0”表示未安排,以此類推,第4、5、6列分別表示第個(gè)寢室第②、③、④號(hào)床位的安排情況,第7列表示第個(gè)寢室是否已完成編排,如果,則為“1”,反之,為“0”;endprint
定義5:為階矩陣,用于存儲(chǔ)該專業(yè)所有女生寢室的學(xué)生來(lái)源省份編排信息,其中,為分配給該專業(yè)的寢室數(shù),為該專業(yè)女生的來(lái)源省份的總數(shù),每個(gè)寢室對(duì)應(yīng)矩陣的一行;其中,第列元素表示第個(gè)省份在第個(gè)寢室的現(xiàn)有人數(shù)。
定義6:為階矩陣,用于存儲(chǔ)該專業(yè)每個(gè)女生的基本信息,其中為該專業(yè)女生的總數(shù),每個(gè)女生對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第個(gè)女生的寢室編號(hào),第2列元素表示第個(gè)女生的床位,第3列元素表示第個(gè)女生的來(lái)源省份編號(hào)。
3.2 算法主要步驟
算法的主要步驟如下:
(1)初始化矩陣:輸入?yún)?shù)班級(jí)數(shù)p,計(jì)算得到和的值分別為和。如果,則每班的總?cè)藬?shù)均為;如果,則隨機(jī)選擇個(gè)班,將這些班級(jí)的總?cè)藬?shù)定為,其余個(gè)班的總?cè)藬?shù)為,完成對(duì)矩陣第一列所有元素的賦值,矩陣其他列的所有元素的值均初始化為0。
(2)初始化矩陣:將矩陣所有元素均賦值為0。
(3)初始化矩陣:將矩陣第一列所有元素賦值為0,其余列各元素的值跟從數(shù)據(jù)庫(kù)表中讀取學(xué)生基本信息,并根據(jù)定義3依次賦值。
(4)初始化矩陣:分配給該專業(yè)的寢室數(shù)和各床位的安排情況均為已知,從數(shù)據(jù)庫(kù)表中讀取寢室和床位的基本信息,按照定義4依次對(duì)各元素賦值即可。
(5)初始化矩陣:將矩陣所有元素均賦值為0。
(6)依次從矩陣S的每一行中選擇一個(gè)學(xué)生i,計(jì)算矩陣C第4列各元素的最小值,得到現(xiàn)有人數(shù)最少的班級(jí)集合K;根據(jù)該學(xué)生的性別,如果該學(xué)生為女生,則計(jì)算矩陣C第2列各元素的最小值,得到現(xiàn)有女生人數(shù)最少的班級(jí)集合,如果為男生,則計(jì)算矩陣C第3列各元素的最小值得到;根據(jù)該學(xué)生的生源省份j,計(jì)算矩陣第j列各元素的最小值,得到該省份j現(xiàn)有人數(shù)最少的班級(jí)集合。根據(jù)約束條件優(yōu)先原則,如果,則隨機(jī)選擇中的一個(gè)班級(jí);如果,則判斷的情況,如果,則隨機(jī)選擇中的一個(gè)班級(jí),如果,則隨機(jī)選擇K中的一個(gè)班級(jí)即可。
(7)根據(jù)步驟(4)得到的班級(jí)編號(hào),結(jié)合學(xué)生i的基本信息,依次對(duì)矩陣C和中與班級(jí)所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將班級(jí)編號(hào)寫入矩陣S對(duì)應(yīng)的學(xué)生i所在行的第一個(gè)元素里。
(8)重復(fù)步驟(4),直到矩陣C中每一行,有,即每個(gè)班的現(xiàn)有人數(shù)等于每個(gè)班應(yīng)有的總?cè)藬?shù)。
(9)根據(jù)以編排好的班級(jí)信息,按班級(jí)編號(hào)升序方式依次讀取該專業(yè)所有女生的基本信息,按定義6對(duì)矩陣的第3列進(jìn)行賦值,而第1列和第2列的元素,因?yàn)樯形撮_始寢室編排,所以全部初始化為0。
(10)依次從矩陣的每一行中選擇一個(gè)女生,選取的行,計(jì)算矩陣L第2列各元素的最小值,得到現(xiàn)有可安排人數(shù)最少的寢室集合;根據(jù)該女生的生源省份,計(jì)算矩陣第列各元素的最小值
,得到該省份現(xiàn)有人數(shù)最少的寢室集合。如果,則隨機(jī)選擇中的一個(gè)寢室,如果,則隨機(jī)選擇中的一個(gè)寢室,然后在該寢室中隨機(jī)選擇一個(gè)狀態(tài)標(biāo)記為“0”的床位即可得到寢室編號(hào)和床位編號(hào)。
(11)根據(jù)步驟(10)得到的寢室編號(hào)和床位編號(hào),結(jié)合女生的基本信息,根據(jù)定義依次對(duì)矩陣L和中與寢室和床位所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將寢室編號(hào)和床位編號(hào)寫入矩陣對(duì)應(yīng)的女生所在行的相應(yīng)元素里。
(12)重復(fù)步驟(10),直到矩陣L中每一行,有,即每個(gè)寢室的應(yīng)安排人數(shù)等于每個(gè)寢室已安排人數(shù)。
(13)根據(jù)已編排好的班級(jí)、寢室和床位信息,按學(xué)生班級(jí)、女生寢室號(hào)、女生床位號(hào)、男生寢室號(hào)、男生床位號(hào)的先后次序進(jìn)行排序后,根據(jù)學(xué)號(hào)編碼規(guī)則,學(xué)號(hào)末位從1開始,依次+1遞增,即可完成該專業(yè)學(xué)生學(xué)號(hào)的編排。
4 系統(tǒng)實(shí)現(xiàn)(System implementation)
5 結(jié)論(Conclusion)
系統(tǒng)自2008年運(yùn)行以來(lái),廣受師生好評(píng)。本校每年的本科新生規(guī)模在4000人左右,涉及專業(yè)共計(jì)40個(gè)左右,需編排的班級(jí)數(shù)大概80個(gè)左右。如果全部采用本系統(tǒng)進(jìn)行自動(dòng)編排,最多耗時(shí)1小時(shí)即可完成,為開展后續(xù)其他迎新工作節(jié)省了大量的寶貴時(shí)間。而且,每次使用系統(tǒng)之前,本校都會(huì)對(duì)往年和當(dāng)年的新生數(shù)據(jù)及編排結(jié)果進(jìn)行分析,對(duì)編排算法進(jìn)行微調(diào),以使系統(tǒng)的編排效果最佳。
參考文獻(xiàn)(References)
[1] 徐峻.高校迎新流程的優(yōu)化及迎新系統(tǒng)的設(shè)計(jì)與開發(fā)[D].電子科技大學(xué),2012.
[2] 解輝,楊亞輝.基于VFP的新生分班系統(tǒng)[D].陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005,23(1):16-19.
[3] 張定國(guó).VFP在高校新生分班的應(yīng)用[J].科技信息,2010,35:720.
[4] 馬燕,王文發(fā),李宏達(dá).基于矩陣存儲(chǔ)的學(xué)生分班問(wèn)題的回溯算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(12):3022-3025.
[5] 朱珣.分班問(wèn)題的拉斯維加斯算法實(shí)現(xiàn)[D].江漢大學(xué)學(xué)報(bào),2007,35(4):56-59.
[6] 陳英.高校教務(wù)管理系統(tǒng)中的一種新的分班算法及實(shí)現(xiàn)[J].新余高專學(xué)報(bào),2007,12(5):85-86.
[7] 許志國(guó),高艷玲,譚小容.高校學(xué)號(hào)編排與自動(dòng)化實(shí)現(xiàn)技術(shù)[J].文教資料,2005,32:21-22.
[8] 申子明.高職院校新生注冊(cè)管理系統(tǒng)的構(gòu)建與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
[9] 陸健.大學(xué)生寢室怎么分更好[N].光明日?qǐng)?bào),2013-8-26(006).
[10] 劉世坤,龔濤.從控制論角度探討大學(xué)生寢室管理模式[J].中國(guó)科教創(chuàng)新導(dǎo)刊.2013,19:219.
作者簡(jiǎn)介:
孫 瑋(1983-),女,碩士,工程師.研究領(lǐng)域:網(wǎng)絡(luò)信息系統(tǒng).endprint
定義5:為階矩陣,用于存儲(chǔ)該專業(yè)所有女生寢室的學(xué)生來(lái)源省份編排信息,其中,為分配給該專業(yè)的寢室數(shù),為該專業(yè)女生的來(lái)源省份的總數(shù),每個(gè)寢室對(duì)應(yīng)矩陣的一行;其中,第列元素表示第個(gè)省份在第個(gè)寢室的現(xiàn)有人數(shù)。
定義6:為階矩陣,用于存儲(chǔ)該專業(yè)每個(gè)女生的基本信息,其中為該專業(yè)女生的總數(shù),每個(gè)女生對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第個(gè)女生的寢室編號(hào),第2列元素表示第個(gè)女生的床位,第3列元素表示第個(gè)女生的來(lái)源省份編號(hào)。
3.2 算法主要步驟
算法的主要步驟如下:
(1)初始化矩陣:輸入?yún)?shù)班級(jí)數(shù)p,計(jì)算得到和的值分別為和。如果,則每班的總?cè)藬?shù)均為;如果,則隨機(jī)選擇個(gè)班,將這些班級(jí)的總?cè)藬?shù)定為,其余個(gè)班的總?cè)藬?shù)為,完成對(duì)矩陣第一列所有元素的賦值,矩陣其他列的所有元素的值均初始化為0。
(2)初始化矩陣:將矩陣所有元素均賦值為0。
(3)初始化矩陣:將矩陣第一列所有元素賦值為0,其余列各元素的值跟從數(shù)據(jù)庫(kù)表中讀取學(xué)生基本信息,并根據(jù)定義3依次賦值。
(4)初始化矩陣:分配給該專業(yè)的寢室數(shù)和各床位的安排情況均為已知,從數(shù)據(jù)庫(kù)表中讀取寢室和床位的基本信息,按照定義4依次對(duì)各元素賦值即可。
(5)初始化矩陣:將矩陣所有元素均賦值為0。
(6)依次從矩陣S的每一行中選擇一個(gè)學(xué)生i,計(jì)算矩陣C第4列各元素的最小值,得到現(xiàn)有人數(shù)最少的班級(jí)集合K;根據(jù)該學(xué)生的性別,如果該學(xué)生為女生,則計(jì)算矩陣C第2列各元素的最小值,得到現(xiàn)有女生人數(shù)最少的班級(jí)集合,如果為男生,則計(jì)算矩陣C第3列各元素的最小值得到;根據(jù)該學(xué)生的生源省份j,計(jì)算矩陣第j列各元素的最小值,得到該省份j現(xiàn)有人數(shù)最少的班級(jí)集合。根據(jù)約束條件優(yōu)先原則,如果,則隨機(jī)選擇中的一個(gè)班級(jí);如果,則判斷的情況,如果,則隨機(jī)選擇中的一個(gè)班級(jí),如果,則隨機(jī)選擇K中的一個(gè)班級(jí)即可。
(7)根據(jù)步驟(4)得到的班級(jí)編號(hào),結(jié)合學(xué)生i的基本信息,依次對(duì)矩陣C和中與班級(jí)所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將班級(jí)編號(hào)寫入矩陣S對(duì)應(yīng)的學(xué)生i所在行的第一個(gè)元素里。
(8)重復(fù)步驟(4),直到矩陣C中每一行,有,即每個(gè)班的現(xiàn)有人數(shù)等于每個(gè)班應(yīng)有的總?cè)藬?shù)。
(9)根據(jù)以編排好的班級(jí)信息,按班級(jí)編號(hào)升序方式依次讀取該專業(yè)所有女生的基本信息,按定義6對(duì)矩陣的第3列進(jìn)行賦值,而第1列和第2列的元素,因?yàn)樯形撮_始寢室編排,所以全部初始化為0。
(10)依次從矩陣的每一行中選擇一個(gè)女生,選取的行,計(jì)算矩陣L第2列各元素的最小值,得到現(xiàn)有可安排人數(shù)最少的寢室集合;根據(jù)該女生的生源省份,計(jì)算矩陣第列各元素的最小值
,得到該省份現(xiàn)有人數(shù)最少的寢室集合。如果,則隨機(jī)選擇中的一個(gè)寢室,如果,則隨機(jī)選擇中的一個(gè)寢室,然后在該寢室中隨機(jī)選擇一個(gè)狀態(tài)標(biāo)記為“0”的床位即可得到寢室編號(hào)和床位編號(hào)。
(11)根據(jù)步驟(10)得到的寢室編號(hào)和床位編號(hào),結(jié)合女生的基本信息,根據(jù)定義依次對(duì)矩陣L和中與寢室和床位所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將寢室編號(hào)和床位編號(hào)寫入矩陣對(duì)應(yīng)的女生所在行的相應(yīng)元素里。
(12)重復(fù)步驟(10),直到矩陣L中每一行,有,即每個(gè)寢室的應(yīng)安排人數(shù)等于每個(gè)寢室已安排人數(shù)。
(13)根據(jù)已編排好的班級(jí)、寢室和床位信息,按學(xué)生班級(jí)、女生寢室號(hào)、女生床位號(hào)、男生寢室號(hào)、男生床位號(hào)的先后次序進(jìn)行排序后,根據(jù)學(xué)號(hào)編碼規(guī)則,學(xué)號(hào)末位從1開始,依次+1遞增,即可完成該專業(yè)學(xué)生學(xué)號(hào)的編排。
4 系統(tǒng)實(shí)現(xiàn)(System implementation)
5 結(jié)論(Conclusion)
系統(tǒng)自2008年運(yùn)行以來(lái),廣受師生好評(píng)。本校每年的本科新生規(guī)模在4000人左右,涉及專業(yè)共計(jì)40個(gè)左右,需編排的班級(jí)數(shù)大概80個(gè)左右。如果全部采用本系統(tǒng)進(jìn)行自動(dòng)編排,最多耗時(shí)1小時(shí)即可完成,為開展后續(xù)其他迎新工作節(jié)省了大量的寶貴時(shí)間。而且,每次使用系統(tǒng)之前,本校都會(huì)對(duì)往年和當(dāng)年的新生數(shù)據(jù)及編排結(jié)果進(jìn)行分析,對(duì)編排算法進(jìn)行微調(diào),以使系統(tǒng)的編排效果最佳。
參考文獻(xiàn)(References)
[1] 徐峻.高校迎新流程的優(yōu)化及迎新系統(tǒng)的設(shè)計(jì)與開發(fā)[D].電子科技大學(xué),2012.
[2] 解輝,楊亞輝.基于VFP的新生分班系統(tǒng)[D].陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005,23(1):16-19.
[3] 張定國(guó).VFP在高校新生分班的應(yīng)用[J].科技信息,2010,35:720.
[4] 馬燕,王文發(fā),李宏達(dá).基于矩陣存儲(chǔ)的學(xué)生分班問(wèn)題的回溯算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(12):3022-3025.
[5] 朱珣.分班問(wèn)題的拉斯維加斯算法實(shí)現(xiàn)[D].江漢大學(xué)學(xué)報(bào),2007,35(4):56-59.
[6] 陳英.高校教務(wù)管理系統(tǒng)中的一種新的分班算法及實(shí)現(xiàn)[J].新余高專學(xué)報(bào),2007,12(5):85-86.
[7] 許志國(guó),高艷玲,譚小容.高校學(xué)號(hào)編排與自動(dòng)化實(shí)現(xiàn)技術(shù)[J].文教資料,2005,32:21-22.
[8] 申子明.高職院校新生注冊(cè)管理系統(tǒng)的構(gòu)建與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
[9] 陸健.大學(xué)生寢室怎么分更好[N].光明日?qǐng)?bào),2013-8-26(006).
[10] 劉世坤,龔濤.從控制論角度探討大學(xué)生寢室管理模式[J].中國(guó)科教創(chuàng)新導(dǎo)刊.2013,19:219.
作者簡(jiǎn)介:
孫 瑋(1983-),女,碩士,工程師.研究領(lǐng)域:網(wǎng)絡(luò)信息系統(tǒng).endprint
定義5:為階矩陣,用于存儲(chǔ)該專業(yè)所有女生寢室的學(xué)生來(lái)源省份編排信息,其中,為分配給該專業(yè)的寢室數(shù),為該專業(yè)女生的來(lái)源省份的總數(shù),每個(gè)寢室對(duì)應(yīng)矩陣的一行;其中,第列元素表示第個(gè)省份在第個(gè)寢室的現(xiàn)有人數(shù)。
定義6:為階矩陣,用于存儲(chǔ)該專業(yè)每個(gè)女生的基本信息,其中為該專業(yè)女生的總數(shù),每個(gè)女生對(duì)應(yīng)矩陣的一行;其中,第1列元素表示第個(gè)女生的寢室編號(hào),第2列元素表示第個(gè)女生的床位,第3列元素表示第個(gè)女生的來(lái)源省份編號(hào)。
3.2 算法主要步驟
算法的主要步驟如下:
(1)初始化矩陣:輸入?yún)?shù)班級(jí)數(shù)p,計(jì)算得到和的值分別為和。如果,則每班的總?cè)藬?shù)均為;如果,則隨機(jī)選擇個(gè)班,將這些班級(jí)的總?cè)藬?shù)定為,其余個(gè)班的總?cè)藬?shù)為,完成對(duì)矩陣第一列所有元素的賦值,矩陣其他列的所有元素的值均初始化為0。
(2)初始化矩陣:將矩陣所有元素均賦值為0。
(3)初始化矩陣:將矩陣第一列所有元素賦值為0,其余列各元素的值跟從數(shù)據(jù)庫(kù)表中讀取學(xué)生基本信息,并根據(jù)定義3依次賦值。
(4)初始化矩陣:分配給該專業(yè)的寢室數(shù)和各床位的安排情況均為已知,從數(shù)據(jù)庫(kù)表中讀取寢室和床位的基本信息,按照定義4依次對(duì)各元素賦值即可。
(5)初始化矩陣:將矩陣所有元素均賦值為0。
(6)依次從矩陣S的每一行中選擇一個(gè)學(xué)生i,計(jì)算矩陣C第4列各元素的最小值,得到現(xiàn)有人數(shù)最少的班級(jí)集合K;根據(jù)該學(xué)生的性別,如果該學(xué)生為女生,則計(jì)算矩陣C第2列各元素的最小值,得到現(xiàn)有女生人數(shù)最少的班級(jí)集合,如果為男生,則計(jì)算矩陣C第3列各元素的最小值得到;根據(jù)該學(xué)生的生源省份j,計(jì)算矩陣第j列各元素的最小值,得到該省份j現(xiàn)有人數(shù)最少的班級(jí)集合。根據(jù)約束條件優(yōu)先原則,如果,則隨機(jī)選擇中的一個(gè)班級(jí);如果,則判斷的情況,如果,則隨機(jī)選擇中的一個(gè)班級(jí),如果,則隨機(jī)選擇K中的一個(gè)班級(jí)即可。
(7)根據(jù)步驟(4)得到的班級(jí)編號(hào),結(jié)合學(xué)生i的基本信息,依次對(duì)矩陣C和中與班級(jí)所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將班級(jí)編號(hào)寫入矩陣S對(duì)應(yīng)的學(xué)生i所在行的第一個(gè)元素里。
(8)重復(fù)步驟(4),直到矩陣C中每一行,有,即每個(gè)班的現(xiàn)有人數(shù)等于每個(gè)班應(yīng)有的總?cè)藬?shù)。
(9)根據(jù)以編排好的班級(jí)信息,按班級(jí)編號(hào)升序方式依次讀取該專業(yè)所有女生的基本信息,按定義6對(duì)矩陣的第3列進(jìn)行賦值,而第1列和第2列的元素,因?yàn)樯形撮_始寢室編排,所以全部初始化為0。
(10)依次從矩陣的每一行中選擇一個(gè)女生,選取的行,計(jì)算矩陣L第2列各元素的最小值,得到現(xiàn)有可安排人數(shù)最少的寢室集合;根據(jù)該女生的生源省份,計(jì)算矩陣第列各元素的最小值
,得到該省份現(xiàn)有人數(shù)最少的寢室集合。如果,則隨機(jī)選擇中的一個(gè)寢室,如果,則隨機(jī)選擇中的一個(gè)寢室,然后在該寢室中隨機(jī)選擇一個(gè)狀態(tài)標(biāo)記為“0”的床位即可得到寢室編號(hào)和床位編號(hào)。
(11)根據(jù)步驟(10)得到的寢室編號(hào)和床位編號(hào),結(jié)合女生的基本信息,根據(jù)定義依次對(duì)矩陣L和中與寢室和床位所關(guān)聯(lián)的元素進(jìn)行+1的操作,并將寢室編號(hào)和床位編號(hào)寫入矩陣對(duì)應(yīng)的女生所在行的相應(yīng)元素里。
(12)重復(fù)步驟(10),直到矩陣L中每一行,有,即每個(gè)寢室的應(yīng)安排人數(shù)等于每個(gè)寢室已安排人數(shù)。
(13)根據(jù)已編排好的班級(jí)、寢室和床位信息,按學(xué)生班級(jí)、女生寢室號(hào)、女生床位號(hào)、男生寢室號(hào)、男生床位號(hào)的先后次序進(jìn)行排序后,根據(jù)學(xué)號(hào)編碼規(guī)則,學(xué)號(hào)末位從1開始,依次+1遞增,即可完成該專業(yè)學(xué)生學(xué)號(hào)的編排。
4 系統(tǒng)實(shí)現(xiàn)(System implementation)
5 結(jié)論(Conclusion)
系統(tǒng)自2008年運(yùn)行以來(lái),廣受師生好評(píng)。本校每年的本科新生規(guī)模在4000人左右,涉及專業(yè)共計(jì)40個(gè)左右,需編排的班級(jí)數(shù)大概80個(gè)左右。如果全部采用本系統(tǒng)進(jìn)行自動(dòng)編排,最多耗時(shí)1小時(shí)即可完成,為開展后續(xù)其他迎新工作節(jié)省了大量的寶貴時(shí)間。而且,每次使用系統(tǒng)之前,本校都會(huì)對(duì)往年和當(dāng)年的新生數(shù)據(jù)及編排結(jié)果進(jìn)行分析,對(duì)編排算法進(jìn)行微調(diào),以使系統(tǒng)的編排效果最佳。
參考文獻(xiàn)(References)
[1] 徐峻.高校迎新流程的優(yōu)化及迎新系統(tǒng)的設(shè)計(jì)與開發(fā)[D].電子科技大學(xué),2012.
[2] 解輝,楊亞輝.基于VFP的新生分班系統(tǒng)[D].陜西國(guó)防工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2005,23(1):16-19.
[3] 張定國(guó).VFP在高校新生分班的應(yīng)用[J].科技信息,2010,35:720.
[4] 馬燕,王文發(fā),李宏達(dá).基于矩陣存儲(chǔ)的學(xué)生分班問(wèn)題的回溯算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(12):3022-3025.
[5] 朱珣.分班問(wèn)題的拉斯維加斯算法實(shí)現(xiàn)[D].江漢大學(xué)學(xué)報(bào),2007,35(4):56-59.
[6] 陳英.高校教務(wù)管理系統(tǒng)中的一種新的分班算法及實(shí)現(xiàn)[J].新余高專學(xué)報(bào),2007,12(5):85-86.
[7] 許志國(guó),高艷玲,譚小容.高校學(xué)號(hào)編排與自動(dòng)化實(shí)現(xiàn)技術(shù)[J].文教資料,2005,32:21-22.
[8] 申子明.高職院校新生注冊(cè)管理系統(tǒng)的構(gòu)建與實(shí)現(xiàn)[D].電子科技大學(xué),2012.
[9] 陸健.大學(xué)生寢室怎么分更好[N].光明日?qǐng)?bào),2013-8-26(006).
[10] 劉世坤,龔濤.從控制論角度探討大學(xué)生寢室管理模式[J].中國(guó)科教創(chuàng)新導(dǎo)刊.2013,19:219.
作者簡(jiǎn)介:
孫 瑋(1983-),女,碩士,工程師.研究領(lǐng)域:網(wǎng)絡(luò)信息系統(tǒng).endprint