CN103413037A - 一种分组组合生成方法、装置及系统 - Google Patents

一种分组组合生成方法、装置及系统 Download PDF

Info

Publication number
CN103413037A
CN103413037A CN201310330255XA CN201310330255A CN103413037A CN 103413037 A CN103413037 A CN 103413037A CN 201310330255X A CN201310330255X A CN 201310330255XA CN 201310330255 A CN201310330255 A CN 201310330255A CN 103413037 A CN103413037 A CN 103413037A
Authority
CN
China
Prior art keywords
packet assembling
object set
grouping
group
producing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310330255XA
Other languages
English (en)
Other versions
CN103413037B (zh
Inventor
魏勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xincheng Magnetic Technology Co ltd
Original Assignee
Shenzhen Institute of Information Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Information Technology filed Critical Shenzhen Institute of Information Technology
Priority to CN201310330255.XA priority Critical patent/CN103413037B/zh
Publication of CN103413037A publication Critical patent/CN103413037A/zh
Application granted granted Critical
Publication of CN103413037B publication Critical patent/CN103413037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明适用于分组技术领域,提供了一种分组组合生成方法、装置及系统,包括:获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;获取分组信息,分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。在本发明实施例中,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象,使得编排的方案收敛,避免了课程表编排的方案剧增的情况,用户可从编排的方案中得到具有最佳适应度的课程表。

Description

一种分组组合生成方法、装置及系统
技术领域
本发明属于分组技术领域,尤其涉及一种分组组合生成方法、装置以及系统。
背景技术
长期以来人们通过手工制表或借助简单的软件系统来编写课程表,手工制表是最常用的办法之一,即直接对前一年的课程表进行修改继续延用。实践表明这种办法在每年课程设置、教师、学生及教室规模变化不大的情况下是有效的。但随着我国教育体制改革的不断深入,特别在高校系统中连年的扩召、扩建、不断的改进专业设置、实行学分制的新形式下,在校学生、教师、教室及课程数量上都有大幅度增长,学生在选择课程上有了更大的灵活性,这使得以前的课程表无法延用,而每学期都需要重新编排课程表。
迄今为止,解决学校教务管理中的课程表问题(TimeTable Proplem,TTP)的方案主要是利用遗传算法(Genetic Algorithm)。它通过模拟生物界的自适应过程,遗传算法为求解多类复杂问题提供了一种通用而易于实现的解决方案。
然而,20世纪70年代美国S.EVEN等人论证TTP是多项式复杂程度的非确定性问题(Non-deterministic Polynomial,NP)完全类问题。即理论和实践表明只要课程表所涉及的任何信息量稍有变化将会导致课程表编排的方案发生巨变,即“组合爆炸”,编排的方案不收敛,使得课程表编排的方案剧增,导致用户无法从编排的方案中得到具有最佳适应度的课程表。
发明内容
本发明实施例的目的在于提供一种分组组合生成方法,旨在解决现有的遗传算法中因“基因突变”而导致TTP编排的方案不收敛,导致用户无法从编排的方案中得到具有最佳适应度的课程表的问题。
本发明实施例是这样实现的,一种分组组合生成方法,包括:
获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
本发明实施例的另一目的在于提供一种课表的分组组合生成装置,包括:
第一获取单元,用于获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
第二获取单元,用于获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
生成单元,用于根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
本发明实施例的另一目的在于提供一种分组组合生成系统,包括上述的分组组合生成装置。
在本发明实施例中,通过根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象,枚举了对象集可生成的所有分组组合,从而使得编排的方案收敛,避免了课程表编排的方案剧增的情况,用户可从编排的方案中选出具有最佳适应度的课程表。
附图说明
图1是本发明实施例提供的分组组合生成方法的实现流程图;
图2是本发明实施例提供的建立的分组组合策略的实施流程的实现流程图;
图3是本发明实施例提供的在实际应用中较佳的实现流程图;
图4是本发明实施例提供的课表对象集的较佳的样例图;
图5是本发明实施例提供的课表对象集的较佳的样例图;
图6是本发明实施例提供的在实际应用中一张课表的较佳的样例图;
图7是本发明实施例提供的课表的分组组合生成装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,通过根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象,枚举了对象集可生成的所有分组组合,从而使得编排的方案收敛,避免了课程表编排的方案剧增的情况,用户可从编排的方案中选出具有最佳适应度的课程表。
实施例一
图1示出了本发明实施例提供的一种分组组合生成方法的实现流程,详述如下:
在步骤S101中,获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
在本实施例中,获取对象集,可以直接导入对象集的数据,以完成对象集的获取。
在本实施例中,对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集。
在本实施例中,分班对象集为分班的总人数,需要分班的个数,以及各班的人数形成的集合。
在本实施例中,排班对象分班对象集为排班的总人数,需要排班的个数,以及各排班的人数形成的集合。
在本实施例中,获取对象集的过程,详述如下:
显示对象集列表,所述对象集列表中包括系统中所有对象集;
检测用户在所述对象集列表中指定的对象集;
获取所述用户在所述对象集列表中指定的对象集。
在本实施例中,在终端的界面上显示系统中所有对象集,由于对象集比较多,可以通过在界面上绘制一个图表。
在本实施例中,用户在对象集列表中指定的对象集,指定的方式包括但不限于按键,通过对用户的选中操作检测,接收用户的选中结果。
在本实施例中,接收用户的选中结果后,根据创建路径,获取所述用户在所述对象集列表中指定的对象集。
通过上述步骤,在终端的显示界面上显示对象集列表,用户根据个人需要指定对象集,避免了对所有对象集都进行分类组合,减少系统分类组合的数据,以提高对对象集分类组合的速度。
在步骤S102中,获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
在本实施例中,获取分组信息,可采用现有技术的任一种方式获取,如通过用户输入的方式获取,或通过本地数据库导入的方式获取。
在本实施例中,分组组合的数量表示需要分组的个数。
在本实施例中,对象数表示分组组合中对象的个数。
在本实施例中,为便于说明,以对象集O={A、B、C、D、E、F}为例,当获取到的分组信息包括分组组合的数量3,以及与各个分组组合分别对应的对象数3、2、1时,表示把对象集O={A、B、C、D、E、F}分为3组,且第1个分组组合中有3个对象,第2个分组组合中有2个对象,第3个分组组合中有1个对象。各个分组组合不存在交集,也就是各个分组组合不存在相同的对象。
在根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,生成各个分组组合之前,包括:
建立分组组合策略。
作为本发明的一个优选实施例,图2示出了建立的分组组合策略的实施流程,详述如下:
S201,获取第一组对象集O,根据第一个组合生成器,对获取到的第一组对象集O,进行分组,生成第一组对象集的分组组合R1,O←O-R1,在获取到的第一组对象集中剔除第一组对象集的分组组合R1,以剩下的对象作为第二组对象集O,第1个组合生成器判断是否具有下一个分组组合,若有,则将第1个组合生成器压入堆栈;
在本实施例中,根据获取到的分组信息生成k个组合生成器,k为大于等于1的整数。
S202,弹出组合生成器,标记为第i组组合生成器;
在本实施例中,i的取值顺序为从1到N。
S203,获取第i组对象集O,根据第i个组合生成器,对获取到的第i组对象集O,进行分组,生成第i组对象集的分组组合Ri,O←O-Ri,在获取到的第i组对象集中剔除第i组对象集的分组组合Ri,以剩下的对象作为下一组的对象集O,第i个组合生成器判断是否具有下一个分组组合,若有,则将第i个组合生成器压入堆栈;
在本实施例中,O←O-Ri,表示在获取到的第i组对象集O中剔除第i组对象集的分组组合Ri,以剩下的对象作为下一组的对象集O的组成元素。
S204,i←i+1,若i<k,跳转到步骤S3,否则跳转到步骤S5,所述k为分组组数,所述分组组数为需要分组的个数;
在本实施例中,k为大于等于1的整数,也为生成组合生成器的个数。
在本实施例中,i的取值顺序为从1到k。
在本实施例中,当i等于k时,跳转到步骤S5,以进行分组组合的输出。
在本实施例中,i←i+1,表示将当前的i加1再赋值给i。
S205,Rk←O,剩下的对象作为第k组对象集的分组组合Rk,输出分组组合结果R1,R2,…Rk;
S206,判断堆栈是否为空,是则执行步骤S2,否则结束循环。
在本实施例中,建立的分组组合策略可以封装为分组组合生成器
Figure BDA00003603243900061
表示把n个对象O={o1,o2,…on}分为k组,每组对象数分别是n1,n2,…nk的算法。
在本实施例中,利用一般组合生成器
Figure BDA00003603243900062
解决产生所有分组组合的问题。为利用
Figure BDA00003603243900063
实现
Figure BDA00003603243900064
的算法,除方法
Figure BDA00003603243900065
外,
Figure BDA00003603243900066
还需封装一个属性
Figure BDA00003603243900067
以及
Figure BDA00003603243900068
Figure BDA00003603243900069
两个方法。
Figure BDA000036032439000610
表示
Figure BDA000036032439000611
的n个对象集合。
Figure BDA000036032439000612
表示生成器
Figure BDA000036032439000613
是否还存在下一个组合。当
Figure BDA000036032439000614
生成n!/(k!*(n-k)!)个组合后,该方法返回false。
在算法中,用R1,R2,…Rk代表每一组的组合对象集合,显然存在O=R1∪R2∪,…Rk,且
Figure BDA000036032439000615
也就是两个数组之间不存在交集,这样就把分组组合生成问题变成求每一组对象子集R1,R2,…Rk的算法,具体地,
Figure BDA000036032439000616
的算法,详述如下:
Figure BDA000036032439000617
Figure BDA00003603243900071
在本实施例中,组合生成器是否具有下一个分组组合,包括:
获取组合生成器的分组次数以及分组次数的最大值;
当获取到的分组次数没有达到最大值时,表示组合生成器具有下一个分组组合;
当获取到的分组次数达到最大值时,表示组合生成器不具有下一个分组组合;
在本实施例中,通过
Figure BDA00003603243900072
获取组合生成器的分组组合次数,
Figure BDA00003603243900074
有6个对象O={o1,o2,o3,o4,o5,o6}的集合,取k=4,存在
Figure BDA00003603243900078
Figure BDA00003603243900079
15为该组合生成器分组次数的最大值,以获取组合生成器的分组组合次数的最大值。
当获取到组合生成器的分组组合次数的最大值时,启动预设的计数器,对组合生成器分组生成的分组组合进行统计,当获取到的分组次数没有达到最大值时,表示组合生成器具有下一个分组组合,当获取到的分组次数达到最大值时,表示组合生成器不具有下一个分组组合。
在步骤S103中,根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
在本实施例中,根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
在本实施例中,各个分组组合不存在交集,也就是各个分组组合不存在相同的对象。
在本实施例中,为举例说明该分组组合策略,设有n=6个字符的集合,O={a,b,c,d,e,f},把它们分为k=3组,第1组,第2组及第3组对象数n1,n2,n3分别是:3,1,2。下面描述利用组合生成器
Figure BDA00003603243900081
实现分组组合生成算法根据前面分析,共有个分组组合数。
Figure BDA00003603243900084
的算法描述如下:
G ( C 6 3 ) . objects &LeftArrow; { a , b , c , d , e , f }
PUSH G ( C 6 3 )
//第1次弹出
Figure BDA00003603243900087
G ( C 6 3 ) &LeftArrow; POP ( ) ;
R 1 &LeftArrow; ( G ( C 6 3 ) . getNext ( ) = { a , b , c } ) ;
Figure BDA000036032439000810
为TRUE,故
Figure BDA000036032439000811
O←(O–R1={d,e,f});
G ( C 3 1 ) . objects &LeftArrow; { d , e , f } ;
R 2 &LeftArrow; ( G ( C 3 1 ) . getNext ( ) = { d } ) ;
Figure BDA000036032439000814
Figure BDA000036032439000815
O←(O–R2={e,f});
G ( C 2 2 ) . objects &LeftArrow; { e , f } ;
R3←{e,f};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,c},{d},{e,f}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R2←{e};
Figure BDA00003603243900093
O←(O–R2={d,f});
G ( C 2 2 ) . objects &LeftArrow; { d , f } ;
R3←{d,f};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,c},{e},{d,f}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R2←{f};
Figure BDA00003603243900097
为FALSE;
O←O–R2={d,e};
G ( C 2 2 ) . objects &LeftArrow; { d , e } ;
R3←{d,e};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,c},{f},{d,e}
//第2次弹出
G ( C 6 3 ) &LeftArrow; POP ( ) ;
R1←{a,b,d};
Figure BDA000036032439000911
Figure BDA000036032439000912
O←(O–R1={c,e,f});
G ( C 3 1 ) . objects &LeftArrow; { c , e , f } ;
R2←{c};
Figure BDA00003603243900101
Figure BDA00003603243900102
O←(O–R2={e,f});
G ( C 2 2 ) . objects &LeftArrow; { e , f } ;
R3←{e,f};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,d},{c},{e,f}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R2←{e};
Figure BDA00003603243900105
Figure BDA00003603243900106
O←O–R2={c,f};
G ( C 2 2 ) . objects &LeftArrow; { c , f } ;
R3←{c,f};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,d},{e},{c,f}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R2←{f};
Figure BDA00003603243900109
为FALSE;
O←(O–R2={c,e});
G ( C 2 2 ) . objects &LeftArrow; { c , e } ;
R3←{c,e};//最后一组只有一种情况
输出结果R1,R2,R3:{a,b,d},{f},{c,e};
//第2次弹出
Figure BDA000036032439001011
G ( C 6 3 ) &LeftArrow; POP ( ) ;
R1←{d,e,f};
Figure BDA00003603243900111
为FALSE;
O←(O–R1={a,b,c});
G ( C 3 1 ) . objects &LeftArrow; { a , b , c } ;
R 2 &LeftArrow; ( G ( C 3 1 ) . getNext ( ) = { a } ) ;
Figure BDA00003603243900114
Figure BDA00003603243900115
O←(O–R2={b,c});
G ( C 2 2 ) . objects &LeftArrow; { b , c } ;
R3←{b,c};//最后一组只有一种情况
输出结果R1,R2,R3:{d,e,f},{a},{b,c}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R 2 &LeftArrow; ( G ( C 3 1 ) . getNext ( ) = { b } ) ;
Figure BDA00003603243900119
Figure BDA000036032439001110
O←(O–R2={a,c});
G ( C 2 2 ) . objects &LeftArrow; { a , c } ;
R3←{a,c};//最后一组只有一种情况
输出结果R1,R2,R3:{d,e,f},{b},{a,c}
G ( C 3 1 ) &LeftArrow; POP ( ) ;
R 2 &LeftArrow; ( Gx ( C 3 1 ) = { c } ) ;
Figure BDA000036032439001114
为FALSE;
O←(O–R2={a,b});
G ( C 2 2 ) . objects &LeftArrow; { a , b } ;
R3←{a,b};//最后一组只有一种情况
输出结果R1,R2,R3:{d,e,f},{c},{a,b}
总弹出
Figure BDA00003603243900121
Figure BDA00003603243900122
次,每次生成3个分组组合,所以得到共20×3=60个分组组合。
为进一步说明该算法,图3示出了上述实施例的操作过程。
其中,将对象集分3组,每组组合生成器分别是:
Figure BDA00003603243900123
初始化时把第一组的组合生成器
Figure BDA00003603243900124
压入堆栈,每弹出一次
Figure BDA00003603243900125
得到3个分组组合对象,共弹出20次,得到60个分组组合对象。
在本发明实施例中,通过根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象,枚举了对象集可生成的所有分组组合,使得编排的方案收敛,避免了课程表编排的方案剧增的情况,从而用户可从编排的方案中得到具有最佳适应度的课程表。
实施例三
本实施例主要赘述了本发明在实际应用中较佳的实施过程,详述如下:
其中,图4示出了1周课表对象集,表示一个学校的周排课。如果周六、周日不排课,从周一到周五上午2个连堂,下午1个连堂,学校课表可以看成是一个包含3×5=15个对象的集合,其中a、b、c、d、e、f、g、h、i、j、k、l、m、n、o,表示15对象的位置编号。
进一步地,表2示出了每一门课在课表中占有的连堂数(对象数),要把某学期计算机专业的课程排入课表,其中,如果把图4中的5门课看成5个组,每门课所占的连堂数是该组的对象数。此课表问题就是为利用5个一般组合生成器
Figure BDA00003603243900126
实现的问题,其中O={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o},分组策路n1,n2,n3,n4,n5是:2,4,4,3,2。
共有多少种课表解呢?答案是:15!/(2!4!4!3!2!)=94,594,500
根据上面描述的算法,随机抽取实验中得到的几组结果:
第1组结果
1052031 DM:ac DS:bfin AA:hkmo AI:deg NL:jl
1052032 DM:ac DS:bfin AA:hkmo AI:dej NL:gl
1052033 DM:ac DS:bfin AA:hkmo AI:del NL:gj
1052034 DM:ac DS:bfin AA:hkmo AI:dgj NL:el
1052035 DM:ac DS:bfin AA:hkmo AI:dgl NL:ej
1052036 DM:ac DS:bfin AA:hkmo AI:djl NL:eg
1052037 DM:ac DS:bfin AA:hkmo AI:egj NL:dl
1052038 DM:ac DS:bfin AA:hkmo AI:egl NL:dj
1052039 DM:ac DS:bfin AA:hkmo AI:ejl NL:dg
1052040 DM:ac DS:bfin AA:hkmo AI:gjl NL:de
第2组结果
2565751 DM:ad DS:ghlo AA:bfin AI:cej NL:km
2565752 DM:ad DS:ghlo AA:bfin AI:cek NL:jm
2565753 DM:ad DS:ghlo AA:bfin AI:cem NL:jk
2565754 DM:ad DS:ghlo AA:bfin AI:cjk NL:em
2565755 DM:ad DS:ghlo AA:bfin AI:cjm NL:ek
2565756 DM:ad DS:ghlo AA:bfin AI:ckm NL:ej
2565757 DM:ad DS:ghlo AA:bfin AI:ejk NL:cm
2565758 DM:ad DS:ghlo AA:bfin AI:ejm NL:ck
2565759 DM:ad DS:ghlo AA:bfin AI:ekm NL:cj
2565760 DM:ad DS:ghlo AA:bfin AI:jkm NL:ce
第3组结果
3882681 DM:af DS:cdeh AA:gikm AI:bjl NL:no
3882682 DM:af DS:cdeh AA:gikm AI:bjn NL:lo
3882683 DM:af DS:cdeh AA:gikm AI:bjo NL:ln
3882684 DM:af DS:cdeh AA:gikm AI:bln NL:jo
3882685 DM:af DS:cdeh AA:gikm AI:blo NL:jn
3882686 DM:af DS:cdeh AA:gikm AI:bno NL:jl
3882687 DM:af DS:cdeh AA:gikm AI:jln NL:bo
3882688 DM:af DS:cdeh AA:gikm AI:jlo NL:bn
3882689 DM:af DS:cdeh AA:gikm AI:jno NL:bl
3882690 DM:af DS:cdeh AA:gikm AI:lno NL:bj
为便于说明,图6示出了编号为3882686(3882688 DM:af DS:cdeh AA:gikm AI:jlo NL:bn)在实际应用中对应的一张课表。其中DM:af表示对象DM在对象集的位置分别为a、f;DS:cdeh表示对象DS在对象集的位置分别为c、d、e、h;AA:gikm表示对象AA在对象集的位置分别为g、i、k、m;AI:bno表示对象AI在对象集的位置分别为b、n、o;NL:jl,表示对象NL在对象集的位置分别为j、l。
实施例四
图7示出了本发明实施例提供的一种分组组合生成装置的结构框图,该装置可以运行于的各种终端,包括但不限于移动电话、口袋计算机(Pocket PersonalComputer,PPC)、掌上电脑、计算机、笔记本电脑、个人数字助理(PersonalDigital Assistant,PDA)、MP4、MP3等。为了便于说明,仅示出了与本实施例相关的部分。
参照图7,该分组组合生成装置,包括:
第一获取单元71,用于获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
第二获取单元72,用于获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
生成单元73,用于根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
进一步地,在该分组组合生成装置中,还包括:
建立单元,用于建立分组组合策略。
进一步地,在该分组组合生成装置中,所述建立单元,包括:
第一获取子单元,用于S1,获取第一组对象集O,根据第一个组合生成器,对获取到的第一组对象集O,进行分组,生成第一组对象集的分组组合R1,O←O-R1,在获取到的第一组对象集中剔除第一组对象集的分组组合R1,以剩下的对象作为第二组对象集O,第1个组合生成器判断是否具有下一个分组组合,若有,则将第1个组合生成器压入堆栈;
弹出子单元,用于S2,弹出组合生成器,标记为第i组组合生成器;
第二获取子单元,用于S3,获取第i组对象集O,根据第i个组合生成器,对获取到的第i组对象集O,进行分组,生成第i组对象集的分组组合Ri,O←O-Ri,在获取到的第i组对象集中剔除第i组对象集的分组组合Ri,以剩下的对象作为下一组的对象集O,第i个组合生成器判断是否具有下一个分组组合,若有,则将第i个组合生成器压入堆栈;
循环子单元,用于S4,i←i+1,若i<k,跳转到步骤S3,否则跳转到步骤S5,所述k为分组组数,所述分组组数为需要分组的个数;
输出子单元,用于S5,Rk←O,剩下的对象作为第k组对象集的分组组合Rk,输出一个分组组合结果R1,R2,…Rk;
判断子单元,用于S6,判断堆栈是否为空,是则执行步骤S2,否则结束循环。
进一步地,在该分组组合生成装置中,所述获取单元,包括:
显示子单元,用于显示对象集列表,所述对象集列表中包括系统中所有对象集;
检测子单元,用于检测用户在所述对象集列表中指定的对象集;
删除子单元,用于获取所述用户在所述对象集列表中指定的对象集。
进一步地,在该分组组合生成装置中,所述获取单元,还包括:
第三获取子单元,用于获取组合生成器的分组次数以及分组次数的最大值;
第三判断子单元,用于当获取到的分组次数没有达到最大值时,表示组合生成器具有下一个分组组合;
第四判断子单元,当获取到的分组次数达到最大值时,表示组合生成器不具有下一个分组组合。
本发明实施例提供的装置可以应用在前述对应的方法实施例一、二中,详情参见上述实施例一、二的描述,在此不再赘述。
在本发明实施例中,通过根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象,枚举了对象集可生成的所有分组组合,从而使得编排的方案收敛,避免了课程表编排的方案剧增的情况,用户可从编排的方案中选出具有最佳适应度的课程表。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种分组组合生成方法,其特征在于,包括:
获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
2.如权利要求1所述的方法,其特征在于,在所述根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,生成各个分组组合之前,包括:
建立分组组合策略。
3.如权利要求2所述的方法,其特征在于,所述建立分组组合策略,包括:
S1,获取第一组对象集O,根据第一个组合生成器,对获取到的第一组对象集O,进行分组,生成第一组对象集的分组组合R1,O←O-R1,在获取到的第一组对象集中剔除第一组对象集的分组组合R1,以剩下的对象作为第二组对象集O,第1个组合生成器判断是否具有下一个分组组合,若有,则将第1个组合生成器压入堆栈;
S2,弹出组合生成器,标记为第i组组合生成器;
S3,获取第i组对象集O,根据第i个组合生成器,对获取到的第i组对象集O,进行分组,生成第i组对象集的分组组合Ri,O←O-Ri,在获取到的第i组对象集中剔除第i组对象集的分组组合Ri,以剩下的对象作为下一组的对象集O,第i个组合生成器判断是否具有下一个分组组合,若有,则将第i个组合生成器压入堆栈;
S4,i←i+1,若i<k,跳转到步骤S3,否则跳转到步骤S5,所述k为分组组数,所述分组组数为需要分组的个数;
S5,Rk←O,剩下的对象作为第k组对象集的分组组合Rk,输出一个分组组合结果R1,R2,…Rk;
S6,判断堆栈是否为空,是则执行步骤S2,否则结束循环。
4.如权利要求3所述的方法,其特征在于,所述组合生成器判断是否具有下一个分组组合,包括:
获取组合生成器的分组次数以及分组次数的最大值;
当获取到的分组次数没有达到最大值时,表示组合生成器具有下一个分组组合;
当获取到的分组次数达到最大值时,表示组合生成器不具有下一个分组组合。
5.如权利要求1所述的方法,其特征在于,所述获取对象集,包括:
显示对象集列表,所述对象集列表中包括系统中所有对象集;
检测用户在所述对象集列表中指定的对象集;
获取所述用户在所述对象集列表中指定的对象集。
6.一种分组组合生成装置,其特征在于,包括:
第一获取单元,用于获取对象集,所述对象集包括课程对象集、分班对象集、排班对象集中的至少一种对象集;
第二获取单元,用于获取分组信息,所述分组信息包括分组组合的数量以及与各个分组组合分别对应的对象数;
生成单元,用于根据预先建立的分组组合策略,以及获取到的分组信息,对获取到的对象集进行分组组合,枚举出所述对象集生成的所有分组组合,且生成的每个分组组合中存在与对象数相对应的对象。
7.如权利要求6所述的装置,其特征在于,还包括:
建立单元,用于建立分组组合策略。
8.如权利要求6所述的装置,其特征在于,所述建立单元,包括:
第一获取子单元,用于S1,获取第一组对象集O,根据第一个组合生成器,对获取到的第一组对象集O,进行分组,生成第一组对象集的分组组合R1,O←O-R1,在获取到的第一组对象集中剔除第一组对象集的分组组合R1,以剩下的对象作为第二组对象集O,第1个组合生成器判断是否具有下一个分组组合,若有,则将第1个组合生成器压入堆栈;
弹出子单元,用于S2,弹出组合生成器,标记为第i组组合生成器;
第二获取子单元,用于S3,获取第i组对象集O,根据第i个组合生成器,对获取到的第i组对象集O,进行分组,生成第i组对象集的分组组合Ri,O←O-Ri,在获取到的第i组对象集中剔除第i组对象集的分组组合Ri,以剩下的对象作为下一组的对象集O,第i个组合生成器判断是否具有下一个分组组合,若有,则将第i个组合生成器压入堆栈;
循环子单元,用于S4,i←i+1,若i<k,跳转到步骤S3,否则跳转到步骤S5,所述k为分组组数,所述分组组数为需要分组的个数;
输出子单元,用于S5,Rk←O,剩下的对象作为第k组对象集的分组组合Rk,输出一个分组组合结果R1,R2,…Rk;
判断子单元,用于S6,判断堆栈是否为空,是则执行步骤S2,否则结束循环。
9.如权利要求6所述的装置,其特征在于,所述获取单元,包括:
显示子单元,用于显示对象集列表,所述对象集列表中包括系统中所有对象集;
检测子单元,用于检测用户在所述对象集列表中指定的对象集;
删除子单元,用于获取所述用户在所述对象集列表中指定的对象集。
10.一种分组组合生成系统,其特征在于,所述系统包括权利要求6-9任一权利要求所述的分组组合生成装置。
CN201310330255.XA 2013-07-31 2013-07-31 一种分组组合生成方法、装置及系统 Active CN103413037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310330255.XA CN103413037B (zh) 2013-07-31 2013-07-31 一种分组组合生成方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310330255.XA CN103413037B (zh) 2013-07-31 2013-07-31 一种分组组合生成方法、装置及系统

Publications (2)

Publication Number Publication Date
CN103413037A true CN103413037A (zh) 2013-11-27
CN103413037B CN103413037B (zh) 2016-08-10

Family

ID=49606048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310330255.XA Active CN103413037B (zh) 2013-07-31 2013-07-31 一种分组组合生成方法、装置及系统

Country Status (1)

Country Link
CN (1) CN103413037B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069569A (zh) * 2015-08-10 2015-11-18 北京思特奇信息技术股份有限公司 一种排班方法及系统
CN112102132A (zh) * 2020-11-06 2020-12-18 深圳英之泰教育科技有限公司 行政班级的自动配置方法、装置和计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090098524A1 (en) * 2007-09-27 2009-04-16 Walton Brien C Internet-based Pedagogical and Andragogical Method and System Using Virtual Reality
CN102315991A (zh) * 2011-10-14 2012-01-11 海南大学 一种基于互联网数据采集的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090098524A1 (en) * 2007-09-27 2009-04-16 Walton Brien C Internet-based Pedagogical and Andragogical Method and System Using Virtual Reality
CN102315991A (zh) * 2011-10-14 2012-01-11 海南大学 一种基于互联网数据采集的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
郭兰: ""体育教育专业术科课程表编排的原则与方法探讨"", 《四川文理学院学报(自然科学)》 *
雷涛等: ""基于分组优化和矩阵运算的自动排课算法"", 《兰州交通大学学报(自然科学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105069569A (zh) * 2015-08-10 2015-11-18 北京思特奇信息技术股份有限公司 一种排班方法及系统
CN112102132A (zh) * 2020-11-06 2020-12-18 深圳英之泰教育科技有限公司 行政班级的自动配置方法、装置和计算机设备
CN112102132B (zh) * 2020-11-06 2021-03-12 深圳英之泰教育科技有限公司 行政班级的自动配置方法、装置和计算机设备

Also Published As

Publication number Publication date
CN103413037B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
CN105047031B (zh) 一种交互错题教学系统与方法
Carrington et al. The SAGE handbook of social network analysis
Sobkowicz Modelling opinion formation with physics tools: Call for closer link with reality
Rombach et al. Core-periphery structure in networks
Scott et al. The SAGE handbook of social network analysis
CN104966424B (zh) 一种基于点读机的学习方法及装置
West et al. Networks of echoes: imitation, innovation and invisible leaders
Xu et al. Influential mechanism of farmers' sense of relative deprivation in the sustainable development of rural tourism
CN105225563B (zh) 一种学习数据推荐方法、装置及穿戴式学习设备
CN110400117A (zh) 一种错题的提醒方法、电子设备及存储介质
Ding et al. Key node selection in minimum-cost control of complex networks
Bredl Methods for analyzing social media
CN103413037A (zh) 一种分组组合生成方法、装置及系统
Qualizza et al. A column generation scheme for faculty timetabling
CN101893960A (zh) 一种基于方向向量的文字识别方法和识别装置
Farrahi et al. Learning and predicting multimodal daily life patterns from cell phones
Chan et al. The “mutual ignoring” mechanism of cyberbalkanization: triangulating observational data analysis and agent-based modeling
Anbalagan et al. Footprint model for discussion forums in MOOC
CN201859440U (zh) 学生错题库系统
Bartel et al. Towards hierarchical email recipient prediction
CN102929612A (zh) 互动教学平台导入txt题库的方法
CN107835216A (zh) 基于复合物联网的电表节能激励方法及物联网系统
Ma et al. A visual analysis approach for community detection of multi-context mobile social networks
Surisetty et al. Behavior-based clustering of visual code
Torrence Passing the buck and firing Fibonacci: Adventures with the Stochastic Abacus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240108

Address after: 518000, Building 901, Furuige, Cangqian Jinfuyuan, East Side of Nanxin Road, Nanshan Street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Xincheng Magnetic Technology Co.,Ltd.

Address before: 518172 Longxiang Avenue, Longgang District, Shenzhen, Guangdong 2188

Patentee before: SHENZHEN INSTITUTE OF INFORMATION TECHNOLOGY