在GA中哈希

时间:2012-11-07 17:33:33

标签: java hash genetic-algorithm

我正在研究最后一年的项目,即在大学课程时间表中使用遗传算法的想法。

算法的一部分是测试预期时间表违反的违规行为。其中一个是房间冲突 - 一个房间被双重预订。

使用java,我已经覆盖了我的roomTimeSlot的默认getHashcode(房间和每个时间段的id的组合,即星期一9-10,moday 10-11等)到我自己的代码 我想使用这个哈希码来映射每个讲座的每个指定的roomTimeslot。

我的问题是我该怎么做以及如何检测碰撞?

1 个答案:

答案 0 :(得分:0)

首先,我会放弃哈希的想法......

然后你可能会创建一个包含开头和结尾的Interval对象,你将它放在你的Collection中。

您可以在此Class上轻松实现可以检测冲突的方法:

public boolean hasCollision(Interval inter){....}

现在,在插入之前,迭代你的集合并调用hasCollision()方法......

我想优化结果,你也可以使Interval对象实现Comparable并使用Sorted集合。

您也可以查看interval tree data structure,并且只有在间隔中没有碰撞/交叉点时才添加元素。