我正在寻找一个能够解决以下数据科学问题的框架:
我有几个老师,他们可以每周工作X小时,还有几门课他们可以教。
数学+ English
在学校里,每门课每周都需要一个特定的小时。有些人比其他人多
hours
假设一个老师可以做2-3个小时,这样你就能理解我的观点^^。
我正在寻找的解决方案是一个框架或Algoritm,它用数据填充(训练),然后能够分发教师,这样所有的科目都有上限,或者至少尽可能接近。这意味着老师2只需要教数学,5老师需要教50%的运动和50%的英语,或者30%的数学/ 40%的体育/ 30%的英语。
有人提到了Prolog,但我不确定它是否能处理这种问题?也许我错了?
有什么适合我的问题吗?还是我注定要自己从头开始对算法进行编码?
提前谢谢。
发布于 2021-09-28 09:11:14
在gnu-prolog中演示此特定示例的约束求解的一个简单程序
soln(X) :-
X = [T1M, T2M, T2E, T3S, T3A, T3E, T4M, T4A, T5S, T5M, T5E],
fd_domain(X, 0, 10),
%% subject constraints
T1M + T2M + T4M + T5M #= 12,
T2E + T3E + T5E #= 8,
T4A + T3A #= 4,
T3S + T5S #= 2,
%% teacher constraints b/w 2 and 8 hrs
2 #=< T1M, T1M #=< 8,
2 #=< T2M + T2E, T2M + T2E #=< 8,
2 #=< T3S + T3E + T3A, T3S + T3E + T3A #=< 8,
2 #=< T4M + T4A, T4M + T4A #=< 8,
2 #=< T5S + T5M + T5E, T5S + T5M + T5E #=< 8,
fd_labeling(X).有几个解决方案
| ?- soln(X).
X = [2,0,2,0,0,6,4,4,2,6,0] ? ;
X = [2,0,2,0,1,5,5,3,2,5,1] ? ;
X = [2,0,2,0,1,6,4,3,2,6,0] ? ;
X = [2,0,2,0,1,6,5,3,2,5,0] ? ;
X = [2,0,2,0,2,4,6,2,2,4,2] ? ;
X = [2,0,2,0,2,5,5,2,2,5,1] ? ;
X = [2,0,2,0,2,5,6,2,2,4,1] ? ;
X = [2,0,2,0,2,6,4,2,2,6,0] ? ;
X = [2,0,2,0,2,6,5,2,2,5,0] ? ;
X = [2,0,2,0,2,6,6,2,2,4,0] ? ;
X = [2,0,2,0,3,3,7,1,2,3,3] ? ;
X = [2,0,2,0,3,4,6,1,2,4,2] ? ;
X = [2,0,2,0,3,4,7,1,2,3,2] ? 每个解决方案X = ...分别给出了T1M, T2M, T2E, T3S, T3A, T3E, T4M, T4A, T5S, T5M, T5E的小时分布。
发布于 2021-10-05 07:10:22
第一步似乎是将一个研究问题(或一系列问题陈述)转化成一种精确的形式。问题表征/问题概念化似乎是解决这一问题的一种技术。一旦方法被概念化,必须为每个子模型和子模块确定一种技术。
将高问题语句分解为较小的问题称为问题概念化。对于每一个子问题,必须确定一种技术,方法必须由前面所述的假设来确定。
解决方案的实现:确定假设是否合理或解决方案是否满足他的需要。
这可以与他用这些子问题创建的流程图相比较,而且在一般情况下,它也试图达到一个粒度级别,他将在其中确定问题类。因此,这些问题可以分为函数优化问题和分类问题。
https://stackoverflow.com/questions/69357856
复制相似问题