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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

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

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Ενότητα 10 Γράφοι (ή Γραφήµατα)

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

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

ΘΕΩΡΙΑ ΓΡΑΦΩΝ. 7 η Διάλεξη Συνεκτικότητα (Συνδεσμικότητα) Βασικές έννοιες και ιδιότητες Το θεώρημα του Merger Ισομορφισμός

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) Άμεσος έλεγχος ύπαρξης ακμής: Ο()

Γράφοι: Προβλήματα και Αλγόριθμοι 7 Αναπαράσταση γράφων με πίνακα γειτνίασης: Αν έχουμε βάρη, Κατευθυνόμενος: μη-συμμετρικός πίνακας Χώρος: Θ(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 Γράφοι: Προβλήματα και Αλγόριθμοι 7

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελάχιστο Συνδετικό Δένδρο (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 Γράφοι: Προβλήματα και Αλγόριθμοι 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γιατί δουλεύει η ιδέα; Θεώρημα. Ένα σύνολο ακμών 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,... Κάποια από αυτά λύνονται γρήγορα σε ειδικές περιπτώσεις, ή προσεγγιστικά. Εντατική έρευνα, πολλά ανοιχτά ερωτήματα. Γράφοι: Προβλήματα και Αλγόριθμοι