我正在研究大学调度问题并使用简单的遗传算法。实际上,它可以很好地工作,并将目标函数值从0%到90%(近似)优化1小时。但是这个过程变得越来越慢,需要几天才能获得最佳解决方案。我看到很多论文认为将其他算法与基因组混合是合理的。请你给我一些关于什么算法可以与遗传算法混合的建议,以及如何使用这种算法来加速求解过程。主要问题是,如何将启发式应用于这种复杂结构化的问题?我不知道如何应用那里,例如,贪婪的启发式。如何将遗传算法与一些启发式算法混合
感谢大家提前!非常感谢您的帮助!
问题描述:
我有:
- 阵列由ScheduleSlot填充对象
- 阵列由课程填充对象
我做的:
- 斯坦达特两点交叉
- 突变(移动随机教训随机位置)
- 粗糙的选择(选择下一个人口只有n个最佳个人)
的其他信息@Dougal and @izomorphius:
我是triyng来构建一个大学时间表,这将不会中断课程,重叠和地理分布的课程为团体和教授。
健身功能非常简单:fitness = -1000 * numberOfOverlaps - 1000 * numberOfDistrebutedLessons - 20 * numberOfBreaks。 (或类似的东西,我们可以简单地改变变量的系数)
在刚刚开始时,我产生了我的个人只是随机的房间,时间和日期的教训。
变异和交叉,如上文所述,真是小巫见大巫:
- 交叉 - 以母公司的时间表,随机选择的点和交叉的范围,只是交换父母安排的部分,产生两个子计划。
- 突变 - 采取一个孩子的时间表,并随机移动n随机课程的位置。
这不是我以前做过的事情,也不知道是否标准,但是您可以考虑运行一段时间的遗传算法,得到一个体面健康的人群,然后将这些点用作梁的起点搜索或者使用标准本地搜索技术的东西。 – Dougal 2012-04-27 12:47:22
我已经成功地将遗传算法与动态规划,神经网络甚至一些数据挖掘算法混合在一起。但是,如果不了解更多关于你想要做什么的事情,你的合适功能是什么,你如何创建个人以及你如何变异,我不认为我可以给你任何关于如何将这些应用于你的问题的建议。 – 2012-04-27 13:03:27
@izomorphius,请在正确的主题中找到附加信息,在此先感谢您的帮助 – 2012-04-29 16:09:28