小编Kin*_*ien的帖子

课程安排算法:为什么不建议使用DFS或图形着色?

我需要开发一个课程时间表软件,可以有效地分配时间段和房间.这是一个基于课程的例程,而不是基于后期注册.并且有效地意味着课程根据工作人员的时间偏好分配时间段,并且还需要最小化第1年 - 第2年课程重叠,以便第2年学生可以重新学习他们未能通过的课程.(以及3至4年级的学生) .

现在,起初我认为这将是一个容易的问题,但现在看起来不同了.我看过的大多数论文都使用遗传算法/ PSO /模拟退火或这些类型的算法.我仍然无法将问题解释为GA问题.令我困惑的是为什么几乎没有人建议使用DFS或图形着色算法?

如果使用DFS/graph-coloring,有人可以解释这个场景吗?或者为什么不建议或尝试他们.

algorithm mathematical-optimization combinatorics genetic-algorithm evolutionary-algorithm

9
推荐指数
1
解决办法
1661
查看次数

如何在Java中获取HashMap的相同值多次出现次数?

有没有简单的方法来获取存在相同值的键?或者更重要的是,我怎样才能获得相同值多次出现的次数?

考虑一下hashmap:

1->A
2->A
3->A
4->B
5->C
6->D
7->D
Run Code Online (Sandbox Code Playgroud)

这里相同值多于一次发生3次(两次,D次一次).那是(3)我想要的回报.

我可以通过keyset/map.values()列表遍历hashmap,但这样做似乎相当麻烦.任何建议或解决方案?

编辑: 我的背景是,我正在研究时间表生成器.时隙的数据结构是

{String day-hour, HashMap<String,Event> Rooms}
Run Code Online (Sandbox Code Playgroud)

对于一天的工作时间,会在客房地图上指定一些事件.在检查解决方案的适用性时,我需要知道是否在同一时间为一名员工分配了多个事件.因此,我想通过值Event.getStaff()检查Rooms map中有多少违规.

编辑: 值是这里的对象,我不想计算相同对象的出现次数,而是计算对象的字段.EVENT对象有一个现场工作人员,我需要计算多次出现的员工.

java hashmap map data-structures

5
推荐指数
2
解决办法
2006
查看次数