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

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

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

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

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

Κβαντική Επεξεργασία Πληροφορίας

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

Θέματα υπολογισμού στον πολιτισμό

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

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

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

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

Θέματα υπολογισμού στον πολιτισμό

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοικητική Λογιστική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Κβαντική Επεξεργασία Πληροφορίας

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

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

Εισαγωγή στη Δικτύωση Υπολογιστών

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Βέλτιστος Έλεγχος Συστημάτων

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

Θέματα υπολογισμού στον πολιτισμό

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας

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

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στους Υπολογιστές

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Θέματα υπολογισμού στον πολιτισμό

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

Βάσεις Περιβαλλοντικών Δεδομένων

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Θέματα υπολογισμού στον πολιτισμό

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

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Ψηφιακή Επεξεργασία Εικόνων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Διδακτική των εικαστικών τεχνών Ενότητα 1

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

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

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

Διοικητική Λογιστική

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Μηχανολογικό Σχέδιο Ι

Διδακτική των εικαστικών τεχνών Ενότητα 3

Τεχνικό Σχέδιο - CAD

Αερισμός. Ενότητα 1: Αερισμός και αιμάτωση. Κωνσταντίνος Σπυρόπουλος, Καθηγητής Σχολή Επιστημών Υγείας Τμήμα Ιατρικής

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Διδακτική των εικαστικών τεχνών Ενότητα 2

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Σχεδίαση Δικτύων Υπολογιστών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Αρχιτεκτονική και Οπτική Επικοινωνία 1 - Αναπαραστάσεις

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

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

Γενική Φυσική Ενότητα: Ταλαντώσεις

Διακριτά Μαθηματικά. Ενότητα 5: Απαρίθμηση: Διωνυμικοί συντελεστές

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

Διδακτική των εικαστικών τεχνών Ενότητα 2

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Transcript:

Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

Σκοποί ενότητας Παρουσίαση και μελέτη αλγορίθμων για διάσχιση γραφημάτων Τίτλος Ενότητας 2

Περιεχόμενα ενότητας Παρουσίαση και μελέτη αλγορίθμων για διάσχιση γραφημάτων Τίτλος Ενότητας 3

Εισαγωγή στους Αλγόριθμους Διάσχιση γραφημάτων

Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth first search DFS) Αναζήτηση κατά πλάτος (Breadth first search BFS) Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος του Dijkstra 5

Γράφημα (graph) Αναπαράσταση συνόλου αντικειμένων στην οποία κάποια αντικείμενα συνδέονται μεταξύ τους Τα αντικείμενα αναπαρίστανται από αφηρημένα κατασκευάσματα που καλούνται κορυφές και οι σύνδεσμοι μεταξύ κάποιων κορυφών καλούνται ακμές Κορυφές που συνδέονται με ακμή καλούνται γειτονικές Βαθμός κορυφής: πόσες άλλες κορυφές συνδέονται με αυτή; Βαθμός γραφήματος: μέγιστοςβαθμόςκορυφής Συνήθως τα γραφήματα αναπαρίστανται με διαγράμματα που περιέχουν σύνολο κορυφών (τελείες) και σύνολο ακμών (γραμμές μεταξύ κάποιων τελειών) Ηλέξη"γράφημα" πρωτοχρησιμοποιήθηκε με αυτή την έννοια το 1878 από τον Άγγλο μαθηματικό James Joseph Sylvester 6

Κατευθυνόμενα και μη κατευθυνόμενα γραφήματα Τα γραφήματα χαρακτηρίζονται κατευθυνόμενα ή μη κατευθυνόμενα ανάλογα με το αν οι ακμές τους είναι κατευθυνόμενες ή μη κατευθυνόμενες Αν οι κορυφές αναπαριστούν άτομα σε ένα party και υπάρχει ακμή μεταξύ δύο κορυφών αν τα αντίστοιχα άτομα ανταλλάσσουν χειραψία τότε προκύπτει ένα μη κατευθυνόμενο γράφημα Αν ένα άτομο A χαιρετάει ένα άτομο B τότε και το άτομο B χαιρετάει το άτομο A (συμμετρική σχέση) Αντίθετα, αν οι κορυφές αναπαριστούν άτομα σε ένα party και υπάρχει ακμή μεταξύ δύο κορυφών αν τα αντίστοιχα άτομα γνωρίζονται τότε προκύπτει ένα κατευθυνόμενο γράφημα Αν ένα άτομο A γνωρίζει ένα άτομο B δεν είναι απαραίτητο το άτομο B να γνωρίζει επίσης το άτομο A (όχι απαραίτητα συμμετρική σχέση) 7

Ιδιότητες γραφημάτων Γειτονικές κορυφές σε κατευθυνόμενο γράφημα λέγονται διαδοχικές Ένα γράφημα στο οποίο υπάρχουν όλες οι δυνατές ακμές μεταξύ των κορυφών του λέγεται πλήρες Ένα μη κατευθυνόμενο γράφημα είναι συνεκτικό όταν υπάρχει μονοπάτι (δηλ., ακολουθία ακμών) που συνδέει οποιεσδήποτε 2 κορυφές του αλλιώς είναι μη συνεκτικό Ένα κατευθυνόμενο γράφημα είναι ισχυρά συνεκτικό όταν υπάρχει μονοπάτι και προς τις δύο κατευθύνσεις που συνδέει οποιεσδήποτε 2 κορυφές του Είναι ασθενώς συνεκτικό όταν αντικαθιστώντας τις κατευθυνόμενες ακμές με μη κατευθυνόμενες προκύπτει συνεκτικό γράφημα Γράφημα με βάρη στις κορυφές ήτιςακμές του λέγεται ζυγισμένο 2 7 3 8

Πώς χρησιμοποιούμε τα γραφήματα; Όταν μελετάμε ένα πρόβλημα στην Επιστήμη των Υπολογιστών (αλλά και σε άλλες επιστήμες) είθισται να προσπαθούμε να το απεικονίσουμε με ένα γράφημα Στη συνέχεια μελετώντας το γράφημα εξάγουμε συμπεράσματα για το πρόβλημα 9

Πώς διασχίζουμε ένα γράφημα; Τρόπος 1: Ξεκινάμε από μία κορυφή και μέσω επίσκεψης της γειτονιάς επισκεπτόμαστε ολόκληρο το γράφημα: Αναζήτηση κατά πλάτος (Breadth first search BFS) Τρόπος 2: Ξεκινάμε από μία κορυφή και επισκεπτόμαστε το πρώτο της παιδί και προχωράμε μέχρι να φτάσουμε σε κορυφή που δεν έχει παιδιά μετά επιστρέφουμε στην πρώτη κορυφή που δεν έχουμε επεξεργαστεί και κάνουμε το ίδιο Αναζήτηση κατά βάθος (Depth First search DFS) 10

Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Δεδομένα: μη κατευθυνόμενο γράφημα G με σύνολο κορυφών V (vertices) και σύνολο ακμών E (edges) και δύο κορυφές v1, v2 που ανήκουν στο σύνολο V Ζητούμενα: Μονοπάτι, δηλ., ακολουθία ακμών, που ενώνει τις κορυφές v1, v2 με το ελάχιστο δυνατό μήκος Παράδειγμα εφαρμογή: Βρες το ελάχιστο μονοπάτι μεταξύ 2 διασταυρώσεων σε ένα χάρτη Κορυφές γραφήματος διασταυρώσεις Ακμές γραφήματος οδικά τμήματα Βάρος ακμής γραφήματος μήκος αντίστοιχου οδικού τμήματος 11

Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Η απόσταση 2 κορυφών είναι το μήκος του συντομότερου μονοπατιού μεταξύ τους Πιο πρακτικά: φανταστείτε ότι σε κάθε κορυφή βρίσκεται μία μπάλα και κάθε ακμή αντιστοιχεί σε κλωστή Αν τραβήξουμε αρκετά ψηλά τη μπάλα στην κορυφή s, οι υπόλοιπες μπάλες που θα τραβηχτούν μαζί με αυτή λόγω των δεσιμάτων μεταξύ τους είναι αυτές που μπορούμε να φτάσουμε από την κορυφή s και για να βρούμε τις αντίστοιχες αποστάσεις από την s αρκεί να μετρήσουμε πόσο κάτω από την s κρέμονται Τα μήκη των μονοπατιών επιτρέπουν την ποσοτική αξιολόγηση του κατά πόσον οι κορυφές σε ένα γράφημα είναι απομακρυσμένες 12

Αναζήτηση κατά βάθος (Depth first search DFS) Η αναζήτηση κατά βάθος (depth first search DFS) προσδιορίζει όλες τις κορυφές που μπορούμε να φτάσουμε από κάποιο συγκεκριμένο αρχικό σημείο και βρίσκει μονοπάτια προς αυτές τις κορυφές που συνοψίζονται στο δένδρο αναζήτησης κατά βάθος (DFS tree) Στρατηγική: Προχώρα όσο μπορείς αλλιώς γύρνα πίσω και δοκίμασε άλλο δρόμο Μία κορυφή ορίζεται σαν αρχική και οι υπόλοιπες διατάσσονται αλφαβητικά Ξεκινώντας από την αρχική κορυφή ακολουθούμε ακμές για να φτιάξουμε το μεγαλύτερο δυνατό μονοπάτι Τα μονοπάτια μπορεί να μην είναι τα πιο «οικονομικά» Μπορούμε να φτάσουμε την κορυφή C από την S διασχίζοντας μία μόνο ακμή ενώ το δένδρο αναζήτησης επιστρέφει μονοπάτι μεγέθους 3. Δένδρο αναζήτησης 13

Αναζήτηση κατά βάθος (Depth first search DFS) Αρχικοποίησε Mark[n] σε false Mark[s] = true Θέσε s στη στοίβα (Ζ, s) Επανάλαβε Πάρε x (από την κορυφή της στοίβας Ζ) Αν όλοι οι διάδοχοί του είναι μαρκαρισμένοι Διάγραψε τον x από τη στοίβα Ζ Αλλιώς Πάρε ένα διάδοχο y του x, μη μαρκαρισμένο Μάρκαρε τον κόμβο y Θέσε τον κόμβο y στη στοίβα Z Μέχρι Z = Ø Φτιάξε μια στοίβα με n άδειες θέσεις Μάρκαρε την κορυφή s Βάλε την s στη στοίβα Επανάλαβε Πάρε την κορυφή x από την κορυφή της στοίβας Αν όλες οι διάδοχές της κορυφές είναι μαρκαρισμένες Διάγραψε τη x από τη στοίβα Αλλιώς Πάρε μία διαδοχική κορυφή y της x, μη μαρκαρισμένη Μάρκαρε την κορυφή y Βάλε την y στη στοίβα Μέχρι να αδειάσει η στοίβα 14

Παράδειγμα (1) εκτέλεσης αλγορίθμου DFS v0 v0 v1 v2 v1 v3 v3 Προεπεξεργασία-αναπαράσταση γραφήματος: Δημιουργία λίστας γειτνίασης για κάθε κορυφή v0: {v1, v2} v1: {v3} v2: {v3} v3: {} v0 v0 v1 v3 v3 v1 v0 v0 v1 v3 v2 v2 v2 v0 v1 v3 v1 v0 v0 v1 v3 v2 v3 v1 v0 v2 v2 15

Παράδειγμα (1) εκτέλεσης αλγορίθμου Σειρά μαρκαρίσματος: DFS 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, Ø 16

Αναζήτηση κατά βάθος (Depth first search DFS) Χρόνος εκτέλεσης του αλγορίθμου DFS σε γράφημα με V κορυφές και E ακμές; Ασχολούμαστε με κάθε κορυφή μία φορά για να την εισάγουμε στην ουρά επεξεργασίας και μία για να την εξάγουμε: Ο( V ) Ασχολούμαστε με κάθε ακμή το πολύ δύο φορές όταν την αναζητούμε στη λίστα γειτνίασης ενός κόμβου: Ο( E ) Συνολικά: Ο( V + E ) (υποθέτοντας ότι η «ενασχόληση» κοστίζει Ο(1)) 17

Αναζήτηση κατά πλάτος (Breadth first search BFS) Ανασηκώνοντας την κορυφή s, το γράφημα διαμερίζεται σε επίπεδα: αυτό που περιέχει μόνο την s, αυτό που περιέχει κορυφές σε απόσταση 1 από την s, αυτό που περιέχει κορυφές σε απόσταση 2 από την s, κ.ο.κ. Ένας απλός τρόπος για να υπολογίσουμε την απόσταση της s από τις υπόλοιπες κορυφές είναι να ψάχνουμε απομακρυνόμενοι από την κορυφή s σε κάθε κατεύθυνση και προσθέτουμε κορυφές σε ένα επίπεδο κάθε φορά Αφού επιλέξουμε τις κορυφές σε απόσταση 0,1,2,,d οι κορυφές σε απόσταση d + 1 βρίσκονται πολύ εύκολα: είναι οι γειτονικές κορυφές του επιπέδου σε απόσταση d που δεν έχουμε επισκεφθεί ακόμα Επίπεδο 0 Επίπεδο 1 Επίπεδο 2 18

Αναζήτηση κατά πλάτος (Breadth first search BFS) Η ιδέα δίνει τον αναδρομικό αλγόριθμο αναζήτησης κατά πλάτος (breadth first search BFS) στον οποίο σε κάθε χρονική στιγμή είναι ενεργά 2 επίπεδα: κάποιο επίπεδο d, που έχει προσδιοριστεί πλήρως, και το επίπεδο d + 1, που ανακαλύπτεται προσδιορίζοντας τους γείτονες των κορυφών του επιπέδου d Στρατηγική: Αντί να πας όσο πιο μακρυά μπορείς, ψάξε όλα τα μονοπάτια Βήματα αλγορίθμου BFS 1. Επίπεδο L0 = {s} 2. Επίπεδο L1 = όλοι οι γείτονες του επιπέδου L0 3. Επίπεδο L2 = όλες οι κορυφές που δεν ανήκουν στα επίπεδα L0 ή L1 και συνδέονται με κορυφή του επιπέδου L1 4. Επίπεδο Li+1 = όλες οι κορυφές που δεν ανήκουν σε προηγούμενο επίπεδο και συνδέονται με κορυφή του επιπέδου Li 19

Αναζήτηση κατά πλάτος (Breadth first search BFS) Αρχικοποίησε Mark[n] σε false Mark[s] = true Θέσε s στην ουρά: Ζ={s} Επανάλαβε Πάρε x από την κεφαλή της ουράς Για κάθε διάδοχο y του x Μέχρι Z = Ø Αν y μη μαρκαρισμένος μάρκαρε y Θέσε y στο τέλος της ουράς Πάρε μια άδεια ουρά με n άδειες θέσεις Μάρκαρε την κορυφή s Βάλε την s στην ουρά Επανάλαβε Πάρε την κορυφή x από την κεφαλή της ουράς Για κάθε διάδοχο y του x Αν y μη μαρκαρισμένη μάρκαρε y Βάλε y στο τέλος της ουράς Μέχρι να αδειάσει η ουρά 20

Αναζήτηση κατά πλάτος (Breadth first search BFS) 21

Αναζήτηση κατά πλάτος (Breadth first search 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, Ø 22

Αναζήτηση κατά πλάτος (Breadth first search BFS) Εκτέλεση BFS: Υποθέτουμε ότι η κορυφή S είναι η αφετηρία και επισκεπτόμαστε μία μία τις κορυφές που είναι διαταγμένες με αλφαβητική σειρά Σειρά επίσκεψης Περιεχόμενα ουράς μετά την επίσκεψη στην κορυφή 23

Παράδειγμα (1) εκτέλεσης αλγορίθμου BFS A Κορυφή που δεν έχουμε επισκεφθεί L 0 A A Κορυφή που έχουμε επισκεφθεί Ακμή που δεν έχουμε επισκεφθεί L 1 B C D Ακμή που οδηγεί σε νέα κορυφή Ακμή που δεν οδηγεί σε νέα κορυφή E F L 0 A L 0 A L 1 B C D L 1 B C D E F E F 24

Παράδειγμα (1) εκτέλεσης αλγορίθμου BFS L 0 A L 0 A L 1 B C D L 1 B C D E F L 2 E F L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F 25

Παράδειγμα (1) εκτέλεσης αλγορίθμου BFS L 0 A L 0 A L 1 B C D L 1 B C D L 2 E F L 2 E F L 0 A L 1 B C D L 2 E F 26

Παράδειγμα (2) εκτέλεσης αλγορίθμου BFS 27

Παράδειγμα (2) εκτέλεσης αλγορίθμου BFS 28

Παράδειγμα (2) εκτέλεσης αλγορίθμου BFS 29

Παράδειγμα (2) εκτέλεσης αλγορίθμου BFS 30

Αναζήτηση κατά πλάτος (Breadth first search BFS) Το BFS δένδρο είναι διαφορετικό από το αντίστοιχο δένδρο αναζήτησης κατά βάθος (DFS δένδρο) και έχει την ιδιότητα ότι όλα τα μονοπάτια που περιέχει είναι τα συντομότερα δυνατά: έχουμε δένδρο συντομότερων μονοπατιών Κάθε επίπεδο Li αποτελείται από όλες τις κορυφές σε απόσταση ακριβώς i από την κορυφή s Υπάρχει μονοπάτι από την κορυφή s στην t ανκαιμόνονανηt εμφανίζεται σε κάποιο επίπεδο DFS BFS 31

Αναζήτηση κατά πλάτος (Breadth first search BFS) O αλγόριθμος BFS εκτελείται σε O( V + E )=O(n+m) βήματα Με κάθε κορυφή ασχολούμαστε μία φορά για να την εισάγουμε στην ουρά και μία φορά για να την εξάγουμε: Ο( V ) βήματα Με κάθε ακμή ασχολούμαστε δύο φορές: όταν την ανακαλύπτουμε και την προσθέτουμε ως προσκείμενη σε κάποιες κορυφές και όταν την ανακαλύπτουμε αλλά δεν την προσθέτουμε γιατί οι αντίστοιχες κορυφές της έχουν ήδη ανακαλυφθεί πραγματοποιούνται συνολικά 2 λειτουργίες (σταθερού χρόνου) με κάθε μία από τις Ε ακμές απαιτούνται 2 * Ε βήματα Συνολικά: Ο( V + Ε ) βήματα 32

DFS ή BFS ΟαλγόριθμοςDFS έχει πολύ περισσότερες εφαρμογές γιατί λόγω του τρόπου λειτουργίας του πολύ περισσότερη πληροφορία είναι διαθέσιμη (εξαιτίας της αναδρομής) ΟαλγόριθμοςBFS είναι πλήρης, δηλ., εγγυάται ότι θα βρει τα μονοπάτια από μία αρχική κορυφή προς όλες τις άλλες (που μάλιστα θα είναι και τα συντομότερα) ενώ ο DFS όχι 33

Τέλος Ενότητας

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Τίτλος Ενότητας 35

Σημειώματα

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.00. Έχουν προηγηθεί οι κάτωθι εκδόσεις: Τίτλος Ενότητας 37

Σημείωμα Αναφοράς Copyright Πανεπιτήμιο Πατρών, Εύη Παπαϊωάννου. «Εισαγωγή στους Αλγόριθμους. Διάσχιση γραφημάτων.». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/culture158/index.php Τίτλος Ενότητας 38

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by nc sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος(π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. Τίτλος Ενότητας 39

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. Τίτλος Ενότητας 40

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες Σχεδιασμός Αλγορίθμων. Jon Kleinberg, Eva Tardos. Επιστημονική επιμέλεια Ελληνικής έκδοσης: Χρήστος Ζαρολιάγκης. Εκδόσεις Κλειδάριθμος, 2009. ISBN: 978 960 461 207 9. Κωδικός Βιβλίου στον Εύδοξο: 13898. Αλγόριθμοι. Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani. Εκδόσεις Κλειδάριθμος, 2009. ISBN 978 960 524 444 6. Κωδικός Βιβλίου στον Εύδοξο: 13583. http://www.wikipedia.org Τίτλος Ενότητας 41