是的,在stackoverflow上有许多类似的问题。我看到遗传算法是最常见的答案。
制作时间表:Making a timetable schedule和创建学校时间表的算法:Algorithm for creating a school timetable 但是,我担心遗传算法具有以下特点:
因此,我想要一种方法:
我搜索了一些信息,并发现元启发式算法,如模拟退火是一个不错的选择。动态规划算法怎么样?
对于这样的数据集,暴力方法可行吗?
有什么好的算法可以符合这些标准呢?
制作时间表:Making a timetable schedule和创建学校时间表的算法:Algorithm for creating a school timetable 但是,我担心遗传算法具有以下特点:
- 很难定义程序的终止条件
- 很难轻松地逃脱局部最大值
因此,我想要一种方法:
- 是果断的 - 保证达到接近最优的状态或者报告算法无法达到解决方案
- 可以同时考虑硬(不可侵犯)限制和软限制
- 优雅地接受用户输入的约束条件;如果用户输入无效,则可以将其添加到代码中而不会破坏它
我搜索了一些信息,并发现元启发式算法,如模拟退火是一个不错的选择。动态规划算法怎么样?
对于这样的数据集,暴力方法可行吗?
有什么好的算法可以符合这些标准呢?