Ruby on rails 有向无环图(DAG)中避免循环关系的逆关系
问题 在a中,添加关系所导致的循环传递关系是否总是通过反转要添加的关系来防止 例如:Ruby on rails 有向无环图(DAG)中避免循环关系的逆关系,ruby-on-rails,ruby,algorithm,graph-algorithm,Ruby On Rails,Ruby,Algorithm,Graph Algorithm,问题 在a中,添加关系所导致的循环传递关系是否总是通过反转要添加的关系来防止 例如: 现有关系:A->B,B->C,通过该关系,传递关系A->C,可以看作是A->B->C 要添加的关系:C->A,这将导致A->B->C->A,并且是循环的 Idea:反转要添加到cb->C的关系您的解决方案似乎有效。边C->A和A->C不能同时导致循环 证明: 如果添加C->A将导致循环,则已经存在路径A↝ C。如果添加A->C将导致循环,则已经存在路径C↝ A。如果上述两种情况都是正确的,那么组合这两条路径将
- 现有关系:
,A->B
,通过该关系,传递关系B->C
,可以看作是A->C
A->B->C
- 要添加的关系:
,这将导致C->A
,并且是循环的A->B->C->A
- Idea:反转要添加到
cb->C的关系您的解决方案似乎有效。边
和C->A
不能同时导致循环 证明:A->C
如果添加
将导致循环,则已经存在路径C->A
。如果添加A↝ C
将导致循环,则已经存在路径A->C
。如果上述两种情况都是正确的,那么组合这两条路径将提供一个已经存在的循环,因此初始图形将不是DAG。感谢您花时间思考@Cătălin Fr–ncu的问题C↝ A