zoukankan      html  css  js  c++  java
  • Dilworth 定理的一个简单证明

    Dilworth 定理:对于任意有限偏序集,其最长反链中元素的数目必等于最小链覆盖中链的数目
    容易发现偏序集中的偏序关系等价于单向边,偏序集形成的图是 DAG
    对于一个 $ n $ 个点的偏序集形成的 DAG 求最小链覆盖可以用二分图匹配解决
    将第 $ i $ 个点拆成 $ i $ 和 $ i + n $ 两个点,如果 DAG 中存在 $ i $ 连向 $ j $ 的边,就在二分图内添加 $ i + n $ 和 $ j $ 之间的连边
    设二分图的最大匹配为 $ m $,则最小链覆盖为 $ n - m $,相当于选出尽可能少的路径终点
    容易发现同一条链中的点不能同时存在于反链中,所以最长反链的上界是 $ n - m $
    如果 $ i $ 和 $ i + n $ 都在最大独立集中就将 $ i $ 加入反链中,由于最大独立集大小为 $ 2n - m $,此时找到的反链长度的下界是 $ n - m $
    因此最长反链长度为 $ n - m $,即为最小链覆盖中链的数目

  • 相关阅读:
    TP生成二维码插件
    day23 常用模块(中)
    day22 作业
    day22 常用模块(上)
    day21 模块与包+软件开发目录规范
    day20 作业
    day20 函数收尾+面向过程+模块
    day19 作业
    day19 生成器+函数递归
    day18 作业
  • 原文地址:https://www.cnblogs.com/LJC00118/p/13689089.html
Copyright © 2011-2022 走看看