Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Γράφοι: Προβλήματα και Αλγόριθμοι
Εισαγωγή στην Επιστήμη των Υπολογιστών Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
2
Γράφοι: Κατευθυνόμενοι και μη
Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
3
Δρόμοι, μονοπάτια, και κύκλοι
Δρόμος: έγκυρη ακολουθία από κορυφές-ακμές Μονοπάτι: δρόμος χωρίς επαναλήψεις ακμών Απλό μονοπάτι: μονοπάτι χωρίς επαναλήψεις κορυφών Κύκλος: κλειστό μονοπάτι Απλός κύκλος: απλό κλειστό μονοπάτι Μήκος δρόμου: το πλήθος των ακμών του Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
4
Αναπαράσταση Γράφων … με πίνακα γειτνίασης: Αν έχουμε βάρη,
Μη-κατευθυνόμενος: συμμετρικός πίνακας Χώρος Θ(n2) Άμεσος έλεγχος για ύπαρξη ακμής Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
5
Αναπαράσταση Γράφων … με πίνακα γειτνίασης: Αν έχουμε βάρη,
Χώρος Θ(n2) Άμεσος έλεγχος για ύπαρξη ακμής Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
6
Αναπαράσταση Γράφων … με λίστα γειτνίασης: γειτονικές κορυφές σε λίστα
Αν έχουμε βάρη, τα αποθηκεύουμε στους κόμβους Χώρος Θ(m) Έλεγχος για ύπαρξη ακμής σε χρόνο Ο(deg(u)) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
7
Αναπαράσταση Γράφων … με λίστα γειτνίασης: γειτονικές κορυφές σε λίστα
Αν έχουμε βάρη, τα αποθηκεύουμε στους κόμβους Χώρος Θ(m) Έλεγχος για ύπαρξη ακμής σε χρόνο Ο(deg(u)) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
8
Γράφοι: Συνεκτικοί και μη
Ένας μη κατευθυνόμενος γράφος λέγεται συνεκτικός (connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του Σε συνεκτικό γράφο ισχύει: Ένας κατευθυνόμενος γράφος λέγεται ισχυρά συνεκτικός (strongly connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του ακολουθώντας τις κατευθύνσεις των ακμών ασθενώς συνεκτικός (weakly connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του αγνοώντας τις κατευθύνσεις των ακμών Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
9
Άλλες έννοιες Παράγων υπογράφος (spanning subgraph)
Παραγόμενος υπογράφος (induced subgraph) Συνεκτικές συνιστώσες (connected components) Πλήρης γράφος (Κn), διμερής γράφος (πλήρης Kn,m) Επίπεδος γράφος: αν δεν περιέχει ως υπογράφους τα Κ5, Κ3,3 ούτε γράφους που προκύπτουν από αυτά με υποδιαιρέσεις των ακμών τους Δένδρο (tree): συνεκτικός γράφος χωρίς κύκλους Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
10
Βασικές Κλάσεις Πολυπλοκότητας
Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
11
NP-πλήρη Προβλήματα Γράφων
VERTEX COVER CLIQUE HAMILTON CIRCUIT (HC) TRAVELING SALESMAN (TSP) 3-COLORABILITY SUBGRAPH ISOMORPHISM 3-DIMENSIONAL MATCHING (3DM) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
12
Αναγωγή 3SAT ≤ VERTEX COVER
Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
13
Άλλες Αναγωγές Εισαγωγή στην Επιστήμη των Υπολογιστών
Γράφοι: Προβλήματα και Αλγόριθμοι
14
Προβλήματα Γράφων στην Κλάση P
Κύκλος Euler Προσπελασιμότητα + Διάσχιση γράφων: DFS, BFS, ... Συντομότερα μονοπάτια Συνεκτικές συνιστώσες Ελάχιστο συνδετικό δένδρο (minimum spanning tree) Μέγιστη ροή (maximum flow) Τέλειο ταίριασμα (perfect matching) Χρωματισμός ακμών σε διμερή γράφο (bipartite graph coloring) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
15
Αναζήτηση σε Δένδρα Προδιατεταγμένη: 1 2 4 5 3 6
Προδιατεταγμένη: Ενδοδιατεταγμένη: Μεταδιατεταγμένη: Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
16
Αναζήτηση Κατά Βάθος (DFS)
Πολυπλοκότητα: O(|V|+|E|) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
17
Αναζήτηση Κατά Βάθος (DFS)
Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
18
Αναζήτηση Κατά Πλάτος (BFS)
Πολυπλοκότητα: O(|V|+|E|) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
19
Αναζήτηση Κατά Πλάτος (BFS)
Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
20
Συντομότερα Μονοπάτια (Dijkstra)
Πολυπλοκότητα: O(|V|^2) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
21
Αλγόριθμος Dijkstra Εισαγωγή στην Επιστήμη των Υπολογιστών
Γράφοι: Προβλήματα και Αλγόριθμοι
22
Ελάχιστο Συνδετικό Δένδρο (MST)
Αλγόριθμος Prim: Διαλέγουμε κάθε φορά την ακμή ελάχιστου κόστους έτσι ώστε ο νέος υπογράφος να παραμένει δένδρο Αλγόριθμος Kruskal: Διαλέγουμε κάθε φορά την ακμή ελάχιστου κόστους έτσι ώστε ο νέος υπογράφος να μην έχει κύκλους Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
23
Αλγόριθμος Prim Εισαγωγή στην Επιστήμη των Υπολογιστών
Γράφοι: Προβλήματα και Αλγόριθμοι
24
Αλγόριθμος Prim: Υλοποίηση
Κάθε φορά επιλέγεται ο κόμβος με την ελάχιστη απόσταση από το μέχρι στιγμής κατασκευασμένο δένδρο και προστίθεται στο δένδρο Πολυπλοκότητα: O(|V|^2) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
25
Αλγόριθμος Kruskal Εισαγωγή στην Επιστήμη των Υπολογιστών
Γράφοι: Προβλήματα και Αλγόριθμοι
26
Αλγόριθμος Kruskal: Υλοποίηση
Κάθε φορά επιλέγεται η ακμή ελάχιστου κόστους και αν δε δημιουργεί κύκλο στο μέχρι στιγμής δάσος προστίθεται σε αυτό, αλλιώς απορρίπτεται Πολυπλοκότητα: O(|E|log|E|) Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.