example for FET MA

Started by Benahmed Abdelkrim, July 28, 2020, 08:58:24 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Benahmed Abdelkrim

Attached below is an example of a FET file produced in a maximum of 8 minutes. It is a very good file for an Algerian school.

A one or two day exception was used for morning / afternoon behavior, depending on the number of weekly work hours per teacher.

The seeds of the random number generator at the beginning of production are:
        s10=4080711908, s11=1604716469, s12=2552074707,
   s20=3064904818, s21=2758619647, s22=2161489294.

This file has two students sets who do not have a fixed room(Mobile group). I've never used spatial restrictions. But it was compensated by the following time constraints:
1 - Max simultaneous activities from a set in selected time slots
2 - A students set's not available times: I used this constraint for a few of students sets every afternoon except Monday afternoon. because all the students set must be present for 2 hours in this afternoon, for the lesson of the pedagogical support(Mathematics, arabic, french) .

All students sets begins early with max beginnings at second hour= 0;

    All teachers get max gaps per week = 1;
    All teachers get the max working hours per day = 6;
    All students get the max gaps per week = 0;
    The min hours in the mornings = 3 for all students;

weight of min days = 99.75% for all activities divided into 4 sub-activities;
For all other activities weight = 100%.

I suggest adding this example in the examples folder for FET, in the next version.

B.A/krim

Liviu Lalescu

Thank you, Benahmed! I will add it in the next version, MA10.

Benahmed Abdelkrim

B.A/krim

Benahmed Abdelkrim

And thank you for accepting adding this file  :)
B.A/krim

Liviu Lalescu


Benahmed Abdelkrim

#5
note: with other random seeds, the time can be a matter of hours. sometimes he manages to put 572 activities / 573 in just 6 minutes or less(see the example of random seeds below), and remains the long hours to complete only the last activity!(9h 9m 55s in this example. see the screenshot attached below)

ex:
        s10=3438157813, s11=7629847, s12=3017819358,
   s20=3507393849, s21=428281730, s22=3548082366.
B.A/krim

Liviu Lalescu


Benahmed Abdelkrim

B.A/krim

Hiba Hadi

#8

شكرا على هذا الملف. لكن أعترف أنه ملف غريب نوعا ما، السرعة تتأثر بالبذور العشوائية؟ لم أكن أعلم هذا!  لكن الفرق كبير جدا في توقيت الانتاج، أحيانا بعض الدقائق فقط، وأحيانا أخرى ساعات؟!  ألا تعتقد أنه ربما هنالك جوانب في البرنامج ينبغي لها أن تتغير؟! إنه مجرد سؤال فقط أثاره هذا الملف العجيب

Thanks for this file. But I admit, it's a rather strange file. Speed is affected by random seed. I didn't know this! But the difference is very big in the timing of production, sometimes only some minutes, and sometimes hours ?!

Liviu: Don't you think that there maybe aspects of the program that should change ?! It is just a question raised by this strange file!?
W.B

Volker Dirr

Sadly that happen with "difficult" timetables. We don't know how to fix that.
I always reduce the number of gaps as last step and my tables become difficult by that. Most times i can't sove them, even not after 4 weeks! But in rare cases (maybe 1:1000) I can solve it in less then 20 minutes. That is why always generate multiple timetables with 20 minutes time limit. (On as many cores as i have). By that i got so far - fingers crossed - always a solution after a few hours, even on this extremly difficult timetables.

Benahmed Abdelkrim

#10
I think it's probably because of the interactions of the constraints with each other. Maybe this point need more study?. There maybe some things that should be modified?. Or maybe the program takes care of constraints individually? and does not care for its interactions or contradictions sometimes?. I do not know?!. They are just an ideas!...
B.A/krim

Benahmed Abdelkrim

Quote from: Volker Dirr on July 28, 2020, 09:25:14 PM
I always reduce the number of gaps as last step and my tables become difficult by that.

This is what I always say.  Gaps have a major impact on timetables.  Reducing them to "unreasonable" limits makes schedules difficult and may even make them impossible! 
Thank you Volker for this answer.
B.A/krim

Hiba Hadi

#12
Quote from: Volker Dirr on July 28, 2020, 09:25:14 PM
Sadly that happen with "difficult" timetables. We don't know how to fix that.
I always reduce the number of gaps as last step and my tables become difficult by that. Most times i can't sove them, even not after 4 weeks! But in rare cases (maybe 1:1000) I can solve it in less then 20 minutes. That is why always generate multiple timetables with 20 minutes time limit. (On as many cores as i have). By that i got so far - fingers crossed - always a solution after a few hours, even on this extremly difficult timetables.

إذن تنصحون باستخدام التوليد المتعدد في الجداول الصعبة؟! وبالتالي الجداول تصبح مسألة حظ؟!

So you recommend using multiple generation in difficult tables ?! So, the tables become a matter of luck ?! :(
W.B

Volker Dirr

In fact generating is ALWAYS luck, even if you generate only one.

As long as you are "working" on entering the dataset you should keep it easy.
So i disable some constraints. (Mainly the gaps per weeks for teachers).
So i can solve always in just a minute.
After i added nearly all needed constraints and checked the dataset, i add the last constraints (like the gaps) and reduce (them step by step). If you still get tables in ~ 1 hour you can keep it that way.
But if you lower more and timetables need more then 1 hour, it is better to start generating again after some time. The trick is to know the "correct" value, because if the time is too small, you will never find a timetable.

Sadly it will be impossible to find the "best" timetable just by testing all combinations, since for my timetable i can only calculate less then 1%, if i already started generating 100 billion years ago.

lakhdar bezzit

Quote from: Benahmed Abdelkrim on July 28, 2020, 08:58:24 AM
Attached below is an example of a FET file produced in a maximum of 8 minutes. It is a very good file for an Algerian school.

A one or two day exception was used for morning / afternoon behavior, depending on the number of weekly work hours per teacher.

The seeds of the random number generator at the beginning of production are:
        s10=4080711908, s11=1604716469, s12=2552074707,
   s20=3064904818, s21=2758619647, s22=2161489294.

This file has two students sets who do not have a fixed room(Mobile group). I've never used spatial restrictions. But it was compensated by the following time constraints:
1 - Max simultaneous activities from a set in selected time slots
2 - A students set's not available times: I used this constraint for a few of students sets every afternoon except Monday afternoon. because all the students set must be present for 2 hours in this afternoon, for the lesson of the pedagogical support(Mathematics, arabic, french) .

All students sets begins early with max beginnings at second hour= 0;

    All teachers get max gaps per week = 1;
    All teachers get the max working hours per day = 6;
    All students get the max gaps per week = 0;
    The min hours in the mornings = 3 for all students;

weight of min days = 99.75% for all activities divided into 4 sub-activities;
For all other activities weight = 100%.

I suggest adding this example in the examples folder for FET, in the next version.
استاذ عبد الكريم شكرا على النموذج الرائع دمت لنا مفيدا و آجرك الله على ذلك   ... اريد فقط ان تجيبني على بعض الاسئلة لتكتمل استفادتي اكثر :
1- ما هما القسمان المتنقلان لكي استطيع معرفة و تتبع القيود ( خاصة : انشطة تحتل اقصى....  للاعمال الموجهة )
2- بالنسبة لاسناد الحجرات  خاصة للاقسام المتنقلة والاعمال الموجهة هل تقوم بتوزيعها بعد الانتاج يدويا ام تعتمد على التطبيق titito .
3- في ملف آخر :  لتجنب الساعات المتتالية رغم ربطها بالقيد  ( غير متصلة اذا كانت متتالية ) الا انها تظهر متصلة ..هل استعمال قيد ( ادنى فجوات بين الحصص ) فعال و لا يعيط الانتاج ام توجد حلول اخرى .