如何 code/explore DAG 的多重线性排序

How to code/explore multiple linear orderings of a DAG

考虑有向无环图 G(V,E),其中 V={1,2,3,4,5,6,7}E={(1,2),(1,3),(1,4),(2,5),(3,5),(4,6),( 5,7),(6,7)}

这里的问题是探索图的多重线性排序。因此,如何code/decode它总是导致图形的可行线性排序(拓扑顺序)?

探索 DAG 的不同线性排序的一种可能方法是定义具有相同大小 V 的字符串(染色体),其中字符串的每个元素表示成本对于每个顶点,即第 i 个顶点的成本由字符串中的第 i 个元素给出。

自定义横向图算法可用于解码。每次可以找到超过一个顶点及其所有前辈访问过的顶点时,算法应根据字符串提供的成本按升序访问。

对于上面给出的 DAG 和成本字符串 {0.6, 0.8, 0.5, 0.1, 0.5, 0,3, 0.9},获得的线性顺序将是 {1, 4, 6, 3, 2, 5 , 7}.