Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - ChicagoPianoTuner

#1
You understand correctly, and your name is better. We are trying to solve the same problem, but you are doing it in a better way. I was trying to find a way for the two student activities to overlap with both of the teacher activities, which are constrained to occur in real blocks, or none of the teacher activities and thus be held in fake blocks. You were trying to make sure that the two student activities occur either in real blocks or in fake blocks independent of their association with teacher activities. Your way is much better.
#2
Okay. I'm glad there isn't a way that I was missing!

I think this constraint also falls into the category of something that does not need to be implemented now, but may be useful for other users in the future. I just spent 5 minutes thinking about what this constraint would be named and the best I came up with was "pairs of activities are simultaneous when they occur in selected slots," but that's a very bad name.

I can use the workaround for now. Thank you!
#3
I am trying to implement the last piece of my timetable and I am having trouble. I would love to hear any suggestions!

There is one subject, S, that instead of meeting in one block, it meets in two blocks. It's not simply one activity with duration = 2, because I wish for those meetings to be once in blocks A-D, and the second time in blocks E-H. When creating the activities, for the teacher and students, I create two individual activities. To restrain them to the correct blocks, I use set of activities occupies max slots from selection, one activity allowed in A-D, and one in E-H.

So imagine that FET places the teacher activities in blocks B and H. How do I ensure that students are either placed in both matching blocks or both in FAKE?

The one trick I came up with was to actually use duration = 2 and force the activity to start in block D, that way it occupies blocks D and E and this fulfills my criteria. This isn't such a big deal this time around because there is only one such course, but if there are more in the future, this will not necessarily work.
#4
Small typo in version 5.45.0: when opening the max gaps constraint, the text at the top (not on the menu bar, below it) says "...they must be separated by at most min gaps (hours)." It should say "...they must be separated by at most max gaps (hours)."
#5
Thank you Liviu! I will download it in a few hours and do some work. I may not have anything new to share until tomorrow morning.
#6
Quote from: Volker Dirr on June 19, 2020, 03:45:37 PM
I can replace all teacher, room and student names by random names if you want to add a larger anonymous sample file as sample file. Just sent me and i will convert it (if you can't convert it yourself).
I think that's a good idea. Maybe we can wait until we're sure the constraints are correct from Liviu's point of view, and I add the new ones. But when the time comes, I will take you up on that offer.
#8
Okay, great. It's possible that some of the trouble is coming from somewhere else. It's tough to explain. I can send you another file that will be much easier to test (simply removing a few activities) if you want.
#10
Quote from: Liviu Lalescu on June 19, 2020, 11:17:48 AM
Could you please write here (again), a help for the users regarding how to use same starting day (if adding for students), and min+max gaps between activities, for your situation?
If your students have some different courses in semester 1 and semester 2, there are a few things you need to do. First, double the number of hours in your FET day, creating an hour for each block in semester 1, and another for semester 2, including fakes. The structure should be A_sem1, B_sem1, ..., FAKE_1_sem1, ... A_sem2, B_sem2, FAKE_1_sem2, ... FAKE_N_sem2. Now, for subjects that only last one semester, you can create one activity per student choice as you did before. If you care which semester it's in, use a set of activities has a set of preferred starting times and select the hours corresponding to the specific semester.

For subjects that last the entire year (both semesters), you need to create two activities for each student choice and corresponding teacher activity. They should already be constrained to occur on specific FET days corresponding to real teachers. If there are multiple teachers for the same subject, you need to add a constraint to each student activity must occur on the same day to ensure the students have the same teacher for semester 1 as semester 2. If you want those activities to occur in the same block in semester 1 as semester 2 (which you probably do to avoid confusion, but it is not strictly necessary in some cases), two constraints for each pair of activities: "min gaps (hours) between a set of activities," and "max gaps (hours) between a set of activities". The number of hours, N, should be the same for both constraints. N should be equal to the number of real blocks + number of fake blocks  - 1, assuming the courses have duration 1 (each activity occupies exactly one block). If your courses occupy more than one block, decrease the value of N by 1 for each course duration.
#11
I don't see why same starting day would be necessary. The activities for real teacher T are already constrained to only occur on FET day T, and these are the only activities that will make use of exactly N gaps. Are you saying that, even though this constraint exists, we still need "same starting day" for A1 in semester 1 and A2 in semester 2 constrained by exactly N gaps? I can add those constraints if you think that will increase generation speed.
#12
I would also like to say that other users may very well have senior school students taking different courses in semester 1 vs. semester 2 (Darren's school did). My school may even do it next year. But this year, it is unnecessary.
#13
Students do not need min gaps in my special use case because they do not have different activities in semester 1 vs. semester 2. I may not do a good job of explaining this, but I'll try.

Students in grades 6-8 (middle school students) do not choose their courses - they all are told what to do. Some of their courses are the same in semester 1 as semester 2, but others are not. When I create activities for these students, I do not need to make use of special BP features. I can just do an activity with a teacher with a student group (e.g. Mr. Smith teaches math to 8K, a 'class').

Some teachers teach both senior students and middle students. Students in grades 9-12 (senior school students) are the ones who primarily benefit from FET-BP - they choose their courses. Moreover, senior school students have the same schedule semester 1 as semester 2.

When I create "teacher activities" for senior school subjects, I create two activities, and place one in semester 1 and one in semester 2, and space them using 'exactly n gaps'. But when I create "student activities" I do not need to do this, because the students who correspond to these activities do not change their courses in semester 2. But their teachers might for the middle school courses they teach.

Let me know if that is unclear and I will provide a graphic :)