A second pair of eyes for review

Started by zblakley, June 28, 2021, 08:40:37 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zblakley

Hello,

I'm afraid I've hit a wall and not sure what to try next.
I have attempted to remove various constraints and alter various parameters, but I am now up against implementing an entirely new approach.

Before I go down that road, I was wondering if anyone would be willing to take a look at my .fet file and perhaps identify some glaring error I have overlooked. I think desperation and caffeine overdosing could be clouding my eyes and mind.

I apologize for this very non-specific approach for help, I just want to be sure there is nothing overtly foolish that I've missed before overhauling the whole data set.

Thank you,

Zack

Liviu Lalescu

Hello, Zack,

I tried some things first, like removing all space constraints, and then all min days between activities constraints, and other things.

I came to this result: I converted the weight of all constraints min days between activities with 95% to 50%. I came to a hardly obtained solution, maybe by luck, because I did not obtain another one, and I am generating on 8 threads. I attach it. See timetable number 7, generate on the data_and_timetable.fet.

You might see the soft conflicts in the list, and consider to make the weight of these broken constraints to 0% or lower, if they are not important or impossible, so you will obtain faster a solution.

I might try with higher values now, but I don't think I will obtain a solution.

Liviu Lalescu

#2
I tried another run on 8 threads on my same file (50% instead of 95%), but I did not obtain another timetable. Since all 8 threads went to very different highest-stage placed activities, I suspect that all the constraints as a whole are the culprit, not a single one.

I am trying with 25%, I will let you know.

Edit: I saw 3 or 4 constraints min days with 100% and min days = 2. This might be very hard.

zblakley

Thank you so much for your efforts.

I will work to reduce the weights on various constraints.
Can you share the most efficient way to change constraint weights in bulk?

*It was preferred that tutor groups were split up within the week, but if that constraint is slowing things down, I can reduce it.

This is already hugely useful, just to know I haven't overlooked an obvious flaw.


Liviu Lalescu

#4
You are welcome!

There is the option Advanced > Spread the activities over the week and Min days between activities constraints > Modify multiple constraints at once. I used the second.

I tried to reduce also the weights of 100% min days constraints without the Lunch ones, which obviously need to remain at 100%. I did not obtain another timetable. Maybe you could reduce the weights of allowed constraints and also allow them if on the same day NOT to be forced consecutive. Because you have a break and a lunch, and the double lessons will be very constrained.

Edit: Note that if you have a Break constraint, activities divided into 2 or more per week with min days between activities with <100% and which will be on the same day and consecutive if same day is selected, they cannot spread over a break. If you want this, you need to remove the break and decrease the number of hours per day (simply ignore the break).

zblakley

Hello again,

I am working without a break and reducing 'min day' percentages.

I would like Lunch to fall in the 4th or 5th period (out of 7) of the day, I was thinking of removing the lunch activity for a 'max hours continuously' of 4, but would need another constraint to ensure the break did not fall period 3. Is this a better approach computationally than a 'lunch' activity?

Also, is there a quick way to activate/deactivate activities of a particular tag/subject etc.?

With appreciation,

Zack


Liviu Lalescu

Hello, Zack,

I think Lunch activities are OK. You could add a tag "Real activity" for all the other activities (not having Lunch subject), then max hours continuously with activity tag "Real activity" = 4. The only drawback: a lot of activities to whom to add this "Real activity" tag.

Yes, it is, just press that button in the Tags/Subjects dialog (Activate all / Deactivate all...).

Please keep me informed.

zblakley

Success,

For the lunch situation I created a placeholder activity in a dummy 8th period to ensure that 'max hours continuously'=4 put a break either period 4 or 5 for all students.

I relaxed a few other constraints and can now get a generated output within 10 minutes.
There are quite a few undesirable scenarios (e.g. two English classes spaced out on the same day), but that was expected.

If I may ask for advice again: is there a recommended procedure for reintroducing constraints on the most undesirable scenarios?
Should I gradually increase the 'min days' percentage within 'spread activities,'
or increase percentages on the activities which are placed awkwardly,
or lock placements of well placed activities,
or something else I haven't thought of?

Thank you again.
Soon I may be proficient enough with fet to offer some help here on the forum!


Liviu Lalescu

Great!  :)

About dummy 8th: You invented something very interesting!

First two are good (increase all gradually and increase problematic), but the lock of activities is not good. I cannot think of something else.

You are welcome!