ASD Ćwiczenia 12: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 34: | Linia 34: | ||
==Zadanie 3== | ==Zadanie 3== | ||
Graf spójny bez wierzchołków rozdzielających nazywamy '''grafem dwuspójnym'''. Dwuspójną składową grafu G nazywam każdy jego maksymalny (w sensie zawierania) | Graf spójny bez wierzchołków rozdzielających nazywamy '''grafem dwuspójnym'''. Dwuspójną składową grafu G nazywam każdy jego maksymalny (w sensie zawierania) dwuspójny podgraf. | ||
---- | ---- | ||
Linia 56: | Linia 56: | ||
==Zadanie 5== | ==Zadanie 5== | ||
Powiemy, że graf skierowany jest '''silnie spójny''', jeśli dla każdej pary wierzchołków <math>u</math>, <math>v</math> istnieją skierowane ścieżki z <math>u</math> do <math>v</math> i z <math>v</math> do <math>u</math>. Zaprojektuj algorytm, który w czasie <math>O(n+m)</math> | Powiemy, że graf skierowany jest '''silnie spójny''', jeśli dla każdej pary wierzchołków <math>u</math>, <math>v</math> istnieją skierowane ścieżki z <math>u</math> do <math>v</math> i z <math>v</math> do <math>u</math>. Zaprojektuj algorytm, który w czasie <math>O(n+m)</math> sprawdza, czy dany graf jest grafem silnie spójnym. | ||
==Zadanie 6== | ==Zadanie 6== | ||
Zaproponuje algorytm, który w czasie liniowym zorientuje krawędzie grafu dwuspójnego w taki sposób, żeby otrzymany graf był silnie spójny. | Zaproponuje algorytm, który w czasie liniowym zorientuje krawędzie grafu dwuspójnego w taki sposób, żeby otrzymany graf był silnie spójny. |
Wersja z 13:07, 30 wrz 2006
Zadanie 1
Pokaż, w jaki sposób sprawdzić w czasie liniowym, czy graf jest grafem dwudzielnym
a) za pomocą przeszukiwania wszerz,
b) z wykorzystaniem przeszukiwania w głąb.
Wskazówka
Zadanie 2
Niech będzie grafem spójnym. Wierzchołkiem rozdzielającym w grafie nazywamy każdy wierzchołek, którego usunięcie rozspójnia . Zaadoptuj algorytm wykrywania mostów grafie do znajdowania wszystkich wierzchołków rozdzielających.
Wskazówka
Zadanie 3
Graf spójny bez wierzchołków rozdzielających nazywamy grafem dwuspójnym. Dwuspójną składową grafu G nazywam każdy jego maksymalny (w sensie zawierania) dwuspójny podgraf.
a) Udowodnij, że każda krawędź grafu należy do dokładnie jednej dwuspójnej składowej.
b) Zaprojektuj algorytm, który w czasie liniowym policzy wszystkie dwuspójne składowe danego (przez listy sąsiedztw), spójnego grafu, tzn. podzieli zbiór wszystkich krawędzi na podzbiory odpowiadające poszczególnym dwuspójnym składowym.
Wskazówka
Zadanie 4
Dotychczas rozważaliśmy tylko grafy nieskierowane. Zaproponuj sposób reprezentacji grafu skierowanego za pomocą list sąsiedztw.
Zadanie 5
Powiemy, że graf skierowany jest silnie spójny, jeśli dla każdej pary wierzchołków , istnieją skierowane ścieżki z do i z do . Zaprojektuj algorytm, który w czasie sprawdza, czy dany graf jest grafem silnie spójnym.
Zadanie 6
Zaproponuje algorytm, który w czasie liniowym zorientuje krawędzie grafu dwuspójnego w taki sposób, żeby otrzymany graf był silnie spójny.