Author Topic: Custom FET allowing max 120 days per 'week'  (Read 244 times)

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Custom FET allowing max 120 days per 'week'
« on: October 02, 2017, 08:43:55 AM »
There is a custom version of FET, allowing a maximum of 120 days per 'week' instead of only 35. You can get it from the Custom FET versions section (direct download links: http://lalescu.ro/liviu/fet/download/custom/max-120-days-per-week/ or, mirror: http://timetabling.de/download/custom/max-120-days-per-week/ ).

This version is probably useful for multiple-week scheduling.

Please report problems/bugs, or successful work.

This is a kind of test for the FET algorithm. It might be too slow for this - even if I hope not. That is why feed-back is important.
« Last Edit: October 02, 2017, 11:56:45 AM by Liviu Lalescu »

alxgudea

  • Level 1
  • *
  • Posts: 20
    • View Profile
Re: Custom FET allowing max 120 days per 'week'
« Reply #1 on: October 03, 2017, 04:53:02 AM »
made an attempt...
this is how I did it...
made 70 days (14 weeks with Mo to Fr) 14*5
inserted a activity splited in 14 parts of 2 hours
it computes and makes a timetable with random placement of the activities...
when trying to add a option like "a set of activities have same starting time/day/hour" (trying to reproduce the lectures that should be held the same day/hour...))  it jams....

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #2 on: October 03, 2017, 07:17:26 AM »
It is not that easy, considering what you need.

I made an example for only one activity split into 14, see the attached .fet file.

You need to add a same starting hour constraint for all 14 components.

You need to add min+max days between each component. 2*(14*13/2)=182 constraints, like I added. I even made a small C++ program for this (attached). You need to add exactly like me, for efficiency of generation (you should not add less constraints).

You need to add the allowed week for each activity. I added with tags (and modified subactivities, to add a tag to each one). We need to think about this if an activity is split into less than 14 components per week. Maybe something similar, but this step is again a very important one, making the generation efficient.

Don't worry that there are too many constraints. The only problem is the human operator, inputting them.

alxgudea

  • Level 1
  • *
  • Posts: 20
    • View Profile
Re: Custom FET allowing max 120 days per 'week'
« Reply #3 on: October 03, 2017, 12:56:34 PM »
started to realize that is a hell of a job.....
I have managed to use the main constraint- same hour start but cannot reproduce the even distribution (same day exactly) even if I used the min 5 days/max 69 day between activities.(still very necessary for a part of the activities)
As you know Liviu, the timetable I used in the normal week version had more than 1000 activities (6 years of students, basically each year dividend into a minimum of 12-13 groups)+ 6 years*3 groups+6 years *2 groups.....all sharing same sets of rooms and most of the teachers...

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #4 on: October 03, 2017, 01:18:10 PM »
started to realize that is a hell of a job.....

We can work it out, with a bit of work.

Quote
I have managed to use the main constraint- same hour start but cannot reproduce the even distribution (same day exactly) even if I used the min 5 days/max 69 day between activities.(still very necessary for a part of the activities)

Say you add an activity split into 8. Then you need to add 8*(8-1)/2 constraints min days between activities and the same number of max days between activities constraints. Each min days = 5, 10, 15, ..., 35 has a corresponding max days with the same number. So, 5 min days, 5 max days for first pair, then 10 min days, 10 max days for activities 1 and 3, etc, ending with activities 7 and 8, min 5, max 5.

Then you add another split activity, split into 12. The first constraints will be min+max 5 days between id=8+1 and id=8+2. Last will be min 5+max 5 between id=8+11 and id=8+12.

Don't forget to add (redundant) preferred time slots of activities, probably using tags. It helps the generation to be (much) faster.

Quote
As you know Liviu, the timetable I used in the normal week version had more than 1000 activities (6 years of students, basically each year dividend into a minimum of 12-13 groups)+ 6 years*3 groups+6 years *2 groups.....all sharing same sets of rooms and most of the teachers...

FET allows 30000 activities and I have a file with 15000 I think which is solved in about 20 minutes on my (very old) computer.

We might solve even your data, but we'll need to put some work in this if we want to realize it. Of course not adding the constraints by hand - but rather automatically, like I did, or even easier, if I develop some more tools. With a script or I may further customize the FET interface for you, to add automatically the constraints. Also, you need to understand that this is a kind of research and is not guaranteed to be successful.
« Last Edit: October 03, 2017, 01:33:24 PM by Liviu Lalescu »

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #5 on: October 04, 2017, 03:12:45 PM »
After some talk with alxgudea, we came up with an improved multiple week version. See it on the link in the first post.

There are two very small example files and the Help menu has an entry for this multiple week scheduling. This custom version is not very easy to use, but might be manageable. Maybe further feed-back will make it easier to use.

Please let me know.

alxgudea

  • Level 1
  • *
  • Posts: 20
    • View Profile
Re: Custom FET allowing max 120 days per 'week'
« Reply #6 on: October 05, 2017, 02:22:26 AM »
made the first test....it seems like working...I will keep on testing with incomplete activities in accordance with our faculty demands and let you know
Thanks Liviu!

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #7 on: October 05, 2017, 03:40:22 AM »
I added a new version, 3. The only change is the improved Help menu for this max 120 days version (to explain better to the user the steps he needs to take).

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #8 on: October 06, 2017, 06:45:12 AM »
I added version 4, allowing activities from a group to be anywhere in the timetable, not constrained to be at the same day in the real week. Suggested by alxgudea.

Liviu Lalescu

  • Forum Administrator
  • Level 5
  • *****
  • Posts: 5190
  • FET author and forum moderator
    • View Profile
    • Homepage
Re: Custom FET allowing max 120 days per 'week'
« Reply #9 on: October 06, 2017, 09:38:59 AM »
I added version 5, fixing a freezing bug if generating with single component activities (reported by alxgudea).