ASD Ćwiczenia 12: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Diks (dyskusja | edycje)
Dorota (dyskusja | edycje)
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), dwuspójny podgraf.
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> sptawdza, czy dany graf jest grafem silnie spójnym.
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 G=(V,E) będzie grafem spójnym. Wierzchołkiem rozdzielającym w grafie G nazywamy każdy wierzchołek, którego usunięcie rozspójnia G. 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 u, v istnieją skierowane ścieżki z u do v i z v do u. Zaprojektuj algorytm, który w czasie O(n+m) 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.