fet development contribution (Request for my friend Liviu)

Started by kilindor, January 11, 2026, 05:02:48 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kilindor

Hi everyone.
Can anyone with programming experience in PHP and JAVASCRIP make modifications to the application (such as add new constraints...).
I've never worked with C++, but I know that all programming languages ��have the same basic principles with minor differences.
So I ask my friend Liviu to show me which files I can edit or which files are responsible for adding or modifying constraints.
I work on the Windows OS, and I don't know if it's suitable for programming in C++.
Thanks a lot.

Liviu Lalescu

Hello, kilindor,

I am sorry, but it is a difficult job to add a new constraint. You must add it in the files: engine generate, generate_pre, time/spaceconstraint.cpp, and rules.cpp, and in interface: listtime/spaceconstraints, addormodifytime/spaceconstraint, and fetmainform.

kilindor

Thank you for your prompt reply.

I have a few more questions about your wonderful app.

Is it possible to know if the program will complete the table generation process? Because hours can pass and you don't know if it will eventually generate the table or will just loop endlessly.

Is it possible to identify the constraints that might be preventing the generation process? Because sometimes it reaches the penultimate activity and doesn't complete it.

For example, my file contains 544 activities, and I use two computers to increase the possibilities. But just today, it reached activity 543 several times and didn't complete it.
Thank you.

Liviu Lalescu

Hello, kilindor, and thank you for your kind words!

The timetabling problem is theoretically unsolvable, and we can only hope we can find a solution with tricks/heuristics. So, no.

Again, no. We can only report the problematic activity, not the problematic constraints.

gradgrind

My fetrunner program tries to identify constraints which may be difficult or impossible to fulfil. It is, in general, not possible to say exactly which constraint is the "difficult" one, because the constraints interact with each other. There are perhaps several constraints which you could change to get a soluble timetable (in a reasonable time ...).

fetrunner runs FET many times, gradually enabling more and more of the constraints. Its result is a FET file with some of its constraints disabled so that the activities can all be placed. This may help you to find the area that is causing the difficulties. Like FET, it may produce different results on each run, but with some data files it can give a clear indication of where the problem lies.

Liviu Lalescu