FET as Capstone Project Proposal

Started by Clariss, April 26, 2021, 05:08:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Clariss

I am a Bachelor of Science in Information Technology student who wants to use FET as a capstone project in our program. After searching an algorithm in the past month, I found this FET project and its forum. This project is incredible because it is faster than a genetic algorithm. However, I am not good at software, but I can write and understand simple codes. I feel comfortable and happy with the hardware. I hope I can do my capstone project with your help, fellow members, and admins. I still have 1 and a half years to finish it.

Our university constraints  are:

  • Assigning a subject (Math, Advanced Database, Data Structure ) to teach by the instructor is based on  his/her  specialization (Networking, Programming, Multimedia, etc.)
  • The teaching load of an instructor is a max of 21 units. For instance, Data Structure is 3 units, so he/she needs more 18 units.
  • If the IT students have an agricultural subject, then their instructor should be in Agricultural College (Different colleges in one university)

Our adviser suggested that:

  • The system can identify if the instructor is overload or underload units.
  • The system can suggest that if the instructor's teaching load is full, the subject should assign to the other instructor based on his/her specialization.
  • The system can suggest hiring more instructors if all the existing instructors have a full teaching load and there are still available subjects to handle by the instructor.
  • The inputs of the system may be based on historical data (schedules in the past 1 or 2 years). That determines the favorite and favorable Time, Space, and Activity for the entities.

I installed and tested FET, and it is fast and easy to understand its basic functions, but I do not yet explore its full functionalities.
I want to know if FET 6.0.2 can solve the constraints and perform the suggestions above.
Also, I want to know if it is okay for the developers of FET to use and modify their existing project as my capstone project for our university. Thank you very much.



Liviu Lalescu

Hello, Clariss, and welcome to the forum!

If you have activities with (subject, students) to assign to teachers and time slots, this might be a job for the "Block planning" mode of the new FET version 6. In the "Official" mode FET each activity must have clearly specified (subject, students, teachers).

There is information in the Help of FET-6 for block planning and here on the forum: https://lalescu.ro/liviu/fet/forum/index.php?topic=4151.0

I think Darren uses a two-phase approach: firstly he allocates activities to teachers using the block planning mode, then these activities to time slots using the official mode. But I am not sure exactly how. I'll tell him to see my reply here.

Liviu Lalescu

#2
I see you modified your post. I also forgot to write something:

I think your 1, 2, and 3, and 4' might be managed. I am not sure about 1', 2' and 3'.

FET is released under the GNU AGPL v3 or later: https://www.gnu.org/licenses/agpl-3.0.html or https://www.gnu.org/licenses/licenses.html . This is a free software license. Volker can tell more (I'll tell him to see my post).

Clariss

Quote from: Liviu Lalescu on April 26, 2021, 05:42:58 PM
Hello, Clariss, and welcome to the forum!

If you have activities with (subject, students) to assign to teachers and time slots, this might be a job for the "Block planning" mode of the new FET version 6. In the "Official" mode FET each activity must have clearly specified (subject, students, teachers).

There is information in the Help of FET-6 for block planning and here on the forum: https://lalescu.ro/liviu/fet/forum/index.php?topic=4151.0

I think Darren uses a two-phase approach: firstly he allocates activities to teachers using the block planning mode, then these activities to time slots using the official mode. But I am not sure exactly how. I'll tell him to see my reply here.

Thank you, sir Liviu. I will note this info.

Clariss

Quote from: Liviu Lalescu on April 26, 2021, 06:47:58 PM
I see you modified your post. I also forgot to write something:

I think your 1, 2, and 3, and 4' might be managed. I am not sure about 1', 2' and 3'.

FET is released under the GNU AGPL v3 or later: https://www.gnu.org/licenses/agpl-3.0.html or https://www.gnu.org/licenses/licenses.html . This is a free software license. Volker can tell more (I'll tell him to see my post).

I got it, sir Liviu.  I read the algorithm-description, but I cannot fully understand it, maybe because I habitually rely on graphical representation and videos rather than reading. I want to ask a favor if you can create the flowchart of your Recursive Swapping Algorithm.
I also viewed the liviu-suggestions.jpg in this post:
https://lalescu.ro/liviu/fet/forum/index.php?topic=16.msg93#msg93
But I do not know if it is updated because this post was created 9 years ago.

Liviu Lalescu

Oh, I'm not a sir!  :)  Just Liviu  :)

I am unfortunately not good at explanations. But that picture (if you apply my red corrections) should be a good representation.

Clariss

Quote from: Liviu Lalescu on April 27, 2021, 01:50:55 PM
Oh, I'm not a sir!  :)  Just Liviu  :)

I am unfortunately not good at explanations. But that picture (if you apply my red corrections) should be a good representation.


Okay, Liviu. I called you a "sir" because it is part of our culture, and I habitually used it (just like the word "po" as a sign of respect).

By the way, please check this flowchart and make corrections if it is wrong before I include it in our report. Thank you very much.

Liviu Lalescu

#7
Oh, I apologize, every day is a day in which I can learn something  :)

"Sequencially" should be "Sequentially". Other than that, it looks OK.

Oh, and there are "Activity" and "Unsuccessful" with unneeded capital letter, each in one place.

Clariss

Quote from: Liviu Lalescu on May 03, 2021, 01:58:18 PM
Oh, I apologize, every day is a day in which I can learn something  :)

"Sequencially" should be "Sequentially". Other than that, it looks OK.

Oh, and there are "Activity" and "Unsuccessful" with unneeded capital letter, each in one place.

Thank you for these corrections, Liviu.
I have the following questions about the FET data storage because I cannot decide when choosing between SQL and NoSQL databases for my project. Thank you very much.

  • Why is FET using an XML file for data storage and not a Relational Database like SQLite?
  • Are there advantages of using an XML file for FET?

Liviu Lalescu

You are welcome, Clariss!

The reasons for using XML is that I do not know databases, and I think they are not needed. I just needed a simple way to store the internal data on the disk.

Clariss

Quote from: Liviu Lalescu on May 09, 2021, 03:57:00 PM
You are welcome, Clariss!

The reasons for using XML is that I do not know databases, and I think they are not needed. I just needed a simple way to store the internal data on the disk.

I wonder if it is easy to implement Relational Database (SQLite) for data storage rather than XML?
Because I had an error (Could not insert item. Must be a duplicate) when I inputted two different teachers with their exact names. This scenario is usual in our country. Two other persons but they have the same name.

Liviu Lalescu

It should be possible. You can see the files src/engine/rules.h and src/engine/rules.cpp.

But an easy solution would be to number the teachers with the same name, like: "Liviu Lalescu 1" and "Liviu Lalescu 2".