graf trójkątny
: 25 wrz 2015, o 23:48
Grafy nieskierowane tże, każda dwuspójna składowa jest trójkątem (cyklem długości \(\displaystyle{ 3}\)).
Czyli np: Ten graf nie może wyglądać inaczej ze względu na
1. Trójkąty mogą łączyć się wierzchołkami (lub krawędź między wierzchołkami), ale nie mogą mieć wspólnego boku bo powstaje \(\displaystyle{ 2}\)-spójna nie będąca trójkątem.
2. Dwa trójkąty mogą się łączyć ze sobą co najwyżej jedną krawędzią / wierzchołkiem - w przeciwnym razie mamy dwuspójną
a) Udowodnij, że graf jest \(\displaystyle{ 3}\)-kolorowalny w sensie wierzchołkowym.
Wierzchołki, które należą do więcej niż jednej dwuspójnej kolorujemy na czerwono. Następnie wierzchołki z innych trójkątów połączone krawędzią na zielono i niebiesko. Pozostałe na kolor zielony, albo niebieski - inny niż już jest w trójkącie.
b) Zaproponuj efektywny algorytm 3-kolorowania grafów trójkątnych:
Rozbijamy na dwuspójne składowe i wykonujemy to co w dowodzie.
To działa w czasie \(\displaystyle{ O(|V| + |E|)}\). Czyli czas podzielenia na dwuspójne - trójkąty, a następnie analiza tak jak napisałem.
c) zaproponuj algorytm, który obliczy rozmiar najliczniejszego skojarzenia.
Zauważamy, że zawsze opłaca się skojarzyć węzły mające stopień 2. Opłaca się, bo gdybyśmy ich nie skojarzyli, to jeden z tych węzłów traci szanse na skojarzenie, zupełnie niesłusznie, bo nie musi jej tracić. Po prostu jeśli skojarzymy je, to rozwiązanie się nie pogorszy.
Więc stopniowo skojarzamy takie wierzchołki, usuwamy skojarzone, aktualizujemy stopnie itd.
To można wykonać w czasie liniowym względem rozmiaru grafu.
Po wykonaniu tego algorytmu co pozostanie z grafu ?
Pozostaną dosłownie "słoneczka" i pojedyncze węzły. Trzeba więc doliczyć liczbę "słoneczek" (każde "słoneczko" to jedno skojarzenie).
Może ktoś sprawdzić ? Wychodzą algorytmy liniowe.
Czyli np: Ten graf nie może wyglądać inaczej ze względu na
1. Trójkąty mogą łączyć się wierzchołkami (lub krawędź między wierzchołkami), ale nie mogą mieć wspólnego boku bo powstaje \(\displaystyle{ 2}\)-spójna nie będąca trójkątem.
2. Dwa trójkąty mogą się łączyć ze sobą co najwyżej jedną krawędzią / wierzchołkiem - w przeciwnym razie mamy dwuspójną
a) Udowodnij, że graf jest \(\displaystyle{ 3}\)-kolorowalny w sensie wierzchołkowym.
Wierzchołki, które należą do więcej niż jednej dwuspójnej kolorujemy na czerwono. Następnie wierzchołki z innych trójkątów połączone krawędzią na zielono i niebiesko. Pozostałe na kolor zielony, albo niebieski - inny niż już jest w trójkącie.
b) Zaproponuj efektywny algorytm 3-kolorowania grafów trójkątnych:
Rozbijamy na dwuspójne składowe i wykonujemy to co w dowodzie.
To działa w czasie \(\displaystyle{ O(|V| + |E|)}\). Czyli czas podzielenia na dwuspójne - trójkąty, a następnie analiza tak jak napisałem.
c) zaproponuj algorytm, który obliczy rozmiar najliczniejszego skojarzenia.
Zauważamy, że zawsze opłaca się skojarzyć węzły mające stopień 2. Opłaca się, bo gdybyśmy ich nie skojarzyli, to jeden z tych węzłów traci szanse na skojarzenie, zupełnie niesłusznie, bo nie musi jej tracić. Po prostu jeśli skojarzymy je, to rozwiązanie się nie pogorszy.
Więc stopniowo skojarzamy takie wierzchołki, usuwamy skojarzone, aktualizujemy stopnie itd.
To można wykonać w czasie liniowym względem rozmiaru grafu.
Po wykonaniu tego algorytmu co pozostanie z grafu ?
Pozostaną dosłownie "słoneczka" i pojedyncze węzły. Trzeba więc doliczyć liczbę "słoneczek" (każde "słoneczko" to jedno skojarzenie).
Może ktoś sprawdzić ? Wychodzą algorytmy liniowe.