Inżynieria Danych Algorytmy grafowe Lista 1 Przypomnienie

Transkrypt

Inżynieria Danych Algorytmy grafowe Lista 1 Przypomnienie
Inżynieria Danych
Algorytmy grafowe
Przypomnienie podstawowych pojęć z teorii grafów
Lista 1
Dla podanych poniżej grafów G1 –G5 , rozwiązać zadania 1–4.
G1 = ({v1 , v2 , . . . , v6 }, {{v1 , v2 }, {v1 , v3 }, {v1 , v4 }, {v1 , v6 }, {v2 , v3 }, {v3 , v4 }, {v3 , v5 }, {v4 , v5 }, {v4 , v6 }})
G2 = ({v1 , v2 , . . . , v10 }, {{v1 , v2 }, {v1 , v5 }, {v1 , v6 }, {v2 , v3 }, {v2 , v7 }, {v3 , v4 }, {v3 , v8 }, {v4 , v5 }, {v4 , v9 },
{v5 , v10 }, {v6 , v8 }, {v6 , v9 }, {v7 , v9 }, {v7 , v10 }, {v8 , v10 }})
G3 = ({v1 , v2 , . . . , v8 }, {{v1 , v2 }, {v1 , v4 }, {v1 , v6 }, {v1 , v8 }, {v2 , v3 }, {v2 , v5 }, {v3 , v7 }})
G4 = ({v1 , v2 , . . . , v8 }, {{v1 , v2 }, {v1 , v4 }, {v1 , v6 }, {v2 , v3 }, {v2 , v7 }, {v3 , v4 }, {v3 , v8 }, {v4 , v5 }, {v5 , v6 },
{v5 , v8 }, {v6 , v7 }, {v7 , v8 }})
G5 = ({v1 , . . . , v6 }, {{v1 , v2 }, {v1 , v3 }, {v1 , v4 }, {v1 , v5 }, {v2 , v3 }, {v2 , v6 }, {v3 , v6 }, {v3 , v6 }, {v4 , v5 }, {v5 }})
1. Wskazać, które z nich to grafy proste. Podać liczby wierzchołków i krawędzi, wskazać drogę długości
4 (o ile istnieje), łańcuch długości 8 (o ile istnieje), cykle długości 3, 4 (o ile istnieją).
2. Wyznaczyć następujące podgrafy (o ile istnieją): podgraf rozpinający rozmiaru 4, podgraf rozpinający,
będący grafem 2-regularnym, podgraf indukowany przez zbiór wierzchołków S, dla następujących
zbiorów S: {v1 , v2 , v3 }, {v1 , v3 , v4 , v6 }. Wyznaczyć G1 − v1 , G3 − {v2 , v3 }, G1 − e, gdzie e = {v1 , v2 }.
3. Podać stopień wierzchołka v3 , maksymalny i minimalny stopień wierzchołka. Określić, czy Gi to graf
regularny i wyznaczyć ciąg stopni wierzchołków grafu Gi (dla i = 1, . . . , 5).
4. Wskazać, który z grafów Gi (i = 1, . . . , 5) jest spójny, acykliczny, jest drzewem.
5. Pokazać, że liczba wierzchołków stopnia nieparzystego w dowolnym grafie jest zawsze parzysta.
6. Uzasadnić, czy prawdziwe jest stwierdzenie: Jeżeli u, v są jedynymi wierzchołkami stopnia nieparzystego w grafie G, to w G istnieje u − v-droga.
7. W klasie jest 9 uczniów. Każdy wysyła trzy kartki walentynkowe do trzech innych. Czy jest możliwe,
aby każdy uczeń otrzymał kartki od dokładnie tych trzech uczniów, do których je wysłał? Czy jest to
możliwe w klasie składającej się z 8 uczniów?
8. Sprawdzić, które z poniższych ciagów są ciagami grafowymi (zastosować algorytm Havla-Hakimiego).
Dla ciągów, które są grafowe, skonstruować grafy je realizujące. (Mówimy, że graf prosty G realizuje
ciąg c, jeżeli c jest ciągiem stopni grafu G.)
• (5, 4, 4, 3, 3, 3, 2, 1),
• (5, 5, 4, 3, 2, 2, 2, 1),
• (5, 5, 4, 4, 2, 2, 1, 1),
• (5, 5, 5, 4, 2, 1, 1, 1).
9. Uzupełnij definicję metody czyGrafowy sprawdzającej, czy dany jako parametr ciąg jest grafowy.
Zastosuj algorytm Havla-Hakimiego. Przetestuj działanie tej metody.
public static boolean czyGrafowy(ArrayList<Integer> ciag){}
10. Przedstawić graficznie grafy Kn , Pn , Cn (dla n = 1, . . . , 5), K3 ∪ K4 , K3 + P3 , K3 + Pn , n ­ 1, C5 + K4 ,
(C4 ∪ K5 ) + P2 . Dla każdego z nich wyznaczyć liczbę wierzchołków, liczbę krawędzi, minimalny i
maksymalny stopień wierzchołka.
1

Podobne dokumenty