Max level of conflict.

Started by MarioMic, October 08, 2013, 04:36:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MarioMic

Hi.
When I create multiple timetables with fet, to eliminate the bad results (with a high number of conflicts), I have to manually select and remove the folders of the bad timetables in the output path. This is especially annoying if I have many timetables since the names of the folders do not show the level of conflict (it also would be useful to have this, too), and moreover occupy disk space unnecessarily.
It would be useful (for the gui and the command line version) to have an option to save only timetables below a configurable threshold of maximum level of conflict.
Thanks.

Liviu Lalescu

I am thinking to add the number of conflicts in the directory name. Let me know if this would be good enough for you.

How to add? "1-sc-4.95"?

On Windows there might be problems if the directory name contains a dot?

MarioMic

Yes, is good enough (even if the conflict threshold is the optimum to save the disk space).
May be 1-4_95?

MarioMic


Liviu Lalescu


MarioMic

Yes, it is more usable with a bash script.
Thanks Liviu.

Volker Dirr

Also please think about using constraints with 100% weight. Yes, you (maybe) need to think a bit more if you enter and fix the data, but you save much more time, because you don't get bad timetables anymore.

MarioMic

I do not know enough about the algorithm used, but I think it chooses, at random, different routes based on the weights.
If so, a weight of 100% might exclude some ways that open up interesting solutions. I prefer to invest more time to get better solutions.
Choosing a weight of 95% I could get a partial solution with a low level of conflict that could be completed without further conflict, but choosing a weight of 100% I could exclude this solution. Isn't it?
Sometimes I generated 100 timetables in order to obtain very good solutions.

MarioMic

Certainly an algorithm that during the calculation of a solution does not proceed further if it exceeds a configurable threshold of conflicts would save disk space and also time consuming.

MarioMic

Excuse me, I missed...

Certainly an algorithm that during the calculation of a solution does not proceed further if it exceeds a configurable threshold of conflicts and goes to compute the next solution would save disk space and also time consuming.

Liviu Lalescu

One can only know the final conflicts; one cannot know ahead an estimate of the conflicts, until the timetable has been finished. Only disk space would be saved, but I do not agree that it is a good thing not to write timetables over a threshold value, because disk space is very large nowadays. There may appear complications.

Liviu Lalescu

I put a new snapshot on http://lalescu.ro/liviu/fet/download/test/ . This outputs a "report.txt" file with all timetables. Please check. Windows version will come soon.

Volker Dirr

Quote from: MarioMic on October 08, 2013, 07:31:17 PMIf so, a weight of 100% might exclude some ways that open up interesting solutions.

Don't worry. If you choose 100% weight only you will get a perfect timetable. There is no better solution possible. If there is a better one, then you forgot to set a 100% constraint.
Also don't worry about that you might miss a solution. You will only miss solutions with conflicts or, if the algorithm find a solution by swaping with no conflict, then there is also an other way (conflict free) way to get there. So FET will be able to find the same solution, just by going an other way (This way must not be longer, it can also be shorter!). Why checking a lot of solutions with conflicts? That is much more wasted time.
I use only 100% constraint some years now and get always a quick perfect solution. I must admit that this method sometimes need a bit brain at the beginning to fix "bugs", but overall i save a lot of time and get 100% conflict free timetable.

MarioMic

Ok, but the problem is that sometimes there is no possible perfect timetable and I have to decide which constraint violation is the least bad, ... without knowing at first the consequences I have to generate multiple timetables for various scenarios... probably I must use in a better way the constraints ... I'm learning.