Matematyka dyskretna 2/Wykład 2: Porządki Częściowe i twierdzenie Dilworth'a

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

<flash>file=Minmax poset2.swf|width=250|height=250</flash>

<div.thumbcaption>Diagram Hassego przykładowego porządku 𝐏0

<flash>file=Minmax poset chain antichain.swf|width=250|height=200</flash>

<div.thumbcaption>Łańcuch (a) oraz antyłańcuch (b) w posecie 𝐏0

<flash>file=Minmax poset width partition.swf|width=250|height=200</flash>

<div.thumbcaption>Antyłańcuch realizujący szerokość (a) oraz pokrycie łańcuchowe (b) posetu 𝐏0

Zbiór częściowo uporządkowany (poset) to para 𝐏=(X,), gdzie X jest zbiorem, zaś jest dwuargumentową relacją określoną na X, która dla dowolnie wybranych x,y,zX spełnia:

  • xx (zwrotność),
  • xy, yx implikuje x=y (antysymetria),
  • xy, yz implikuje xz (przechodniość).
Uwaga

Częściowy porządek wygodnie przedstawiać jest przy użyciu tzw. diagramu Hassego, który przedstawia się na płaszczyźnie 2 w następujący sposób:

  • Umieszczamy punkty obrazujące elementy zbioru X na płaszczyźnie,oznaczając je małymi kółkami.

Dla elementów x,yX, jeśli y<x, to punkt przypisany elementowi x jest powyżej punktu przypisanemu elementowi y.

  • Łączymy odcinkiem punkt xX z punktem yX, jeśli x jest następnikiem y, czyli y<x oraz nie istnieje zX, taki że y<z<x.

Łańcuch w zbiorze częściowo uporządkowanym 𝐏=(X,) to taki podzbiór C zbioru X, że dla dowolnych x,yX zachodzi:

  • xy oraz xy (liniowość).

Antyłańcuch w zbiorze częściowo uporządkowanym 𝐏=(X,) to taki podzbiór A zbioru X, że dla dowolnych x,yX zachodzi:

  • x≰y oraz x≰y (niezależność).

Szerokość posetu 𝐏=(X,) to maksymalny możliwy rozmiar antyłańcucha w 𝐏. Szerokość oznaczana będzie za pomocą Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf width}\!\left( \mathbf{P} \right)} .
W ogólności szerokość Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf width}\!\left( Y \right)} można zdefiniować dla dowolnego podzbioru YX, jako największy możliwy rozmiar antyłańcucha zawartego w Y.

Pokrycie łańcuchowe posetu 𝐏=(X,) to taka rodzina łańcuchów C1,Ck, że

C1Ck=X.

Twierdzenie 2.1 [R. P. Dilworth 1950]

Minimalna liczba łańcuchów pokrywających poset 𝐏 jest równa szerokości posetu 𝐏.

Dowód

Oczywiście liczba łańcuchów pokrywających poset nie może być mniejsza niż jego szerokość, bo każdy punkt w antyłańcuchu realizującym tę szerokość musi być pokryty innym łańcuchem.

Dowód implikacji odwrotnej przeprowadzimy indukcyjnie ze względu na liczność n posetu 𝐏=(P,). Niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle w={\sf width}\!\left( \mathbf{P} \right)} . Rozważmy maksymalny, w sensie inkluzji, łańcuch C zawarty w 𝐏. Po usunięciu łańcucha C szerokość posetu może zmniejszyć się co najwyżej o jeden. Dowód podzielimy więc na dwa przypadki:

  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf width}\!\left( P- C \right)=w-1}

Na mocy założenia indukcyjnego poset PC daje się pokryć w1 łańcuchami, które wobec tego wraz z C tworzą szukane pokrycie całego posetu 𝐏 za pomocą w.

  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf width}\!\left( P- C \right)=w}

Niech A bedzie antyłańcuchem realizującym szerokość zbioru PC, tzn. |A|=w. Połóżmy:


Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned U=\left\lbrace p\in P:\textrm{ istnieje }a\in A \textrm{ takie ,że }p\geq a \right\rbrace,\\ D=\left\lbrace p\in P:\textrm{ istnieje }a\in A \textrm{ takie, że }p\leq a \right\rbrace. \endaligned}


Jeśli U=P, to łańcuch C całkowicie zawiera się w U. Z definicji zbioru U wynika, że istnieje element a0A, który jest mniejszy od najmniejszego elementu łańcucha C, a tym samym od wszystkich elementów w C. Skoro APC, to a0∉C i w konsekwencji {a0}C jest łańcuchem istotnie większym od maksymalnego w sensie inkluzji łańcucha C. To pokazuje, że |U|<|P|. Podobnie możemy uzasadnić, że również |D|<|P|. Do obu zbiorów U,D możemy więc zastosować założenie indukcyjne, dostając ich pokrycia łańcuchowe


U=C1Cw,D=C1Cw.


Ponieważ ADU, to każdy element z A należy do jakiegoś łańcucha Ci i do jakiegoś łańcucha Cj. Z drugiej strony fakt, że A jest w-elementowym antyłańcuchem gwarantuje, że w każdym łańcuchu postaci Ci lub Cj jest jakiś element z A. Pozwala to na takie przenumerowanie łańcuchów Ci i Cj, by CiCj, tzn. że dla aA mamy aCi wtedy i tylko wtedy, gdy aCi. To z kolei oznacza, że każda suma CiCi jest łańcuchem. Oczywiście te nowe łańcuchy CiCi pokrywają zbiór DU. Zauważmy jednak, że DU=P, bo inaczej istniałby element pP nieporównywalny z żadnym elementem antyłańcucha A, czyli A{p} byłby antyłańcuchem istotnie większym niż maksymalny antyłańcuch A. W konsekwencji otrzymujemy pokrycie łańcuchowe


P=(C1C1)(CwCw)


całego zbioru P.

Pokrycie antyłańcuchowe posetu 𝐏=(X,) to taka rodzina antyłańcuchów A1,Ak, że


A1Ak=X.


Twierdzenie 2.2 [Dualne Twierdzenie Dilworth'a]]

Minimalna liczba antyłańcuchów pokrywających poset 𝐏=(P,) jest równa maksymalnej liczności łańcucha zawartego w 𝐏.

<flash>file=Minmax poset antichain partition.swf|width=250|height=250</flash>

<div.thumbcaption>Pokrycie antyłańcuchowe posetu 𝐏0

Dowód

Moc najdłuższego łańcucha oznaczmy przez h. Niech Ai będzie zbiorem elementów pP spełniających:

(*) w zbiorze p={xP:px}

najliczniejszy łańcuch jest mocy i.

Pokażemy, że każde Ai jest antyłańcuchem. Istotnie, gdyby dwa różne elementy p1,p2Ai były porównywalne, to możemy bez straty ogólności założyć, że p1<p2. Ponieważ p2Ai, to w zbiorze p2 jest łańcuch o liczności i.

Łańcuch ten jednak można by przedłużyć (od dołu) do liczniejszego łańcucha {p1}C2. To oczywiście przeczy temu, że p1Ai. Zatem istotnie każde Ai jest antyłańcuchem. Intuicyjnie antyłańcuchy Ai to kolejne piętra posetu 𝐏. Oczywiście każdy punkt pP musi być w którymś ze zbiorów A1,,Ah, bo p nie może zawierać łańcuchów liczniejszych niż h. Dostaliśmy więc następujące pokrycie antyłańcuchami:

P=A1Ah.

Oczywiście pokrycie to jest najmniej liczne, bo w każdym pokryciu każdy spośród h punktów najdłuższego łańcucha musi leżeć w innym antyłańcuchu.

Wniosek 2.3

Każdy zbiór częściowo uporządkowany o rs+1 elementach zawiera łańcuch o liczności r+1 lub antyłańcuch o liczności s+1.

Dowód

Niech 𝐏=(P,) będzie posetem, w którym każdy łańcuch jest liczności co najwyżej r, a każdy antyłańcuch jest liczności co najwyżej s. Dualne Twierdzenie Dilworth'a 2.2 dostarcza pokrycie antyłańcuchami


P=A1Ar,


gdzie rr jest mocą łańcucha o maksymalnej liczności. Ponieważ |Ai|s, to


|P|=|A1|++|Ar|rsrs.


Sprzeczność ta pokazuje, że jeśli 𝐏 ma co najmniej rs+1 elementów, to musi zawierać łańcuch o liczności r+1 lub antyłańcuch o liczności s+1.

Uwaga

Dowód wniosku 2.3 można równie dobrze przeprowadzić opierając się na Twierdzeniu Dilworth'a 2.1, co pozostawiamy jako ćwiczenie 3.

Jednym z ciekawszych wniosków z Twierdzenia Dilworth'a jest fakt, że każdy ciąg r2+1 liczb rzeczywistych zawiera podciąg monotoniczny o r+1 elementach. Pierwszy dowód tego twierdzenia przedstawili P. Erd{o}s oraz G. Szekres w 1939 roku. Poniżej przedstawione jest uogólnienie tego twierdzenia, którego uzasadnienie będzie korzystało z wniosku 2.3.

Twierdzenie 2.4

Każdy ciąg nrs+1 liczb rzeczywistych zawiera podciąg niemalejący o długości r+1 lub podciąg malejący o długości s+1.

Dowód

Niech A=(a1,,an) będzie ciągiem liczb rzeczywistych. Na parach postaci (i,ai), wprowadzamy relację częściowego porządku kładąc

(i,ai)(j,aj) wtedy i tylko wtedy, gdy ij oraz aiaj.

Łańcuchy w tym porządku, to nic innego jak podciągi niemalejące ciągu A, a antyłańcuchy to podciągi malejące ciągu A. Po tym utożsamieniu wystarczy powołać się na Wniosek 2.3.

Krata podzbiorów i twierdzenie Sperner'a.

<flash>file=Minmax poset 2X.swf|width=350|height=200</flash> <div.thumbcaption>Posety: Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{P}_\emptyset=\left( \mathscr{P}\!\left( \emptyset \right),\subseteq \right)} , Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{P}_{\left\lbrace a \right\rbrace}=\left( \mathscr{P}\!\left( \left\lbrace a \right\rbrace \right),\subseteq \right)} , Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{P}_{\left\lbrace a,b \right\rbrace}=\left( \mathscr{P}\!\left( \left\lbrace a,b \right\rbrace \right),\subseteq \right)} ,

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{P}_{\left\lbrace a,b,c \right\rbrace}=\left( \mathscr{P}\!\left( \left\lbrace a,b,c \right\rbrace \right),\subseteq \right)}

Dla dowolnego zbioru X rodzina Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathscr{P}\!\left( X \right)} jego podzbiorów wraz z inkluzją tworzy zbiór częściowo uporządkowany Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} .

Rodzina Sperner'a podzbiorów zbioru X to antyłańcuch w posecie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} .

Starano się oszacować liczność rodzin Spernera, czyli znaleźć szerokość posetu Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} . Poniższe twierdzenie pomaga odpowiedzieć na to pytanie.

Twierdzenie 2.5 [K. Yamamoto 1954; L. D. Meshalkin 1963; D. Lubell 1966]

Niech {A1,,Am} będzie rodziną Spernera podzbiorów zbioru X. Wówczas


i=1m(|X||Ai|)11.


Dowód [D. Lubell]

Niech n=|X|. W posecie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} każdy maksymalny łańcuch


=C0C1Cn1Cn=X


musi spełniać |Cj|=j. Zbiór C1 może być wybrany na n sposobów, z kolei C2 na n1 sposobów. W ogólności Cj może być wybrany na nj+1 sposobów. Czyli łącznie jest n! różnych łańcuchów maksymalnych.

Z drugiej strony policzymy ile jest łańcuchów, w których występuje konkretny zbiór Ai z rodziny Spernera, tzn.


=C0C1C|Ai|=AiCn1Cn=X


Ponieważ singleton C1 musi zawierać się w Ai, może być wybrany na |Ai| sposobów. Tak więc C2 może być wybrane już jedynie na |Ai|1 sposobów i tak dalej. A zatem różnych łańcuchów postaci


=C0C1C|Ai|=Ai


jest |Ai|!. W analogiczny sposób otrzymujemy, że różnych łańcuchów postaci


Ai=C|Ai|C|Ai|+1Cn=X


jest (n|Ai|)!. Podsumowując, liczba maksymalnych łańcuchów, w których występuje Ai wynosi |Ai|!(n|Ai|)!.

Ponieważ {A1,,Am} jest antyłańcuchem, to dla ij w łańcuchu nie mogą wystąpić równocześnie Ai i Aj. Zliczając teraz maksymalne łańcuchy przechodzące przez któreś Ai, możemy pominąć jakiś łańcuch maksymalny. Nie mniej jednak mamy


i=1m|Ai|!(n|Ai|)!n!.


To w konsekwencji daje


i=1m1(n|Ai|)=i=1m|Ai|!(n|Ai|)!n!1.


Przykład

Oczywiście, dla ustalonego k rodzina k-elementowych podzbiorów jest rodziną Spernera. Ponieważ wartość (nk) jest maksymalna dla Parser nie mógł rozpoznać (nieznana funkcja „\lfloorn”): {\displaystyle k=\left/n\lfloorn/2\right\rfloor} , to n-elementowy podzbiór ma rodzinę Spernera o mocy Parser nie mógł rozpoznać (nieznana funkcja „\lfloorn”): {\displaystyle {n \choose \left/n\lfloorn/2\right\rfloor}} . Następne twierdzenie pokazuje, że jest to najliczniejsza rodzina Spernera.

Twierdzenie 2.6 [E. Sperner 1928]

Jeśli Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathscr{A}} jest rodziną Spernera podzbiorów zbioru X, to


Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert \mathscr{A} \right\vert\leq{\left\vert X \right\vert\choose\left\lfloor\left\vert X \right\vert/2\right\rfloor}. }


Dowód

Niech n=|X| oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathscr{A}=\left\lbrace A_1,\ldots,A_m \right\rbrace} . Wartość (nk) jest maksymalna dla Parser nie mógł rozpoznać (błąd składni): {\displaystyle k=\left\lfloorn/2\right\rfloor} . Tak więc (n|Ai|)(nn/2). Na mocy Twierdzenia 2.5 otrzymujemy:


Parser nie mógł rozpoznać (błąd składni): {\displaystyle m\frac{1}{{n \choose \left\lfloorn/2\right\rfloor }}\leq\sum_{i=1}^{m}{\frac{1}{{n\choose\left\vert A_i \right\vert}}}\leq 1, }


skąd natychmiast


Parser nie mógł rozpoznać (błąd składni): {\displaystyle m\leq{n\choose\left\lfloorn/2\right\rfloor}. }


Uwaga

W posecie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} dowolne dwa jego elementy Parser nie mógł rozpoznać (błąd składni): {\displaystyle A,B\in\mathscr{P}\!\left( X \right)} spełniają:

  • AB jest największym wspólnym ograniczeniem dolnym dla A i B,
  • AB jest największym wspólnym ograniczeniem górnym dla A i B.

W takim razie dowolne dwa elementy posetu Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( \mathscr{P}\!\left( X \right),\subseteq \right)} mają najmniejsze ograniczenie górne oraz największe ograniczenie dolne. Posety o tej własności nazywane są kratami.

Krata to częściowy porządek 𝐏=(P,), w którym dla dowolnych a,bP istnieją

  • kres dolny, czyli największe ograniczenie dolne wspólne dla a i b.

Kres dolny oznaczać bedziemy przez ab.

  • kres górny, czyli najmniejsze ograniczenie górne wspólne dla a i b.

Kres dolny oznaczać bedziemy przez ab.

Przykład

Rozważmy zbiór liczb naturalnych oraz relacje zdefiniowaną w następujący sposób


abwtedyitylkowtedy,gdya dzieli bdla a,b.


Relacja jest zwrotna, antysymetryczna, i przechodnia. Tak więc para (,) tworzy częściowy porządek. Jako ćwiczenie 6 pozostawiamy do udowodnienia, że (,) jest kratą, oraz że kres dolny dwu liczb naturalnych to ich największy wspólny dzielnik, a kres ich kres górny to najmniejsza wspólna wielokrotność.