zoukankan      html  css  js  c++  java
  • 链-反链-Dilworth定理 (转载)

    转自http://www.cnblogs.com/fstang/archive/2013/03/31/2991220.html

    偏序集:We define a Partially Ordered Set, or a Poset, as a set P with a partial ordering  defined on it’s elements. I.e, for any two elements x and y of P, either x ≤ y, y ≤ x (x and y are comparable), or x || y (x and y are incomparable).

    链(chain)是一个偏序集S的全序子集(所谓全序是指任意两个元素可比较)

    反链(antichain)是一个偏序集S的子集,其中任意两个元素不可比较

    极大(maximal)链:对一个链C,如果找不到另一个链C',使得C是C'的真子集,那么称链C是极大的

    极大(maximal)反链:对一个反链A,如果找不到另一个反链A',使得A是A'的真子集,那么称反链A是极大的

    最大链(maximum/longest):链C包含元素个数不少于任意其他链C',则C是最大链

    最大反链(maximum/largest):类似最大链定义

    (易见,最大链必然是极大链,最大反链必然是极大反链,可以用反证法)

    偏序集S的最大链的大小称为偏序集S的高度(height)

    偏序集S的最大反链的大小称为偏序集S的宽度(width)

    Proposition 1. A maximal chain in a finite nonempty poset(偏序集, partially ordered set) must contain a maximal element of
    S (and a minimal element).

    (所谓maximal element,是指:如果对x,不存在元素y使得x≤y,则x是maximal element)

    (此处≤表示偏序关系,不是“小于或等于”,下同)

    证明:考虑这个最大链的maximal element x,如果x是S中的maximal element,已经得证;若否,则存在S中元素z,使得z≤x

    ,由偏序关系的传递性,链中的每个元素都≤z,于是将z加入链将得到一个更大的链,矛盾。同理可证, 最大链也包含S的一个minimal element

    Proposition 2. The set of maximal elements of a finite poset S is a maximal antichain; likewise,
    the set of minimal elements of a nite poset S is a maximal antichain.

    证明:(仅针对maximal,minimal类似)首先极大元素组成的集合(记为M)是个反链,因为任取两个元素x, y,x≤y不成立,否则x不是maximal;y≤x同样不成立,因此x和y不可比较,所以M中任意两个元素都不可比较,是反链。

    然后证明它是极大的。考虑剩下元素(S-M)中任意一个z,我们要证明如果把z添加到M中,将破坏反链的性质。首先z不是极大的,因为极大元素都在M中,所以存在z2使得z≤z2,如果z2是极大的,则加入z将使得M中的z和z2可比较;如果z2不是极大的,可以继续找z3,使得z2≤z3……,直到找到zk是极大的,根据传递性,z≤zk,加入z将使得M中的z和zk可比较。因此剩下元素中的每一个都不能加到M中,所以M是极大反链。

     

    Proposition 3. Suppose P is partitioned into a finite set of chains C1, C2 ... Cn. If A is an

    antichain, then there is at most one element of A in each Ci; thus n >= |A|.

    证明:很显然,如果A中有两个元素属于某个Ci,那么Ci就违反了链的性质——任意两个元素可比较

    既然如此,n >= |A|也是很自然的

     

    这个证明比较复杂,第一句是证明存在性,比较难;后面还是相对容易的,每个Ci都恰好包含1个A中的元素,而且不可能有一种划分,使得链的个数小于n(否则就会有某个链至少含有2个A中的元素,那就不是链了)

    Corollary 1. If |S| > mn, then S has either height of at least m + 1 or width of at least n + 1.

     证明:假设S最长链大小为u,最大反链大小为v,根据Dilworth定理,S可以划分为v个链,C1, ..., Cv,|Ci|<=u且

    |C1|+|C2|+...+|Cv|=|S|

    反证:如果高度<=m且宽带<=n,即u<=m, v <= n,则|S|=|C1|+|C2|+...+|Cv|<=u*v = m*n,矛盾

     

     

     

  • 相关阅读:
    JSP动作元素你又知几多?
    一个简单的TCP/IP服务端客户端对话
    使用Graphics2D去除曲线锯齿状
    MySQL数据类型
    Eclipse常用快捷键
    C#中的委托和事件
    GitHub当道,菜鸟也为Git疯狂
    C++文件操作
    JSP指令你知多少?
    spring如何使用多个xml配置文件
  • 原文地址:https://www.cnblogs.com/vermouth/p/3710199.html
Copyright © 2011-2022 走看看