在Partially order set(偏序集)有一个非常NX的定理叫Dilworth Theorem。上图是偏序集的一个Hasse diagram,偏序集的定义是
偏序是在集合X上的二元关系≤,它满足自反性、反对称性和传递性。即,对于X中的任意元素a,b和c,有: 自反性:a≤a; 反对称性:如果a≤b且b≤a,则有a=b; 传递性:如果a≤b且b≤c,则a≤c 。
带有偏序关系的集合称为偏序集。 令(X,≤)是一个偏序集,对于集合中的两个元素a、b,如果有a≤b或者b≤a,则称a和b是可比的,否则a和b不可比。 在X中,对于元素a,如果任意元素b,由b≤a得出b=a,则称a为极小元。
一个反链A是X的一个子集,它的任意两个元素都不能进行比较。 一个链C是X的一个子集,它的任意两个元素都可比。
下面是两个重要定理: 定理1 令(X,≤)是一个有限偏序集,并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。 其对偶定理称为Dilworth定理: 定理2 令(X,≤)是一个有限偏序集,并令m是反链的最大的大小。则X可以被划分成m个但不能再少的链。
搞清楚了反链和链的定义,就能够很好的从Hasse Diagram中得到理解。链就是从纵向的角度看 Hasse Diagram ,反链是从横向的角度看Hasse Diagram。
定理一,就是至少有r行构成反链关系。
定理二,就是至少有m列构成链关系。
我们来考虑一个导弹拦截问题,就是求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。 很显然第一个是动态规划,动态规划的过程就是求Hasse Diagram的过程!!!
第二问就是求最少能够划分成几个链,根据定理2 [...]
文章来源:
http://www.lxlsosi.tk/2011/05/26/%e5%81%8f%e5%ba%8f%e9%9b%86-dilworth-%e5%ae%9a%e7%90%86-poj-1065-3636-1548/