Method and device for improving course arrangement success rate, electronic equipment and storage medium
By being regarded as the overall three -dimensional table container as a whole and splitting into the class section, the problem of the existing technologies is not high, and the effect of increasing the success rate of the course is not high.
Patent Information
- Application Number
- CN202411324261.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-23
- Publication Date
- 2025-01-28
AI Technical Summary
The existing automatic class schedule algorithm has low utilization of class time space in multiple time dimensions, resulting in insufficient space available for courses and the inability to arrange all courses. The total class time information needs to be adjusted or manual class schedule is manually.
By putting all the lessons of the course as a overall three -dimensional table container, the order of the course is determined according to the number of hours of the class, and the course is split into a class that needs to take up less time space, and put it in the container to improve Restoration success rate.
It has reduced the obstacles to the subsequent courses in the curriculum position in the same course container, reducing the generation of useless positions, and increasing the success rate of automatic discharge.
Smart Images

Figure CN119379899A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of teaching management, and in particular, relates to a method, device, electronic device and storage medium for improving the success rate of class scheduling. Background Art
[0002] The course scheduling work of colleges and universities often needs to deal with irregular course scheduling, splitting theory and experimental courses, grouping special courses, and other situations, so the design of automatic course scheduling algorithms is relatively complex. Most of the existing automatic course scheduling algorithms do not have a high enough utilization rate for class time space in multiple time dimensions, resulting in insufficient space available for later courses and the inability to schedule all courses. In turn, the total class time information needs to be adjusted or the course scheduling needs to be adjusted manually.
[0003] Reference [Zhang Yanhong, Wang Lingling, Teng Dongxing. College course scheduling system based on spatial model and genetic algorithm [J]. Computer Systems Applications, 2015, 24(9):7.] discloses a college course scheduling system based on spatial model and genetic algorithm. It uses a three-dimensional space lattice model for course scheduling. However, this course scheduling method only sets the class hours of each course as discrete points, and does not consider the continuity between the class hours of the same course, as well as the setting of the number of continuous class hours. Summary of the invention
[0004] The present disclosure provides a method, device, electronic device and storage medium for improving the success rate of class scheduling, which can effectively solve the above problems.
[0005] The present disclosure is implemented as follows:
[0006] In a first aspect, the present disclosure provides a method for improving the success rate of class scheduling, the method comprising:
[0007] Determine the order in which the courses are placed in the first course schedule container according to the total number of class hours of the courses;
[0008] Wherein, the course includes at least one of the class hours;
[0009] Put the courses into the first course timetable container in sequence, and determine the position of each class hour of the course in the first course timetable container;
[0010] Wherein, the first course schedule container has a preset size in the first dimension, the second dimension and the third dimension respectively;
[0011] The position in the first timetable container is determined by the position in the three dimensions;
[0012] A course schedule is obtained according to the first course schedule container.
[0013] In some implementations, placing the courses into a first course schedule container in sequence and determining the position of each class hour of the course in the first course schedule container includes:
[0014] Dividing the course into at least two sessions;
[0015] Each of the lesson segments has a first expected size in the three dimensions;
[0016] Each of the class segments is placed in the first timetable container respectively, and the position of each class hour of the class segment in the first timetable container is determined according to the first expected sizes of the class segments in the three dimensions respectively.
[0017] In some implementations, placing each of the class segments into the first class schedule container, and determining the position of each class hour of the class segment in the first class schedule container according to the first expected sizes of the class segments in the three dimensions, includes:
[0018] Dividing a lesson into at least two sub-lessons along the third dimension;
[0019] wherein each of the sub-segments has a second expected size in the third dimension;
[0020] Place each of the sub-class segments into the first timetable container respectively, and determine the position of each class hour of the sub-class segment in the first timetable container according to the first expected sizes of the sub-class segments in the first dimension and the second dimension respectively, and the second expected size in the third dimension.
[0021] In some implementations, placing each of the class segments into the first class schedule container, and determining the position of each class hour of the class segment in the first class schedule container according to the first expected sizes of the class segments in the three dimensions, includes:
[0022] Determine the first expected size of each of the lesson segments of the course in the first dimension and the second dimension respectively according to the maximum value of the first expected size of each of the lesson segments of the course in the first dimension;
[0023] Among them, the first expected size of each of the lesson segments of the course in the third dimension is a certain value.
[0024] In some embodiments, the method further comprises:
[0025] The course includes a first course;
[0026] The first course is allowed to be placed in the second course container;
[0027] Put the first course into the second course schedule container;
[0028] The second timetable container has a boundary size in each of the three dimensions;
[0029] The position in the second timetable container is determined by the position in the three dimensions;
[0030] The first course schedule container is located in the second course schedule container.
[0031] In some implementations, the first course schedule container is divided into a third course schedule container and a fourth course schedule container in a first dimension;
[0032] Putting each of the course segments into the first course schedule container respectively includes:
[0033] Each of the course segments is placed in the third course schedule container or the fourth course schedule container respectively.
[0034] In some implementations, determining the order in which the courses are placed in the first course schedule container according to the total number of class hours of the courses includes:
[0035] The order in which the courses are placed in the first course schedule container is determined according to the weekly class hours of the courses.
[0036] In some embodiments, the method further comprises:
[0037] A course container is configured for each course respectively; the course container is associated with the course information of the course, wherein the course information includes the information of the position of each class time of the course in the first course schedule container.
[0038] In a second aspect, the present disclosure provides a device for improving the success rate of class scheduling, the device comprising:
[0039] A sorting module, used for determining the order of placing the courses into the first course table container according to the number of class hours of the courses;
[0040] Wherein, the course includes at least one of the class hours;
[0041] A course scheduling module, used to sequentially place the courses into a first course schedule container, and determine the position of each class hour of the course in the first course schedule container;
[0042] Wherein, the first course schedule container has a preset size in the first dimension, the second dimension and the third dimension respectively;
[0043] The position in the first timetable container is determined by the position in the three dimensions;
[0044] The course schedule generating module is used to obtain the course schedule according to the first course schedule container.
[0045] In a third aspect, the present disclosure provides an electronic device, including:
[0046] a memory storing execution instructions; and
[0047] A processor executes the execution instructions stored in the memory, so that the processor executes the method for improving the success rate of class scheduling in any of the above-mentioned embodiments.
[0048] In a fourth aspect, the present disclosure provides a readable storage medium, wherein the readable storage medium stores execution instructions, and when the execution instructions are executed by a processor, the method for improving the success rate of class scheduling of any of the above-mentioned embodiments is used.
[0049] Compared with the prior art, the beneficial effects of the present invention are:
[0050] 1. Put all the class hours of the course as a whole into the first timetable container, and determine the order of class scheduling according to the number of positions required to put the class hours. This can reduce the obstacles caused by the positions of the first courses in the same timetable container to the later courses, and effectively reduce the generation of too many useless positions, resulting in insufficient positions for the later courses, which affects the overall success rate of automatic scheduling.
[0051] 2. Split the course into sections that take up less class time and place them in the first timetable container to increase the success rate of placement.
[0052] 3. Each course and its course information is mapped one-to-one with the course container, so that each course is identifiable in the first course container, which is convenient for indexing, transmission and comparison for subsequent operations. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required for use in the embodiments will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present disclosure and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without creative work.
[0054] Figure 1 It is a flow chart of a method for improving the success rate of class scheduling provided by an embodiment of the present disclosure.
[0055] Figure 2 is a schematic diagram of a first course schedule container provided by an embodiment of the present disclosure;
[0056] Figure 3is a schematic diagram of a first curriculum container for placing courses provided by an embodiment of the present disclosure;
[0057] Figure 4 is a schematic diagram of a second course schedule container provided by an embodiment of the present disclosure;
[0058] Figure 5 It is a schematic diagram of the structure of the device for improving the success rate of class scheduling provided by the embodiment of the present disclosure. DETAILED DESCRIPTION
[0059] The present disclosure is further described in detail below in conjunction with the accompanying drawings and implementations. It is understood that the specific implementations described herein are only used to explain the relevant content, rather than to limit the present disclosure. It should also be noted that, for ease of description, only the parts related to the present disclosure are shown in the accompanying drawings.
[0060] It should be noted that, in the absence of conflict, the embodiments and features of the embodiments in the present disclosure can be combined with each other. The technical solution of the present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0061] Unless otherwise specified, the exemplary embodiments / embodiments shown will be understood as providing exemplary features of various details of some ways in which the technical concept of the present disclosure can be implemented in practice. Therefore, unless otherwise specified, the features of the various embodiments / embodiments can be combined, separated, interchanged and / or rearranged without departing from the technical concept of the present disclosure.
[0062] Embodiment 1
[0063] refer to Figure 1 The present disclosure provides a method for improving the success rate of class scheduling, the method comprising:
[0064] S1. Determine the order in which the courses are placed in the first course schedule container according to the total number of class hours of the courses;
[0065] Wherein, the course includes at least one of the class hours;
[0066] S2, sequentially placing the courses into the first course schedule container, and determining the position of each class hour of the course in the first course schedule container;
[0067] Wherein, the first timetable container has a preset size in each of the three dimensions;
[0068] The position in the first timetable container is determined by the position in the three dimensions;
[0069] S3. Obtain a course schedule according to the first course schedule container.
[0070] The method for improving the success rate of class scheduling provided by the disclosed embodiment is conceived as follows: the class schedule is regarded as a container with three dimensions and a certain size in each dimension, and the courses are regarded as "course spaces" placed in the container. Due to the differences in the total number of class hours included in the courses, the "course spaces" have different sizes. Specifically, the size of the "course space" is the number of "class time spaces" as units included in the "course space". The process of placing courses in the class schedule can be regarded as adopting a strategy of preferentially placing large "course spaces" in an empty container, then placing medium-sized "course spaces", and finally placing small "course spaces", which can greatly improve the space utilization of the container, thereby improving the success rate of placing all "course spaces".
[0071] The "course space" described in this disclosure may be discrete in the three-dimensional space of the container. For example, it may include multiple "segment spaces", and all or part of the "segment spaces" are discrete in the container, that is, there is no contiguous space in any of the three dimensions. Therefore, this type of "course space" is not a continuous whole. Please refer to Figure 3 There are two groups of continuous blocks marked in red, and the combination of these two groups is a "course space".
[0072] In the process of placing the "course space" into the container, part of the "course space" can be filled into the gaps between discrete "course spaces" and "course spaces", between "class segment spaces" and "class segment spaces", and between the "course space" and the first timetable container.
[0073] The position in the first timetable container is determined by the position in the three dimensions. Therefore, for most courses, the combination of the corresponding positions of all the class hours of each course in the first timetable container is continuous in at least one of the three dimensions, which is a three-dimensional space with a first expected size, for example, corresponding to only one "class space", or a combination of multiple such continuous three-dimensional spaces, for example, corresponding to multiple "class spaces", each "class space" is composed of multiple "class time spaces".
[0074] Furthermore, in a single course, the three-dimensional size of the corresponding single continuous three-dimensional space may be different.
[0075] The three-dimensional size of the corresponding single continuous three-dimensional space may be different between different courses.
[0076] The method "folds" the individual time parameters in the time sequence to form a three-dimensional space form, which is the combination of "class time space".
[0077] Instead of discretizing the courses in the form of data points in a three-dimensional matrix, setting the time parameter as one of the dimensions of the data points and setting the other parameters as the other two dimensions.
[0078] In some embodiments, reference Figure 2 , add a three-dimensional coordinate axis to the first timetable container, so that the first timetable container forms a three-dimensional space model. Among them, the first class on Monday of the first week in the timetable is taken as the origin of the three-dimensional coordinate axis, such as Figure 2 The block marked as black has a coordinate value of (0,0,0).
[0079] The three perpendicular lines connected by the origin are used as three dimensions to describe the order of week number, week, and lesson respectively. The first dimension is the X-axis, which represents the order of lesson. The second dimension is the Y-axis, which represents the order of week. The third dimension is the Z-axis, which represents the order of week number.
[0080] Conventional scheduling of class time is limited in three dimensions, so the three dimensions have preset sizes, that is, each coordinate axis has a preset coordinate value.
[0081] The meaning of the coordinate values on the three dimensions is not to represent a time point, but a time period. The time period is a class time. Class time is the smallest time unit in the class schedule. For example, a coordinate value of 1 on the first dimension represents the first class of the day in the time used for class scheduling. A coordinate value of 2 on the second dimension represents the second day of the week (Tuesday) in the time used for class scheduling. A coordinate value of 3 on the third dimension represents the third week (teaching week) in the time used for class scheduling.
[0082] The model is divided into blocks according to each coordinate value (unit time period) in three dimensions. Each block is a combination of unit time periods in three dimensions, and each block is a class space.
[0083] Each class time space in the model can be determined by the coordinate values in three dimensions. Each class time space is used to place a class time. That is, the position of each class time of the course in the first timetable container is determined.
[0084] Therefore, the coordinate values have continuity on their dimensional coordinate axes, and a combination of continuous coordinate values on any one of the three dimensions can represent a continuous time period.
[0085] The "Course Space" consists of "Class Time Spaces" with specific positions and sizes within the first curriculum container.
[0086] Due to the fact that each course needs to be taught on multiple days of a week, and that multiple courses are placed in the same first course container, and the positional influence between courses, the shape of the "course space" in three-dimensional space may be irregular.
[0087] Reference Figure 3 The Course Space may be long, like the pink blocks. Or it may have a larger cross-sectional area, like the gray blocks. The Course Space may have different orientations, like the differences between the pink and blue blocks.
[0088] The course space corresponding to the course may be a combination of the segment spaces corresponding to the lesson, such as the combination of blocks marked in red. The two segment spaces are completely separated in three-dimensional space, but as a whole, they are placed in the first lesson table container.
[0089] "Class period space" is a continuous "class time space".
[0090] The method is provided with a first week lock constraint. The "session space" is a regular cube shape in three-dimensional space.
[0091] Based on the above analysis, the "course space" can be divided into "class segment space", and the "class segment space" can be placed in the first timetable container in the form of continuous "class time space". Considering the correlation between the "class segment space" in the same "course space", placing them continuously in the first timetable container can improve the success rate of placing the "course space".
[0092] In some implementations, placing the courses into a first course schedule container in sequence and determining the position of each class hour of the course in the first course schedule container includes:
[0093] Dividing the course into at least two sessions;
[0094] Wherein, each of the class segments has a first expected size in the three dimensions respectively; the class segment includes at least one class period;
[0095] Each of the class segments is placed in the first timetable container respectively, and the position of each class hour of the class segment in the first timetable container is determined according to the first expected sizes of the class segments in the three dimensions respectively.
[0096] The class period has regular and consecutively arranged class hours. That is, the length, width and height of the cube formed by the class period space are respectively the first expected sizes in the three dimensions.
[0097] Furthermore, the first expected size of the class segment in the second dimension is limited to a unit size, that is, each class segment is a class segment in a certain day.
[0098] Reference Figure 3 , under this limitation, the combination of blocks marked in gray represents two lesson periods.
[0099] There are multiple sections in the same course, and each section needs to be put in separately. The result of scheduling is that the same course is divided into multiple days in a week.
[0100] It should be noted that different classes may have different positions on the third dimension (expected to be the same size), that is, classes are divided into multiple days a week, and the starting and ending times of classes on different days are different.
[0101] The position of a course or lesson in the first curriculum container refers to the combination of the positions of all the lessons it contains.
[0102] In other words, determining the location of a course or lesson means determining the location of each class hour it contains.
[0103] From the above analysis, it can be seen that the method needs to split the course into multiple sections and put them into different second dimensions. Therefore, it is necessary to utilize every position on the first dimension to avoid the situation where there are vacancies with smaller positions (one or several positions) on the first dimension, but no sections of appropriate size on the first dimension are placed therein, thus becoming useless positions.
[0104] For courses with few class hours but many sections, most of the sections are 1 to 3. However, there are generally 4 sections in the morning and afternoon of a day. If such sections fail to occupy all 4 sections at once, 1 to 2 sections will be left vacant. That is, a large number of such small positions in the first dimension will be generated in the timetable container. At this time, if there are no such sections in the subsequent sections to put these 1 to 2 free sections, these free positions will become useless positions. If there are too many useless positions in the timetable container, there will not be enough positions for the courses scheduled later.
[0105] Although giving priority to courses with more class hours will also result in a position with a smaller size in the first dimension, it can be avoided from becoming a useless position by subsequently placing the course segments of courses with fewer class hours but more segments.
[0106] The method is to put the "course space" in the timetable container, which inevitably leaves some empty space unfilled, forming a gap, especially in the first dimension.
[0107] The method preferentially places large "course spaces" in the hope of creating larger gaps, thereby increasing the success rate of placing medium-sized "course spaces" or small "course spaces" into these gaps. Smaller gaps created by placing medium-sized "course spaces" are filled by small "course spaces". The method can reduce the residual gaps that become useless positions.
[0108] In some embodiments, the position of the lesson segment in the first timetable container can be determined by the lesson time space of the smallest coordinate group in the lesson segment and the first expected size of the lesson segment in the three dimensions. Alternatively, the lesson time space of the smallest coordinate group and the lesson time space of the largest coordinate group in the lesson segment.
[0109] The coordinate value of the class time space of the minimum coordinate group in each dimension is the minimum among all class time spaces. The coordinate value of the class time space of the maximum coordinate group in each dimension is the maximum among all class time spaces.
[0110] Reference Figure 3 , the smallest coordinate group in the blue segment is (4,0,0) and the largest coordinate group is (4,0,4).
[0111] Directly positioning through two sets of coordinate groups can make all the class hours of a section related to each other. As a whole, the position of the section in the first timetable container and the positions where the class hours cannot be placed in the first timetable container can be quickly determined. In the subsequent scheduling process, these positions can be avoided from being traversed, thereby improving the efficiency of scheduling.
[0112] In some implementations, placing each of the class segments into the first class schedule container, and determining the position of each class hour of the class segment in the first class schedule container according to the first expected sizes of the class segments in the three dimensions, includes:
[0113] Determine the first expected size of each of the lesson segments of the course in the first dimension and the second dimension respectively according to the maximum value of the first expected size of each of the lesson segments of the course in the first dimension;
[0114] Among them, the first expected size of each of the lesson segments of the course in the third dimension is a certain value.
[0115] In actual class scheduling, for a course with a certain number of class hours, the expected size in the third dimension is specifically limited, and the first expected size in the first dimension is to limit its maximum value, that is, to limit the maximum number of consecutive classes for each class. Therefore, the course can be divided into segments of suitable shapes according to the remaining space in the first class schedule container, that is, the size that can be placed in each dimension.
[0116] Reference Figure 3If the first timetable container is suitable for placing a long strip (first dimension) of "course space", such as the blue block combination, the number of classes in each section is set to the maximum number of consecutive classes, so that teaching can be completed in fewer days in a week. Correspondingly, the number of split sections is smaller. On the contrary, if the remaining length of the first timetable container in the first dimension is relatively scattered, the number of classes in each section is set to be less than the maximum number of consecutive classes, and multiple sections are used to reach the weekly class hours, such as the gray block combination.
[0117] It should be pointed out that the premise of the above example is that the two block combinations have the same size in the third dimension.
[0118] In some implementations, different lesson periods may exist in the same course and classes may be divided into different classes and taken at different times.
[0119] In some implementations, determining the order in which the courses are placed in the first course schedule container according to the total number of class hours of the courses includes:
[0120] The order in which the courses are placed in the first course schedule container is determined according to the weekly class hours of the courses.
[0121] When scheduling courses with the same total number of class hours, priority will be given to courses with more weekly class hours.
[0122] The reason is that courses with many weekly class hours generally need to be divided into more segments under the constraint of the maximum number of consecutive classes, and the positions of these segments in the third dimension should be the same or similar, that is, multiple "segment spaces" are placed continuously in the first timetable container. Therefore, considering the mutual positional obstruction relationship between these "segment spaces", the success rate of placing these segments when there are more remaining positions is higher.
[0123] For courses with fewer weekly class hours, the corresponding "course space" tends to be more rectangular in shape (the third dimension), and the courses are less divided. Therefore, even if the course cannot be put in as a whole, after being divided into sub-segments, the sub-segments can be shifted in the first dimension or the second dimension, and the success rate of placement is higher.
[0124] Another way to explain the above explanation is that, under the size limit of the second dimension of each class segment, courses with more weekly class hours need to be stacked on the first dimension, while courses with fewer weekly class hours are scattered on the third dimension. Therefore, the success rate can be improved by giving priority to courses with more weekly class hours.
[0125] In some implementations, placing each of the class segments into the first class schedule container, and determining the position of each class hour of the class segment in the first class schedule container according to the first expected sizes of the class segments in the three dimensions, includes:
[0126] Dividing a lesson into at least two sub-lessons along the third dimension;
[0127] wherein each of the sub-segments has a second expected size in the third dimension;
[0128] Place each of the sub-class segments into the first timetable container respectively, and determine the position of each class hour of the sub-class segment in the first timetable container according to the first expected sizes of the sub-class segments in the first dimension and the second dimension respectively, and the second expected size in the third dimension.
[0129] When all the remaining positions in the third dimension of the first timetable container cannot accommodate a lesson, the lesson will be split. That is, the "lesson space" is split into smaller "sub-lesson spaces" so that one of the "sub-lesson spaces" can fit the largest of all the remaining positions, and the remaining other "sub-lesson spaces" can also find a suitable position more easily. Otherwise, you can choose to split it into smaller "sub-spaces" of the "sub-lesson space".
[0130] In some embodiments, the method is provided with a second week lock constraint, which also has the ability to prevent faults, when the breakpoints of any two sections or sub-sections of the same course in the third dimension are not greater than a coordinate value, that is, it is used to constrain a course from being absent for more than one week.
[0131] In some implementations, the first course schedule container is divided into a third course schedule container and a fourth course schedule container in a first dimension;
[0132] Putting each of the course segments into the first course schedule container respectively includes:
[0133] Each of the course segments is placed in the third course schedule container or the fourth course schedule container respectively.
[0134] In the actual course scheduling process, it is inevitable to distinguish between the morning, afternoon, and evening time periods. In most cases, consecutive classes can only be held in one of these time periods. Therefore, the first timetable container is split into multiple sub-timetable containers. The timetables that are allowed to cross sections can be directly traversed in the first timetable container. When placing the timetables that are not allowed to cross sections, they need to be traversed in each sub-timetable container.
[0135] In some embodiments, the method further comprises:
[0136] The course includes a first course;
[0137] The first course is allowed to be placed in the second course container;
[0138] Put the first course into the second course schedule container;
[0139] The second timetable container has a boundary size in each of the three dimensions;
[0140] The position in the second timetable container is determined by the position in the three dimensions;
[0141] The first course schedule container is located in the second course schedule container.
[0142] The bounds size in each dimension is no less than the preset size.
[0143] The second timetable container realizes the expansion of the position that can be placed in the timetable.
[0144] That is, due to the time constraints of class scheduling, the sizes in the three dimensions cannot grow infinitely, and each has a predeterminable maximum value, which is the boundary size.
[0145] When scheduling classes based on semesters, the class schedule of each semester cannot span into the next semester. Therefore, the boundary size is a limit to the growth of coordinate values in three dimensions.
[0146] Correspondingly, due to the existence of evening time periods, weekends (Saturday and Sunday) and holidays, although classes are usually not scheduled, special courses are allowed or required to be scheduled during these time periods. The maximum coordinate value of at least one of the three dimensions of the course segments of these courses may exceed the preset coordinate value.
[0147] Reference Figure 4 ,Correspondingly, as the dimension size expands, the second timetable container has more locations for putting in the time hours, such as the block combination marked in cyan.
[0148] For courses that can be placed outside the first course schedule container, delaying their placement order can improve the placement success rate of courses that can only be placed in the first course schedule container.
[0149] For some courses, they can be manually placed in the first course table container first, and then the positions in the first course table container are traversed to place other courses.
[0150] The order of traversal can be to start traversal from a location close to the origin, or to spread the lessons into different days of the week. For example, if the previous lesson is placed on Thursday, the next lesson will prioritize finding a location on Friday. When adding constraints to the placement conditions, traversal can also be started from a specific coordinate in a certain dimension, or a specific coordinate group.
[0151] There may be constraints on the insertion conditions between sections of the same course or sections of different courses.
[0152] For example, in the aforementioned situation where classes are divided but not taught at the same time, in order to ensure the same progress, the positions of the two classes on the third dimension need to be the same.
[0153] For example, in order to ensure the synchronization of theoretical courses and experimental courses, it is also necessary to consider the positions of the two in the third dimension to avoid disconnection in teaching.
[0154] For another example, if the first course needs to be taught after the second course, then the lesson in the second course needs to be positioned behind the lesson in the first course on the third dimension.
[0155] In some embodiments, the method further comprises:
[0156] A course container is configured for each course. The course container is associated with the course information of the course. That is, the course container is generated according to the course information.
[0157] Each course container is respectively configured with a course identifier, which can be constructed into an identifier code through a fixed algorithm for easy storage, transmission and comparison.
[0158] Place the course container into the course library to provide an index for subsequent operations.
[0159] Course information is a series of information that distinguishes different courses, including but not limited to course ID, course type, course major, etc.
[0160] The course information includes the total class hours, weekly class hours, consecutive class hours, etc. of the course.
[0161] That is to say, each "course space" should be labeled to distinguish them.
[0162] Reference Figure 3 , which can be regarded as different “course spaces” with different colors in the same first course timetable container.
[0163] In some embodiments, the method further sets a day lock constraint, that is, each class of the week is held on a different day, and multiple different sessions of the same course will not appear at the same time on a single day.
[0164] In some embodiments, the method provides a class scheduler.
[0165] The course scheduler is the main operating tool of the course scheduling algorithm. It schedules courses in units of sections and is used to control the overall three-dimensional structure of each section of the course and ensure that the space occupied by the course scheduling in the model meets the requirements of the course information.
[0166] In some embodiments, the method further comprises:
[0167] Associate the minimum and maximum coordinate groups in each session of a course with the course container for that course.
[0168] The coordinate information of the course is associated with the course container of the course and stored in the course container to facilitate indexing, transmission and comparison for subsequent operations.
[0169] In some embodiments, the method provides a lesson library.
[0170] The lesson library stores the lesson objects of all courses in the form of hash mapping, and builds an index to quickly or batch obtain the location of the specified lesson object in the course container. The lesson library is used to provide data in three dimensions: week, lesson section, and weekly number.
[0171] Furthermore, the course library is equipped with an independent conflict system to avoid conflicts in the positions of course objects in the course timetable container.
[0172] The conflict system is used to determine whether the positions of two course objects conflict. Conflicts can be divided into default conflicts and custom conflicts. Custom conflicts are set by users and can be set to have the highest priority. For different course objects, the default conflicts may be different.
[0173] In some implementations, the method provides a course library.
[0174] The course library stores all course objects in the form of hash maps and builds indexes to quickly or batch retrieve specified course objects.
[0175] Furthermore, the course library is equipped with a weight system, and the course scheduling order of the course objects is confirmed according to the weights when the course objects are placed.
[0176] The weight system quantifies course information and course settings into weights through a fixed algorithm. The weights can be divided into multiple levels, such as the absolute priority set by the user, whether crossing the boundary (crossing the time period or crossing the preset coordinate value), the number of consecutive classes, the number of weeks required, the total number of class hours, etc.
[0177] In some implementations, information on a fourth dimension is added to the lesson segments.
[0178] For example, the fourth dimension is address information, which is used to determine the class location while scheduling classes.
[0179] Or / and, the fifth dimension is teacher information, which determines the teaching teacher while scheduling the class segments.
[0180] Or / and, the sixth dimension is class information, which determines the class that will take the class while scheduling the class.
[0181] Accordingly, in some implementations, the method sets up an address library.
[0182] The address library stores all address objects in the form of hash maps, and builds indexes to quickly or batch obtain specified address objects.
[0183] The address library is used to provide address data of the fourth dimension.
[0184] Furthermore, the address database is equipped with an independent conflict system to avoid conflicts in addresses between classes.
[0185] In some implementations, the timetable container in the method implements the scheduling of courses in a sub-timetable, that is, is used to generate a sub-timetable.
[0186] Each timetable container is an independent timetable area, for example, a timetable for a major.
[0187] Different sub-course schedules are equipped with different course libraries.
[0188] In addition to accepting the overall scheduling rules of the root schedule, each sub-schedule has its own set of overall scheduling rules.
[0189] Accordingly, there is a relationship between the multiple sub-course tables, and the relationship includes synchronization and conflict of information in various dimensions.
[0190] Multiple sub-course schedules form a high-dimensional root course schedule, which at least includes the dimension of the sub-course schedule sequence. The root course schedule has the aforementioned overall course scheduling rules.
[0191] That is, the root timetable is generated based on the timetable containers of multiple sub-timetables.
[0192] In some implementations, the method further includes: associating a position of the first lesson segment in the first curriculum container with a position of the second lesson segment in the fifth curriculum container.
[0193] Different majors may have classes together, so the class times on the two sub-timetables need to be associated, that is, the association means that they are in the same position in the timetable container.
[0194] When there is address information in the fourth dimension, only one course can be scheduled at the same time and location. Such conflicts can be detected by comparing the information at the same location in the timetable container.
[0195] Likewise, the same teacher can only schedule one course at one location at one time.
[0196] The class scheduling logic of the method is as follows:
[0197] 1. Take out a course to be scheduled and take out one of the course sections. If the course to be scheduled cannot be taken out, the course scheduling will be stopped.
[0198] 2. Based on the expected size of the course segment in three dimensions, request the timetable container to locate the available space for the segment.
[0199] According to the course information such as the total number of class hours and weekly class hours associated with the course, the three-dimensional expectations of each class section are generated and placed into the timetable container in the three dimensions of (class section, week, number of weeks).
[0200] a. The course scheduler generates a list of positions that meet expectations and places them according to the rules.
[0201] b. If there is no location that meets your expectations, you can split the lesson and put it in separately.
[0202] For example, if the course information of a course is that the total number of class hours is 50, there are 10 classes per week, and each day is 2 consecutive class hours. Then the three-dimensional expectation of one of the class segments is (1,1,4)
[0203] When the second class on Tuesday of the second week is reached, the coordinate point is (1,1,1). The course scheduler will check the position between coordinate point a (1,1,1) and coordinate point b (2,0,5). If any part of the position is occupied, it will be skipped and the next position will be traversed.
[0204] When a position in the course container is occupied, the associated information of the coordinate group of coordinate point a and coordinate point b at the position, as well as the information that the position has been placed in a class, will be recorded and associated with the course container.
[0205] Then place other sessions of the same course into the course schedule container.
[0206] This process continues until all courses are placed. Then, a timetable is generated based on the position of each course segment in the timetable container.
[0207] The method uses divide-and-conquer and greedy as the main algorithm modes, forms constraints by passing in parameters of three dimensions to ensure that the results meet expectations, improves the success rate by preprocessing the constraints of the class structure, achieves dimensionality reduction by decomposing and merging each dimension, thereby reducing the computational complexity and the number of course traversals during the scheduling process. The dynamic programming algorithm is used for detailed operations to make the scheduling results more in line with expectations, thereby improving the efficiency of scheduling.
[0208] Embodiment 2
[0209] The disclosed embodiment provides a device for improving the success rate of class scheduling.
[0210] The device may include a corresponding module for performing each or several steps in the above flowchart. Therefore, each step or several steps in the above flowchart may be performed by a corresponding module, and the device may include one or more modules in these modules. The module may be one or more hardware modules specially configured to perform the corresponding steps, or implemented by a processor configured to perform the corresponding steps, or stored in a computer-readable medium for implementation by a processor, or implemented by some combination.
[0211] Specifically, Figure 5 As shown, a device 1000 for improving the success rate of class scheduling includes:
[0212] A sorting module 1002 is used to determine the order of placing the courses into the first course schedule container according to the number of class hours of the courses;
[0213] Wherein, the course includes at least one of the class hours;
[0214] The course scheduling module 1004 is used to sequentially place the courses into the first course schedule container and determine the position of each class hour of the course in the first course schedule container;
[0215] Wherein, the first course schedule container has a preset size in the first dimension, the second dimension and the third dimension respectively;
[0216] The position in the first timetable container is determined by the position in the three dimensions;
[0217] The course schedule generating module 1006 is used to obtain the course schedule according to the first course schedule container.
[0218] The present disclosure also provides an electronic device, including: a memory, the memory storing execution instructions; and a processor or other hardware module, the processor or other hardware module executes the execution instructions stored in the memory, so that the processor or other hardware module executes the above-mentioned method for improving the success rate of class scheduling.
[0219] The present disclosure also provides a readable storage medium, in which execution instructions are stored. When the execution instructions are executed by a processor, they are used to implement the above-mentioned method for improving the success rate of class scheduling.
[0220] Among them, the hardware structure adopted by the device for improving the success rate of class scheduling based on the hardware implementation of the present disclosure using a processor can be implemented using a bus architecture. The bus architecture can include any number of interconnected buses and bridges, depending on the specific application and overall design constraints of the hardware. The bus connects various circuits including one or more processors, memories and / or hardware modules together. The bus can also connect various other circuits such as peripherals, voltage regulators, power management circuits, external antennas, etc.
[0221] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Component (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one connecting line is used in this figure, but it does not mean that there is only one bus or one type of bus.
[0222] Any process or method description in the flowchart or otherwise described herein can be understood as a module, fragment or portion of a code representing one or more executable instructions for implementing the steps of a specific logical function or process, and the scope of the preferred embodiments of the present disclosure includes other implementations, in which the functions may not be performed in the order shown or discussed, including performing the functions in a substantially simultaneous manner or in a reverse order according to the functions involved, which should be understood by a person skilled in the art of the present disclosure. The processor performs the various methods and processes described above. For example, the method implementation in the present disclosure can be implemented as a software program, which is tangibly contained in a machine-readable medium, such as a memory. In some embodiments, part or all of the software program can be loaded and / or installed via a memory and / or a communication interface. When the software program is loaded into the memory and executed by the processor, one or more steps in the method described above can be performed. Alternatively, in other embodiments, the processor can be configured to perform one of the above methods in any other appropriate manner (e.g., by means of firmware).
[0223] The logic and / or steps represented in the flowchart or otherwise described herein may be embodied in any readable storage medium for use by an instruction execution system, apparatus, or device (such as a computer-based system, a system including a processor, or other system that can fetch instructions from and execute instructions on an instruction execution system, apparatus, or device), or in combination with such instruction execution systems, apparatuses, or devices.
[0224] For the purposes of this specification, a "readable storage medium" may be any device that can contain, store, communicate, propagate or transmit a program for use with or in conjunction with an instruction execution system, device or apparatus. More specific examples of readable storage media (a non-exhaustive list) include the following: an electrical connection with one or more wirings (electronic device), a portable computer disk case (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and editable read-only memory (EPROM or flash memory), a fiber optic device, and a portable read-only memory (CDROM). In addition, the readable storage medium may even be paper or other suitable medium on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, deciphering or, if necessary, processing in another suitable manner, and then stored in a memory.
[0225] It should be understood that the various parts of the present disclosure can be implemented in hardware, software, or a combination thereof. In the above-mentioned embodiments, multiple steps or methods can be implemented in software stored in a memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented by any one of the following technologies known in the art or their combination: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.
[0226] A person skilled in the art may understand that all or part of the steps of implementing the above-mentioned implementation method may be completed by instructing related hardware through a program, and the program may be stored in a readable storage medium, which, when executed, includes one or a combination of the steps of the implementation method.
[0227] In addition, each functional unit in each embodiment of the present disclosure may be integrated into a processing module, or each unit may exist physically separately, or two or more units may be integrated into one module. The above-mentioned integrated module may be implemented in the form of hardware or in the form of a software functional module. If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it may also be stored in a readable storage medium. The storage medium may be a read-only memory, a disk or an optical disk, etc.
[0228] Those skilled in the art should understand that the above embodiments are only for the purpose of clearly illustrating the present disclosure, and are not intended to limit the scope of the present disclosure. For those skilled in the art, other changes or modifications may be made based on the above disclosure, and these changes or modifications are still within the scope of the present disclosure.
Claims
1. A method for improving the success rate of class scheduling, characterized in that: The method comprises: Determine the order in which the courses are placed in the first course schedule container according to the total number of class hours of the courses; Wherein, the course includes at least one of the class hours; Put the courses into the first course timetable container in sequence, and determine the position of each class hour of the course in the first course timetable container; Wherein, the first course schedule container has a preset size in the first dimension, the second dimension and the third dimension respectively; The position in the first timetable container is determined by the position in the three dimensions; A course schedule is obtained according to the first course schedule container.
2. The method for improving the success rate of class scheduling as claimed in claim 1, characterized in that: Placing the courses into a first course schedule container in sequence, and determining the position of each class hour of the course in the first course schedule container, comprises: Dividing the course into at least two sessions; Each of the lesson segments has a first expected size in the three dimensions; Each of the class segments is placed in the first timetable container respectively, and the position of each class hour of the class segment in the first timetable container is determined according to the first expected sizes of the class segments in the three dimensions respectively.
3. The method for improving the success rate of class scheduling as claimed in claim 2, characterized in that: Placing each of the course segments into the first course schedule container respectively, and determining the position of each class hour of the course segment in the first course schedule container according to the first expected sizes of the course segments in the three dimensions respectively, including: Dividing a lesson into at least two sub-lessons along the third dimension; wherein each of the sub-segments has a second expected size in the third dimension; Place each of the sub-class segments into the first timetable container respectively, and determine the position of each class hour of the sub-class segment in the first timetable container according to the first expected sizes of the sub-class segments in the first dimension and the second dimension respectively, and the second expected size in the third dimension.
4. The method for improving the success rate of class scheduling as claimed in claim 2, characterized in that: Placing each of the course segments into the first course schedule container respectively, and determining the position of each class hour of the course segment in the first course schedule container according to the first expected sizes of the course segments in the three dimensions respectively, including: Determine the first expected size of each of the lesson segments of the course in the first dimension and the second dimension respectively according to the maximum value of the first expected size of each of the lesson segments of the course in the first dimension; Among them, the first expected size of each of the lessons in the course on the third dimension is a certain value.
5. The method for improving the success rate of class scheduling as claimed in claim 1, characterized in that: The method further comprises: The course includes a first course; The first course is allowed to be placed in the second course container; Put the first course into the second course schedule container; The second timetable container has a boundary size in each of the three dimensions; The position in the second timetable container is determined by the position in the three dimensions; The first course schedule container is located in the second course schedule container.
6. The method for improving the success rate of class scheduling as claimed in claim 2, characterized in that: Dividing the first course schedule container into a third course schedule container and a fourth course schedule container on a first dimension; Putting each of the course segments into the first course schedule container respectively includes: Each of the course segments is placed in the third course schedule container or the fourth course schedule container respectively.
7. The method for improving the success rate of class scheduling as claimed in claim 1, characterized in that: The method further comprises: A course container is configured for each course respectively; the course container is associated with the course information of the course, wherein the course information includes the information of the position of each class time of the course in the first course schedule container.
8. A device for improving the success rate of class scheduling, characterized in that: The device comprises: A sorting module, used for determining the order of placing the courses into the first course table container according to the number of class hours of the courses; Wherein, the course includes at least one of the class hours; A course scheduling module, used to sequentially place the courses into a first course schedule container, and determine the position of each class hour of the course in the first course schedule container; Wherein, the first course schedule container has a preset size in the first dimension, the second dimension and the third dimension respectively; The position in the first timetable container is determined by the position in the three dimensions; The course schedule generating module is used to obtain the course schedule according to the first course schedule container.
9. An electronic device, characterized in that: include: A memory storing execution instructions; as well as A processor, wherein the processor executes the execution instructions stored in the memory, so that the processor executes the method for improving the success rate of class scheduling as described in any one of claims 1 to 7.
10. A readable storage medium, characterized in that: The readable storage medium stores execution instructions, which, when executed by a processor, are used to implement the method for improving the success rate of class scheduling as described in any one of claims 1 to 7.