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

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

Ελαφρύτατες διαδρομές

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

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

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

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

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

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

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

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

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

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

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

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

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

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

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

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

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

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

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

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

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

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

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

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

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

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

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

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

Προσεγγιστικοί Αλγόριθμοι

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

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

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

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

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

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

Φροντιστήριο 11 Λύσεις

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

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

Ουρές προτεραιότητας

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

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

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

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

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

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

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

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

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

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

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

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

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

Για παράδειγμα η αρχική και η τελική κατάσταση αναπαριστώνται ως εξής: (ένα λίτρο)

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

Σειρά Προβλημάτων 5 Λύσεις

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

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

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

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

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

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

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

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

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

Επαναληπτικές Ασκήσεις. Ρίζου Ζωή

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

Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο. Γραφήµατα. (Graphs)

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

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

Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει την αξιολόγηση των καταστάσεων του χώρου αναζήτησης.

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

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

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

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

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

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

f e Γράφημα (Graph) Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Προσεγγιστικοί Αλγόριθμοι

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

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

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Σεπτέμβριος 2017

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

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

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

(elementary graph algorithms)

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 00 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di88 6ο ΕΡΓΑΣΤΗΡΙΟ Το πρόβλημα της συντομότερης διαδρομής Πολλά προβλήματα βελτιστοποίησης ανάγονται στην εύρεση της συντομότερης διαδρομής ανάμεσα σε κάποιες κορυφές ενός γραφήματος. Προφανώς, η συντομότερη διαδρομή που συνδέει δύο κορυφές δεν περιέχει κύκλους επομένως της όλες οι κορυφές είναι διαφορετικές, δηλαδή είναι ένα μονοπάτι του γραφήματος. Υπενθύμιση:Μονοπάτιμεαρχήτηνκορυφή vκαιπέραςτηνκορυφή uσεέναγράφημαονομάζεταιμια ακολουθίακορυφών v,v,...,v k,γιατηνοποίαισχύουνότι v = v, v k = u,γιακάθεζεύγοςδιαδοχικών κορυφών υπάρχει δεσμός μεταξύ τους(ή τόξο από την πρώτη προς την δεύτερη) και κάθε κορυφή εμφανίζεται ακριβώς μια φορά. Το μονοπάτι αυτό ονομάζεται (v, u)-μονοπάτι. Ο αριθμός των δεσμών(ή τόξων) που συνδέουν τις κορυφές του μονοπατιού ονομάζεται μήκος του μονοπατιού. Ενα μονοπάτι θεωρείται ελάχιστο μονοπάτι όταν έχει το ελάχιστο δυνατό μήκος. Παράδειγμα Στα επόμενα δύο γραφήματα v u u v v u u v u 0 u τοελάχιστομονοπάτιμεταξύτωνκορυφών v και v είναιτομονοπάτι v,, v μεμήκος. Τοελάχιστομονοπάτιμεαρχήτηνκορυφή u καιπέραςτηνκορυφή u είναιτομονοπάτι u, u, u, u μεμήκος,ενώτοελάχιστομονοπάτιμεαρχήτηνκορυφή u καιπέραςτηνκορυφή u είναιτομονοπάτι u, u, u μεμήκοςαπόστασητωνκορυφών u και u είναι.. Ελάχιστα μονοπάτια σε κατευθυνόμενα γραφήματα Το κλειδί για την εύρεση του ελάχιστου (v, u)-μονοπατιού σε ένα γράφημα είναι η παρατήρηση ότι για κάθεκορυφή v i πουπεριέχεταισ αυτότομονοπάτιπρέπειεπίσηςναισχύειότιτο (v,v i )-μονοπάτιείναικαι αυτό ελάχιστο. Σε αντίθετη περίπτωση, θα υπήρχε ένα ακόμη συντομότερο μονοπάτι και άρα δεν θα ήταν ελάχιστο. Με βάση αυτή την παρατήρηση προκύπτει ότι για την εύρεση του ελάχιστου (v, u)-μονοπατιού που συνδέει τις κορυφές ενός γραφήματος αρκεί να χρησιμοποιηθεί αναζήτηση κατά πλάτος με αρχή την κορυφή v, διότι στην αναζήτηση κατά πλάτος όταν επισκεπτόμαστε μια κορυφή αυτή είναι γειτονική με μια κορυφή την οποία ήδη έχουμε επισκεφθεί και βρίσκεται πιο κοντά στην κορυφή v. Γιατηνεύρεσηόλωντωνμονοπατιώνμεαρχήμιακορυφή v j αρκείναχρησιμοποιηθείηεπόμενηυλοποίησητηςαναζήτησηςκατάπλάτος,στηνοποίααποθηκεύονταιοιαποστάσειςμεταξύτηςκορυφής v j και κάθε άλλης κορυφής.

Ταβήματατουαλγορίθμουαναζήτησηςκατάπλάτος,ξεκινώνταςαπότηνκορυφή v j,είναιταακόλουθα:.αρχικά,όλεςοικορυφέςτου Gείναιανεξερεύνητες,επομένωςσεόλεςτιςθέσειςτουπίνακα A θέτουμε...επισκεπτόμαστετηνκορυφή v j,θέτουμε A[j] = 0καιεισάγουμετην v j στηνουρά L.. Οσοηουρά Lείναιμηκενήεκτελούμεταακόλουθαβήματα: (αʹ) Βρίσκουμε όλες τις κορυφές στις οποίες καταλήγουν τόξα που αρχίζουν από πρώτο στοιχείο τηςουράς L,έστωτην v i. (βʹ)γιακάθεμιααπότιςγειτονικέςκορυφές,έστωτη v k,ελέγχουμεανείναιεξερευνημένη. Αν A[k], δηλαδή είναι εξερευνημένη, δεν εκτελούμε καμια ενέργεια. Αν A[k] =, δηλαδή δεν είναι εξερευνημένη, τότε επισκεπτόμαστε την κορυφή, θέτουμε A[k] = A[i]+,καιεισάγουμετην v k στοτέλοςτηςουράς L. (γʹ) Αφαιρούμε το πρώτο στοιχείο της ουράς. Στην περίπτωση που μας ενδιαφέρει μόνο το ελάχιστο (v, u)-μονοπάτι στην συνθήκη επανάληψης της παραπάνω υλοποίησης πρέπει να προστεθεί ο έλεγχος αν έχουμε βρει το μονοπάτι που μας ενδιαφέρει, δηλαδή ανστηναντίστοιχηθέσητουπίνακαγιατην uέχουμετιμήδιάφορητου. Στην συνέχεια η ανάκτηση του ελάχιστου (v, u)-μονοπατιού γίνεται εύκολα με τον εξής τρόπο:. Εστωiηαντίστοιχηθέσητηςκορυφήςuστονπίνακα.Αν A[i] = δενυπάρχει(v,u)-μονοπάτι..αν A[i],Θέτουμεωςτρέχουσακορυφήτην u.. Οσοδενέχουμεφτάσειστην vεκτελούμετοεξήςβήμα (αʹ)αν v k είναιητρέχουσακορυφή,βρίσκουμεμιακορυφή v j απότηνοποίααρχίζειτόξοπου καταλήγειστην v k,με A[j] = A[k] καιθέτουμεωςτρέχουσακορυφήτην v j. Η μέθοδος αυτή λειτουργεί διότι στον πίνακα A αποθηκεύονται τα μήκη των ελάχιστων μονοπατιών με αρχή την v και κάθε κορυφή που ανήκει σε ένα ελάχιστο μονοπάτι συνδέεται με τουλάχιστον μια κορυφή που είναι τέλος κάποιου άλλου ελάχιστου μονοπατιού με μήκος ένα λιγότερο. Στην περίπτωση που μας ενδιαφέρουν όλα τα ελάχιστα (v, u)-μονοπάτια κατασκευάζουμε το αντίστοιχο δένδρο BFS ως εξής:. Αρχικά θέτουμε ως ρίζα του δένδρου την κορυφή αφετηρίας v..στησυνέχεια,διασχίζονταςτοδένδροκατάπλάτος,σεκάθεκορυφή v i θέτουμεωςπαιδιάτης, με τη σειρά που τα επισκεφτήκαμε, τις γειτονικές κορυφές οι οποίες είναι ανεξερεύνητες. Στην περίπτωση αυτή η εύρεση ενός ελάχιστου(v, u)-μονοπατιού αντιστοιχεί στη μοναδική διάσχιση του μονοπατιούπουσυνδέειτηςκορυφή uμετηνρίζα vτουδένδρου.

. Ελάχιστα μονοπάτια σε γραφήματα με κόστος ή βάρη Η αναζήτηση κατά πλάτος λειτουργεί σε γραφήματα στα οποία όλα τα τόξα(ή οι δεσμοί) θεωρούνται πως έχουν το ίδιο βάρος. Στις εφαρμογές, η πιο συνηθισμένη περίπτωση είναι ότι σε κάθε τόξο αντιστοιχεί ένα βάρος, μπορεί να σχετίζεται με κάποιο χρόνο, ή κόστος, ή απόσταση κ.ο.κ. Στην περίπτωση αυτή ελάχιστο θεωρείται το μονοπάτι στο οποίο άθροισμα των βαρών των τόξων του είναι ελάχιστο και όχι το μονοπάτι με το ελάχιστο πλήθος κορυφών. Παράδειγμα Στα επόμενα δύο γραφήματα v v v v u u 0 u u u u τοελάχιστομονοπάτιμεταξύτωνκορυφών v και v είναιτομονοπάτι v,, v, v μεσυνολικόβάρος 7. Ταελάχισταμονοπάτιαμεαρχήτηνκορυφή u καιπέραςτηνκορυφή u είναιτομονοπάτι u, u, u, u καιτομονοπάτι u, u, u μεσυνολικόβάρος 8. Θασυμβολίζουμεμε w(i,j)τοβάροςτουτόξου(ήδεσμού)απότηνκορυφή v i στηνκορυφή v j. Ανόλαταβάρηείναιθετικά,τότεκαισ αυτέςτιςπεριπτώσειςτοκλειδίγιατηνεύρεσητουελάχιστου (v,u)-μονοπατιούσεέναγράφημαείναιηπαρατήρησηότιγιακάθεκορυφή v i πουπεριέχεταισ αυτότο μονοπάτιπρέπειεπίσηςναισχύειότιτο (v,v i )-μονοπάτιείναικαιαυτόελάχιστο. Σεαντίθετηπερίπτωση, θα υπήρχε ένα μονοπάτι με μικρότερο συνολικό βάρος και άρα δεν θα ήταν ελάχιστο. Η παρατήρηση αυτή είναι η βάση για τον επόμενο αλγόριθμο εύρεσης των ελάχιστων μονοπατιών σε γραφήματα με βάρη, ο οποίος ονομάζεται αλγόριθμος του Dijkstra, ο οποίος είναι μια προσαρμογή της αναζήτησης κατά πλάτος ώστε να λαμβάνονται υπόψη τα βάρη των τόξων(ή δεσμών). Για την υλοποίηση του αλγόριθμου του Dijkstra θα χρησιμοποιηθεί μια ουρά προτεραιότητας Q και δύο βοηθητικοί πίνακες A και B. Οιπίνακες A, Bέχουνμέγεθοςίσομετοπλήθοςτωνκορυφώντουγραφήματος. Στονπίνακα Aαποθηκεύουμεταβάρητωνελάχιστωνμονοπατιώνμεαρχήτηνκορυφή v j,ενώστον πίνακα B αποθηκεύουμε για κάθε κορυφή τον δείκτη της προηγούμενης κορυφής στο ελάχιστου μονοπάτι που ανήκει. Υπενθύμιση: Η βασική ιδέα της ουράς προτεραιότητας είναι ότι τα στοιχεία της έχουν ορισμένα βάρη ως κλειδιά, και κάθε φορά προτεραιότητα έχει το στοιχείο με το ελάχιστο βάρος. Τα βήματα του αλγορίθμου του Dijkstra, για την εύρεση των συντομότερων μονοπατιών που ξεκινουν απότηνκορυφή v j σεγραφήματαμε(θετικά)βάρη,είναιταακόλουθα:.αρχικά,θέτουμεσεόλεςτιςθέσειςτουπίνακα Aτηντιμή καισεόλεςτιςθέσειςτουπίνακα Bτηντιμή..Θέτουμε A[j] = 0.. Τοποθετούμε όλες τις κορυφές του γραφήματος στην ουρά προτεραιότητας Q με κλειδιά τις τιμές του πίνακα A.. Οσο η ουρά προτεραιότητας Q είναι μη κενή εκτελούμε τα ακόλουθα βήματα: (αʹ)αφαιρούμεαπότην Qτηνκορυφήμετομικρότεροκλειδί,έστωτην v k. (βʹ)γιακάθεκορυφή v i στηνοποίακαταλήγουντόξαμεαρχήτην v k εκτελούμεταεξήςβήματα: i.αν A[k]+w(k,i) < A[i]τότε θέτουμε A[i] = A[k]+w(k,i), θέτουμε B[i] = k ενημερώνουμετοκλειδίτης v i στηνουρά.

Παρατήρηση Η ουρά προτεραιότητας υλοποιείται συνήθως με τη βοήθεια ενός σωρού αλλά μπορεί να υλοποιηθεί και με τη βοήθεια ενός πίνακα. Παράδειγμα Για το επόμενο κατευθυνόμενο γράφημα με τόξα v v v ηεκτέλεσητουαλγορίθμουτου Dijkstraμεαρχήτηνκορυφή είναιηεξής:. Αρχικάθέτουμεσεόλεςτιςθέσειςτουπίνακα Aτηντιμή καισεόλεςτιςθέσειςπουπίνακα Bτην τιμή,ενώηουρά Qείναιάδεια.Στησυνέχεια,θέτουμε A[0] = 0. v v v 0 A=[ 0,,,,, ] B=[,,, ] Q=[ ]. Στη συνέχεια τοποθετούμε όλες τις κορυφές του γραφήματος στην ουρά προτεραιότητας Q με κλειδί τις αντίστοιχες τιμές του πίνακα A. v v v 0 A=[ 0,,,,, ] B=[,,, ] Q=[, v, v,, v ]

. Επειδήηουράπροτεραιότητας Qείναιμηκενή,αφαιρούμεαπότην Qτηνκορυφήμετομικρότερο κλειδί,την.απότην καταλήγουντόξαστιςκορυφές v και v. Επειδή A[0] + w(0,) = 0 + = < = A[]θέτουμε A[] =, B[] = 0καιενημερώνουμετο κλειδίτηςκορυφής v στηνουρά Q. Επειδή A[0] + w(0,) = 0 + = < = A[]θέτουμε A[] =, B[] = 0καιενημερώνουμετο κλειδίτης v στηνουρά Q. v v v 0 A=[ 0,,,,, ] B=[, 0, 0, ] Q=[ v, v,, v ]. Επειδήηουράπροτεραιότητας Qείναιμηκενή,αφαιρούμεαπότην Qτηνκορυφήμετομικρότερο κλειδί,την v.απότην v καταλήγουντόξαστιςκορυφές v, και v. Επειδή A[]+w(,) = + = < = A[]θέτουμε A[] =, B[] = καιενημερώνουμετοκλειδί τηςκορυφής v στηνουρά Q. Επειδή A[] + w(,) = + = 7 < = A[]θέτουμε A[] = 7, B[] = καιενημερώνουμετο κλειδίτης στηνουρά Q. Επειδή A[] + w(,) = + = 6 < = A[]θέτουμε A[] = 6, B[] = καιενημερώνουμετο κλειδίτης v στηνουρά Q. v v v 0 A=[ 0,,, 7, 6, ] B=[, 0,, ] Q=[ v,, v ]

. Επειδήηουράπροτεραιότητας Qείναιμηκενή,αφαιρούμεαπότην Qτηνκορυφήμετομικρότερο κλειδί,την v.απότην v καταλήγουντόξαστιςκορυφές v, και v. Επειδή A[]+w(,) = + = 6 > = A[]δενεκτελούμεκαμιάενέργεια. Επειδή A[]+w(,) = + = 6 < 7 = A[]θέτουμε A[] = 6, B[] = καιενημερώνουμετοκλειδί της στηνουρά Q. Επειδή A[]+w(,) = + = < 6 = A[]θέτουμε A[] =, B[] = καιενημερώνουμετοκλειδί της v στηνουρά Q. v v v 0 A=[ 0,,, 6,, ] B=[, 0,, ] Q=[, v ] 6. Επειδήηουράπροτεραιότητας Qείναιμηκενή,αφαιρούμεαπότην Qτηνκορυφήμετομικρότερο κλειδί,την v.δενυπάρχουντόξαμεαρχήτην v επομένωςδενεκτελούμεκαμιάενέργεια. v v v 0 A=[ 0,,, 6,, ] B=[, 0,, ] Q=[ ] Αυτότοβήμαμπορείναπαραλειφθείδιότιεπειδήηv δενπεριέχεταιστηνουράτοκόστοςτηςείναιήδημικροτεροαπό όλες τις κορυφές που περιέχονται στην ουρά. 6

7. Επειδήηουράπροτεραιότητας Qείναιμηκενή,αφαιρούμεαπότην Qτηνκορυφήμετομικρότερο κλειδί,την.απότην καταλήγειτόξοστηνκορυφή v. Επειδή A[]+w(,) = 6+ = 7 > 6 = A[]δενεκτελούμεκαμιάενέργεια. v v v 0 A=[ 0,,, 6,, ] B=[, 0,, ] Q=[ ] 8. Επειδή η ουρά προτεραιότητας Q είναι κενή, η εύρεση των ελάχιστων μονοπατιών ολοκληρώθηκε. Τα μήκη των αντίστοιχων ελάχιστων μονοπατιών βρίσκονται στον πίνακα A. Για την εύρεση των αντίστοιχων ελάχιστων μονοπατιών ξεκινάμε από την τελευταία κορυφή και χρησιμοποιώνταςτονπίνακα Bκινούμαστεανάποδαμέχριναφτάσουμεστηνκορυφή. Γιατηνεύρεσητουελάχιστουμονοπατιούμετέλοςτηνκορυφή v έχουμεότι: Ητελευταίακορυφήείναιηv. Επειδή B[] = 0,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιη. Άρα,τομονοπάτιείναιτο, v μεβάρος A[] =. Γιατηνεύρεσητουελάχιστουμονοπατιούμετέλοςτηνκορυφή v έχουμεότι: Ητελευταίακορυφήείναιηv. Επειδή B[] =,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιηv. Επειδή B[] = 0,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιη. Άρα,τομονοπάτιείναιτο, v, v μεβάρος A[] =. Γιατηνεύρεσητουελάχιστουμονοπατιούμετέλοςτηνκορυφή έχουμεότι: Ητελευταίακορυφήείναιη. Επειδή B[] =,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιηv. Επειδή B[] =,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιηv. Επειδή B[] = 0,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιη. Άρα,τομονοπάτιείναιτο, v, v, μεβάρος A[] = 6. Γιατηνεύρεσητουελάχιστουμονοπατιούμετέλοςτηνκορυφή v έχουμεότι: Ητελευταίακορυφήείναιηv. Επειδή B[] =,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιηv. Επειδή B[] =,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιηv. Επειδή B[] = 0,ηπροηγούμενηκορυφήστοελάχιστομονοπάτιείναιη. Άρα,τομονοπάτιείναιτο, v, v, v μεβάρος A[] =. Σε κάθε εκτέλεση του αλγορίθμου του Dijkstra αντιστοιχεί ένα δένδρο με κορυφές τις κορυφές του γραφήματος και τόξα(ή δεσμούς) τα τόξα(ή τους δεσμούς) που συμμετέχουν στα ελάχιστα μονοπάτια, το οποίο ονομάζεται δένδρο ελάχιστων μονοπατιών. Για παράδειγμα, στην εκτέλεση του αλγορίθμου του Dijkstra αντιστοιχεί το επόμενο δένδρο ελάχιστων μονοπατιών. 7

v v v v v v 0 A=[ 0,,, 6,, ] B=[, 0,, ] Ηκατασκευήτουαντίστοιχουδένδρουπροκύπτειαπότονπίνακα B θέτονταςκάθεκορυφή v j, με πεπερασμένηθετικήτιμή B[j] = iωςπαιδίτηςκορυφής v j. Άσκηση. Να βρεθούν τα ελάχιστα μονοπάτια του επόμενου κατευθυνόμενου γραφήματος με αρχή την κορυφή v v 8 6 6 v 7 v 6 v v και στη συνέχεια να κατασκευασθεί το αντίστοιχο δένδρο ελάχιστων μονοπατιών.. Να βρεθούν τα ελάχιστα μονοπάτια του επόμενου κατευθυνόμενου γραφήματος με αρχή την κορυφή,τοοποίοπροκύπτειαπότοπροηγούμενομεαύξησηόλωντωνβαρώντουκατά v v 9 7 7 v 7 6 v 6 v v και στη συνέχεια να κατασκευασθεί το αντίστοιχο δένδρο ελάχιστων μονοπατιών. Τί παρατηρείται; Είναι τα ελάχιστα μονοπάτια ίδια με πρίν; Γιατί; 8