我有一条路径通过一个完整的有向无环图存储为List(节点)。我实现的用于通过图表传播证据的算法的一部分要求我总结路径的所有组合的所有贡献,其中第一个和最后一个之间的路径中的节点可能或可能不贡献。
作为示例,请考虑路径{r1, r2, ¬r3, r4, r5}
,其中¬
表示节点(r3)
不在路径中。因此,路径中的第一个节点和最后一个节点之间的节点为r2
和r4
。 r2
和r4
的所有组合的集合为:
{[r2,r4], [r2,¬r4], [¬r2,r4], [¬r2,¬r4]}
所以,给定一个原始列表(节点)
{r2, r4}
我想返回List(列表(节点))
{[r2,r4], [r2], [r4]}
我完全不知道如何实现这部分算法,所以任何帮助都会被接收。