偏序关系&Dilworth定理

偏序关系

先介绍一些形式上的定义。

定义一个作用在集合 S S S 上的二元关系 ≤ \leq (并不是指小于等于,但是用这个符号比较形象,因为 ≤ \leq 自身就是广泛满足偏序关系的),若 S S S 满足:

  1. 自反性: 对于任意 x ∈ S x\in S xS,有 x ≤ x x\leq x xx
  2. 反对称性: 如果有 x ≤ y , y ≤ x x\leq y,y\leq x xy,yx,那么有 x = y x=y x=y
  3. 传递性: 如果有 x ≤ y , y ≤ z x\leq y,y\leq z xy,yz,那么有 x ≤ z x\leq z xz

则称 ≤ \leq S S S 上的偏序关系。

最小元: 对于 x x x 而言,若对于任意 y ≤ x y\leq x yx,都满足 y = x y=x y=x,那么 x x x 就是一个最小元。

可比较: 对于两个元素 x , y x,y x,y,若有 x ≤ y x\leq y xy y ≤ x y\leq x yx,那么称他们可比较。

全序关系: 若集合内任意两个元素都可比较,那么称 ≤ \leq S S S 上的全序关系。举个例子,所有 ≤ \leq Z Z Z(整数集)上就是全序关系,而 ≤ \leq 在复数域上就是偏序关系。

链: 一个偏序集合中的一个全序子集,又被称为链,即满足任意两个元素都可比较的子集。

反链: 类似的,即满足任意两个元素都不可比较的子集。

Dilworth定理

这是一个对偶定理,也就是说有两条:

  1. 定理1: 其最长链中元素的数目必等于其最小反链划分(即将集合划分为最少的反链)中反链的数目。
  2. 定理2: 其最长反链中元素的数目必等于其最小链划分中链的数目。

证明其实也很容易看懂,先证明定理 1 1 1

r r r 为最长链的元素数目, k k k 为最小反链划分中反链的数目。

分两部分证明,先证明 k ≥ r k\geq r kr,然后证明 k ≤ r k\leq r kr,最后由此得到 r = k r=k r=k

由于最长链中的元素两两不能在同一反链中,所以反链数目至少为 r r r,即 k ≥ r k\geq r kr

A 1 = S A_1=S A1=S,将 A 1 A_1 A1 中所有最小元取出得到 a 1 a_1 a1,将 a 1 a_1 a1 A 1 A_1 A1 中删掉得到 A 2 A_2 A2,反复操作得到 2 n 2n 2n 个集合,即 A 1 A_1 A1 ~ A n A_n An a 1 a_1 a1 ~ a n a_n an,不难发现 a 1 a_1 a1 ~ a n a_n an 是一个反链划分。

不难取出一个长度为 n n n 的链 c 1 c_1 c1 ~ c n c_n cn,其中 , c i ∈ a i c_i\in a_i ciai。由于最长链长度为 r r r,所以有 r ≥ n r\geq n rn,又由于反链划分最少为 k k k,所以又有 k ≤ n k\leq n kn,所以有 k ≤ r k\leq r kr

证毕。 定理 2 2 2 证明类似,不赘述了。

应用

我们早就学过的 导弹拦截 就是经典应用。

若拦截了 i i i 之后可以拦截 j j j,那么需要满足偏序关系: i < j , a i ≥ a j i<j,a_i\geq a_j i<j,aiaj。第一问就是求最长链长度,随便dp即可,第二问要求最小链划分数目,这就等于最大反链划分数目,即最长上升子序列。

还有很多题可以上网搜到,这里也提供一题:[Poi1998]Flat broken lines

猜你喜欢

转载自blog.csdn.net/a_forever_dream/article/details/110408580