FET Forum

FET Development => Snapshots => Topic started by: Liviu Lalescu on April 01, 2021, 04:43:44 PM

Title: OLD - FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 01, 2021, 04:43:44 PM
After 2 weeks of hard work, I am pleased to say that I reached a stable FET-6.0.0, with this ChangeLog:

   - Increased the limits of the generation algorithm (the new limits are most probably more than enough for everybody).
   - Combined the most important custom versions into the official FET. The new feature is called "mode" and it can be:
   "official", "mornings-afternoons" (for Morocco and Algeria), "block planning", and "terms" (for Finland).
   - The multiple generation can be done on multiple threads, each timetable on a separate thread.

The download link: https://lalescu.ro/liviu/fet/download/test/

Please start with the same random seed your file on the old FET-5 (official or FET-MA18) and your file on the new FET-6.0.0-snapshot, the generations should be identical and the final random seeds should be equal. Please report as soon as possible a contrary situation, as a bug.
Title: Re: FET-6.0.0-snapshot available
Post by: Volker Dirr on April 02, 2021, 04:13:13 PM
32 bit version is also available for testing:
https://timetabling.de/download/32bit/
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 02, 2021, 04:43:56 PM
I have just added a new snapshot, the same usual link: https://lalescu.ro/liviu/fet/download/test/

I changed the mode of operation of the main form. Please test it and report visual/functional/crash bugs.
Title: Re: FET-6.0.0-snapshot available
Post by: Darren McDonald on April 03, 2021, 03:20:28 AM
Quote from: Liviu Lalescu on April 02, 2021, 04:43:56 PM
I have just added a new snapshot, the same usual link: https://lalescu.ro/liviu/fet/download/test/

I changed the mode of operation of the main form. Please test it and report visual/functional/crash bugs.

I really like the new thread option for multiple generation! (I've only given it a quick test, but it worked as I expected.)

I think it will be necessary to add a new entry in the help text, as I think many users won't know what a "thread" is, and won't know which thread setting will be optimal for their computer. (Also, is it worth mentioning somewhere how users can check this on their own computers?)

I noticed one slight visual bug in when generating multiple timetables. The text at the top, "Current timetable:... and the text line Max placed..." shift in position slightly when the timetable tab is changed with multiple threads selected. That text is aligned for timetables 2 and above, but the text for the first thread is shifted slightly down to the left. I'll attach one image here, and another in the post below (they're too large to attach together).
Title: Re: FET-6.0.0-snapshot available
Post by: Darren McDonald on April 03, 2021, 03:20:56 AM
...and here's that second image.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 03, 2021, 11:00:10 AM
I have just added a new snapshot, the same usual link: https://lalescu.ro/liviu/fet/download/test/  . No important changes.

Thank you, Darren, for the feed-back! I cannot solve the visual bug, it might be a Qt 6 bug, since in Qt 5 it does not appear (but I can observe it in Qt 6.0.3). The first tab is initialized in the designer file and the rest by code, but they are initialized identically.

I tried to add some explanation about the threads. If you think that you can improve this or add some better information, send me the text, please. Note: the minimum and default for the threads spin box is 1 and maximum is the Qt function QThread::idealThreadCount(), which returns on my computer -> 16 (I have 8 cores/16 threads) and on Volker's RPi-4 computer -> 4 (4 cores/4 threads, maybe).
Title: Re: FET-6.0.0-snapshot available
Post by: Darren McDonald on April 03, 2021, 06:23:06 PM
I've had a look at the help text for multiple generation, and included a couple of suggestions below (a minor change in the section about threads, and a note about the new directories created within the target directory).

I wonder whether it might be worthwhile changing the default thread setting for new users to the value returned by QThread::idealThreadCount(). That way even users who don't understand the thread settings would produce multiple timetables that will be completed much more quickly than when using only one thread. What do you think?

You can see the generated timetables on the hard disk, in HTML and XML formats and the soft conflicts in text format, or the latest timetable (or the latest highest-stage timetable, if no timetable was completed) in the Timetable/View menu. The directory XX must be emptied and deleted before proceeding.

Note that, for large data, each timetable might occupy more megabytes of hard disk space, so make sure you have enough space (you can check the dimension of a single timetable as a precaution). Each attempted timetable will correspond to a folder in XX that contains information about the random seed that was used, but only completed timetables will contain the full set of timetable files.

For finished timetables, there are also saved the timetables in .fet format (data + constraints to lock the timetable), so that you can open each of them later.

If you get an impossible timetable, please enter menu Generate (single) and see the initial order of evaluation of activities, this might help.

You can limit the search time, by specifying the maximum number of minutes allowed to spend for each timetable (option 'Limit each'). The maximum and also the predefined value is 600000 minutes, which means 10000 hours, so virtually unlimited.

Note that if you start the multiple generation with the same seed, the timetables will be identical. The seed of the first thread will be the random seed from the advanced settings, for the second thread it will be this seed +1 in each component (modulo m1 and respectively m2), for the third thread it will be this seed +2 in each component, and so on; if all the first three components are 0 in the seed of a thread or all the last three are 0, each number of the all 0 part of the seed will be initialized with the number of selected threads.

The number of threads is limited by your computer processor(s). If you have for example an 8 core/16 thread processor, the maximum allowed number of threads is 16. In this case you can make a comparison of generation time with 8 threads or with 16 threads. If you generate on a single thread, the speed of generation of a timetable will be in general a bit better than that of obtaining a single timetable by generating on multiple threads, because the processor slows down if you are using more threads, but you will obtain more timetables in a comparable time.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 03, 2021, 08:14:27 PM
I added a new snapshot: https://lalescu.ro/liviu/fet/download/test/  , with minor changes in the texts in the generate multiple. Maybe you can test it, generate multiple and let it finish or stop it. Check the report.txt file on the hard disk.

Thank you, Darren, for the suggestions! I added exactly your strings. About the default threads to be maximum allowed, this is unsafe/I don't like it. Because: 1) The speed on a single processor is better than when using more threads; 2) I have 8 cores but 16 threads and maximum is 16, but the best I think is to use 8 (I am not sure); and 3) The processor will work very hard and heat up, the user must know what he is doing.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 07, 2021, 10:11:52 AM
After some work, I hope I managed to obtain a stable multi generation. I have put a new snapshot: https://lalescu.ro/liviu/fet/download/test/

Please test the generate multiple dialog for crashes/bugs.

Test by leaving it finish, by interrupting it, with timetables complete or with no timetable complete.

Edit: It still crashes on Windows 10 when generating multiple  :(
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 07, 2021, 02:55:39 PM
I made some more changes. I hope I managed to obtain a stable multi generation. I have put a new snapshot: https://lalescu.ro/liviu/fet/download/test/

Please test the generate multiple dialog for crashes/bugs.

Test by leaving it finish, by interrupting it, with timetables complete or with no timetable complete.

Please let me know as soon as possible.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 07, 2021, 08:30:08 PM
I have just added a new snapshot, minor improvements. No need to reget it.
Title: Re: FET-6.0.0-snapshot available
Post by: Darren McDonald on April 08, 2021, 02:58:36 AM
No crashes yet on Mac OS 11.2.3 (Big Sur, current version)! Looks good!

I do have one question about multiple timetable generation. At the moment, FET is counting both generated timetables, as well as timetables that have exceeded the time limit as "generated timetables." Is this the intended behaviour? (I think that timetables that exceed the time limit shouldn't be counted as "generated.")
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 08, 2021, 07:20:27 AM
Thank you!

It is an intended behavior, because it was the same in FET-5 and because otherwise this dialog might not finish.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 08, 2021, 08:24:27 AM
I have put a new snapshot: https://lalescu.ro/liviu/fet/download/test/  , minor change in timetable generate single with success. No need to reget this version.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 08, 2021, 06:46:56 PM
I have put a new snapshot: https://lalescu.ro/liviu/fet/download/test/ , I fixed a nasty memory leak bug in generate multiple, if no timetable was successfully generated and you started a new multiple generation.

I hope we reached a stable enough stage now. I apologize for the very frequent updates.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 08, 2021, 09:39:11 PM
I have put (a couple of hours ago) a new snapshot: https://lalescu.ro/liviu/fet/download/test/ , minor improvements. The name is "8-apr-21_55". I hope that's it for today.

Test cases when the multiple generation is incomplete (no complete timetable), see the highest-stage timetables on the hard disk and in the interface.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 09, 2021, 08:47:29 AM
I have added a new snapshot: https://lalescu.ro/liviu/fet/download/test/ , minor improvements.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 09, 2021, 12:07:02 PM
I have added again a new snapshot: https://lalescu.ro/liviu/fet/download/test/ , minor improvements in the generate multiple section.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 11, 2021, 11:51:18 AM
I have added an improved snapshot on the usual location: https://lalescu.ro/liviu/fet/download/test/

I updated to Qt 6.0.3, and modified significantly the generate multiple (and single). It should not crash anymore when generating multiple.

Please let me know.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 11, 2021, 04:48:11 PM
I forgot to add: Qt 6 is designed to work only on Windows 10. It might work on older Windows versions (like Windows 7), but this is not guaranteed.

This applies only to the Windows executable archive precompiled by me. You can compile FET with Qt 5 (32 or 64 bit) and it will work on Windows 7, 32 or 64 bit. The sources of FET are universal, compatible with any Qt from 4.8.7 to 6.0.3.
Title: Re: FET-6.0.0-snapshot available
Post by: YOUSSEF HOUIET on April 12, 2021, 12:32:07 AM
Hi,
i have tesed the  fet-6.0.0-snapshot-11-apr-2021-13_15
in windows 10
2 core 4 threads

by using all threads

no crash anymore on generate multiple timetable.
i have tesed  all cases  :
leaving generation finish,
interrupting generation, and lanching 2nd and 3rd attempt...

Good job

Thank you for your efforts :)
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 12, 2021, 07:09:05 AM
Thank you, Mr. YOUSSEF HOUIET, for the good news!
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 13, 2021, 10:28:42 AM
I have added a new snapshot, in the usual location: https://lalescu.ro/liviu/fet/download/test/  . It contains a rare but important crash fix.

If everything goes well, the schedule is to release the final FET-6.0.0 on Saturday afternoon.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 13, 2021, 11:48:09 AM
I have just added a new snapshot, in the usual location: https://lalescu.ro/liviu/fet/download/test/  . Minor thing compared to the previous today's snapshot. No need to get again.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 13, 2021, 03:37:52 PM
I have just added a new snapshot, in the usual location: https://lalescu.ro/liviu/fet/download/test/ . I apologize for releasing so often, but I just saw a potential problem in the interface: on Windows, no problem, but on my GNU/Linux the entries with accelerator (&, _) are shortened, and the text is not intelligible. For instance, "Years (forms, classes)" might have appeared "Years (f...sses)". I removed all the accelerators (of course the Ctrl+O and other Ctrl shortcuts still work).

Edit: I think this problem appeared with Qt 6.

There are no changes in the algorithm, only in the main form.
Title: Re: FET-6.0.0-snapshot available
Post by: houdababa on April 14, 2021, 02:45:39 PM
fet-6.0.0-snapshot  w 32 bit
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 14, 2021, 03:42:33 PM
I'm sorry, I cannot do this myself. I'll write to Volker, maybe he could find the time.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 14, 2021, 07:10:17 PM
I have just put a new snapshot on the usual location: https://lalescu.ro/liviu/fet/download/test/  . There is really no need to re-get/retest it. I only corrected two non-essential text fields, reported by Benahmed Abdelkrim.

The schedule is still to release FET-6.0.0 on Saturday afternoon (Romania time, which is GMT+2).
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 14, 2021, 08:12:26 PM
I have just put a new snapshot, I improved very little a text field. No need to re-get/retest it. The usual location: https://lalescu.ro/liviu/fet/download/test/

The schedule is still to release FET-6.0.0 on Saturday afternoon (Romania time, which is GMT+2).

I apologize for releasing so often.
Title: Re: FET-6.0.0-snapshot available
Post by: Liviu Lalescu on April 15, 2021, 07:56:59 PM
I have just put a new snapshot. The usual location: https://lalescu.ro/liviu/fet/download/test/  . There are no algorithm changes, only these: Arabic is now complete (!) by Benahmed Abdelkrim, and I removed the startup message.

The schedule is still to release the official FET-6.0.0 on Saturday afternoon (Romania time, which is GMT+2).