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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αναδρομικοί Αλγόριθμοι
Advertisements

Δομές Δεδομένων και Αλγόριθμοι
Δένδρα van Emde Boas TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μελετάμε την περίπτωση όπου αποθηκεύουμε.
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Επίπεδα Γραφήματα (planar graphs)
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Αλγόριθμοι Αναζήτησης
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Δένδρα στα οποία κάθε.
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
1Πέτρος ΣτεφανέαςΠρογραμματιστικές Τεχνικές ΓΡΑΦΟΙ (GRAPHS) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Νίκος Παπασπύρου.
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν διάσπαση πρόβλημα.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση βάρους Κατευθυνόμενο γράφημα.
Ισορροπημένα Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για.
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Γράφοι – Διάσχιση.
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Ουρά Προτεραιότητας: Heap
Δυναμικά Σύνολα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Ειδικά Θέματα Αλγορίθμων και Δομών Δεδομένων
Δυναμικά Σύνολα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει.
Γραμμικός Προγραμματισμός TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Μια εταιρεία παράγει κέικ δύο κατηγοριών,
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη C Ακέραιοι.
Επίπεδα Γραφήματα: Έλεγχος Επιπεδότητας TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A αβ ζ η ε γ θ Το γράφημα.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Lab 3: Sorted List ΕΠΛ231-Δομές Δεδομένων και Αλγόριθμοι115/4/2015.
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
Γράφημα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Συνδυαστικό αντικείμενο που αποτελείται από.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Διερεύνηση γραφήματος
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Στοιχεία Θεωρίας Γραφημάτων
EPL231 – Data Structures and Algorithms
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Ουρά Προτεραιότητας (priority queue)
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
Ελαφρύτατες διαδρομές
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

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

Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος ή κατά βάθος. Οριζόντια διερεύνηση (breadth-first search) : Διατηρεί τη σειρά επίσκεψης των κόμβων σε μία FIFO ουρά. Μόλις επισκεφτεί ένα κόμβο v τότε τοποθετεί στην ουρά όλους τους κόμβους προς τους οποίους έχει ακμή ο v και τους οποίους δεν έχει επισκεφτεί ακόμα.

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h

bc a a eb dfg ae e fe f cd b h h Η αναζήτηση θα ξεκινήσει από τον κόμβο. Χρησιμοποιούμε μία FIFO ουρά Q για να κρατάμε τη σειρά επίσκεψης των κόμβων.

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : Αρχικά κενή

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : Αρχικά κενή τοποθέτηση(Q,a) : τοποθετεί το a στο τέλος της ουράς

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,a) : τοποθετεί το a στο τέλος της ουράς 1

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q) : επιστρέφει το πρώτο στοιχείο της Q που θα επεξεργαστούμε 1

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του a 1

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,b) 1 2

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,c) 1 2 3

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,f)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του b

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος c είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,d)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του c

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος b είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του f

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος a είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,e)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,h) 7

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του d

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος b είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του e

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος d είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος f είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : τοποθέτηση(Q,g)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος h είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του h

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος f είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : λήψη(Q)

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : επεξεργασία του g

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : o κόμβος e είχε τοποθετηθεί στην Q προηγουμένως και δεν τοποθετείται ξανά

Οριζόντια διερεύνηση γραφήματος bc a a eb dfg ae e fe f cd b h h Ουρά Q : Έχουμε επεξεργαστεί όλους τους κόμβους.

Οριζόντια διερεύνηση γραφήματος Δένδρο οριζόντιας διερεύνησης με αφετηρία τον κόμβο a : Κάθε κόμβος συνδέεται με τον κόμβο που τον έβαλε στην ουρά. Για κάθε κόμβο x το μονοπάτι του δένδρου από το a στο x έχει τον ελάχιστο δυνατό αριθμό ακμών μεταξύ όλων τον μονοπατιών από το a στο x στο γράφημα

Οριζόντια διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους Δάσος οριζόντιας διερεύνησης

Οριζόντια διερεύνηση γραφήματος Αν το γράφημα δεν είναι συνεκτικό μπορούμε να ξεκινήσουμε νέα διερεύνηση από κάποιο κόμβο που δεν έχουμε επισκεφτεί. Συνεχίζουμε με αυτό τον τρόπο μέχρι να επισκεφτούμε όλους τους κόμβους Κάθε δένδρο αποτελεί και μια ξεχωριστή συνιστώσα του γραφήματος Δάσος οριζόντιας διερεύνησης : Δίνει μια καλή λύση στο στατικό (offline) πρόβλημα συνδετικότητας, όταν το γράφημα είναι εξαρχής γνωστό

Αναπαράσταση Γραφήματος Λίστες γειτνίασης (adjacency lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A class AdjacencyLists { static class Node { int v; Node next; Node(int v, Node t) { this.v = v; next = t; } } public static void main(String[] args) { int N = Integer.parseInt(args[0]); int M = Integer.parseInt(args[1]); Node adj[] = new Node[V]; for (int i = 0; i < N; i++) adj[i] = null; for (In.init(); !In.empty();) { int i = In.getInt(), j = In.getInt(); adj[j] = new Node(i, adj[j]); adj[i] = new Node(j, adj[i]); } Διαβάζει μη κατευθυνόμενο γράφημα adj

Οριζόντια διερεύνηση γραφήματος void BFS(int s) // ο κόμβος s είναι η αφετηρία { Queue Q = new Queue (); marked[s] = true; Q.put(s); while (!Q.isEmpty()) { k = Q.get(); for (Node t = adj[k]; t != null; t = t.next) if (!marked[t.v]) { marked[t.v] = true; parent[t.v] = k; Q.put(t.v); } Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές. (Υποθέτουμε ότι κάθε πράξη της ουράς γίνεται σε σταθερό χρόνο.)

Οριζόντια διερεύνηση γραφήματος void BFS(int s) // ο κόμβος s είναι η αφετηρία { Queue Q = new Queue (); marked[s] = true; Q.put(s); while (!Q.isEmpty()) { k = Q.get(); for (Node t = adj[k]; t != null; t = t.next) if (!marked[t.v]) { marked[t.v] = true; parent[t.v] = k; Q.put(t.v); } Χρόνος εκτέλεσης για γράφημα με κόμβους και ακμές. (Υποθέτουμε ότι κάθε πράξη της ουράς γίνεται σε σταθερό χρόνο.) αποθήκευση του γονέα στο δάσος της οριζόντιας διερεύνησης