一种学校宿舍排宿的方法、装置、介质及设备与流程
- 国知局
- 2024-07-31 23:22:31
本发明涉及学校学生自动化排宿舍。
背景技术:
1、新生排宿是高校业务迎接大一新生的一个重要业务环节。每年暑假分管宿舍的老师需要为所有新生做出宿舍入住安排。由于学校每年招生男生女生数量不同,每个院系招生的男生女生数量也不相同,往年学生入住宿舍的分配也不相同。故此,老师无法依据往年的宿舍安排的历史做出安排。另一方面,宿舍房间资源有限,而在安排新生宿舍时又需要满足同院系同班级的学生尽可能地需要安排在同一宿舍楼的要求,以便于学生的日常管理和学生之间的学习交流。为此,老师为宿舍入住安排往往需要耗费巨大的工作量,耗时耗费不说,往往还无法安排出最好的排宿结果。
技术实现思路
1、本发明所要解决的问题:通过机器实现自动化的学生排宿。
2、为解决上述问题,本发明采用的方案如下:
3、根据本发明的一种学校宿舍排宿的方法,该方法包括如下步骤:
4、步骤s1:初始化待排整体宿舍楼集合、待排男生集合和待排女生集合;所述待排整体宿舍楼集合为宿舍楼信息的集合;所述宿舍楼信息包括宿舍楼类型、剩余床位数和房间入住信息的集合;所述房间入住信息包括房间识别码和床位信息的集合;所述床位信息包括床位识别码和入住学生;宿舍楼类型包括男生类型、女生类型和无人入住类型;所述待排男生集合和待排女生集合是学生信息的集合;所述学生信息至少包括学生识别码、性别和所属团体;
5、步骤s2:通过男生总数、女生总数与宿舍楼剩余床位数的匹配,将待排整体宿舍楼集合分成待排男生宿舍楼集合和待排女生宿舍楼集合;所述待排男生宿舍楼集合和待排女生宿舍楼集合均为宿舍楼信息的集合;
6、步骤s3:进行分性别的宿舍楼团体匹配以确定各宿舍楼的待排床位学生集合;对男生或女生进行宿舍楼团体匹配时,以待排男生宿舍楼集合和待排男生集合,或者以待排女生宿舍楼集合和待排女生集合分别作为宿舍楼团体匹配的待排宿舍楼集合和待排学生集合输入;所述宿舍楼团体匹配包括如下步骤:
7、步骤s31:将待排学生集合按所属团体划分得到待排团体学生集;所述待排团体学生集为待排团体学生信息的集合;所述待排团体学生信息包括所属团体、待排学生数和待排团体学生集合;所述待排团体学生集合为学生信息的集合;
8、步骤s32:通过循环遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体,找出其中某个宿舍楼和某个待排团体满足宿舍楼的剩余床位数大于等于待排团体的待排学生数,然后将所找的待排团体整体打包排入至所找的宿舍楼中,直到待排团体学生集为空或者各宿舍楼的剩余床位数均小于各个待排团体的待排学生数;
9、所述团体整体打包排入为:
10、将待排团体的各待排学生加入至宿舍楼的待排床位学生集合,同时将该待排团体从所述待排团体学生集中删除,同时更新宿舍楼的剩余床位数,若宿舍楼的剩余床位数为零,则将该宿舍楼从所述待排宿舍楼集合中删除;
11、步骤s33:通过循环遍历待排团体学生集中的各个待排团体和待排宿舍楼集合中的各个宿舍楼的组合,找出其中某个宿舍楼的组合和某个待排团体满足宿舍楼的剩余床位总数大于等于待排团体的待排学生数,然后将所找到的待排团体整体拆分排入所找的宿舍楼的组合中,直到待排团体学生集为空或者各个待排团体的待排学生数均大于各宿舍楼的剩余床位总数;
12、所述团体整体拆分排入为:
13、将待排团体的各待排学生拆分加入至宿舍楼的组合的各个宿舍楼的待排床位学生集合,同时将该待排团体从所述待排团体学生集中删除,同时更新宿舍楼的剩余床位数,若宿舍楼的剩余床位数为零,则将该宿舍楼从所述待排宿舍楼集合中删除;
14、步骤s4:遍历各个宿舍楼的空余床位,将对应宿舍楼的待排床位学生集合中的学生识别码填入空余床位的床位信息的入住学生。
15、根据权利要求1所述的学校宿舍排宿的方法,其特征在于,所述步骤s32包括如下步骤:
16、步骤s321:遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体,若所遍历宿舍楼的剩余床位数和所遍历待排团体的待排学生数相同,则将该所遍历的待排团体整体打包排入至该所遍历的宿舍楼;
17、步骤s322:遍历待排团体学生集中的各个待排团体,根据所遍历的待排团体计算待排宿舍楼集合中的各个宿舍楼的剩余床位数余量差,若存在宿舍楼的剩余床位数余量差大于零,则选择其中剩余床位数余量差大于零中最小的宿舍楼,然后将该所遍历的待排团体整体打包排入至所选择的宿舍楼;所述宿舍楼的剩余床位数余量差通过以下公式计算:
18、mdiff1(i)=rcount(i)-dcount;其中,mdiff1(i)为第i个宿舍楼的剩余床位数余量差,rcount(i)为第i个宿舍楼的剩余床位数,dcount为待排团体的待排学生数;
19、步骤s323:重复执行步骤s321至步骤s323直到待排团体学生集为空或者各宿舍楼的剩余床位数均小于各个待排团体的待排学生数。
20、进一步,根据本发明的学校宿舍排宿的方法,所述步骤s321和步骤s322之间还包括:
21、步骤s321x:遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体的各个组合,若所遍历宿舍楼的剩余床位数和所遍历待排团体组合的待排学生数相同,则将该待排团体组合中各个待排团体整体打包排入至该所遍历的宿舍楼。
22、进一步,根据本发明的学校宿舍排宿的方法,所述步骤s33包括如下步骤:
23、步骤s331:遍历待排团体学生集中的各个待排团体和待排宿舍楼集合中的各个宿舍楼的组合,若宿舍楼的组合的剩余床位总数和所遍历的待排团体的待排学生数相同,则将该所遍历的待排团体排入至该宿舍楼的组合;
24、步骤s332:从待排团体学生集中选择一个待排团体,遍历待排宿舍楼集合中的各个宿舍楼的各个组合,并通过计算宿舍楼组合的剩余床位数余量差选择其中宿舍楼组合的剩余床位数余量差大于零中最小的宿舍楼的组合,然后将该选择的待排团体排入至该所选的宿舍楼组合;所述宿舍楼组合的剩余床位数余量差通过以下公式计算:
25、mdiff2(i)=gcount(i)-dcount;其中,mdiff2(i)为第i个宿舍楼组合的剩余床位数余量差,gcount(i)为第i个宿舍楼组合的剩余床位总数,dcount为待排团体的待排学生数;
26、步骤s333:重复执行步骤s331至s333直到待排团体学生集为空或者各宿舍楼的剩余床位总数小于各个待排团体的待排学生数。
27、进一步,根据本发明的学校宿舍排宿的方法,所述宿舍楼类型还包括混住类型;
28、所述步骤s2还包括确定男生排宿优先还是女生排宿优先的优先顺序;
29、所述步骤s3进行分性别的宿舍楼团体匹配时,按照男生排宿优先或女生排宿优先所确定的优先顺序进行;
30、所述步骤s32之前还包括:将宿舍楼类型为混住类型的宿舍楼从待排宿舍楼集中排除出来组成待排混住宿舍楼集合;
31、所述步骤s3还包括在步骤s33之后的步骤s34:
32、步骤s34:将待排混住宿舍楼集合中的宿舍楼加入至待排宿舍楼集后,在重新执行一遍步骤s32和步骤s33。
33、根据权利要求1或2或3或4所述的学校宿舍排宿的方法,其特征在于,所述步骤s31还包括:根据待排团体的待排学生数自小到大的顺序,对待排团体学生集进行排序的步骤。
34、进一步,根据本发明的学校宿舍排宿的方法,所述步骤s2包括如下步骤:
35、步骤s21:遍历待排整体宿舍楼集合中无人入住宿舍楼的各个组合,
36、若存在无人入住宿舍楼组合与男生宿舍楼的剩余床位总数等于男生总数,则将对应组合中的宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他宿舍楼组成待排女生宿舍楼集合,同时确定男生排宿优先;
37、若存在无人入住宿舍楼组合与女生宿舍楼的剩余床位总数等于女生总数,则将对应组合中的宿舍楼和女生宿舍楼组成待排女生宿舍楼集合,其他宿舍楼组成待排男生宿舍楼集合,同时确定女生排宿优先;
38、步骤s22:遍历待排整体宿舍楼集合中的无人入住宿舍楼和混住宿舍楼的各个组合,
39、若存在无人入住宿舍楼和混住宿舍楼的组合与男生宿舍楼的剩余床位总数等于男生总数,则对应组合中的宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他宿舍楼组成待排女生宿舍楼集合,同时确定男生排宿优先;
40、若存在无人入住宿舍楼和混住宿舍楼的组合与女生宿舍楼的剩余床位总数等于女生总数,则对应组合中的宿舍楼和女生宿舍楼组成待排女生宿舍楼集合,其他宿舍楼组成待排男生宿舍楼集合,同时确定女生排宿优先;
41、步骤s23:遍历待排整体宿舍楼集合中无人入住宿舍楼的各个组合,并计算:
42、该无人入住宿舍楼组合与混住宿舍楼、男生宿舍楼的剩余床位总数减去男生总数的第一差值;
43、其他无人入住宿舍楼与混住宿舍楼、女生宿舍楼的剩余床位总数减去女生总数的第二差值;
44、若第一差值和第二差值均大于零,则对应组合中的宿舍楼、混住宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他无人入住宿舍楼、混住宿舍楼和女生宿舍楼组成待排女生宿舍楼集合;
45、若第一差值和第二差值均大于零且第一差值小于第二差值,则确定男生排宿优先;
46、若第一差值和第二差值均大于零且第一差值不小于第二差值,则确定女生排宿优先;
47、所述无人入住宿舍楼是宿舍类型为无人入住类型的宿舍楼;
48、所述男生宿舍楼是宿舍类型为男生类型的宿舍楼;
49、所述女生宿舍楼是宿舍类型为女生类型的宿舍楼;
50、所述混住宿舍楼是宿舍类型为混住类型的宿舍楼。
51、进一步,根据本发明的学校宿舍排宿的方法,所述团体包括院系和行政班班级;所述步骤s3具体为:
52、通过步骤s31将待排学生集合按所属院系划分得到待排院系学生集;
53、通过步骤s32找出剩余床位数大于等于待排院系的待排学生数的宿舍楼,然后将待排院系整体打包排入所找的宿舍楼;
54、通过步骤s31将待排学生集合按班级划分得到待排班级学生集;
55、通过步骤s32找出剩余床位数大于等于待排班级的待排学生数的宿舍楼,然后将待排班级整体打包排入所找的宿舍楼;
56、通过步骤s33找出剩余床位总数大于待排班级的待排学生数的宿舍楼的组合,然后将待排班级整体拆分排入宿舍楼的组合。
57、根据本发明的一种学校宿舍排宿的装置,该装置包括如下模块:
58、模块m1,用于:初始化待排整体宿舍楼集合、待排男生集合和待排女生集合;所述待排整体宿舍楼集合为宿舍楼信息的集合;所述宿舍楼信息包括宿舍楼类型、剩余床位数和房间入住信息的集合;所述房间入住信息包括房间识别码和床位信息的集合;所述床位信息包括床位识别码和入住学生;宿舍楼类型包括男生类型、女生类型和无人入住类型;所述待排男生集合和待排女生集合是学生信息的集合;所述学生信息至少包括学生识别码、性别和所属团体;
59、模块m2,用于:通过男生总数、女生总数与宿舍楼剩余床位数的匹配,将待排整体宿舍楼集合分成待排男生宿舍楼集合和待排女生宿舍楼集合;所述待排男生宿舍楼集合和待排女生宿舍楼集合均为宿舍楼信息的集合;
60、模块m3,用于:进行分性别的宿舍楼团体匹配以确定各宿舍楼的待排床位学生集合;对男生或女生进行宿舍楼团体匹配时,以待排男生宿舍楼集合和待排男生集合,或者以待排女生宿舍楼集合和待排女生集合分别作为宿舍楼团体匹配的待排宿舍楼集合和待排学生集合输入;所述宿舍楼团体匹配包括如下模块:
61、模块m31,用于:将待排学生集合按所属团体划分得到待排团体学生集;所述待排团体学生集为待排团体学生信息的集合;所述待排团体学生信息包括所属团体、待排学生数和待排团体学生集合;所述待排团体学生集合为学生信息的集合;
62、模块m32,用于:通过循环遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体,找出其中某个宿舍楼和某个待排团体满足宿舍楼的剩余床位数大于等于待排团体的待排学生数,然后将所找的待排团体整体打包排入至所找的宿舍楼中,直到待排团体学生集为空或者各宿舍楼的剩余床位数均小于各个待排团体的待排学生数;
63、所述团体整体打包排入为:
64、将待排团体的各待排学生加入至宿舍楼的待排床位学生集合,同时将该待排团体从所述待排团体学生集中删除,同时更新宿舍楼的剩余床位数,若宿舍楼的剩余床位数为零,则将该宿舍楼从所述待排宿舍楼集合中删除;
65、模块m33,用于:通过循环遍历待排团体学生集中的各个待排团体和待排宿舍楼集合中的各个宿舍楼的组合,找出其中某个宿舍楼的组合和某个待排团体满足宿舍楼的剩余床位总数大于等于待排团体的待排学生数,然后将所找到的待排团体整体拆分排入所找的宿舍楼的组合中,直到待排团体学生集为空或者各个待排团体的待排学生数均大于各宿舍楼的剩余床位总数;
66、所述团体整体拆分排入为:
67、将待排团体的各待排学生拆分加入至宿舍楼的组合的各个宿舍楼的待排床位学生集合,同时将该待排团体从所述待排团体学生集中删除,同时更新宿舍楼的剩余床位数,若宿舍楼的剩余床位数为零,则将该宿舍楼从所述待排宿舍楼集合中删除;
68、模块m4,用于:遍历各个宿舍楼的空余床位,将对应宿舍楼的待排床位学生集合中的学生识别码填入空余床位的床位信息的入住学生。
69、进一步,根据本发明的学校宿舍排宿的装置,所述模块m32包括如下模块:
70、模块m321,用于:遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体,若所遍历宿舍楼的剩余床位数和所遍历待排团体的待排学生数相同,则将该所遍历的待排团体整体打包排入至该所遍历的宿舍楼;
71、模块m322,用于:遍历待排团体学生集中的各个待排团体,根据所遍历的待排团体计算待排宿舍楼集合中的各个宿舍楼的剩余床位数余量差,若存在宿舍楼的剩余床位数余量差大于零,则选择其中剩余床位数余量差大于零中最小的宿舍楼,然后将该所遍历的待排团体整体打包排入至所选择的宿舍楼;所述宿舍楼的剩余床位数余量差通过以下公式计算:
72、mdiff1(i)=rcount(i)-dcount;其中,mdiff1(i)为第i个宿舍楼的剩余床位数余量差,rcount(i)为第i个宿舍楼的剩余床位数,dcount为待排团体的待排学生数;
73、模块m323,用于:重复执行模块m321至模块m323的功能直到待排团体学生集为空或者各宿舍楼的剩余床位数均小于各个待排团体的待排学生数。
74、进一步,根据本发明的学校宿舍排宿的装置,所述模块m321和模块m322之间还包括:
75、模块m321x,用于:遍历待排宿舍楼集合中的各个宿舍楼和待排团体学生集中的各个待排团体的各个组合,若所遍历宿舍楼的剩余床位数和所遍历待排团体组合的待排学生数相同,则将该待排团体组合中各个待排团体整体打包排入至该所遍历的宿舍楼。
76、根据权利要求9所述的学校宿舍排宿的装置,其特征在于,所述模块m33包括如下模块:
77、模块m331,用于:遍历待排团体学生集中的各个待排团体和待排宿舍楼集合中的各个宿舍楼的组合,若宿舍楼的组合的剩余床位总数和所遍历的待排团体的待排学生数相同,则将该所遍历的待排团体排入至该宿舍楼的组合;
78、模块m332,用于:从待排团体学生集中选择一个待排团体,遍历待排宿舍楼集合中的各个宿舍楼的各个组合,并通过计算宿舍楼组合的剩余床位数余量差选择其中宿舍楼组合的剩余床位数余量差大于零中最小的宿舍楼的组合,然后将该选择的待排团体排入至该所选的宿舍楼组合;所述宿舍楼组合的剩余床位数余量差通过以下公式计算:
79、mdiff2(i)=gcount(i)-dcount;其中,mdiff2(i)为第i个宿舍楼组合的剩余床位数余量差,gcount(i)为第i个宿舍楼组合的剩余床位数,dcount为待排团体的待排学生数;
80、模块m333:重复执行模块m331至s333的功能直到待排团体学生集为空或者各宿舍楼的剩余床位总数小于各个待排团体的待排学生数。
81、进一步,根据本发明的学校宿舍排宿的装置,所述宿舍楼类型还包括混住类型;
82、所述模块m2还包括用于确定男生排宿优先还是女生排宿优先的优先顺序;
83、所述模块m3进行分性别的宿舍楼团体匹配时,按照男生排宿优先或女生排宿优先所确定的优先顺序进行;
84、所述模块m31还包括:将宿舍楼类型为混住类型的宿舍楼从待排宿舍楼集中排除出来组成待排混住宿舍楼集合;
85、所述模块m3还包括在连接于模块m33之后的模块m34:
86、模块m34:将待排混住宿舍楼集合中的宿舍楼加入至待排宿舍楼集后,在重新执行一遍模块m32和模块m33的功能。
87、进一步,根据本发明的学校宿舍排宿的装置,所述模块m31还包括用于:根据待排团体的待排学生数自小到大的顺序,对待排团体学生集进行排序的步骤。
88、进一步,根据本发明的学校宿舍排宿的装置,所述模块m2包括如下模块:
89、模块m21,用于:遍历待排整体宿舍楼集合中无人入住宿舍楼的各个组合,
90、若存在无人入住宿舍楼组合与男生宿舍楼的剩余床位总数等于男生总数,则将对应组合中的宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他宿舍楼组成待排女生宿舍楼集合,同时确定男生排宿优先;
91、若存在无人入住宿舍楼组合与女生宿舍楼的剩余床位总数等于女生总数,则将对应组合中的宿舍楼和女生宿舍楼组成待排女生宿舍楼集合,其他宿舍楼组成待排男生宿舍楼集合,同时确定女生排宿优先;
92、模块m22,用于:遍历待排整体宿舍楼集合中的无人入住宿舍楼和混住宿舍楼的各个组合,
93、若存在无人入住宿舍楼和混住宿舍楼的组合与男生宿舍楼的剩余床位总数等于男生总数,则对应组合中的宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他宿舍楼组成待排女生宿舍楼集合,同时确定男生排宿优先;
94、若存在无人入住宿舍楼和混住宿舍楼的组合与女生宿舍楼的剩余床位总数等于女生总数,则对应组合中的宿舍楼和女生宿舍楼组成待排女生宿舍楼集合,其他宿舍楼组成待排男生宿舍楼集合,同时确定女生排宿优先;
95、模块m23,用于:遍历待排整体宿舍楼集合中无人入住宿舍楼的各个组合,并计算:
96、该无人入住宿舍楼组合与混住宿舍楼、男生宿舍楼的剩余床位总数减去男生总数的第一差值;
97、其他无人入住宿舍楼与混住宿舍楼、女生宿舍楼的剩余床位总数减去女生总数的第二差值;
98、若第一差值和第二差值均大于零,则对应组合中的宿舍楼、混住宿舍楼和男生宿舍楼组成待排男生宿舍楼集合,其他无人入住宿舍楼、混住宿舍楼和女生宿舍楼组成待排女生宿舍楼集合;
99、若第一差值和第二差值均大于零且第一差值小于第二差值,则确定男生排宿优先;
100、若第一差值和第二差值均大于零且第一差值不小于第二差值,则确定女生排宿优先;
101、所述无人入住宿舍楼是宿舍类型为无人入住类型的宿舍楼;
102、所述男生宿舍楼是宿舍类型为男生类型的宿舍楼;
103、所述女生宿舍楼是宿舍类型为女生类型的宿舍楼;
104、所述混住宿舍楼是宿舍类型为混住类型的宿舍楼。
105、进一步,根据本发明的学校宿舍排宿的装置,所述团体包括院系和行政班班级;所述模块m3具体为:
106、通过模块m31将待排学生集合按所属院系划分得到待排院系学生集;
107、通过模块m32找出剩余床位数大于等于待排院系的待排学生数的宿舍楼,然后将待排院系整体打包排入所找的宿舍楼;
108、通过模块m31将待排学生集合按班级划分得到待排班级学生集;
109、通过模块m32找出剩余床位数大于等于待排班级的待排学生数的宿舍楼,然后将待排班级整体打包排入所找的宿舍楼;
110、通过模块m33找出剩余床位总数大于待排班级的待排学生数的宿舍楼的组合,然后将待排班级整体拆分排入宿舍楼的组合。
111、根据本发明的一种机器可读介质,该介质内存储有能够被机器读取的程序指令集;当该介质内所存储的程序指令集被机器读取后并加载执行时能够实现上述的学校宿舍排宿的方法。
112、根据本发明的一种电子设备,包括处理器和存储器;所述存储器内存储有程序指令集;当所述存储器内所存储的程序指令集被处理器执行时该设备能够实现上述的学校宿舍排宿的方法。
113、本发明的技术效果如下:本发明通过贪心算法求最优解的方式尽可能地将同院系同班级的学生安排在同一宿舍楼,大大减少了人工排宿的工作量。
本文地址:https://www.jishuxx.com/zhuanli/20240730/197267.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。