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

发布于 2024-09-05 17:36:42 字数 336 浏览 5 评论 0原文

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

目前我正在使用这两个启发式:

  1. 一天内讲座之间的空洞数(相关)(更少的漏洞 -> 更大的分数)
  2. 每个小时都有一些价值,因此对于每个时间表,我都会对讲座进行时的小时值进行求和。 (在更合适的时间进行讲座 -> 更高的分数)

我想平衡这两种启发式方法,因此算法不会偏向任何一种。实现这一目标的最佳方法是什么?

I'm writing a genetic algorithm for generating timetables.

At the moment I'm using these two heuristics:

  1. Number of holes between lectures in one day (related) (less holes -> bigger score)
  2. Each hour has some value, so for each timetable I sum values for hours when lectures are on. (lectures at more appropriate hours -> bigger score)

I want to balance these two heuristics, so the algorithm wouldn't favor neither one. What would be the best way to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疯了 2024-09-12 17:36:42

一个非常简单的方法就是将分数相加。归根结底,您希望混合分数随着任一独立分数的上升而上升。您也可以使用乘法(根据分数的大小警惕数字溢出)。无论使用哪种方法,您都可以对各个分数进行加权,例如,

total_score = 0.4 * hours_score + 0.7 * holes_score

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

A very simple approach would simply be to add the scores together. At the end of the day, you want a blended score that goes up when either independent score goes up. You could use multiplication as well (being wary of number overflows depending on the size of your scores). With either approach you could weight the individual scores, e.g.

total_score = 0.4 * hours_score + 0.7 * holes_score

You could even make the weights user-configurable.

难得心□动 2024-09-12 17:36:42
  1. 开发评分函数来评估生成的时间表的质量。您在两个启发式中已经有了这个想法。

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

  3. 选择一些值来平衡这两种启发法,生成解决方案,并评估哪些看起来最好(如果您无法想出评分函数,那么就观察它)。

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

  1. Develop a scoring function to evaluate the quality of generated timetables. You have the idea for that in your two heuristics.

  2. Generate some random timetable problems.

  3. Choose some values to balance the two heuristics, generate solutions, and evaluate which ones look best (if you can't come up with a scoring function, then eyeball it).

  4. choose a new set of balance weightings (i.e. around a neighborhood of the best choice from last time) and repeat

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文