(長安大學教育技術與網絡中心,陜西西安 710064)
高校作為人員密集場所,在疫情期間需要采取措施避免師生大規模聚集,如圖書館、教室等區域可以通過限制性手段進行管控。然而,食堂作為師生每日必經之地,排隊就餐問題比較突出,且具有就餐時間固定的特點,不能簡單的人為限制,師生需要借助某種手段,提前判斷人多區域和用餐高峰時間。
目前利用數據預測的方法包括例如馬爾科夫鏈[1],大數據[2]等,這些方法可以實現對人流量及擁擠狀態的預測,但這些方法需要經過前期數據采集,算法反復調優,且后端構建都非常繁瑣。針對上述問題,本文從結果導向出發。開發擁擠模型的目的是提醒師生錯峰就餐,而師生對當前食堂有多少人并不感興趣,即僅需要獲得“非常擁擠”“輕微擁擠”“不擁擠”三種信息就可以實現本文的目的。
通過分析,本文選擇校園卡刷卡數據作為基礎,開發“動態時間窗口”擁擠模型將數據可視化,通過前端“柱形圖+顏色”進行展示并集成至微信公眾號方便師生查看。
本文提出方法的核心是校園卡刷卡數據,由于學校食堂所有消費必須使用校園卡,無其他支付方式,因此刷卡數據與就餐人數成正相關。
假設每個人平均吃飯時長15分鐘(窗口時間),可以理解為刷卡后的15分鐘要留在食堂,因此15分鐘內的累計刷卡數為當前食堂所有就餐人數。就餐人數與食堂最大容納人數的比值即為“擁擠指數”,其值大于等于零,若“擁擠指數”大于給定的閾值則判斷當前食堂擁擠。該模型比較簡單,沒有考慮排隊人數和刷卡后直接離開的情況,但已經可以動態反應食堂的擁擠狀態。
在上述模型的基礎上我們進行改進,由于每個人的吃飯時長(窗口時間)在不同就餐時間、不同擁擠狀態、不同食堂都是不一致的,因此需要設計成動態時間窗口,其大小根據食堂實際情況進行調整。設定動態時間窗口為n(初始值n=15),則當前食堂人數為Zn,即統計當前時刻到前n=15分鐘內的刷卡數據,食堂最大容納人數Max,判斷擁擠的閾值為a,b,a>b(初始值a=0.9,b=0.7),綜上“擁擠指數”模型如表1所示,模型示例:

表1 “擁擠指數”模型Tab.1 Model of ‘Crowding Index’
(1)當Zn/Max<=0.7,n=15,即當前食堂人數與最大可容納人數比值小于0.7,食堂不擁擠,窗口時間設置為15分鐘。
(2)當0.7 (3)當Zn/Max>=0.9,n=19,即當前食堂人數與最大可容納人數比值大于0.9,食堂非常擁擠,出現擁擠排隊且找不到座位的情況,窗口時間增加為19分鐘。 由于學校食堂較多,每個食堂硬件設施(座位數、面積、樓層、地理位置)、餐飲模式(現炒現做、直接打飯)、人流量等因素都不一樣,因此不能使用同一種參數,需要現場多次觀察手動調參,參數包括時間窗口n1,n2,n3和閾值a,b,而食堂最大容納人數Max一般不會變動。食堂調參示例: (1)食堂一:炒菜窗口較多,需要現做,易出現排隊等待的情況,因此增加初始窗口時間n1,n2和n3也隨之增加。 (2)食堂二:位于一層且靠近教學樓,易出現人流量猛增的情況,因此降低閾值a和b。 (3)食堂三:人流量較小,不易出現擁擠情況,使用標準參數即可。 本文提出的方法涉及多個參數,需要根據食堂實際情況手動調參,因此開發后端調參界面。如圖1 所示,包括食堂區域和樓層,以及上一節提到的6種參數,所有參數都給出了默認值,管理員可以根據食堂實際請款進行調整,按照使用經驗,管理員可在用餐時作簡單觀察,每個食堂觀察3~4 次即可適配。當前食堂人數Z n 偽代碼(SQL)[3-6]示例: 圖1 系統后臺Fig.1 System back-end select distinct 編號 from 刷卡數據 where (交易日期 between sysdate -interval '15' MINUTE and sysdate) and (JYDD like '餐廳')。 前端采用響應式設計,方便師生在不同終端設備上查看。柱形圖表示“擁擠指數”,綠色表示不擁擠,黃色表示輕微擁擠,紅色表示非常擁擠。頁面每20 秒更新一次數據,倒計時顯示。提供手動點擊刷新按鈕和切換校區按鈕,前端界面如圖2所示。 圖2 前端擁擠指數界面Fig.2 System front-end 本文提出了一種基于校園卡刷卡數據判斷食堂擁擠狀態的方法,該算法模型簡單高效,前后端易于部署,且建設成本較低?;谒⒖〝祿摹皳頂D指數”實現師生錯峰就餐的預期,既有助于疫情防控,又提高了用餐效率。除了校園卡刷卡數據,高校應用系統包含更多有價值的數據,需要通過處理將其可視化,從而為學校資源合理分配、校園規劃建設、師生學習工作提供有意義的參考。2 開發
2.1 后端模型

2.2 前端界面

3 結語