LF Framework to solve Data Science Issue
The first step seems to be to translate a research problem (or a series of problem statements) into a precise form. Problem Characterization/Problem Conceptualization seems to be a technique for resolving that issue. Once the approach has been conceptualised, a technique must be identified for each of the sub-models and submodules.
Breaking down the high problem statement into smaller problems is called problem conceptualizing. For every subproblem, a technique must be identified, and the methodology must be determined by the assumptions that have been stated previously.
Realization of a Solution: Determines whether the assumptions are reasonable or whether the solutions meet his needs.
This can be compared to a flowchart that he has been creating with these subproblems, and also in general, it is attempting to reach a granularity level where he would determine the issue class. As a result, these issues can be classified as being either function optimization or categorization issues.
i'm looking for a framework that is able to solve the following Data Science issue:
I have several Teachers that can work for X amount of hours a week and have several subject that they can teach.

Teacher 1: Math
Teacher 2: Math + English
Teacher 3: Sports + Art + English
Teacher 4: Math + Art
Teacher 5: Sports + Math + English

In a school, every subject needs a specific amount of hours per week. Some more than others

Math: 12 hours
English: 8 hours
Art: 4 hours
Sport: 2 hours

Lets say one teacher can do 2-3 hours just so you get my point^^
The Solution im looking for is a Framework or Algoritm that is filled (trained) with the data and then is able to distribute the teachers so all the subjects are capped or at least as close as possible. That means maybe Teacher 2 needs to teach only Math and Teacher 5 needs to teach 50% Sport and 50% English or 30% Math / 40% Sport / 30% English.
Someone mentioned Prolog but im not sure if it can handle this kind of problem? Maybe im wrong?
Is there something that is fitting for my problem or am i destined to code that algorithm from scratch on my own?
Thanks in advance.