Zaawansowane algorytmy i struktury danych/Ćwiczenia 8: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Sank (dyskusja | edycje)
Nie podano opisu zmian
 
m Zastępowanie tekstu – „ </math>” na „</math>”
 
(Nie pokazano 4 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
== Zadanie 1 ==
== Zadanie 1 ==
{{kotwica|zadanie 1|}}
{{kotwica|zadanie 1|}}
Pokaż, że każdy graf <math>G</math> może zostać zanurzony w grafie <math>G'</math> rozpiętym na co najwyżej <math>3|V(G)|</math> wierzchołkach tak, aby dla każdego skojarzenia <math>M</math> w <math>G</math> istniało dokładnie jedno doskonałe skojarzenie <math>F</math> takie, że <math>F \cap E(G) =M</math>. Czy jeżeli <math>G</math> jest zewnętrznie planarny, to <math>G'</math> może być planarny?


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Graf <math>G'</math> konstruujemy z grafu <math>G</math> poprzez dodanie do każdego wierzchołka <math>v_i</math> dla <math>1 \le i \le n</math>dwa dodatkowe wierzchołki <math>v_i'</math> i <math>v_i''</math> połączone krawędziami <math>v_iv_i'</math>, <math>v_iv_i''</math> oraz <math>v_i'v_i''</math>. Następnie dodajemy krawędzie <math>v_i''v_{i+1}'</math> dla <math>1 \le i \le n-1</math>. Jeżeli <math>n</math> jest nieparzyste to usuwamy wierzchołek <math>v_n''</math>.


Konstrukcja ta została przedstawiona na rysunku poniżej.
[[Grafika:zasd_maximum_matchings.png|500px|center]]
Łatwo teraz zauważyć, że dowolne skojarzenie <math>M</math> w grafie <math>G</math> daje sie rozszerzyć na doskonałe skojarzenie w grafie <math>G'</math>.
</div>
</div>
<!--== Zadanie 2 ==
{{kotwica|zadanie 2|}}
Pokaż, że jeżeli graf <math>G</math> rozpięty na parzystej liczbie wierzchołków <math>p</math> ma więcej niż <math>\left(\begin{array}{c}p-1 \\ 2\end{array}\right)</math> krawędzi, to zawiera doskonałe skojarzenie.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Przeprowadzimy dowód przez indukcję. Łatwo zauważyć, że dla <math>p=2</math> graf ma co najmniej jedną krawędź, a więc zawiera doskonałe skojarzenie. Załóżmy, że własność ta zachodzi dla grafów o mniej niż <math>p</math> wierzchołkach. Pokażemy teraz, że zachodzi dla grafu <math>G</math> o <math>p</math> wierzchołkach. Wybierzmy z grafu <math>G</math> dwa wierzchołki <math>u</math> i <math>v</math> których sumaryczny stopień jest minimalny. Niech <math>G'</math> będzie grafem otrzymanym z <math>G</math> poprzez usunięcie wierzchołków <math>u</math> i <math>v</math>.


{{wzor2|1=
<math>
\left(\begin{array}{c}p-1 \\ 2\end{array}\right) - \left(\begin{array}{c}p-3 \\ 2\end{array}\right) = \frac{(p-1)(p-2)}{2} - \frac{(p-3)(p-4)}{2} = \frac{p^2 -3p+2}{2} - \frac{p^2 -7p +12}{2} =
\frac{4p-10){2} = 2p-5.
</math>
}}
Weźmy dwa wierzchołki <math>v,u</math> w grafie <math>G</math> o najmniejszym stopniu. Jeżeli wierzchołki te
<math>\deg(u) + \deg(v)</math>. Jeżeli
dowolne wierzchołki w grafie <math>G</math> jeżeli nie są one połączone krawędzią, to z każdego z nich wychodzi <math>p-2</math> krawędzi. Usuńmy te dwa wierzchołki
</div>
</div>
</div>
</div>
-->


== Zadanie 2 ==
== Zadanie 2 ==
{{kotwica|zadanie 2|}}
{{kotwica|zadanie 2|}}
Dla grafu dwudzielnego <math>G = (V_1 \cup V_2, E)</math>, gdzie <math>|V_1| = |V_2|</math> zdefiniujmy ''symboliczną macierz sąsiedztwa'' <math>B(G)</math> rozmiaru <math>V_1 \times V_2</math> jako:


{{wzor2|1=
<math>B(G)_{i,j} = \begin{cases}
x_{i,j} & \mbox{jeżeli } (i,j) \in E,\ i \in V_1,\ j \in V_2,
0        & \mbox{w przeciwnym przypadku,}
\end{cases}</math>
}}
gdzie<math>x_{i,j}</math> to różne zmienne przypisane krawędzią. Pokaż, że <math>\det(A(G))\neq 0</math> wtedy i tylko wtedy gdy <math>G</math> ma doskonałe skojarzenie.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Wyznacznik <math>\det(B(G))</math> możemy zapisać jako:
{{wzor2|1=
<math>\det(B(G)) = \sum_{p\in \Pi_n} \sgn(p) \prod_{i=1}^{n} B(G)_{i,p_i)</math>.
}}
Zauważmy teraz, że wyraz tej sumy dla <math>p\in \Pi_n</math> jest niezerowy, gdy wszystkie krawędzie <math>ip_i</math> istnieją w grafie <math>G</math>. Zauważmy, że ten zbiór krawędzi
odpowiada dokładnie doskonałemu skojarzeniu, ponieważ permutacja <math>p</math> przypisuje każdemu wierzchołkowi <math>i</math> różny wierzchołek <math>p_i</math>.
</div>
</div>
== Zadanie 3 ==
{{kotwica|zadanie 3|}}
Dla grafu <math>G= (V,E)</math> zdefiniujmy ''symboliczną macierz sąsiedztwa''
<math>A(G)</math> rozmiaru <math>V \times V</math> jako:
{{wzor2|1=
<math>A(G)_{i,j} = \begin{cases}
x_{i,j} & \mbox{jeżeli } (i,j) \in E \mbox{ i } i < j,
-x_{j,i} & \mbox{jeżeli } (i,j) \in E \mbox{ i } i > j,
0        & \mbox{w przeciwnym przypadku,}
\end{cases}</math>
}}
gdzie<math>x_{i,j}</math> to różne zmienne przypisane krawędzią. Pokaż, że <math>\det(A(G))\neq 0</math> wtedy i tylko wtedy gdy <math>G</math> ma doskonałe skojarzenie.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''  
<div class="mw-collapsible-content" style="display:none">
<div class="mw-collapsible-content" style="display:none">
Wyznacznik <math>\det(A(G))</math> możemy zapisać jako:
{{wzor2|1=
<math>\det(A(G)) = \sum_{p\in \Pi_n} \sgn(p) \prod_{i=1}^{n} A(G)_{i,p_i)</math>.
}}
Zauważmy teraz, że wyraz tej sumy dla <math>p\in \Pi_n</math> jest niezerowy, gdy wszystkie krawędzie <math>ip_i</math> istnieją w grafie <math>G</math>. Widzimy więc, że zbiór krawędzi  <math>ip_i</math> opisuje zbiór cykli w grafie <math>G</math>. Cykle te odpowiadają dokładnie cyklom permutacji <math>p</math>. Weźmy permutację <math>p</math> zawierającą cykl <math>C</math> nieparzystej długości. Skonstruujmy z <math>p</math> permutację <math>p'</math> z odwróconym skierowaniem cyklu <math>C</math>. Zauważmy, że elementy odpowiadające tym permutacjom zawierają te same zmienne. Jednak ich znaki są przeciwne, ze względu na antysymetryczność macierzy <math>A(G)</math>. Widzimy więc, że w <math>\det(A(G))</math> niezerowe będą tylko wyrazy odpowiadające zbiorom cykli parzystej długości. Z każdego takiego zbioru cykli łatwo jest skonstruować doskonałe skojarzenie. Wystarczy wziąć z każdego cyklu co drugą krawędź.
</div>
</div>
== Zadanie 4 ==
{{kotwica|zadanie 4|}}
Załóżmy, że graf <math>G = (V,E)</math> ma doskonałe skojarzenie. Powiemy, że krawędź <math>(i,j)</math> jest ''niedozwolona'' jeżeli nie należy do żadnego doskonałego skojarzenia w <math>G</math>. Pokaż jak w czasie <math>O(n^3)</math> znaleźć wszystkie niedozwolone krawędzie w grafie <math>G</math>.


<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Rozwiązanie'''
<div class="mw-collapsible-content" style="display:none">
Zacznijmy od znalezienia doskonałego skojarzenia <math>M</math> w <math>G</math> przy pomocy algorytmu Edmondsa. Rozpatrzmy teraz wierzchołek <math>v \in V</math>. Usuńmy ze skojarzenia krawędź <math>vu</math> sąsiednią z <math>v</math> otrzymując mniejsze skojarzenie <math>M'</math>. Zbudujmy teraz las <math>M'</math>-naprzemienny <math>L</math> w <math>G</math>. Jednak w trakcie budowy gdy napotkamy krawędź łączącą dwie składowe lasu to dodajemy do zbioru <math>X</math> nie powiększając skojarzenia. Rozpatrzmy teraz graf <math>L \cup X</math>, graf ten koduje wszystkie ścieżki powiększające względem <math>M'</math>. Możemy więc za jego pomocą wyznaczyć wszystkie ich początki, a co za tym idzie krawędzie dozwolone sąsiednie z <math>v</math>. Procedura ta dla wierzchołka <math>v</math> działa w czasie <math>O(n^2)</math>, a więc dla całego grafu zajmie ona czas <math>O(n^3)</math>.
</div>
</div>
</div>
</div>




== Zadanie 3 ==
 
<!--== Zadanie 3 ==
{{kotwica|zadanie 3|}}
{{kotwica|zadanie 3|}}
O grafie <math>G</math> mówimy, że jest


Przepływ dwuskierowany?




Linia 31: Linia 115:


</div>
</div>
</div>
</div>-->

Aktualna wersja na dzień 11:03, 5 wrz 2023

Zadanie 1

Pokaż, że każdy graf G może zostać zanurzony w grafie G rozpiętym na co najwyżej 3|V(G)| wierzchołkach tak, aby dla każdego skojarzenia M w G istniało dokładnie jedno doskonałe skojarzenie F takie, że FE(G)=M. Czy jeżeli G jest zewnętrznie planarny, to G może być planarny?

Rozwiązanie


Zadanie 2

Dla grafu dwudzielnego G=(V1V2,E), gdzie |V1|=|V2| zdefiniujmy symboliczną macierz sąsiedztwa B(G) rozmiaru V1×V2 jako:

B(G)i,j={xi,jjeżeli (i,j)E, iV1, jV2,0w przeciwnym przypadku,

gdziexi,j to różne zmienne przypisane krawędzią. Pokaż, że det(A(G))0 wtedy i tylko wtedy gdy G ma doskonałe skojarzenie.

Rozwiązanie


Zadanie 3

Dla grafu G=(V,E) zdefiniujmy symboliczną macierz sąsiedztwa A(G) rozmiaru V×V jako:

A(G)i,j={xi,jjeżeli (i,j)E i i<j,xj,ijeżeli (i,j)E i i>j,0w przeciwnym przypadku,

gdziexi,j to różne zmienne przypisane krawędzią. Pokaż, że det(A(G))0 wtedy i tylko wtedy gdy G ma doskonałe skojarzenie.

Rozwiązanie

Zadanie 4

Załóżmy, że graf G=(V,E) ma doskonałe skojarzenie. Powiemy, że krawędź (i,j) jest niedozwolona jeżeli nie należy do żadnego doskonałego skojarzenia w G. Pokaż jak w czasie O(n3) znaleźć wszystkie niedozwolone krawędzie w grafie G.

Rozwiązanie