偏序关系与偏序集相关

一.偏序集的定义.

偏序集:定义一个偏序集是由一个集合 S S S与一个二元关系 ≤ \leq 组成的二元组 O = ( S , ≤ ) O=(S,\leq) O=(S,),满足:
1.自反性:对于任意元素 x ∈ S x\in S xS,有 x ≤ x x\leq x xx.
2.传递性:对于任意元素 x , y , z ∈ S x,y,z\in S x,y,zS,若 x ≤ y , y ≤ z x\leq y,y\leq z xy,yz,则 x ≤ y ≤ z x\leq y\leq z xyz.
3.反对称性:对于任意元素 x , y ∈ S x,y\in S x,yS,若 x ≤ y , y ≤ x x\leq y,y\leq x xy,yx,则 x = y x=y x=y.

偏序关系:我们称一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,)中的偏序关系为二元关系 ≤ \leq .

对于偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,),我们定义 x ∈ O x\in O xO表示 x ∈ S x\in S xS ∣ O ∣ = ∣ S ∣ |O|=|S| O=S.


二.偏序集上的链相关.

集合的链:称一个由集合 S S S中元素组成的集族 ( v 1 , v 2 , ⋯   , v n ) (v_1,v_2,\cdots,v_n) (v1,v2,,vn) S S S的链当且仅当对于任意 i ≤ j i\leq j ij满足 v i ⊆ v j v_i\subseteq v_j vivj.

集合的反链:称一个由集合 S S S中元素组成的集族 ( v 1 , v 2 , ⋯   , v n ) (v_1,v_2,\cdots,v_n) (v1,v2,,vn) S S S的反链当且仅当任意 i ≠ j i\neq j i=j满足 v i ⊈ v j v_i\nsubseteq v_j vivj.

相当于把 S S S的所有子集拎出来构成一个集族和二元关系 ⊆ \subseteq 组成的偏序集上的概念.

sperner定理:集合 S S S的最长反链长度为 ( ∣ S ∣ ⌊ ∣ S ∣ 2 ⌋ ) \binom{|S|}{\left\lfloor\frac{|S|}{2}\right\rfloor} (2SS).

证明:

考虑对于集族中每一个元素 U U U,我们将 1 1 1 ∣ S ∣ |S| S的排列中属于这个 U U U的放到前面进行排列,不属于的放到后面排列,会得到 ∣ U ∣ ! ( ∣ S ∣ − ∣ U ∣ ) ! |U|!(|S|-|U|)! U!(SU)!个排列.

那么在一个反链中,任意两个元素 U , V U,V U,V U U U按照上述方式生成的排列中不应该有与 V V V生成的排列相同的.

设大小为 i i i元素有 a i a_i ai个,那么:
∑ i = 0 ∣ S ∣ a i ∗ i ! ( ∣ S ∣ − i ) ! ≤ n ! ∑ i = 0 ∣ S ∣ a i ( n i ) ≤ 1 ∑ i = 0 ∣ S ∣ a i ≤ ( n ⌊ n 2 ⌋ ) \sum_{i=0}^{|S|}a_i*i!(|S|-i)!\leq n!\\ \sum_{i=0}^{|S|}\frac{a_i}{\binom{n}{i}}\leq 1\\ \sum_{i=0}^{|S|}a_i\leq \binom{n}{\left\lfloor\frac{n}{2}\right\rfloor} i=0Saii!(Si)!n!i=0S(in)ai1i=0Sai(2nn)

证毕.

:对于一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,),一个由 O O O中元素组成的非重序列 a i a_i ai满足 a i ≤ a i + 1 a_i\leq a_{i+1} aiai+1称为 O O O的一条链.

反链:对于一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,),一个由 O O O中元素组成的集合满足集合中任意元素 x , y x,y x,y都不满足 x ≤ y x\leq y xy,那么这个集合称为 O O O的反链.

Dilworth定理1:对于一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,) O O O的最小反链划分等于 O O O的最长链长度.

证明:
首先,由于两个在最长链上的元素必然不能处于同一反链中,所以最小反链划分 ≥ \geq 最长链长度.
之后,必然存在一个反链划分方式,使得每一次构造一个新的反链时,将所有极小元加入该反链中,数量为最长链长度.
证毕.

Dilworth定理2:对于一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,) O O O的最小链划分等于 O O O的最长反链长度.

证明与上面类似.

推论1:大小为 n m + 1 nm+1 nm+1的偏序集,要么有长度至少为 n + 1 n+1 n+1的链,要么有长度至少为 m + 1 m+1 m+1的反链.

根据上面的Dilworth定理不难证明.

推论2:长度为 n n n的数列,要么有长度至少为 n \sqrt{n} n 的非严格上升子序列,要么有长度至少为 n \sqrt{n} n 的非严格下降子序列.

根据推论1不难证明.

最小链覆盖可以利用二分图匹配来求,这里不再赘述.


三.偏序集上的容斥原理.

偏序集上的容斥原理:对于一个偏序集 O = ( S , ≤ ) O=(S,\leq) O=(S,)上的两个函数 f , g f,g f,g,我们希望找到一个二元函数 μ ( x , y ) \mu(x,y) μ(x,y),使得:
f ( x ) = ∑ y ≤ x g ( y ) ⇔ g ( x ) = ∑ y ≤ x μ ( x , y ) f ( y ) f(x)=\sum_{y\leq x}g(y)\Leftrightarrow g(x)=\sum_{y\leq x}\mu(x,y)f(y) f(x)=yxg(y)g(x)=yxμ(x,y)f(y)

事实上这个东西叫做偏序集上的Mobius反演.

偏序集上的容斥系数:我们称二元函数 μ ( x , y ) \mu(x,y) μ(x,y)为偏序集上容斥原理的容斥系数,也称作偏序集上的Mobius函数.

通过构造出偏序集上的 μ \mu μ函数,我们可以构造出很多东西,例如差分与前缀和的关系、广义容斥原理、Mobius反演等本质都是偏序集上的容斥原理.


四.差分与前缀和.

考虑一个偏序集 ( N , ≤ ) (N,\leq) (N,) μ \mu μ函数是怎么样的.

我们将这个偏序集的容斥原理式写出来:
f ( x ) = ∑ y ≤ x g ( y ) ⇔ g ( x ) = ∑ y ≤ x μ ( x , y ) f ( y ) f(x)=\sum_{y\leq x}g(y)\Leftrightarrow g(x)=\sum_{y\leq x}\mu(x,y)f(y) f(x)=yxg(y)g(x)=yxμ(x,y)f(y)

将第二个式子带入第一个式子得到:
f ( x ) = ∑ y ≤ x ∑ z ≤ y μ ( y , z ) f ( z ) = ∑ y ≤ x f ( y ) ∑ y ≤ z ≤ x μ ( z , y ) f(x)=\sum_{y\leq x}\sum_{z\leq y}\mu(y,z)f(z)=\sum_{y\leq x}f(y)\sum_{y\leq z\leq x}\mu(z,y) f(x)=yxzyμ(y,z)f(z)=yxf(y)yzxμ(z,y)

那么显然 μ \mu μ函数需要这样的性质:
∑ y ≤ z ≤ x μ ( z , y ) = [ x = y ] \sum_{y\leq z\leq x}\mu(z,y)=[x=y] yzxμ(z,y)=[x=y]

发现可以这样构造 μ \mu μ函数:
μ ( i , i ) = 1 μ ( i + 1 , i ) = − 1 μ ( i + 2 , i ) = μ ( i + 3 , i ) = ⋯ = 0 \mu(i,i)=1\\ \mu(i+1,i)=-1\\ \mu(i+2,i)=\mu(i+3,i)=\cdots=0 μ(i,i)=1μ(i+1,i)=1μ(i+2,i)=μ(i+3,i)==0

再重新代回去得到:
f ( x ) = ∑ y ≤ x g ( y ) ⇔ g ( x ) = f ( x ) − f ( x − 1 ) f(x)=\sum_{y\leq x}g(y)\Leftrightarrow g(x)=f(x)-f(x-1) f(x)=yxg(y)g(x)=f(x)f(x1)

发现这玩意就是差分与前缀和的关系.


五.广义容斥原理.

我们构造一个排列中所有子集构成的集族 S S S,然后构造一个偏序集 G = ( S , ⊆ ) G=(S,\subseteq) G=(S,).

先写出偏序集上的容斥原理:
f ( S 1 ) = ∑ S 2 ⊆ S 1 g ( S 2 ) ⇔ g ( S 1 ) = ∑ S 2 ⊆ S 1 μ ( S 1 , S 2 ) f ( S 1 ) f(S_1)=\sum_{S_2\subseteq S_1}g(S_2)\Leftrightarrow g(S_1)=\sum_{S_2\subseteq S_1}\mu(S_1,S_2)f(S_1) f(S1)=S2S1g(S2)g(S1)=S2S1μ(S1,S2)f(S1)

将第二个式子带入第一个式子得到:
f ( S 1 ) = ∑ S 2 ⊆ S 1 ∑ S 3 ⊆ S 2 μ ( S 2 , S 3 ) f ( S 3 ) = ∑ S 2 ⊆ S 1 f ( S 2 ) ∑ S 2 ⊆ S 3 ⊆ S 1 μ ( S 3 , S 2 ) f(S_1)=\sum_{S_2\subseteq S_1}\sum_{S_3\subseteq S_2}\mu(S_2,S_3)f(S_3)=\sum_{S_2\subseteq S_1}f(S_2)\sum_{S_2\subseteq S_3\subseteq S_1}\mu(S_3,S_2) f(S1)=S2S1S3S2μ(S2,S3)f(S3)=S2S1f(S2)S2S3S1μ(S3,S2)

同样现在 μ \mu μ函数要有这样的性质:
∑ S 2 ⊆ S 3 ⊆ S 1 μ ( S 3 , S 2 ) = [ S 1 = S 2 ] \sum_{S2\subseteq S_3\subseteq S_1} \mu(S_3,S_2)=[S_1=S_2] S2S3S1μ(S3,S2)=[S1=S2]

现在考虑把集合 S 2 S_2 S2去掉可以得到:
∑ S 3 ⊆ S 1 − S 2 μ ( S 3 ∪ S 2 , S 2 ) = [ S 1 − S 2 = ∅ ] \sum_{S_3\subseteq S_1-S_2}\mu(S_3\cup S_2,S_2)=[S_1-S_2=\empty] S3S1S2μ(S3S2,S2)=[S1S2=]

考虑一个我们已经知道的式子:
∑ T ⊆ [ n ] ( − 1 ) ∣ T ∣ = ∑ i = 0 n ( − 1 ) i ( n i ) = [ n = 0 ] \sum_{T\subseteq [n]}(-1)^{|T|}=\sum_{i=0}^{n}(-1)^{i}\binom{n}{i}=[n=0] T[n](1)T=i=0n(1)i(in)=[n=0]

可以想到一个符合条件的构造方式为:
μ ( S 1 , S 2 ) = ( − 1 ) ∣ S 1 ∣ − ∣ S 2 ∣ \mu(S_1,S_2)=(-1)^{|S_1|-|S_2|} μ(S1,S2)=(1)S1S2

代回去后得到:
f ( S 1 ) = ∑ S 2 ⊆ S 1 g ( S 2 ) ⇔ g ( S 1 ) = ∑ S 2 ⊆ S 1 ( − 1 ) ∣ S 1 ∣ − ∣ S 2 ∣ f ( S 1 ) f(S_1)=\sum_{S_2\subseteq S_1}g(S_2)\Leftrightarrow g(S_1)=\sum_{S_2\subseteq S_1}(-1)^{|S_1|-|S_2|}f(S_1) f(S1)=S2S1g(S2)g(S1)=S2S1(1)S1S2f(S1)

发现这个东西就是广义容斥原理.


六.二元组偏序集上的容斥原理.

定义一个二元组集合 S = { ( x , y ) ∣ x ∈ N , y ∈ N } S=\{(x,y)|x\in N,y\in N\} S={(x,y)xN,yN},其中 ( x 1 , y 1 ) ≤ ( x 2 , y 2 ) (x_1,y_1)\leq (x_2,y_2) (x1,y1)(x2,y2)等价于 x 1 ≤ x 2 ∧ y 1 ≤ y 2 x_1\leq x_2\wedge y_1\leq y_2 x1x2y1y2,构造一个偏序集 G = ( S , ≤ ) G=(S,\leq) G=(S,).

先写出偏序集上的容斥原理:
f ( x 1 , y 1 ) = ∑ x 2 ≤ x 1 ∧ y 2 ≤ y 1 g ( x 2 , y 2 ) ⇔ g ( x 1 , y 1 ) = ∑ x 2 ≤ x 1 , ∧ y 2 ≤ y 1 μ ( x 1 , y 1 , x 2 , y 2 ) f ( x 2 , y 2 ) f(x_1,y_1)=\sum_{x_2\leq x_1\wedge y_2\leq y_1}g(x_2,y_2)\Leftrightarrow g(x_1,y_1)=\sum_{x_2\leq x_1,\wedge y_2\leq y_1}\mu(x_1,y_1,x_2,y_2)f(x_2,y_2) f(x1,y1)=x2x1y2y1g(x2,y2)g(x1,y1)=x2x1,y2y1μ(x1,y1,x2,y2)f(x2,y2)

然后将第二个式子代入第一个式子中得到:
f ( x 1 , y 1 ) = ∑ x 2 ≤ x 1 ∧ y 2 ≤ y 1 ∑ x 3 ≤ x 2 ∧ y 3 ≤ y 2 ( x 2 , y 2 , x 3 , y 3 ) f ( x 3 , y 3 ) = ∑ x 2 ≤ x 1 ∧ y 2 ≤ y 1 f ( x 2 , y 2 ) ∑ x 2 ≤ x 3 ≤ x 1 ∧ y 2 ≤ y 3 ≤ y 1 μ ( x 3 , y 3 , x 2 , y 2 ) f(x_1,y_1)=\sum_{x_2\leq x_1\wedge y_2\leq y_1}\sum_{x_3\leq x_2\wedge y_3\leq y_2}(x_2,y_2,x_3,y_3)f(x_3,y_3)=\sum_{x_2\leq x_1\wedge y_2\leq y_1}f(x_2,y_2)\sum_{x_2\leq x_3\leq x_1\wedge y_2\leq y_3\leq y_1}\mu(x_3,y_3,x_2,y_2) f(x1,y1)=x2x1y2y1x3x2y3y2(x2,y2,x3,y3)f(x3,y3)=x2x1y2y1f(x2,y2)x2x3x1y2y3y1μ(x3,y3,x2,y2)

那么 μ \mu μ函数该有的性质应为:
∑ x 2 ≤ x 3 ≤ x 1 , y 2 ≤ y 3 ≤ y 1 μ ( x 3 , y 3 , x 2 , y 2 ) = [ x 1 = x 2 ∧ y 1 = y 2 ] \sum_{x_2\leq x_3\leq x_1,y_2\leq y_3\leq y_1}\mu(x_3,y_3,x_2,y_2)=[x_1=x_2\wedge y_1=y_2] x2x3x1,y2y3y1μ(x3,y3,x2,y2)=[x1=x2y1=y2]

考虑将 μ \mu μ函数拆成两份,得到:
( ∑ x 2 ≤ x 3 ≤ x 1 μ 1 ( x 3 , x 2 ) ) ( ∑ y 2 ≤ y 3 ≤ y 1 μ 2 ( y 3 , y 2 ) ) = [ x 1 = x 2 ] ∗ [ y 1 = y 2 ] \left(\sum_{x_2\leq x_3\leq x_1} \mu_1(x_3,x_2)\right)\left(\sum_{y_2\leq y_3\leq y_1}\mu_2(y_3,y_2)\right)=[x_1=x_2]*[y_1=y_2]\\ (x2x3x1μ1(x3,x2))(y2y3y1μ2(y3,y2))=[x1=x2][y1=y2]

那么现在就只需要有:
∑ x 2 ≤ x 3 ≤ x 1 μ 1 ( x 3 , x 2 ) = [ x 1 = x 2 ] ∑ y 2 ≤ y 3 ≤ y 1 μ 2 ( y 3 , y 2 ) = [ y 1 = y 2 ] \sum_{x_2\leq x_3\leq x_1} \mu_1(x_3,x_2)=[x_1=x_2]\\ \sum_{y_2\leq y_3\leq y_1} \mu_2(y_3,y_2)=[y_1=y_2] x2x3x1μ1(x3,x2)=[x1=x2]y2y3y1μ2(y3,y2)=[y1=y2]

发现这两个式子均可以用上面前缀和与差分的方法构造.

然后就可以构造 μ ( x 1 , y 1 , x 2 , y 2 ) = μ 1 ( x 1 , x 2 ) μ 2 ( y 1 , y 2 ) \mu(x_1,y_1,x_2,y_2)=\mu_1(x_1,x_2)\mu_2(y_1,y_2) μ(x1,y1,x2,y2)=μ1(x1,x2)μ2(y1,y2).


七.Mobius反演.

考虑构造偏序集 O = ( N + , ∣ ) O=(N_+,|) O=(N+,)上的 μ \mu μ函数.

先把容斥式子写出来:
f ( x ) = ∑ y ∣ x g ( y ) ⇔ g ( x ) = ∑ y ∣ x μ ( x , y ) f ( y ) f(x)=\sum_{y|x}g(y)\Leftrightarrow g(x)=\sum_{y|x}\mu(x,y)f(y) f(x)=yxg(y)g(x)=yxμ(x,y)f(y)

把第二个式子代入第一个式子中:
f ( x ) = ∑ y ∣ x ∑ z ∣ y μ ( y , z ) f ( z ) = ∑ y ∣ x f ( y ) ∑ y ∣ z ∣ x μ ( z , y ) f(x)=\sum_{y|x}\sum_{z|y}\mu(y,z)f(z)=\sum_{y|x}f(y)\sum_{y|z|x}\mu(z,y) f(x)=yxzyμ(y,z)f(z)=yxf(y)yzxμ(z,y)

然后得到 μ \mu μ函数该有的性质:
∑ y ∣ z ∣ x μ ( z , y ) = [ x = y ] \sum_{y|z|x}\mu(z,y)=[x=y] yzxμ(z,y)=[x=y]

根据上面二元组的方法,我们可以将 n n n唯一分解成几个质因数的乘积形式,并用乘积的数量拆成若干个偏序集 ( c 2 , ≤ ) , ( c 3 , ≤ ) , ⋯ (c_2,\leq),(c_3,\leq),\cdots (c2,),(c3,),的乘积,然后对于每一个 ( c p , ≤ ) (c_p,\leq) (cp,),我们定义它的容斥系数为 μ p \mu_p μp.

接下来我们用 P P P表示素数集,用 c p ( x ) c_{p}(x) cp(x)表示 x x x唯一分解后 p p p的数量,那么有:
∏ p ∈ P ∑ c p ( y ) ≤ c p ( z ) ≤ c p ( x ) μ p ( c p ( z ) , c p ( y ) ) = ∏ p ∈ P [ c p ( x ) = c p ( y ) ] \prod_{p\in P}\sum_{c_p(y)\leq c_{p}(z)\leq c_{p}(x)}\mu_p(c_p(z),c_p(y))=\prod_{p\in P}[c_p(x)=c_p(y)] pPcp(y)cp(z)cp(x)μp(cp(z),cp(y))=pP[cp(x)=cp(y)]

对于其中每一个等式:
∑ c p ( y ) ≤ c p ( z ) ≤ c p ( x ) μ p ( c p ( z ) , c p ( y ) ) = [ c p ( x ) = c p ( y ) ] \sum_{c_p(y)\leq c_{p}(z)\leq c_{p}(x)}\mu_p(c_p(z),c_p(y))=[c_p(x)=c_p(y)] cp(y)cp(z)cp(x)μp(cp(z),cp(y))=[cp(x)=cp(y)]

我们可以通过与上面差分与前缀和类似的方式构造出:
μ p ( c p ( x ) , c p ( x ) ) = 1 μ p ( c p ( x ) + 1 , c p ( x ) ) = − 1 μ p ( c p ( x ) + 2 , c p ( x ) ) = μ p ( c p ( x ) + 3 , c p ( x ) ) = ⋯ = 0 \mu_p(c_p(x),c_p(x))=1\\ \mu_p(c_p(x)+1,c_p(x))=-1\\ \mu_p(c_p(x)+2,c_p(x))=\mu_p(c_p(x)+3,c_p(x))=\cdots=0 μp(cp(x),cp(x))=1μp(cp(x)+1,cp(x))=1μp(cp(x)+2,cp(x))=μp(cp(x)+3,cp(x))==0

然后我们构造容斥系数 μ ′ \mu' μ满足:
μ p ′ ( x , y ) = μ p ( c p ( x ) , c p ( y ) ) = { 1 c p ( x ) − c p ( y ) = 0 − 1 c p ( x ) − c p ( y ) = 1 0 c p ( x ) − c p ( y ) > 1 \mu'_p(x,y)=\mu_p(c_p(x),c_p(y))= \left\{\begin{matrix} 1&c_p(x)-c_p(y)=0\\ -1&c_p(x)-c_p(y)=1\\ 0&c_p(x)-c_p(y)>1 \end{matrix}\right. μp(x,y)=μp(cp(x),cp(y))=110cp(x)cp(y)=0cp(x)cp(y)=1cp(x)cp(y)>1

那么对于原来的 μ \mu μ函数就有:
μ ( x , y ) = ∏ p ∈ P μ p ′ ( x , y ) \mu(x,y)=\prod_{p\in P}\mu'_p(x,y) μ(x,y)=pPμp(x,y)

然后我们还可以发现一条性质,即:
μ ( x , y ) = μ ( x y , 1 ) \mu(x,y)=\mu\left(\frac{x}{y},1\right) μ(x,y)=μ(yx,1)

所以我们把 μ ( x , y ) \mu(x,y) μ(x,y)简写成 μ ( x y ) \mu(\frac{x}{y}) μ(yx),代回原来的式子中就有:
f ( x ) = ∑ y ∣ x g ( x ) ⇔ g ( x ) = ∑ y ∣ x f ( x ) μ ( x y ) f(x)=\sum_{y|x}g(x)\Leftrightarrow g(x)=\sum_{y|x}f(x)\mu\left(\frac{x}{y}\right) f(x)=yxg(x)g(x)=yxf(x)μ(yx)

这个式子即为数论中的Mobius反演.

你可能感兴趣的:(算法入门)