我有需要执行的任务列表。每个任务都是一个生产者,它会响应消耗多个实体而更新多个实体。因此,任务的执行依赖于彼此。但是,一些生产商可以将其部分或全部实体过时使用。这应该有效地确保没有死锁。
在这种情况下如何设计执行图: 1)并行运行的最大任务数(和) 2)最大任务数消耗实时/非过时数据
非常感谢任何帮助。
评论后编辑: 制作人能够容忍过时的数据。这意味着可以移除任何边缘。因此,始终存在一种解决方案(可以形成DAG)。删除此边缘有成本。所以有效的问题是:
给定循环图G(具有根节点和汇聚节点),通过操作 - 删除具有成本C的两个节点之间的边缘。如何在任何节点级别以最小成本创建具有最大节点数的DAG。这里的级别是根节点的深度。如果从根到达节点需要两条边,节点的级别为2.根节点的级别为“0”。