Php 类调度算法是否显示与标准的最佳匹配?

Php 类调度算法是否显示与标准的最佳匹配?,php,mysql,algorithm,scheduling,Php,Mysql,Algorithm,Scheduling,我希望创建一个系统,您可以输入您希望在大学学习的课程(3-7门课程),然后选择首选项(早上、白天、晚上、晚上/M、T、W、TR、F) 我需要一种方法,当程序查询数据库(MySQL)时,它会返回根据这些参数制定的最佳时间表。我正在用php编写它 有人知道最好的方法吗?或者链接到一些我可以理解的示例代码?这是一个困难的优化问题。 这里有一个建议的启发式(随机跳跃) 获取一组约束(首选项) 还有一套课程 使用MySQL查询获取所选课程的可能时间 选择一套可行的课程 根据约束对集合进行评分 如果分数足够

我希望创建一个系统,您可以输入您希望在大学学习的课程(3-7门课程),然后选择首选项(早上、白天、晚上、晚上/M、T、W、TR、F)

我需要一种方法,当程序查询数据库(MySQL)时,它会返回根据这些参数制定的最佳时间表。我正在用php编写它


有人知道最好的方法吗?或者链接到一些我可以理解的示例代码?

这是一个困难的优化问题。 这里有一个建议的启发式(随机跳跃)

  • 获取一组约束(首选项)
  • 还有一套课程
  • 使用MySQL查询获取所选课程的可能时间
  • 选择一套可行的课程
  • 根据约束对集合进行评分
  • 如果分数足够好,停下来
  • 否则,更改随机选择的一门课程的学时
  • 返回到步骤4

  • 您可能想尝试一些约束编程(CSP)库。。。。在CSP中,您陈述问题(通常为NP难),库使用一些启发式(模拟退火、禁忌搜索)或具有一些技巧的穷举DFS(弧一致性、搜索空间缩减)来解决问题。。。它可以解决具有数千个变量的NPC问题…但设置黑箱系统的“精细”参数却有点棘手…

    它是NP完全的

    如果你想要简单快速的东西,写一个类似的构造启发式。简单地说,它根据难度(学生人数,…)安排课程,并在剩余的最佳时间段和空间内一次分配一门课程。您可以轻松地在PHP中实现这一点


    如果你想像@malejpavouk所说的那样做对,就使用CP库。它将首先使用构造启发式,然后执行元启发式,如禁忌搜索、模拟退火等。。。寻找一个好的PHP CP库。

    4。这是一个陷阱22:用一个算法寻找一个可行的解决方案,该算法包括一个只说“选择一个可行的解决方案”的步骤。