我正在编写一个用于生成时间表的遗传算法。
目前我正在使用这两种启发式方法:
我想平衡这两种启发式算法,因此算法不会同时支持这两种算法。实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
一种非常简单的方法就是将分数加在一起。在一天结束时,您希望混合分数在独立分数上升时上升。您也可以使用乘法(根据分数的大小警惕数字溢出)。无论采用哪种方法,您都可以对单个分数进行加权,例如
total_score = 0.4 * hours_score + 0.7 * holes_score
您甚至可以使权重用户可配置。
答案 1 :(得分:0)
开发评分函数以评估生成的时间表的质量。你有两个启发式的想法。
产生一些随机时间表问题。
选择一些值来平衡两种启发式方法,生成解决方案,并评估哪些看起来最好(如果你不能提出评分函数,那么请注意它)。
选择一组新的平衡权重(即上一次最佳选择的邻域)并重复