Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 排课_Algorithm_Search - Fatal编程技术网

Algorithm 排课

Algorithm 排课,algorithm,search,Algorithm,Search,问题是这样的: 一所学校有不同的班级。每节课都有一周的时间表(8小时英语,6小时数学,2小时艺术等)。每一位老师都有一定的课时数。(我想几乎所有的学校都是这样的) 可以添加一些额外的构造,例如: 老师X星期一不上班 Y老师在某个班上需要连续两个小时 等等 目标是找到一个优化约束成本函数的计划 最后,我想这是一个计算NP问题。它可以通过空间状态搜索来解决(我们尝试所有可能的组合,使用一些智能的搜索方式,并选择可能的最佳解决方案) 这是否可行?(组合是巨大的,对于10门课,每门课30小时,7门课,

问题是这样的:

一所学校有不同的班级。每节课都有一周的时间表(8小时英语,6小时数学,2小时艺术等)。每一位老师都有一定的课时数。(我想几乎所有的学校都是这样的)

可以添加一些额外的构造,例如:

  • 老师X星期一不上班
  • Y老师在某个班上需要连续两个小时 等等
  • 目标是找到一个优化约束成本函数的计划

    最后,我想这是一个计算NP问题。它可以通过空间状态搜索来解决(我们尝试所有可能的组合,使用一些智能的搜索方式,并选择可能的最佳解决方案)

    • 这是否可行?(组合是巨大的,对于10门课,每门课30小时,7门课,它大约是10^253,即使一些实质性的删减是可能的:我想SAT解算器可以处理类似的事情)

    • 即使是近似的,完成搜索是否有任何改变

    这是一个很好的例子。如链接中所述,解决这些问题的方法之一是使用本地搜索方法,如或。你不能保证得到一个最优的解决方案,但你通常会在相对较短的时间内得到一个“好”的解决方案

    如果您碰巧使用的是Prolog,那么clpfd库(有限域上的约束逻辑编程)非常强大。

    这是一个很好的例子。如链接中所述,解决这些问题的方法之一是使用本地搜索方法,如或。你不能保证得到一个最优的解决方案,但你通常会在相对较短的时间内得到一个“好”的解决方案


    如果您碰巧使用Prolog,clpfd库(有限域上的约束逻辑编程)功能非常强大。

    您还可以添加标签
    约束编程
    以获得更多响应。您还可以添加标签
    约束编程
    以获得更多响应。