选择资源分配决策工具的数据结构

时间:2017-12-07 04:00:50

标签: algorithm data-structures decision-tree

我正在尝试制作一个小型决策工具。

我有预设时刻发生的事件列表(例如,X总是出现在00:12),每个事件都是加权的

我得到了一份资源清单,每个资源都有一个持续时间和一个时间跨度再次可用。此外,每个ressource以自己的方式修改活动时发生的事件的权重。没有资源支出也是可能的。

正如我想的那样,最佳资源分配是事件权重的最大值,如果事件在资源活动时间内发生,则应用资源修饰符。

我在数据结构方面对问题进行建模时遇到了麻烦。我想到了两种可能的解决方案:

我有第一个直觉,我应该有一个树,每个节点代表和事件(通过它的计时器)和我的选择列表的状态(可用,哪些不是,它们是活动的)。但是,如何跟踪节点之间的变化呢?我很难看到如何管理这样的结构。

是一个布尔的二维数组,每一行都是一个事件,每一列都是一个选择,然后我遍历列,如果是真的话,得到相应的事件权重,相应的选择权重修饰符等......一个好的迈向一个体面的解决方案?

有什么见解?

1 个答案:

答案 0 :(得分:0)

我建议查看一个优先级队列,您可以根据事件权重对资源进行排序,以便优先级队列的顶部成为权重最高的资源。项目可用后,您可以将其添加到队列中。由于您提到要重新设置项目权重,我建议您查看fibonacci heap作为优先级队列的基础数据结构。