UniTime / unitime

Comprehensive University Timetabling System
http://www.unitime.org
Apache License 2.0
282 stars 162 forks source link

lecture the same time different day -> different time and day #93

Closed Abdulaziz-KTA closed 3 years ago

Abdulaziz-KTA commented 3 years ago

image

any way to get different time the same lecture like lec 1,2 and 3 have same time.

tomas-muller commented 3 years ago

If a class has a time pattern that meets multiple times a week (e.g., 2 x 50), all meetings of the class are at the same time, and in the same room. Also, both meetings are of the same length. Anything different can be modeled using two or subparts, one for each meeting. Nesting them under each other will ensure that the students will take the correct combination -- e.g., Lec 1 with Lec 1a, Lec 2 with Lec 2a, etc.

Here is an example with a 3 x 50 class that needs to have two meetings on the same day. In this case, each 3 x 50 class was split into one 1 x 50 class and one 2 x 50 class: Screen Shot 2015-12-15 at 10 45 18 (1) (1) (1) Also, the distribution preferences can be used to provide additional structure between the appropriate classes (same days and room in the above example).

Please note the nesting between the two lecture subparts (the second lecture is under the first one). This is to ensure that a student will either take the Lec 1 and Lec 1a combination or the Lec 2 and Lec 2a combination (but not Lec 1 with Lec 2a etc.). It also helps with the distribution preferences (progressive structure will create the constraint only between the nested classes Lec 1 - Lec 1a and between Lec 2 - Lec 2a).

Abdulaziz-KTA commented 3 years ago

thank you.

Abdulaziz-KTA commented 3 years ago

image

I use this (Instructor Assignment Preferences) and not work, I get this result. image

the number 1 how to make Strongly Preferred to Required ?

Abdulaziz-KTA commented 3 years ago

1-Is there a report of getting empty rooms at a certain time? 2-Is there a way to appoint Instructors by UniTime?

tomas-muller commented 3 years ago

The More Than 1 Day Between constraint is usually not allowed to be set on an instructor and it is usually used for classes with only one meeting a week. The constraint checks that the first meeting of one class (on a week) is two or more days before the last meeting of the other class.

Because instructor time preferences are combined with the time preferences set on the scheduling subpart (following the time pattern of the subpart), it is not allowed to put in required time on an instructor. You can, however, set all the other times as prohibited. See Application Of Preferences for more details.

Once you have a course timetable saved and committed, you can use the Events > Room Availability to see what rooms (that are meeting the given requirements) are available during the selected days & times. Note that you can sort the view by availability, listing the rooms with the most space available during the selected times first.

Course timetabling only assigns classes to times and rooms. If instructors are already assigned to classes (e.g., using the Assign Instructors page), the solver will make sure that they have no conflicts. We also have an instructor assignment module that can be used to assign instructors (typically teaching assistants after the course timetable has been created), see the instructor scheduling manual for more details.

Abdulaziz-KTA commented 3 years ago

If a class has a time pattern that meets multiple times a week (e.g., 2 x 50), all meetings of the class are at the same time, and in the same room. Also, both meetings are of the same length. Anything different can be modeled using two or subparts, one for each meeting. Nesting them under each other will ensure that the students will take the correct combination -- e.g., Lec 1 with Lec 1a, Lec 2 with Lec 2a, etc.

Here is an example with a 3 x 50 class that needs to have two meetings on the same day. In this case, each 3 x 50 class was split into one 1 x 50 class and one 2 x 50 class: Screen Shot 2015-12-15 at 10 45 18 (1) (1) (1) Also, the distribution preferences can be used to provide additional structure between the appropriate classes (same days and room in the above example).

Please note the nesting between the two lecture subparts (the second lecture is under the first one). This is to ensure that a student will either take the Lec 1 and Lec 1a combination or the Lec 2 and Lec 2a combination (but not Lec 1 with Lec 2a etc.). It also helps with the distribution preferences (progressive structure will create the constraint only between the nested classes Lec 1 - Lec 1a and between Lec 2 - Lec 2a).

image image

Can you help me? I want lec1 and (child) lec 1a to be a different day??

tomas-muller commented 3 years ago

Unlike in the previously mentioned example that was created to make sure the additional class is on one of the two days of the parent class and in the same room, you need to Prohibit Same Days to ensure the two classes (Lec 1 and Lec 1a) are at different days of the week.

Abdulaziz-KTA commented 3 years ago

how?

tomas-muller commented 3 years ago

Using the Courses > Input Data > Distribution Preferences page. You can either setup the preference between the Lec 1 and Lec 1a classes, or especially if there are mote than one class in each subpart, you can set it between the Lec and Lec a subparts with the Progressive structure.

There are also more details in the course timetabling data entry manual, see Help > Manuals > Course Timetabling Data Entry.

Abdulaziz-KTA commented 3 years ago

image I use this preference, Is this correct?

Abdulaziz-KTA commented 3 years ago

image thank you this is work.

tomas-muller commented 3 years ago

If your intention is to have the two classes on consecutive days, Required Back-To-Back day is a good choice. If you do not care about the days, only need to have the classes on different days, use Prohibited Same Days.

The Required More Than 1 Day Between will make sure there there is at least one day between the two classes, which is also a good option.

Abdulaziz-KTA commented 3 years ago

thank you, now I have a big picture how to use (Distribution Preferences).

Abdulaziz-KTA commented 3 years ago

image image image

why I get this WARNING?? It is there empty room !

and my country is start day Sunday to Thursday. not show Sunday in Event Room Availability

tomas-muller commented 3 years ago

The warning means that there is no room (of the department that is managing the class) that is big enough (room capacity >= class limit * room ratio) and meeting the requirements set on the class.

Please check the class limit and room ratio (the minimal room capacity is displayed on the Class Detail page) and that there is at least one room with sufficient size associated with the department of the class. Also, check the room preferences to ensure that all the rooms that are big enough are NOT prohibited by the class preferences.

Abdulaziz-KTA commented 3 years ago

image It took 2 hours and it doesn't move, I used the distribution preferences, why didn't it move? image I use this is for 45 Instructors

Abdulaziz-KTA commented 3 years ago

Usually how long does the system take to create the schedule?

tomas-muller commented 3 years ago

First of all, please take a look at the Course Timetabling Solver Manual (Help > Manuals > Course Timetabling Solver). It explains how to run the solver, e.g., using the Check configuration first and making sure all classes can be assigned.

The solver tries to maximize the number of assigned variables. You can try to use the Check configuration. If the check configuration is not able to find assign all the classes, the problem is very likely over-constrained (no complete solution exists) and you will need to relax some of the constraints (going through the unassinged classes or the conflict statistics should help you identify the problems). It is important that the solver is able to find a complete solution, otherwise, the resultant timetable will not be very optimized (as the solver would spend all the time trying to assign all classes). This is described in the Course Timetabling Solver Manual (see Chapters 1 and 2).

If the Check configuration is able to find a complete solution but not the Default configuration, you can try to substantially increase the value of the following two solver parameters (Administration > Solver > Configurations page), Placement Selection section:

The goal is to make the solver find a good first solution. If the above weights are too high, the solver will converge too quickly and the solution is usually not very good. What seems to work the best is to tune the weights so that the complete solution is found during the first third of the time the solver is given (e.g., if there is a 30-minute time limit, the first complete solution should be found within the first 10 minutes, leaving the solver enough time to make improvements).

Also, please check that you have the On Fly Student Sectioning is disabled ("Enable on fly sectioning" parameter in the On Fly Student Sectioning section is not set). This will make the solver run much faster.

There are many more solver parameters that can be used to tune the solver to better reflect the needs of your institution. This is one of the services we do offer under our paid support (as this would require more work and access to your data to run a number of experiments with different solver settings).

tomas-muller commented 3 years ago

What do you want to achieve by putting strongly preferred Back-To-Back and strongly discouraged Next Day on the same instructor? These two distributions are going against each other as the back-to-back tries to put the classes one after the other on the same day and the second tries to put them on consecutive (different) days.

Abdulaziz-KTA commented 3 years ago

What do you want to achieve by putting strongly preferred Back-To-Back and strongly discouraged Next Day on the same instructor? These two distributions are going against each other as the back-to-back tries to put the classes one after the other on the same day and the second tries to put them on consecutive (different) days.

When Instructor has a course on Monday, he should not have any courses the next day Tuesday or before.

Abdulaziz-KTA commented 3 years ago

First of all, please take a look at the Course Timetabling Solver Manual (Help > Manuals > Course Timetabling Solver). It explains how to run the solver, e.g., using the Check configuration first and making sure all classes can be assigned.

The solver tries to maximize the number of assigned variables. You can try to use the Check configuration. If the check configuration is not able to find assign all the classes, the problem is very likely over-constrained (no complete solution exists) and you will need to relax some of the constraints (going through the unassinged classes or the conflict statistics should help you identify the problems). It is important that the solver is able to find a complete solution, otherwise, the resultant timetable will not be very optimized (as the solver would spend all the time trying to assign all classes). This is described in the Course Timetabling Solver Manual (see Chapters 1 and 2).

If the Check configuration is able to find a complete solution but not the Default configuration, you can try to substantially increase the value of the following two solver parameters (Administration > Solver > Configurations page), Placement Selection section:

  • Number of conflicts weight (level 1)
  • Weighted conflicts weight (CBS, level 1)

The goal is to make the solver find a good first solution. If the above weights are too high, the solver will converge too quickly and the solution is usually not very good. What seems to work the best is to tune the weights so that the complete solution is found during the first third of the time the solver is given (e.g., if there is a 30-minute time limit, the first complete solution should be found within the first 10 minutes, leaving the solver enough time to make improvements).

Also, please check that you have the On Fly Student Sectioning is disabled ("Enable on fly sectioning" parameter in the On Fly Student Sectioning section is not set). This will make the solver run much faster.

There are many more solver parameters that can be used to tune the solver to better reflect the needs of your institution. This is one of the services we do offer under our paid support (as this would require more work and access to your data to run a number of experiments with different solver settings).

("Enable on fly sectioning" parameter in the On Fly Student Sectioning section is not set) only write Disabled

Abdulaziz-KTA commented 3 years ago

image This solution take 2 days to get this result. the first result image

tomas-muller commented 3 years ago

What do you want to achieve by putting strongly preferred Back-To-Back and strongly discouraged Next Day on the same instructor? These two distributions are going against each other as the back-to-back tries to put the classes one after the other on the same day and the second tries to put them on consecutive (different) days.

When Instructor has a course on Monday, he should not have any courses the next day Tuesday or before.

The Back-To-Back tries to put all classes to be on the same day. It makes no sense to combine it with a distribution that tries to put the classes on different days. The prohibited/discouraged Next Day is like the required/preferred Next Day but in reverse -- the second class is to be placed on the previous day from the first class, etc. Also, how you expect this to be satisfied on an instructor with 5 or more classes?

Also, it is important NOT to use Back-to-Back distributions between more than 5 classes as the constraint will become very expensive to evaluate -- for any partial assignment, it tries to figure out whether it can be satisfied (whether it is possible to assign the remaining classes in a way that they would be on the same day and back-to-back, effectively going through all the possible combinations). If you wish to minimize gaps for an instructor, we have better distributions for that (e.g., see the Max Break constraint from help.unitime.org/additional-distribution-constraints)

You can see the distribution descriptions in the manual, on the Administration > Solver > Distribution Types page, or on Add/Edit Distribution Preference page for the distribution that is currently selected.

tomas-muller commented 3 years ago

This solution take 2 days to get this result. the first result

Usually, the solver is able to come up with a decent solution within a few minutes. The solver is, by default, limited to half an hour. If the solver is unable to find a complete solution within a few minutes, especially when using the Check configuration, it is likely that your problem is over-constrained (no solution exists without breaking any of the hard constraints) and you will need to make some changes to the input data. Please take a look at the solver manual for more details.

tomas-muller commented 3 years ago

and my country is start day Sunday to Thursday. not show Sunday in Event Room Availability

how show Sunday on Event Room Availability??

There are a few configuration parameters (that can be set on the Administration > Defaults > Configuration page, or in the custom properties) that change the display so that a week starts on Sunday.

# Time Patterns: first day of week (0 is Monday, 1 is Tuesday, etc.)
unitime.timePattern.firstDayOfWeek=6

# Event Time Grid: first day of the week (0 is Monday, 1 is Tuesday, etc.)
unitime.events.gridStartDay=6

# Time Grid: first day of week (0 is Monday, 1 is Tuesday, etc.)
unitime.timeGrid.startDay=6

# Time Grid: defines an additional days of week (starting with 1, format is bitmap|name)
unitime.timeGrid.days14=1111001|Sunday - Thursday

And in the solver configuration (the following two parameters need to be created in the General Settings section on the Administration > Solver > Parameters page and set as follows)

1) First Day of a Week Name: General.FirstWorkDay Description: First Day of Week (0..Monday, 1..Tuesday,...) Type: integer Default: 6

2) Last Work Day of a Week Name: General.LastWorkDay Description: Last Work Day of Week (0..Monday, 1..Tuesday,...) Type: integer Default: 4

tomas-muller commented 3 years ago

The warning means that there is no room (of the department that is managing the class) that is big enough (room capacity >= class limit * room ratio) and meeting the requirements set on the class.

Please check the class limit and room ratio (the minimal room capacity is displayed on the Class Detail page) and that there is at least one room with sufficient size associated with the department of the class. Also, check the room preferences to ensure that all the rooms that are big enough are NOT prohibited by the class preferences.

There are a few configuration parameters (that can be set on the Administration > Defaults > Configuration page, or in the custom properties) that change the display so that a week starts on Sunday.

Time Patterns: first day of week (0 is Monday, 1 is Tuesday, etc.)

unitime.timePattern.firstDayOfWeek=6

Event Time Grid: first day of the week (0 is Monday, 1 is Tuesday, etc.)

unitime.events.gridStartDay=6

Time Grid: first day of week (0 is Monday, 1 is Tuesday, etc.)

unitime.timeGrid.startDay=6

Time Grid: defines an additional days of week (starting with 1, format is

bitmap|name) unitime.timeGrid.days14=1111001|Sunday - Thursday

And in the solver configuration (the following two parameters need to be created in the General Settings section on the Administration > Solver > Parameters page and set as follows)

1) First Day of a Week

Name: General.FirstWorkDay Description: First Day of Week (0..Monday, 1..Tuesday,...) Type: integer

Default: 6

2) Last Work Day of a Week

Name: General.LastWorkDay

Description: Last Work Day of Week (0..Monday, 1..Tuesday,...)

Type: integer Default: 4

On Tue, Aug 31, 2021 at 1:14 PM Abdulaziz Alharbi @.***> wrote:

[image: image] https://user-images.githubusercontent.com/46826627/130921085-24bbc28f-d19e-4d1f-a160-412e337ed6c5.png [image: image] https://user-images.githubusercontent.com/46826627/130920837-746d1411-12de-42ae-bc0c-d14a3847a815.png [image: image] https://user-images.githubusercontent.com/46826627/130920886-a4a08176-1c6a-439b-b7d2-4c7c32a90de2.png

why I get this WARNING?? It is there empty room !

and my country is start day Sunday to Thursday. not show Sunday in Event Room Availability

how show Sunday on Event Room Availability??

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/UniTime/unitime/issues/93#issuecomment-909139763, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRDTUWMNY3UD3XDHGKY5WTT7S2QXANCNFSM5CFZVGCQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.