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