This application claims the benefit of Chinese Patent Application No. 201711288182.7, filed Dec. 7, 2017.
The present disclosure generally relates to a class timetable adjustment system, more particularly to a class timetable adjustment system capable of prompting a class collision description and a total score, in real time, for reference of class scheduling operation, and a method thereof.
In recent years, with the popularization and rapid development of digitalization, various digital applications are springing up, and a class scheduling system is one of the common digital applications.
In general, the class scheduling system is used to arrange classes in consideration of teaching times, teachers, classrooms, students, courses, and class scheduling rules, so as to generate a class timetable. However, when a user operates the conventional class scheduling system to adjust the classes, the conventional class scheduling system is unable to provide, in real time, a feedback message to prompt the user whether the class adjustment may cause class collision, and the conventional class scheduling system is also unable to prompt severity of the class collision to the user, for allowing the user to adjust the classes according to the feedback message; as a result, the user cannot know the class collision event until all class adjustments are completed, and the user must adjust the classes again and again, and it seriously reduces efficiency of scheduling classes. In addition, due to lack of comparison of the class timetables before adjustment and after adjustment, the user is hard to confirm whether the adjusted timetable is better than the timetable before adjustment; as a result, the user may have worse timetable after adjustment. Therefore, the conventional class scheduling system has the problems of poor appropriateness and poor convenience.
In order to solve above-mentioned problems, some manufacturers develop a class scheduling system capable of prompting whether collision between the two exchanged classes occurs, so that the user can adjust the classes according to the prompt. However, this system merely shows whether the exchanged courses collided with each other, and the user still needs to be tried for many times to know whether collision occurs in all courses. Furthermore, the system also does not prompt the severity of class collision, so the user may have worse class timetable after adjustment. Therefore, the system still does not effectively solve the problems of poor appropriateness and convenience.
Therefore, what is needed is to develop an improved technical solution to solve the conventional problem of poor suitability and convenience in class scheduling.
In order to solve convention problem, the present invention is to provides a class timetable adjustment system with real-time feedback and a method thereof
According to an embodiment, the present invention provides a class timetable adjustment system with real-time feedback, and the system comprises a setting module, an initialization module, a calculation module, a display module, a dragging module, a processing module and a prompting module. The setting module is configured to set a plurality of class schedule constraints, and each class schedule constraint comprises a score. The initialization module is configured to perform calculation according to heuristic algorithm in consideration of the class schedule constraints, so as to generate an initial class timetable. The initial class timetable comprises class messages, and each class message comprises an identifier and an index. The calculation module is configured to check whether the class schedule constraints are satisfied, and when one of the plurality of class schedule constraints is satisfied, the calculation module accumulates the score of the class schedule constraint being satisfied, so as to generate the total score, and when one of the plurality of class schedule constraints is not satisfied, the calculation module subtracts the score of the class schedule constraint not being satisfied, from the total score. After the comparison is completed, the total score is displayed. The display module is configured to generate a graphical interface comprising a plurality of block units for display. According to the indices, the plurality of block units can correspond to the plurality of class messages, respectively, and the display module displays a class and a course title according to the identifier of the class message. The dragging module is configured to drag block unit. When the dragging module drags one of the block units, the dragging module defines the dragged block unit as a source block unit, and when the dragging action is stopped, the dragging module defines the block unit at the position where the dragging action is stopped, as a destination block unit, and the class schedule constraints are checked again whether the class schedule constraints are satisfied, so as to recalculate the total score for display. The processing module is configured to retrieve the class message corresponding to the source block unit as a source course, and compare the source course with the class messages corresponding to the plurality of block units one by one, so as to find out the block unit which is not allowed to exchange, according to the identifiers, indices and the class schedule constraints, and the processing module sets the found block unit with a collision flag and a collision description. When the destination block unit is not set with the collision flag and the dragging action is stopped, the processing module exchanges the class messages corresponding to the source block unit and the destination block unit. The prompting module is configured to highlight the block unit with the collision flag, and when the highlighted block unit corresponds to the destination block unit, the prompting module displays the collision description corresponding to the highlighted block unit.
Furthermore, the present invention provides a class timetable adjustment method with real-time feedback, and the method comprises steps of setting the class schedule constraints, wherein each class schedule constraint comprises class messages; in condition of the plurality of class schedule constraints, performing calculation according to a heuristic algorithm, to generate an initial class timetable, wherein the initial class timetable comprises class messages which each comprises an identifier and an index; checking whether the plurality of class schedule constraints are satisfied, and when one of the plurality of class schedule constraints is satisfied, accumulating the score of the class schedule constraint being satisfied, so as to generate a total score, and when one of the plurality of class schedule constraints is not satisfied, subtracting the score of the class schedule constraint not being satisfied, from the total score, and after the comparison is completed, displaying the total score; generating a graphical interface comprising a plurality of block units for display, wherein the plurality of block units correspond to the plurality of class messages according to the indices, respectively, and a class and a course title are displayed according to the identifier of the class message; in a condition that one of the plurality of block units is dragged, defining the dragged block unit as a source block unit, and when the dragging action is stopped, defining the block unit at the position where the dragging action is stopped, as a destination block unit, and checking again whether the plurality of class schedule constraints are satisfied, to recalculate the total score for display; retrieving the class message corresponding to the source block unit to serve as a source course, and comparing the source course with the class messages corresponding to the plurality of block units one by one, so as to find out the block unit which is not allowed to exchange, according to the identifiers, indices and the class schedule constraints, and setting the found block unit with a collision flag and a collision description, wherein when the destination block unit is not set with the collision flag and the dragging action is stopped, the class messages corresponding to the source block unit and the destination block unit are exchanged; highlighting the block unit set with the collision flag, and displaying the collision description corresponding to the highlighted block unit when the highlighted block unit corresponds to the destination block unit.
According to above content, the difference between the technology of the present invention and the conventional technology is that the system and the method of the present invention can perform calculation according to the heuristic algorithm in consideration of the class schedule constraints, to generate the initial class timetable comprising the class messages, and continuously check whether the class schedule constraints are satisfied, and calculate the total score according to the score of the check result, and generate the graphical interface comprising block units to display the initial class timetable; and, when one of the block unit is dragged, the system can find out the block unit not allowed to exchange according to the indices and the class schedule constraints, and set the found block unit with the collision flag and the collision description, so as to facilitate the user to adjust the total score in real-time during the class scheduling operation, and display and prompt certain block unit according to the collision description.
The technical solution of the present invention can achieve technical effect of improving appropriateness and convenience in class scheduling operation.
The structure, operating principle and effects of the present disclosure will be described in detail by way of various embodiments which are illustrated in the accompanying drawings.
The following embodiments of the present disclosure are herein described in detail with reference to the accompanying drawings. These drawings show specific examples of the embodiments of the present disclosure. It is to be understood that these embodiments are exemplary implementations and are not to be construed as limiting the scope of the present disclosure in any way. Further modifications to the disclosed embodiments, as well as other embodiments, are also included within the scope of the appended claims. These embodiments are provided so that this disclosure is thorough and complete, and fully conveys the inventive concept to those skilled in the art. Regarding the drawings, the relative proportions and ratios of elements in the drawings may be exaggerated or diminished in size for the sake of clarity and convenience. Such arbitrary proportions are only illustrative and not limiting in any way. The same reference numbers are used in the drawings and description to refer to the same or like parts.
It is to be understood that although the terms ‘first’, ‘second’, ‘third’, and so on, may be used herein to describe various elements, these elements should not be limited by these terms. These terms are used only for the purpose of distinguishing one component from another component. Thus, a first element discussed herein could be termed a second element without altering the description of the present disclosure. As used herein, the term “or” includes any and all combinations of one or more of the associated listed items.
It will be understood that when an element or layer is referred to as being “on,” “connected to” or “coupled to” another element or layer, it can be directly on, connected or coupled to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly connected to” or “directly coupled to” another element or layer, there are no intervening elements or layers present.
In addition, unless explicitly described to the contrary, the word “comprise” and variations such as “comprises” or “comprising”, will be understood to imply the inclusion of stated elements but not the exclusion of any other elements.
The terms defined in the present invention are described before illustration of the class timetable adjustment system with real-time feedback and a method thereof of the present invention. The class schedule constraint of the present invention is a constraint which must be considered during class scheduling operation, and the class schedule constraint may be course, classroom, teacher, student, time slot, class schedule preference, and class collision list. The class scheduling problem has been proven to be an NP-complete problem, and the calculation result based on the class schedule constraints may just be a better solution, but not a best solution. In the present invention, each class schedule constraint can comprise a score, so that a total score of a class timetable can be increased when one of the class schedule constraints is satisfied, and the total score can be decreased when one of the class schedule constraints is not satisfied. The score of the class schedule constraint can be set according to a priority level of the class schedule constraint, for example, when the class schedule constraint has a higher priority level, the score of the class schedule constraint is also higher; and when the class schedule constraint has a lower priority level, the score of the class schedule constraint is also lower.
The following illustrates the class timetable adjustment system and the method thereof of the present invention with reference to drawings. Please refer to
The initialization module 120 is configured to perform calculation based on a heuristic algorithm in consideration of the class schedule constraints, to generate an initial class timetable. The initial class timetable comprises a plurality of class messages, and each class message comprises an identifier and an index. In actual implementation, the class scheduling problem has been proven to be a NP-complete problem, so that the heuristic algorithm such as Hill-Climbing Algorithm, Simulated Annealing Algorithm, Tabu Search Algorithm, Genetic Algorithm, Great Deluge Algorithm or Particle Swarm Optimization Algorithm, can be used to solve the class scheduling problem (NP-complete problem), thereby finding out an more appropriate class scheduling manner in consideration of the class schedule constraints, to generate the initial class timetable. It is to be noted that the generated initial class timetable comprises the plurality of class messages which each has the identifier and the index, and the identifier can include a class identifier, a classroom identifier, a teacher identifier, a subject identifier, and so on, and the index can include a time slot index, a date index, and so on. According to the identifier and index, it can know which class in which day is which course performed by which teacher in which classroom. For example, the date index can indicate which day, the time slot index can indicate which class, the teacher identifier can indicate which teacher, the classroom identifier can indicate which classroom, and the subject identifier can indicate which course. All of the aforementioned identifiers and indices can be regarded as a class integrally, and each class is assigned with the unique class identifier to distinguish from other classes. It is to be noted that when the initialization module 120 generates the initial class timetable, the initialization module 120 also generates a class collision list according to the identifiers and the indices of the class messages, and the generated class collision list can be used as the class schedule constraints, so as to prevent occurrence of class collision, for example, to prevent multiple courses from being arranged to the same time period for same grade and same class.
The calculation module 130 is configured to compare and check whether the class schedule constraints are satisfied. When one of the plurality of class schedule constraints is satisfied, the calculation module accumulates the score of the class schedule constraint being satisfied, so as to generate the total score; and when one of the class schedule constraints is not satisfied, the calculation module subtracts the score of the class schedule constraint not being satisfied, from the total score. After the comparison is completed, the total score is displayed. For example, suppose that the score of the first class schedule constraint is 10, and the score of the second class schedule constraint is 20, and when the first class schedule constraint is not satisfied and the second class schedule constraint is satisfied, the total score can be calculated by subtracting 10 and adding 20; in the other words, suppose that an original total score is 0, the total score becomes 10 after calculation, and the calculation formula is 0−10+20=10. According to the change in the total score after adjustment, the user can determine how many class schedule constraints are satisfied. In actual implementation, the score of the class schedule constraint can be determined according to the criticality of the class schedule constraint; for example, when the class schedule constraint has a higher criticality, the score of the class schedule constraint can be set to be higher; otherwise, when the class schedule constraint has a lower criticality, the score of the class schedule constraint can be set to be lower.
The display module 140 is configured to generate a graphic interface including block units. According to the index of the class message, each block unit can correspond to one of the plurality of class messages. The display module can display a class and a course title according to the identifier of the class message. In actual implementation, each block unit represents a time block and has the unique index to facilitate to correspond to the assigned block unit. The block units and the graphical interface will be described in detail in following paragraph, with reference to the accompanying drawings. It is to be noted that the different class messages for different grades or classes can be assigned with the same index, but different class messages for the same grade and the same class cannot be assigned the same index, because class collision can occur if multiple courses allocated in the same time period.
The dragging module 150 is configured to drag the block unit. When the dragging module is dragging one of the block units, the dragged block unit is defined as a source block unit, and when the dragging action is stopped, the dragging module defines the block unit at the position where the dragging action is stopped, as a destination block unit, and the dragging module compares and checks again whether the plurality of class schedule constraints are satisfied, so as to recalculate the total score for display. In actual implementation, the dragging action can be implemented by a cursor manner or a touch control manner. When the dragging action is stopped, it indicated the movement of the dragging action is stopped, but the dragging action is not terminated. In a case that the cursor manner is taken as example for illustration, the dragging action is to move a cursor to click a block unit under a condition that the user moves a mouse and keeps pressing a left button of the mouse, and when the user stops moving the mouse but keeps pressing the left button, it indicates the dragging action is stopped.
The processing module 160 is configured to retrieve the class message corresponding to the source block unit, and use the retrieved class message as a source class, and compare the source course with the class messages corresponding to the plurality of block units one by one, so as to find out the block unit which is not allowed to exchange, according to the identifiers, the indices and the class schedule constraints, and set the found block unit with a collision flag and a collision description. When the destination block unit is not set with the collision flag and the dragging action is stopped, the processing module 160 exchanges the class messages corresponding to the source block unit and the destination block unit. In actual implementation, the manner of finding out the block unit not allowed to exchange can includes following steps.
The first step is to determine whether the to-be-checked block unit is within lunch break time according to the index of the class message corresponding to the to-be-checked block unit, and if yes, the processing module 160 sets the to-be-checked block unit with the collision flag, and the collision description is embedded a description, such as a text “lunch break”.
The second step is to compare the source class and the class messages, one by one, so as to find the block units having the same course as the source class according to the identifier of the source class, and the processing module 160 sets the found block unit with the collision flag and collision description, such as a text “the exchange between the same course does not make sense”.
The third step is to find a time slot not allowed to arrange the source class in consideration of the class schedule constraints. The time slot not allowed to arrange certain class is presented by the index of the class message, to facilitate to find the corresponding block unit according to the index. For example, the index of the class message set as 102 indicates the second class on Monday, and the index corresponding to the block unit set as 504 indicates the fourth class on Friday. Similarly, the class message with the time index as 102 indicates the second class on Monday and corresponds to the block unit having this class message, and the class message with the time index as 504 indicates the fourth class on Friday and corresponds to the block unit having this class message. When the class schedule constraints include the course having the excluded time slot, the block unit corresponding to this course can be found according to the index of this course, and the found block unit are set with the collision flag and the collision description, such as a text “the course is not allowed to be allocated in this time slot”.
The fourth step is to find the class not allowed to exchange according to the class schedule constraints. For example, suppose that one of the class schedule constraints is a fixed list which records the course not allowed to adjusted, the block unit not allowed to exchange can be found according to the index of the class message recorded in the list, and the found block unit is set with the collision flag and the collision description, such as a text “the fixed course is not allowed to exchange”.
The fifth step is to find the block units which are not set with the collision flag and the collision description after above four steps, and compare and check these block units, respectively; and, the comparison and checking operation includes following operations. The first operation is to determine whether a current block unit has the class message corresponding thereto, and if yes, the corresponding course is defined as a target course. The second operation is to determine whether the index of the source course is within an excluded time slot of the target course, the time slot in which the target course cannot be allocated is presented by the index, and if yes, the processing module sets the current block unit with the collision flag and the collision description, such as a text “the target course cannot be allocated in the time slot of the source course”. The third operation is to retrieve the class message having the same index as the index of the current block unit, and then determine whether the teacher of the source course teaches at two places, and if yes, the current block unit is set with the collision flag and the collision description, such as a text “the teacher is unable to teach in two places at the same time”. According to the indices and a grade class timetable, the fourth operation is to check all courses arranged in the time slot of the source course, whether there is a course with the same teacher as the target course, and if yes, the current block unit is set with the collision flag and the collision description, such as a text “the teacher of the target course is assigned to other course in the time slot of the source course, so class collision occurs”. The fifth operation is to determine whether the class message corresponding to the current block unit is a specific course type, such as selectable course, and if no, the processing module checks next block unit; otherwise, if the class message corresponding to the current block unit is a specific course type, the processing module then checks whether all class messages of the current block unit exists in the class collision list of the source course, one by one; and, if yes, the processing module sets the current block unit with the collision flag and the collision description, such as a text “target course causes class collision”. The sixth operation is to retrieve, from the class collision list, all grade courses having the same index as the source block unit, and then check whether the current class message matches one of the retrieved grade course, and if yes, the current block unit is set with the collision flag and the collision description, such as a text “source course causes class collision”. The seventh operation is to determine whether there is a next block unit not checked yet, and if yes, the processing module checks the next block unit.
The prompting module 170 is configured to highlight the block unit set with the collision flag and the collision description. When the highlighted block unit corresponds to the destination block unit, the prompting module displays the collision description corresponding to the highlighted block unit. In actual implementation, the highlight manner comprises the manner of changing the background color (such as red), or flashing the text in the block unit or displaying the bold text in the block unit.
According to above descriptions, when the user wants to adjust the initial class timetable and uses cursor to drag a class in the class timetable, the user is to drag a block unit corresponding to the class, and at this time, this class is defined as the source course, and in consideration of the class schedule constraints, the system calculates and flags which block unit is not allowed to exchange with the dragged block unit, so as to highlight the block unit not allowed to exchange according to the flag. Next, when the dragged block unit is moved to the destination position, the block unit overlapped with the destination position is defined as the destination block unit, and the course corresponding to the destination block unit is defined as the target course, and the total score is recalculated for display. When the block unit overlapped with the destination position is not allowed to exchange, the collision description can also be displayed on the block unit. As a result, the user can know, in real time, the difference between the class timetables before adjustment and after adjustment, according to the total score and the collision description. It is appreciated that the user's dragging action is not terminated during aforementioned process, and the system can display which block unit is not allowed to exchange before the user exchanges the block unit actually, that is, during the process of dragging the block unit, the system can, in real time, display which block unit is not allowed to exchange, and then recalculate and display the total score when the block unit is dragged to the destination position, and when the block unit at the destination position is not allowed to exchange, the collision description corresponding to this block unit is also displayed to provide a class timetable adjustment reference for the user.
It is to be noted that in actual implementation, the setting module 110, the initialization module 120, the calculation module 130, the display module 140, the dragging module 150, the processing module 160 and the prompting module 170 included in the class timetable adjustment system of the present invention can be implemented by various manners including software, hardware or a combination thereof. For example, in an embodiment, each module can be implemented by software or hardware; furthermore, the system can be partially or fully implemented by hardware, for example, one or more module of the system can be implemented by IC chip, system on chip (SoC), complex programmable logic device (CPLD), field-programmable gate array (FPGA), and so on.
The technical solution provided by the present invention can be a system, a method and/or a computer program. The computer program may include a computer-readable storage medium carrying computer-readable program instructions executed by a processor to implement various aspects of the present invention. The computer-readable storage medium may be tangible equipment to hold and store instructions used by the instruction execution device. The computer-readable storage medium may be, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or a suitable combination thereof. More specific examples (non-exhaustive listings) of the computer-readable storage medium include hard disks, random access memory, read-only memory, flash memory, optical disks, floppy disks, and any suitable combination thereof. The computer-readable storage medium used herein is not to be interpreted as an instantaneous signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (such as, an optical signal transmitted through a fiber optic cable), or electrical signal transmitted through a wire. Furthermore, the computer readable program instructions described herein may be downloaded from computer-readable storage medium to various computing/processing devices, or downloaded to an external computer device or external storage device over a network, such as Internet, a local area network, wide area network, and/or wireless network. The network may include copper transmission cables, fiber optic transmission cables, wireless transmissions, routers, firewalls, switches, hubs, and/or gateways. A network card or network interface in each computing/processing device can receive computer readable program instructions from the network, and forwards and stores the computer readable program instructions in the computer-readable storage medium in various computing/processing devices. The computer program instructions for performing the operations of the present invention may include assembly language instructions, instruction-set-architecture instructions, machine instructions, machine-related instructions, micro instructions, firmware instructions, or source code or object code written in one programming language or any combination of at least two programming language. The programming language includes object-oriented programming language such as Common Lisp, Python, C+ Objective-C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby, PHP, and so on; and Procedural programming language, such as C or similar programming language. The computer readable program instructions may be executed entirely on a computer, partially on a computer, or, executed as a stand-alone software, or executed partly on a client computer and on a remote computer, or, executed entirely on a remote computer or server.
Please refer to
The following is to describe an embodiment of the present invention in reference with
Please refer to
Next, when the user wants to adjust the class timetable, the user can operate a cursor 300 to click the block unit to be adjusted (or, this block unit can be called as a source block unit 441) and drag the clicked block unit to the block unit to be replaced (or, the to-be-replaced block unit is also called as a destination block unit 442). When the user drags the source block unit 441, the processing module 160 retrieves the class message corresponding to the source block unit 441 as a source course, and compares the source course with the class messages corresponding to all block units one by one, so as to find out the block unit that is not allowed to exchange, according to the identifiers, the indices, and the class schedule constraints, and to set the collision flag and the collision description in the block units not allowed to exchange. Then, the prompting module 170 highlights the block unit set with the collision flag, such as the gray block unit in the graphic interface 421 illustrated in
It is to be noted that when the user drags the source block unit 441 to the destination block unit 442, the calculation module 130 can re-calculate the total score according to whether the class schedule constraints are satisfied, and the recalculated total score is displayed on the total score display block 431, as shown in
As shown in
In summary, the difference between the technology of the present invention and the conventional technology is that the system and the method of the present invention can perform calculation to generate the initial class timetable including the class messages, and continuously check whether the class schedule constraints are satisfied, and calculate the total score according to the score of the check result, and generate the graphical interface comprising block units to display the initial class timetable, and when one of the block units is dragged, the system and method can find out the block unit not allowed to exchange according to the identifiers, the indices and the class schedule constraints, and set the found block unit with the collision flag and the collision description, so as to facilitate the user to adjust the total score in real-time during the class scheduling operation, and can change the display manner of the block unit to prompt the user according to the collision description. As a result, the technical solution of the present invention can solve the conventional problem, and achieve technical effect of improving appropriateness and convenience in class scheduling.
The present invention disclosed herein has been described by means of specific embodiments. However, numerous modifications, variations and enhancements can be made thereto by those skilled in the art without departing from the spirit and scope of the disclosure set forth in the claims.
Number | Date | Country | Kind |
---|---|---|---|
201711288182.7 | Dec 2017 | CN | national |