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

Σχετικά έγγραφα
ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

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

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

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

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

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

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

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

Διάλεξη 29: Γράφοι. Διδάσκων: Παναγιώτης Ανδρέου

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

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

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

Επίλυση Προβλημάτων 1

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

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

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

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

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

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

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

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Δένδρα επικάλ επικ υψης ελάχιστου στους

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

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

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

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

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

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

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

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

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

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

Αλγόριθμοι Τυφλής Αναζήτησης

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

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

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

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

Επίλυση προβλημάτων με αναζήτηση

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

ιαφάνειες παρουσίασης #11

Συνεκτικότητα Γραφήματος

Διδάσκων: Παναγιώτης Ανδρέου

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

Διάλεξη 18: Γράφοι I Εισαγωγή

(elementary graph algorithms)

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

1 Το πρόβλημα της συντομότερης διαδρομής

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

Διάλεξη 20: Γράφοι I - Εισαγωγή

Διδάσκων: Κωνσταντίνος Κώστα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

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

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

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

Ελάχιστα Γεννητορικά ένδρα

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

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Τεχνητή Νοημοσύνη. 3η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

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

Transcript:

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

Διάσχιση (αναζήτηση ) στους γράφους Φεύγοντας από μια δεδομένη αρχική κορυφή s, διάσχιση ενός γράφου G, είναι η αναζήτηση των διαδόχων του s. Βασική ιδέα του αλγορίθμου 1. Μαρκάρουμε την κορυφή s 2. Προωθούμε τις μάρκες Όσο βρίσκουμε τόξο (x, y), με το κόμβο x μαρκαρισμένο ρ μ και τον επόμενό του y αμαρκάριστο τότε μαρκάρουμε ρ μ τον κόμβο y.

Αναζήτηση στους γράφους (Δομές δεδομένων) κωδικοποίηση ητου G / πίνακας Mark / σύνολο Z Ο γράφος G είναι κωδικοποιημένος με λίστες γειτνίασης Ο πίνακας Mark[n] δί δείχνει τις κορυφές που έχουμε ήδη επισκεφθεί Το σύνολο Z, περιέχει κορυφές των οποίων απομένουν ακόμη διάδοχοι δάδ που δεν έχουμε επισκευθεί.

ΓΕΝΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ Αρχικοποίησε Mark[n] σε false Mark[s] = true Z = {s} Repeat Πάρε ένα κόμβο x από το Ζ Αν όλοι οι διάδοχοι του x έχουν εξεταστεί τότε Ζ=Z {x} Αλλιώς Πάρε έναν κόμβο y διάδοχο του x Αν y δεν είναι μαρκαρισμένος τότε Until Z = Ø μάρκαρε y Θέσε y μέσα στο Z

ΑΝΑΖΗΤΗΣΗ ΚΑΤA ΠΛΑΤΟΣ (ΒFS: Breadth First Search) Ζ κωδικοποιημένο με μια ουρά Διάδοχοι του s Διάδοχοι διαδόχων του s Εξάπλωση στίγματος λαδιού Διάδοχοι διαδόχων του s

ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΠΛΑΤΟΣ: BFS Αρχικοποίησε Mark[n] σε false Mark[s] = true Θέσε s στην ουρά Repeat Πάρε x από την κεφαλή της ουράς Για κάθε διάδοχο y του x Αν y μη μαρκαρισμένος μάρκαρε y Until Z = Ø (****) Θέσε y στο τέλος της ουράς

ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΠΛΑΤΟΣ: BFS παράδειγμα b f g a c e d h b f g a c e d h

ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΠΛΑΤΟΣ: BFS Σειρά μαρκαρίσματος: a:1, b:2, d:3, c:4, e:5, f:6, h:7, g:8 Εξέλιξη της ουράς Ζ: a, db, cd, c, e, hf, gh, g, Ø b f g a c e d h

ΚΑΤΕΥΘΥΝΟΜΕΝΟ ΔΕΝΔΡΟ επίσκεψης με BFS b f g a c e d h Κατευθυνόμενο δένδρο με την BFS ξεκινώντας απο τον κόμβο a. Κάθε κόμβος έχει ένα μόνο πατέρα. Πατέρας της ρίζας το Ø

ΠΟΛΥΠΛΟΚΟΤΗΤΑ BFS Ο κόμβος x δεν επιστρέφει στο σύνολο Ζ Η επανάληψη εξετάζει όλους τους διαδόχους ενός κόμβου n + n + ( ) d ( x) + 1 = n+ d ( x) = n+ m x= 1 x= 1 Πλυπλοκότητα BFS: Θ(n+m) Γενικά m>n Πλυπλοκότητα BFS: Θ(n+m). Γενικά m>n και επομένωs: Ο(m)

ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΒΑΘΟΣ (DFS: Depth First Search) Το Ζ είναι κωδικοποιημένο με στοίβα Η Αναζήτηση προχωρεί ως βολίδα πηγαίνοντας Η Αναζήτηση προχωρεί ως βολίδα, πηγαίνοντας όσο το δυνατόν μακρύτερα στο μονοπάτι με αρχή τον κόμβο s, πριν επιστρέψει σε άλλους κόμβους.

Αρχικοποίησε Mark[n] σε false Mark[s] = true Θέσε s στη στοίβα (Ζ, s) ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΒΑΘΟΣ (DFS) Repeat Πάρε x (απο την κορυφή της στοίβας Ζ) Αν όλοι οι διάδοχοί του είναι μαρκαρισμένοι Αλλιώς Διέγραψε τον x απο την Ζ Πάρε ένα διάδοχο y του χ, μη μαρκαρισμένο Μάρκαρε τον κόμβο y Θέσε τον κόμβο y στη στοίβα Z Until Z = Ø (****)

ΑΝΑΖΗΤΗΣΗ ΚΑΤΑ ΒΑΘΟΣ (DFS) παράδειγμα b f g a c e d Σειρά μαρκαρίσματος: a:1, b:2, c:3, e:4, f:5, g:6, h:7, d:8 Εξέλιξη της στοίβας Ζ: a, ab, abc, abce, abcef, abcefg, abcef, abcefh, abcef, abce, abc, abcd, abc, ab, a, Ø h

ΚΑΤΕΥΘΥΝΟΜΕΝΟ ΔΕΝΔΡΟ ΑΝΑΖΗΤΗΣΗΣ με την DFS b f g a c e d h Κατευθυνόμενο δένδρο ξεκινώντας απο τον κόμβο a. Πολυπλοκότητα O(n+m) όπου m=αριθμός πλευρών του γράφου

ΕΦΑΡΜΟΓΕΣ ΑΝΑΖΗΤΗΣΗΣ 1) Ελάχιστα μονοπάτια σε αριθμό τόξων Χρησιμοποιώντας τη Αναζήτηση κατά πλάτος Χρήση ενός πίνακα: απόσταση[] Αρχικοποίηση: απόσταση[s]=0 Θέσε απόσταση[y]=απόσταση[x]+1, /*μετά το μαρκάρισμα του y διαδόχου του x*/ 2) Ύπαρξη κλειστών μονοπατιών (κύκλων) Χρησιμοποιώντας την Αναζήτηση η κατά βάθος

ΣΥΝΕΚΤΙΚΟΤΗΤΑ Ένας γράφος είναι συνεκτικός αν υπάρχει ένα μονοπάτι που συνδέει δύο οποιουσδήποτε κόμβους. Ο γράφος τότε αποτελείται από ένα μόνο bloc. Διαφορετικά: έχουμε 2 ή περισσότερες συνεκτικές συνιστώσες

Μία συνεκτική συνιστώσα ΣΥΝΕΚΤΙΚΟΣ γράφος

Παραδείγματα ΣΥΝΕΚΤΙΚΟΤΗΤΑΣ (****) Σ υνεκτικος & ςγραφος & φς Μη συνεκτικος γραφος με 3 συνεκτικες συνιστωσες

Εύρεση Συνεκτικών Συνιστωσών Αλγόριθμος 1 G = VE V,E Ε ιναι Συνεκτικος &? ( BFS ) ( ) Procedure BFT G MARK[ v ] i For i: ( ) = 1 to n do if MARK v = FALSE i = 0 then BFS v [ ] ( ) i i Breadth First graph Traversal (BFT) Π ολ / τα =? (****)

ΙΣΧΥΡΗ ΣΥΝΕΚΤΙΚΟΤΗΤΑ Ένας κατευθυνόμενος γράφος είναι ισχυρά συνεκτικός αν για κάθε ζευγάρι {x,y} διακεκριμένων ρμ κόμβων υπάρχει ένα μονοπάτι από το x στο y και το αντίθετο από τον y στον x. Δηλαδή, τα x και y βρίσκονται πάνω σε κλειστό μονοπάτι. Διαφορετικά: δύο ή περισσότερες ισχυρά Διαφορετικά: δύο ή περισσότερες ισχυρά συνεκτικές συνιστώσες

ΙΣΧΥΡΗ ΣΥΝΕΚΤΙΚΟΤΗΤΑ

Συνεκτικότητα και διαγραφή ενός κόμβου v διαγραφή του κόμβου v

Συνεκτικότητα και διαγραφή ενός κόμβου v διαγραφή του κόμβου v

Συνεκτικότητα και διαγραφή ενός κόμβου/πλευράς v διαγραφή του κόμβου v

Συνεκτικότητα και διαγραφή ενός κόμβου v u v u διαγραφή της πλευράς [u,v]