Consecutive activity tag for student group should be placed in same room

Started by agemagician, September 10, 2013, 11:42:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

agemagician

QuoteMy thought is to try with constraint activities same room if consecutive. Will these replace your activities occupy max rooms constraints, keeping the same activities ids?
Yes, a constraint like "activities same room if consecutive" can replace "activities occupy max rooms" and will solve the problem.
I am sure if you can make constraint like this will help many institutions.
Thank you again for your time :)

Liviu Lalescu

The good news is that the new constraint is ready (see http://lalescu.ro/liviu/fet/forum/index.php?topic=1499 in the Snapshots section).

The bad news is that it seems that your file is a bit too hard. I replaced constraints occupy max different rooms with the new constraint activities same room if consecutive and it remained at 1101 activities max placed. I hope that you will try to solve it by lowering a bit the constraints.

Please report results!

I attach your modified file (I just replaced ConstraintActivitiesOccupyMaxDifferentRooms by string ConstraintActivitiesSameRoomIfConsecutive, opened the file, then saved it).

agemagician

QuoteThe bad news is that it seems that your file is a bit too hard. I replaced constraints occupy max different rooms with the new constraint activities same room if consecutive and it remained at 1101 activities max placed. I hope that you will try to solve it by lowering a bit the constraints.
Wow, Amazing you are one of the best developers I have ever seen "Fast and reliable". The constraint worked absolutely perfect for me.
I know what was the problem when you generated the schedule. There are few subjects that many subgroups from different years and groups join together to study it which make it difficult to make them all study in the same room after this subject. Whoever, I know this is impossible and it's ok to let them change the room in that rare case.

Results:-
1- When using the "A set of activities occupies max different room" with 2 rooms the program was able to generate the schedule after about one hour and it was impossible to generate the schedule with 1 room.
2- When using the new constrain the program was able to produce the schedule in less that a minute and all students never changed their room if the activities was consecutive.

I don't know how to thank you. You really made my day :)

Liviu Lalescu

You are welcome! Thank you for your suggestion as well, you make the program become better!

Could you give me your corrected file, please? Attach on the forum, archived.

agemagician

QuoteYou are welcome! Thank you for your suggestion as well, you make the program become better!
Could you give me your corrected file, please? Attach on the forum, archived.

Yes, sure. It's from my pleasure.
Whoever, the file is too large to uploaded in the forum "2.41 MB when it's locked and about 1.7 MB unlocked".

I uploaded it to here:-
http://www.multiupload.nl/M8Y0J1BL3G

Thank you again for your effort and time.

Liviu Lalescu

I can tell you that I let more time my original file and it solved in 2 hours, 5 minutes and 6 seconds for starting random seed X=123, Y=123, then next run was done in 17 minutes and 16 seconds. So, more good news :)

agemagician

QuoteI can tell you that I let more time my original file and it solved in 2 hours, 5 minutes and 6 seconds for starting random seed X=123, Y=123, then next run was done in 17 minutes and 16 seconds. So, more good news :)

If I was not a computer science graduate I was going to say this program contains a demon that solve the schedules  ;D

Great news :)

I have test a lot of schedule software and by a lot I mean a lot. Including Timefinder, tablex, unitime, Lantiv, Mimosa, wise timetable and  asc timetable. I can say without hesitating that FET is the best among them in very single thing.

I think the only weak point in the program is the printing module. Anyway, I will continue discussing with Volker the possibility of adding more abilities to the printing module.

Thank you again for your time and effort.

Liviu Lalescu

Please let me know if I can add your file to the official examples (no privacy problems). Also, tell me in which directory.

Volker Dirr

Quote from: agemagician on September 14, 2013, 01:40:09 PM
Quote1. I am not sure. Are you talking about the subgroup tables?
I am talking about any table.
In case of group. There should be a header under the institue name contains information like :-
Year:1st year          Group:Computer Science
In case of subgroups. There should be a header contains information like:-
Year:1st year          Group:Computer Science        Subgroup:Class 1

ah. ok. Now i see it again.
There are 2 things why i didn't wrote that.
the minor problem:
data is at several schools redundant. so for example it is year "5" and group "5a". so it is clear: of course group "5a" containt into year "5". So i don't need to print "5 - 5a". it is redundant.
the bug problem:
A subgroup might be member of a lot of other groups. So it will be a very long list of groups and years.
Similar problem for years.
All this information won't fit in a single line.

Volker Dirr

Quote from: agemagician on September 14, 2013, 01:40:09 PM
Quote2. it's a qt bug. the bug is already in theit TODO list.
Great waiting for the next version :)

Don't expect a quick fix of that bug. I reported it already some time ago and they didn't fixed it in the last version.
It is only a "priority 3 bug". So they will fix bugs with priority 1 and 2 first. They also have limited resources.

Volker Dirr

Quote from: agemagician on September 14, 2013, 01:40:09 PM
1- A horizontal bold line between days in "Subgroups, Time Vertical" "see attach: Fet-2.jpg".
2- A vertical bold line between each group in "Subgroups, Time Vertical" "see attach: Fet-3.jpg".
3- Make a new table after a specific number of groups or after each group in "Subgroups, Time Vertical".

ah. ok. I understand what you mean:
1. No easy solution by css at the moment. But that shouldn't very difficult to code. I will write this in my TODO.
2. No easy solution by css at the moment. This will be more difficult to code. (See also point 3b)
3.a. "Make a new table after a specific number of groups". Impossible by css, but will be easy to code (because it is already coded for internal printing, just not for html export in a file)
3.b.  "Make a new table after each group". Impossible by css. Also don't forget this will be more difficult, because a subgroup might be member of several groups. So what should i do: print the subgroup into each group? this will make very large files with a lot of redundant data. Or shouldn't i print redundant data (like now). the files will be much smaller, but you might miss data at some places.

agemagician

QuotePlease let me know if I can add your file to the official examples (no privacy problems). Also, tell me in which directory.

Yes, sure but please wait until the end of this weekend because we are still refining the schedule "Removing subjects, adding new teachers, etc.."
I will send you the final version of the schedule this weekend. Thank you again for everything :)

agemagician

Quoteah. ok. Now i see it again.
There are 2 things why i didn't wrote that.
the minor problem:
data is at several schools redundant. so for example it is year "5" and group "5a". so it is clear: of course group "5a" containt into year "5". So i don't need to print "5 - 5a". it is redundant.
the bug problem:
A subgroup might be member of a lot of other groups. So it will be a very long list of groups and years.
Similar problem for years.
All this information won't fit in a single line.

mmm, aha. I think I have a solution for these problems:-
1- Make a comment for each group or a minor name for printing beside the group name.
2- For subgroups allow a comment or a minor name beside the full name for printing.

An easier solution why you don't just add a textbox in the printing form and call it header and let the user fill it with whatever they need to be printed in top of the current page?

agemagician

QuoteDon't expect a quick fix of that bug. I reported it already some time ago and they didn't fixed it in the last version.
It is only a "priority 3 bug". So they will fix bugs with priority 1 and 2 first. They also have limited resources.

Ok, waiting for this bug to be fixed. It maybe a priority 3 bug but It's a priority 1 for all arab continues :)
Anyway, I really appreciate your time and effort.

agemagician

Quote1. No easy solution by css at the moment. But that shouldn't very difficult to code. I will write this in my TODO.
Ok, great waiting for this :)

Quote2. No easy solution by css at the moment. This will be more difficult to code. (See also point 3b)
But it's not impossible and I trust you can do it :)

Quote3.a. "Make a new table after a specific number of groups". Impossible by css, but will be easy to code (because it is already coded for internal printing, just not for html export in a file)
3.b.  "Make a new table after each group". Impossible by css. Also don't forget this will be more difficult, because a subgroup might be member of several groups. So what should i do: print the subgroup into each group? this will make very large files with a lot of redundant data. Or shouldn't i print redundant data (like now). the files will be much smaller, but you might miss data at some places.
Both will not be necessary if you could do number 1 and 2.