基于若干因素的活动计划算法和数据结构建议

时间:2016-12-30 00:09:13

标签: algorithm

我一直在努力寻找合适的算法和数据结构来规划给定天数的活动。事件具有与之关联的多个数据点。我需要在特定的日子里有人可以做的最多活动。

活动的数据点:

  1. 活动持续时间
  2. 活动的时间范围(例如上午9点至下午5点)
  3. 事件彼此接近(例如事件1可能在A点,事件2最好应该在它附近等等)
  4. 应该先评估最高评分的活动
  5. 我看了activity selection algorithm,但不确定这是否适合我所看到的内容。

1 个答案:

答案 0 :(得分:0)

G(V, E)成为以这种方式定义的有向非循环图(DAG):

  • 每个活动的v都有一个顶点V
  • V
  • 中还有两个特殊顶点v_start和v_target
  • 每个活动(i, j)Ei中有一条边jij之前结束,并且根据您的接近标准“兼容”
  • 对于V中与v_start和v_end不同的每个顶点,边(v_start, v)(v, v_end)都在E中(即v_start具有每个活动的传出边缘{{1}每个活动都有一个传入边缘)

然后您想要的是从源到目的地的最长路径,可以通过遵循概述here的简单算法在线性时间内完成。