Hello Liviu,
I would suggest you an improvement to add to the generation of time table. I think is good to add an option that automatically saves the time table whenever it reaches a greater number of activities included (only after a number of activities included).
This would have a time table almost finished, to be retouched by hand, without bothering with his finger on the button to save, since it is hard to take when it is higher.
Thanks, Gianpaolo
Interesting idea, but there are a few reasons why I don't want this:
1) There will be generated a lot of timetables, which are not complete. User might mix them.
2) If user changes the number of activities, there might be a lot of timetables saved, in a useless manner.
I will think about it. I could give you the modifications to make this just for you, I think modifications are easy for me to do.
Right, but could be saved only the top 10 results, a bit like the multi-generation, calling single-320, Single-322, single-... based on the number of activities placed
I think is useful
Gianpaolo
what do you want to do with that tables?
the maybe only needed idea is to save the only the highest number of placed activities (best timetable) always with the same name.
so there is "only" the best so far table saved.
but the should be optional disabeld in settings and i think it will be also good to set a limit like "start saving always the best so far timetable under current file name as soon as the are xxx percent of the activities are placed".
I already made exactely the same suggestion as Pinco
here:
Save and update best timetable during simulation (http://lalescu.ro/liviu/fet/forum/index.php?topic=555.msg3318#msg3318)
I agree on Volker's idea
we only need the most filled timetable to be saved afer XX % of placed activitities as stated by Volker:
Quote
the maybe only needed idea is to save the only the highest number of placed activities (best timetable) always with the same name.
so there is "only" the best so far table saved.
but the should be optional disabeld in settings and i think it will be also good to set a limit like "start saving always the best so far timetable under current file name as soon as the are xxx percent of the activities are placed".
1-First, I think the best solution is to save .fet file (or files) not html files
Well, I dont know if FET allows generating html files from a partial (or complete) locked .fet file ::)
2- I also sugget that the next good good timetable continuosely overwrite the prevoius one
Maybe we should also set a
step to reduce Had drive write frequency
So for example
Start Auto save at 80% of placed activites with step= 3
So it starts saving at 160 out of 200
then 163 out 200, overwriting the prevoius one
then 166 out 200, overwriting the prevoius one
and so on ...
If at first run, I noticed that FET geos easily up to 193 out of 200
I can re-run FET and set: Start Auto save at 95% of placed activites with step= 1
and so on..
3- I have also another suggestion:
if FET stucks at 198 out if 200 , I can stop FET
Now I ahve an .fet file with 198 out of 200 placed activities
Then, I would like to have FET tell me what is the left not yet placed activities (the two remaining activities)
This way, I can lower costraints for teacher or students related to this not yet placed activites, by looking at possible slot to place it
for example, it could have been placed if I had allowed one gap for teacher or students
Suppose FET stuck every time at 198 for long time,
By runnning and stopping FET several times at 198 placed activities, and by comparing Not yet placed activities each time, I could deduce, what is going wrong
In general, I want FET to share with me informations about whet is going difficult at a given moment :)
hmmm....
i thought one more time again about this problem.
saving the best so far table maybe helpfull to (highly) experianced guys with very difficult datasets (need several hours to solve) but the last (more worse!) table is also needed.
if fet can't find a solution i need to find my bug. for example fet place 400 out of 500 activities very fast. and then the number of placed activities go down to 100. and fet still generate and generate.
so how to find the bug?
if i view the timetable with 400 out of 500 activities it is not so easy to see why the timetable is impossible.
but if i view the table with only 100 placed activities and try to place the difficult last activity (compare the problematic activity list) manualy i can see the bug much easier, because there are less activities i need to think about.
so if we stop generating i still need to the possibility to view the "more worse" table.
so if we add that feature (saving the best table) we must also still care about the possibility to also save the worse table.
OK, the new feature is done, you have a button to save highest stage. Please test and let me know.
Link, as usual, http://lalescu.ro/liviu/fet/download/test/
Thank you for your work.
It works very well, but we need to improve knowledge of the conflict. Let me explain:
The file conflicts explain only the number of activity like this:
Time constraint basic compulsory: unallocated activity with id=22 - this increases the conflicts total by 10000
its better tuo know the activity totally, (because from only ID is difficult to know whats don't go well) like in information about difficult activities like this:
No: 22, Id: 350 (T:Valenti,Pivetti, S:ED.FISICA, St:3 E,3 D).
I think this is quite simple, but it would also be important to know which class and which days and which time has remained without activity.
Always thanks for how to really take to heart all the problems that we are placed. 're Really good.
Gianpaolo
QuoteThank you for your work.
It works very well, but we need to improve knowledge of the conflict. Let me explain:
The file conflicts explain only the number of activity like this:
Time constraint basic compulsory: unallocated activity with id=22 - this increases the conflicts total by 10000
its better tuo know the activity totally, (because from only ID is difficult to know whats don't go well) like in information about difficult activities like this:
No: 22, Id: 350 (T:Valenti,Pivetti, S:ED.FISICA, St:3 E,3 D).
I think this is quite simple, but it would also be important to know which class and which days and which time has remained without activity.
Always thanks for how to really take to heart all the problems that we are placed. 're Really good.
Gianpaolo
You're right, I forgot about details for unallocated activities. But I cannot write which class remained without activity and at which time. I can only write the details about unallocated activities. You can see the timetable for the rest of information.
QuoteThank you for your work.
It works very well, but we need to improve knowledge of the conflict. Let me explain:
The file conflicts explain only the number of activity like this:
Time constraint basic compulsory: unallocated activity with id=22 - this increases the conflicts total by 10000
its better tuo know the activity totally, (because from only ID is difficult to know whats don't go well) like in information about difficult activities like this:
No: 22, Id: 350 (T:Valenti,Pivetti, S:ED.FISICA, St:3 E,3 D).
I think this is quite simple, but it would also be important to know which class and which days and which time has remained without activity.
Always thanks for how to really take to heart all the problems that we are placed. 're Really good.
Gianpaolo
I have released a new snapshot, please get it and tell me if everything is OK now (showing details for unallocated activities).
Thanks Liviu
Will test and report
One question thought:
1-Deos FET continuosely overwriting previuos saving?
2-can we set a treshold % to start saving?
3- deos it save in .fet or html format ?
QuoteThanks Liviu
Will test and report
One question thought:
1-Deos FET continuosely overwriting previuos saving?
2-can we set a treshold % to start saving?
3- deos it save in .fet or html format ?
1-Yes (if you hit save 2 times, the second time it will overwrite)
2-You can decide the moment at which to save highest stage
3-.fet is impossible, because the timetable is incomplete. Only html.
Now is very good.
I thinks this can help to adjust manually the time table.
Thanks
Quote
3-.fet is impossible, because the timetable is incomplete. Only html.
But, actualy, if you clik "stop and see impossible..", you can browse incomplete student's and teacher's timetable within FET itself
Because browsing and looking at timetables within FET is more practical, I wonder, if it is possible to stop FET on partial timetable, lock it, save it
Then re-open it for later consulting or comparing
For complete timetable, there is no problem:
I generate timetable, lock it , save it
LAter, I can re-open .fet file, re-generate it in less than 2 seconds, beacuse it is locked
then browse timetables with ease :)
QuoteQuote
3-.fet is impossible, because the timetable is incomplete. Only html.
But, actualy, if you clik "stop and see impossible..", you can browse incomplete student's and teacher's timetable within FET itself
Because browsing and looking at timetables within FET is more practical, I wonder, if it is possible to stop FET on partial timetable, lock it, save it
Then re-open it for later consulting or comparing
For complete timetable, there is no problem:
I generate timetable, lock it , save it
LAter, I can re-open .fet file, re-generate it in less than 2 seconds, beacuse it is locked
then browse timetables with ease :)
A .fet file contains only a full timetable. To make it for also partial timetables might be deceiving for the user and I do not want that. Is that difficult to browse html timetables?
Quotemake it for also partial timetables might be deceiving for the user and I do not want that
Actually this is not a problem !!
FET is genius enough! I can acheive the same thing by the following trick:
1-while generating, stoping FET at partial timetable, say 292 out of 435 activities
2- Locking the partial timetable, from Timetable -->Lock all activities from current timetable
3- save .fet file
4- re-open it later,
5- re-generate it in less than 2 seconds!!. Because placed activites ae locked, FET will instantely stop at 292 placed, complaining about "FET could not find a timetable"
6- Finally browse partial timetable
I allways did this trick to have multiple .fet files, keep track of difficult activities, comparing constraints changes from file to file.. etc
So, when you added Sav highest timetable" feature, I was tinking FET will save it in .fet format for later browsing timetable
Browsing within FET is more practical, data is displayed in a compact way
In the future, Maybe you can add : display unplaced activities below each timetable within FET
for example: say TEacher T1 has two unplaced acticities. it is better to disply informations about those activites
in the "Viewing timetables for teachers" window, bellow the timetable itself
This way, I am veiwing teacher's timetable, so I can think about possibilities to plce the two remaining activities by deducing what constraint to lower..etc, I can go to related student timetable to see if it possible..etc
What about this: I make 2 buttons:
"Stop and browse current timetable" (instead of "Stop and see impossible activities")
"Stop and browse highest stage timetable"
What do you think?
Well,
With those two buttons, I think it would be more convenient
I just wonder why you (want to) do it with the highest stage timetable.
In my opinion it is much easier to think/understand the problem with an timetable that has less activities placed.
Hello Volker
QuoteI just wonder why you (want to) do it with the highest stage timetable.
In my opinion it is much easier to think/understand the problem with an timetable that has less activities placed.
Well, IMHO there are many reasons:
1- It is much easier to manualy place 2 , 3 or maybe 5 activities, by breaking some constraints, than to place +100 activities
2- If you see that two unplaced activities could be placed if you had have allowed a techer ONE gap per week, then you allow him a gap and re-genrate.
How could you do this lowering with 50 or more unmplced activities
to point 1: my experience is different from yours. i am faster in modifing all to 100%, i don't need to care about my soft conflicts list, because it is empty. so totaly i am faster, because i thought and deside before and i don't need to generate several tables, because normaly one is enough. i also don't need to manualy move activities by this. but it might be more difficult with your dataset. it is easy with my one, even there are very many constraints now in my current dataset. but maybe it isn't so easy with your dataset.
to point 2: a) if it is only a gap problem then fet will (mostly) only need to set the activities of that teacher. so in "best" case fet set only around 28 periods of that teacher (i know, in real it is higher) and i can see the problem in his/her timetable. i don't need to see all the other activities for that. they just "hide" the real problem. so it's more difficult to think/find that problem. that is also one reason why i am so fast with using only 100% constraint, because i can see the problem faster by less activities.
b) if it is not only a gap problem, then fet will not abort so fast, so the number of activities will not reduce so much. but that mean you can't solve it only by allowing a gap. so that is an important information to me, because i can think about two (or more) alternative solutions that are mayne better then just allowing a gap to a special teacher.
OK, alfaromeo, please get the latest snapshot and tell me if now it is OK. Tell me also if the menu for timetable generate is understandable by the average user.
Downloaded
New entries in menus are clear and well separated
Because I am not an english native, I dont now if sentence "highest stage" is clear enough
To test I clicked "Highest stage timetable"
However, I couldnot find any inforamtions about unplaced activities
Did FET produce such a list ?
Can you point me to a difficult timetable in example folder?
because I tested many , but all are aesy,
I want a file where FET stuck at a stage and go down for long time
QuoteDownloaded
New entries in menus are clear and well separated
Because I am not an english native, I dont now if sentence "highest stage" is clear enough
You have to read like that: "Stop and view..."+"Highest stage timetable"
Quote
To test I clicked "Highest stage timetable"
However, I couldnot find any inforamtions about unplaced activities
Did FET produce such a list ?
See soft conflicts list.
Quote
Can you point me to a difficult timetable in example folder?
because I tested many , but all are aesy,
I want a file where FET stuck at a stage and go down for long time
Maybe Romania/Oradea/FS or Italy/2007/difficult. But you can also test if it goes down 2-3 activities.
QuoteYou have to read like that: "Stop and view..."+"Highest stage timetable"
Ok
I know, I was talking about word "stage" itself..
Quote
See soft conflicts list.
Is it too difficult to place remaining activities related to say Teacher T1 somewhere on "view T1 timetable" window ?
QuoteMaybe Romania/Oradea/FS or Italy/2007/difficult. But you can also test if it goes down 2-3 activities.
I will do
Quote
Is it too difficult to place remaining activities related to say Teacher T1 somewhere on "view T1 timetable" window ?
Not too difficult, but it would mix things up. And I am thinking of a problem now and have little time. I am thinking of how to make the activity tag max hours daily perfect, but it is very hard.
Quote
Can you point me to a difficult timetable in example folder?
because I tested many , but all are aesy,
I want a file where FET stuck at a stage and go down for long time
I think you should simulate that situation by adding a bug into your sampleset.
because why do need this feature if the timetable is solveable?
if you add a bug in your sampleset, you:
- will understand the new feature better and find bugs faster (i mean bugs of livius new code.)
- you will see if it is realy an advantage to see the "higest" stage timetable instead of the current (with less placed activities) timetable to find and understand bugs in your daataset.