1. 程式人生 > 其它 >關於DAG上拓撲序及其逆排列的討論

關於DAG上拓撲序及其逆排列的討論

關於DAG上拓撲序及其逆排列的討論

記號

  • \(G\):有向無環圖, \(r(G)\):\(G\)的反圖, \(-G\):\(G\)中點編號取反(\(x \to n-x+1\))
  • \(P(G)\):\(G\)上所有拓撲序的集合,\(P^{-1}(G)\):\(P(G)\)的逆排列集合,\(-P(G)\)拓撲序編號取反
  • \(r(P)\):排列翻轉後的集合
  • \(p\):一個排列(置換)

一些性質

\[p^{-1}(p(i)) = i \\ r(p)(i) = p(n-i) \\ -P(G) = P(-G) \\ r(P(G)) = P(r(G)) \\ -\min P(G) = \max -P(G) = \max P(-G) \]

顯然

\[(-p)^{-1} = r(p^{-1}) \]

證明:

\[\begin{aligned} (-p)(i) &= n - p(i) \\ (-p)^{-1}(n-p(i)) &= i \\ (-p)^{-1}(n-p(i)) &= r((-p)^{-1})(p(i)) \\ r((-p)^{-1}) &= p^{-1} \\ (-p)^{-1} &= r(p^{-1}) \end{aligned} \\ \] \[-P^{-1}(G) = P^{-1}(r(G)) \]

證明:

\[\begin{aligned} (-P^{-1}(G))^{-1} &= r(P(G)) \\ &= P(r(G)) \\ -P^{-1}(G) &= P^{-1}(r(G)) \end{aligned} \]

字典拓撲原理

在DAG上最小\最大拓撲序易求,我們考慮將其逆排列的極值問題轉化。

\[(\max P(G))^{-1} = \max P^{-1}(G) \]

證明:
考慮歸納證明,令\(\max P^{-1}(G) (1) = k\),則節點\(1\)後至少有\(n-k\)個節點,對於\(\max P(G)\)我們一定只有沒有其他可以填入節點才填入\(1\),也就是\(\max P(G)(k) = 1\),然後去掉1,在新圖上滿足歸納假設。

\[\min P^{-1}(G) = -(\max P(r(G)))^{-1} \]

證明:

\[\begin{aligned} \min P^{-1}(G) &= -\max -P^{-1}(G) \\ &= -\max P^{-1}(r(G)) \\ &= -(\max P(r(G)))^{-1} \end{aligned} \]