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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχέση Μερικής ιάταξης Σχέση Μερικής ιάταξης (ή µερική διάταξη): ανακλαστική, αντισυµµετρική, και µεταβατική. Αριθµοί: α β (αλλά όχι α < β), α β, Σύνολ

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

1 Διάσχιση κατευθυνόμενων γραφημάτων

Σχέσεις Μερικής ιάταξης

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

Αλγόριθμοι Ισχυρά συνεκτικές συνιστώσες Εφαρμογές, BFS

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

Σχέσεις Μερικής ιάταξης

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

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

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

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

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

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

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

Σχέσεις Μερικής ιάταξης

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

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

Σχέσεις Μερικής Διάταξης

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Παράδειγµα (4) Στοιχεία Θεωρίας Γραφηµάτων (2) Ορέστης Τελέλης. Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς. v 2. u 3.

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

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

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

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

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

Διαπεράσεις Μη Κατευθυνόμενων Γραφημάτων

Στοιχεία Θεωρίας Γραφηµάτων (2)

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

ΘΕΩΡΙΑ ΓΡΑΦΩΝ. 10 η Διάλεξη Κατευθυνόμενοι Γράφοι Βασικά χαρακτηριστικά Αλγόριθμοι διάσχισης κατευθυνόμενων γράφων Λίγα Λόγια για Αλυσίδες Markov

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

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

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

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

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

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

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

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

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

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

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

Πιθανοτικοί Αλγόριθμοι

Ουρά Προτεραιότητας: Heap

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

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

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

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

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

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

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

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

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

Γραφήματα. Κεφάλαιο Εισαγωγικές έννοιες Ορισμός

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap

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

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

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

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

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

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

... a b c d. b d a c

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

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

ιµελής Σχέση ιατεταγµένο ζεύγος (α, β): ύο αντικείµενα (όχι κατ ανάγκη διαφορετικά) σε καθορισµένη σειρά. Γενίκευση: διατεταγµένη τριάδα (α, β, γ), δι

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

Ουρά Προτεραιότητας: Heap

Σχεδίαση και Ανάλυση Αλγορίθμων

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

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων

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

Transcript:

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

Αναζήτηση Κατά Βάθος (DFS) Εξερεύνηση νέων κορυφών µε αποµάκρυνση από αρχική. Πρώτη επίσκεψη σε ανεξερεύνητη κορυφή u: Εξερεύνηση (αναδροµικά) όλων των (ανεξερεύνητων) γειτόνων της u, πριν ολοκληρώσουµε µε u. 1 2 3 / 2 1 3 / 3 1 2 4 5 / 4 3 6 / 5 3 / 6 4 / Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 2

Αναζήτηση Κατά Βάθος (DFS) Εξερεύνηση νέων κορυφών µε αποµάκρυνση από αρχική. Πρώτη επίσκεψη σε ανεξερεύνητη κορυφή u: Εξερεύνηση (αναδροµικά) όλων των (ανεξερεύνητων) γειτόνων της u, πριν ολοκληρώσουµε µε u. Φύσει αναδροµική διαδικασία: Τρία είδη κορυφών: Ανεξερεύνητη: όχι επίσκεψη ακόµη. Υπο-εξέταση: επίσκεψη και εξερευνούµε γείτονες. Εξερευνηµένη: ολοκλήρωση διαδικασίας. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 3

Αναζήτηση Κατά Βάθος (DFS) Κορυφές περνούν από παραπάνω στάδια: Αρχικά όλες οι κορυφές ανεξερεύνητες. Πρώτη επίσκεψη ανεξερεύνητης κορ. υπό-εξέταση. Ολοκλήρωση DFS για (ανεξερ.) γείτονες κορ. εξερευνηµένη. Κορυφή u τίθεται υπό-εξέταση: Όλες οι κορυφές που είναι προσπελάσιµες από u και είναι ανεξερεύνητες θα τεθούν εξερευνηµένες πριν u τεθεί εξερευνηµένη. Εξέλιξη διαδικασίας αποτυπώνεται σε DFS-δάσος και «χρόνους» πρώτης επίσκεψης και αναχώρησης. DFS-δάσος: ακµές πρώτης επίσκεψης, ακυκλικό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 4

Υλοποίηση Πίνακας κατάστασης: m[v] = { A, Y, E }. Πίνακας προγόνων: p[v] = πατέρας v στο DFS-δάσος. «Χρόνοι» πρώτης επίσκεψης d[v] και αναχώρησης f[v]. Χρόνος εκτέλεσης Θ(n + m). DFS σε (α) δέντρο, (β) πλήρες γράφηµα, (γ) κύκλο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 5

Παράδειγµα Κατηγορίες Ακµών Ακµές δάσους / δέντρου: Εξερεύνηση (u, v) όταν v ανεξερεύνητη. Πίσω ακµές: Εξερεύνηση (u, v) όταν v υπό-εξέταση: κύκλος. Μπροστά ακµές: Εξερεύνηση (u, v) όταν v εξερευνηµένη και v απόγονος u στο δέντρο. Ακµές διασταύρωσης: Εξερεύνηση (u, v) όταν v εξερευνηµένη και v όχι απόγονος u στο δέντρο. 1 2 7 5 Μ Μ 4 3 8 6 9 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 6

Παράδειγµα DFS σε µη-κατευθ. γράφηµα παράγει µόνο ακµές δέντρου και πίσω ακµές. Ακµή {v, u} µε d[v] < d[u] (πρώτα πρώτη επίσκεψη σε v). Πρώτα v ΥΕ, µετά u ΥΕ, µετά u Εξερ, τέλος v Εξερ. Αν κατεύθυνση (v, u) εξερευνήθηκε πρώτη, τότε {v, u} ακµή δέντρου. Αν κατεύθυνση (u, v) εξερευνήθηκε πρώτη, τότε {v, u} πίσω ακµή. 1 2 7 4 3 8 5 6 9 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 7

Μερικές Ιδιότητες Για µη-κατευθυνόµενα γραφήµατα, DFS υπολογίζει συνεκτικές συνιστώσες (όπως και BFS). Αν v απόγονος u στο DFS-δάσος, Αν v όχι απόγονος u στο DFS-δάσος, Γράφηµα ακυκλικό ανν DFS δεν παράγει πίσω ακµές. Εξερεύνηση πίσω ακµής (u, v) όταν v ΥΕ Μονοπάτι v u και ακµή (u, v) κύκλος. Έστω κύκλος C, v πρώτη κορυφή C που τίθεται ΥΕ, και (u, v) ακµή C που εισέρχεται στην v. u απόγονος της v στο DFS-δάσος γιατί: Υπάρχει v u µονοπάτι. Όλες οι άλλες κορυφές του C είναι Α όταν v γίνεται ΥΕ. Άρα (u, v) πίσω ακµή. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 8

Εφαρµογές «Χρόνοι» πρώτης επίσκεψης και αναχώρησης δίνουν πληροφορίες για δοµή γραφήµατος: Τοπολογική διάταξη σε Directed Acyclic Graphs (DAGs). Σηµεία κοπής και γέφυρες σε µη-κατευθυνόµενα γραφήµατα. Ισχυρά συνεκτικές συνιστώσες σε κατευθυνόµενα γραφήµατα. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 9

Τοπολογική ιάταξη DAG (Directed Acyclic Graph) αντιστοιχεί σε σχέση µερικής διάταξης: Ακµή (u, v) u v (δηλ. u «προηγείται» v). Σειρά υπολογισµού αλγεβρικών εκφράσεων, π.χ. Προγραµµατισµός εργασιών σε σύνθετα έργα. Ύπαρξη κύκλου δεν συνάδει µε «διάταξη», έστω µερική. DFS ελέγχει για ύπαρξη κύκλων και υπολογίζει «σειρά» κορυφών συµβατή µε µερική διάταξη του DAG. Τοπολογική διάταξη. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 10

Τοπολογική ιάταξη... µετάθεση π κορυφών κατευθυνόµενου G(V, E) ώστε ηλ. κορυφές σε ευθεία ώστε όλες οι ακµές να έχουν φορά από αριστερά προς τα δεξιά. Τοπολογική διάταξη ανν γράφηµα ακυκλικό (DAG). Κορυφές σε φθίνουσα σειρά χρόνων αναχώρησης του DFS, δηλ. Υλοποίηση µε στοίβα: Εξερευνηµένη κορυφή µπαίνει στην ουρά. Σειρά στην ουρά αντιστοιχεί σε τοπολογική διάταξη. Χρόνος Θ(n+m). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 11

Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 12 Παράδειγµα 1 α ε κ δ ι θ η γ β ζ 2 3 4 5 6 7 8 9 10 Τοπολογική διάταξη: α, β, ζ, γ, θ, ι, δ, ε, κ, η α ε κ δ ι θ η γ β ζ 10 9 1 2 3 4 5 6 7 8

Παράδειγµα Τοπολογική διάταξη: 1, 3, 8, 6, 11, 10, 9, 4, 5, 7, 2 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 13

Τοπολογική ιάταξη: Ορθότητα Έστω DAG G(V, E). Θδο (u, v) E, f[u] > f[v]. Εξερεύνηση (u, v) συµβαίνει όταν u ΥΕ και v Ανεξ. ή Εξερ. Αν v ΥΕ, τότε (u, v) πίσω ακµή κύκλος! Αν v Εξερ., τότε εξερεύνηση της v ολοκληρώθηκε πριν ολοκληρωθεί εξερεύνηση u, άρα f[u] > f[v]. Αν v Ανεξ., τότε v απόγονος της u στο DFS-δάσος. Άρα f[u] > f[v], γιατί πρώτα τίθεται f[v] και µετά f[u]. Έστω σύστηµα µε n (πραγµατικές) µεταβλητές x 1,, x n και m περιορισµούς της µορφής x i < x j. Αλγόριθµος µε χ.ε. Ο(n+m) που υπολογίζει µια λύση του συστήµατος ή αποφαίνεται ότι το σύστηµα δεν έχει λύση; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 14

Ισχυρά Συνεκτικές Συνιστώσες ίνεται κατευθυνόµενος γράφος και αναζητώ τις ισχυρά συνεκτικές συνιστώσες του(scc) Κάθε γράφος µπορεί να παρασταθεί ως DAG των SCC του: Σχήµατα από βιβλίο Algorithms (Dasgupta-Papadimitriou-Vazirani) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 15

Ισχυρά Συνεκτικές Συνιστώσες ίνεται κατευθυνόµενος γράφος και αναζητώ τις ισχυρά συνεκτικές συνιστώσες του(scc) Κάθε γράφος µπορεί να παρασταθεί ως DAG των SCC του: Τι θα εξερευνήσει η DFS αν ξεκινήσει από τυχαίο κόµβο; Από ποιό κόµβο πρέπει να ξεκινήσει η DFS; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 16

Ισχυρά Συνεκτικές Συνιστώσες Σωστό σηµείο εκκίνησης: (κόµβος σε) συνιστώσα-καταβόθρα (sink component) Αποτέλεσµα: πλήρης εξερεύν. συνιστώσας αυτής και µόνο! Πώς βρίσκουµε κόµβο σε συνιστώσα-καταβόθρα; Ιδέα: µπορώ να βρώ κόµβο σε συνιστώσα-πηγή: µέγιστο f(u) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 17

Ισχυρά Συνεκτικές Συνιστώσες Σωστό σηµείο εκκίνησης: (κόµβος σε) συνιστώσα-καταβόθρα (sink component) Πώς βρίσκουµε κόµβο σε συνιστώσα-καταβόθρα; Ιδέα: µπορώ να βρώ κόµβο σε συνιστώσα-πηγή: µέγιστο f(u) Και: συνιστώσα-καταβόθρα = συνιστώσα-πηγή σε G R!! Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 18

Ισχυρά Συνεκτικές Συνιστώσες Αλγόριθµος Εκτέλεση DFS σε G R, καταγραφή f R (u) Εκτέλεση DFS σε G, επιλογή ανεξερ. κόµβων κατά φθίνουσα σειρά f R (u) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2018) Αναζήτηση Κατά Βάθος 19