亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        排考場次分配方法及其SQL實現(xiàn)

        2019-07-15 01:52:18袁子昂
        現(xiàn)代計算機 2019年16期
        關(guān)鍵詞:場次著色頂點

        袁子昂

        (杭州電子科技大學(xué)計算機學(xué)院,杭州310018)

        0 引言

        高校期末排考場次分配,要將上萬名學(xué)生和數(shù)百門課程安排到若干場次,每一場次不能出現(xiàn)課程沖突(同場的任意兩門課程不能有相同的學(xué)生),也不能超過容量限制(考場數(shù)量和容量所限)。現(xiàn)實中總是希望考試場次盡量少,以保證在一周左右完成考試。文獻(xiàn)[1]和文獻(xiàn)[2]證明了排考時間表是NP難問題,文獻(xiàn)[3]和文獻(xiàn)[4]提出了用頂點著色算法來解決排考場次分配問題,但未考慮容限。本文用帶權(quán)頂點著色算法求解容限約束下的場次分配問題,并給出了該算法在SQL Server上的具體實現(xiàn),對其中的T-SQL腳本進(jìn)行簡單修改就能適應(yīng)各學(xué)校的具體情況。

        1 場次分配的帶權(quán)頂點著色算法

        場次分配的輸入是選課集SC={(學(xué)號,課程號)},用二部圖表示如圖1。

        圖1 選課集二部圖

        由選課集可導(dǎo)出帶權(quán)的課程沖突關(guān)系如圖2,圖2中的含權(quán)頂點表示課程,頂點的權(quán)表示學(xué)生數(shù),頂點間的邊表示沖突,頂點的度表示與該課程有沖突的課程總數(shù)。

        圖2 課程沖突關(guān)系圖

        場次分配的輸出是場次集CT={(課程號,學(xué)生數(shù),場次號)},其中課程號和學(xué)生數(shù)可由選課集得到,初始時,所有的場次號均為0,表示課程待分配。分配完成后,場次號取值為1,2,…,n,并且滿足約束:場次號相同的課程彼此不沖突,同一場次的學(xué)生數(shù)之和低于限額。

        在不考慮容限約束時,場次分配與頂點著色問題等價,可用貪心算法求解:①k=1。②若圖中沒有無色頂點則結(jié)束;否則,從圖中找度數(shù)最大的頂點,染色為k。③從無色且與k色頂點無連接的頂點中,找與無色頂點連接數(shù)最大的頂點,染色為k;重復(fù)本步直到?jīng)]有滿足條件的頂點。④從圖中刪除k色頂點及其關(guān)聯(lián)的邊。⑤k=k+1,回第②步。以上步驟如圖3a,3b,3c所示,最后結(jié)果如圖3d,8個頂點被分為3組:第1組(1,4,5),第 2 組(2,6,7,8)和第 3 組(3)。

        圖3 頂點著色貪心算法

        考慮容限時,場次分配與帶權(quán)頂點的著色問題等價,每次對一個新的頂點染色時,要檢查改色節(jié)點的權(quán)重之和是否超過容限。容限記為max,余量記為rest,頂點和權(quán)重記為vi和wi,對以上算法進(jìn)行調(diào)整:

        帶權(quán)頂點最小著色算法

        (1)k=1。

        (2)若圖中沒有無色頂點則結(jié)束;否則,找到度數(shù)最大的頂點vi,染色為k,rest=max-wi。

        (3)從無色且權(quán)值小于rest且與k色頂點無連接的頂點中,找到與無色頂點連接數(shù)最大的頂點vi,染色為k,rest=rest-wi,重復(fù)本步直到?jīng)]有滿足條件的頂點。

        (4)從圖中刪除k色頂點及其關(guān)聯(lián)的邊。

        (5)k=k+1,回第(2)步。

        2 算法的SQL實現(xiàn)

        在SQL Server上,通過設(shè)計數(shù)據(jù)庫、預(yù)處理、分配、檢查結(jié)果等四個步驟完成場次分配。

        2.1 數(shù)據(jù)庫設(shè)計

        在SQL Server上創(chuàng)建一個數(shù)據(jù)庫,其中創(chuàng)建三個表:選課表、場次表和沖突表。

        表1 選課表

        選課表用于存放選課數(shù)據(jù),表中的每一行表示一個學(xué)生要參加一門課程的考試。

        表2 場次表

        場次表用于存放場次分配的中間過程和結(jié)果,表中的每一行表示一門課程分配進(jìn)一個場次,若有n門課程,則共有n行。所有的課程的初始場次都為0,表示未分配;在分配過程中,課程的場次將分別變?yōu)?,2,…,場次號相同的課程屬于同一場次。

        表3 沖突表

        沖突表用于存放課程關(guān)系,沖突值取1/0表示有/無沖突。為編程方便,一對課程c1和c2會存入兩行:(c1,c2,1/0)和(c2,c1,1/0)。沖突表中的初始數(shù)據(jù)由選課表導(dǎo)出,在分配過程中,數(shù)據(jù)將逐漸減少直至為空。

        2.2 預(yù)處理

        預(yù)處理用于生成選課表數(shù)據(jù)、場次表初始數(shù)據(jù)和沖突表初始數(shù)據(jù)。

        選課表數(shù)據(jù)可從Excel表導(dǎo)入到數(shù)據(jù)庫,也可從現(xiàn)有的信息系統(tǒng)中取得。

        場次表初始數(shù)據(jù)從選課表中取得,所有課程的初始場次都置為0。

        生成場次表初始數(shù)據(jù)的T-SQL腳本:

        沖突表初始數(shù)據(jù)從選課表中取得。首先取得所有的課程對,若有n門課程,則得到n*(n-1)行,所有課程對的沖突都設(shè)為0;然后從選課表中找到有沖突的課程對,將其沖突設(shè)為1。

        生成沖突表初始數(shù)據(jù)的T_SQL腳本:

        由于沖突表在分配過程中數(shù)據(jù)會逐漸減少,為了對分配后的結(jié)果進(jìn)行檢查,對沖突表備份得到備份沖突表。

        2.3 場次分配

        場次分配用一個存儲過程來實現(xiàn),該存儲過程有一個輸入?yún)?shù)@max,執(zhí)行該過程會更新場次表。

        創(chuàng)建存儲過程的T_SQL腳本:

        2.4 檢查結(jié)果

        對得到的場次表進(jìn)行檢查,一是檢查是否所有課程都分配了場次,只要場次表中所有行的場次列都不為0,即說明檢查通過;二是檢查每一場次內(nèi)有無沖突,只要場次相同的課程沖突值之和為0,即通過檢查。三是檢查每一場次考生數(shù)是否超過容限。

        場內(nèi)沖突檢查的SQL腳本:

        3 實驗

        取某校2017學(xué)年第一學(xué)期的選課數(shù)據(jù),含10037名學(xué)生,193門課程,36714條選課記錄,每一場次的容限為5000人。經(jīng)過預(yù)處理,得到課間沖突關(guān)系共2796對,場次分配過程在5秒內(nèi)執(zhí)行結(jié)束,得到考試場次共20場,分場次的課程數(shù)和學(xué)生人數(shù)如表4。

        實驗中發(fā)現(xiàn),后分配的課程不能移入先分配的場次,但某些先分配的課程可以移入某些后分配的場次,這一現(xiàn)象是貪心算法造成的。如圖3中,被放入第1組的5號節(jié)點,也可以放入第2組;而第2組中的6,7,8號節(jié)點,可以全部放入第3組。在實際應(yīng)用中,這一特點為實際排考工作提供了一定的調(diào)整余地。

        表4 場次考生數(shù)量

        4 結(jié)語

        本文將帶容限約束的排考場次分配問題轉(zhuǎn)化為帶權(quán)圖頂點最小著色問題來求解,給出了一種貪心算法,并給出了算法在SQL Server平臺上的具體實現(xiàn),解決方案易于部署實現(xiàn),對本文中的T-SQL腳本進(jìn)行簡單修改就能適應(yīng)各學(xué)校的具體情況。

        猜你喜歡
        場次著色頂點
        長江上游高洪水期泥沙輸移特性
        蔬菜著色不良 這樣預(yù)防最好
        過非等腰銳角三角形頂點和垂心的圓的性質(zhì)及應(yīng)用(下)
        蘋果膨大著色期 管理細(xì)致別大意
        基于運行場次用時誤差的載人設(shè)備故障預(yù)警可視化研究
        關(guān)于頂點染色的一個猜想
        10位畫家為美術(shù)片著色
        電影(2018年10期)2018-10-26 01:55:48
        地鐵觀影指南
        電影故事(2015年33期)2015-09-06 01:05:30
        Thomassen與曲面嵌入圖的著色
        數(shù)學(xué)問答
        丰满少妇棚拍无码视频| 亚洲一区二区三区影院| 摸进她的内裤里疯狂揉她动图视频 | 国产三级国产精品三级在专区| 亚洲女同性恋激情网站| 国产自拍成人免费视频| 国产又大又黑又粗免费视频| 色哟哟网站在线观看| 91短视频在线观看免费| 日本国主产一区二区三区在线观看| 日本不卡视频一区二区三区| 一本到在线观看视频| 黑人巨大精品欧美一区二区| 青青草国产成人99久久| 手机在线中文字幕国产| 日韩亚洲在线观看视频| 白嫩丰满少妇av一区二区| 狠狠色综合7777久夜色撩人ⅰ| 午夜福利视频合集1000| 亚洲成AV人久久| 暴露的熟女好爽好爽好爽| 老熟女的中文字幕欲望| 国产肥熟女视频一区二区三区| 国产成人九九精品二区三区| 亚洲老女人区一区二视频 | 日韩女同精品av在线观看| 欧美日韩亚洲中文字幕二区| 亚洲色大成网站www永久一区| 国产亚洲日本人在线观看| 白色白色白色在线观看视频| 久久日日躁夜夜躁狠狠躁| 在线观看热码亚洲av每日更新| 亚洲一区爱区精品无码| 国产天堂av手机在线| 亚洲女人的天堂网av| 少妇中文字幕乱码亚洲影视| 丰满人妻妇伦又伦精品国产 | 中文字幕av熟女中文av| 欧美变态另类刺激| 久久久久久久女国产乱让韩| 中文字幕在线日韩|