Hi,
from my point of view, solution to this issue is quite simple - it's enough to add another constraint to the algorithm - a set of activities have the same Room. As a result, algorithm should create a set of activities strating the same time, regardless of the day - a set of activities has the same starting hour (any days). Number of days can be set with min and/or max gap between them. It's just a theory, i don't know how complex in is to programm it.
I think that's one of the best ideas to solve it, but the overwhelming number of 800 activities make it a long shot to implement without any conflicts. Moreover, there are two beginnings of week in generated timetables , which may become a big challenge to organizationally implement, people may not actually go for it. So these 'double days' would need to be somehow joined, like "Monday(even)+Monday(Odd)=Monday". I need to have 3 windows opened ( "Timetable Teachers", "Timetable Students", "Timetable Rooms") to go through it. Anyway, it makes statistics clear - no dummy activities. Next problem it presents, is pairing activities with exchanging teachers and students. Algorithm places activities symmetrically (4 hour activities in one week = 2 activities 2 hours each in another respectively), see my file 07:15-12:00 (Activity Id=5 Even Tuesday)/(Activity Id=32 Odd Tuesday & Activity Id=12 Odd Tuesday).
Yes of course, but i would like specifics to be more individual (no names, or activities names, etc.)
Why gaps between activities have been set by
The minimum requiered distance In days between each pair of activities = 5 and Constraints max days between activities Max days = 5 constrains. Because if activity set on, ie. Wednesday (even week) it will set next on next
Wendesday in odd week, respectively. Algorithm is being generated in 8 secs.
I don't get this at all, actually. Please describe it in some example for better understanding.
It is imperative, beacause having scarce resources, like rooms , having them tagged differently for different purposes, etc. Additionally, there are lecture and laboratory rooms. Each teacher can run couple of different activities. This results in "Space - Teacher has a set of home rooms" and "Space - Activities hah a set of preferred rooms" constrains have little help and can be useful only in individual examples. If, for instance constrain for T1 is set "Space - Teacher has a set of home rooms: 20-A_WR i Aula-A_WR"and for A1 "Space - Activities has a set of preferred rooms: 20-A_WR i Aula-A_WR", program will choose one room or another without any predetermination - there's no constraint to block one room for activity for the next week respectively. 800 activities is a little to much to change it after the program has set it once.
I need a clear timetable, with fair statistics - no dummies. Cosmetics would it be, if we start over with a normal week - no odd no even with different than default view like in previously attached file. My knowledge with handling XML is null, so i'd have to do it manually.
Manual changes and repeatedly generating to look for conflicts is aroad to nowhere - see 800 activities.
Second building is a sports building. No help here.
Number of fortnightly activities is a result od teachers requests and lectures specification, it's no my doing.
----
Another solution is to link activities together (subjects) and create new activities before planning in Fet.
Example: students group G1 is having activities S1 that are run by teacher T1 once in two weeks for 4 hours tagged W. Now i need to find manually activity/es for G1 for 4 hours with different teacher T2 next week. If found i need to create new kind of activity 'S1S2' and add it to the program. Then, it needs to get two teachers T1 and T2 with group G1.
Definition:
T1->G1->S1 (4) Week 1
T2->G1->S2 (4) Week 2
Solution:
T1/T2->G1->S1S2 (4)
Rooms have some capacity and additional group need bigger space ;]
If there's no equivalent activity in lenght, so the solution is:
Problem:
T1->G1->S1 (4) Tydzień 1
T2->G1->S2 (2) Tydzień 2
T3->G1->S3 (2) Tydzień 2
Solution:
T1/T2->G1->S1S2 (2)
T1/T3->G1->S1S3 (2)
from my point of view, solution to this issue is quite simple - it's enough to add another constraint to the algorithm - a set of activities have the same Room. As a result, algorithm should create a set of activities strating the same time, regardless of the day - a set of activities has the same starting hour (any days). Number of days can be set with min and/or max gap between them. It's just a theory, i don't know how complex in is to programm it.
QuoteLiviu Lalescu wrote on 08/23/10 at 02:11:22
Maybe try this: generate a timetable once. Then, try to fix the activities in the first week to their rooms, chosen by FET, and fix the activities in the second week for respectively the same rooms of the pair activities from the first week. Maybe FET will find a timetable (hopefully, the data will not be too constrained).
For example: A1 (week 1)->R1, A2 (week 2)->R2. A1 and A2 should have the same room (they represent the same weekly activity). Then, fix A1->R1, A2->R1.
I think that's one of the best ideas to solve it, but the overwhelming number of 800 activities make it a long shot to implement without any conflicts. Moreover, there are two beginnings of week in generated timetables , which may become a big challenge to organizationally implement, people may not actually go for it. So these 'double days' would need to be somehow joined, like "Monday(even)+Monday(Odd)=Monday". I need to have 3 windows opened ( "Timetable Teachers", "Timetable Students", "Timetable Rooms") to go through it. Anyway, it makes statistics clear - no dummy activities. Next problem it presents, is pairing activities with exchanging teachers and students. Algorithm places activities symmetrically (4 hour activities in one week = 2 activities 2 hours each in another respectively), see my file 07:15-12:00 (Activity Id=5 Even Tuesday)/(Activity Id=32 Odd Tuesday & Activity Id=12 Odd Tuesday).
QuoteLiviu Lalescu wrote on 08/23/10 at 02:11:22
may I add your words in the FAQ?
Yes of course, but i would like specifics to be more individual (no names, or activities names, etc.)
QuoteVolker Dirr wrote on 08/23/10 at 02:44:49
Thta is not 100% correct. If you have bad luck, your timetable will not solved, even it is possible to solve.
Why gaps between activities have been set by
The minimum requiered distance In days between each pair of activities = 5 and Constraints max days between activities Max days = 5 constrains. Because if activity set on, ie. Wednesday (even week) it will set next on next
Wendesday in odd week, respectively. Algorithm is being generated in 8 secs.
QuoteVolker Dirr wrote on 08/23/10 at 02:44:49
i think your solution is only correct if you add between the two weeks a pseudo week. (so you need 15 days week!) All days of that pseudo week get a break constraint. i know, the printed table doesn't look fine, but it will solve the problem i descriped a few lines before.
I don't get this at all, actually. Please describe it in some example for better understanding.
QuoteLiviu Lalescu wrote on 08/23/10 at 07:01:06
If it is imperative for your case, I will try to think about it. But I think it is very difficult and also in the past I thought it was very difficult.
It is imperative, beacause having scarce resources, like rooms , having them tagged differently for different purposes, etc. Additionally, there are lecture and laboratory rooms. Each teacher can run couple of different activities. This results in "Space - Teacher has a set of home rooms" and "Space - Activities hah a set of preferred rooms" constrains have little help and can be useful only in individual examples. If, for instance constrain for T1 is set "Space - Teacher has a set of home rooms: 20-A_WR i Aula-A_WR"and for A1 "Space - Activities has a set of preferred rooms: 20-A_WR i Aula-A_WR", program will choose one room or another without any predetermination - there's no constraint to block one room for activity for the next week respectively. 800 activities is a little to much to change it after the program has set it once.
QuoteLiviu Lalescu wrote on 08/23/10 at 07:01:06
do you imperatively need it for the generation of the timetable, or it is only cosmetic, for the HTML timetables?
I need a clear timetable, with fair statistics - no dummies. Cosmetics would it be, if we start over with a normal week - no odd no even with different than default view like in previously attached file. My knowledge with handling XML is null, so i'd have to do it manually.
QuoteLiviu Lalescu wrote on 08/23/10 at 07:01:06
manually change the rooms to the rooms of the first week. Or is this wrong?
Manual changes and repeatedly generating to look for conflicts is aroad to nowhere - see 800 activities.
QuoteLiviu Lalescu wrote on 08/23/10 at 07:01:06
Also, I saw that you are not using building changes (second building has only one room, unused). Even if you did, I suppose that a certain activity (and its pair) has only preferred rooms from a certain building, and you'll have no problems with that.
Second building is a sports building. No help here.
QuoteVolker Dirr wrote on 08/23/10 at 08:08:56
If he has not to many activities only every second week the workaround will be much faster to use, generate and easier to read.
Number of fortnightly activities is a result od teachers requests and lectures specification, it's no my doing.
----
Another solution is to link activities together (subjects) and create new activities before planning in Fet.
Example: students group G1 is having activities S1 that are run by teacher T1 once in two weeks for 4 hours tagged W. Now i need to find manually activity/es for G1 for 4 hours with different teacher T2 next week. If found i need to create new kind of activity 'S1S2' and add it to the program. Then, it needs to get two teachers T1 and T2 with group G1.
Definition:
T1->G1->S1 (4) Week 1
T2->G1->S2 (4) Week 2
Solution:
T1/T2->G1->S1S2 (4)
Rooms have some capacity and additional group need bigger space ;]
If there's no equivalent activity in lenght, so the solution is:
Problem:
T1->G1->S1 (4) Tydzień 1
T2->G1->S2 (2) Tydzień 2
T3->G1->S3 (2) Tydzień 2
Solution:
T1/T2->G1->S1S2 (2)
T1/T3->G1->S1S3 (2)