Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Σχετικά έγγραφα
Γράφοι: κατευθυνόμενοι και μη

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αναζήτηση Κατά Πλάτος

Βασικές Έννοιες Θεωρίας Γραφημάτων

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος

Αναζήτηση Κατά Πλάτος

Βασικές Έννοιες Θεωρίας Γραφημάτων

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό Δέντρο

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθµοι Γραφηµάτων

3η Σειρά Γραπτών Ασκήσεων

Ελάχιστο Συνδετικό έντρο

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ελάχιστο Συνδετικό Δέντρο

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Ελάχιστο Συνδετικό έντρο

Αλγόριθμοι και Πολυπλοκότητα

Στοιχεία Θεωρίας Γράφων (Graph Theory)

Συντομότερες Διαδρομές

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Υπολογιστική Πολυπλοκότητα

Αλγόριθμοι Προσέγγισης για NP-Δύσκολα Προβλήματα

Υπολογιστική Πολυπλοκότητα

Μετασχηματισμοί, Αναπαράσταση και Ισομορφισμός Γραφημάτων

Αλγόριθμοι Δικτύων και Πολυπλοκότητα

3η Σειρά Γραπτών Ασκήσεων

Μέγιστη Ροή Ελάχιστη Τομή

Ασυμπτωτικός Συμβολισμός

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι Γραφημάτων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Αλγόριθµοι και Πολυπλοκότητα

Συντομότερες Διαδρομές

Συντομότερες ιαδρομές

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

u v 4 w G 2 G 1 u v w x y z 4

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Συντομότερες ιαδρομές

Μέγιστη Ροή Ελάχιστη Τομή

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κατανεμημένα Συστήματα Ι

Αλγόριθμοι και Πολυπλοκότητα

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

Συντομότερες ιαδρομές

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Αλγόριθµοι και Πολυπλοκότητα

για NP-Δύσκολα Προβλήματα

Μη Ντετερμινισμός και NP-Πληρότητα

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

2 ) d i = 2e 28, i=1. a b c

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Μη Ντετερμινισμός και NP-Πληρότητα

Αλγόριθμοι Γράφων. Κεφάλαιο Διάσχιση γράφων Γενικά Αναζήτηση κατά πλάτος (Breadth First Search)

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Προσεγγιστικοί Αλγόριθμοι για NP- ύσκολα Προβλήματα

βασικές έννοιες (τόμος Β)

Θεωρία Γραφημάτων 6η Διάλεξη

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Προηγμένα Θέματα Αλγορίθμων (ΣΗΜΜΥ ΕΜΠ) Αλγόριθμοι Δικτύων και Πολυπλοκότητα (ΕΜΠ - ΑΛΜΑ) Προσεγγιστικοί Αλγόριθμοι.

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Δένδρα επικάλυψης ελάχιστου κόστους και το πρόβλημα του πλανόδιου πωλητή (Traveling Salesman Problem: TSP)

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

Αλγόριθμοι και Πολυπλοκότητα

Κλάσεις Πολυπλοκότητας

Μη Ντετερμινισμός και NP-Πληρότητα

Κλάση NP, NP-Complete Προβλήματα

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Αλγόριθµοι και Πολυπλοκότητα

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

Transcript:

Εισαγωγή στην Επιστήμη των Υπολογιστών ο εξάμηνο ΣΗΜΜΥ Ενότητα : Αλγόριθμοι γράφων και δικτύων Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Γράφοι: κατευθυνόμενοι και μη (V,E ) (V,E ) Γράφος (ή γράφημα): ζεύγος (V,E), V ένα μη κενό σύνολο, Ε διμελής σχέση πάνω στο V Μη κατευθυνόμενος γράφος: σχέση Ε συμμετρική V: κορυφές (vertices), κόμβοι (nodes) Ε: ακμές (edges) Ε = {{,}, {,}, {,}, {,}, {,}, {,}} Ε = {(,), (,), (,), (,), (,), (,), (,), (,), (,), (,)} Γράφοι: Προβλήματα και Αλγόριθμοι

Γράφοι: ορολογία (V,E ) (V,E ) Γειτονικές (adjacent) κορυφές: συνδέονται με ακμή, π.χ. και Άκρα (endpoints) ακμής Προσπίπτουσα (incident) ακμή (σε κόμβο) Γειτονικές ακμές Γράφοι: Προβλήματα και Αλγόριθμοι

Γράφοι: ορολογία -κανονικός γράφος Βαθμός (degree, valence) κορυφής v: ο αριθμός των ακμών που προσπίπτουν στην v, deg(v) Ένας (μη κατευθυνόμενος) γράφος όπου deg(v)=k για κάθε κορυφή v, λέγεται k-κανονικός (k-regular) Σημαντική ιδιότητα: Σ deg(v) = E Σε κατευθυνόμενο γράφο: in-deg(v), out-deg(v) Γράφοι: Προβλήματα και Αλγόριθμοι

Διαδρομές σε γράφους Δρόμος: έγκυρη ακολουθία από κορυφές-ακμές Μονοπάτι: δρόμος χωρίς επαναλήψεις ακμών Απλό μονοπάτι: μονοπάτι χωρίς επαναλήψεις κορυφών Κύκλος: κλειστό μονοπάτι Απλός κύκλος: απλό κλειστό μονοπάτι Μήκος δρόμου: το πλήθος των ακμών του Γράφοι: Προβλήματα και Αλγόριθμοι

Γράφοι: Προβλήματα και Αλγόριθμοι Αναπαράσταση γράφων με πίνακα γειτνίασης: Αν έχουμε βάρη, Μη-κατευθυνόμενος: συμμετρικός πίνακας Χώρος: Θ(n ) Προσπέλαση γειτόνων: Θ(n) Άμεσος έλεγχος ύπαρξης ακμής: Ο()

Γράφοι: Προβλήματα και Αλγόριθμοι Αναπαράσταση γράφων με πίνακα γειτνίασης: Αν έχουμε βάρη, Κατευθυνόμενος: μη-συμμετρικός πίνακας Χώρος: Θ(n ) Προσπέλαση γειτόνων: Θ(n) Άμεσος έλεγχος ύπαρξης ακμής: Ο()

Αναπαράσταση γράφων με λίστες γειτνίασης: γειτονικές κορυφές σε λίστες Αν έχουμε βάρη, τα αποθηκεύουμε στους κόμβους Χώρος: Θ(m) Προσπέλαση γειτόνων: Θ(deg(u)) Έλεγχος ύπαρξης ακμής: Ο(deg(u)) / / / / / / Γράφοι: Προβλήματα και Αλγόριθμοι

Αναπαράσταση γράφων με λίστες γειτνίασης: γειτονικές κορυφές σε λίστες Αν έχουμε βάρη, τα αποθηκεύουμε στους κόμβους Χώρος: Θ(m) Προσπέλαση γειτόνων: Θ(deg(u)) Έλεγχος ύπαρξης ακμής: Ο(deg(u)) / / / / / / Γράφοι: Προβλήματα και Αλγόριθμοι 9

Γράφοι: συνεκτικοί και μη Ένας μη κατευθυνόμενος γράφος λέγεται συνεκτικός (connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του Σε συνεκτικό γράφο ισχύει: Ένας κατευθυνόμενος γράφος λέγεται ισχυρά συνεκτικός (strongly connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του ακολουθώντας τις κατευθύνσεις των ακμών ασθενώς συνεκτικός (weakly connected) αν υπάρχει δρόμος μεταξύ οποιωνδήποτε δύο κορυφών του αγνοώντας τις κατευθύνσεις των ακμών Γράφοι: Προβλήματα και Αλγόριθμοι

Άλλες έννοιες Παράγων υπογράφος (spanning subgraph) Επαγόμενος υπογράφος (induced subgraph) Συνεκτικές συνιστώσες (connected components) Πλήρης γράφος (Κn), διμερής γράφος (πλήρης Kn,m) Επίπεδος γράφος: αν μπορεί να σχεδιαστεί χωρίς να τέμνονται οι ακμές του ανν δεν περιέχει ως υπογράφους τα Κ, και Κ, - ούτε γράφους που προκύπτουν από αυτά με υποδιαιρέσεις των ακμών τους [Θεώρ. Kuratowski-Wagner] Δένδρο (tree): συνεκτικός γράφος χωρίς κύκλους Γράφοι: Προβλήματα και Αλγόριθμοι

Κλάσεις πολυπλοκότητας P: προβλήματα απόφασης για τα οποία η σωστή απάντηση μπορεί να βρεθεί σε πολυωνυμικό χρόνο ΝP: προβλήματα απόφασης για τα οποία η σωστή απάντηση, αν είναι καταφατική, μπορεί να επαληθευθεί σε πολυωνυμικό χρόνο (με χρήση σύντομου πιστοποιητικού) Συχνά εννοούμε τα αντίστοιχα προβλήματα αναζήτησης ή / και βελτιστοποίησης Γράφοι: Προβλήματα και Αλγόριθμοι

Προβλήματα Γράφων στην Κλάση P Κύκλος Euler Προσβασιμότητα (reachability) + Διάσχιση (traversal): DFS, BFS,... Συνεκτικές συνιστώσες (connected components) Συντομότερα μονοπάτια (shortest paths) Ελάχιστο συνδετικό δένδρο (minimum spanning tree) Μέγιστη ροή (maximum flow) Τέλειο ταίριασμα (perfect matching) Χρωματισμός ακμών διμερούς γράφου (bipartite edge coloring) Γράφοι: Προβλήματα και Αλγόριθμοι

Διάσχιση δένδρων Προδιατεταγμένη (preorder): Ενδοδιατεταγμένη (inorder): Μεταδιατεταγμένη (postorder): Προδιατ/νη: καταγραφή κόμβου την η φορά που τον συναντάμε Ενδοδιατ/νη: καταγραφή κόμβου τη η φορά που τον συναντάμε (φύλλα: την η ) Μεταδιατ/νη: καταγραφή κόμβου την τελευταία φορά που τον συναντάμε Γράφοι: Προβλήματα και Αλγόριθμοι

Αναζήτηση Κατά Βάθος (DFS) Πολυπλοκότητα O( V + E ): σε κάθε κόμβο Ο(deg(v)) έλεγχοι και κλήσεις της dfs (με ποια αναπαράσταση;) Γράφοι: Προβλήματα και Αλγόριθμοι

Παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι 9

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα DFS 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Επιπλέον εφαρμογές DFS Έλεγχος συνεκτικότητας Εύρεση συνεκτικών συνιστωσών (πώς;) Εντοπισμός / εύρεση κύκλων: με έλεγχο και χρήση μη δενδρικών ακμών Αποδοτική εξερεύνηση άγνωστης περιοχής Γράφοι: Προβλήματα και Αλγόριθμοι 9

Αναζήτηση Κατά Πλάτος (BFS) Πολυπλοκότητα O( V + E ): σε κάθε κόμβο v, Ο(deg(v)) έλεγχοι και εισαγωγές στην ουρά Γράφοι: Προβλήματα και Αλγόριθμοι

Παράδειγμα BFS Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s Q 9 Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα BFS s 9 Γράφοι: Προβλήματα και Αλγόριθμοι 9

ο παράδειγμα BFS s 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Επιπλέον εφαρμογές ΒFS Έλεγχος συνεκτικότητας Εύρεση συνεκτικών συνιστωσών Εντοπισμός / εύρεση κύκλων: με έλεγχο και χρήση μη δενδρικών ακμών Μέτρηση αποστάσεων από αρχικό κόμβο (σε πλήθος ακμών) Γράφοι: Προβλήματα και Αλγόριθμοι

Εφαρμογή DFS/BFS To Πρόβλημα του Βαρκάρη Γράφοι: Προβλήματα και Αλγόριθμοι

Εφαρμογή DFS/BFS To Πρόβλημα του Βαρκάρη Μοντελοποίηση καταστάσεων με κόμβους γράφου, π.χ. (Λ,Π,Μ,Β / -) (Λ,Π / Β,Μ) Επίλυση: διαδρομή από αρχική κατάσταση προς τελική Πώς θα βρούμε την βέλτιστη σειρά κινήσεων; Πώς γενικεύεται το πρόβλημα; Γράφοι: Προβλήματα και Αλγόριθμοι

Συντομότερα Μονοπάτια (Dijkstra) Πολυπλ/τα O( V ): σε κάθε επανάληψη Ο( V ) για εύρεση ελαχίστου, Ο( V ) για ενημέρωση αποστάσεων Εισαγωγή στην Επιστήμη των Υπολογιστών Γράφοι: Προβλήματα και Αλγόριθμοι

Παράδειγμα Dijkstra Γράφοι: Προβλήματα και Αλγόριθμοι

Ορθότητα αλγορίθμου Dijkstra Ο αλγόριθμος δημιουργεί σταδιακά ένα δένδρο συντομότερων μονοπατιών. Το δένδρο αρχικοποιείται με τον αρχικό κόμβο. Αναλλοίωτη βρόχου: πριν από κάθε επανάληψη του εξωτερικού βρόχου η τρέχουσα απόσταση κάθε κόμβου v είναι η ελάχιστη απόστασή του από τον αρχικό κόμβο, μεταξύ όλων των διαδρομών που περνούν μόνο από κόμβους του μέχρι στιγμής κατασκευασμένου δένδρου (εξαιρώντας τον v). Σε κάθε επανάληψη επιλέγεται ο κόμβος w με την ελάχιστη τρέχουσα απόσταση. Γράφοι: Προβλήματα και Αλγόριθμοι

Ορθότητα αλγορίθμου Dijkstra Τα παραπάνω αποδεικνύονται επαγωγικά και αρκούν για να αποδείξουμε την παρακάτω η αναλλοίωτη βρόχου: ο κόμβος w που επιλέγεται έχει τελική ελάχιστη διαδρομή από τον αρχικό κόμβο αυτήν ακριβώς που αντιστοιχεί στην τρέχουσα απόστασή του. Η ορθότητα ισχύει σε γράφους χωρίς αρνητικά βάρη (άσκηση: βρείτε αντιπαράδειγμα). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι 9

ο παράδειγμα Dijkstra Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra 9 Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra 9 Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

ο παράδειγμα Dijkstra 9 Οι ετικέτες των κόμβων δείχνουν την μέχρι στιγμής ελάχιστη απόσταση από τον αρχικό κόμβο (πίνακας D), οι συνεχείς ακμές δείχνουν ποιος είναι ο αντίστοιχος προηγούμενος κόμβος (πίνακας P). Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Bellman-Ford dist(s):=; for each v<>s do dist(v):= (* η απόσταση του αρχικού κόμβου s τίθεται στο, των υπολοίπων στο *) repeat n- times for each edge e=(u,v) do if dist(u)+cost(u,v) < dist(v) then dist(v) := dist(u)+cost(u,v) (* ενημέρωση της απόστασης του v από τον s, με βάση την τρέχουσα απόσταση του u και το κόστος της e *) Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Bellman-Ford dist(s):=; for each v<>s do dist(v):= repeat n- times for each edge e=(u,v) do if dist(u)+cost(u,v) < dist(v) then dist(v) := dist(u)+cost(u,v) u v z x 9 y Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Bellman-Ford dist(s):=; for each v<>s do dist(v):= repeat n- times for each edge e=(u,v) do if dist(u)+cost(u,v) < dist(v) then dist(v) := dist(u)+cost(u,v) u v z x 9 y Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Bellman-Ford dist(s):=; for each v<>s do dist(v):= repeat n- times for each edge e=(u,v) do if dist(u)+cost(u,v) < dist(v) then dist(v) := dist(u)+cost(u,v) u v z x 9 - y Γράφοι: Προβλήματα και Αλγόριθμοι 9

Αλγόριθμος Bellman-Ford Ορθότητα: στο τέλος της k-οστής επανάληψης έχουν υπολογιστεί σωστά οι ελάχιστες αποστάσεις μεταξύ διαδρομών το πολύ k ακμών (άσκηση: αποδείξτε το). Δουλεύει για γράφους με αρνητικά βάρη, αλλά όχι με αρνητικούς κύκλους (γιατί;). Εντοπισμός αρνητικών κύκλων: με μία ακόμη επανάληψη (άσκηση: αποδείξτε το). Πολυπλοκότητα: O( V Ε ) Γράφοι: Προβλήματα και Αλγόριθμοι

Ελάχιστο Συνδετικό Δένδρο (MST) Κριτήριο Prim: Διαλέγουμε κάθε φορά την ακμή ελαχίστου κόστους έτσι ώστε ο νέος υπογράφος να παραμένει δένδρο Κριτήριο Kruskal: Διαλέγουμε κάθε φορά την ακμή ελαχίστου κόστους έτσι ώστε ο νέος υπογράφος να μην έχει κύκλους Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim Επιλέγεται ένας αρχικός κόμβος, έστω v. Η απόσταση του v τίθεται στο, των υπόλοιπων κόμβων στο. Κάθε φορά επιλέγεται ο κόμβος, έστω w, με την ελάχιστη απόσταση από το μέχρι στιγμής κατασκευασμένο δένδρο, και προστίθεται στο δένδρο. Ενημερώνονται οι αποστάσεις των υπόλοιπων κόμβων από το δένδρο με βάση το κόστος των ακμών (w,u i ): if cost(w,u i )<dist(u i ) then dist(u i ):=cost(w,u i ) Πολυπλοκότητα: O( V ), παρόμοια με Dijkstra Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι 9

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Prim 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal Οι ακμές ταξινομούνται σε αύξουσα σειρά κόστους. Κάθε φορά επιλέγεται η ακμή ελαχίστου κόστους και αν δε δημιουργεί κύκλο στο μέχρι στιγμής δάσος προστίθεται σε αυτό, αλλιώς απορρίπτεται. Για αποδοτική υλοποίηση, η ύπαρξη κύκλου ελέγχεται με χρήση πράξεων συνόλων (UNION-FIND, Union by Rank). Πολυπλοκότητα: O( E log V ) Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι 9

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Αλγόριθμος Kruskal 9 Γράφοι: Προβλήματα και Αλγόριθμοι

Κοινή ιδέα Prim-Kruskal Ξεκινώντας από τον γράφο χωρίς ακμές και ενώνοντας επαναληπτικά δύο οποιαδήποτε συμπληρωματικά υποσύνολα κόμβων S και V \ S, που ακόμη δεν έχουν ακμή μεταξύ τους, με την ελαφρύτερη δυνατή ακμή καταλήγουμε σε ελάχιστο συνδετικό δένδρο Γράφοι: Προβλήματα και Αλγόριθμοι

Γιατί δουλεύει η ιδέα; Θεώρημα. Ένα σύνολο ακμών A που είναι υποσχόμενο (= υποσύνολο ενός MST) παραμένει υποσχόμενο αν του προσθέσουμε την ελαφρύτερη ακμή που συνδέει οποιαδήποτε συνεκτική συνιστώσα (connected component) του τρέχοντος υπογράφου (που ορίζεται από τις ακμές του A) με τον υπόλοιπο υπογράφο. Απόδειξη. Στον πίνακα. Γράφοι: Προβλήματα και Αλγόριθμοι

Εφαρμογή: αλγόριθμος Boruvka Λειτουργεί σε γύρους. Αρχικά κάθε κόμβος είναι συνιστώσα μόνος του. Σε κάθε γύρο, κάθε συνεκτική συνιστώσα συνδέεται με την ελαφρύτερη δυνατή ακμή με κάποια από τις υπόλοιπες συνιστώσες. Χρειάζεται τρόπος επίλυσης 'ισοπαλιών'. Πολυπλοκότητα: O( E log V ) (σε κάθε γύρο το πλήθος συνιστωσών μειώνεται στο μισό). Προσφέρεται για παράλληλη / κατανεμημένη υλοποίηση. Γράφοι: Προβλήματα και Αλγόριθμοι

NP-πλήρη Προβλήματα Γράφων VERTEX COVER (VC) CLIQUE HAMILTON CIRCUIT (HC) TRAVELING SALESMAN (TSP) -COLORABILITY SUBGRAPH ISOMORPHISM -DIMENSIONAL MATCHING (DM) Γράφοι: Προβλήματα και Αλγόριθμοι

NP-πλήρη Προβλήματα Γράφων Απόδειξη NP-πληρότητας: αναγωγές Γράφοι: Προβλήματα και Αλγόριθμοι

«Ενδιάμεση» Πολυπλοκότητα; Ισομορφισμός γράφων: δεν είναι NP-πλήρες πρόβλημα (κάτω από γενικά παραδεκτές υποθέσεις) Γράφοι: Προβλήματα και Αλγόριθμοι

Συμπεράσματα Αρκετά προβλήματα γράφων λύνονται γρήγορα: διάσχιση (προσβασιμότητα), συνεκτικές συνιστώσες, ελάχιστες διαδρομές, ελάχιστο συνδετικό δένδρο, κύκλος Euler, τέλειο ταίριασμα, μέγιστη ροή,... Πολλά προβλήματα φαίνεται να μην λύνονται γρήγορα: VERTEX COVER, CLIQUE, HAMILTON CIRCUIT, TRAVELING SALESMAN, -COLORABILITY, SUBGRAPH ISOMORPHISM, -DIMENSIONAL MATCHING,... Κάποια από αυτά λύνονται γρήγορα σε ειδικές περιπτώσεις, ή προσεγγιστικά. Εντατική έρευνα, πολλά ανοιχτά ερωτήματα. Γράφοι: Προβλήματα και Αλγόριθμοι