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

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

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

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

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

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

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

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

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

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

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

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

Γράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V

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

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

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

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

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

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

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

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

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

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

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

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

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

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

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

(elementary graph algorithms)

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

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

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

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

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ

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

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

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

Εισαγωγή στη Θεωρία Γράφων

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

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

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

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

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

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων

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

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

Γηάιεμε 19: Δηζαγσγή ζηνπο Γξάθνπο

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

(elementary graph algorithms)

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

ΑΝΤΙΣΤΟΙΧΗΣΕΙΣ ΟΡΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙOΥΝΤΑΙ ΣΤΟΥΣ ΤΟΜΟΥΣ Α ΚΑΙ Β ΤΗΣ ΘΕ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» Ένα γράφημα αποτελείται από ένα σύνολο 94.

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

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

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

Κεφάλαιο 4 Γραφήματα και Δένδρα

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

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

Network Science. Θεωρεία Γραφηµάτων (2)

4.4 Το πρόβλημα του ελάχιστου ζευγνύοντος δένδρου

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

Διάλεξη 9: Αφηρημένοι Τύποι Δεδομένων. Διδάσκων: Παναγιώτης Ανδρέου

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Δυναµικός Προγραµµατισµός (ΔΠ)

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

Βασικές Δομές Δεδομένων

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

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

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

Θεωρία Γράφων Αλγόριθμοι BFS, Prim, Dijkstra, Bellman-Ford

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

Διάλεξη 9: Γράφοι Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Γράφοι - ορισμοί και υλοποίηση - Διάσχιση Γράφων Διδάσκων: Παναγιώτης νδρέου ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Εισαγωγή στους Γράφους Η πιο γενική μορφή δομής δεδομένων, με την έννοια ότι όλες οι προηγούμενες δομές μπορούν να θεωρηθούν ως περιπτώσεις γράφων. Ένα γράφος G(V,E) αποτελείται από ένα σύνολο Vκορυφών (vertices),ή σημείων, ή κόμβων, και ένα σύνολο Ε ακμών (edges),ή τόξων, ή γραμμών. Μια ακμή είναι ένα ζεύγος (u,v) από κορυφές. Παράδειγμα γράφου: E F G ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Γράφοι Οι γράφοι προσφέρουν μια χρήσιμη μέθοδο για τη διατύπωση και λύση πολλών προβλημάτων, σε δίκτυα και συστήματα τηλεπικοινωνιών (π.χ. το Internet), χάρτες - επιλογή δρομολογίων, προγραμματισμό εργασιών (scheduling), ανάλυση προγραμμάτων (flow charts). Η θεωρία των γράφων θεωρείται ότι ξεκίνησε από τον Eulerστις αρχές του 8ου αιώνα(736). ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3

Ορισμοί Ένας γράφος ονομάζεται κατευθυνόμενος (directedgraph, digraph)αν κάθε μια από τις ακμές του είναι προσανατολισμένη προς μία κατεύθυνση. (πχ: ένα οδικό δίκτυο με λωρίδες μονής κατεύθυνσης) E F G Ένας γράφος ονομάζεται μηκατευθυνόμενος (undirected)αν οι ακμές του δεν είναι προσανατολισμένες.(πχ: ένα οδικό δίκτυο με λωρίδες διπλής κατεύθυνσης) E F G ν (u,v) είναι ακμή τότε λέμε ότι οι κορυφές u και v είναιγειτονικές (adjacent)ή ότιγειτνιάζουν. B ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4

Ορισμοί Μονοπάτι ή διαδρομή (path) ενός γράφου μήκους n, είναι μια ακολουθία κόμβων v 0, v,, v n, όπου για κάθε i, 0 i < n, (v i, v i+ ) είναι ακμή του γράφου. Μήκοςενός μονοπατιού είναι ο αριθμός ακμών που περιέχει(εκτός και εάν ορίζεται διαφορετικά) Μήκος = 3 F G ραχύτερο Μονοπάτι μεταξύ δυο κορυφών (Shortest Path):To μονοπάτι μεταξύ δυο κορυφών που έχει το ελάχιστο μήκος. Μια διαδρομήενός γράφου ονομάζεται απλή (simplepath)αν όλες οι κορυφές της είναι διαφορετικές μεταξύ τους, εκτός από την πρώτη και την τελευταία οι οποίες μπορούν να είναι οι ίδιες. Κυκλική Διαδρομή (cycle) ονομάζεται μια διαδρομή με μήκος > οπουv 0 = v n. ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5

Ορισμοί Ένας γράφος που δεν περιέχει κύκλους ονομάζεται άκυκλος(acyclic graph) Έστω G=(V,E) και G = (V, E )γράφοι, όπου V Vκαι E E. Tότε ο γράφος G είναι υπογράφος (subgraph) του γράφου G. E F G πόσταση Κορυφών (Vertex istance):tο μήκος της συντομότερης διαδρομής που οδηγεί από τη μια κορυφή στην άλλη. ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6

Ορισμοί Συνεκτικός Γράφος (onnected Graph):Ένας μη-κατευθυνόμενοςγράφος στον οποίο υπάρχει τουλάχιστο μια διαδρομή μεταξύ όλων των κορυφών. Ισχυρά Συνεκτικός Γράφος (Strongly onnected Graph): Ένας κατευθυνόμενος γράφος στον οποίο υπάρχει μια διαδρομή από οποιαδήποτε κορυφή σε οποιανδήποτε άλλη. Ελαφρά Συνεκτικός Γράφος (Weakly onnected Graph): Ένας κατευθυνόμενος (συνεκτικός) γράφος στον οποίο δενυπάρχει μια διαδρομή από οποιαδήποτε κορυφή σε οποιανδήποτε άλλη. ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7

Ορισμοί Πόσες ακμέςμπορεί να έχει ένας γράφος με nκορυφές; A) Κατευθυνόμενος: nx(n-) B) Μη-κατευθυνόμενος: nx(n-)/ ραιός Γράφος (Sparse Graph):ν ο αριθμός των ακμών του είναι της τάξης Ο(n),όπου nείναι ο αριθμός κορυφών του, διαφορετικά λέγεται Πυκνός Γράφος (ense Graph) Γράφος με άρη (WeightedGraph):Συχνά συσχετίζουμε κάθε ακμή ενός γράφου με κάποιο βάρος (weight). Ποιες ιδιότητες ικανοποιούν οι πιο κάτω γράφοι; ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8

ναπαράσταση γράφων στην Μνήμη ναπαράσταση γράφων με ΠίνακεςΓειτνίασης (Adjacency Matrix) Ένας γράφος G=(V,E) με nκορυφές μπορεί να αναπαρασταθεί ως ένας n nπίνακας που περιέχει τις τιμές 0 και, και όπου αν η (i,j) είναι ακμή τότε A[(i,j)]=, διαφορετικά A[(i,j)]=0. ν ο γράφος είναι γράφος με βάρη, και το βάρος κάθε ακμής είναι τύπου t, τότε για την αναπαράσταση του γράφου μπορεί να χρησιμοποιηθεί πίνακας τύπου t με [(i,j)] = βάρος(i,j), αν υπάρχει ακμή (i,j) A[(i,j)] =, αν δεν υπάρχει ακμή (i,j) υτή η αναπαράσταση απαιτεί χώρο Θ(n ), όπου n= V. ν ο γράφος είναι αραιός (δηλαδή τάξης Ο(n)) η μέθοδος οδηγεί σε σπάταλη χώρου. 0 Πίνακας Γειτνίασης (Adjacency Matrix) 0 3 4 0 3 4 Γράφος 3 4 ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9

ναπαράσταση γράφων στην Μνήμη ναπαράσταση γράφων με ΛίστεςΓειτνίασης (Adjacency Lists) Ένας γράφος G=(V,E) αναπαρίσταται ως ένας μονοδιάστατος πίνακας. Για κάθε κορυφή v, [v] είναι ένας δείκτης σε μια συνδεδεμένη λίστα στην οποία αποθηκεύονται οι κορυφές που γειτνιάζουν με την v. Η μέθοδος απαιτεί χώρο Θ( V + Ε ). Επιτυγχάνεται εξοικονόμηση χώρου για αραιούς γράφους. Στην περίπτωση γράφων με βάρη στη λίστα γειτνίασης αποθηκεύουμε επίσης το βάρος κάθε ακμής. Πίνακας Γειτνίασης (Adjacency Matrix) 0 3 4 0 Γράφος 3 4 3 3 4 ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 0

Διάσχιση Γράφων ν θέλουμε να επισκεφτούμε όλους τους κόμβους ενός γράφου μπορούμε να χρησιμοποιήσουμε έναν από πολλούς τρόπους, οι οποίοι διαφέρουν στη σειρά με την οποία εξετάζουν τους κόμβους. Διαδικασίες διάσχισης χρησιμοποιούνται για τη διακρίβωση ύπαρξης μονοπατιού μεταξύ δύο κόμβων κ.α. Άλλα Παραδείγματα. Οι μηχανές αναζήτησης(search engines π.χ.google), χρησιμοποιούν προγράμματατα οποία ονομάζονται crawlers, για να διασχίσουν όλες τις ιστοσελίδες του WWW. υτές εκτελούνε αναδρομικά την εξής διαδικασία: a) Κατέβασε την σελίδα Χ, b) ρες όλους του επόμενους συνδέσμους (links) από την X, c) Για κάθε σύνδεσμο εκτέλεσε τα βήματα a-c.. Προγράμματα ανταλλαγής αρχείων(pp File-sharing Systems, π.χ. Gnutella), χρησιμοποιούνε αλγόριθμους διάσχισης για να μπορούνε οι χρήστες να αποστέλλουν την αναζήτηση τους (query) στους κόμβους του δικτύου. ν κάποιος κόμβος έχει κάποιο αρχείο το οποίο ψάχνουμε τότε στέλνει κάποια απάντηση στο query. ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Διάσχιση Γράφων Οι πιο διαδεδομένοι τύποι διάσχισης είναι:. Κατά άθος Διάσχιση(epth-First Search (FS)). Κατά Πλάτος Διάσχιση (Breadth-First Search (BFS)) epth-first Search Γενίκευση της προθεματικής διάσχισης δένδρων:ξεκινώντας από ένα κόμβο v, επισκεπτόμαστε πρώτα τον vκαι ύστερα καλούμε αναδρομικά τη διαδικασία στο καθένα από τα παιδιά του. Δηλαδή: Print_Preorder(treenode u) Output data at u; for each child v of u Print_Preorder(v) Σε ένα δένδρο δεν έχουμε κυκλικές διαδρομές. Σε ένα γράφο όμως έχουμε κυκλικές διαδρομές. Άρα πως θα διασχίσουμε τον γράφο; Θα διατηρήσουμε ένα πίνακα Visitedο οποίος θα κρατά πληροφορίες ως προς το ποιους κόμβους έχουμε επισκεφθεί ανά πάσα στιγμή.δεν θα επισκεπτόμαστε ξανά τον ίδιο κόμβο ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Διαδικασία Προθεματικής Διάσχισης epthfirstsearch(graph G,vertex v){ for each vertex w in G visited[w] = False; FS(v); } Γράφος 0 3 4 FS(vertex v){ visited[v] = True; print Visited node v for each w adjacent to v if (visited[w]==false) FS(w) } Χρόνος Εκτέλεσης: Θ( V + E ) Θα επισκεφτούμε ακριβώς μια φορά όλες τις κορυφές και ακμές Υπόθεση: O γράφος είναι συνεκτικός (connected). ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 3

Προθεματική Διάσχιση ν ο γράφος δεν είναι συνεκτικός(disconnected) αυτή η στρατηγική πιθανό να αγνοήσει μερικούς κόμβους. ν ο στόχος μας είναι να επισκεφθούμε όλους τους κόμβους τότε μετά το τέλος της εκτέλεσης του FS(v) θα πρέπει να ελέγξουμε τον πίνακα Visited να βρούμε τους κόμβους που δεν έχουμε επισκεφθεί και να καλέσουμε σε αυτούς τη διαδικασία FS: epthfirstsearch(graph G,vertex v){ for each vertex w in G Visited[w] = False; FS(v); for each vertex w in G if (Visited[w]== False) FS(w); } ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 4

Παράδειγμα epth-first-search σε Κατευθυνόμενο Γράφο Γράφος 0 3 4 FS(G, ) =,,3,4 0 0 3 4 Πίνακας Γειτνίασης (Adjacency Matrix) 0 3 4 0 3 4 Στον αρχικό γράφο δεν υπάρχει μια διαδρομή μεταξύ όλων των ζευγών Π.χ. ->0 ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 5

Παράδειγμα epth-first-search σε Μη-Κατευθυνόμενο Γράφο Γράφος 0 3 4 FS(G, 0) = 0,,,4,3 Πίνακας Γειτνίασης (Adjacency Matrix) 0 3 4 0 3 4 0 3 4 ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 6

Μερικά Σχόλια Η διαδικασία καλείται σε κάθε κόμβο το πολύ μια φορά. Χρόνος Εκτέλεσης: Θ( V + E ), δηλαδή γραμμικός ως προς τον αριθμό των ακμών και κορυφών. ρίθμηση FSτων κορυφών ενός γράφου ονομάζεται η σειρά με την οποία επισκέπτεται η διαδικασία epthfirstsearchτις κορυφές του γράφου. Η διαδικασία μπορεί να κληθεί και για μη-κατευθυνόμενους και για κατευθυνόμενους γράφους. ντί με αναδρομή η διαδικασία μπορεί να υλοποιηθεί, ως συνήθως, με τη χρήση στοιβών. ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 7

Breadth-First Search(BFS) Ξεκινώντας από ένα κόμβο v, επισκεπτόμαστε πρώτα το v, ύστερα τους κόμβους που γειτνιάζουν με τον v, ύστερα τους κόμβους που βρίσκονται σε απόσταση από τον v, και ούτω καθεξής. E F G Διάσχιση με BFS 3 6 E 4 F 5 G ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 8

Διαδικασία Breadth-First Search Διάσχιση Γράφου G ξεκινώντας από το v Ψευδοκώδικας BFSearch(graph G, vertex v){ Q=MakeEmptyQueue(); for each w in G Visited[w]=False; } Visited[v]= True; Enqueue(v,Q); while (!IsEmpty(Q)){ w = equeue(q); Print(w); for each u adjacent to w if (Visited[u]==False){ Visited[u]=True; Enqueue(u,Q); } Υλοποίηση BFS με χρήση ουράς Χρόνος Εκτέλεσης: O( V + E ) ΕΠΛ035 Δομές Δεδομένων και λγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 9