问题是这样的:
一所学校有不同的课程。每节课每周安排一次(8小时英语,6小时数学,2小时艺术等)。每个教师在课程的子集中都有一定的小时数。 (我猜学校就像几乎无处不在)。可以添加一些额外的约束,例如:
目标是找到一个优化约束成本函数的计划。
最后,我认为这是一个问题的NP问题。它可以使用空间状态搜索来解决(我们尝试所有可能的组合,使用一些聪明的搜索方式,我们选择最佳解决方案)。
这可行吗? (组合很大,每班10个班,30个小时,7个科目大约10 ^ 253,即使可以进行一些实质性的修剪:我猜SAT求解器可以处理类似的事情。)
完成搜索是否有任何改变,即使是近似的?
答案 0 :(得分:1)
这是 Constraint Satisfaction Problem。如链接中所述,解决这些问题的方法之一是使用min-conflicts或forward checking等本地搜索方法。您无法保证获得最佳解决方案,但通常会在相对较短的时间内获得“良好”解决方案。
如果您正在使用Prolog,clpfd库(有限域上的约束逻辑编程)非常强大。