(req 05-1-PDK000002)

(评审已通过,研发已完成)

(req 05-1-PDK000002)

此需求用来描述校区线下排订课系统后台排订课逻辑(原智能排订课系统逻辑COS(req 06-cs00006))

(req 06-cs00006)

此需求用来描述针对于2019体系学员的智能选课排课系统,该系统的目标是消除或减轻目前多校区在预约制订课过程中出现的“订课难”、“教室上座率下降”、“资源浪费”问题,使校区预约排课的学员满意度上升。
# 智能选课推荐
智能选课功能可以方便地让学员通过微信进行智能选课,可以快速选中其最有可能选的课程,提升学员选课体验好感,同时,前台选课也方便我们的CC在选课时精准把握学员需求。
## 业务流程
业务流程图如下:

智能排课订课系统

智能排课系统仅针对2019体系学员的智能排课以及采用相同课程规则(包括过课,noshow,repeat,奖励课时机制)的后续所有课程体系。(课程规则参看(req 06-cs00004)
https://www.showdoc.cc/page/1334365066537159)

智能排课拟采用两种方案应对学员订课需求,最终采用何种方案,需要通过给定的模型通过模拟数据推演,最终采用收益率较高方案(收益率计算方法:上座率N×加权系数+学员满意度×加权系数),在采用模拟数据推演算法时,基准为现有的排订课系统。目前先衡量方案A可行性(2019-04-10 17:31:58 星期三)

方案A(系统预留座位排课+动态座位数订课)

需求目标:通过动态座位数调整算法,结合学员实际需求,将座位优先分配给较为急需的学员(或校区希望排课的学员),同时可以缓解周中周末排课不均问题,将学员向周中引流。

排订课思路调整:
原先的排订课思路:确定校区时间表—确定教师班表—解锁时间/教师—学员电话/前台订课—分配课程(解锁教室)—其余学员微信预定—订课成功—到达上课时间上课及销课
整体思路是由学员确定教师-教室-课程的关联关系。(学生-教室-教师构成一堂课,虚拟课堂概念)。

方案A(系统预留座位排课+动态座位数订课)的排订课思路:确定校区时间表—确定教师班表—确定当前校区学员级别人数—进行SCT统计(stu-classroom-teacher)—按照级别人数确定基础课及实践课的排课比率,确定每一级别排课空间(90%,10%自留)—根据每一级别学员可上课时间段进行每一级别最优时间段统计,开放每一级别第一堂课—开放学员电话/微信订课—分配课程(解锁教室,消耗排课空间)—其余学员按照影响因素算法动态计算每一课堂座位数从而确定是否具有该课订课资格—订课成功—该教室满员80%后开放次优先级的教室(循环直至该级别排课空间消耗光)—CSA根据需求手工开放剩余10%教室—开放学员电话/微信订课—分配课程(解锁教室,消耗排课空间)—其余学员按照影响因素算法动态计算每一课堂座位数从而确定是否具有该课订课资格—订课成功—到达上课时间上课及销课。
业务流程图如下:

" class="reference-link">

数据准备
S(Seat):教室座位数
C(Classroom):min(教室数,教师数量)即教室和教室数量的最小值
T(teacher):教师班表可授课时长(课时数)
【1.1】 获取各个校区的独立校区排课时间表(基础数据)。
【1.2】 获取各校区授课教师班表。
【2.1】 每一个月月初进行一次系统轮询,在半年内有过订课记录(点击订课链接)的每一级别学员人数。并记录在系统临时表中。
【2.2】 统计所有在半年内有过订课记录的学员,计算出每级别学员的占比情况。
【2.3】 以周为单位(一周的起始时间为周六作为一周的开始,周五作为一周的结束)计算校区的排课空间(可排课数量),计算方法:排课空间=座位数(Seats)* 最小值(教室数量,教师数量)*教师可授课时间(中外教分开计算)*7。可排课数量计算方法(最小值(教室数量,教师数量)*教师可授课时间(中外教分开计算)*7)
按照每一级别两主题(一新主题,一复习主题)以及上周复习主题的人数,确定本级别两主题的排课比例,与该级别所占排课空间的整体比例相乘,最终得出每一级别每一主题的可排课量。
例如,以QYC举例:教室seats=10,教室数20,教师数中教6,外教3,教师班表可上课时中教3,外教5.,SCT(en):10×6×3×7=1260,SCT(sc):10×3×5×7=1050,total: 2310 这个就是一周该校区的排课空间,换算成可排课为EN:126,SC:105,total: 231
QYC截至3月份,各个等级学员如下:
L1(24,70%) L2(0,0%) L3 (0,0%) L4 (4,12%) L5(4,12%) L6(1,3%) L7(0,0%) L8(0,0%) L9(0,0%) L10(1,3%) L11(0,0%) L12 (0,0%) TOTAL(34,100%)
按照排课空间计算,各个级别的可排课为:
L1(162)
L4(28)
L5(28)
L6(7)
L10(7)
【2.4】 通过在学员微信页面-上课偏好设置中,学员对于不可上课时间(不超过周总可上课时间的70%)进行设置,收集每一个学员的可上课时间,进行每一个可上课时间段的学员人数计算,降序排序,得出学员上课时间表。

排课:
排课数据结构:

首排课
【3.1】
接下来按照排课优先级算法,每级别首放课数量算法以进行排课

  • 排课优先级计算方法:
    近半年订课学员(活跃学员)当前级别人数,人数多的优先级高,同样以QYC为例:
    排课优先级顺序为:L1,L4,L5,L6,L10
    意味着,当级别学员优选时间出现冲突时(C或T不够用),需要按照排课优先级顺序进行排课,例如,QYC,L1和L2同时需要抢占周六下午16:00-17:00的B教室,则按照排课优先级原则,L1优先排课。
  • 每一级别每一主题首放课数量算法
    接下来,需要确定排课优先级和每一级别每一主题首次放出的课程数量(sc),首放课量遵循阶梯排课规则:
    学员人数 放课量
    <=10 1
    (10-20] 2
    >20 3

【3.1.1】系统判断前一周的主题学员repeat数量,若有多个repeat主题,分别计算不同主题的repeat数量,要求:本周首放课,至少保证新主题有一节首放课,其余主题按人数按需放课(推荐一周2主题(可配置),若多主题则由人工排课)。
以QYC为例:
每一级别一周放2主题,一节复习主题,一节新主题,以L1为例,本周放出L1-EN1,L1-SC1(当周新主题)L1-SC16,L1-EN16(复习主题),上周的SC16主题repeat学员人次为8,EN16主题的repeat学员人数为6,本周新主题+复习主题学员人数为24,则首排课为:
L1-SC1:3(插空排en1)
L1-SC16:1(插空排en16 1节)
请注意:repeat首排课的逻辑规则为:优先排SC课,若有上周复习主题的en课学员,则根据背靠背课程规则崽SC两侧时间段插入en复习课,而无需另行安排课程。若上周复习主题无repeat学员,则不安排该主题的背靠背课程。

【3.2】
首次排课,系统排出两周课程,之后,在每个周期内的第一周周五晚23:59开始排出第三周的课表(首排课)。
在空白课表中,需要预留出公开课和demo课(固定教室固定时段)若无人预定,则提前24小时放开,由系统排课逻辑介入排课。
在每次的排课过程,首排课全级别按照各自的学员选课时间表顺序排课,每一个级别包含1个新主题和若干个repeat主题,所有主题的首排课同时进行,若出现多级别抢占一个资源情况,则按照级别优先级顺序进行安排。若出现同一级别内不同主题抢占资源,则按照不同主题的人数(new+repeat)来决定优先级顺序。
首排课放出SC课,排课成功,即扣除相应外教班表课时。排课遵循Z排序,不同外教排课数量差不能>1,系统支持不同外教的人工调换(即系统安排的外教可以由人工修改其上课主题,但必须两两对换)。当所有当天的外教班表可用时间为0,则无法排SC课。系统逻辑跳转排en课流程。

【3.3】
以sc进行放课,en课配合sc的放课出现在sc的周围(背靠背课程)最大限度顾及成本收益及学员满意度。sc的排课有以下几类:

总体原则是,当某一级别面临开课,按照该级别学员可选时间段排序,当有可用外教资源(当前时间段有外教空余班表)优先排sc课,en课会按照不同的上课时间段(上午3,下午4,晚上3),和sc课组成背靠背课程,由于en课的中教资源相对较多,所以会出现EN-SC-EN的排课情况,总体的排课组合有“SC-EN”,“EN-SC-EN”,“EN-SC”,当三个时间段在排课后仍有空余,则优先考虑是否还有可用的外教班表,优先排SC课。若当前时间段外教班表已满,则顺延排EN课。中外教排课原则为:在有可用班表情况下,中教(外教)每天排课差不能大于1(公平公正原则),在相同时间点下,排课所需教室按照sort顺序(基础数据)顺延安排直至排满。系统支持不同中教的人工调换(即系统安排的外教可以由人工修改其上课主题,但必须两两对换)。当所有当天的中教班表可用时间为0,则无法排en课。

以L1级别为例,假设学员follow记录中,统计的时间段喜好规则如下:

增排课
【4.1】
当一个主题的一个级别系统总排课的学员订课座率>80%,则系统按照优先级排定,自动解锁优先级为2的课程时间段内的课程(教室/老师),若是en课,则直接安排一节en课,若是sc课,则仍旧需要遵循背靠背排课方式,在sc课的两端插空排en,规则见【3.3】.

3 手工预留排课
手工预留排订课为整体排课空间的15%,预留时间段落在如下区间:


订课:
当系统排课或由CSA手工排课后,所有学员可以通过前台/微信/电话约课。
每一个学员会有若干影响因素,该影响因素会多重影响该学员看到的课程座位数,目标在于:将课程尽可能开放给更需要的学生,提升整体学员满意度。
目前考虑的影响因素包括:
学员进度,当前级别主题通过数,近两周有无noshow/cancel记录,是否使用奖励课程,是否repeat课,合同到期时间,是否命中该学员可选时段。
每一种影响因素权值不同(可配置),通过不同的权值累加,得出综合权值,与该课程的座位数进行相乘,最终得出该学员针对于该课程的可见座位数。例如:
学员A,加权因子=1.1,学员B:加权因子=0.8,故,针对于一节en课,学员A能看到10个座位,学员B只能看到8个座位,即:当该en课已经有8个人预定后,A和B同时来订课,则A可以订到(8/10),学员B无法订到(8/8).
当课程开课前24h,放开所有空余座位,不再受加权因子影响。
在某一位学员完成订课并且订课时间落入该学员的可选时间内,在该订课周期内,该学员所在级别的排课时间表,该学员的所有排课时间需要从时间表去除(减掉相应的统计数据),并重新进行时间表统计排序。当新的课排订课日期出现后,重置该时间表。
动态座位数调整因子及调整算法为:

实际推演:
考虑某一校区,L1-L12学员人数分为:

2019-11-18 12:06:30 星期一 by Aries
附目前校区三种课程体系的订课逻辑

·Expressway

·2019

·新体系