Is this a good problem for FET?

Started by subssn594, January 22, 2019, 08:14:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

subssn594

I'm very encouraged by the description of FET, and I think it can work for my problem, but my simple early testing is revealing my lack of skill with FET.  Let me first describe the general problem I want to solve, and I  hope someone can tell me if FET is appropriate and perhaps help me with an example or directions to define my input properly.

I'm running an activity for Boy Scouts (USA).  It is 3 days of Merit Badge (MB) instructions.  What I have is:

~1000 scouts/students
~50 different MBs (unique subjects)
~80 teachers (MB counselors)  Most of these teachers are capable of teaching multiple subjects
~100 rooms.  Most of the rooms/subjects have a student limit of 15.  A few are higher.
3 periods.  Thus each student can take up to 3 subjects
3 days

The students are not grouped in any way -- they each have their own schedule.

I'd like to have FET find the right teacher for each subject and assign up to each teach, room and time.

What do you think?  Can FET do this?  Do you have an example for me to review?

Problem I had thus far:  I created a small trial:  3 subjects, 3 teachers, 40 students, 3 rooms (15 max students).  FET created a schedule that violated the 15-student limit.  I'm obviously not stating that constraint properly, but I don't see where to apply/enforce the limit.

Thanks in advance,
Bill

Liviu Lalescu

I hope we can devise something. We will try. There were more cases in which FET was adapted to "unofficial" situations.

Could you attach your small file so I have something as an indication of where to start? If it is private you can send it by email.

A short answer to allowing only 15 students in each room at a specified time slot (day+hour) is to define for a students set or activity the number of students = 1 and add the room capacity. Or you have the constraint activities max simultaneous in selected time slots (select all 3x3=9 time slots).

I will now read more thoroughly your question and maybe answer again.

Maybe you would like to give us more detailed examples (maybe some tables). But I admit I need to read your first post more carefully.

Liviu Lalescu

Near the end of last year, we solved for the user Peter B a situation which might be similar to yours. It is on: https://lalescu.ro/liviu/fet/forum/index.php?topic=3961.0 (the first posts are in German, you can skip them or translate with Google).

Unfortunately, Peter B's file is private, I cannot share it with you.

The short idea: we allocated activities (tuple: student, subject) to time slots in which FET days corresponded to the real time and FET hours corresponded to real teachers.

But maybe your situation is different.

subssn594

Here is the file I've been playing with...  The first problem I see is that there are 40 students assigned to a period when the room maximum is 15.

Thanks for looking at my problem.

Liviu Lalescu

1) Please update your FET. You are using a very old version. There are available precompiled FET packages for Windows 64-bit (by me), Windows 32-bit (by Volker Dirr), Mac OS X (by Darren McDonald), GNU/Linux 64-bit (by me, recent, see the FET Download page near the end, I am not sure it will work), and also you can find FET compiled for GNU/Linux on many sites on the internet and in many package managers.

2) I don't understand your use of activity tags.

3) You need to add space constraints to allocate activities to rooms. Otherwise the activities will get an unspecified room.

4) You added the activities incorrectly. I think you need to add an activity for each tuple (subject, student). I think we need to use the trick I used in Peter B's case (FET hours are real teachers and FET days are real time slots).

5) Maybe you have some sketches, or graphics, to show us.

subssn594

Thank you very much for giving this some of your attention.  Specific responses:

1)  I will look for an more recent package for Ubuntu.

2)  Any use by me of activity tags is purely from ignorance.  I need to study the documentation more.

3)  I thought I had indicated the room capacity in the room definition.  Again, ignorance on my part.

4)  I'll try your suggestion.

Thanks again.

Liviu Lalescu

#6
0) There is available the GNU/Linux 64-bit precompiled FET latest (5.37.5), done by me - see the Downloads section of FET. It might work on your computer. Just unpack with tar -jxvf and run the executable fet.

1) You might need to increase the max number of FET hours per days = real teachers (which in the official FET is 60). I can help you with this.

2) Space constraints are preferred rooms and home rooms.

3) I made a file for you. It is minimal, but it was difficult to create by hand. You might need to develop some tools to create the FET input file. See my file's activities and constraints. Each student has a single activity at a single real time slot - this is cared by by many constraints of type activities occupy max time slots from selection. This might be improved in the sense that you don't need to input all these very many constraints - by a small customization of the code to make it automatic.

4) Please see my other constraints I added.

5) This is more to demonstrate how to do it. In case of more students/teachers, you/we need to devise something to input automatically such large data.

Please let me know.