Defining Activities with Duration > 1

Started by maxi_mus, January 14, 2024, 02:07:14 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

maxi_mus

Hi again

I'm having a really hard time understanding how to define activities that have multiple hours per week.

This is probably due to a mental blockade on my side, but I'm just gonna right down my thoughts anyway, so you can follow my train of though. If there is another thread which already covers this, please tell me, I couldn't find one.

I also think the documentation on this topic is not good and there should be more examples, more on that later.

1. The variable 'Min days' makes no sense to me when defining which blocks are allowed. Defining the possible blocks and the gaps between them are IMO two logically different topics whose constraints should be separated, especially because one might want to change the second depending on the outcome of the first.

Example: 4 Math lessons per week, it's possible to have 2 double lessons, or even 4 single lessons. In the first case, one might want to have at least 2 days between them, but if there are only single lessons it obviously couldn't be more than 1.

2. It seems to me the way the blocks are defined does not allow us (again, I am probably completely mistaken) to define all possibilities.

Again, an example: Say an activity has 2 lessons per week. If we define duration = 2, then these lessons are always going to be in order. If we define 1+1, min days 1 with weight 0% and consecutive, then both possibilities (1 or 2 days) is equally valid. If we raise the weight, FET will try to find a solution with the activities split up into two days. But what if we want the opposite, we prefer a block of 2 lessons, but we want to allow the block to be split up into 2 days if necessary?

3. And finally, one more example for what I think is missing in the documentation.

Let's take Math again, 5 lessons per week. Possible allocations are 3 single lessons and 1 double lesson or 1 single lesson and 2 double lessons. The first variant is preferred. How can I define this in FET?

An example like this is missing in the documentation, and I'm having a hard time inferring this from the given examples.

Just one more comment on one of the given examples in the documentation. Let's take the example Split 3: Duration 1+1+1, Min days 1 with weight 95%, not consecutive. In my country, image 4 (3 lessons of Math on the same day) would never be allowed under any circumstances. So how would one define 1+1+1 where 2 days are allowed, but 3 are never allowed? Would you define additional constraints for this?

I'm assuming I probably just haven't understood the system yet...

maxi_mus

A quick follow-up: My intuitive solution for solving some of the problems I described in the previous post would be to define separate activities. However then, I'm assuming that these could be placed chronologically by the algorithm, right?

Liviu Lalescu

#2
Hello,

There is no problem if there are other similar threads. Our policy is to answer again or direct you to that topic, without any problems. The threads also might be not updated and we need to talk again.

1. They are separated, just that when you add an activity both are added, for convenience. There is the activities list and the list of constraints of type min days between activities.

For this example, maybe this will work: 1+1+1+1 (A1,A2,A3,A4), min 0 days between, consecutive = true. Then add two constraints min 2 days between activities: (A1,A3) and (A2,A4). Or please think, if I did a mistake in this, you might think better than me.

2. Constraint two activities grouped, or consecutive, <100%. Consecutive might order better in the initial order (algorithm stuff).

3. 1+1+1+1+1 (A1,A2,A3,A4,A5), 0% min 1 days between, consecutive = true. Then two activities consecutive or grouped (A1,A2) 100%, then min 1 days between (A3,A4,A5), <100%. Or you can think better than me.

About one more comment: If there is a constraint min days between activities, FET will never place more than two activities on the same day, by design. PS: In the past, FET could place three activities on the same day if consecutive if same day = false, but this was changed on 18 May 2022, in FET 6.4.0.

About follow-up: When you add split activities, they are nicer indented and better to work with. The algorithm orders them by difficulty, no matter if single or split, and places most difficult first.

maxi_mus

Thank you Liviu. Your support is incredible, very helpful and unbelievably fast.

Liviu Lalescu

Oh, thank you, @maxi_mus:)

I am not sure I mentioned this to you already: this program is completely free software, depending completely on benevolent donations. If you could thus support or recommend financial support from your institution, it would be great!

maxi_mus

#5
Quote from: Liviu Lalescu on January 14, 2024, 02:30:18 PM1. They are separated, just that when you add an activity both are added, for convenience. There is the activities list and the list of constraints of type min days between activities.

For this example, maybe this will work: 1+1+1+1 (A1,A2,A3,A4), min 0 days between, consecutive = true. Then add two constraints min 2 days between activities: (A1,A3) and (A2,A4). Or please think, if I did a mistake in this, you might think better than me.


No, this won't work, unfortunately. Say A1 and A2 are on the same day, but A3 and A4 are on different days, then I wouldn't want to have a constraint of 2 days (between A1 and A3), but your solution would enforce one. Having 2 days between activities (A1, A4) would solve the problem IF the activities are always planned in order, but this is not the case as far as I understand it.

This is why I said having the days between activities being defined globally for all sub-activities doesn't make sense to me. These should be able to be defined conditionally on single pairs of subactivities.

This one is not a big deal though, it's a very special case. I was just asking to see how it could be defined.

Can you elaborate a little bit more please on what min 0 days between means exactly? That's another case that is missing from the documentation.

Liviu Lalescu

#6
About min 0 days between: obviously a mistake from me. You can only add min 1 days, but I was thinking of min 1 days with 0%. It was a speed mistake.

I just thought about my answer on your question 1 and I hope it will work. See, I consider A1..A4 equivalent, each one with duration 1 and the same constraints (other than min days between activities affecting them).

You can have three variants: a) 1+1+1+1 (A1..A4), or b) (A1 and A2) on a day and (A3 and A4) on a day two days apart, or c) 2+1+1: (A1,A2), and two days apart A3 and A4.

I will try now to make a very small example to prove, and attach it here.

You can add separate min days between activities constraints for any choice of activities. They do not depend on the groups of activities.

maxi_mus

Quote from: Liviu Lalescu on January 15, 2024, 09:59:47 AMAbout min 0 days between: obviously a mistake from me. You can only add min 1 days, but I was thinking of min 1 days with 0%. It was a speed mistake.


Now I'm even more confused - it is possible to define an activity as 1+1 with min days = 0 and save that, there is no error message when saving...

Liviu Lalescu

Quote from: maxi_mus on January 15, 2024, 10:09:55 AM
Quote from: Liviu Lalescu on January 15, 2024, 09:59:47 AMAbout min 0 days between: obviously a mistake from me. You can only add min 1 days, but I was thinking of min 1 days with 0%. It was a speed mistake.


Now I'm even more confused - it is possible to define an activity as 1+1 with min days = 0 and save that, there is no error message when saving...

1) If you add a split activity with min days = 0, FET won't add a constraint min days between activities. You can check the list of constraints after adding such an activity.

2) If you want to add a constraint min days between activities, the minimum allowed value of min days is 1, because otherwise it is a useless constraint.

Liviu Lalescu

#9
I attach a minimum example with 3 activities, each split into 4 and each in your case (1.) above.

You can now generate simply, or add further constraints to convince you that 1+1+1+1, 1+1+2, or 2+2 are possible as you need (you can force the activities to be on the same day, or use not available times constraints). By this default file, I think FET prefers the activities on different days, because of probabilities, but I found cases of 1+1+2 by generating more times.

maxi_mus

Quote from: Liviu Lalescu on January 15, 2024, 10:17:33 AM
Quote from: maxi_mus on January 15, 2024, 10:09:55 AM
Quote from: Liviu Lalescu on January 15, 2024, 09:59:47 AMAbout min 0 days between: obviously a mistake from me. You can only add min 1 days, but I was thinking of min 1 days with 0%. It was a speed mistake.


Now I'm even more confused - it is possible to define an activity as 1+1 with min days = 0 and save that, there is no error message when saving...

1) If you add a split activity with min days = 0, FET won't add a constraint min days between activities. You can check the list of constraints after adding such an activity.

2) If you want to add a constraint min days between activities, the minimum allowed value of min days is 1, because otherwise it is a useless constraint.


OK, I understand now. So, as a follow up to point my example 2:

Quote2. Constraint two activities grouped, or consecutive, <100%. Consecutive might order better in the initial order (algorithm stuff).


Just to be 100% sure I do this correctly, would this be correct:

Activities 1+1, min days 0. And then set a constraint Two activites are grouped, perhaps with 90%. ?


Liviu Lalescu

Quote from: maxi_mus on January 15, 2024, 10:39:14 AMOK, I understand now. So, as a follow up to point my example 2:

Quote2. Constraint two activities grouped, or consecutive, <100%. Consecutive might order better in the initial order (algorithm stuff).

Just to be 100% sure I do this correctly, would this be correct:

Activities 1+1, min days 0. And then set a constraint Two activites are grouped, perhaps with 90%. ?

(A1,A2) with durations (1,1), min 1 days between them, 0% weight, consecutive if same day = true. Then a constraint with say 75%-99% to make them be on the same day/consecutive, and yes, two activities grouped is maybe the choice.

Hmm... do you need them that if they are on different days to be 2 days apart? Let me think/try a small example in this case. Let me know if this is the case, it might be more difficult.

maxi_mus

No, it's fine, 2 days apart is not needed.

Can you explain though real quick why 1 days between with 0% and not 0 days? Isn't the first case just an unnecessary constraint?

Liviu Lalescu

Quote from: maxi_mus on January 15, 2024, 10:53:24 AMNo, it's fine, 2 days apart is not needed.

Great!

QuoteCan you explain though real quick why 1 days between with 0% and not 0 days? Isn't the first case just an unnecessary constraint?

A constraint with 0 days means no constraint, when you add a split activity in the activities dialog. You cannot add a constraint with 0 days from the Add time constraint min days, the minimum value allowed is 1.

A constraint with 0% is important just because of the 'consecutive' factor. Even if the min days are neglected for 0%, the consecutive will be respected. This is why 0% is useful.

Please let me know if now is clear.

PS: I might not answer so fast in the next hours, I might leave for a couple of hours, maybe in an hour or so.

maxi_mus

Yes, it's clear now. But you do understand my point that from a user's perspective, mixing the consecutive and days apart is confusing, because logically they have nothing to do with each other? And, in this concrete example, setting a value for 1 days apart is even more confusing when the actual goal is to have them on the same day? :D

Thanks, I'm amazed at how fast you answer in general.