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 - mimooh

#1
Get Help / Re: Preferred Rooms Constraint
May 09, 2019, 11:21:08 AM
Hello!

Does the described here situation correspond to the one from the manual? https://timetabling.de/manual/FET-manual.en.html#id_29

"Subject physics must always be instructed in physics lab, but if physics lab is already occupied it is allowed to be instructed in the chemistry lab.
This example is sadly not possible, but very similar constraint is possible: Subject physics must always be instructed in physics lab or chemistry lab.
Add A subject has a set of preferred rooms."

Is then my reasoning correct that FET uses 2 constraints to handle this?:

constraint1: (phase1 says: subject.physics must take place in one of the 2 rooms):
subject.physics vs room.lab.physics = 100%
subject.physics vs room.lab.chemistry = 100%

constraint2: (phase2 says, that from the two rooms, room.lab.physics has a higher priority than room.lab.chemistry):
subject.physics vs room.lab.physics = 90%

So the same xml construct expresses two various concepts, first is for MUST-BE-IN-ONE-OF-THE-ROOMS and the second one is for PREFERRED-FROM-MUST-BE-IN-ROOMS? Am I getting this right?

    <ConstraintSubjectPreferredRooms>
      <Subject>Sys.wsp.dzi.lab</Subject>
      <Weight_Percentage>100</Weight_Percentage>
      <Number_of_Preferred_Rooms>2</Number_of_Preferred_Rooms>
      <Active>True</Active>
      <Comments/>
      <Preferred_Room>02.lab.inf.003</Preferred_Room>
      <Preferred_Room>01.lab.inf.216</Preferred_Room>
    </ConstraintSubjectPreferredRooms>

    <ConstraintSubjectPreferredRooms>
      <Subject>Sys.wsp.dzi.lab</Subject>
      <Weight_Percentage>90</Weight_Percentage>
      <Number_of_Preferred_Rooms>1</Number_of_Preferred_Rooms>
      <Active>True</Active>
      <Comments/>
      <Preferred_Room>02.lab.inf.003</Preferred_Room>
    </ConstraintSubjectPreferredRooms>
#2
Get Help / Re: Dividing into years, groups, subgroups
November 12, 2018, 01:30:40 PM
Quote from: Volker Dirr on November 11, 2018, 08:58:02 AM
The concept itself is not vague. It is only vague to underatnd for some users.

Yeah, that's what I meant.

Quote
Did you read only the FET internal help or also my manual? ( https://www.timetabling.de/manual/FET-manual.en.html#id_12 )
Please also watch https://www.youtube.com/watch?v=qEuujWuu0oI . You will understand the concept hopefully better than.

I've seen the videos, but I like your docs better. I know how hard it would be to communicate the ideas of my programs. I feel like FET must be a simple thing, but the user must understand things properly. I go back to the FET docs and then go back to producing the rest of the FET XML. I will surely let you know when I succeed with this FET thing :)

Regards and thanks!
Karol
#3
Get Help / Dividing into years, groups, subgroups
November 11, 2018, 01:46:58 AM
Hi again! :)

Still preparing my data for FET, can't wait to finally run it for real. I am
reading the FET documentation and as it says the concepts for years, groups,
subgroups are a bit vague. So perhaps I could ask you to name the entities I
have in our University:

ABC is the name of the largest group of students. They sometimes meet on
lectures. ABC.2018 starts their studies in 2018 and stays for 4 years under the
same name.

ABC.2018 (60 students meet during lectures)

   ABC.2018.ex1 (30 students meet during exercises)

      ABC.2018.ex1.lab1 (15 students meet during laboratories)
      ABC.2018.ex1.lab2 (15 students meet during laboratories)

   ABC.2018.ex2 (30 students meet during exercises)

      ABC.2018.ex2.lab3 (15 students meet during laboratories)
      ABC.2018.ex2.lab4 (15 students meet during laboratories)


DEF.2018
   (...)

ABC.2017
   (...)

DEF.2017
   (...)


Hopefully the schema is self explaining. I assume this is how I should organise
the data:

ABC.2018 is a FET year
ABC.2018.ex1 is a FET group
ABC.2018.ex1.lab1 is a FET subgroup

is this correct? Just to make sure: students having lab3 now cannot have ex2 or
lecture at the same time.

Also, in case it matters for how to organise my schema: in our university each
student is fixed to his group and to the subjects he will learn. He doesn't have
an option to go for optional courses (as in most of universities).

Also, am I supposed to call my subjects: Math.lecture, Math.exercises?
Otherwise, if I just publish the schedule with just the name "Math", how would
students make distinctions between all the forms (lectures, exercises, labs)?

Thanks in advance,
Regards!
Karol
#4
And it's not at all, that I won't have 2 or 3 preffered rooms for most of my activities! Of course there are tons of rules for preferable rooms for given subjects, like computer science classes, or this or that laboratory and I will probably handle that. But say math excercises can be in any of 30 or 100 rooms. So I am asking is there a preffered approach for assigning 100 rooms in FET.
#5
Heh, not sure if you are talking to me or to each other, so not sure how deeply I should understand what you are saying in this thread :) Since I will do scripting it's not at all a problem for me to add hundreds of tags or add to each activity a list of all of my rooms. I would just like to know what I should put and where. So I am not asking you for a button/function doing all this. You know, I feel uncomfortable asking you for more than you have already given to the community. I really, really, but really, really appreciate that.
#6
What if I have so many rooms available and I don't want to put any constraints? FET can choose an hour for my class, so why wouldn't it choose the room if there are plenty available?
#7
Get Help / Re: Calendar?
October 15, 2018, 08:58:44 PM
Quote
We can modify the FET sources to have as many days as needed in the FET "week". You can even have 366 days per "FET week". And consider for yourself that the FET days 1, 1+7=8, 1+7+7=15, etc., are Monday (Mo1,Mo2,Mo3), 2, 2+7=9, 2+7+7=16, etc. are Tuesday (Tu1,Tu2,Tu3), and so on.

It is much easier and better for a single real week = a FET week. But if really needed, we can try also the GEA-Anthony-Siaudeau version.

It's not at all that I need it. Just wanted to get the concepts better to use FET better. I love the 7 days weeks :)
#8
Get Help / Re: Calendar?
October 15, 2018, 08:55:18 PM
Quote
I have no experience in GitHub. I have no experience in collaborating with a SVN or repository stuff. I prefer to collaborate with Volker by email (we exchange code and use KDiff3 to compare and make sure everything is OK). I also looked at rodolforg's code from https://bitbucket.org/rodolforg/fet/ and took some ideas and also received some code from a few other users. But I do not have the capabilities to take care of a repository in which many users make code changes and read and approve each line of code. I prefer to concentrate on the algorithm, and willing to help other people develop their interface or use the internals of FET.

Give a repository a try. Well, git is an overkill. It is really meant to develop complex projects like linux kernel where it shines, no doubt about it. But for a 2 developers project git may bring more complexity than comfort. So I use subversion to access github. Manual merging of patches, however automated you have it, is still more work than having Volker and you commiting to the common repo. Repo has a history, which sometimes comes useful. And there is really nothing hard in starting the repo and using basically 1 command to get the changes and 1 command to commit the changes. Also people can have an insight to the progress of your work.

On the other hand, I feel very much similar as you to someone commiting to my repo. I trust myself more. I am minimalistic and would be against adding too many ideas/features. I would be afraid someone will break something in the core. And this pressure to inspect someone's code proposals... Perhaps it's better for us all than only 2 of you make FET -- it serves the stability of the code. So maybe a private repo would be a way to go for you.
#9
Get Help / Re: Calendar?
October 15, 2018, 08:23:48 PM
Quote

Sorry, I don't understand. But let me explain the max 216 days per "week" custom FET: the number of FET days will be max 216, and the user defines the number of days per real week (5, for instance). Say there are 30 real weeks (so 5*30=150 FET days).


Yeah, I took it wrong. So your 150 FET days is what basically makes a ~6 months calendar. Your week is a unit composed of 5 or 7 days. I brought up a concept of a week unit composed of 35 days (which is not really a week).  In other words things are repeated every 35 days in my concept. In your concept things are repeated every 5 or 7 days. Nevermind if I still don't put it clear.

As I get it, you generaly propose to approach the problem with a single week rather than with a calendar with varying weeks.
#10
Get Help / Re: Calendar?
October 15, 2018, 05:33:52 PM
Quote
It is very complicated (and I don't recommend) to use the custom multi-week FET. But if you make the timetable for only a week and then for another week, the timetables will be very different from week to week, if you don't add additional constraints.

Yeah, I put it wrong. I will run FET for a single week. Then I'll create a 15-weeks calendar and for every week in the calendar I will add links to this single FET-genearated-week. Ocassionally the week will be different, say around Christmas so I will run another FET on that very week and use it to. This way I will have a single 15-weeks calendar with say 2-5 different FET-generated-weeks. Is that how FET is designed to be used?

Quote
Indeed (though there is a single button option for lock/unlock all activities or a single day).

That even... Is there something FET doesn't do? :)
#11
Get Help / Re: Calendar?
October 15, 2018, 05:19:31 PM
Quote from: Liviu Lalescu on October 15, 2018, 10:44:46 AM
In FET you can schedule the timetable for a week (maximum 35 days per this "week"). We derived some work for more days per "week" (see https://lalescu.ro/liviu/fet/custom.html - maximum 216 days), but it is not tested by more users, is difficult to work with, and might not work as expected.

I've seen this thing here before, but what is the concept? Is it that there's a constant schedule for say 35 days and then this 35 days unchanged schedule is repeated in next period and next and next? In other words, the sequence would be Monday, Tuesday, Wednesday, ..., 34day, 35day ?
#12
Get Help / Re: Calendar?
October 15, 2018, 05:12:19 PM
Quote from: Volker Dirr on October 15, 2018, 10:14:52 AM
Quote from: mimooh on October 15, 2018, 12:00:46 AM
It's been around for around a decade now, with active forum and new releases [...].

In fact a bit older. There was an other/old forum a few years earlier and there was also a yahoo-mailling-list some more years before. Project was started already 2002 by Liviu. (I joined 2006)

What stops you from moving to github? I started to look for planners there, but luckily I found you here. There are planners in the wild, but I hope I can judge which software is real (like yours) and which is just a wanna-be-planner. I have no doubt FET is outstanding and our planning department, even though they don't quite feel it yet, they confirmed there's no match to FET from what they've seen this far.
#13
Get Help / Re: Calendar?
October 15, 2018, 05:05:21 PM
Quote from: Volker Dirr on October 15, 2018, 09:44:45 AM

The timetable is solved in the fet results folder togeter with the html files. There is a "fet" file. You can open it and generate it in 1 second to get the same table. All activities got preffered starting time constraints in that dataset. You need to modify that constraints and generate once again in a second.

That's nice! So generated activities get their constrains and regenerating preserves everything -- great news to me. When it comes to internals and randomness -- there's seed generation somewhere in the menus -- is this the way to initialize the seed with the same value and have repeteadly the very same solutions for identical inputs?

I just learned there's the "block time / block room / block both" features which is pretty much the same solution. So I can do the blocking via a script, so manual blocking by clicking everywhere is not an issue.
#14
Get Help / Re: Calendar?
October 15, 2018, 04:54:07 PM
> You can choose yourself your preferred concept. Both of your suggestions are possible with FET.
You guys are incredible :) Not only you commented fast, not only both of you, but also you cleared things out. So tags would be a way to go about yearly calendar. But based on cons/pros, I'd say I'd better separate the problem and treat each week as a separate thing, run FET on each week and then report each week via a link from calendar on a web.

> If you don't know how to separate the weeks, then it might be better do to it in a single whole dataset.
> - doing the statistics will be easier
That concerns me the most. But if I write a tool to merge the separates into a single database then I will have my statistics.
#15
Get Help / Calendar?
October 15, 2018, 12:00:46 AM
Hi. My first impression was that FET is complex. But then within a few hours of today I managed to integrate it with my database of teachers and subjects and rooms and I seem to be getting the work done. So far I must say this software is awesome! But really, really awesome! It's been around for around a decade now, with active forum and new releases, so it seems like a mature project. Tomorrow I am going to see more about how exactly the planning department is manually doing their job and I expected they will be impressed with this automatic resolver.

In my school there is a concept of a calendar. We have quite regular weeks and quite irregular weekends, like weekends that differ or weekends with no classes at all. What's the concept for this in FET? Can I use various constrains for each weekend? Or perhaps the way to go would be to run FET for each week separately? With some automata it would do perhaps. Still, I need to do statistics about how many hours teachers/students worked throughout the whole year.

Second thing. Once we roughly get a nicely generated plan -- can we freeze it and manually tweak here and there?

Thanks for this awesome, awesome work guys! I can roughly imagine the algorithm behind this FET beast!

Karol