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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(elementary graph algorithms)

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

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

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

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

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

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

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

q(g \ S ) = q(g \ S) S + d = S.

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

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

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

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

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Διερεύνηση γραφήματος

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

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

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

(elementary graph algorithms)

d(v) = 3 S. q(g \ S) S

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

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

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

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

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

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

Δομές Δεδομένων Ενότητα 6

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

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

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

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

Transcript:

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

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

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

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

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

Παράδειγμα Κατηγορίες Ακμών Ακμές δάσους / δέντρου: Εξερεύνηση (u, v) όταν v ανεξερεύνητη. Πίσω ακμές: Εξερεύνηση (u, v) όταν v υπό-εξέταση: κύκλος. Μπροστά ακμές: Εξερεύνηση (u, v) όταν v εξερευνημένη και v απόγονος u στο δέντρο. Ακμές διασταύρωσης: Εξερεύνηση (u, v) όταν v εξερευνημένη και v όχι απόγονος u στο δέντρο. Π 1 2 7 4 5 Μ Μ Δ 6 Δ Δ 8 9 Αλγόριθμοι & Πολυπλοκότητα (2017-18) Αναζήτηση Κατά Βάθος 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 8 5 6 9 Αλγόριθμοι & Πολυπλοκότητα (2017-18) Αναζήτηση Κατά Βάθος 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) πίσω ακμή. Αλγόριθμοι & Πολυπλοκότητα (2017-18) Αναζήτηση Κατά Βάθος 8

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

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

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

Αναζήτηση Κατά Βάθος 12 Παράδειγμα α ε κ δ ι θ η γ β ζ 1 α ε κ δ ι θ η γ β ζ 2 4 5 6 7 8 9 10 Τοπολογική διάταξη: α, β, ζ, γ, θ, ι, δ, ε, κ, η α ε κ δ ι θ η γ β ζ 10 9 1 2 4 5 6 7 8

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

Τοπολογική Διάταξη: Ορθότητα Έστω 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) που υπολογίζει μια λύση του συστήματος ή αποφαίνεται ότι το σύστημα δεν έχει λύση; Αλγόριθμοι & Πολυπλοκότητα (2017-18) Αναζήτηση Κατά Βάθος 14

Ισχυρά συνεκτικές συνιστώσες Έστω κατ. γράφος G(V, E). Θέλω να βρω ισχυρά συνεκτικές συνιστώσες (SCC) Κάθε γράφος μπορεί να παρασταθεί ως DAG των SCC του: Σχήματα από βιβλίο Algorithms (Dasgupta-Papadimitriou-Vazirani) Αναζήτηση Κατά Βάθος 15

Ισχυρά συνεκτικές συνιστώσες Έστω κατ. γράφος G(V, E). Θέλω να βρω ισχυρά συνεκτικές συνιστώσες (SCC) Κάθε γράφος μπορεί να παρασταθεί ως DAG των SCC του: Τι θα εξερευνήσει η DFS αν ξεκινήσει από τυχαίο σημείο; Από πού πρέπει να ξεκινήσει η DFS; Αναζήτηση Κατά Βάθος 16

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

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

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