Main Menu

Calendar?

Started by mimooh, October 15, 2018, 12:00:46 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mimooh

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

Volker Dirr

Quote from: mimooh on October 15, 2018, 12:00:46 AM
[...] We have quite regular weeks and quite irregular weekends [...]. What's the concept for this in FET?

You can choose yourself your preferred concept. Both of your suggestions are possible with FET.

Quote from: mimooh on October 15, 2018, 12:00:46 AM
Can I use various constrains for each weekend?

Yes. The trick is using activity tags to the activities and using activities preferred starting times for the tags.

Quote from: mimooh on October 15, 2018, 12:00:46 AM
[...]  Still, I need to do statistics about how many hours teachers/students worked throughout the whole year.

It is impossible to say which variant is better, since we don't know your dataset.
Both variants have got different advantages.

If you already know how to separate them, then it will be better to separate them, because:
- easier to enter the data
- generating will be faster
- hunting bugs will be easier

If you don't know how to separate the weeks, then it might be better do to it in a single whole dataset. You will lose the previous advantages, but you might get other advanatges:
- other possible/better solutions
- doing the statistics will be easier
- tables on a single sheet (this might be also an disadvantage if the sheet is too small)

Volker Dirr

Quote from: mimooh on October 15, 2018, 12:00:46 AMSecond thing. Once we roughly get a nicely generated plan -- can we freeze it and manually tweak here and there?

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.
A maybe disadvanatge is that you can't break other constraints by that. You need to remove them if you want to break them.
If you do many changes and/or need to break other constraints quite often it is easier to modify with the software TiTiTo.


Volker Dirr

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)

Liviu Lalescu

Yes, in addition to what Volker said:

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.


mimooh

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

mimooh

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.

mimooh

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.

Liviu Lalescu

#8
Quote from: mimooh on 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.

Thank you for the appreciation!  :)

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.

Quote from: mimooh on 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?

Yes, exactly, please read the Help there and if you don't understand everything ask us.

Edit: I mean enter Settings->Advanced->Seed of random number generator and press Help.

Quote
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.

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

mimooh

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 ?

mimooh

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? :)

Liviu Lalescu

Quote from: mimooh on 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 ?

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). Then the user will have activities divided into 30 subactivities, of which some will be active or some inactive, as needed. And FET will make those active start at each real day (say, Monday) and hour (say 10:00), along the real year.

You can try the GEA version, it has an example: https://lalescu.ro/liviu/fet/download/custom/max-216-days-per-week-gea/ (the link is available for now here, maybe in the future it will be changed, so check in Custom versions: https://lalescu.ro/liviu/fet/custom.html). The working is difficult with this custom version of FET, you need to import the activities from a CSV file, and some are active and some inactive (with duration 0 in the CSV).

Also, I did not tell you about the activities which are split among the real week, into 2, 3, 4, or even more component subactivities. FET will add automatic constraints min days between activities between these ones. It is also included in the provided example in the above mentioned GEA custom version.

Liviu Lalescu

#12
Quote from: mimooh on 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?

FET was designed for a single real-life week, indeed.

Quote

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? :)

:)

Liviu Lalescu

Quote from: mimooh on October 15, 2018, 05:12:19 PM
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.

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.

The generating code of the algorithm is critical, as long as many other portions of code. I need to personally supervise the changes.

mimooh

#14
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.