Main Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - mercurialuser

Vorrei paragonare la mia situazione con le vostre e capire se c'è qualcosa che sbaglio...

La mia è una scuola media, 27 classi (3 sezioni complete). 47 docenti, di cui pochissimi hanno orario spezzato... Orario su 5 giorni, 6 ore.

Vincoli generici:
- max 1 buco al giorno
- max 2 buchi a settimana (3 per un paio di docenti)
- max 5 ore frontali al giorno
- max 4 ore continuative
- 2 palestre per 3 docenti (quindi due in contemporanea)

Vincoli per docente:
- i classici non prima delle ore X, non dopo le ore Y
- possibilmente le prime ore, possibilmente le ultime ore...
- non più di 4 ultime ore

Vincoli per materia:
- Italiano 10 ore:  3 2 2 1 1 1, con tag max 3 ore giorno
- Italiano 8 ore: 2 2 2 1 1, con tag max 3 ore giorno
- Matematica: 2 1 1 1 1, con tag max 2 ore giorno
- Inglese: 2 1, minima distanza 2 giorni 100%
- alcune materie da 2 ore: minima distanza 2 giorni, 100%
- le rimanenti (ed tecnica): minima distanza 1 giorno, 100%

Ci sono un paio di ulteriori vincoli che sarebbe troppo lungo descrivere.

Mi piacerebbe confrontarmi con voi e capire se questi sono vincoli normali (ad esempio, 2 buchi/week), se la suddivisione delle attività sono secondo voi consone e soprattutto, se per casi simili, riuscite a chiudere l'orario...

Io riesco in alcuni casi, poi appena stringo un poco i vincoli, nulla più...

... e non riesco a spiegarmi il perché...
Get Help / make fet-cl dump highest without stopping
September 06, 2017, 10:00:21 PM

I'd like to have fet-cl write the highest timetable without stopping the program. I'm getting 63x out of 639 activity placed and so I'd like to see what it is happening, which activity is blocked by which constraint, etc etc..

It would be nice to be able to load the saved partial timetable and restart the search from that point... of course, I'd modify the constraints to be able to place the remaining activities...

Get Help / Fine tuning a timetable
September 06, 2017, 03:05:06 PM

I was finally able to get a complete timetable. I had to "relax" some constraints and so I now have, for example, several teachers that teach the 6th period 4 days out of 5.

I'd like to unlock "something" to let FET try to shuffle lessons a bit... but when I tried in the past I never got a result. Can anybody please tell me how this feature actually works?

Get Help / 2 and 5 teaching periods only once in a week...
September 05, 2017, 07:34:19 AM
Italian school, students have 5 days, 6 periods each.
Teachers teach 18 periods.

I have a min hours per day set to 2, and some teachers have 2 days with 2 hours and unfortunately 2 days with 5 teaching hours...

Is it possible to tell FET that teachers may teach 2 periods and 5 periods only once in a week ?

I'm testing with minimum hours per day set to 3 but I feel it is a too strict requirements...
Get Help / constraints priorities: all vs 1 teacher
September 04, 2017, 10:14:25 PM
Scenario 1:
Max gaps for ALL teachers per week: 2
Max gaps for teacher TEST per week: 3

Scenario 2:
Max gaps for ALL teachers per week: 2
Max gaps for teacher TEST per week: 1

What will be the max gaps per week limit value used by FET for teacher TEST in scenario 1 and 2?


Suggestions / Disable % field when not modificable
September 04, 2017, 09:21:31 PM
there are some constraints that must have the % field set to 100. Unfortunately the field is editable and it causes confusion, expecially for newcomers.

I suggest to keep the field on screen but just disable it, make it not editable...

Sono alle prese da ormai 10 giorni con un orario di scuola media che quest'anno viene fatto per la prima volta con FET e nello stesso tempo introduce, giusto per complicare un poco, alcune cose simpatiche come classi miste francese/spagnolo e un paio di classi in più che vanno a saturare le 2 palestre...

Vorrei confrontare i miei desiderata con i vostri, per capire se mi stanno chiedendo troppo o se ci sono problemi nello split delle activities...

Lezioni 5 giorni, 6 ore

Max 2 buco a settimana, max 1 al giorno
Max 4 ore consecutive e per max 2 volte a settimana (quest'ultimo non si può fare per ora con FET)
Max 3 volte ultima ora (io ho messo 4...)
max 3 volte ita/sto/geo (cattedra a 10 ore) come ultima ora
Inglese e tutte le attività a 2 ore, min days 2, 100%
Italiano/Storia (cattedra 8 ore) max 3 ore al giorno
Matematica/Scienze (cattedra 6 ore) max 2 ore al giorno.

Split 10 ore (italiano/storia/geografia) *: 2 2 2 1 1 / 1 1
Split 8 ore (italiano/storia): 2 2 2 1 1
Split 6 ore (matematica): 2 2 1 1
Split 3 ore (inglese): 2 1

Potete dirmi se siete in condizioni simili e se riuscite a chiudere un orario? Di quale constraint fareste a meno?


*: diviso in 2 activities, min day 1, 100%, così sicuramente il docente entra tutti i giorni in classe per almeno un'ora, con la seconda activity posso arrivare a 3 o 2 a seconda di dove viene piazzato

I changed some activities and I finally have at least 6 timetables completed (more are running).

I have some more rules that are now disabled.
I'd like to know if the timetables respect, by chance, that rules.

I can enable them and start new simulations but they can take a very long time, also if I use the same seed. And this is a method I can use anyway, keep it running all Sunday long...

I was thinking about using another method: open the *_data_and_timetable.fet, enable the constraints, run the simulation.
As far as I understand it, FET will try to place all the activities as stored in the fet file and doing so it should check that all the constraints and respected. It should stop when the first constraint is broken..... is it correct?

Because I want to list all broken constraints and decide what to do with them...

they are teacher wishes after all... :-)

General Stuff / Second show-stopper found....
September 16, 2016, 05:04:33 PM
In order to avoid that 3rd grade classes with 10h subject (3 2 2 1 1 1 or variants as we spoke in other thread) have more than 3 hours in one day I add a tag MAX3 to all that activities.

I then added a "TEACHER max hour per day with a tag" constraint set to 3.

All the test run with (where I disable the most strict constraints) completed the timetable.

When all the constraints were enabled, no way to go upper than a value, in all the runs.

I finally traced the problem to a teacher that has 2 10h subjects, so 20 hours... in a 5 days timetable it means at least 4 hours per day....

I moved the constraint to Students....

I think that this condition can be found at pre-compute... sum of the hours of all the splits with the tags / number of working days should be <= max daily hour with tag

General Stuff / Found first show-stopper...
September 15, 2016, 11:11:05 AM

I disabled constraint after constraint but FET could only easily set 636/638 activities. There was something not related to constraints.

So I printer an empty timetable and marked with red all the timeslots with "teacher not available". I noticed that 2 teachers, that have other schools, are in our the same days, in the same 2 classes, for 2 hours each. This means that on that day only 2 time slots are available and FET can't find a good combination.

So I decided to relax constraints for only those 2 classes and also changed one activity from
3 2 2 2 1
to 2 activities (to help FET, according to the messagebox that appears on screen)
3 2 1 1 (min 1, 100%)
1 1 1 (min 1, 100%)

In this way FET can accomodate activities easier and any problem related to constraints relax are limited to those 2 classes...
I noticed that somehow I lost a constraint... I'm sure it was there but there is no more... probably I messed up...

I thinik the only way to add it is to kill fet-cl and start from scratch...
General Stuff / What happens with this constraint?
September 14, 2016, 09:12:52 PM

I added a "activities occupy max time slots from selection" but I DIDN'T SELECT ANY TIME SLOTS...

I have several activities, no time slots, max 3 occupied... what can happen? Should be ok, since it is MAX 3...
General Stuff / Started final run, finger crossed...
September 14, 2016, 03:15:51 PM
I added all the last "strangest" constraints requested and with some left to 0% and some to 99.9 and max 3 gaps per week.
I run a test on my (powerfull workstation) but it topped at 635 out of 649 activities.

In the meanwhile I installed fet on a powerful, enterprise grade server a friend gave me access to.

I wrote a little script to run 16 instances of fet-cl (server has 16 cores) and about 10 completed in a short time (under 10 minutes) with very low soft constraints (something teachers said they would accept). Some timetables were quite good ! So good that I kept them to check later... perhaps fet assigned few 3 weekly gaps to teachers that would accept them :-)))

I then lowered gaps to maximum 2 per week and started the final run, with these partial results:
Wed Sep 14 15:21:51 CEST 2016
At time 0 h 20 m 28 s, FET reached 634 activities placed
At time 0 h 5 m 15 s, FET reached 637 activities placed
At time 0 h 5 m 12 s, FET reached 634 activities placed
At time 0 h 2 m 50 s, FET reached 632 activities placed
At time 0 h 2 m 13 s, FET reached 630 activities placed
At time 0 h 2 m 26 s, FET reached 634 activities placed
At time 0 h 1 m 17 s, FET reached 632 activities placed
At time 0 h 1 m 46 s, FET reached 635 activities placed
At time 0 h 8 m 44 s, FET reached 634 activities placed
At time 0 h 22 m 22 s, FET reached 632 activities placed
At time 0 h 13 m 53 s, FET reached 632 activities placed
At time 0 h 2 m 26 s, FET reached 636 activities placed
At time 0 h 5 m 7 s, FET reached 632 activities placed
At time 0 h 10 m 50 s, FET reached 630 activities placed
At time 0 h 5 m 36 s, FET reached 633 activities placed
At time 0 h 2 m 38 s, FET reached 635 activities placed

Unfortunately, in the last 30 minutes I got no activity set in any of the 16 threads...

I then noticed that some constraints were set improperly so I stopped the processes after one hour, corrected the constraints and restarted the generation... numbers are a bit lower now but I will wait till tomorrow morning, in the hope that a solution is found... and that the soft constraints will be acceptable....

General Stuff / 2+2+1+1: 2+2 not in consecutive days
September 12, 2016, 03:50:56 PM
When you give teachers no limits on the constraints, their requests can get really curious.

6 hours subject, they ask to split 2 2 1 1 but they also ask that the 2 hours blocks are not in consecutive days....

They also ask to start teaching AT LEAST 3 times in a week...

For both I have no idea how to implement in FET... I may create a script to do a post-generation check...
General Stuff / Max hour of a teacher in a class
September 12, 2016, 12:05:19 PM
A teacher can have up to 10 hours in a class, subject A (8 hours) and subject B (2 hours). Since these subjects have no space constraints (no labs, no gym) the only constraint I want to force is that there can't be more than 3 hours daily for a teacher in the same class. There are several teacher with the same problem.

As far as I understand the various FET constraints, there is not one I can use directly.

The solution I use is to set a activity tag and then unlock the advanced constraints and use "Students activity tag max hours daily". It has a warning that it may be slow.

Another solution may be to create, for each teacher, 5 "activities occupy max time slots from selection" contraints, one for each day, with activities A and B...

Instead of 1 "slow" contraint, there will be 45 "activities occupy max time slots from selection"... will it be slower or quicker?

Any other possible constraint?


A teacher has to teach 8 hours in a class.
The activities were split in 3 2 2 1 based on the idea that "yes, they can stay up to 3 hours in the same class in a day" that is really different to force them to stay.

So I'd like to switch from:
3 2 2 1, min days 1, 95%, no consecutive
2 2 1 1 1 1, min days 1, 95%, Yes consecutive  and I know how to do this, then I need to set maximum hours daily to 3 and I suppose I should do with activity tags.

Should I delete the activity and create it again?

Can this change help FET?
General Stuff / Teachers stats, min hours per day
September 07, 2016, 12:48:04 AM

The stat doesn't consider empty days. So if a teacher gets a timetable of 3 4 0 2 2 hours, minimum is 2 and not 0....

I was trying to produce a timetable with Fet and I think it is working great! Unfortunately I hit a probable road block that I don't know how to solve.

In Italy teachers must be in the classroom for 18 hours and at least 5 days/week (to simplify) but they can teach in different schools.

problem 1)
In my case I have a teacher that is going in our classroom for TWO hours/week, and they can't be consecutive, so I should tell FET that this teacher (and a couple similar) that they can work just 1 hour in a day... unfortunately the minimum for ALL and single teachers is 2 from the GUI....

problem 2)
In a 30 hour timetable, teacher may complete the 18 hours in just 3 days, but the contract doesn't allow this and I must force that they go in the classroom everyday - no empty days. But the option is not available, it is not possible to set this constraint...

So now I have timetables with teachers with empty days and a subject taught twice in a day... (this last can be later modified by hand, but there are several similar cases (4, 6, 8 hours) that must be cared off..)

Suggestions / Looking at the code
March 11, 2015, 11:35:36 AM
I've discovered FET last saturday and I already spent several hours studying its code.
I compiled on both Windows and Linux.

I don't know how the project code is managed so I ask... 

To better study the code I'd like to clean generate.cpp:
- removing all the commented code
- adding comments to illustrate the algo
- check to see if I can use some macros for code
- in randomswap try to remove all that ok* variables that can be reduced to a couple (since they are not used outside their block)
- remove the #if 1/#endif and if(1) { ... }  blocks

I repeat: I don't know how the code is managed and why it is in this state, perhaps there is a reason. So I ask if you are interested to have the changes back or not.

Of course, I will also ask some questions on the algo when I'll be stuck... :-)

I have a teacher with 10 hours in a class (1A) and 8 in another (2F)

For example in 1A she teaches writing(4)+history(2)+geo(2)+reading(2)

She needs to have 3 consecutive hours in a class at least once in a week to do writing tests.

I created one activity of 10 hours split 3+1+1+1+1+1+1+1 so that she will arrange the distribution of the Subjects herself and speedies up the loading of the data...

I also set max 5 teaching hours (out of 6) for all Teachers.

How can I specify that she can't teach more than 3 hours in a class each day?