Matematyka dyskretna 1/Wykład 15: Metody algebraiczne w teorii grafów

Z Studia Informatyczne
Wersja z dnia 20:59, 21 sie 2006 autorstwa Arek (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

{thm}{Twierdzenie} {obs}[thm]{Obserwacja} {con}[thm]{Wniosek}

{article} {../makraB}

Metody algebraiczne w teorii grafów

Graf regularny stopnia r to graf, w którym wszystkie wierzchołki mają stopień r.
Graf taki nazywany jest także r-regularnym.

Maksymalny stopień wierzchołka w grafie 𝐆, oznaczany przez Δ(𝐆) to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \Delta\left( \mathbf{G} \right):=\max\left\lbrace {\sf deg}\ v:\ v\in{\sf V}\!\left(G\right) \right\rbrace. }

Macierz sąsiedztwa Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} grafu prostego 𝐆=({v1,,vn},E) to zero-jedynkowa macierz aij rozmiaru n×n, gdzie

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle a_{ij}= \left\lbrace \begin{array} {ll} 1, & \textrm{jeżeli}\ v_i v_j\in E,\\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. }
Uwaga [Uzupelnij]

Macierz sąsiedztwa grafu nieskierowanego jest symetryczna.

Przykład [Uzupelnij]

[!h]

{metalg_graph} {Graf prosty 𝐆0 i graf skierowany 𝐆1. [Rysunek z pliku: metalggraph.eps]}

Na rysunku Uzupelnic pict metalg graph| przedstawiono graf prosty 𝐆0 o wierzchołkach v0,,v5 oraz graf skierowany 𝐆1 o wierzchołkach u1,,u5. Macierze sąsiędztwa grafów 𝐆0 oraz 𝐆1 wyglądają następująco:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G}_0 \right)=\left[ \begin{array} {ccccc} 0 & 1 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 0 \\ 1 & 1 & 1 & 0 & 1 \\ 0 & 1 & 0 & 1 & 0 \end{array} \right],\quad {\sf A}\left( \mathbf{G}_1 \right)=\left[ \begin{array} {ccccc} 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right]. }

Domknięcie przechodnie grafu skierowanego 𝐆, to graf Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf TC}\left( \mathbf{G} \right)} taki, że:

  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf V}\!\left({\sf TC}\left( \mathbf{G} \right)\right)={\sf V}\!\left(\mathbf{G}\right)} , oraz
  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left( v,w \right)\in{\sf E}\!\left({\sf TC}\left( \mathbf{G} \right)\right)}

wtedy i tylko wtedy, gdy w grafie 𝐆 istnieje skierowana marszruta z v do w.

Twierdzenie [Uzupelnij]

Niech 𝐆=({v1,,vn},E) będzie grafem skierowanym. Wtedy liczba skierowanych marszrut z vi do vj jest dana elementem aij macierzy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)^1+{\sf A}\left( \mathbf{G} \right)^2+\ldots+{\sf A}\left( \mathbf{G} \right)^{\left( n-1 \right)}. }

Dowód [Uzupelnij]

Wystarczy pokazać, że

(*)
Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a'_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)^k} jest macierzą,

w której a'ij jest liczbą skierowanych marszrut z vi do vj o długości k.

Dowód własności (*) przeprowadzimy indukcją względem k. Macierz Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)^1} jest macierzą sąsiedztwa, co natychmiast daje (*) dla k=1. Niech teraz k>1. Oczywiście

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)^k = {\sf A}\left( \mathbf{G} \right)^{k-1}\cdot{\sf A}\left( \mathbf{G} \right). }

Jeśli więc Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)} , Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a'_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)^k} , oraz Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a''_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)^{k-1}} , to

a'ij=a'i1a1j++a'inanj.

Wartość a'il to liczba wszystkich skierowanych marszrut z vi do vl o długości k1. Tak więc iloczyn a'ilalj jest równy liczbie wszystkich skierowanych k-elementowych marszrut mających postać vivlvj, czyli takich skierowanych marszrut z vi do vj o k elementach, których przedostatni wierzchołek to vl. Sumując te wartości po wszystkich l, czyli dopuszczając dowolny wierzchołek vl jako przedostatni, otrzymujemy liczbę wszystkich k-elementowych skierowanych marszrut z vi do vj. To kończy dowód (*), a zatem i całego twierdzenia.

Przykład [Uzupelnij]

Grafy 𝐆2=({u1,,u5},E) i 𝐆3=({u1,,u5},E) zostały przedstawione na rysunku Uzupelnic pict metalg domk|.

[!h]

{metalg_domk} {Graf 𝐆2 (a) oraz jego przechodnie domknięcie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{G}_3={\sf TC}\left( \mathbf{G}_2 \right)} (b) [Rysunek z pliku: metalgdomk.eps]}

Macierz sąsiedztwa grafu 𝐆2 to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G}_2 \right)= \left[ \begin{array} {ccccc} 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right] }

Ponadto

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \sum_{i=1}^{4}{{\sf A}\left( \mathbf{G}_2 \right)^i}=\left[ \begin{array} {ccccc} 1& 3& 0& 2& 3\\ 2& 3& 0& 3& 5\\ 4& 5& 0& 4& 7\\ 3& 5& 0& 3& 6\\ 0& 0& 0& 0& 0 \end{array} \right]. }

W macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a'_{ij} \right\rangle =\sum_{i=1}^{4}{{\sf A}\left( \mathbf{G}_2 \right)^i}} wartość a'ij mówi o liczbie różnych skierowanych marszrut z wierzchołka vi do vj o długości co najwyżej 4. Dla przykładu a34=4 i rzeczywiście u3u4, u3u4u2u4, u3u1u2u4, i u3u4u1u2u4 są wszystkimi skierowanymi marszrutami jakie można znaleźć w grafie 𝐆2 prowadzące z wierzchołka v3 do v4 o długości co najwyżej 4. Z kolei macierz sąsiedztwa dla przechodniego domknięcia grafu 𝐆2 to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( {\sf TC}\left( \mathbf{G}_2 \right) \right)=\left[ \begin{array} {ccccc} 0 & 1 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right]. }

Warto zaobserwować oczywisty fakt, że macierz Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( {\sf TC}\left( \mathbf{G}_2 \right) \right)} można równie dobrze uzyskać z macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \sum_{i=1}^{4}{{\sf A}\left( \mathbf{G}_2 \right)^i}} przez zamianę każdej niezerowej wartości na 1 oraz wyzerowanie przekątnej.

Wniosek [Uzupelnij]

Dla grafu 𝐆 o wierzchołkach v1,,vn i macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)^1+{\sf A}\left( \mathbf{G} \right)^2+\ldots+{\sf A}\left( \mathbf{G} \right)^{\left( n-1 \right)}} , jeśli tylko ij, to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle a_{ij}>0\quad \textrm{wtedy i tylko wtedy, gdy}\quad \left( v_i,v_j \right)\in{\sf E}\!\left({\sf TC}\left( \mathbf{G} \right)\right). }

Macierz incydencji Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G} \right)} grafu 𝐆=({v1,,vn},{e1,,em}) to zero-jedynkowa macierz bij rozmiaru n×m, gdzie

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle b_{ij}=\left\lbrace\begin{array} {ll} 1, & \textrm{jeśli wierzchołek}\ v_i\ \textrm{jest incydentny z krawędzią}\ e_j,\\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. }

Zorientowana macierz incydencji Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf C}\left( \mathbf{G} \right)} grafu prostego to macierz cij, rozmiaru n×m, otrzymana z macierzy incydencji Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G} \right)} poprzez zastąpienie w każdej kolumnie jednej z dwu jedynek przez 1(minus jeden).

Przykład [Uzupelnij]

[!h]

{metalg_graph_incyd} {Graf prosty 𝐆4. [Rysunek z pliku: metalggraphincyd.eps]}

Dla grafu 𝐆4=({v1,,v5},{e1,,e7}) przedstawionego na rysunku Uzupelnic pict metalg graph incyd| macierz incydencji oraz zorientowana macierz incydencji, to odpowiednio:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G}_4 \right)=\left[ \begin{array} {ccccccc} 1 & 0 & 1 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right],\quad {\sf C}\left( \mathbf{G}_4 \right)=\left[ \begin{array} {ccccccc} -1 & 0 & 1 & -1 & 0 & 0 & 0 \\ 1 & -1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 1 & -1 & -1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right]. }

Obserwacja [Uzupelnij]

 

  • Dla macierzy incydencji bij

oraz zorientowanej macierzy incydencji Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle c_{ij} \right\rangle ={\sf C}\left( \mathbf{G} \right)} zachodzi

bij=|cij|dla i=1,,n oraz j=1,,m.
  • W zorientowanej macierzy incydencji cij mamy:
c1j++cnj=0dla j=1,,m.

Macierz stopni Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf D}\left( \mathbf{G} \right)} grafu prostego 𝐆=({v1,,vn},E) to diagonalna macierz dij rozmiaru n×n, gdzie

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle d_{ij}=\left\lbrace\begin{array} {ll} {\sf deg}\ v_i, & \textrm{jeżeli}\ i=j,\\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. }

Przykład [Uzupelnij]

Dla grafu 𝐆4 przedstawionego na rysunku Uzupelnic pict metalg graph incyd| odpowiednia macierz stopni to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf D}\left( \mathbf{G}_4 \right)=\left[ \begin{array} {ccccc} 3 & 0 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 \\ 0 & 0 & 2 & 0 & 0 \\ 0 & 0 & 0 & 4 & 0 \\ 0 & 0 & 0 & 0 & 2 \end{array} \right]. }

Twierdzenie [Uzupelnij]

Jeśli 𝐆=(V,E) jest grafem prostym, to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G} \right)\cdot {\sf B}\left( \mathbf{G} \right)^T= {\sf D}\left( \mathbf{G} \right)+ {\sf A}\left( \mathbf{G} \right), }

gdzie Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G} \right)^T} jest macierzą transponowaną macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf B}\left( \mathbf{G} \right)} .

Przykład [Uzupelnij]

Policzmy macierze opisane w Twierdzeniu [[##th B*Bt=D+A|Uzupelnic th B*Bt=D+A|]] dla grafu 𝐆4 z rysunku Uzupelnic pict metalg graph incyd|. Tak więc

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned {\sf B}\left( \mathbf{G}_4 \right)\cdot{\sf B}\left( \mathbf{G}_4 \right)^T&=&\left[ \begin{array} {ccccccc} 1 & 0 & 1 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right]\cdot \left[ \begin{array} {ccccccc} 1&1&0&0&0\\ 0&1&0&0&1\\ 1&0&1&0&0\\ 1&0&0&1&0\\ 0&1&0&1&0\\ 0&0&0&1&1\\ 0&0&1&1&0 \end{array} \right]\\ &=&\left[ \begin{array} {ccccc} 3 & 1 & 1 & 1 & 0 \\ 1 & 3 & 0 & 1 & 1 \\ 1 & 0 & 2 & 1 & 0 \\ 1 & 1 & 1 & 4 & 1 \\ 0 & 1 & 0 & 1 & 2 \end{array} \right]\ =\ {\sf D}\left( \mathbf{G}_4 \right)+ {\sf A}\left( \mathbf{G}_4 \right). \endaligned}

Dowód [Uzupelnij]

[Dowód Twierdzenia [[##th B*Bt=D+A|Uzupelnic th B*Bt=D+A|]].] Niech mij będzie elementem w i-tym wierszu oraz w j-tej kolumnie macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle M={\sf B}\left( \mathbf{G} \right)\cdot {\sf B}\left( \mathbf{G} \right)^T} . Z definicji M wynika, że

mij=bi1bj1++bi|E|bj|E|.

Rozważmy dwa przypadki:

  • ij.

Wtedy bikbjk=1 jest równoważne temu, że krawędź ek łączy wierzchołek vi z vj. Tak więc mij=1 wtedy i tylko wtedy, gdy vi sąsiaduje z vj.

  • i=j.

Wtedy bikbjk=1 jest równoważne temu, że krawędź ek jest incydentna z vi. Sumując wartości bikbik dla k=1,,|E| uzyskujemy liczbę krawędzi incydentnych do vi, czyli stopień Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf deg}\ v_i} .

Twierdzenie [Uzupelnij]

Niech 𝐆 będzie grafem skierowanym o n wierzchołkach, a macierz M o rozmiarach (n1)×(n1), będzie minorem (podmacierzą) zorientowanej macierzy incydencji Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf C}\left( \mathbf{G} \right)} , w którym kolumny odpowiadają krawędziom z pewnego podzbioru Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf E}\!\left(M\right)} zbioru Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf E}\!\left(\mathbf{G}\right)} . Wtedy

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{H}=\left( {\sf V}\!\left(\mathbf{G}\right),{\sf E}\!\left(M\right) \right)\ \textrm{jest drzewem wtedy i tylko wtedy, gdy } MParser nie mógł rozpoznać (błąd składni): {\displaystyle jest nieosobliwa.} }

Dowód [Uzupelnij]

Niech w będzie wierzchołkiem odpowiadającym jedynemu wierszowi pominiętemu w minorze M.

Niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathbf{H}=\left( {\sf V}\!\left(\mathbf{G}\right),{\sf E}\!\left(M\right) \right)} będzie drzewem. Dla pokazania, że wtedy macierz M jest nieosobliwa, dokonamy takiej permutacji wierszy i kolumn macierzy M, by uzyskana w ten sposób macierz M=m'ij była trójkątna i miała wyłącznie niezerowe elementy na przekątnej. Zostanie to uzyskane przez takie ponumerowanie wierzchołków i krawędzi grafu 𝐇, by w nowej macierzy

m'ij0 wtedy i tylko wtedy, gdy wierzchołek vi jest incydentny z ej.

Przypomnijmy, że odległość pomiędzy dwoma wierzchołkami x i y w grafie to liczność najkrótszej ścieżki od x do y. Ponumerujmy wierzchołki z Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf V}\!\left(\mathbf{G}\right)} w taki sposób, że jeśli vi jest bliżej wierzchołka w, niż vj to ij. Numeracji takich może być wiele, ale dla nas nie ma znaczenia, którą z nich wybierzemy i ustalimy dla dalszej części dowodu. Zauważmy jedynie, że w każdej takiej numeracji wierzchołek w znajduje się na początku. Ponieważ graf 𝐇 jest drzewem, to między wierzchołkiem w i dowolnym vi istnieje dokładnie jedna ścieżka. Oznaczmy ją przez Pi=wvk1vksvi. Oczywiście, dla ij ostanie krawędzie w ścieżkach Pi i Pj są różne. Tę ostatnią krawędź ścieżki Pi oznaczmy, tak jak na rysunku Uzupelnic pict metalg tree div|, indeksem i, czyli ei=vksvi.

[!h]

{metalg_tree_div} {Przykładowe drzewo 𝐇 wraz z zaznaczoną ścieżką Pi. [Rysunek z pliku: metalgtreediv.eps]}

Ponieważ w drzewie 𝐇 jest dokładnie n1 krawędzi, przypisanie wierzchołkowi vi krawędzi ei jest bijekcją między Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf V}\!\left(\mathbf{G}\right)-\left\lbrace w \right\rbrace} a Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf E}\!\left(\mathbf{H}\right)} . W kolumnie j0 macierzy M, odpowiadającej krawędzi ej0=vj1vj0, są jedynie dwa niezerowe elementy -- jeden leży w wierszu j0, odpowiadającemu wierzchołkowi vj0, a drugi w wierszu j1. Skoro krawędź ej0 ma ten sam numer co wierzchołek vj0, wierzchołek vj1 musi leżeć na ścieżce z w do vj0. Tym samym vj1 jest bliżej w niż vj0, a zatem j1<j0. Macierz M jest więc macierzą trójkątną górną z niezerową przekątną, co kończy dowód.

Załóżmy teraz, że 𝐇 nie jest drzewem. Ponieważ 𝐇 ma jedynie n1 krawędzi, to zależność miedzy liczbą wierzchołków, krawędzi i składowych spójnych daje, że 𝐇 ma co najmniej 2 składowe. Niech wierzchołki vi1,,vil tworzą składową, w której nie występuje w. Jeżeli, w ip-tym wierszu i r-tej kolumnie macierzy M jest niezerowy element x=±1, to wierzchołek vip jest incydentny z krawędzią er=vipvis. Wierzchołek vis będący drugim końcem krawędzi er leży oczywiście w tej samej składowej co vip, a zatem macierz M ma liczbę x w r-tej kolumnie i w is-tym wierszu. Sumując teraz wiersze macierzy M o indeksach i1,,il otrzymujemy wektor zerowy. To oczywiście oznacza, że macierz M jest osobliwa.

Wniosek [Uzupelnij]

W spójnym grafie prostym 𝐆 o n wierzchołkach rząd macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf C}\left( \mathbf{G} \right)} wynosi n1.

Wielomian charakterystyczny grafu 𝐆 to wielomian charakterystyczny macierzy sąsiedztwa Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} .

Permanent grafu 𝐆 to permanent macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} , czyli

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf per}\ {\sf A}\left( \mathbf{G} \right) = \sum_{\sigma}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}, }

gdzie suma σ rozciąga się po wszystkich permutacjach σ, zaś aij oznacza element macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} .

Wyznacznik grafu 𝐆 to wyznacznik macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} , czyli

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf det}\ {\sf A}\left( \mathbf{G} \right) = \sum_{\sigma}(-1)^{\mbox{\sf sgn}(\sigma)}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}. }

Algebraiczne pojęcie permanentu macierzy okazuje się użytecznym przy badaniu skojarzeń w grafie. Rozważaliśmy już skojarzenia w grafach dwudzielnych.

Skojarzenie w grafie 𝐆=(V,E) to taki podzbiór ME, że żadne jego dwie krawędzie nie są incydentne z tym samym wierzchołkiem.

Skojarzenie doskonałe to skojarzenie wykorzystujące wszystkie wierzchołki grafu.

[!h]

{metalg_matching} {Skojarzenie niedoskonałe (a) i doskonałe (b) [Rysunek z pliku: metalgmatching.eps]}

Twierdzenie [Uzupelnij]

Prosty graf dwudzielny 𝐆=(V1V2,E) ma skojarzenie doskonałe wtedy i tylko wtedy, gdy 𝐆 ma niezerowy permanent.

Dowód [Uzupelnij]

Niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\langle a_{ij} \right\rangle ={\sf A}\left( \mathbf{G} \right)} . Dowód ma dwa etapy. Najpierw pokażemy, że:

  1. Permanent grafu 𝐆 jest niezerowy wtedy i tylko wtedy, gdy

istnieje permutacja ρ0 liczb 1,,n taka, że aiρ0(i)=1 dla i=1,,n.

Istotnie, każdy składnik sumy dającej permanent grafu 𝐆

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf per}\ {\sf A}\left( \mathbf{G} \right) = \sum_{\sigma}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}. }

jest zawsze nieujemny. A zatem cała suma będzie dodatnia wtedy i tylko wtedy, gdy choć jeden jej składnik będzie niezerowy. To z kolei jest równoważne temu, że dla choć jednej permutacji ρ0 zachodzi

aiρ0(i)=1

dla wszystkich i=1,,n.

  1. Graf 𝐆 ma doskonałe skojarzenie ME wtedy i tylko wtedy,

gdy istnieje permutacja ρ0 liczb 1,,n taka, że aiρ0(i)=1 dla i=1,,n.

Istotnie, w skojarzeniu doskonałym każdy wierzchołek jest incydentny z dokładnie jedną krawędzią. A zatem skojarzenie M wyznacza permutację ρ0 poprzez

ρ0(i)=jwtedyitylkowtedy,gdyvivjM.

Nadto aiρ0(i)=1 dla wszystkich i=1,,n.

Z drugiej strony, jeśli (i1,,ik) jest cyklem permutacji ρ0, tzn.

ρ0(i1)=i2,ρ0(i2)=i3,,ρ0(ik1)=ik,ρ0(ik)=i1,

to założona równość aiρ0(i)=1 mówi, że cyklowi temu odpowiada cykl vi1vi2vikvi1 w grafie 𝐆. Oczywiście w grafie dwudzielnym cykl taki musi mieć parzystą liczbę wierzchołków, tak więc zbiór krawędzi

{vi1vi2,vi3vi4,,vik1vik}

tworzy doskonałe skojarzenie zbioru wierzchołków {vi1,vi2,vi3,vik1,vik}. Po zsumowaniu skojarzeń odpowidającym wszystkim cyklom permutacji ρ0 otrzymamy skojarzenie doskonałe w grafie 𝐆.

Przykład [Uzupelnij]

Rozważmy graf 𝐆5=({v1,v2,v3,v4,v5,v6},E) przedstawiony na rysunku Uzupelnic metalg graf g5|.

[!h]

{metalg_graf_g5} {Graf 𝐆5. [Rysunek z pliku: metalggrafg5.eps]}

Macierz sąsiedztwa Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G}_5 \right)} to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G}_5 \right)=\left[ \begin{array} {cccccc} 0&0&0&1&1&0\\ 0&0&0&1&0&0\\ 0&0&0&1&1&1\\ 1&1&1&0&0&0\\ 1&0&1&0&0&0\\ 1&1&1&0&0&0 \end{array} \right]. }

Permanent Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf per}\ \mathbf{G}_5 = 1} , tak więc istnieje skojarzenie doskonałe M. Jedno z takich skojarzeń, przedstawione na rysunku Uzupelnic metalg graf g52|, odpowiada wyróżnionym elementom macierzy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G}_5 \right)=\left[ \begin{array} {cccccc} 0&0&0&1&\mathbf{\underline{1}}&0\\ 0&0&0&\mathbf{\underline{1}}&0&0\\ 0&0&0&1&1&\mathbf{\underline{1}}\\ 1&\mathbf{\underline{1}}&1&0&0&0\\ \mathbf{\underline{1}}&0&1&0&0&0\\ 0&0&\mathbf{\underline{1}}&0&0&0 \end{array} \right]. }

[!h]

{metalg_graf_g52} {Skojarzenie doskonałe w grafie 𝐆5. [Rysunek z pliku: metalggrafg52.eps]}

Przy badaniu kolorowań grafów przydatne okazuje się inne pojęcie algebraiczne.

Wartość własna grafu 𝐆 to wartość własna macierzy sąsiedztwa Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} .

Obserwacja [Uzupelnij]

Macierz sąsiedztwa Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} jest rzeczywista i symetryczna, zatem wszystkie jej wartości własne są rzeczywiste i istnieje baza ortogonalna złożona z jej wektorów własnych.

Dla grafu prostego 𝐆 przyjmujemy oznaczenia:

  • λmax(𝐆) na maksymalną wartość własną macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} ,
  • λmin(𝐆) na minimalną wartość własną macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} .

Obserwacja [Uzupelnij]

Wartości własne grafu 𝐆 są, co do wartości bezwzględnej, nie większe niż maksymalny stopień wierzchołków grafu 𝐆, tzn.

|λmax(𝐆)|Δ(𝐆).

Dowód [Uzupelnij]

Niech |𝐆|=n oraz x=x1,,xn będzie niezerowym wektorem własnym macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)=\left\langle a_{ij} \right\rangle } o wartości własnej λmax(𝐆). Bez straty ogólności można założyć, że |xk|=maxi=1,,n|xi|=1. Oszacowanie modułu k-tej współrzędnej wektora Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)\cdot x=\lambda_{max}\!\left( \mathbf{G} \right)\cdot x} daje nierówność:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned \left\vert \lambda_{max}\!\left( \mathbf{G} \right) \right\vert &=&\left\vert \lambda_{max}\!\left( \mathbf{G} \right)x_k \right\vert\\ &=&\left\vert a_{k1}x_1+\ldots+a_{kn}x_n \right\vert\\ &\leq&a_{k1}\left\vert x_1 \right\vert+\ldots+a_{kn}\left\vert x_n \right\vert\\ &\leq&a_{k1}+\ldots+a_{kn}\\ &=&{\sf deg}\ x_k\ \leq\ \Delta\left( \mathbf{G} \right). \endaligned}

Dowód następnych dwu obserwacji pozostawiamy jako ćwiczenia [ex][ex max(G)=deg(G)] i [ex][ex -deg(G)].

Obserwacja [Uzupelnij]

W grafie prostym 𝐆 mamy λmax(𝐆)=Δ(𝐆) wtedy i tylko wtedy, gdy któraś spójna składowa grafu 𝐆 jest grafem regularnym stopnia Δ(𝐆).

Obserwacja [Uzupelnij]

W spójnym grafie prostym 𝐆 liczba Δ(𝐆) jest wartością własną macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} wtedy i tylko wtedy, gdy 𝐆 jest regularnym grafem dwudzielnym stopnia Δ(𝐆).

Twierdzenie [Uzupelnij]

[wzór Hoffman'a]

W grafie regularnym 𝐆 stopnia r zachodzi

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \alpha\left( \mathbf{G} \right)\leq\frac{\left\vert {\sf V}\!\left(\mathbf{G}\right) \right\vert\cdot\lambda_{min}\!\left( \mathbf{G} \right)}{\lambda_{min}\!\left( \mathbf{G} \right)-r}, }

gdzie α(𝐆) oznacza największy możliwy rozmiar indukowanej antykliki w grafie 𝐆.

Dowód [Uzupelnij]

Niech Parser nie mógł rozpoznać (błąd składni): {\displaystyle n=\left\vert {\sf V}\!\left(\mathbf{G}\right) \right\vert} oraz

Parser nie mógł rozpoznać (błąd składni): {\displaystyle U:={\sf A}\left( \mathbf{G} \right)-\lambda_{min}\!\left( \mathbf{G} \right)\cdot I - \left( r-\lambda_{min}\!\left( \mathbf{G} \right) \right)\cdot n^{-1}\cdot J, }

gdzie I jest macierzą diagonalną rozmiaru n×n, która na przekątnej ma jedynki, a J jest macierzą rozmiaru n×n w całości wypełnioną jedynkami. Ponadto niech wektor x=xi będzie funkcją charakterystyczną najliczniejszego zbioru niezależnego Parser nie mógł rozpoznać (błąd składni): {\displaystyle X\subseteq{\sf V}\!\left(\mathbf{G}\right)} takiego, że 𝐆|X jest antykliką. Oznacza to, że

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle x_i=\left\lbrace \begin{array} {ll} 1, & \textrm{jeśli}\ v_i\in X,\\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. }

Wtedy Parser nie mógł rozpoznać (błąd składni): {\displaystyle y={\sf A}\left( \mathbf{G} \right)\cdot x} jest funkcją charakterystyczną zbioru sąsiadów wierzchołków w X, czyli

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle y_i=\left\lbrace \begin{array} {ll} 1, & \textrm{jeśli}\ v_i\notin X,\\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. }

To z kolei daje, że

Parser nie mógł rozpoznać (błąd składni): {\displaystyle x^T\cdot{\sf A}\left( \mathbf{G} \right)\cdot x=x^T\cdot y=0 }

i w konsekwencji

xTUx=λmin(𝐆)|x|(rλmin(𝐆))n1|x|2.

Uzasadnimy teraz, że xTUx0. Dla j=[1,1,,1]T mamy:

Uj = rjλmin(𝐆)j(rλmin(𝐆))j = 0.

Z kolej każdy inny wektor własny z macierzy Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf A}\left( \mathbf{G} \right)} o wartości własnej λ, który jest prostopadły do j spełnia

Uz = (λλmin(𝐆))z,

przy czym oczywiście λλmin(𝐆)0. Oznacza to, że wszystkie wartości własne macierzy U są nieujemne. Niech więc u1,,un będzie ortogonalną bazą złożoną z wektorów własnych macierzy U, a λ1,,λn będą odpowiadającymi im wartościami własnymi. Niech ponadto x=b1u1++bnun będzie rozkładem wektora x w tej bazie. Wtedy:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned x^T\cdot U\cdot x &=& x^T\cdot\left( b_1\cdot\lambda_1\cdot u_1+\ldots+b_n\cdot\lambda_n\cdot u_n \right)\\ &=& b_1^2\cdot\lambda_1+\ldots+b_n^2\cdot\lambda_n\ \geq\ 0. \endaligned}

W konsekwencji

0λmin(𝐆)|x|(rλmin(𝐆))n1|x|2.

Ponieważ |x|=α(𝐆) a Parser nie mógł rozpoznać (błąd składni): {\displaystyle n=\left\vert {\sf V}\!\left(\mathbf{G}\right) \right\vert} , to ta ostatnia jest innym zapisem dowodzonej nierówności.

Wniosek [Uzupelnij]

W regularnym grafie 𝐆 zachodzi

χ(𝐆)1λmax(𝐆)λmin(𝐆).

Dowód [Uzupelnij]

Ponieważ podział zbioru wierzchołków Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\sf V}\!\left(\mathbf{G}\right)} na rozłączne podzbiory V1,,Vk indukujące antykliki, jest równoważny z kolorowaniem grafu 𝐆 przy użyciu k kolorów, to

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert {\sf V}\!\left(\mathbf{G}\right) \right\vert \leq \chi\!\left( \mathbf{G} \right)\cdot \alpha\left( \mathbf{G} \right). }

Jeśli teraz r jest stopniem regularności grafu 𝐆 to Twierdzenie Uzupelnic th Hoffman| daje więc

χ(𝐆)λmin(𝐆)rλmin(𝐆).

Ponieważ graf 𝐆 jest r-regularny, to na mocy Obserwacji [[##obs max(G)=deg(G)|Uzupelnic obs max(G)=deg(G)|]] mamy r=λmax(𝐆), co pozwala zakończyć dowód.