平衡启发式(针对时间表问题)

时间:2010-06-09 17:56:17

标签: genetic-algorithm heuristics timetable

我正在编写一个用于生成时间表的遗传算法。

目前我正在使用这两种启发式方法:

  1. 一天讲座之间的洞数(related)(较少的洞 - >分数较高)
  2. 每个小时都有一些价值,所以对于每个时间表,我总结讲座开启时的小时值。 (在更合适的时间讲课 - >更高分)
  3. 我想平衡这两种启发式算法,因此算法不会同时支持这两种算法。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

一种非常简单的方法就是将分数加在一起。在一天结束时,您希望混合分数在独立分数上升时上升。您也可以使用乘法(根据分数的大小警惕数字溢出)。无论采用哪种方法,您都可以对单个分数进行加权,例如

total_score = 0.4 * hours_score + 0.7 * holes_score

您甚至可以使权重用户可配置。

答案 1 :(得分:0)

  1. 开发评分函数以评估生成的时间表的质量。你有两个启发式的想法。

  2. 产生一些随机时间表问题。

  3. 选择一些值来平衡两种启发式方法,生成解决方案,并评估哪些看起来最好(如果你不能提出评分函数,那么请注意它)。

  4. 选择一组新的平衡权重(即上一次最佳选择的邻域)并重复