2021/10/3(偏序)


引言

信息學競賽中有個很經典的問題——偏序問題。

可能很多人並沒有聽說過什么是偏序問題,但大多應該都聽說過逆序對和最長上升子序列問題。這兩個問題都是偏序問題的一種。

先來理解下偏序關系的定義。

定義

偏序關系

設R是集合A上的一個二元關系,若R滿足:

  1. 自反性:對任意xA,有xRx
  2. 反對稱性(即反對稱關系):對任意x,yA,若xRy,且yRx,則x=y
  3. 傳遞性:對任意xy,zA,若xRy,且yRz,則xRz。

則稱R為A上的偏序關系,通常記作≼。

 

這一系列數學定義可能比較難懂,但如果你把小於等於號帶入這個R就容易明白了,這個定義就是誕生在小於等於號上的,當然他不僅是代表小於等於號,數學將這些概念抽象化就是為了提煉出更加普適性的概念。比如集合的包含關系也是一種偏序關系,帶入這3個定義,顯然都可以滿足。
同理,我們給小於號也下一個定義。它和小於等於相似但又有不同,我們稱之為嚴格的偏序關系,相對應上面的稱之為非嚴格的偏序關系。
 

給定集合S,“<”是S上的二元關系,若“<”滿足:

  1. 反自反性:∀a∈S,有a≮a;

  2. 非對稱性:∀a,b∈S,a<b ⇒ b≮a;

  3. 傳遞性:∀a,b,c∈S,a<b且b<c,則a<c;

則稱“<”是S上的嚴格偏序或反自反偏序。

與非嚴格的偏序關系不同的地方就是沒有反對稱性,取而代之的是非對稱性。上面寫的包含關系是一種偏序關系,更准確的說,包含關系是非嚴格的偏序關系,而真包含是嚴格的偏序關系。

全序關系

偏序和全序是公里集合論中的概念,全序關系是偏序關系的一個子集,如果是全序關系那必然是偏序關系,全序關系在全序關系上增加了一個完全性。

設R是集合 A上的一個 二元關系,若R滿足:
  1. R是集合A上的一個偏序關系。
  2. 完全性:對任意x∈A,y∈A,存在 (x,y)∈R或(y,x)∈R

 在實數集上的大於小於號等大小關系,更准確的說應該屬於一種全序關系,因為實數集上所有的數都能比較。但如果將數域擴展到復數域,復數域中的部分數是不能比較的,所以復數域中的大於小於號等大小關系是偏序關系而不是全序關系。同樣的,集合之間的包含關系也不是全序關系,因為兩集合可以處於不包含也不被包含的互相獨立的狀態。

正文

偏序問題

定序列A,其中有序對(Ai,Aj),滿足 i<j 且 Ai<Aj這樣的有序對我們稱之為逆序對

信息學競賽中的逆序對問題,一般是要我們計數給出序列的逆序對個數的總和。

其實可以把它看成一個特殊的二維偏序問題,或者說是離散化x坐標的二維偏序問題。

我們把給定的序列A ,加上一個編號,變成一個二元組,即A1-->(A1,1) ,A2-->(A2,2) Ai-->(Ai,i)。存在兩個二元組(a,b),(c,d),滿足 a > c 且 b < d 的個數。我們將二元組放在一個二維空間中,二元組(x,y)表示坐標為(x,y)的點,此時我們就會發現實際上逆序對問題,就是一種二維偏序問題。

何為二維偏序問題? 在二元組中定義一種偏序關系R,統計R集合中元素的個數。

比如逆序對問題,定義的關系就是:兩個二元組(a,b),(c,d),滿足 a > c 且 b < d 。易知它滿足偏序關系的3個定義,並且任意的兩個二元組也不都有關系,所以就不是全序,當然由於逆序對問題一般不會出現重復的數字,所以前兩個定義需要特別判斷,但它可以滿足最后的也是最重要的一條性質——傳遞性。也正是因為傳遞性我們才能使用各種算法來解決它們。

在信息學競賽中我們解決逆序對使用的是,線段樹或歸並排序,實際上這里的歸並排序就是cdq分治,實際上都是使用的分治法。

這兩種方法本質上相同,都是通過排序解決一個維度的問題,然后再使用分治快速處理另外一個維度的問題。

特別的最長上升子序列問題也是一種偏序問題,實際上可以轉換為,給出n個元素的二元組集合S,其中有二元組(A1,1),(A2,2)...(An,n),在二元組中有關系R,定義為 二元組A (a,b)R B(c,d)當且僅當b<d 且 a<c,求集合S的一個最大子集滿足,子集中的關系R為全序關系。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM