Skip to content

UniTime 4.8 build 170

Latest
Compare
Choose a tag to compare
@tomas-muller tomas-muller released this 09 Dec 15:50
· 359 commits to master since this release

Course Timetabling

Class Assignment: Room Partitions

  • Consider room partitions when checking room availability (other non-class events).

Multiple Class Setup: Room-related Columns

  • In order to be consistent with the Instructional Offering Configuration page, the order of the room-related columns changed to be: Nbr Rooms, Splt Attd, and Room Ratio.
    • Instead of Room Ratio, Nbr Rooms, and Splt Attd.

Edit Scheduling Subpart: Subpart Credit

  • Max Units made editable when editing Variable Min/Max credit without the need to change the credit type first (when editing existing credit information).
  • Fixed an issue when no units or max units are provided (for a type that requires units/max units) or when the provided units are not a number.

Course Timetabling Solver: Optimization

  • In order for the solver to start optimization even when a complete solution cannot be found, added an ability to halt the initial search phase when a maximum number of non-improving iterations is reached.
  • This can be controlled by the Search.MaxIdleIterations parameter.
    • It defaults to 1000.
    • Set to -1 to disable the ability to halt the initial search phase (previous behavior).
    • Set to 0 to disable the construction heuristics, going directly to the optimization phases.
  • Added an ability to disable the max-idle limitation during the first part of the search, effectively setting up a minimal construction time.
    • Parameter Search.MinConstructionTime, which can be in seconds or in percentage of the total time (Termination.TimeOut).
    • Defaults to 10% of the total time limit. So, if max-idle is enabled, it will not stop construction or the IFS phase during the first 10% time of the solver run.
  • Improved the ability to assign an unassigned class during the optimization phase.
    • To enable this, add ;org.cpsolver.coursett.neighbourhoods.Suggestion@0.1 to the following parameters:
      • HillClimber.AdditionalNeighbours
      • GreatDeluge.AdditionalNeighbours
      • SimulatedAnnealing.AdditionalNeighbours
    • This is especially needed when the construction phase is disabled or the solver struggles to find a complete solution when one exists.

Course Timetabling Solver: Random Student Swap Selection

  • Added a neighborhood selection that attempts to swap a student between alternative sections of a course.
  • To be used with the Hill Climber (HC), Great Deluge (GD), or Simulated Annealing (SA) algorithms.
    • Enable by adding the RandomStudentSwap class to the AdditionalNeighbours properties.
  • The selection is only available/enabled when the solver is using a single thread as student class assignments are not included in the solution/

Course Timetabling Solver: Simulated Annealing

  • Various improvements and changes in an attempt to make the SA algorithm more reliable.
  • Added minimal and maximal temperature.
  • Improved temperature training (when SimulatedAnnealing.InitialTemperature is set to -1)

Examination Timetabling

Room Partitions

  • Added support for room partitions in the examination timetabling.

Student Scheduling

Student Scheduling Solver: Linked Classes

  • Allow one class to be present in multiple Linked Classes distributions between the same two courses.
  • This allows for the Linked Classes to overlap with each other, e.g., when most classes can be linked one-to-one, but there are exceptions (e.g., one course has an additional course that can be used with any class of the other course).

Events

Lookup Classes/Examination: Bugfix

  • Populate the event filter even when it is not present.
  • This fixes an issue caused by a recent change, having the events and rooms parameters incorrectly interpreted.

Edit Event: Meeting Contacts

  • Record which meetings have their contacts changed in the Notes.

Administration

Data Exchange: Course Offering XML

  • Added an optional attribute class.roomRatio, defaults to 1.
  • Added an optional attribute class.splitAttendance for classes with two or more rooms, defaults to false.

Add/Edit Date Pattern: Make Default

  • Added a confirmation dialog when the Make Default button is clicked.
  • Added an option to hide the Make Default button on this page by setting unitime.pattern.showMakeDefault to false.
    • If the Make Default button is disabled, the default date pattern can still be set on the Edit Academic Session page.

Scripts: ECMAScript

  • Nashorn is now included in the UniTime distribution.
    • Starting with Java 15, ECMAScript has been removed from JDK.