当您有一组项目的依赖关系图时,您可以执行标准的主题排序来检查该图是否包含周期。如果有一个循环,那么就有一个依赖,在不违反另一个的情况下不能满足。如何检查依赖关系图中的其他冲突信息?
但是,冲突信息呢?我的意思是你有一个结构:
V - a set of items E - a set of dependency edges: E\subset V\times V C - a set of conflict edges: C\subset V\times V
什么是标准算法来检查依赖关系图是否包含不能满足的冲突信息?
例如:
V = { a, b, c } E = { (a -> b), (b->c) } C = { (a -> c) }
此示例显示一个不健全的依赖图,因为它没有任何意义的是c
取决于a
和在给定的a
c
存在被指定为冲突的同时。
这样一个模型的一个现实世界的例子是包管理器,包描述可能包括依赖和冲突规范。另一个例子是基于依赖关系的运行服务,其中只有在没有冲突的作业已经运行的情况下才能启动作业。