Very difficult file needing your help

Started by yush, June 21, 2025, 05:54:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Liviu Lalescu

Could we have min days 3 and 2 with 80%? Also, don't forget to apply the automatic removal of redundant constraints after all the changes.

yush

I think I will have to keep the NA:3+mD:2 and NA:2+mD:3 at 100%. For an 8 days cycle, I really can't have classes that meet only two or three times not spread out. As it is now, the worse case scenarios are:
A1 x  A2 x  A3 x  x  x
A1 x  x  A2 x  x  x  x
Anything worse would not be acceptable.

Liviu Lalescu


Liviu Lalescu

What about students not available 3 hours at lunch and teachers max 1 hour from the 4 in the lunch? Could you make these easier? Maybe make for the students max 1 hour from the 4 in the lunch? Maybe allow for teachers 2 hours in the lunch?

yush

The hour is not a real hour. Each hour is really 15 minutes. So, 3 hours = 45 minutes.

Liviu Lalescu

Yes, I was talking about FET hours.

So, these constraints (not available students in lunch and teachers work max 1/4 hours at lunch) are not possible to make easier?

I already asked, but I ask you again: if there was no FET, how would they do such a difficult timetable. I am not bragging at all, I am just curious and want to find out possible improvements in the FET file to make it faster.

Liviu Lalescu

Yush, I just got an idea: the constraints min days with 100% should be redundant. I mean, if you have A1,A2,A3 same starting time respectively with B1,B2,B3, and you added only min days 100% between As, please add the same min days 100% for Bs. Don't add redundant (in fact, remove them with the automatic function of FET) for min days <100%.

Please let me know.

yush

Got one working! Have to do some manual work:
- It got all the way to 1083/1137
- It has 4 remaining yr=2 activities
- I lock all time, unlock all yr=2, use advanced group activities order to move the yr=2 ahead of all yr=1
- At first it didn't work. Then I moved the the last 4 to earlier in the order
- Then it got to 1090, which means all the yr=2 are done
- lock all, unlock yr=1, try again -> solution!!!

Liviu Lalescu

#53
I am happy for you! :) Congratulations!

The thing is that you know better your file than everybody else.

Thinking of your tricks, maybe adding redundant like in my previous post would be a possibility.

yush

I haven't add the redundants in my file that worked. But I am going to keep working to improve it. Let me confirm what you are suggesting:
If I have several groups of activities that happens at the same time (I call them a block), I should have identical minday/maxday constraints for all the activities set in that block? These redundant constraints will help FET to run faster?
Am I right? If so, can you tell me a little more about why it would help? Given that activities with same starting time constraints will be placed together, I can't see why it would help. Or, am I getting it wrong?

Liviu Lalescu

Yes, add redundant min and max (I forgot about max) if they are 100%.

Yes, they will be placed together in the initial order. But, this does not make sure they are immediately near. Also, when they are allocated and deallocated many seconds later, they will not be again together.

Example:

A1,A2,A3, min 2 days 100%
B1,B2,B3, same time respectively as A1,A2,A3.

FET might put in the initial order B1,B2,A1,A2,B3,A3 or even B1,B2,B3,A1,A2,A3, if B1, B2, and B3 have the same conflicting factor.

Or, the current placement: Bs and As placed, trying with C1, displaces As and Bs, but As will be say 20 activities after Bs, if FET displaces say 30 activities.

I think you took care too much of not having redundant constraints and fell into another trap... hmm... the other extremity of problems.

yush

Yes. I did most of the min/max day by script, ensuring that I am not creating redundant constraints. I will now write another script to put them back on and try again. It's bed time for me now, will let you know of the result tomorrow! I am running more runs tongiht, so I will have more data to compare tomorrow.

Liviu Lalescu

In addition:

A1,A2,A3, min days 2 100%.
B1,B2,B3
C1,C2,C3
D1,D2,D3

same starting time respectively.

It might be that As are last!

Good night! Have a deserved refreshing rest!

yush

Running a new version with the extra min/max days constraints added to all activities that has the same starting time. Seems to be slower, not sure it will go further. Only time will tell. However, I am just thinking if this is true:
If one of the mindays constraint is at 20%, wouldn't have 5 duplicates of the same makes it less likely for FET to break that constraint?

Liviu Lalescu

Hmm... I hoped better.

Yes, of course. The new resulting constraint will be (6 times): 1-(1-0.2)^6=0.737856=73.7856%.

In your 2010 case, you had 3 or more 95%, and the resultant is nearly impossible to break, that's why you had to remove redundant constraints.