FET Forum

FET Support (English) => Get Help => Topic started by: busybee on April 16, 2016, 07:17:47 PM

Title: How to split activities in a week with half day
Post by: busybee on April 16, 2016, 07:17:47 PM
Hi,
My school has 8 periods Mon - Fri and 4 periods on Sat. Total 44 per week.
There are 12 classes (years) with almost similar activities as follows:
English 8
Mathematics 9
Language2 6
Language3 6
History 5
Science 5
Other subjects 1 or 2 periods each.

It is desired that
Subjects with 8 periods should be 1+1+1+1+2+2 (preferred) or 1+1+2+2+2 (less preferred but acceptable if less frequent)
Subjects with 9 periods should be 1+1+1+2+2+2 (preferred) or 1+2+2+2+2 (less preferred but acceptable if less frequent)
Subjects with 6 periods should be 1+1+1+1+1+1 (preferred) or 1+1+1+1+2 (less preferred but acceptable if less frequent)
Subjects with 5 periods should be 1+1+1+1+1

Subjects should be distributed evenly throughout the day. It should not happen that subjects with 5 periods get placed more towards the end of the day or vice versa.
If a subject is repeated on the same day, there should be at least a 2 period gap.

I am at a loss on how to split the activities. If I split subjects with more periods into 6 activities, they get allocated more in the morning (because in the morning Sat is available). If I split them into 5 they almost always get allocated as 1+1+2+2+2.
Your help is appreciated.
Title: Re: How to split activities in a week with half day
Post by: Volker Dirr on April 16, 2016, 08:59:33 PM
In my opinion you shouldn't spit the activities into 6 parts, because you will get "trouble" by that.
a) it will be additional work to care about "at least 2 periods between 2 same activities per day"
b) you might/will be a bit "angry" if students have 2+1 or even 2+2 hours the same subject per day
c) nearly only English, Math and Language will be on Saturday; not the other subjects!

as you maybe already know i always prefer only using 100% constraints, because you won't get such problems then, but know think one more:
English, Mathe and the 2 Languages have got more then 6 hours, so you prefer to have them splitted into 6 parts. So these 4 subjects will be on the 4 Saturday hours!
It mean you might get  trouble, since other subjects won't be on Saturday. You might/will get trouble with teachers and rooms conflicts!

That is why i suggest to split it into 5 parts only.
So
English: 2+2+2+1+1
Math: 2+2+2+2+1
Language 2 and 3: 2+1+1+1+1

Caring about a good place over the day:
Care only about around half of the activities that they must be early.
You don't need to care about that the other half must be late. It (nearly) will effect automatically, because it's impossible that all can be early.

So use a few of this constraints:
FET -> Data -> Time constraints -> Activities -> A ste of subactivities has prefered starting time

The first time for subject English, Index 1:
Allow only early hours.

The second time for subject English, Index 2:
Allow only early hours.

The third time for subject Mathe, Index 1:
Allow only early hours.

...

So 2 times for each subject.
Title: Re: How to split activities in a week with half day
Post by: busybee on April 17, 2016, 06:14:10 AM
Thank you Volker.
I will split all into 5 and try.
I did not understand what you mean by
QuoteThe first time for subject English, Index 1:
Allow only early hours.

The second time for subject English, Index 2:
Allow only early hours.













Title: Re: How to split activities in a week with half day
Post by: Volker Dirr on April 17, 2016, 08:03:57 AM
Please go to:
FET -> Data -> Time constraints -> Activities -> A set of subactivities has prefered starting time

Press "add"

Select "component number/split index" = 1.
Select "early" hours.
It depend now on your breaks and if you want to have double lessons over break or not.

I think in your case "early" hours are hours 1, 2 and 3.

If you have a break between hour 2 and 3, then early hours are only hours 1 and 3.

It mean that the first component (with a double lesson) is only allowed on that times. (First component doesn't mean it is the first component in the week. It mean only it is the first component of the splitted component. I can be also the the one on Saturday.

Do it similar with  "component number/split index" = 2. for the same subject.

Do it similar to the other subjects. (except maybe the "Other subjects 1 or 2 periods each." you talked about, since i guess one of it is sports and you might have room problems if sport is only allowed early. If the other one is art or religion, then it might also not be needed to add a "early" contraint to them.)
Title: Re: How to split activities in a week with half day
Post by: busybee on April 20, 2016, 03:34:05 AM
Hi Volker,
I have split all activities into 5 and added the constraint "FET -> Data -> Time constraints -> Activities -> A set of subactivities has prefered starting time " to one activity, but it does not seem to help. Perhaps I am missing something.
Issues:
1. All activities are assigned on 5 days. None of them gets assigned on all 6 days.
2. Although all the constraints say <Consecutive_If_Same_Day>false</Consecutive_If_Same_Day>, in the generated time table all of them are consecutive.
I have attached the fet file.
Thanks for your support.
Title: Re: How to split activities in a week with half day
Post by: Volker Dirr on April 20, 2016, 03:47:37 PM
Hi,

about 1: that is correct. that is also what i recommend. you can checnge it of course, but i recommend to do it that way. like i said: with 6 you will highly might get trouble since it mean not all subjects can be teached an Saturday. Only English, Math and Languarge. The other subjects (highly) won't be used on Saturday. You will might get room and teacher problems by that.

about 2: <Consecutive_If_Same_Day> has no effect of you use 100% like now, since there will never be 2 activites at one day. That is fine. I guess you mix that because you think the activityies with duration 2 will be splitted. but that is not the effect of this option. it only mean that if there are 2 activities at the same day (that can only happen if you use less then 100%), then it is allowed to be not consecutive.

i recommend to keep it that way (i mean splitting the activities).


about "FET -> Data -> Time constraints -> Activities -> A set of subactivities has prefered starting time"
You done a bug there, because you also add teacher name "john" and also add students set "I A". That is "bad", since it mean the constraint will effect only the activities with subject "English", teacher "John" AND students set "1 A".
I think that is not what you want.
I am sure you want to have it for all "English" subjects.
So please modify that 2 constraint. Please remove the teacher name and also the students set. keep only the subject.

as soon as you done that, add similar constraints to some/most of the other subjects (i think it is not needed for subject Art).
Title: Re: How to split activities in a week with half day
Post by: busybee on April 22, 2016, 03:37:05 PM
Hi Volker,
Are you sure that for each subject I should be adding a constraint "FET -> Data -> Time constraints -> Activities -> A set of subactivities has prefered starting time" with early hours for index 1
and again with early hours for index 2?
Or should it be late hours for index 2?
Regards
Adish
Title: Re: How to split activities in a week with half day
Post by: Liviu Lalescu on April 22, 2016, 04:31:45 PM
Volker said:

Quote from: Volker Dirr on April 16, 2016, 08:59:33 PM
Caring about a good place over the day:
Care only about around half of the activities that they must be early.
You don't need to care about that the other half must be late. It (nearly) will effect automatically, because it's impossible that all can be early.

I would prefer to add also the other constraints, for the late activities. Feel free to add constraints as needed (early for the first subactivity, early for the first two, early for the first and late for the second, early for the first two and late for the third and the fourth, etc.) - it is as you wish, but be careful to keep the timetable possible.