ΠΑΡΑΣΚΕΥΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ Α.Μ.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΡΑΣΚΕΥΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ Α.Μ."

Transcript

1 Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Π Α Τ Ρ Ω Ν Π Ο Λ Υ Τ Ε Χ Ν Ι Κ Η Σ Χ Ο Λ Η ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΟΝΤΕΛΑ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΧΡΟΝΟΕΞΑΡΤΩΜΕΝΗΣ ΠΟΛΥΤΡΟΠΙΚΗΣ ΔΡΟΜΟΛΟΓΗΣΗΣ ΣΕ ΣΥΓΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ ΠΑΡΑΣΚΕΥΟΠΟΥΛΟΣ ΑΝΔΡΕΑΣ Α.Μ. : 1056 Μεταπτυχιακό Πρόγραμμα «Επιστήμη και Τεχνολογία Υπολογιστών» Επιβλέπων Καθηγητής Χρήστος Ζαρολιάγκης Πάτρα, Φεβρουάριος 2016

2 Copyright Παρασκευόπουλος Ανδρέας, 2016 Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα.

3 Ευχαριστίες Ευχαριστώ θερμά τον επιβλέποντα καθηγητή μου κ. Χρήστο Ζαρολιάγκη που μου εμπιστεύτηκε την εκπόνηση της παρούσας διπλωματικής εργασίας, καθώς και για την υποστήριξη και την καθοδήγηση που μου παρείχε. Ευχαριστώ πολύ, επίσης, τους υπόλοιπους καθηγητές της τριμελούς εξεταστικής επιτροπής, κ. Ευστράτιο Γαλλόπουλο και κ. Σπύρο Κοντογιάννη, για το χρόνο που αφιέρωσαν για τη διπλωματική εργασία μου. Επίσης, ιδιαίτερα ευχαριστώ την οικογένειά μου για τη φροντίδα, την αφοσίωση, την αγάπη και την πολύτιμη προσφορά τους. [1][2][3] [4] [5] [6][7] [8][9][10][11][12][13][14][15][16][17][18][19][20] [21] [22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40][41][42][ 43][44][45][46][47][48][49][50]

4 Περίληψη Στη σύγχρονη εποχή, η χρήση προηγμένων εφαρμογών δρομολόγησης καθίσταται όλο και πιο αναγκαία για όσους ταξιδεύουν. Σε αυτό το πλαίσιο, το ενδιαφέρον επικεντρώνεται σε εφαρμογές που παρέχουν έγκυρες διαδρομές καθ' όλη τη διάρκεια της μέρας, συνδυάζοντας πολλαπλά μέσα μεταφοράς. Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η εύρεση βέλτιστων πολυτροπικών διαδρομών σε συγκοινωνιακά δίκτυα Μέσων Μαζικής Μεταφοράς (ΜΜΜ). Το πρόβλημα που μελετάται αφορά τον υπολογισμό της βέλτιστης πολυτροπικής διαδρομής από ένα σταθμό-αφετηρία προς ένα σταθμό-προορισμό, σε οποιαδήποτε χρονική στιγμή αναχώρησης, με χρήση περισσότερων του ενός μέσων μεταφοράς (πολυτροπική μετακίνηση), έτσι ώστε να ελαχιστοποιείται το κόστος του ταξιδιού (απόσταση, διάρκεια, αριθμός μετεπιβιβάσεων). Στο πλαίσιο αυτό, εξετάζονται χρονο-εκτεταμένα γραφοθεωρητικά μοντέλα τα οποία αναπαριστούν όλα τα δυνατά δρομολόγια των ΜΜΜ. Συνεισφορά της διπλωματικής εργασίας αποτελεί ο σχεδιασμός και η υλοποίηση νέων αποδοτικών μεθόδων, σχετικά με: α) τον υπολογισμό βέλτιστων πολυτροπικών διαδρομών με οποιοδήποτε συνδυασμό ΜΜΜ, συμπεριλαμβανομένης της δυνατότητας χρήσης ηλεκτρικών αυτοκινήτων και πεζόδρομων, β) τη χρήση ευρετικών μεθόδων για την αποτελεσματική οριοθέτηση των βέλτιστων πολυτροπικών διαδρομών σε δίκτυα ευρείας κλίμακας και γ) την αποτελεσματική διαχείριση των καθυστερήσεων στα ΜΜΜ. Στα πλαίσια της διπλωματικής εργασίας, διεξήχθη εκτενής πειραματική αξιολόγηση των νέων μεθόδων σε συγκοινωνιακά δίκτυα μητροπολιτικού εύρους, όπως του Λονδίνου (με 14,085,810 κόμβους και 41,837,355 ακμές) και του Βερολίνου (με 4,335,387 κόμβους και 12,701,695 ακμές). Παρά το μεγάλο μέγεθος των δικτύων, οι υλοποιήσεις επιτυγχάνουν: α) τον υπολογισμό των βέλτιστων πολυτροπικών διαδρομών σε χρόνο λιγότερο από 10 ms και β) την ενημέρωση των δρομολογίων των οχημάτων, σε περίπτωση καθυστερήσεων, σε χρόνο λιγότερο από 1 ms.

5 Περιεχόμενα ΠΕΡΙΛΗΨΗ... ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ Το πρόβλημα και η σημασία του Σχετική Βιβλιογραφία Στόχοι Διπλωματικής Εργασίας Συνεισφορά Διπλωματικής Εργασίας Δομή... 4 ΚΕΦΑΛΑΙΟ 2 - ΠΡΟΚΑΤΑΡΤΙΚΑ Θεωρία Γραφημάτων Βασικοί ορισμοί Το Πρόβλημα Εύρεσης Συντομότερων Διαδρομών Πίνακας Δρομολόγιων Το Πρόβλημα της Συντομότερης Άφιξης Το Πρόβλημα του Ελάχιστου Αριθμού Μετεπιβιβάσεων Δομές δεδομένων Δομές αναπαράστασης γραφημάτων Ουρά προτεραιότητας ΚΕΦΑΛΑΙΟ 3 - ΣΤΑΤΙΚΗ ΔΡΟΜΟΛΟΓΗΣΗ Ο αλγόριθμος του Dijkstra Περιγραφή Ανάλυση Αναζήτηση Α* Περιγραφή Ανάλυση Μέθοδοι κάτω-οριοθέτησης ΚΕΦΑΛΑΙΟ 4 - ΜΟΝΤΕΛΑ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΔΡΟΜΟΛΟΓΙΩΝ Χρονο-εκτεταμένο Μοντέλο Ρεαλιστικό Χρόνο-Εκτεταμένο Μοντέλο Ανηγμένο Ρεαλιστικό Χρόνο-Εκτεταμένο Μοντέλο Μοντέλο Δυναμικού Πίνακα Δρομολογίων ΚΕΦΑΛΑΙΟ 5 - ΝΕΟ ΜΟΝΤΕΛΟ ΠΟΛΥΤΡΟΠΙΚΗΣ ΔΡΟΜΟΛΟΓΗΣΗΣ Τοπολογία Μέσα μεταφοράς με ελεύθερη αναχώρηση Ευρετήριο Βέλτιστης Άφιξης Αλγόριθμος εύρεσης της Συντομότερης Άφιξης Επέκταση Αλγόριθμος ενημέρωσης ΚΕΦΑΛΑΙΟ 6 - ΔΙΚΤΥΑ ΠΟΛΥΤΡΟΠΙΚΗΣ ΔΡΟΜΟΛΟΓΗΣΗΣ Οδικά Δίκτυα Δίκτυα ΜΜΜ Κατασκευή πολυτροπικού δικτύου ΚΕΦΑΛΑΙΟ 7 - ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ Περιβάλλον Υλοποίησης Δεδομένα Ερωτήματα Πειραματικά Αποτελέσματα Χρόνοι ερωτημάτων Χρόνοι ενημέρωσης Σύγκριση με το RAPTOR ΚΕΦΑΛΑΙΟ 8 - ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΠΡΟΟΠΤΙΚΕΣ ΒΙΒΛΙΟΓΡΑΦΙΑ... 74

6

7 Κεφάλαιο 1 - Εισαγωγή 1.1 Το πρόβλημα και η σημασία του Τα τελευταία χρόνια έχει αυξηθεί το ενδιαφέρον για την υλοποίηση εφαρμογών πολυτροπικής δρομολόγησης (multi-modal routing) πάνω σε αστικά συγκοινωνιακά δίκτυα. Οι εφαρμογές αυτές μπορούν να παρέχουν σε ένα χρήστη όλες τις ζητούμενες κατευθυντήριες οδηγίες για τις μετακινήσεις του σε μια πόλη, επιλέγοντας τα Μέσα Μαζικής Μεταφοράς (ΜΜΜ), με τέτοιο τρόπο ώστε να ελαχιστοποιείται το κόστος του ταξιδιού του (όπως απόσταση, χρονική διάρκεια, αριθμός μετεπιβιβάσεων). Σε αυτό το πλαίσιο, μια βέλτιστη διαδρομή μπορεί να περιλαμβάνει τη χρήση ενός ΜΜΜ (λεωφορείου, τρένου, τραμ) σε οποιοδήποτε κομμάτι του ταξιδίου, λαμβάνοντας υπόψη τον προγραμματισμό των δρομολογίων. Οι εν λόγω εφαρμογές είναι σημαντικές για την ανάπτυξη των έξυπνων πόλεων (smart cities), καθώς δύναται να βελτιώσουν το επίπεδο και την αποδοτικότητα των υπηρεσιών στις δημόσιες μετακινήσεις, και να ενισχύσουν την τουριστική ανάπτυξη, παρέχοντας την κατάλληλη καθοδήγηση και διευκόλυνση στις περιηγήσεις των τουριστών εντός της πόλης. Στην παρούσα διπλωματική εργασία, το πρόβλημα που μελετάται αφορά τον υπολογισμό της βέλτιστης διαδρομής από ένα σταθμό (ή στάση) αφετηρία προς ένα σταθμό (ή στάση) προορισμό: α) σε οποιαδήποτε χρονική στιγμή αναχώρησης από την αφετηρία, β) με χρήση περισσότερων του ενός μέσων μεταφοράς (πολυτροπική μετακίνηση), και γ) έτσι ώστε να ελαχιστοποιείται το συνολικό κόστος του ταξιδιού (όπως απόσταση, χρονική διάρκεια, αριθμός μετεπιβιβάσεων). Μια βασική διαφορά του προβλήματος, σε σχέση με το κλασικό Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής, είναι ότι η επιλογή των ΜΜΜ στα δημόσια δίκτυα μεταφορών έχει ως περιορισμό τη χρονική-εξάρτηση, εφόσον το δρομολόγιο ενός μέσου μεταφοράς μπορεί να χρησιμοποιηθεί σε συγκεκριμένες χρονικές στιγμές μέσα στην ημέρα. Σε γενικές γραμμές, ένας πίνακας δρομολογίων περιέχει τις ακολουθίες αναχωρήσεων και αφίξεων των μέσων μεταφοράς σε στάσεις ή σταθμούς του συγκοινωνιακού δικτύου. Επομένως, για να μπορεί να γίνει ο υπολογισμός της βέλτιστης διαδρομής σε σχέση με τα δρομολόγια των ΜΜΜ, απαιτείται μια κατάλληλη μοντελοποίηση. Τα μοντέλα που έχουν προταθεί σε προηγούμενες μελέτες (παρατίθεται μια επισκόπηση στην εργασία [3]) μπορεί να κατηγοριοποιηθούν σε δυο τύπους: α) αυτά που αναπαριστούν τα δρομολόγια ως πίνακα (array) και β) αυτά που αναπαριστούν τα δρομολόγια ως γράφημα (graph). Ενώ τα πρώτα παρουσιάζουν μικρούς χρόνους στην εύρεση των βέλτιστων διαδρομών, τα δεύτερα είναι πιο ευέλικτα σε αλλαγές του πίνακα δρομολογίων. Στην περίπτωση των γραφοθεωρητικών μοντέλων, υπάρχουν δυο προσεγγίσεις: η χρονο-εξαρτώμενη (time-dependent) και η χρονο-εκταταμένη (time-expanded) [41]. Και οι δυο στηρίζονται στη δημιουργία ενός γραφήματος, το οποίο αναπαριστά τα δεδομένα ενός πίνακα δρομολογίων. Στη χρόνο-εξαρτώμενη προσέγγιση, οι σταθμοί αναπαριστώνται ως κόμβοι και για κάθε ζεύγος κόμβων-σταθμών μεταξύ των οποίων ένα όχημα ταξιδεύει (χωρίς ενδιάμεση στάση) δημιουργείται μια ακμή που τους συνδέει. Το βάρος κάθε ακμής είναι μια χρονικά εξαρτώμενη συνάρτηση, έτσι ώστε η διάρκεια του ταξιδιού να υπολογίζεται σε σχέση με μια χρονική στιγμή αναχώρησης. Αντίθετα, στη χρονο-εκτεμένη προσέγγιση, για κάθε σταθμό δημιουργείται ένα σύνολο κόμβων, που αναπαριστούν τις (διακριτές) αφίξεις ή αναχωρήσεις των οχημάτων. Σε αντίθεση, με τη χρονο-εξαρτώμενη προσέγγιση, τα βάρη των ακμών είναι σταθερά, 1

8 αντιπροσωπεύοντας είτε το χρόνο αναμονής εντός του σταθμού είτε το χρόνο ταξιδιού. Επίσης, ενώ η πρώτη προσέγγιση, απαιτεί μικρότερο μέγεθος γραφήματος, η δεύτερη επιτρέπει μια μεγαλύτερη ευελιξία στη μοντελοποίηση επιπρόσθετων περιορισμών. Συνήθως, στα πλαίσια μιας ρεαλιστικής δρομολόγησης χρειάζεται να ληφθεί υπόψη ως περιορισμός ο ελάχιστος χρόνος μετεπιβίβασης (minimum transfer time). Αυτό αφορά το χρόνο που απαιτείται προκειμένου ένας επιβάτης να επιβιβαστεί εγκαίρως σε ένα διαφορετικό όχημα, όταν π.χ. αυτό το όχημα βρίσκεται σε διαφορετική πλατφόρμα ή όροφο του σταθμού. Μοντέλα που ακλουθούν αυτό τον περιορισμό λέγονται ρεαλιστικά (realistic) [41]. Στη γραφοθεωρητική χρονο-εκταμένη προσέγγιση υπάρχει το απλό Χρονοεκτεταμένο μοντέλο [44], το Ρεαλιστικό Χρονο-εκτεταμένο μοντέλο ( ) [41], το Ανηγμένο Ρεαλιστικό Χρονο-εκτεταμένο μοντέλο ( ) [13] και το Μοντέλο Δυναμικού Πίνακα Δρομολογίων ( ) [13]. Το πρώτο δεν ανήκει στα ρεαλιστικά μοντέλα. Το αποτελεί μια παραλλαγή του, πετυχαίνοντας την ίδια μοντελοποίηση αλλά με μικρότερο μέγεθος γραφήματος. Το, πετυχαίνει το μικρότερο μέγεθος γραφήματος, εφόσον σε αντίθεση με τα υπόλοιπα μοντέλα, σε κάθε σταθμό ξεχωριστά, όλες οι αφίξεις αντιπροσωπεύονται αποκλειστικά από έναν μόνο κόμβο. Στο Κεφάλαιο 4, παρατίθενται αναλυτικότερα τα χαρακτηριστικά των τοπολογιών των γραφημάτων κάθε ενός από τα προαναφερθέντα μοντέλα. Σε γενικές γραμμές, οι διαφοροποιήσεις στην τοπολογία των γραφημάτων των μοντέλων αφορούν περισσότερο μια αντιστάθμιση (trade-off) ως προς αν αυτή είναι ευνοϊκότερη για έναν αλγόριθμο ενημέρωσης των δρομολογίων στο γράφημα, μειώνοντας τον όγκο των απαιτούμενων αλλαγών, ή ευνοϊκότερη για ένα αλγόριθμο εύρεσης της συντομότερης διαδρομής, μειώνοντας το χρόνο αναζήτησης ή τη διάσχιση μέσα στο γράφημα. Τα πολυτροπικά αστικά δίκτυα περιλαμβάνουν εκτός των ΜΜΜ, επιπλέον τρόπους μετακίνησης, οι οποίοι δεν υπόκεινται σε εξαρτήσεις από το χρόνο. Για ένα οδικό δίκτυο, αυτοί μπορεί να είναι το περπάτημα μέσω των πεζόδρομων, το ποδήλατο και το αυτοκίνητο. Σε μια ρεαλιστική δρομολόγηση θα πρέπει να λαμβάνονται υπόψη και αυτοί οι τρόποι μετακίνησης, εφόσον, σε αρκετές περιπτώσεις, οι επιβάτες προκειμένου να φτάσουν στον προορισμό τους μπορεί να χρειαστεί να αλλάξουν πάνω από μια συγκοινωνιακές γραμμές των ΜΜΜ. Για παράδειγμα, οι επιβάτες σε ένα σιδηροδρομικό σταθμό μπορεί να χρειαστεί να διανύσουν πεζοί μια μικρή απόσταση έως μια κοντινή στάση λεωφορείου από όπου μπορούν να συνεχίσουν το ταξίδι τους. Επίσης, ο σταθμός μπορεί να παρέχει τη δυνατότητα χρήσης ηλεκτρικών αυτοκινήτων (electric vehicles). Στη διπλωματική εργασία, στα πλαίσια της ρεαλιστικής και πολυτροπικής δρομολόγησης, αναπτύχθηκε ένα νέο μοντέλο καθώς και οι κατάλληλες μέθοδοι πάνω σε αυτό, για την αποδοτική εύρεση των συντομότερων πολυτροπικών διαδρομών, καθώς και την αποδοτική ενημέρωση του γραφήματος σε καθυστερήσεις των μέσων μεταφοράς. Το μοντέλο αυτό, ονομάζεται Πολυτροπικό Μοντέλο Δυναμικού Πίνακα Δρομολογίων (Multimodal Dynamic Timetable Model), και βασίζεται στο [13]. Στο, επιτρέπονται επιπλέον τρόποι μεταφοράς πέραν των ΜΜΜ, όπως το περπάτημα στο δίκτυο των πεζόδρομων και η χρήση αυτοκινήτου στο οδικό δίκτυο. Επίσης για την βελτιστοποίηση του υπολογισμού των συντομότερων πολυτροπικών διαδρομών, χρησιμοποιήθηκε: α) μια ομαδοποίηση των κόμβων σε κάθε σταθμό, ώστε να είναι δυνατό να αποκλεισθεί η «περιττή» αναζήτηση σε κόμβους του γραφήματος του που δεν χρησιμοποιούν τους τύπους των μέσων μεταφορών του χρήστη, β) ένα ευρετήριο βέλτιστης άφιξης, ώστε να αποκλεισθεί η περιττή αναζήτηση σε κόμβους αναχώρησης που δεν εξασφαλίζουν τη βέλτιστη άφιξη σε γειτονικούς σταθμούς, γ) η 2

9 τεχνική κάτω-οριοθέτησης [32], ώστε να επιτευχτεί ο κατάλληλος στοχοκατευθυνόμενος προσανατολισμός προς έναν επιλεγμένο προορισμό, μειώνοντας τα επαναληπτικά βήματα του αλγορίθμου και δ) η ελάττωση των εισαγωγών στην ουρά προτεραιότητας, ώστε να μειωθεί το κόστος και ο αριθμός των επαναληπτικών βημάτων του αλγορίθμου. 1.1 Σχετική Βιβλιογραφία Μια μεγάλη ποικιλία μοντέλων και μεθόδων έχουν αναπτυχθεί έως σήμερα για την αναπαράσταση των δρομολογίων των ΜΜΜ και για την επίλυση των διάφορων προβλημάτων δρομολόγησης στα συγκοινωνιακά δίκτυα. Σε ένα γενικό πλαίσιο, ως προς τον τρόπο αναπαράστασης των δρομολογίων των ΜΜΜ, τα μοντέλα διακρίνονται σε αυτά που χρησιμοποιούν πίνακες και σε αυτά που χρησιμοποιούν γραφήματα. Μια εκτενής επισκόπηση αυτών παρατίθεται στην εργασία [3]. Στην κατηγορία των μοντέλων που βασίζονται σε πίνακες έχουν προταθεί το Connection Scan Algorithm ( ) [22] και το Round-bAsed Public Transit Optimized Router ( ) [20]. Στο πρώτο, όλες οι συνδέσεις μεταξύ των σταθμών αποθηκεύονται σε ένα πίνακα μιας διάστασης, ενώ στο δεύτερο σε διαφορετικά σύνολα από πίνακες. Σε αυτές τις περιπτώσεις, η ακυκλική φύση των πινάκων των δρομολογίων αξιοποιείται για τη γρήγορη επίλυση του Προβλήματος της Συντομότερης Άφιξης. Πειραματικά αποτελέσματα πρόσφατων εργασιών έχουν δείξει ότι οι προσεγγίσεις που χρησιμοποιούν πίνακες έχουν καλύτερους χρόνους εύρεσης βέλτιστων διαδρομών σε σχέση με αυτές που χρησιμοποιούν γραφήματα [3, 20, 22]. Αυτό επειδή αξιοποιούν καλύτερα την τοπικότητα των αναφορών στη μνήμη. Από την άλλη πλευρά, όμως, η πειραματική αξιολόγησή τους περιορίζεται στη χρονική περίοδο μιας ημέρας. Αντίθετα οι προσεγγίσεις που βασίζονται σε γραφήματα μπορούν να χρησιμοποιηθούν με περιοδικούς πίνακες δρομολογίων. Αυτό ιδιαίτερα σε δίκτυα μεγάλου εύρους, τα καθιστά πιο πρακτικά στην αποθήκευση. Κατά τη διάρκεια των τελευταίων χρόνων, η έρευνα έχει αναδείξει πολλές τεχνικές επιτάχυνσης (speed-up techniques), οι οποίες βελτιώνουν την απόδοση του αλγόριθμου του Dijkstra [24] στο Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής (για παράδειγμα στις εργασίες [3] και [5]). Ωστόσο, αυτές οι τεχνικές αφορούν στατική δρομολόγηση σε οδικά δίκτυα (road network). Ενδιαφέρον αποτελεί πως μπορούν οι τεχνικές επιτάχυνσης να επεκταθούν σε γραφήματα που βασίζονται σε πίνακες δρομολογίων. Στα γραφο-θεωρητκά μοντέλα, ιδιαίτερα έμφαση δίνεται στη μείωση του χρόνου που απαιτείται για την ενημέρωση του γραφήματος σε περιπτώσεις που ο πίνακας δρομολογίων αλλάζει. 1.2 Στόχοι Διπλωματικής Εργασίας Οι στόχοι της διπλωματικής εργασίας, ήταν: α) ο σχεδιασμός και η υλοποίηση ενός νέου μοντέλου για τη ρεαλιστική και πολυτροπική δρομολόγηση σε συγκοινωνιακά δίκτυα και β) η ανάπτυξη αποδοτικών μεθόδων, για το μοντέλο αυτό, για την εύρεση της βέλτιστης πολυτροπικής διαδρομής και για την ενημέρωση σε περιπτώσεις καθυστέρησης των δρομολογίων. 3

10 1.3 Συνεισφορά Διπλωματικής Εργασίας Η πρώτη συνεισφορά αυτής της διπλωματικής εργασίας είναι η θεωρητική μελέτη των μοντέλων και. Η υλοποίηση αποδοτικών μεθόδων στα εν λόγω μοντέλα για την εύρεση της συντομότερης διαδρομής και ενημέρωσης σε περιπτώσεις καθυστέρησης των δρομολογίων. Η δεύτερη συνεισφορά της εργασίας είναι η σχεδίαση και η υλοποίηση ενός νέου μοντέλου στα πλαίσια μιας ρεαλιστικής και πολυτροπικής δρομολόγησης στα συγκοινωνιακά δίκτυα. Η τρίτη συνεισφορά της εργασίας είναι η διεξαγωγή μιας εκτεταμένης πειραματικής αξιολόγησης, συγκρίνοντας την απόδοση των μεθόδων στα μοντέλα, και, στα στιγμιότυπα των συγκοινωνιακών δικτύων του Βερολίνου και του Λονδίνου. 1.4 Δομή Η διάρθρωση της εργασίας είναι η εξής: Στο Κεφάλαιο 1, πραγματοποιείται μια σύντομη επισκόπηση του προβλήματος, των στόχων και της συνεισφοράς της διπλωματικής εργασίας. Στο Κεφάλαιο 2, ορίζεται το εννοιολογικό και γραφοθεωρητικό υπόβαθρο της εργασίας. Στο Κεφάλαιο 3, περιγράφεται το βασικό υπολογιστικό μοντέλο για τη στατική δρομολόγηση (σε οδικά δίκτυα). Στο Κεφάλαιο 4, παρουσιάζεται μια ευρεία κατηγορία χρονο-εκτεμένων γραφημάτων για τη μοντελοποίηση του πίνακα δρομολογίων των ΜΜΜ. Στο Κεφάλαιο 5, περιγράφεται το νέο μοντέλο πολυτροπικής δρομολόγησης που αναπτύχθηκε στα πλαίσια της εργασίας. Στο Κεφάλαιο 6, παρατίθενται τα εξεταζόμενα δίκτυα της πολυτροπικής δρομολόγησης. Στο Κεφάλαιο 7, περιέχεται η πειραματική αξιολόγηση των υλοποιημένων αλγορίθμων. Στο Κεφάλαιο 8, παρουσιάζονται τα συμπεράσματα και οι προτάσεις για μελλοντική εργασία. 4

11 Κεφάλαιο 2 - Προκαταρτικά Στο παρόν κεφάλαιο παρουσιάζεται το βασικό θεωρητικό υπόβαθρο της διπλωματικής εργασίας. Συγκεκριμένα, παρουσιάζονται οι απαιτούμενοι, στο πλαίσιο της εργασίας, ορισμοί από τη Θεωρία Γραφημάτων, οι δομές γειτνίασης, ευθύδρομου άστρου και πακεταρισμένης μνήμης για την αναπαράσταση ενός γραφήματος-δικτύου στα πλαίσια ενός υπολογιστικού συστήματος και οι ειδικοί συμβολισμοί για την αναπαράσταση ενός πινάκα δρομολόγησης. 2.1 Θεωρία Γραφημάτων Βασικοί ορισμοί Στη Θεωρία Γραφημάτων ένα γράφημα (graph) ορίζεται ως ένα διατεταγμένο ζεύγος, όπου είναι το σύνολο των κόμβων και το σύνολο των ακμών. Στο υπόλοιπο της εργασίας, όταν ορίζεται το μέγεθος του γραφήματος, ο αριθμός των κόμβων θα συμβολίζεται με και ο αριθμός των ακμών με. Μια ακμή στο συνδέει δύο κόμβους του γραφήματος. Με συμβολίζεται η ακμή που συνδέει τους κόμβους και. Για μια ακμή, ο κόμβος αποτελεί την ουρά (tail) ή την αρχή (start) της ακμής, και ο κόμβος την κεφαλή (head) ή το τέλος (end) της ακμής. Η ακμή καλείται η προσπίπτουσα (incident) των κόμβων και. Οι κόμβοι και είναι τα άκρα της ακμής. Δύο κόμβοι που συνδέονται με μια κοινή ακμή καλούνται γειτονικοί (adjacent). Ένας κόμβος καλείται απομονωμένος αν δεν έχει καμία ακμή προσπίπτουσα σε αυτόν. Δυο ακμές που έχουν ένα κοινό άκρο καλούνται γειτονικές. Δυο ακμές που έχουν κοινά και τα δυο άκρα καλούνται παράλληλες (parallel). Μια ακμή, της οποίας τα δυο άκρα ταυτίζονται, καλείται βρόχος (loop). Όταν δεν προσδιορίζεται η κατεύθυνση των ακμών, ανάμεσα στα άκρα τους, τότε το γράφημα θα λέγεται μη κατευθυνόμενο (undirected graph). Στο μη κατευθυνόμενο γράφημα οι ακμές ορίζονται ως διμελή σύνολα κόμβων ή, δηλαδή. Αντίθετα, όταν προσδιορίζεται η κατεύθυνση των ακμών, το γράφημα θα λέγεται κατευθυνόμενο (directed graph). Στο κατευθυνόμενο γράφημα, οι ακμές ορίζονται ως διατεταγμένα ζεύγη κόμβων, κατά σύμβαση ως. Εικόνα 1: Μη-κατευθυνόμενο γράφημα G. Εικόνα 2: Κατεθυνόμενο γράφημα G. 5

12 Ο βαθμός (degree) ενός κόμβου σε ένα μη κατευθυνόμενο γράφημα είναι ο αριθμός όλων των ακμών που είναι προσπίπτουσες στον. Σε ένα κατευθυνόμενο γράφημα, ορίζεται αντίστοιχα ο βαθμός εισόδου (indegree) ενός κόμβου, για το πλήθος των ακμών που εισέρχονται (καταλήγουν) σε αυτόν και ο βαθμός εξόδου (outdegree) για το πλήθος των ακμών που εξέρχονται (ξεκινούν) από αυτόν. Μια διαδρομή (path) είναι μια ακολουθία από διαδοχικές ακμές ώστε, για, η κεφαλή της να ταυτίζεται με την ουρά της. Μια διαδρομή είναι απλή (simple path) αν κάθε κόμβος εμφανίζεται το πολύ μία φορά στην ακολουθία. Κατ επέκταση, σε μια απλή διαδρομή δεν εμφανίζεται η ίδια ακμή πάνω από μια φορά. Μια διαδρομή είναι κύκλος (cycle) αν ξεκινά και τελειώνει στον ίδιο κόμβο. Ένα μη κατευθυνόμενο γράφημα καλείται συνεκτικό (connected) αν για οποιοδήποτε ζεύγος κόμβων του γραφήματος και υπάρχει τουλάχιστον μια διαδρομή που να συνδέει τα και. Στην περίπτωση των κατευθυνόμενων γραφημάτων διακρίνουμε τρεις ειδικές περιπτώσεις συνεκτικότητας. Όταν για οποιοδήποτε ζεύγος κόμβων και του γραφήματος υπάρχει τουλάχιστον μια διαδρομή που να τους συνδέει, κατευθυνόμενη είτε από τον προς τον είτε από τον προς τον τότε το γράφημα καλείται μονομερώς συνεκτικό. Αν για κάθε ζεύγος κόμβων και, υπάρχει τουλάχιστον μια διαδρομή από τον στον και ταυτόχρονα τουλάχιστον μια διαδρομή από τον στον τότε το γράφημα καλείται ισχυρά συνεκτικό. Ένα κατευθυνόμενο γράφημα καλείται ασθενώς συνεκτικό αν δεν είναι μονομερώς και ισχυρά συνεκτικό, και επιπλέον το μη κατευθυνόμενο γράφημα που προκύπτει από αυτό, όταν δεν ληφθούν υπ όψιν οι κατευθύνσεις των ακμών του, είναι συνεκτικό. Παρακάτω, παρατίθενται ορισμένες ειδικές κατηγορίες γραφημάτων που χρησιμοποιούνται στη παρούσα εργασία : Ένα απλό γράφημα (simple graph) είναι ένα μη-κατευθυνόμενο γράφημα που δεν περιέχει παράλληλες ακμές και βρόγχους. Ένα επίπεδο γράφημα (planar graph) είναι ένα γράφημα του οποίου οι κόμβοι και οι ακμές μπορούν να εξαχθούν σε ένα επίπεδο έτσι ώστε να μην υπάρχουν δύο ακμές που να τέμνονται μεταξύ τους. Ένα κατευθυνόμενο άκυκλο γράφημα (directed acyclic graph) είναι ένα κατευθυνόμενο γράφημα χωρίς κύκλους. Ένα δένδρο (tree) είναι ένα κατευθυνόμενο άκυκλο γράφημα που ικανοποιεί τις ακόλουθες τρεις ιδιότητες : α) Υπάρχει μόνο ένας κόμβος, που ονομάζεται ρίζα (root), χωρίς ακμές να εισέρχονται σε αυτήν. β) Κάθε κόμβος εκτός της ρίζας έχει ακριβώς μια εισερχόμενη ακμή. γ) Υπάρχει μια μοναδική διαδρομή από τη ρίζα προς κάθε κόμβο. Ένα φύλλο (leaf) του δένδρου είναι ένας κόμβος χωρίς εξερχόμενες ακμές. Αν υπάρχει μια ακμή στο T, ο κόμβος λέγεται πατέρας (parent) του και ο παιδί (child) του. Το βάθος (depth) από έναν κόμβο στο είναι το μήκος της διαδρομής από τη ρίζα στον. Το υπογράφημα ενός γραφήματος είναι ένα γράφημα με και. Αν τότε το λέγεται επικαλύπτον ή γεννητικό υπογράφημα 6

13 (spanning subgraph) του. Επιπλέον αν και το είναι δέντρο τότε το λέγεται επικαλύπτον δέντρο (spanning tree) του γραφήματος. Ένα ανεστραμμένο γράφημα (reversed graph) προκύπτει από ένα κατευθυνόμενο γράφημα, εναλλάσσοντας την ουρά και την κεφαλή κάθε ακμής από σε. Η παραπάνω ορολογία μπορεί να επεκταθεί και σε γραφήματα που έχουν βάρηπληροφορίες στους κόμβους ή/και στις ακμές. Ορίζουμε ένα βεβαρυμένο γράφημα (weighted graph) ή δίκτυο (network) ως μια διατεταγμένη τετράδα, όπου το σύνολο των κόμβων, το σύνολο των ακμών, μια συνάρτηση βάρους με πεδίο ορισμού το και μια συνάρτηση βάρους με πεδίο ορισμού το. Το πεδίο τιμών των και, συνήθως επιλέγεται στο. Για παράδειγμα για τις ακμές, η μπορεί να αφορά την απόσταση, το χρόνο ταξιδιού, το κόστος καυσίμων ενός οχήματος. Ενώ για τους κόμβους, η μπορεί να αφορά τις συντεταγμένες για τον προσδιορισμό της γεωγραφικής θέσης των κόμβων, την απόσταση από μια αφετηρία ή προς έναν προορισμό, κ.ά Το Πρόβλημα Εύρεσης Συντομότερων Διαδρομών Δεδομένου ενός συνόλου διαδρομών, που ξεκινούν από έναν κόμβο αφετηρία και καταλήγουν σε έναν κόμβο προορισμό, το Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής ΠΕΣΔ (shortest path problem) αφορά την εύρεση της διαδρομής που οδηγεί στο ελάχιστο «κόστος μετάβασης» ή στην ελάχιστη «απόσταση» από το στο. Το ΠΕΣΔ συναντάται σε διάφορες παραλλαγές. Σε ένα γενικό πλαίσιο, με βάση την επιλογή για το ζεύγος (αφετηρίας, προορισμού), διακρίνονται τέσσερις υποπεριπτώσεις του προβλήματος, οι οποίες διατυπώνονται ως εξής : Το Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής από έναν κόμβο Αφετηρία προς έναν κόμβο Προορισμό (single-pair shortest path problem). Συμβολισμός : ΠΕΣΔΑΠ. Το Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής από έναν κόμβο αφετηρία προς όλους τους κόμβους (single-source shortest path problem). Το Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής από όλους τους κόμβους προς έναν κόμβο προορισμό (single-destination shortest path problem). Το Πρόβλημα Εύρεσης της Συντομότερης Διαδρομής μεταξύ οποιουδήποτε ζεύγους κόμβων στο γράφημα (all-pairs shortest path problem). Ο όρος «απόσταση» χρησιμοποιείται με τη γενικότερη έννοια δεν αφορά απαραίτητα τη φυσική απόσταση, αλλά μπορεί να σχετίζεται με οποιοδήποτε άλλο φυσικό μέγεθος. Για παράδειγμα στα δίκτυα υπολογιστών για τη μεταγωγή ενός πακέτου δεδομένων ένα κριτήριο για την απόσταση μπορεί να είναι το πλήθος των αλμάτων (hops) από κόμβο σε κόμβο, ο χρόνος μετάδοσης, η προτεραιότητα στις ουρές των ακμών κ.λπ. Αντίστοιχα στα συγκοινωνιακά δίκτυα ένα κριτήριο για την απόσταση μπορεί να είναι ο χρόνος ταξιδιού από την αφετηρία στον προορισμό, το χρηματικό αντίτιμο που ένας οδηγός θα πρέπει να πληρώσει στις διαβάσεις των διοδίων, η κατανάλωση που θα έχει το όχημα κ.λπ. Τα συγκοινωνιακά δίκτυα είτε οδικά είτε σιδηροδρομικά είτε ακτοπλοϊκά είτε αεροπορικά μπορούν να μοντελοποιηθούν μέσω κατευθυνόμενων γραφημάτων. Έστω 7

14 ένα τέτοιο κατευθυνόμενο γράφημα. Με, δηλώνεται το μήκος (length) της ακμής. Με βάση τη συνάρτηση μήκους (ή οποιαδήποτε άλλης συνάρτηση κόστους για τα βάρη/κόστη των ακμών), το μήκος (ή γενικά το κόστος) μιας διαδρομής ορίζεται ως. H απόσταση από το στο μέσω μιας διαδρομής, θα δηλώνεται ως. Μια διαδρομή, με αφετηρία (source) τον κόμβο και προορισμό (destination/target) τον κόμβο, λέγεται συντομότερη διαδρομή (shortest path), αν δεν υπάρχει άλλη διαδρομή από τον στον με μικρότερο μήκος (ή κόστος). H συντομότερη απόσταση (shortest distance) από το στο, θα δηλώνεται ως. Το δένδρο συντομότερων διαδρομών (shortest path tree), με ρίζα έναν κόμβο, είναι ένα επικαλύπτον δέντρο του γραφήματος, που περιέχει ακριβώς τις ακμές των συντομότερων διαδρομών από τον προς όλους τους υπόλοιπους κόμβους. 8 Εικόνα 3: Αριστερά ένα γράφημα. Δεξιά το δέντρο συντομότερων διαδρομών του, με ρίζα τον κόμβο. Οι συντομότερες διαδρομές έχουν τις ακόλουθες σημαντικές ιδιότητες : α) Μια οποιαδήποτε υποδιαδρομή -, μέσα σε μια συντομότερη διαδρομή , είναι επίσης συντομότερη. β) Για οποιεσδήποτε δυο συντομότερες διαδρομές - και -, η σύνδεσή τους στο κοινό άκρο, δεν αποδίδει απαραίτητα μια συντομότερη διαδρομή -. Επιπλέον, αν θεωρήσουμε τη συνάρτηση μήκους, τότε ισχύει ότι : γ) Κατά μήκος της διαδρομής, η απόσταση από την αφετηρία προς τον προορισμό είναι αύξουσα συνάρτηση. δ) Η συντομότερη απόσταση από έναν κόμβο σε έναν κόμβο, αποτελεί το μεγαλύτερο κάτω όριο για όλες τις αποστάσεις -. Επομένως κάτω από ένα πεπερασμένο πλήθος βημάτων (εφόσον και πεπερασμένα), συγκρατώντας κάθε φορά τη μικρότερη απόσταση, μπορεί να επιτευχτεί η σύγκλιση στην ελάχιστη δυνατή τιμή. ε) Οι συντομότερες αποστάσεις ικανοποιούν την τριγωνική ισότητα. Για κάθε κόμβο, και, είναι.

15 Λήμμα 2.1. Έστω ένα (κατευθυνόμενο ή μη) γράφημα, με συνάρτηση βάρους, και έστω η συντομότερη διαδρομή μεταξύ των κόμβων και. Τότε οποιαδήποτε υπο-διαδρομή της είναι επίσης μια συντομότερη διαδρομή. Εικόνα 4: Το κόστος (στο ) οποιασδήποτε υποδιαδρομής μέσα σε μια συντομότερη διαδρομή είναι επίσης ελάχιστο. Απόδειξη (απαγωγή σε άτοπο). Θεωρούμε τη συντομότερη διαδρομή. Έστω ότι η υπο-διαδρομή που περιλαμβάνει η δεν είναι μια συντομότερη διαδρομή μεταξύ των κόμβων και, αλλά υπάρχει μια άλλη διαδρομή με μικρότερο κόστος,. Αυτό συνεπάγεται ότι η συνολική διαδρομή που προκύπτει από την ένωση των υποδιαδρομών (βλέπε Εικόνα 4) έχει μικρότερος κόστος από την. Πιο ειδικά : Άρα, η δεν είναι η συντομότερη διαδρομή μεταξύ των κόμβων και. Με βάση την αρχική υπόθεση, αυτό είναι άτοπο. Λήμμα 2.2. Για οποιουσδήποτε κόμβους, και, εάν υπάρχουν οι συντομότερες διαδρομές - και -, τότε :. Εικόνα 5: Η τριγωνική ανισότητα στις συντομότερες αποστάσεις. Απόδειξη (απαγωγή σε άτοπο). Έστω η συντομότερη διαδρομή, έτσι ώστε:. Η σύνδεση στο κοινό άκρο των συντομότερων διαδρομών και, παράγει μια πλήρη διαδρομή από το στο,, με κόστος. Εφόσον, η αναδεικνύεται ως η διαδρομή με το ελάχιστο κόστος από το στο, το οποίο όμως έρχεται σε αντίφαση με την αρχική υπόθεση. Η παραπάνω ιδιότητα είναι ιδιαίτερα σημαντική γιατί στην περίπτωση που είναι γνωστές μόνο οι και, μπορεί να οριστεί ένα κάτω όριο για τη συντομότερη απόσταση, ως εξής :. 9

16 2.2 Πίνακας Δρομολόγιων Ο πίνακας δρομολογίων (timetable) περιέχει όλη τη ζητούμενη πληροφορία των δρομολογίων: τα ΜΜΜ (όπως τρένο, λεωφορείο, τραμ, μετρό κ.τ.λ.) που εκτελούν τα δρομολόγια στο συγκοινωνιακό δίκτυο, τους σταθμούς (stations) ή τις στάσεις (stops) των ΜΜΜ, και τους χρόνους αναχώρησης και άφιξης των ΜΜΜ σε κάθε σταθμό ή στάση. Ειδικότερα, ένας πίνακας δρομολογίων μπορεί να οριστεί ως μια τριάδα, όπου είναι το σύνολο των οχημάτων, το σύνολο των σταθμών και το σύνολο των (στοιχειωδών) συνδέσεων (elementary connections) μεταξύ των σταθμών. Μια σύνδεση υποδηλώνει ότι το όχημα αναχωρεί από το σταθμό τη χρονική στιγμή και φθάνει στο σταθμό τη χρονική στιγμή. Ο συμβολισμός υποδηλώνει την τιμή της μεταβλητής στη στοιχειώδη σύνδεση, όπου η μεταβλητή αντιπροσωπεύει ένα από τα πεδία ( που ορίζουν την. Ο συμβολισμός Η συνάρτηση αντιστοιχεί το με έναν τύπο μεταφοράς. Οι χρόνοι αναχώρησης και άφιξης μια στοιχειώδους σύνδεσης,, αντίστοιχα, είναι ακέραιοι (περισσότερο για πρακτικούς λόγους), στο διάστημα [0, 1440), αντιπροσωπεύοντας το χρόνο σε λεπτά. Έστω δυο χρονικές στιγμές, με τότε ως, συμβολίζεται η χρονική διαφορά τους. Ως συμβολίζεται ο χρόνος ταξιδιού στη σύνδεση (διάρκειας μικρότερης της μιας μέρας). Έστω μια σύνδεση, για μια άφιξη στο σταθμό και μια σύνδεση για μια αναχώρηση από το σταθμό. Αν, τότε η μετεπιβίβαση από το όχημα στο όχημα είναι εφικτή, αν, όπου είναι ο ελάχιστος χρόνος μετεπιβίβασης (minimun transfer time) για το σταθμό. Ως υπόθεση, ο ελάχιστος χρόνος μετεπιβίβασης είναι μικρότερος της διάρκειας μιας ημέρας,. Σε ένα πίνακα δρομολογίων ένα δρομολόγιο (itinerary) είναι μια ακολουθία στοιχειωδών συνδέσεων τέτοια ώστε για κάθε και όταν (χωρίς μετεπιβίβαση) διαφορετικά με μετεπιβίβαση Έστω ότι το δρομολόγιο ξεκινά από τον σταθμό από τον σταθμό τη χρονική στιγμή και φθάνει στο τελικό σταθμό τη χρονική στιγμή. Η διάρκεια (length) του δρομολογίου συμβολίζεται ως και ισούται με:. Ο χρήστης έχοντας τα δεδομένα ενός πίνακα δρομολογίων ζητάει την εύρεση ενός δρομολογίου από κάποιον σταθμό αφετηρία σε κάποιον σταθμό προορισμό ξεκινώντας κάποια στιγμή μέσα στην ημέρα. Συνεπώς ορίζεται ένα ερώτημα (query) ως μια τριάδα, όπου ένας σταθμός αναχώρησης (ή αφετηρίας), ένας σταθμός αφίξεως (ή προορισμού) και η ελάχιστη επιθυμητή ώρα αναχώρησης. Τα επόμενα προβλήματα ορίζουν δυο βασικά κριτήρια για το προσδιορισμό του βέλτιστου δρομολογίου. 10

17 2.2.1 Το Πρόβλημα της Συντομότερης Άφιξης Στο Πρόβλημα της Συντομότερης Άφιξης,, (Earliest Arrival Problem - EAP) ο στόχος είναι η εύρεση του δρομολογίου που επιτυγχάνει τη συντομότερη άφιξη στο σταθμό προορισμού, με βάσει το επιλεγμένο χρόνο αναχώρησης από το σταθμό αφετηρία. Με άλλα λόγια, αναζητείται το δρομολόγιο (αν υπάρχει), με, όπου, και Το Πρόβλημα του Ελάχιστου Αριθμού Μετεπιβιβάσεων Στο Πρόβλημα του Ελάχιστου Αριθμού Μετεπιβιβάσεων,, (minimum number of transfers problem - MNTP) ο στόχος είναι η εύρεση του δρομολογίου που επιτυγχάνει το ελάχιστο αριθμό μετεπιβιβάσεων στο σταθμό προορισμού, με βάσει το επιλεγμένο χρόνο αναχώρησης από το σταθμό αφετηρία. Με άλλα λόγια, αναζητείται το δρομολόγιο, όπου, και με το μικρότερο αριθμό διαφορετικών οχημάτων και κατά τη διάρκεια του ταξιδιού. 2.3 Δομές δεδομένων Στόχος για τη βελτιστοποίηση ενός αλγόριθμου εύρεσης συντομότερων διαδρομών αποτελεί η μείωση και του αριθμού των βημάτων αλλά και του κόστους κάθε βήματος. Το πρώτο μπορεί να επιτευχτεί συρρικνώνοντας τον περιττό χώρο αναζήτησης μέσω στοχοκατευθυνόμενων τεχνικών. Το δεύτερο μπορεί να επιτευχτεί με μια κατάλληλη επιλογή δομών δεδομένων για: α) την αναπαράσταση του γραφήματος και β) την ουρά προτεραιότητας (π.χ. όταν απαιτείται μια διάσχιση κατά αύξουσα σειρά απόστασης) Δομές αναπαράστασης γραφημάτων Υπάρχουν διάφορες δομές που μπορεί να επιλεγούν για την αναπαράσταση των γραφημάτων. Ωστόσο, σε κάθε περίπτωση, η καταλληλότητα μια δομής εξαρτάται σε μεγάλο βαθμό από τα χαρακτηριστικά των δεδομένων εισόδου, και επιπλέον τις απαιτήσεις απόδοσης για την εφαρμογή που χρησιμοποιείται. Στο πλαίσιο της εργασίας, τα γραφήματα που εξετάζονται κατά κύριο λόγο αφορούν δίκτυα μεταφοράς, όπως για παράδειγμα τα οδικά δίκτυα. Αυτού του είδους τα δίκτυα παρουσιάζουν ορισμένα χαρακτηριστικά που τα καθιστούν ιδιαίτερα. Συγκεκριμένα, όπως ότι: είναι αραιά ( ), δυναμικά (μεταβάλλονται - π.χ. υπό την κατασκευή /κλείσιμο δρόμων) και μεγάλα σε μέγεθος (περιλαμβάνουν εκατομμύρια κόμβους και ακμές). Το γεγονός ότι τα δίκτυα έχουν σημαντικά μεγάλο μέγεθος παρακινεί την επιλογή δομών που χρησιμοποιούν γραμμικό χώρο και. Το κριτήριο αυτό είναι σημαντικό, ώστε να καταστεί δυνατή η χρήση τους σε (μικρές φορητές) συσκευές με περιορισμένους πόρους. Οι επιλεγμένες δομές αναπαράστασης γραφημάτων (περισσότερο αναλυτικά στην εργασία [37]) περιγράφονται παρακάτω : 11

18 Αναπαράσταση Λίστα Γειτνίασης Στην αναπαράσταση λίστας γειτνίασης (adjacency list) όλοι οι κόμβοι είναι αποθηκευμένοι σε μια συνδεδεμένη γραμμική λίστα (linear linked list). Ξεχωριστά κάθε κόμβος διατηρεί δυο λίστες από δείκτες οι οποίοι δείχνουν προς τους γειτονικούς κόμβους. Συγκεκριμένα, η μια λίστα δεικτών περιλαμβάνει τις εισερχόμενες ακμές και η άλλη τις εξερχόμενες ακμές του κόμβου (Εικόνα 7). Εικόνα 6: Δικατευθυνόμενο γράφημα με 5 κόμβους και 16 ακμές. Εικόνα 7: Αναπαράσταση λίστας γειτνίασης εξερχόμενων ακμών. Αναπαράσταση ευθύδρομου άστρου Η αναπαράσταση ευθύδρομου άστρου (forward star) συνιστά μία παραλλαγή της λίστας γειτνίασης. Σε αυτή την αναπαράσταση, οι κόμβοι και οι ακμές του γραφήματος αποθηκεύονται ξεχωριστά σε πίνακες. Με βάση την κατηγοριοποίηση των ακμών ως εισερχόμενων ή εξερχόμενων, χρησιμοποιούνται δυο πίνακες ακμών. Οι ακμές είναι ταξινομημένες μέσα στους πίνακες, έτσι ώστε μια ομάδα διαδοχικών θέσεων στον πίνακα να συνιστούν την ομάδα των εισερχόμενων/εξερχόμενων ακμών ενός κόμβου. Κάθε κόμβος διατηρεί δυο δείκτες. Ο ένας δείκτης δείχνει στον πίνακα των εξερχόμενων ακμών, στην αρχή του τμήματος, όπου βρίσκονται συγκεντρωμένες οι εξερχόμενες ακμές, που αντιστοιχούν στον κόμβο (Εικόνα 8). Ο δεύτερος δείκτης δείχνει στο πίνακα των εισερχόμενων ακμών, στην αρχή του τμήματος, όπου βρίσκονται συγκεντρωμένες οι εισερχόμενες ακμές, που αντιστοιχούν στον κόμβο. 12

19 Εικόνα 8: Αναπαράσταση ευθύδρομου άστρου. Πίνακας εξερχόμενων ακμών. Αναπαράσταση γραφήματος πακεταρισμένης-μνήμης Μια πιο σύγχρονη προσέγγιση αποτελεί η δομή μέσω πακεταρισμένης-μνήμης πινάκων [8]. Η αναπαράσταση γραφήματος πακεταρισμένης-μνήμης (Packed-Memory Graph) [37] χρησιμοποιεί τρεις πίνακες πακεταρισμένης-μνήμης, μια για τους κόμβους και δυο για τις ακμές των γραφήματος (είτε ως εισερχόμενες είτε ως εξερχόμενες), με δείκτες μεταξύ τους, ώστε να είναι πλήρης η διασύνδεση τους (Εικόνα 9). Οι πίνακες έχουν ένα δείκτη πυκνότητας, που αφορά το πλήθος των κενών στοιχείων-οπών. Το πλεονέκτημα έγκειται στο ότι οι οπές παρέχουν έτοιμες θέσεις σε νέους κόμβους ή ακμές, όποτε χρειαστεί η εισαγωγή τους στο γράφημα. Επίσης η δομή, μέσω ευέλικτων τεχνικών χωροταξικής διαχείρισης στη μνήμη, μπορεί να επιτύχει μια αποδοτική τοπολογική διάταξη των κόμβων και ακμών στη μνήμη, ώστε οι αστοχίες στη κρυφή μνήμη να ελαχιστοποιούνται, ο αριθμός μεταφορών μπλοκ μνήμης να είναι βέλτιστος και επομένως ένας αλγόριθμος ΕΣΔΑΠ να έχει πολύ μικρότερο χρόνο εκτέλεσης. Κατά προεπιλογή η επιλεγμένη πυκνότητα στη είναι τέτοια ώστε το μέγεθος στους πίνακες των κόμβων και ακμών της δομής να είναι ίσο με την επόμενη δύναμη του 2 από το χώρο που χρειάζονται. Όσο λιγότερα κενά περιέχουν οι πίνακες της δομής, τόσο καλύτερη είναι η απόδοση του γραφήματος στα ερωτήματα συντομότερων διαδρομών. Αντίθετα, η προσθήκη κενών μεγαλώνει το μέγεθος του γραφήματος, κάνοντας πιο ακριβές τις λειτουργίες προσπέλασης και ενημέρωσης των κόμβων και ακμών. Ωστόσο, η πυκνότητα μπορεί να ρυθμιστεί (fine-tuning) ανάλογα με την εφαρμογή. Αν η εφαρμογή απαιτεί πολλές ενημερώσεις, η μπορεί να ρυθμιστεί να έχει μικρότερη πυκνότητα ώστε να έχει αρκετό χώρο για νέους κόμβους και ακμές. Σε λιγότερο δυναμικά σενάρια, η πυκνότητα μπορεί να αυξηθεί σε μεγαλύτερο βαθμό. Επίσης, σε ένα καθαρά στατικό σενάριο, το γράφημα μπορεί να συμπιεστεί πλήρως αφαιρώντας όλα τα κενά στοιχεία των πινάκων της δομής. 13

20 Εικόνα 9:Αναπαράσταση γραφήματος πακεταρισμένης μνήμης. Κάθε δομή έχει τα δικά της πλεονεκτήματα και μειονεκτήματα, κυρίως ως αποτέλεσμα ενός συμβιβασμού (trade-off) ως προς την πολυπλοκότητα του χρόνου εκτέλεσης και του χώρου μνήμης. Παρακάτω παρατίθεται μια ποιοτική σύγκριση των δομών ως προς τη χρονική και χωρική πολυπλοκότητα: Πίνακας 1: Σύγκριση πολυπλοκότητας χώρου, χρόνου εκτέλεσης και μεταφορών μνήμης στις τρείς δομές γραφημάτων. είναι το μέγεθος των μπλοκ της κρυφής μνήμης και ο μέγιστος βαθμός του γραφήματος. 14

21 2.3.2 Ουρά προτεραιότητας Ο αλγόριθμος του Dijkstra [24] χρειάζεται να επισκεφτεί τους κόμβους κατά αύξουσα σειρά απόστασης από την αφετηρία (Ενότητα 3.1). Αυτό ισχύει επίσης για όλες τις παραλλαγές ή επεκτάσεις του αλγορίθμου του Dijkstra με συνάρτηση κόστους. Μια δομή που μπορεί να υποστηρίξει την εξέταση των κόμβων με βάση την τρέχουσα ελάχιστη απόσταση είναι η ουρά προτεραιότητας. Στην περίπτωσή μας, η υλοποίηση της ουράς προτεραιότητας θα πρέπει να στοχεύει ειδικά στην αποδοτική εισαγωγή ενός κόμβου μέσα στην ουρά, στην αποδοτική εξαγωγή ενός κόμβου από την ουρά και στην αποδοτική ενημέρωση του κλειδιού ενός κόμβου της ουράς. Πάνω σε αυτό, η πιο κλασική υλοποίηση, με χωρική πολυπλοκότητα, αποτελεί ο δυαδικός σωρός ελαχίστων [1]. Ο δυαδικός σωρός (binary heap) συνιστά ένα πλήρες διατεταγμένο δυαδικό δένδρο με τα φύλλα στο τελευταίο επίπεδο συμπτυγμένα προς τα αριστερά. Ο δυαδικός σωρός ελαχίστων (min heap) ορίζεται επιπλέον με την ιδιότητα ότι το κλειδί που έχει κάθε γονέας-κόμβο δεν είναι μεγαλύτερο από τα αντίστοιχα των παιδιών του. Παρακάτω παρατίθεται η πολυπλοκότητα των λειτουργιών της υλοποίησης του σωρού ελαχίστων σε δομή ουράς προτεραιότητας. Μέγεθος Κάθε ζεύγος {κόμβος, κλειδί}, θα αναφέρεται ως ένα στοιχείο της ουράς προτεραιότητας. Ο δυαδικός σωρός μπορεί να υλοποιηθεί σε ένα πίνακα με θέσεις. Η ρίζα του σωρού βρίσκεται στη θέση. Το αριστερό και το δεξιό παιδί ενός στοιχείου σε μια θέση βρίσκονται στις θέσεις και αντίστοιχα. O σωρός για ένα γράφημα δύναται να έχει οριοθετημένο μέγεθος το πολύ, δηλαδή όσοι και οι κόμβοι του. Εισαγωγή στοιχείου Όταν εισάγεται ένα καινούργιο στοιχείο στο σωρό, αυτό τοποθετείται στην επόμενη θέση μετά από το τελευταίο μη-κενό στοιχείο του πίνακα. Αν η ιδιότητα του σωρού ελαχίστων δεν παραβιάζεται, δηλαδή το κλειδί του νέου στοιχείου είναι μεγαλύτερο ή ίσο από αυτό του γονέα του, τότε το στοιχείο παραμένει στη θέση του. Σε διαφορετική περίπτωση παιδί και γονέας ανταλλάσσουν θέσεις στο δέντρο. Αυτή η διαδικασία συνεχίζεται αναδρομικά μέχρι το καινούργιο στοιχείο να βρεθεί σε μια θέση, τέτοια ώστε να μην παραβιάζεται η ιδιότητα του σωρού ελαχίστων. Στη χειρότερη περίπτωση το νέο στοιχείο θα μετακινηθεί έως τη θέση της ρίζας του δέντρου. Ξεκινώντας από τα φύλλα του δέντρου έως τη ρίζα, αυτό περιλαμβάνει το πολύ τόσα βήματα όσο και το ύψος του δέντρου. Επομένως, ο χρόνος εισαγωγής ενός στοιχείου στο δέντρο στη χειρότερη περίπτωση είναι, όπου το πλήθος των στοιχείων του σωρού και το ύψος του δέντρου. Εύρεση ελάχιστου στοιχείου Το μικρότερο στοιχείο της δομής, λόγω της ιδιότητας του σωρού, θα βρίσκεται πάντα στη ρίζα. Έτσι το στοιχείο αυτό μπορεί να βρεθεί άμεσα σε χρόνο, προσπελαύνοντας το πρώτο στοιχείο του πίνακα. 15

22 Εξαγωγή στοιχείου Η εξαγωγή του ελάχιστου στοιχείου είναι εν μέρει παρόμοια με την εισαγωγή. Το μικρότερο στοιχείο βρίσκεται πάντα στη ρίζα αλλά όταν αυτό εξαχθεί και διαγραφεί δημιουργείται ένα κενό. Το κενό πρέπει να καλυφτεί με τέτοιο τρόπο ώστε ο σωρός να διατηρήσει την ιδιότητά του, ως σωρού ελαχίστων. Μετά την απομάκρυνση του μικρότερου στοιχείου τοποθετείται στη ρίζα το τελευταίο στοιχείο του σωρού. Αν το στοιχείο που περιέχει τώρα η ρίζα είναι μικρότερο ή ίσο με τα παιδιά του μένει ως έχει. Σε διαφορετική περίπτωση το μικρότερο παιδί παίρνει τη θέση του γονέα και αυτό συνεχίζεται αναδρομικά (με κατεύθυνση προς το τελευταίο επίπεδο όπου βρίσκονται τα φύλλα) μέχρι αυτό το στοιχείο, που ήταν αρχικά στη ρίζα, να βρεθεί σε μία θέση στο δέντρο, για την οποία τα κλειδιά των παιδιών του να μην είναι μικρότερα από το δικό του κλειδί. Και σε αυτήν τη περίπτωση ο χρόνος εξαγωγής, στη χειρότερη περίπτωση, είναι, όπου το πλήθος των στοιχείων του σωρού και το ύψος του δέντρου. Μείωση κλειδιού ενός στοιχείου Μια μείωση του κλειδιού μπορεί να οδηγήσει ενδεχομένως σε παραβίαση της ιδιότητας του σωρού. Αν το νέο κλειδί του στοιχείου είναι μικρότερο ή ίσο από αυτό του γονέα του, τότε το στοιχείο παραμένει στη θέση του. Σε διαφορετική περίπτωση παιδί και γονέας ανταλλάσσουν θέσεις. Αυτή η διαδικασία συνεχίζεται αναδρομικά μέχρι το στοιχείο με το τροποποιημένο κλειδί να βρει μια θέση τέτοια ώστε να ικανοποιείται η ιδιότητα του σωρού. Στη χειρότερη περίπτωση το στοιχείο θα χρειαστεί να μετακινηθεί από τη ρίζα έως το τελευταίο επίπεδο του δέντρου. Συνεπώς και σε αυτήν τη περίπτωση η μείωση του κλειδιού είναι, όπου το πλήθος των στοιχείων του σωρού και το ύψος του δέντρου. Πρέπει να σημειωθεί ότι στη γενική περίπτωση, ανεξάρτητα από το πόσο αποδοτική είναι η υλοποίηση της ουράς, όταν αυτή αυξάνεται σε μέγεθος τότε κοστίζουν παραπάνω οι λειτουργίες ενημέρωσής της. Στην περίπτωση μιας στοχοκατευθυνόμενης αναζήτησης το ζητούμενο είναι να εμποδιστεί η ουρά προτεραιότητας να αποκτήσει μεγάλο μέγεθος, αποφεύγοντας την εισαγωγή κόμβων που δεν χρειάζεται να εξερευνηθούν (εφόσον αυτοί δεν ανήκουν στη ζητούμενη συντομότερη διαδρομή). Στην καλύτερη περίπτωση η ουρά προτεραιότητας θα πρέπει να έχει μέγεθος το πολύ, όπου είναι το πλήθος των κόμβων της συντομότερης διαδρομής. 16

23 Κεφάλαιο 3 - Στατική δρομολόγηση Στα παρόν κεφάλαιο περιγράφεται το βασικό υπολογιστικό μοντέλο για τη στατική δρομολόγηση (σε οδικά δίκτυα). Παρουσιάζονται δυο αλγόριθμοι για την εύρεση των συντομότερων διαδρομών: ο αλγόριθμος του Dijkstra και ο Α star. 3.1 Ο αλγόριθμος του Dijkstra Ο αλγόριθμος του Dijkstra [24] δημοσιεύτηκε το 1959 από τον Edsger Wybe Dijkstra. Ο εν λόγω αλγόριθμος υπολογίζει τις συντομότερες διαδρομές από μια αφετηρία προς κάθε προορισμό-κόμβο του γραφήματος. Η βασική λειτουργία του έγκειται στην ανάπτυξη ενός δέντρου αναζήτησης το οποίο επαναληπτικά διευρύνεται κατά πλάτος και κατά αύξουσα απόσταση γύρω από την αφετηρία. Ειδικά, η προσέγγιση που ακολουθεί ο αλγόριθμος στηρίζεται στο μοντέλο της άπληστης αναζήτησης, εφόσον σε κάθε βήμα επιλέγει τη βέλτιστη λύση τοπικά. Για την εύρεση μιας συντομότερης διαδρομής -, ο αλγόριθμος του Dijkstra αρκεί να αναπτύξει το δέντρο συντομότερων διαδρομών από την αφετηρία, έως ότου φτάσει στον κόμβο. Η αναζήτηση του αλγόριθμου ΕΣΔΑΠ του Dijkstra πραγματοποιείται χωρίς πληροφορία, δηλαδή χωρίς τη δυνατότητα να οριοθετήσει και να εστιάσει την αναζήτησή του στο τμήμα του γραφήματος που περιέχεται η ζητούμενη συντομότερη διαδρομή Περιγραφή Στην παρούσα ενότητα πραγματοποιείται μια εκτεταμένη ανάλυση του αλγορίθμου του Dijkstra. Παρακάτω, δίνεται μια λεπτομερής περιγραφή της δομής και της λειτουργίας του αλγορίθμου : Είσοδος - Έξοδος Η είσοδος του αλγορίθμου είναι ένα γράφημα κατευθυνόμενο ή μη, τα βάρη των ακμών του γραφήματος, ένας κόμβος-αφετηρία και ένας κόμβος-προορισμός. Η έξοδος, ανάλογα με το κριτήριο τερματισμού, είναι ολόκληρο ή ένα μέρος από το δέντρο των συντομότερων διαδρομών, με ρίζα τον. Περιορισμοί Ο μόνος περιορισμός για την ορθή λειτουργία του αλγορίθμου είναι η χρήση μιας μηαρνητικής συνάρτησης κόστους. Αυτό ισοδυναμεί με την απαίτηση η μονοτονία της απόστασης κατά μήκος μιας οποιασδήποτε διαδρομής να μην μεταβάλλεται, αλλά να είναι αύξουσα έως τον προορισμό. Όπως αποδεικνύεται και παρακάτω, όταν ικανοποιείται ο περιορισμός, τότε υπάρχει εγγύηση ότι ο αλγόριθμος θα βρίσκει πάντα τις συντομότερες διαδρομές. 17

24 Καταστάσεις Κατά τη διάρκεια της εξερεύνησης του γραφήματος από τον αλγόριθμο, οποιοσδήποτε κόμβος του γραφήματος μπορεί να εισέλθει σε μια από τις ακόλουθες καταστάσεις: α) μη-εξερευνημένος (unexplored) ή και μη-προσβάσιμος (unreached) σε περίπτωση που το γράφημα δεν είναι συνεκτικό, β) εξερευνημένος (explored) και γ) διευθετημένος (settled) κόμβος. Κάθε μια από τις καταστάσεις έχει ιδιαίτερη σημασία. Συγκεκριμένα, ένας μηεξερευνημένος κόμβος θεωρείται ένας κόμβος, που ο αλγόριθμος δεν τον έχει επισκεφτεί ακόμη. Ένας εξερευνημένος κόμβος θεωρείται ένας κόμβος, που ο αλγόριθμος τον έχει επισκεφτεί τουλάχιστον μια φορά. Ένας διευθετημένος κόμβος θεωρείται ένας εξερευνημένος κόμβος, για τον οποίο ο αλγόριθμος έχει βρει τη συντομότερη από όλες τις διαδρομές, που ξεκινούν από την αφετηρία και καταλήγουν σε αυτόν. Μεταβλητές Ο αλγόριθμος πρέπει σε πραγματικό χρόνο να μπορεί να αναγνωρίζει και να διαχειρίζεται την κατάσταση κάθε κόμβου στο γράφημα. Για το σκοπό αυτό, στα πλαίσια της λειτουργίας του, σε κάθε κόμβο χρησιμοποιείται μια ομάδα μεταβλητώνετικετών. Πιο ειδικά: Στο διάνυσμα (distance), μεγέθους, αποθηκεύεται η απόσταση κάθε κόμβου από την αφετηρία. Η απόσταση που υπολογίζεται από την αφετηρία προς τον κόμβο αφορά το συνολικό μήκος ή κόστος μιας διαδρομής -. Προφανώς η απόσταση εξαρτάται από το ποια διαδρομή - λαμβάνεται υπόψη. Από τη στιγμή που ενδέχεται να υπάρχουν πολλές διαδρομές -, υπό διαφορετικές ακολουθίες κόμβων, μέχρι να γίνει η σύγκλιση στη ζητούμενη συντομότερη διαδρομή, μέσω της οποίας επιτυγχάνεται το μικρότερο δυνατό κόστος, μπορεί η να τροποποιηθεί σταδιακά περισσότερες από μια φορές. Επίσης, στο διάνυσμα (predecessor), μεγέθους, για οποιονδήποτε κόμβο αποθηκεύεται ο γειτονικός διευθετημένος κόμβος, από τον οποίο διέρχεται η συντομότερη διαδρομή -. Μέσω του διανύσματος, στην ουσία, αποθηκεύεται η ακριβής διάταξη των διευθετημένων κόμβων κάθε συντομότερης διαδρομής, με ρίζα την αφετηρία. Μηχανισμός αναζήτησης Ο αλγόριθμος του Dijkstra, όπως και οποιοσδήποτε άλλος αλγόριθμος αναζήτησης συντομότερων διαδρομών, στηρίζεται πάνω σε μια στρατηγική εξερεύνησης του γραφήματος. Στην περίπτωσή μας, στο πλαίσιο της άπληστης και απληροφόρητης αναζήτησης, η αποδοτικότερη προσέγγιση συνεπάγεται την επίσκεψη των κόμβων του γραφήματος κατά αύξουσα σειρά απόστασης από την αφετηρία. Αυτού του είδους η αναζήτηση μπορεί να υποστηριχθεί αποδοτικότερα με τη χρήση ουρών προτεραιότητας. Μια ουρά προτεραιότητας (priority queue) παρέχει ότι χρειάζεται, προκειμένου οι κόμβοι του γραφήματος να επεξεργασθούν στη «σωστή» σειρά. Αναλυτικότερα, ο αλγόριθμος, σε ένα οποιοδήποτε βήμα, εισάγει στην ουρά προτεραιότητας έναν κόμβο, τον οποίο επισκέπτεται για πρώτη φορά. Η θέση του κόμβου μέσα στην ουρά συσχετίζεται με ένα κλειδί προτεραιότητας, το οποίο επιλέγεται ίσο με την απόστασή του από την αφετηρία, δηλαδή την. Επιλέγοντας τη διάταξη των 18

25 κόμβων μέσα στην ουρά κατά αύξουσα σειρά κλειδιού, οι κόμβοι που εισάγονται ταξινομούνται κατά αύξουσα σειρά απόστασης από την αφετηρία. Όταν σε έναν κόμβο ανακαλυφθεί από τον αλγόριθμο μια διαφορετική διαδρομή -, με μικρότερη απόσταση, τότε χρειάζεται να πραγματοποιηθεί ενημέρωση στην ουρά. Σε αυτή την περίπτωση, στο κλειδί του καταχωρείται η νέα τρέχουσα μικρότερη απόσταση. Η αλλαγή του κλειδιού δεν είναι πάντα ανέξοδη, καθώς ενδεχομένως αυτή μπορεί να επιφέρει μια διορθωτική αναδιάταξη στην ουρά, προκειμένου όλοι οι κόμβοι να παραμείνουν ταξινομημένοι αυστηρά κατά αύξουσα σειρά απόστασης από την αφετηρία. Σε κάθε βήμα, ο κόμβος που ο αλγόριθμος εξάγει από την ουρά, θα έχει μεν τη μικρότερη απόσταση από την αφετηρία σε σχέση με τους υπόλοιπους κόμβους εντός της ουράς αλλά το σημαντικότερο, όπως αποδεικνύεται παρακάτω στο Θεώρημα 3.1, θα έχει αποκτήσει και τη συντομότερη διαδρομή από την αφετηρία. Συνεπώς κάθε κόμβος που εξάγεται από την ουρά θεωρείται ως διευθετημένος. Ένας διευθετημένος κόμβος δεν θα χρειαστεί να επανεξεταστεί ή να επανεισαχθεί στην ουρά. Αυτό συνδέεται άρρηκτα με τον περιορισμό ότι η απόσταση καθώς απομακρυνόμαστε από την αφετηρία είναι μόνο αύξουσα Ανάλυση Αρχικοποίηση Πριν ξεκινήσει η εξερεύνηση και η επεξεργασία των κόμβων από τον αλγόριθμο του Dijkstra δεν είναι γνωστή καμία διαδρομή. Κατά συνέπεια, αρχικά, οι κόμβοι του γραφήματος πρέπει να δηλωθούν ως μη-εξερευνημένοι. Εξαίρεση αποτελεί ο κόμβος αφετηρία, ο οποίος λαμβάνεται ως ένας ήδη διευθετημένος κόμβος, προφανώς, επειδή αποτελεί τη ρίζα του δέντρου των συντομότερων διαδρομών. Κατά το στάδιο της αρχικοποίησης, οι αποστάσεις των κόμβων του γραφήματος τίθενται σε : α) : κατά σύμβαση, εφόσον αρχικά είναι άγνωστες και β), εφόσον ο κόμβος έχει μηδενική απόσταση από τον εαυτό του. Για τον ίδιο λόγο, εφόσον δεν είναι γνωστές οι συντομότερες διαδρομές από την αφετηρία προς κάθε άλλο κόμβο ορίζεται (κενό). Τα βήματα του αλγορίθμου Παρακάτω ακολουθεί μια τυποποιημένη περιγραφή του αλγορίθμου, στην οποία παραθέτονται τα βήματα του αλγορίθμου. 1. Αρχικά ορίζεται μια απόσταση από την αφετηρία, με τιμή 0 για τον και τιμή άπειρο για τους υπόλοιπους κόμβους. Επιπλέον, για κάθε κόμβο ορίζεται κενή τιμή στο. Στην ουρά εισάγεται αρχικά ο κόμβος. (αρχικοποίηση) 2. Σε κάθε βήμα εξάγεται από την ουρά ο κόμβος με την τρέχουσα ελάχιστη απόσταση από την αφετηρία. Ο κόμβος που εξάγεται από την ουρά, γίνεται διευθετημένος. Επίσης ελέγχεται η απόσταση όλων των γειτονικών κόμβων που βρίσκονται στο άλλο άκρο των εξερχόμενων ακμών του (Εικόνα 11). Αυτή η διαδικασία λέγεται χαλάρωση ακμών (edge relaxation). Έστω, η απόσταση ενός γειτονικού κόμβου ως το άθροισμα της συντομότερης απόστασης από την αφετηρία στο διευθετημένο κόμβο,, και του βάρους της ακμής,. Στην περίπτωση που ο κόμβος εξερευνείται για πρώτη φορά, η απόστασή του γίνεται ίση με και το 19

26 του ίσο με. Αν όμως ο κόμβος είναι ήδη εξερευνημένος, τότε εάν η είναι μικρότερη από την απόσταση που έχει λάβει σε προηγούμενο βήμα, η νέα απόστασή του γίνεται ίση με και το νέο του ίσο με. Τέλος, αν ο κόμβος έχει ήδη μια μικρότερη απόσταση ή είναι διευθετημένος, τότε δεν απαιτείται ενημέρωση. (επαναληπτικό βήμα) 3. Αν διευθετηθεί ο κόμβος-προορισμός ή όλοι οι κόμβοι που είναι προσβάσιμοι από την αφετηρία (άδειασμα ουράς), τότε ο αλγόριθμος τερματίζει. Η ζητούμενη συντομότερη διαδρομή, αν υπάρχει, εξάγεται ακολουθώντας διαδοχικά τους δείκτες από τον κόμβο-προορισμό, μέχρι τον κόμβο-αφετηρία. (τερματική συνθήκη) Κατάσταση κόμβου v μη-εξερευνημένος εξερευνημένος διευθετημένος Προϋπόθεση (ο κόμβος βρίσκεται μέσα στην Q) (ο κόμβος βρίσκεται έξω από την Q) Πίνακας 2: Οι καταστάσεις των κόμβων στον αλγόριθμο του Dijkstra. 20 Εικόνα 10: Οι κόμβοι διευθετούνται από τον αλγόριθμο του Dijkstra κατά αύξουσα σειρά απόστασης από την αφετηρία. Στην Εικόνα 10, φαίνεται πως εξελίσσεται η αναζήτηση του αλγορίθμου του Dijkstra. Η επεξεργασία των κόμβων σε σχέση με την ουρά, πραγματοποιείται με την ακόλουθη σειρά: Διευθετημένοι κόμβοι : Εξερευνημένοι κόμβοι : (μέτωπο αναζήτησης) Μη-εξερευνημένοι κόμβοι :

27 Τερματική συνθήκη Γενικά, ο αλγόριθμος του Dijkstra μπορεί να εκτελείται, όσο η ουρά είναι γεμάτη. Ωστόσο, στη έκδοση ΕΣΔΑΠ του αλγορίθμου του Dijkstra, προκειμένου να μην εκτελεστούν περιττά βήματα αφότου υπολογιστεί η συντομότερη διαδρομή -, που είναι το ζητούμενο, μπορεί να οριστεί ένα δεύτερο και πιο αμεσότερο κριτήριο τερματισμού. Αυτό το κριτήριο είναι η διευθέτηση του κόμβου προορισμού. Αυτό σημαίνει, ότι όταν βρεθεί πλήρως η συντομότερη διαδρομή -, τότε ο αλγόριθμος τερματίζει, χωρίς να χρειάζεται να προχωρήσει στην εύρεση των συντομότερων διαδρομών προς τους υπόλοιπους κόμβους του γραφήματος. Ψευδοκώδικας 01 void Dijkstra(const graph& G, const edge_array& weight, 02 const Node& s, const Node& t) 03 { 04 node_array dist[n]; 05 node_array pred[n]; Node v; 08 forall_nodes(v, graph) 09 { 10 dist[v] = ; 11 pred[v] = null; 12 } dist[s] = 0; PQ.insert(0, s); while(!q.empty()) 19 { 20 Node u = PQ.extract_min(); if(u == t) 23 break; forall_out_edges(e, u) 26 { 27 Node v = target(e); 28 discovereddistance = dist[u] + weight(u,v); 29 key = discovereddistance; if(dist[v] == ) 32 PQ.insert(key, v); else if(discovereddistance < dist[v]) 35 PQ.decrease_key(key, v); else continue; dist[v] = discovereddistance; 40 pred[v] = u; 41 } 42 } 43 } 21

28 Κατά τη φάση αρχικοποίησης όλοι οι κόμβοι σημειώνονται από τον αλγόριθμο ως μη εξερευνημένοι (γραμμές 8-12), με εξαίρεση τον κόμβο αφετηρία (γραμμές 14-16). Η ουρά λαμβάνει την αφετηρία, ως τον πρώτο εξερευνημένο κόμβο, με κλειδί (γραμμή 16). Αυτή η απόσταση είναι προφανώς η μικρότερη δυνατή που μπορεί να υπάρξει. Επομένως αναπόφευκτα πάντα ο πρώτος εξερευνημένος κόμβος που εξάγεται από την ουρά είναι ο κόμβος αφετηρία. Σε κάθε βήμα ο αλγόριθμος εξάγει από την ουρά τον τρέχων κόμβο με την μικρότερη απόσταση, extract_min (γραμμή 20). Όπως αποδεικνύεται από το Θεώρημα 3.1, ο κόμβος αυτός θα έχει ήδη αποκτήσει τη συντομότερη απόσταση και διαδρομή από την αφετηρία. Επομένως, κάθε κόμβος που εξάγεται από την ουρά διευθετείται, και ο αλγόριθμος δεν χρειάζεται σε επόμενο βήμα να τον επανεξετάσει (για εισαγωγή ή ενημέρωση του κλειδιού του στην ουρά) (γραμμή 37). Για ένα οποιονδήποτε κόμβο που εξάγεται από την ουρά ακολούθως, από τις εξερχόμενες ακμές του, εξετάζονται όλοι οι γειτονικοί του κόμβοι. Αν ένας γειτονικός κόμβος του είναι μη-εξερευνημένος, τότε αυτός εισάγεται στην ουρά με κλειδί και (γραμμές 31-32, 39-40). Σε αυτό το σημείο, ο κόμβος λαμβάνει τη τρέχουσα συντομότερη διαδρομή -, μέσω της συνένωσης της συντομότερης διαδρομής - με την ακμή, στο κοινό άκρο. Η διαδρομή, αναφέρεται ως τρέχουσα συντομότερη, γιατί μπορεί αργότερα σε επόμενο βήμα, να βρεθεί μια διαφορετική διαδρομή - με μικρότερο κόστος (γραμμές και 39-40). 22 Εικόνα 11: Η διευθέτηση του μεταφέρει το μέτωπο της αναζήτησης στους γειτονικούς του κόμβους και. Εάν ο κόμβος είναι ήδη εξερευνημένος και βρίσκεται ήδη μέσα στην ουρά από προηγούμενο βήμα τότε ελέγχεται αν η νέα διαδρομή -, μέσω του, είναι μικρότερου κόστους σε σχέση με την προηγούμενη ανακαλυφθείσα διαδρομή. Δηλαδή, αν, τότε έχει βρεθεί μια διαδρομή που οδηγεί σε μικρότερη απόσταση από την αφετηρία. H απαιτούμενη ενημέρωση περιλαμβάνει την αλλαγή του κλειδιού της προτεραιότητας του κόμβου στην ουρά, decrease_key, (γραμμή 35) (το οποίο πιθανώς να οδηγήσει σε αναδιάταξη της ουράς), της απόστασης του κόμβου από την αφετηρία (γραμμή 39),, και του τοποθετώντας τον κόμβο μέσω του οποίου διέρχεται η νέα διαδρομή - (γραμμή 40). Διαφορετικά αν, τότε η διαδρομή - που εξετάστηκε οδηγεί σε μεγαλύτερη απόσταση από την αφετηρία και άρα πρέπει να απορριφθεί (γραμμή 37). Ο αλγόριθμος εκτελείται μέχρι να εξαχθεί-διευθετηθεί ο κόμβος προορισμού (γραμμή 22) ή να αδειάσει η ουρά εξερευνώντας όλους τους προσβάσιμους κόμβους από την αφετηρία (γραμμή 18).

29 Ορθότητα Θεώρημα 3.1. Ο Αλγόριθμος του Dijkstra λύνει το πρόβλημα ΕΣΔΑ, με την προϋπόθεση ότι η συνάρτηση κόστους των ακμών είναι μη αρνητική. Η απόδειξη της ορθότητας είναι αναγκαία, γιατί ο αλγόριθμος του Dijkstra ανήκει στην κατηγορία των άπληστων αλγορίθμων. Σε κάθε βήμα επιλέγει την τοπικά βέλτιστη λύση. Ωστόσο, το γεγονός ότι οι τοπικές λύσεις είναι βέλτιστες δεν εγγυάται ότι και η σύνθεσή τους θα παράγει ως αποτέλεσμα μια συνολικά βέλτιστη λύση. Απόδειξη (απαγωγή σε άτοπο επαγωγή). Έστω το σύνολο των διευθετημένων κόμβων. Για κάθε, το είναι το κόστος της συντομότερης διαδρομής -. Έστω η συντομότερη διαδρομή που έχει σημειώσει ο αλγόριθμος από την αφετηρία στον. Θα δείξουμε ότι για κάθε κόμβο του συνόλου, και για κάθε βήμα εκτέλεσης του αλγορίθμου, η που υπολόγισε είναι πράγματι μια συντομότερη διαδρομή. Αυτό αποδεικνύει άμεσα ότι ο αλγόριθμος βρίσκει όλες τις συντομότερες διαδρομές, αφού στο τελευταίο βήμα το σύνολο θα περιέχει όλους τους κόμβους του γραφήματος. Η απόδειξη που ακολουθεί είναι επαγωγική ως προς το μέγεθος του συνόλου. Βάση επαγωγής : Για, είναι. O πρώτος κόμβος που διευθετείται είναι ο κόμβος αφετηρία με. Εφόσον δεν υπάρχουν αρνητικά βάρη, η απόσταση από τον εαυτό του δεν μπορεί να είναι μικρότερη από 0. Το κόστος της διαδρομής είναι 0 και η αποτελεί συντομότερη διαδρομή. Άρα προφανώς για ισχύει. Επαγωγική υπόθεση : Υποθέτουμε ότι για, με, ο ισχυρισμός ισχύει. Θα δείξουμε ότι ο ισχυρισμός εξακολουθεί να ισχύει και για, έχοντας προσθέσει στο σύνολο, ένα διευθετημένο κόμβο, έστω. Ο κόμβος που εξάγεται από την ουρά είναι ένας κόμβος που ανήκει στην περίμετρο του μετώπου της αναζήτησης, δηλαδή είναι ένας γειτονικός κόμβος ενός ήδη διευθετημένου κόμβου στο σύνολο. Έστω ότι ο κόμβος στο σύνολο είναι ο αμέσως προηγούμενος κόμβος του στη διαδρομή (Εικόνα 12). Λόγω της υπόθεσης, η συντομότερη διαδρομή έχει ήδη βρεθεί, από προηγούμενο βήμα. Επαγωγικό βήμα : Έστω ότι υπάρχει μια οποιαδήποτε άλλη διαδρομή, από την αφετηρία στον κόμβο. Για να ισχύει το θεώρημα χρειάζεται να δείξουμε ότι η έχει ίσο ή μεγαλύτερο κόστος από αυτό της. Υποθέτουμε ότι η διαδρομή, πριν τον, περιέχει μια ακολουθία κόμβων που δεν ανήκουν στο σύνολο. Έστω ότι ο κόμβος είναι ο πρώτος κόμβος της, που δεν ανήκει στο, και ότι ο αμέσως προηγούμενός του, που ανήκει στο (έως και την αφετηρία ), είναι ο. Όπως σε κάθε επαναληπτικό βήμα του αλγορίθμου, και στο βήμα, επιλέγεται η διαδρομή με το μικρότερο κόστος από τον προς ένα μη- 23

30 διευθετημένο κόμβο, γειτονικό ενός από τους διευθετημένους κόμβους στο. Επομένως, μεταξύ αυτών, εφόσον οι και είναι ήδη διευθετημένοι, εξετάζονται και η και η. Εικόνα 12: Συντομότερες διαδρομές από την αφετηρία στον κόμβο. Το γεγονός ότι εξάγεται ο κόμβος έναντι του y σημαίνει ότι και κατά συνέπεια, η έχει μεγαλύτερο ή ίσο κόστος σε σύγκριση με τη διαδρομή. Επιπλέον, αφού η είναι ένα μόνο μέρος (υποδιαδρομή) της διαδρομής και δεν υπάρχουν αρνητικά βάρη, είναι προφανές ότι το συνολικό κόστος της θα είναι ίσο ή μεγαλύτερο από τις και. Άρα η δεν μπορεί να έχει μεγαλύτερο κόστος από τη και άρα αποτελεί βέλτιστη, όπως θέλαμε να δείξουμε. Η ισότητα αφορά την περίπτωση που οι διαδρομές έχουν και οι δυο ελάχιστο κόστος, δηλαδή και οι δυο είναι συντομότερες. Χρονική πολυπλοκότητα Εφόσον εισάγεται και εξάγεται το πολύ μια φορά οποιοσδήποτε κόμβος στην ουρά, θα χρειαστούν το πολύ επαναληπτικά βήματα, δηλαδή όσο είναι και ο αριθμός των κόμβων του γραφήματος. Επομένως, ο αλγόριθμος χρειάζεται να εκτελέσει βήματα. Σημειώνεται ότι τα βήματα του αλγορίθμου, στη γενική περίπτωση, είναι, γιατί μπορεί να υπάρχουν κόμβοι που να μην είναι προσβάσιμοι από την αφετηρία (όταν το γράφημα δεν είναι ισχυρά συνεκτικό) ή να διευθετηθεί νωρίς ο προορισμός, χωρίς να χρειαστεί να εξερευνηθεί όλο το γράφημα. Στην ουρά μπορεί να εισαχθούν και να εξαχθούν το πολύ κόμβοι. Οπότε η extract_min και η insert θα χρειαστεί να εκτελεστούν το πολύ φορές. Ένας κόμβος έχει το πολύ εξερχόμενες ακμές. Εάν ο αλγόριθμος συνεχώς ανακαλύπτει νέες διαδρομές μικρότερου κόστους, τότε θα χρειαστούν το πολύ χαλαρώσεις ακμών. Αυτό σημαίνει ότι νέες διαδρομές θα πυροδοτήσουν μειώσεις κλειδιών decrease_key. Η χρονική πολυπλοκότητα του αλγορίθμου ποικίλει, ανάλογα τις δομές δεδομένων που χρησιμοποιούνται για την υλοποίησή του γραφήματος και της ουράς προτεραιότητας. Αν λάβουμε υπόψη κόστος για όλες τις λειτουργίες, εκτός των insert, extract_min και decrease_key, η χρονική πολυπλοκότητα θα είναι : Οι συντελεστές, και στην παραπάνω σχέση εξαρτώνται από την υλοποίηση της ουράς προτεραιότητας. Για παράδειγμα, στην 24

31 περίπτωση μιας υλοποίησης με δυαδικό σωρό, η εισαγωγή ενός στοιχείου - insert, η εξαγωγή του ελάχιστου στοιχείου - extract_min και η μείωση του κλειδιού ενός στοιχείου - decrease_key, απαιτούν χρόνο. Συνεπώς, η συνολική χρονική πολυπλοκότητα του αλγορίθμου, είναι :, και για αραιά γραφήματα καταλήγει σε : Περισσότερες λεπτομέρειες, για την υλοποίηση της ουράς προτεραιότητας σε δομή δυαδικού σωρού, δίνονται στην Ενότητα Απόδοση Ο πρότυπος αλγόριθμος του Dijkstra έχει σχεδιαστεί για να βρίσκει τις συντομότερες διαδρομές από την αφετηρία προς όλους τους υπόλοιπους κόμβους του γραφήματος. Ως εκ τούτου, ο χρόνος εκτέλεσης του αλγορίθμου εξαρτάται από το μέγεθος του γραφήματος, ως προς το πλήθος των κόμβων και των ακμών. Αυτή η εξάρτηση σε μεγάλα γραφήματα έχει ως αποτέλεσμα ένα ιδιαίτερα υψηλό υπολογιστικό κόστος. Στην υλοποίηση του αλγορίθμου ΕΣΔΑΠ του Dijkstra, η μόνη διαφοροποίηση είναι ότι ο αλγόριθμος αν βρει τη ζητούμενη συντομότερη διαδρομή -, τότε μπορεί να σταματήσει, χωρίς να χρειαστεί να συνεχίσει την επεξεργασία και στους υπόλοιπους κόμβους του γραφήματος, που απομένουν χωρίς να έχουν διευθετηθεί. Αυτό περιορίζει την εξάρτηση του χρόνου εκτέλεσης από το μέγεθος του γραφήματος, αλλά όχι για οποιαδήποτε περίπτωση. Για την ακρίβεια, όπως εξηγείται και παρακάτω, ο αλγόριθμος αποκτά μια καλή και μια κακή περίπτωση εκτέλεσης, ανάλογα με το πόσο μακριά βρίσκονται μεταξύ τους η αφετηρία και ο προορισμός Εικόνα 13: Το μέτωπο αναζήτησης που αναπτύσσει ο αλγόριθμος του Dijkstra γύρω από την αφετηρία, και μέχρι να φτάσει στον προορισμό. Διαισθητικά, ο αλγόριθμος, σε κάθε βήμα, αναπτύσσει και διευρύνει ένα δέντρο αναζήτησης το οποίο σχηματίζει ένα κυκλικό μέτωπο, με κέντρο τον κόμβο και 25

32 ακτίνα την. Η είναι αύξουσα, καθ όλη τη διάρκεια εκτέλεσης του αλγορίθμου. Στις Εικόνες 10 και 13, φαίνεται ειδικότερα πως εξελίσσεται το μέτωπο της αναζήτησης (search frontier). Ο τρόπος λειτουργίας του αλγορίθμου του Dijkstra οδηγεί αναγκαστικά στην εξερεύνηση και διευθέτηση πρώτα όλων εκείνων των κόμβων που είναι πιο κοντά στην αφετηρία, ανεξάρτητα αν ορισμένοι από αυτούς βρίσκονται πιο μακριά σε σχέση με τον προορισμό ή αν δεν ανήκουν στη ζητούμενη συντομότερη διαδρομή. Επομένως, μέχρι να φτάσει ο αλγόριθμος στον προορισμό, θα χρειαστεί να επισκεφτεί και να διευθετήσει όλους του κόμβους, που απέχουν από την αφετηρία έως. Άρα, αν η αφετηρία και ο προορισμός βρίσκονται πολύ μακριά ο ένας από τον άλλο, τότε ο αλγόριθμος θα καλύψει ένα μεγάλο μέρος του γραφήματος (για παράδειγμα, μια ολόκληρη πόλη, όταν οι και είναι σε δυο αντιδιαμετρικά σημεία της), στην προσπάθειά του να ανιχνεύσει όλη τη συντομότερη διαδρομή -. Αυτή η περίπτωση, οδηγεί στο χειρότερο χρόνο εκτέλεσης του αλγορίθμου. Αντίθετα, όταν οι και απέχουν πολύ λίγο μεταξύ τους, τότε ο αλγόριθμος θα καλύψει ένα μικρό μέρος του γραφήματος, οδηγώντας σε μικρότερο χρόνο εκτέλεσης Αναζήτηση Α* Για να πραγματοποιηθεί γρήγορα ο εντοπισμός μιας συντομότερης διαδρομής χρειάζεται ένας τρόπος να διαχωριστούν οι κόμβοι που ανήκουν στην από τους υπόλοιπους κόμβους ( ) του γραφήματος. Η χρήση κάποιας ευρετικής πληροφορίας (heuristic) μπορεί να συμβάλλει σε αυτό το σκοπό. Για παράδειγμα, διαθέτοντας ορισμένες προσεγγίσεις πάνω στις αποστάσεις μεταξύ των κόμβων, είναι δυνατό να μειωθεί η προτεραιότητα επίσκεψης σε κόμβους, που απέχουν αρκετά πολύ και από τον προορισμό και από την αφετηρία. Εφόσον αυτοί οι κόμβοι είναι αδύνατο να ανήκουν σε μια συντομότερη διαδρομή, αυτός ο διαχωρισμός είναι ορθός και μπορεί να αυξήσει την αποδοτικότητα της αναζήτησης της. Η αποτελεσματικότητα της οριοθέτησης της συντομότερης διαδρομής στο γράφημα από έναν αλγόριθμο στοχοκατευθυνόμενης αναζήτησης βασίζεται στον ευρετικό μηχανισμό που χρησιμοποιείται. Όσο πιο μεγάλης ακρίβειας είναι τόσο λιγότερους περιττούς κόμβους θα χρειαστεί να επισκεφτεί και να επεξεργαστεί. Ο περιορισμός της άσκοπης περιπλάνησης εντός του γραφήματος είναι σημαντικός προκειμένου να αντιμετωπιστεί η ανεπιθύμητη εξάρτηση της χρονικής πολυπλοκότητας από το μέγεθος του γραφήματος. Από την άλλη πλευρά, όμως, η χρήση μιας ευρετικής πληροφορίας συνεπάγεται περισσότερες απαιτήσεις σε χώρο μνήμης σε σχέση με την απληροφόρητη αναζήτηση. Ο αλγόριθμος [33, 25], που παρουσιάζεται είναι μια επέκταση του αλγορίθμου του Dijkstra στο μοντέλο της στοχοκατευθυνόμενης αναζήτησης Περιγραφή Η διευθέτηση των κόμβων που δεν ανήκουν σε μια συντομότερη διαδρομή, όχι μόνο δεν έχει κάποια θετική συνεισφορά, αλλά πρέπει να αποφευχθεί, γιατί προσθέτει ένα περιττό υπολογιστικό κόστος στην αναζήτηση της. Δεδομένου αυτού, εφόσον μεταξύ των και μπορεί να υπάρχουν αρκετές μη βέλτιστες διαδρομές (υπό οποιαδήποτε αλυσίδα ακμών ή κόμβων), μια λύση θα ήταν να αποκλειστούν από νωρίς όσες διαδρομές έχουν αρκετά μεγαλύτερο κόστος από αυτό της. Αυτό μπορεί να καταστεί εφικτό αξιοποιώντας την ειδική γνώση για το συγκεκριμένο πρόβλημα 26

33 (problem-specific knowledge). Για παράδειγμα, όταν το γράφημα δίνεται ότι είναι ευκλείδειο, τότε από τις συντεταγμένες των κόμβων είναι δυνατό να υπολογιστούν οι ευκλείδειες (ευθύγραμμες) αποστάσεις προς τον προορισμό. Με βάση αυτές τις αποστάσεις όσοι κόμβοι βρίσκονται αρκετά μακριά και από την αφετηρία και από τον προορισμό είναι αδύνατο να ανήκουν στη. Με το ίδιο σκεπτικό, αν κάποιος συμβουλευόταν ένα γεωγραφικό χάρτη προκειμένου να ταξιδέψει γρήγορα, μέσω του οδικού δικτύου, από την Αθήνα στη Μόσχα, τότε θα απέκλειε εξ αρχής οποιαδήποτε διαδρομή που διέρχεται π.χ. μέσα από τη Ισπανία. Η απόφαση αυτή στην ουσία στηρίζεται σε μια χονδρική έως στενή οριοθέτηση του τμήματος του δικτύου στο οποίο είναι φανερό ότι βρίσκεται η συντομότερη διαδρομή. Οποιαδήποτε χρήσιμη ειδική γνώση, που μπορεί να βοηθήσει στην οριοθέτηση των συντομότερων διαδρομών, μπορεί να συλλεχθεί και να κωδικοποιηθεί μέσω των ευρετικών συναρτήσεων (heuristic functions) [33]. Οι ευρετικές συναρτήσεις προσφέρουν τον τρόπο, για να βελτιωθεί η αποτελεσματικότητα και η ακρίβεια μιας αναζήτησης, παρέχοντας σε αυτή στοχοκατευθυνόμενο προσανατολισμό, προκειμένου να μπορεί να εντοπίσει γρήγορα τη συντομότερη διαδρομή. Πιο φορμαλιστικά, η ευρετική συνάρτηση,, αντιστοιχεί μια εκτίμηση-προσέγγιση του κόστους της συντομότερης διαδρομής από κάθε κόμβο προς έναν προορισμό, ή από μια αφετηρία προς κάθε κόμβο,. Για μια οποιαδήποτε ευρετική συνάρτηση, το ανηγμένο κόστος ή βάρος (reduced cost) μιας ακμής ορίζεται ως εξής : Εικόνα 14: Τα κάτω όρια στις συντομότερες αποστάσεις μεταξύ των κόμβων. Λόγω των δυο τελευταίων όρων της, η αναφέρεται και ως συνάρτηση δυναμικού (potential function). Η χρήση της στον αλγόριθμο ΕΣΔΑΠ του Dijkstra πρέπει να είναι τέτοια ώστε αυτός να εξακολουθεί να λειτουργεί ορθά ακολουθώντας πιστά το αυθεντικό πρόβλημα, δηλαδή την εύρεση της συντομότερης διαδρομής, σε σχέση με την κανονική συνάρτηση κόστους. Αντικαθιστώντας το πραγματικό κόστος με το ανηγμένο κόστος [32] αποδεικνύεται ότι το πρόβλημα εύρεσης της συντομότερης διαδρομής παραμένει ισοδύναμο. Πιο ειδικά: 27

34 Λήμμα 4.1. Μια διαδρομή αποτελεί συντομότερη διαδρομή σε σχέση με το ανηγμένο κόστος αν και μόνο αν αποτελεί συντομότερη διαδρομή σε σχέση με το πραγματικό κόστος. Δεδομένης οποιασδήποτε ευρετικής συνάρτησης, έστω ότι έχει αντικατασταθεί το πραγματικό κόστος κάθε ακμής, με το αντίστοιχο ανηγμένο κόστος. Τότε για οποιουσδήποτε δύο κόμβους και, το κόστος κάθε - διαδρομής αλλάζει κατά την ίδια ποσότητα,. Απόδειξη. Έστω μια οποιαδήποτε διαδρομή με αρχικό κόμβο τον, τελικό κόμβο τον και ένα πλήθος ενδιαμέσων κόμβων :. Τότε : Άρα το κόστος κάθε διαφορετικής διαδρομής -, ανεξάρτητα από τους ενδιάμεσους κόμβους που μπορεί να περιέχει, μεταξύ των άκρων της, αλλάζει κατά την ίδια ποσότητα,. Κατά συνέπεια, η πρόσθεση του σταθερού όρου σε όλες τις διαδρομές -, δεν επηρεάζει τα σχετικά κόστη τους ως προς την (Εικόνα 15). Αυτό σημαίνει ότι μια διαδρομή που έχει μικρότερο κόστος σε σχέση με τις υπόλοιπες διαδρομές εξακολουθεί να έχει μικρότερο κόστος σε σχέση με τις υπόλοιπες διαδρομές και όταν αντικαταστήσουμε την με την. 28

35 Εικόνα 15: Το ανηγμένο κόστος δεν αλλάζει τα σχετικά κόστη των διαδρομών -. Για μια σταθερά, ορίζουμε τη μετατόπιση της κατά, ένα μετασχηματισμό που αντικαθιστά την ευρετική συνάρτηση με, για όλους τους κόμβους. Είναι εύκολο να αποδειχτεί ότι οι μετατοπίσεις δεν επηρεάζουν τα σχετικά κόστη των διαδρομών μεταξύ δυο κόμβων. Για οποιαδήποτε σταθερά, σύμφωνα με το Λήμμα 4.1, κάθε ακμή έχει. Ο αλγόριθμος του Dijkstra για να λειτουργεί ορθά πρέπει τα κόστη των ακμών να είναι μη αρνητικά. Για τον ίδιο λόγο κρίνεται αναγκαίο το ανηγμένο κόστος να παραμένει μη αρνητικό. Μια ευρετική συνάρτηση θα καλείται μονότονη (monotone), αν το ανηγμένο κόστος, που προκύπτει βάσει της, είναι μη αρνητικό για όλες τις ακμές του γραφήματος. Με άλλα λόγια : : μονότονη Λήμμα 4.2. Έστω ότι η ευρετική συνάρτηση είναι μονότονη και για έναν κόμβο προορισμό ορίζεται. Τότε, για κάθε, ισχύει. Απόδειξη. Εφόσον η είναι μονότονη, θα πρέπει : Επομένως από το Λήμμα 4.1, αθροίζοντας τα μη-αρνητικά ανηγμένα κόστη κάθε ακμής που περιέχεται στη συντομότερη διαδρομή, το συνολικό ανηγμένο κόστος θα είναι επίσης μη-αρνητικό : και επειδή, ισχύει Ως εκ τούτου, Άρα δείξαμε ότι, όταν η είναι μονότονη και, η καταλήγει να αποτελεί ένα κάτω όριο (lower bound) για την ελάχιστη απόσταση από τον κόμβο στον κόμβο. 29

36 Αν ορίσουμε τότε για κάθε το μέγιστο δυνατό κάτω όριο είναι, εφόσον, το οποίο προφανώς θεωρείται άγνωστο και είναι κάτι που ψάχνουμε να βρούμε. Το σύνολο τιμών μιας μονότονης ευρετικής συνάρτησης είναι : (Εικόνα 16). Εικόνα 16: Η ποιότητα ενός κάτω ορίου για τη συντομότερη απόσταση από έναν κόμβο στον κόμβο προορισμό. Στην καλύτερη περίπτωση αν επιλεγεί γ κ θ, και δεν υπάρχουν πάνω από μια εναλλακτικές συντομότερες διαδρομές τότε ο αλγόριθμος θα μπορέσει να επισκεφθεί ακριβώς μόνο τους κόμβους της μοναδικής συντομότερης διαδρομής με τη μέγιστη δυνατή προτεραιότητα (Εικόνα 17). 30 Εικόνα 17: Ανάλογα την ακρίβεια της ευρετικής συνάρτησης, οι κόμβοι της συντομότερης διαδρομής επιλέγονται με μεγαλύτερη προτεραιότητα σε σχέση με τους υπόλοιπους. Στην περίπτωση που διατίθενται περισσότερα από ένα κάτω όρια για την απόσταση, τότε θα πρέπει να επιλεγεί το μεγαλύτερο από όλα, γιατί όπως αναφέρθηκε προηγουμένως τα κάτω όρια της είναι το πολύ όσο το κόστος της συντομότερης διαδρομής και επομένως η καλύτερη επιλογή είναι η κοντινότερη προσέγγιση. Όπως θα δούμε σε έναν αλγόριθμο αναζήτησης, ο όρος στη συνάρτηση δυναμικού, δεν χρειάζεται να λαμβάνεται υπόψη στις προτεραιότητες επίσκεψης των κόμβων. Γενικά, το άθροισμα των επιμέρους ανηγμένων βαρών των ακμών μια διαδρομής -, είναι. Βάσει του Λήμματος 4.1, το ανηγμένο κόστος κάθε διαδρομής - έχει τον ίδιο σταθερό όρο. Επομένως η εκτίμηση του ελάχιστου κόστους από τον κόμβο προς τον κόμβο t,, μπορεί να παραληφθεί στον υπολογισμό των κλειδιών προτεραιότητας. Αυτό δικαιολογείται από το γεγονός, ότι όλες οι διαφορετικές διαδρομές - στο γράφημα έχουν κοινό αρχικό κόμβο τον. Κατά συνέπεια το ανηγμένο κόστος θα μπορούσε εναλλακτικά να οριστεί ως, με μετατόπιση (offset) κατά,. Το ανηγμένο κόστος σε αυτή την περίπτωση αποτελεί το άθροισμα της ανακαλυφθείσας συντομότερης απόστασης από την αφετηρία στον κόμβο και της εκτιμούμενης συντομότερης απόστασης από τον κόμβο προς τον προορισμό, ακριβώς όπως χρησιμοποιείται και στον κλασικό αλγόριθμο αναζήτησης Ανάλυση Ο αλγόριθμος αναζήτησης [33] δημοσιεύτηκε το 1968 από τους Peter Hart, Nils Nilsson και Raphael Bertram του Ινστιτούτου Ερευνών του Stanford (SRI

37 International). Πρόκειται για μια επέκταση του κλασικού αλγορίθμου του Dijkstra. Σε σχέση με τον αλγόριθμο του Dijkstra, ο χρησιμοποιεί ένα μηχανισμό καθοδήγησης, ο οποίος φανερώνει τους περισσότερο «υποσχόμενους» κόμβους αυτούς που είναι πιθανότερο να ανήκουν σε μια συντομότερη διαδρομή. Η κεντρική ιδέα του αλγορίθμου είναι ότι, επιλέγοντας προς διευθέτηση νωρίτερα τους κόμβους που εκτιμώνται ότι βρίσκονται πιο κοντά στον προορισμό και ταυτόχρονα όχι αρκετά μακριά από την αφετηρία, με αυτόν τον τρόπο είναι πιθανότερο να ανιχνευθεί γρήγορα η συντομότερη διαδρομή. Η καθοδήγηση, ή με άλλα λόγια η ικανότητα προσανατολισμού του μετώπου αναζήτησης προς έναν προορισμό-στόχο, μπορεί να επιτευχτεί με τη βοήθεια μιας ευρετικής συνάρτησης. Έστω μια ευρετική συνάρτηση. Σε αντίθεση με τον αλγόριθμο του Dijkstra, ο μέσω της μπορεί να αξιολογήσει πιο ολοκληρωμένα την προτεραιότητα για την διευθέτηση του επόμενου «καλύτερου» εξερευνημένου κόμβου, βάσει της μικρότερης τιμής. Η συνάρτηση αφορά την ανακαλυφθείσα συντομότερη απόσταση από την αφετηρία στον κόμβο, ενώ η συνάρτηση αφορά την εκτιμούμενη συντομότερη απόσταση από τον κόμβο στον προορισμό. Κατά αυτόν τον τρόπο, ο ταξινομεί στην ουρά του τους κόμβους κατά αύξουσα σειρά κόστους, σε αντίθεση με τον αλγόριθμο του Dijkstra, όπου. Όπως μπορεί να γίνει εύκολα αντιληπτό, ο αλγόριθμος ισοδυναμεί με τον αλγόριθμο του Dijkstra για (ειδική περίπτωση του ). Ψευδοκώδικας Τα βήματα του αλγορίθμου και ο ψευδοκώδικας είναι τα ίδια με τα αντίστοιχα του αλγορίθμου του Dijkstra στην Ενότητα 3.1, με τη μόνη διαφορά ότι η προτεραιότητα των κόμβων στην ουρά αντικαθιστάται, από σε, ώστε να λαμβάνεται υπόψη και η εκτίμηση για την συντομότερη απόσταση προς τον προορισμό, από την ευρετική συνάρτηση. Ορθότητα Ένα ανεπιθύμητο πρόβλημα που ενδεχομένως μπορεί να προκύψει με την προσέγγιση της αναζήτησης είναι αν μια αλλαγή στις προτεραιότητες των κόμβων από την είναι τέτοια ώστε να οδηγήσει τελικώς στην εύρεση μιας μη-βέλτιστης διαδρομής. Δεδομένου αυτού, είναι αναγκαίο να διασαφηνιστεί το είδος της ευρετικής συνάρτησης που μπορεί να εγγυηθεί σταθερά την ορθή λειτουργία και την εύρεση των συντομότερων διαδρομών σε κάθε περίπτωση. Λήμμα 4.5. Αν η είναι μονότονη, τότε ο αλγόριθμος δεν υπερεκτιμά το κόστος οποιασδήποτε συντομότερης διαδρομής. Απόδειξη. Εφόσον η είναι μονότονη, για κάθε ζεύγος γειτονικών κόμβων και, όπου το μήκος της ακμής που τους ενώνει, ισχύει : Έστω μια οποιαδήποτε διαδρομή, κόστους. Από την προσθέτοντας τον όρο και στα δυο μέλη, λαμβάνεται η προτεραιότητα για τον επόμενο κόμβο, που πρόκειται να προσαρτηθεί στη κεφαλή της υποδιαδρομής. Τότε: 31

38 Η αύξουσα μονοτονία της έχει ως αποτέλεσμα η να έχει επίσης αύξουσα μονοτονία κατά μήκος της διαδρομής, με κατεύθυνση από την αφετηρία προς τον προορισμό. Γενικότερα, βάσει του Λήμματος 4.2, με, για οποιαδήποτε διαδρομή , θα ισχύει : Άρα ο αλγόριθμος, σε οποιαδήποτε περίπτωση αν η είναι μονότονη, δεν πρόκειται να δώσει προτεραιότητα μεγαλύτερη από το κόστος της συντομότερης διαδρομής. Θεώρημα 4.6. Αν η είναι μονότονη, τότε ο αλγόριθμος αναζήτησης, για οποιαδήποτε αφετηρία και προορισμό, μπορεί να βρει τη συντομότερη διαδρομή. Απόδειξη (επαγωγή + απαγωγή σε άτοπο). Για τον, θεωρούμε την επέκταση του αλγορίθμου του Dijkstra, μέσω της αντικατάσταση της με τη συνάρτηση ανηγμένου κόστους. Έστω το σύνολο των κόμβων, για τους οποίους έχει βρεθεί η συντομότερη διαδρομή, με κόστος. Θα δείξουμε ότι σε κάθε βήμα της εκτέλεσης του αλγορίθμου, ο κόμβος που εξάγεται από την ουρά αποκτά τη συντομότερη διαδρομή. Αυτό αποδεικνύει άμεσα ότι ο αλγόριθμος επιστρέφει τη βέλτιστη λύση, αφού στο τελευταίο βήμα όταν διευθετηθεί ο προορισμός, το σύνολο θα περιέχει την. Η απόδειξη είναι επαγωγική ως προς το μέγεθος του συνόλου. Έστω η διαδρομή που έχει σημειώσει ως βέλτιστη ο αλγόριθμος, από τον κόμβο αφετηρία στον κόμβο. Βάση επαγωγής : Για, είναι. O πρώτος κόμβος που διευθετείται είναι ο κόμβος-αφετηρία με. Εφόσον δεν υπάρχουν αρνητικά βάρη, η απόσταση από τον εαυτό του δεν μπορεί να είναι μικρότερη από 0. Το κόστος της διαδρομής είναι 0 και η αποτελεί συντομότερη διαδρομή. Άρα προφανώς για ισχύει. Επαγωγική υπόθεση : Υποθέτουμε ότι για, με, ο ισχυρισμός ισχύει. Θα δείξουμε ότι ο ισχυρισμός εξακολουθεί να ισχύει και για, έχοντας προσθέσει στο σύνολο, έναν επιπλέον διευθετημένο κόμβο, έστω. Ο κόμβος που εξάγεται από την ουρά είναι ένας κόμβος που ανήκει στην περίμετρο του μετώπου της αναζήτησης του, δηλαδή είναι ένας γειτονικός κόμβος ενός διευθετημένου κόμβου στο σύνολο. Έστω ότι ο κόμβος στο σύνολο είναι ο αμέσως προηγούμενος κόμβος του στη διαδρομή. Λόγω της υπόθεσης, η συντομότερη διαδρομή έχει ήδη βρεθεί από προηγούμενο βήμα. 32

39 Έστω ότι υπάρχει μια οποιαδήποτε άλλη διαδρομή από τον αρχικό κόμβο στον. Για να ισχύει το θεώρημα χρειάζεται να δείξουμε ότι η έχει ίσο ή μεγαλύτερο κόστος από αυτό της. Επαγωγικό βήμα : Εικόνα 18: Διαδρομές από την αφετηρία στον κόμβο. Υποθέτουμε ότι η διαδρομή, πριν τον, περιέχει μια ακολουθία κόμβων που δεν ανήκουν στο σύνολο. Έστω ότι ο κόμβος είναι ο πρώτος κόμβος της, που δεν ανήκει στο, και ότι ο αμέσως προηγούμενός του, που ανήκει στο (έως και την αφετηρία ), είναι ο. Όπως σε κάθε επαναληπτικό βήμα του αλγορίθμου, και στο βήμα, επιλέγεται η διαδρομή με το μικρότερο κόστος από τον προς ένα μηδιευθετημένο κόμβο, γειτονικό ενός από τους διευθετημένους κόμβους στο. Συνεπώς, μεταξύ αυτών, εφόσον οι και είναι ήδη διευθετημένοι, εξετάζονται και η και η (βλέπε Εικόνα 18). Το γεγονός ότι εξάγεται πρώτα ο κόμβος έναντι του y σημαίνει ότι, και κατά συνέπεια η έχει μεγαλύτερο ή ίσο κόστος σε σύγκριση με τη. Αφού η είναι ένα μόνο μέρος (υποδιαδρομή) της διαδρομής και δεν υπάρχουν αρνητικά κόστη, είναι προφανές ότι το συνολικό κόστος της θα είναι ίσο ή μεγαλύτερο από την. Συγκεκριμένα, μέσω των και, το συνολικό κόστος θα είναι. Επομένως, Άρα η είναι η συντομότερη και αποδείξαμε αυτό που θέλαμε. Η ισότητα αφορά την περίπτωση που οι διαδρομές έχουν και οι δυο ελάχιστο κόστος, δηλαδή και οι δυο είναι συντομότερες. O πριν τερματίσει θα έχει διευθετήσει όλους τους κόμβους που ανήκουν στη συντομότερη διαδρομή. Αυτό μπορεί εύκολα να φανεί, εξετάζοντας τη σειρά διευθέτησης των κόμβων από τον. Έστω η συντομότερη διαδρομή. Τότε εφόσον η είναι μονότονη, ο διευθετεί τους κόμβους της συντομότερης διαδρομής, με την ακόλουθη σειρά προτεραιότητας: 33

40 Παρόμοια για μια μη βέλτιστη διαδρομή , η διευθέτηση των κόμβων της, από τον, πραγματοποιείται με την ακόλουθη σειρά: Επομένως, αφού, ο όταν φτάσει στον προορισμό, θα έχει διευθετήσει όλους τους κόμβους :, και επομένως και τους κόμβους της συντομότερης διαδρομής. Αν όμως τα κάτω όρια που παράγει η είναι χαμηλής ακρίβειας, τότε οι προτεραιότητες στους κόμβους της συντομότερης διαδρομής - δεν θα είναι οι καλύτερες δυνατές,. Ανάλογα με την ακρίβεια της, μέχρι να βρεθεί η συντομότερη διαδρομή -, ο αλγόριθμος ενδεχομένως να επισκεφθεί παραπάνω περιττούς κόμβους, σε μη-βέλτιστες διαδρομές. Για παράδειγμα, αν τότ ο, διευθετείται πριν από τον. 34 Ευρετική συνάρτηση μη-μονότονη δεν υπολογίζει πάντα βέλτιστες διαδρομές μονότονη υπολογίζει πάντα βέλτιστες διαδρομές υψηλή ακρίβεια επισκέπτεται λιγότερους περιττούς κόμβους χαμηλή ακρίβεια επισκέπτεται περισσότερους περιττούς κόμβους μηδενική ακρίβεια τυφλή αναζήτηση Πίνακας 3: Η σχέση της ευρετικής συνάρτησης με τον αλγόριθμο. Χρονική πολυπλοκότητα Έστω το υπολογιστικό κόστος της ευρετικής συνάρτησης. Ο αλγόριθμος, ως επέκταση του αλγορίθμου του Dijkstra, έχει επιπλέον κόστος, το οποίο προστίθεται κατά τη χαλάρωση των ακμών. Από την άλλη πλευρά, όμως, το πλήθος των βημάτων που απαιτούνται να εκτελεστούν μέχρι τη διευθέτηση του προορισμού μπορεί να είναι λιγότερα σε σχέση με τον αλγόριθμο του Dijkstra, κι αυτό ανάλογα με την ακρίβεια της Γενικά, όσο πιο μικρή είναι η απόκλιση, τόσο λιγότερα και τα βήματα εκτέλεσης του αλγορίθμου. Απόδοση Η αποτελεσματικότητα του αλγορίθμου στο να ανιχνεύει γρήγορα μια συντομότερη διαδρομή εξαρτάται από την ακρίβεια της ευρετικής συνάρτησης. Η ευρετική συνάρτηση στην ουσία προσφέρει έναν τρόπο προστασίας ώστε το μέτωπο αναζήτησης του να μην εξαπλώνεται ανεξέλεγκτα προς κάθε κατεύθυνση γύρω από την αφετηρία, όπως έχει σαν αδυναμία ο αλγόριθμος του Dijkstra. Η στοχοκατευθυνόμενη αναζήτηση γενικά είναι επιθυμητή, γιατί μόνο κατά αυτόν τον τρόπο η ζητούμενη συντομότερη διαδρομή μπορεί να οριοθετηθεί που βρίσκεται, πράγμα που αποδίδει μια πολυπλοκότητα εξαρτημένη περισσότερο από το μέγεθος της διαδρομής και λιγότερο

41 από το μέγεθος του γραφήματος. Για μια ευρετική συνάρτηση με ικανοποιητικά μεγάλη ακρίβεια και μικρό υπολογιστικό κόστος ο αλγόριθμος είναι αρκετά πιο αποδοτικός από τον αλγόριθμο ΕΣΔΑΠ του Dijkstra Μέθοδοι κάτω-οριοθέτησης Στις προηγούμενες ενότητες έγινε μια εισαγωγή σε γενικό και θεωρητικό επίπεδο πάνω στις ευρετικές συναρτήσεις. Ως επόμενο βήμα επιχειρείται η σχεδίαση και η κατασκευή δυο ευρετικών συναρτήσεων στα πλαίσια της παρούσας διπλωματικής εργασίας. Για αρχή παρουσιάζεται η ευκλείδεια μετρική για την κάτω-οριοθέτηση της συντομότερης απόστασης μεταξύ οποιουδήποτε ζεύγους κόμβων-σημείων. Ευκλείδεια απόσταση Μεταξύ ενός οποιουδήποτε κόμβου αφετηρίας και προορισμού, σε ένα οδικό δίκτυο, η συντομότερη διαδρομή που πρακτικά μπορεί να υπάρξει, είναι μέσω ενός ευθύγραμμου τμήματος, που ενώνει τους και. Εφόσον το μήκος του ευθύγραμμου τμήματος αποτελεί την ελάχιστη δυνατή απόσταση μεταξύ οποιουδήποτε ζεύγους σημείων, το μήκος της μπορεί να οριοθετηθεί λαμβάνοντας ως κάτω όριο αυτή την ευθύγραμμη ή αλλιώς ευκλείδεια απόσταση (euclidean distance). Στα πλαίσια αυτής της ενότητας το καρτεσιανό σύστημα συντεταγμένων αποτελεί το σημείο αναφοράς για τις μετρικές των αποστάσεων. Στο καρτεσιανό ή ορθογώνιο σύστημα συντεταγμένων η θέση ενός σημείου προσδιορίζεται από τις προβολές στους άξονες. Η ευκλείδεια μετρική (νόρμα-2) στο γεωμετρικό χώρο είναι μια συνάρτηση, η οποία αντιστοιχεί σε δυο σημεία και, την ελάχιστη ευθύγραμμη απόστασή τους : Η ευκλείδεια απόσταση μεταξύ δυο κόμβων, μπορεί να αποτελέσει μια ευρετική συνάρτηση με. Μέσω αυτής της συνάρτησης μπορεί να παραχθεί μια εκτίμηση του ελάχιστου μήκους της συντομότερης διαδρομής από το στο. Εικόνα 19:Η ευκλείδεια αποστάση ως κάτω όριο στις αποστάσεις. Λήμμα 5.1. Η ευκλείδεια απόσταση συνάρτηση. είναι μονότονη ευρετική Απόδειξη. Έστω μια οποιαδήποτε ακμή και ένας κόμβος προορισμού. Τότε το ανηγμένο κόστος της θα είναι : 35

42 Λόγω της τριγωνικής ανισότητας, ισχύει : Εφόσον μεταξύ δύο σημείων η ευκλείδεια απόσταση είναι η ελάχιστη δυνατή απόσταση, τότε. Επομένως,. Άρα η είναι μονότονη. Η αποτελεσματικότητα της ευκλείδειας απόστασης ως ευρετικής συνάρτησης εξαρτάται από το βαθμό που οι συντομότερες διαδρομές στο δίκτυο είναι σε ευθύγραμμη διεύθυνση για κάθε αφετηρία και προορισμό. Στην καλύτερη περίπτωση η ευκλείδεια απόσταση θα δώσει την βέλτιστη προσέγγιση για το μήκος της συντομότερης διαδρομής -, όταν η διαδρομή βρίσκεται σε ευθεία διεύθυνση από την αφετηρία έως τον προορισμό. Ωστόσο, σχεδόν οι περισσότερες διαδρομές στα οδικά δίκτυα συνολικά δεν ακολουθούν μια ευθύγραμμη πορεία. Αυτό συμβαίνει λόγω της πολεοδομικής αρχιτεκτονικής (κτίρια, πλατιές, οικόπεδα,) και των φυσικών περιοριστικών παραγόντων (ποτάμια, βουνά), τα οποία παρεμβάλλονται στο χώρο. Αυτό έχει ως αποτέλεσμα, η ευκλείδεια ευρετική συνάρτηση να παράγει γενικά χαμηλής ακριβείας κάτω όρια. Όσο πιο μεγάλο είναι το μήκος της συντομότερης διαδρομής -, τόσο περισσότερο αναμένονται τα ευκλείδεια κάτω όρια να αποδίδουν χειρότερες προσεγγίσεις. Αντίθετα, μια πιο καλύτερη απόδοση είναι δυνατό να επιτευχτεί στα θαλάσσια και εναέρια δίκτυα, όπου οι διαδρομές στο περισσότερο κομμάτι τους αποτελούν ευθύγραμμα τμήματα, λόγω των λιγότερων φυσικών περιορισμών. Το βασικότερο πλεονέκτημα που παρέχει η ευκλείδεια απόσταση ως ευρετική συνάρτηση είναι ένας εύκολος τρόπος στο να ανιχνευθεί κατά πόσο κοντά βρίσκεται ένας κόμβος στον προορισμό. Ωστόσο αυτό από μόνο του δεν μπορεί να διασφαλίσει ότι θα διακριθούν αρκετά καλά οι κόμβοι που ανήκουν στη συντομότερη διαδρομή έναντι των άλλων που δεν ανήκουν. Από την άλλη πλευρά, δύο από τα βασικότερα μειονεκτήματα της ευκλείδειας απόστασης είναι το σχετικά μεγάλο υπολογιστικό κόστος και το περιορισμένο πεδίο εφαρμογής. Συγκεκριμένα, το πρώτο διότι, αν και η χρονική πολυπλοκότητα για τον υπολογισμό της ευκλείδειας απόστασης είναι, όμως περιέχει ακριβές πράξεις αριθμητικής κινητής υποδιαστολής. Το δεύτερο, γιατί η ευκλείδεια απόσταση για να υπολογιστεί χρειάζονται οι συντεταγμένες των κόμβων του δικτύου, όταν όμως, κάποιες φορές, αυτές μπορεί να είναι απούσες ή μη καθορισμένες. Το ευρετικό ενός αλγορίθμου δεν είναι αναγκαίο να παράγεται μόνο από κάποια γεωγραφική πληροφορία, όπως οι συντεταγμένες των κόμβων στο χώρο. Ένας άλλος τρόπος για τη παραγωγή του ευρετικού είναι απλούστερα η επεξεργασία του βασικού πεδίου γνώσης του γραφήματος, όπως τα βάρη των ακμών. Πάνω σε αυτό το θέμα, η ευρετική πληροφορία θα μπορούσε να δημιουργηθεί υπολογίζοντας ένα μικρό πλήθος δέντρων συντομότερων διαδρομών με ρίζες ορισμένους κόμβους σε σημαντικές θέσεις του γραφήματος. Αυτό μπορεί να αποδειχθεί ιδιαίτερα σημαντικό καθώς ένα δέντρο συντομότερων διαδρομών δύναται να περιλαμβάνει ολόκληρα τμήματα από αντίστοιχα άλλα δέντρα υπό διαφορετικές ρίζες. 36

43 Όπως θα αναλυθεί και παρακάτω, η δημιουργία μιας πιο ξεκάθαρης εικόνας όσον αφορά τα δέντρα συντομότερων διαδρομών που είναι «κρυμμένα» εντός του γραφήματος μπορεί να βοηθήσει στην παραγωγή υψηλής ακρίβειας κάτω ορίων στις συντομότερες αποστάσεις. Σε πρώτη ανάλυση, ένα τέτοιο δέντρο μπορεί να εξυπηρετήσει όλα εκείνα τα ερωτήματα εύρεσης συντομότερων διαδρομών, από τη ρίζα του δέντρου προς όλους τους υπόλοιπους κόμβους του γραφήματος. Όμως, βάσει του Λήμματος 2.1 και 2.2, είναι δυνατό επιπλέον να εξυπηρετήσει έμμεσα παραπάνω ερωτήματα. Ως ένα παράδειγμα, έστω ότι έχει υπολογιστεί το δέντρο συντομότερων διαδρομών με ρίζα έναν κόμβο. Αν σε αυτό το δέντρο, ο κόμβος ανήκει στη συντομότερη διαδρομή, τότε η συντομότερη διαδρομή εμπεριέχεται στη (Λήμμα 2.1) και. Στην αντίθετη περίπτωση, δηλαδή ακόμη κι αν η συντομότερη διαδρομή δεν περιλαμβάνει τη συντομότερη διαδρομή, η παραπάνω διαφορά των αποστάσεων μπορεί και πάλι να χρησιμεύσει. Συγκεκριμένα, η (λόγω της τριγωνικής ανισότητας, Λήμμα 2.2) μπορεί να προσφέρει ένα κάτω όριο για την. Σε αντίθεση με την ευκλείδεια απόσταση, ο παραπάνω τρόπος εκτίμησης των κάτω ορίων απαλλάσσεται από την εξάρτηση του κατά πόσο ευθύγραμμη ή μη είναι η γεωγραφική πορεία των διαδρομών. Επίσης, αντί για τις συντεταγμένες των κόμβων, ως ευρετική πληροφορία απαιτούνται οι συντομότερες αποστάσεις των κόμβων, με βάση ένα δεδομένο δέντρο συντομότερων διαδρομών, το οποίο μπορεί να υπολογιστεί με τον αλγόριθμο του Dijkstra σε οποιοδήποτε γράφημα. Επιλέγεται ένα μικρό σύνολο ειδικών κόμβων από το γράφημα, οι οποίοι θα καλούνται οδηγοί (landmarks) [32]. Για τη δημιουργία της ευρετικής πληροφορίας, σε κάθε οδηγό υπολογίζεται η συντομότερη απόσταση από και προς κάθε κόμβο του γραφήματος. Για κάθε οδηγό και κάθε διαδρομή, θα ισχύει (Λήμμα 2.2) : Όσο πιο μεγάλο είναι το κάτω όριο τόσο πιο καλή είναι η προσέγγιση της συντομότερης απόστασης. Συνεπώς αν υπάρχουν διαθέσιμοι περισσότεροι από ένας οδηγοί, τότε για να ληφθεί η καλύτερη προσέγγιση, αρκεί να επιλεχθεί το μεγαλύτερο κάτω όριο από όλους τους οδηγούς (Λήμμα 4.3), δηλαδή : 37

44 Οι αλγόριθμοι που βασίζονται στην παραπάνω ευρετική συνάρτηση, καλούνται ( + Landmarks + Triangle inequality) [32]. Για την περίπτωση του αλγορίθμου, η ευρετική συναρτήση ορίζεται ως εξής : Για να είναι άμεσα διαθέσιμες οι συντομότερες αποστάσεις μεταξύ των κόμβων, στα σύνολα και, είναι απαραίτητο να έχει προηγηθεί ένα στάδιο προεπεξεργασίας. Ειδικότερα, στην προεπεξεργασία : α) επιλέγονται οι σημαντικότεροι κόμβοι-οδηγοί και ακολούθως β) υπολογίζονται και αποθηκεύονται οι συντομότερες αποστάσεις, όλων των κόμβων του γραφήματος ( ), από και προς τους επιλεγμένους οδηγούς ( ). Με τη χρήση κάποιας στρατηγικής επιλογής των κόμβων στο γράφημα, μπορεί να δημιουργηθεί ένα σύνολο, από κόμβους-οδηγούς. Ξεχωριστά, για κάθε έναν κόμβο, για να βρεθούν οι συντομότερες αποστάσεις από τον προς όλους τους υπόλοιπους κόμβους του γραφήματος (single source), αρκεί να εκτελεστεί ο αλγόριθμος του Dijkstra με αφετηρία τον. Για να βρεθούν οι συντομότερες αποστάσεις από όλους τους κόμβους του γραφήματος προς τον (single target), αρκεί να εκτελεστεί η παραλλαγή της πίσω αναζήτησης του αλγορίθμου του Dijkstra, με αφετηρία τον. Η χωρητικότητα για την αποθήκευση των συντομότερων αποστάσεων είναι. Η εύρεση των καλύτερων κόμβων-οδηγών είναι κρίσιμης σημασίας εφόσον αυτό έχει σημαντικό αντίκτυπο για τη συνολική απόδοση των αλγορίθμων. Η απόδοση εξαρτάται από τον αριθμό των οδηγών, από το πόσο απέχουν μεταξύ τους οι οδηγοί (διακριτότητα) και το κατά πόσο καλύπτουν τις συντομότερες διαδρομές εντός του γραφήματος. 38

45 Κεφάλαιο 4 - Μοντέλα Αναπαράστασης Δρομολογίων Μια ειδική δομή δεδομένων, στην οποία αποθηκεύονται όλα τα δυνατά δρομολόγια σε μια κατάλληλη χρονική σειρά και ροή, είναι δυνατό να συμβάλει σε μια αποδοτική αναζήτηση των βέλτιστων δρομολογίων. Σε αυτό το πλαίσιο, μια από τις βασικότερες γραφοθεωρητικές μοντελοποιήσεις των δρομολογίων αποτελεί η χρονο-εκτεταμένη. Στη χρονο-εκτεταμένη μοντελοποίηση, οι κόμβοι και οι ακμές ενός γραφήματος χρησιμοποιούνται για την αναπαράσταση των δρομολογίων. Ειδικότερα, κάθε κόμβος αντιπροσωπεύει ένα χρονικό γεγονός (time event) που αφορά: α) είτε την αναχώρηση (departure) από ένα σταθμό ενός μέσου μεταφοράς β) είτε την άφιξη (arrival) σε ένα σταθμό ενός μέσου μεταφοράς. Απ την άλλη, κάθε ακμή αντιπροσωπεύει μια μετάβαση που σχετίζεται με: α) την παραμονή (ενός επιβάτη) εντός του σταθμού έως την επιβίβαση σε ένα όχημα ή τη μετεπιβίβαση σε διαφορετικό όχημα και β) το ταξίδι του οχήματος από ένα σταθμό σε ένα άλλο (χωρίς ενδιάμεση στάση). Στη συνέχεια του κεφαλαίου παρουσιάζονται το βασικό Χρονο-εκτεταμένο Μοντέλο, το Ρεαλιστικό Χρονο-εκτεταμένο Μοντέλο, το Ανηγμένο Ρεαλιστικό Χρονο-εκτεταμένο Μοντέλο και το Μοντέλο Δυναμικού Πίνακα Δρομολογίων. 4.1 Χρονο-εκτεταμένο Μοντέλο Δοθέντος ενός πίνακα δρομολογίων, ορίζεται ένα κατευθυνόμενο γράφημα, που ονομάζεται χρονο-εκτεταμένο γράφημα (time-expanded graph) [44], με συνάρτηση βάρους. Κάθε σταθμός έχει το δικό του σύνολο χρονικών γεγονότων. Για ένα σταθμό, με συμβολίζεται το σύνολο των κόμβων που σχετίζονται με την αναχώρηση κάποιου οχήματος από το σταθμό, με συμβολίζεται το σύνολο των κόμβων που σχετίζονται με την άφιξη κάποιου οχήματος στο σταθμό και με το σύνολο όλων των κόμβων που αντιστοιχούν στο σταθμό. Επιπλέον, για έναν κόμβο, η συνάρτηση αντιστοιχεί τον κόμβο με μια χρονική στιγμή άφιξης ή αναχώρησης (timestamp), και η συνάρτηση αντιστοιχεί τον κόμβο με ένα μέσο μεταφοράς. Η κατασκευή του χρονο-εκτεταμένου γραφήματος πραγματοποιείται με βάση τον πίνακα δρομολογίων. Συγκεκριμένα, για κάθε στοιχειώδη σύνδεση του πίνακα δρομολογίων ορίζεται: α) ένας κόμβος αναχώρησης (departure node) για την αναχώρηση του οχήματος τη χρονική στιγμή από το σταθμό, β) ένας κόμβος άφιξης (arrival node) για την άφιξη του οχήματος τη χρονική στιγμή στο σταθμό, και γ) μια ακμή ταξιδιού (travel edge) για το συγκεκριμένο ταξίδι που πραγματοποιεί το όχημα από το σταθμό στο σταθμό. Τότε, είναι,,, και. Προκειμένου να τηρείται η φυσική χρονική ροή των δρομολογίων, οι κόμβοι (άφιξης και αναχώρησης) κάθε ενός σταθμού ξεχωριστά, διατάσσονται τοπολογικά στο γράφημα κατά αύξουσα σειρά χρόνου. Έστω,, οι κόμβοι που αντιστοιχούν στο σταθμό, με. Τότε για κάθε ζεύγος κόμβων,, ορίζεται μια ακμή παραμονής (stay edge), για το χρόνο που μεσολαβεί μεταξύ των και. Ενώ οι ακμές παραμονής 39

46 ,, αφορούν δρομολόγια εντός της τρέχουσας μέρας, η εισάγει την απαιτούμενη περιοδικότητα των δρομολογίων, για ταξίδια που μπορεί να έχουν έκταση χρονικά παραπάνω της μιας μέρας. Tο βάρος κάθε ακμής ορίζεται ως. Χωρική πολυπλοκότητα. Με βάση την κατασκευή του χρονο-εκτεταμένου γραφήματος, απαιτούνται κόμβοι και ακμές. Αυτό διότι, για κάθε σύνδεση παράγεται 1 κόμβος αναχώρησης, 1 κόμβος άφιξης, 1 ακμή ταξιδιού και μια 1 ακμή παραμονής εξερχόμενη από τον. Εύρεση της Συντομότερης Άφιξης. Δοθέντος ενός ερωτήματος εύρεσης της συντομότερης διαδρομής και ενός χρόνο-εκτεταμένου γραφήματος, το Πρόβλημα εύρεσης της Συντομότερης Άφιξης ( ) μπορεί να επιλυθεί υπολογίζοντας τη συντομότερη χρονικά διαδρομή, από έναν κόμβο αναχώρησης, του σταθμού-αφετηρίας προς έναν κόμβο άφιξης του σταθμού-προορισμού. Η συντομότερη διαδρομή μπορεί να βρεθεί στο, τροποποιώντας ελαφρώς τον αλγόριθμο του Dijkstra σε χρόνο. Συγκεκριμένα, αρχικά από τον αλγόριθμο επιλέγεται ως ρίζα, ο κόμβος με την αμέσως επόμενη αναχώρηση από τη χρονική στιγμή,. Ο αλγόριθμος τερματίζει στο πρώτο κόμβο άφιξης που εξάγεται από την ουρά προτεραιότητας, δίνοντας το συντομότερο χρόνο άφιξης στο σταθμό. Θεώρημα 4.1. [41] Μια συντομότερη διαδρομή στο χρονο-εκτεταμένο γράφημα από το πρώτο κόμβο αναχώρησης στο σταθμό-αφετηρία με χρόνο αναχώρησης σε ένα κόμβο άφιξης του σταθμού προορισμού αποτελεί τη λύση για το. 4.2 Ρεαλιστικό Χρόνο-Εκτεταμένο Μοντέλο Οι διαδρομές που υπολογίζονται με βάση το χρόνο-εκτεταμένο μοντέλο συνήθως μπορεί να μην αποτελούν ρεαλιστικές για τους ταξιδιώτες. Αυτό διότι, στο εν λόγω μοντέλο ο χρόνος μετεπιβίβασης από ένα όχημα σε ένα άλλο αγνοείται πλήρως. Στην πραγματικότητα, όμως, οι επιβάτες μετά την άφιξη τους σε ένα σταθμό, προκειμένου να συνεχίσουν το ταξίδι τους με ένα διαφορετικό όχημα, ενδεχομένως μπορεί να χρειαστεί προηγουμένως να μετακινηθούν σε άλλο όροφο ή πλατφόρμα του σταθμού. Σε αυτή την περίπτωση εισέρχεται ως περιορισμός, ο απαιτούμενος χρόνος που χρειάζεται ένας επιβάτης προκειμένου να προλάβει να αλλάξει μέσο μεταφοράς μέσα στο σταθμό. Ο συγκεκριμένος περιορισμός λαμβάνεται υπόψη στο ακόλουθο μοντέλο. Το Ρεαλιστικό Χρόνο-εκτεταμένο Μοντέλο (realistic time-expanded) [41] αποτελεί μια επέκταση του χρόνο-εκτεταμένου μοντέλου. Η διαφορά έγκειται στην εισαγωγή μιας νέας κατηγορίας κόμβων και ακμών, προκειμένου ο ελάχιστος χρόνος μετεπιβίβασης transfer( ) κάθε σταθμού να είναι δυνατό να ενσωματωθεί στο γράφημα. Δοθέντος ενός πίνακα δρομολογίου, ορίζεται ένα κατευθυνόμενο γράφημα, που ονομάζεται ρεαλιστικό χρονο-εκτεταμένο γράφημα (realistic time-expanded graph) με συνάρτηση βάρους. Έστω το σύνολο των κόμβων που σχετίζονται με τις μετεπιβιβάσεις μέσα στο σταθμό. Για κάθε στοιχειώδη σύνδεση του πίνακα δρομολογίων, ορίζεται: 40

47 α) ένας κόμβος αναχώρησης (departure node) για την αναχώρηση του οχήματος τη χρονική στιγμή από το σταθμό, β) ένας κόμβος μετεπιβίβασης (transfer node) που αντιστοιχεί στον κόμβο αναχώρησης, γ) ένας κόμβος άφιξης (arrival node) για την άφιξη του οχήματος τη χρονική στιγμή στο σταθμό, δ) μια ακμή μετεπιβίβασης-αναχώρησης (transfer-departure edge) και ε) μια ακμή ταξιδιού (travel edge) για το ταξίδι που πραγματοποιεί το όχημα από το σταθμό στο σταθμό. Τότε είναι, και. Ακολούθως, σε ένα σταθμό, για κάθε κόμβο άφιξης, δημιουργείται: α) μια ακμή άφιξης-μετεπιβίβασης (arrival-transfer edge) από τον κόμβο στον κόμβο μετεπιβίβασης που οδηγεί στην αμέσως επόμενη αναχώρηση από το σταθμό με διαφορετικό όχημα, έτσι ώστε και β) μια ακμή άφιξης-αναχώρησης (arrival-departure edge) από τον κόμβο στον κόμβο που αντιστοιχεί στην αμέσως επόμενη αναχώρηση από το σταθμό με το ίδιο όχημα. Η τελευταία ακμή ορίζεται μόνο στην περίπτωση που το όχημα συνεχίζει να ταξιδεύει και μετά το σταθμό, δηλαδή αν υπάρχουν δυο διαδοχικές συνδέσεις και, με, και. Κατά συνέπεια, μια ακμή άφιξης-μετεπιβίβασης υποδηλώνει τη μεταφορά σε ένα άλλο σταθμό, αλλάζοντας όχημα (με την προϋπόθεση ότι ο χρόνος είναι αρκετός ώστε ο επιβάτης να προλάβει να επιβιβαστεί σε αυτό το όχημα). Αντίθετα, η ακμή άφιξης-αναχώρησης υποδηλώνει τη μεταφορά σε ένα άλλο σταθμό, χωρίς μετεπιβίβαση, παραμένοντας ο επιβάτης στο ίδιο όχημα με το οποίο ταξιδεύει. Tο βάρος κάθε ακμής ορίζεται ως. Οι ακμές παραμονής σε αυτό το μοντέλο τοποθετούνται μεταξύ των κόμβων μετεπιβίβασης αντί των κόμβων αναχώρησης. Οι κόμβοι μετεπιβίβασης διατάσσονται κατά αύξουσα σειρά χρόνου. Έστω,, οι κόμβοι μετεπιβίβασης που αντιστοιχούν στο σταθμό, με. Τότε για κάθε ζεύγος κόμβων,, ορίζεται η ακμή παραμονής (stay edge), για το χρόνο που μεσολαβεί μεταξύ των και. Ενώ οι ακμές παραμονής,, αφορούν δρομολόγια εντός της τρέχουσας μέρας, η εισάγει την απαιτούμενη περιοδικότητα των δρομολογίων, για ταξίδια που μπορεί να έχουν έκταση χρονικά παραπάνω της μιας μέρας. 41

48 Εικόνα 20: Παράδειγμα ρεαλιστικού χρονο-εκτεταμένου γραφήματος. Οι κόμβοι άφιξης, μετεπιβίβασης και αναχώρησης έχουν χρωματιστεί με μπλε, γκρι και κίτρινο, αντίστοιχα. Οι ακμές ταξιδιού, άφιξης-μετεπιβίβασης και άφιξης-αναχώρησης έχουν χρωματιστεί με μπλε, (σκούρο) πορτοκαλί και πράσινο, αντίστοιχα. Οι υπόλοιπες ακμές έχουν χρωματιστεί με μαύρο. Ο ελάχιστος χρόνος μετεπιβίβασης είναι 5min σε όλους τους σταθμούς του παραδείγματος. Εικόνα 21: Παράδειγμα ενημέρωσης του ρεαλιστικού χρονο-εκτεταμένου γραφήματος, μετά την καθυστέρηση ενός δρομολογίου. Οι ακμές, καθώς και οι κόμβοι αναχώρησης και άφιξης, που αντιστοιχούν στο δρομολόγιο με την καθυστέρηση και χρειάζονται να ενημερωθούν έχουν χρωματιστεί με κόκκινο. Οι διακεκομένες ακμές αποτελούν το ίχνος των ακμών που υπήρχαν πριν την ενημέρωση. Η καθυστέρηση είναι 15min. Χωρική πολυπλοκότητα. Με βάση την κατασκευή του ρεαλιστικού χρονοεκτεταμένου γραφήματος, απαιτούνται κόμβοι και ακμές. Το πρώτο, διότι, για κάθε σύνδεση παράγεται 1 κόμβος άφιξης, 1 κόμβος μετεπιβίβασης και 1 κόμβος αναχώρησης. Το δεύτερο, διότι, για κάθε σύνδεση, παράγεται 1 ακμή μετεπιβίβασης-αναχώρησης, 1 ακμή παραμονής εξερχόμενη από τον, 1 ακμή ταξιδιού και 1 ακμή 42

49 άφιξης-μετεπιβίβασης εξερχόμενη από τον κόμβο. Επιπρόσθετα, παράγεται 1 ακμή άφιξης-αναχώρησης, στην περίπτωση που μετά το σταθμό, το όχημα συνεχίζει το δρομολόγιό του μέσω μιας επόμενης σύνδεσης (με μια επόμενη αναχώρησή του από το σταθμό ). Εύρεση του Ελάχιστου Αριθμού Μετεπιβιβάσεων. Η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Για να μπορεί ο αλγόριθμος να λάβει υπόψη του τις μετεπιβιβάσεις, είναι μόλις αρκετό να οριστεί βάρος ίσο με 1 σε όλες τις ακμές άφιξης-μετεπιβίβασης και στις υπόλοιπες βάρος ίσο με 0. Εύρεση της Συντομότερης Άφιξης. Ομοίως με το προηγούμενο μοντέλο, κι ανεξάρτητα από την αλλαγή στην τοπολογία του γραφήματος, η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Στα πλαίσια της επίλυσης των και, ο κόμβος από τον οποίο ξεκινάει ο αλγόριθμος του Dijkstra επιλέγεται από το σταθμό, ως ο κόμβος με την αμέσως επόμενη αναχώρηση από τη χρονική στιγμή,. Ο αλγόριθμος τερματίζει στο πρώτο κόμβο άφιξης, που εξάγεται από την ουρά. Ενημέρωση χρόνου ταξιδιού. Σε ένα δυναμικό περιβάλλον, η κατάσταση των δρομολογίων ενδεχομένως να αλλάξει. Περιπτώσεις, όπως η καθυστέρηση ενός μέσου μεταφοράς ή η διακοπή ενός δρομολογίου, είναι δυνατόν να συμβούν σε πραγματικό χρόνο. Ως εκ τούτου, το γράφημα χρειάζεται να τροποποιηθεί κατάλληλα προκείμενου αυτό να αναπαριστά τη νέα κατάσταση. Παρακάτω, παρουσιάζεται η μέθοδος ενημέρωσης του ρεαλιστικού χρονο-εκτεταμένου γραφήματος για την περίπτωση καθυστερήσεων [18]. Έστω, η καθυστέρηση ενός οχήματος στη σύνδεση και έστω ότι υπόλοιπο δρομολόγιο που ακολουθεί μέχρι τη τελική στάση είναι. Τότε η διαδικασία ενημέρωσης περιλαμβάνει τα εξής βήματα: Βήμα 1 (Ενημέρωση της πρώτης ακμής ταξιδιού): Το βάρος της ακμής ταξιδιού, όπου και, αυξάνεται κατά. Βήμα 2 (Ενημέρωση βαρών): Σε όλους τους σταθμούς στους οποίους ταξιδεύει το όχημα, μέσω των συνδέσεων, το βάρος των ακμών άφιξηςμετεπιβίβασης,, μειώνεται κατά και των ακμών μετεπιβίβασης-αναχώρησης,, αυξάνεται κατά. Βήμα 3 (Διόρθωση δεικτών): Έστω ο σταθμός στον οποίο αντιστοιχούνται οι κόμβοι και. Έχοντας πραγματοποιηθεί, από το προηγούμενο βήμα, η ενημέρωση στα βάρη των ακμών άφιξης-μετεπιβίβασης, έπειτα ελέγχεται αν κάθε ακμή με το νέο βάρος της, παραμένει έγκυρη, με την έννοια ότι δεν παραβιάζει τη συνθήκη. Αν δεν ικανοποιείται η συνθήκη τότε χρειάζεται να επιλεγεί ο επόμενος κόμβος μετεπιβίβασης για τον οποίο ισχύει. Σε αυτή την περίπτωση, η ακμή 43

50 44 διαγράφεται και για τη νέα έγκυρη μετεπιβίβαση εισάγεται η ακμή, με βάρος. Ως προς τη χρονική πολυπλοκότητα, το πρώτο βήμα χρειάζεται σταθερό χρόνο (ενημέρωση του βάρους της πρώτης ακμής ταξιδιού), το δεύτερο βήμα χρόνο στη χειρότερη περίπτωση (ενημέρωση του βάρους δυο ακμών σε κάθε σταθμό), και το τρίτο βήμα χρόνο εφόσον σε κάθε ένα σταθμό που επηρεάζεται, μπορεί να εφαρμοστεί δυαδική αναζήτηση στους κόμβους μετεπιβίβασης (ή αναχώρησης) για τη ρύθμιση των νέων έγκυρων μετεπιβιβάσεων. Ένα παράδειγμα ενημέρωσης ενός ρεαλιστικού χρονο-εκτεταμένου γραφήματος περιγράφεται στην Εικόνα 20 (πριν την εφαρμογή της καθυστέρησης) και Εικόνα 21 (μετά την εφαρμογή της καθυστέρησης). 4.3 Ανηγμένο Ρεαλιστικό Χρόνο-Εκτεταμένο Μοντέλο Σε σχέση με το απλό χρονο-εκτεταμένο μοντέλο, το ρεαλιστικό οδηγεί σε μια αύξηση του μεγέθους του γραφήματος που αναπαριστά το πίνακα δρομολογίων, κατά. Αυτή η αύξηση, από τη μια πλευρά εξυπηρετεί την ενσωμάτωση των περιορισμών στις μετεπιβιβάσεις, αλλά από την άλλη πλευρά αυξάνει το κόστος διάσχισης του γραφήματος (λόγω της πυκνότερης τοπολογίας). Ωστόσο, με μια κατάλληλη τροποποίηση η ενσωμάτωση των περιορισμών των μετεπιβιβάσεων μπορεί να επιτευχτεί με ισοδύναμο τρόπο, χωρίς να απαιτείται η αύξηση στο μέγεθος του γραφήματος. Το Ανηγμένο Ρεαλιστικό Χρόνο-εκτεταμένο Μοντέλο (Reduced Realistic Timeexpanded) [13, 41] αποτελεί μια παραλλαγή του ρεαλιστικού χρονο-εκτεταμένου μοντέλου με λιγότερες απαιτήσεις σε χώρο. Η βασική διαφορά, σε αυτή την προσέγγιση, είναι ότι οι κόμβοι αναχώρησης μπορούν να έχουν τον ίδιο ρόλο με αυτό των κόμβων μετεπιβίβασης, όπως περιγράφηκε στην προηγούμενη ενότητα. Δοθέντος ενός πίνακα δρομολογίου, ορίζεται ένα κατευθυνόμενο γράφημα, που ονομάζεται ανηγμένο ρεαλιστικό χρονο-εκτεταμένο γράφημα (reduced realistic time-expanded graph) με συνάρτηση βάρους. Αναλυτικότερα, για κάθε στοιχειώδη σύνδεση του πίνακα δρομολογίων ορίζεται: α) ένας κόμβος αναχώρησης (departure node) για την αναχώρηση του οχήματος τη χρονική στιγμή από το σταθμό, β) ένας κόμβος άφιξης (arrival node) για την άφιξη του οχήματος τη χρονική στιγμή στο σταθμό και γ) μια ακμή ταξιδιού (travel edge) για το συγκεκριμένο ταξίδι που πραγματοποιεί το όχημα από το σταθμό στο σταθμό. Τότε είναι, και. Ακολούθως, σε ένα σταθμό, για κάθε κόμβο άφιξης, δημιουργείται: α) μια ακμή άφιξηςαναχώρησης (arrival-departure edge) από τον κόμβο στον κόμβο αναχώρησης που αντιστοιχεί στην αμέσως επόμενη αναχώρηση από το σταθμό με διαφορετικό όχημα, έτσι ώστε και β) μια ακμή άφιξης-άφιξης (arrival-arrival edge) από τον κόμβο στον κόμβο που αντιστοιχεί στην αμέσως επόμενη χρονικά άφιξη του ίδιου

51 οχήματος σε ένα άλλο σταθμό. Επομένως, η ακμή άφιξηςαναχώρησης υποδηλώνει ένα ταξίδι σε έναν άλλο σταθμό με ένα διαφορετικό όχημα, στο οποίο ο επιβάτης προλαβαίνει να επιβιβαστεί. Αντίθετα, η ακμή άφιξης-άφιξης υποδηλώνει ένα ταξίδι σε έναν άλλο σταθμό, χωρίς μετεπιβίβαση, παραμένοντας ο επιβάτης στο ίδιο όχημα με το οποίο ταξιδεύει. Η τελευταία ακμή ορίζεται μόνο στην περίπτωση που το όχημα συνεχίζει να ταξιδεύει και μετά το σταθμό, δηλαδή αν υπάρχουν δυο διαδοχικές συνδέσεις και, με, και. Στο, οι κόμβοι αναχώρησης διατάσσονται κατά αύξουσα σειρά χρόνου και οι ακμές παραμονής τοποθετούνται μεταξύ τους. Συγκεκριμένα, έστω,, οι κόμβοι που αντιστοιχούν στο σταθμό, με. Για κάθε ζεύγος κόμβων,, ορίζεται η ακμή παραμονής (stay edge), για το χρόνο που μεσολαβεί μεταξύ δυο χρονικών γεγονότων εντός του σταθμού. Ενώ οι ακμές παραμονής,, αφορούν δρομολόγια εντός της τρέχουσας μέρας, η εισάγει την απαιτούμενη περιοδικότητα των δρομολογίων, για ταξίδια που μπορεί να έχουν έκταση χρονικά παραπάνω της μιας μέρας. Tο βάρος κάθε ακμής ορίζεται ως η χρονική διαφορά των χρονικών στιγμών των γεγονότων που αντιπροσωπεύουν οι κόμβοι και :. Εικόνα 22: Παράδειγμα ανηγμένου ρεαλιστικού χρονο-εκτεταμένου γραφήματος. Οι κόμβοι άφιξης και αναχώρησης έχουν χρωματιστεί με μπλε και κίτρινο, αντίστοιχα. Οι ακμές ταξιδιού, άφιξης-αναχώρησης και άφιξης-άφιξης έχουν χρωματιστεί με μπλε, (σκούρο) πορτοκαλί και πράσινο, αντίστοιχα. Οι ακμές παραμονής έχουν χρωματιστεί με μαύρο. Ο ελάχιστος χρόνος μετεπιβίβασης είναι 5min σε όλους τους σταθμούς του παραδείγματος. 45

52 Εικόνα 23: Παράδειγμα ενημέρωσης του ανηγμένου ρεαλιστικού χρονο-εκτεταμένου γραφήματος, μετά την καθυστέρηση ενός δρομολογίου. Οι ακμές, καθώς και οι κόμβοι αναχώρησης και άφιξης, που αντιστοιχούν στο δρομολόγιο με την καθυστέρηση και χρειάζονται να ενημερωθούν έχουν χρωματιστεί με κόκκινο. Οι διακεκομένες ακμές αποτελούν το ίχνος των ακμών που υπήρχαν πριν την ενημέρωση. Η καθυστέρηση είναι 15min. Χωρική πολυπλοκότητα. Με βάση την κατασκευή του ανηγμένου ρεαλιστικού χρονοεκτεταμένου γραφήματος, απαιτούνται κόμβοι και ακμές. Το πρώτο, διότι, για κάθε σύνδεση παράγεται 1 κόμβος άφιξης και 1 κόμβος-αναχώρησης. Το δεύτερο, διότι, για κάθε σύνδεση παράγεται 1 ακμή παραμονής εξερχόμενη από τον, 1 ακμή ταξιδιού και 1 ακμή άφιξης-αναχώρησης εξερχόμενη από τον κόμβο. Επιπρόσθετα, παράγεται 1 ακμή άφιξης-άφιξης, στην περίπτωση που το όχημα συνεχίζει το δρομολόγιό του μέσω μιας επόμενης σύνδεσης. Εύρεση του Ελάχιστου Αριθμού Μετεπιβιβάσεων. Η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Για να μπορεί ο αλγόριθμος να λάβει υπόψη του τις μετεπιβιβάσεις, είναι μόλις αρκετό να οριστεί βάρος ίσο με 1 σε όλες τις ακμές άφιξης-αναχώρησης και στις υπόλοιπες βάρος ίσο με 0. Εύρεση της Συντομότερης Άφιξης. Ομοίως με το προηγούμενο μοντέλο, κι ανεξάρτητα από την αλλαγή στην τοπολογία του γραφήματος, η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Στα πλαίσια της επίλυσης των και, ο κόμβος από τον οποίο ξεκινάει ο αλγόριθμος του Dijkstra επιλέγεται από το σταθμό, ως ο κόμβος με την αμέσως επόμενη αναχώρηση από τη χρονική στιγμή,. Ο αλγόριθμος τερματίζει στο πρώτο κόμβο άφιξης, που εξάγεται από την ουρά. Παρουσιάζεται μια βελτιστοποιημένη παραλλαγή του αλγορίθμου του Dijkstra [13],, για την περίπτωση ενός ανηγμένου ρεαλιστικού χρονο-εκτεταμένου γραφήματος. Η παραλλαγή περιλαμβάνει τα ακόλουθα: 46

53 Πρώτον, προκειμένου να μειωθεί το μέγεθος της ουράς προτεραιότητας, επιτρέπονται εισαγωγές σε αυτή μόνο από κόμβους άφιξης. Αυτό είναι δυνατό να μειώσει το υπολογιστικό κόστος του αλγορίθμου καθώς μειώνεται το πλήθος και το κόστος των ενημερώσεων στην ουρά προτεραιότητας. Ωστόσο, από την άλλη πλευρά, για να διατηρηθεί η ορθότητα του αλγόριθμου πρέπει η χαλάρωση των ακμών να επεκταθεί σε βάθος δύο επίπεδων. Συγκεκριμένα, κατά τη διαδικασία χαλάρωσης μιας ακμής όπου η απόσταση του κόμβου,, ενημερώνεται, εάν o αποτελεί έναν κόμβο αναχώρησης, τότε χαλαρώνονται επιπρόσθετα η εξερχόμενη ακμή αναχώρησης-άφιξης και η εξερχόμενη ακμή αναχώρησης-αναχώρησης. Για παράδειγμα, στο γράφημα της Εικόνας 23, η διαδικασία χαλάρωσης μπορεί να περιλαμβάνει την ακυκλική συνιστώσα των ακμών από το 5 (άφιξη) στο 10 (αναχώρηση), από το 10 (αναχώρηση) στο 15 (αναχώρηση) και από το 10 (αναχώρηση) στο 19 (άφιξη). Δεύτερον, για τη μείωση του χώρου αναζήτησης του Dijkstra, τα κριτήρια εξερεύνησης των κόμβων τροποποιούνται. Μεταξύ δυο γειτονικών σταθμών, και, (που συνδέονται με ακμές ταξιδιού) υπάρχουν γενικά πολλές διαδρομές (για κάθε διαφορετική αναχώρηση στο και άφιξη στο των μέσων μεταφοράς). Ο στόχος είναι να αποκλεισθούν από νωρίς αυτές που δεν αποτελούν μέρος της βέλτιστης διαδρομής. Για να πραγματοποιηθεί αυτός ο αποκλεισμός, αξιοποιείται η διάταξη των κόμβων αναχώρησης του σταθμού κατά αύξουσα σειρά χρόνου αναχώρησης. Επιπλέον, παράλληλα, σε κάθε βήμα του αλγορίθμου αποθηκεύεται ο τρέχον συντομότερος χρόνος άφιξης σε κάθε σταθμό που εξερευνείται. Τότε, μπορούν να αποκλεισθούν οι κόμβοι αναχώρησης του που έχουν χρονική στιγμή αναχώρησης μεγαλύτερη από το τρέχον συντομότερο χρόνο άφιξης στο συν το ελάχιστο χρόνο μετεπιβίβασης του (για τη ρεαλιστική περίπτωση). Αυτό είναι ορθό, εφόσον αυτοί οι κόμβοι είναι αδύνατο να δώσουν καλύτερους χρόνους άφιξης στο. Τρίτον, η χρήση για το στοχοκατευθυνόμενο προσανατολισμό στο σταθμό προορισμού είναι δυνατό να οδηγήσει στη γρηγορότερη ανακάλυψη της βέλτιστης διαδρομής μειώνοντας τα βήματα του αλγορίθμου. Η χρονική πολυπλοκότητα του αλγόριθμου στη χειρότερη περίπτωση είναι. Ωστόσο, οι τεχνικές επιτάχυνσης που περιγράφηκαν παραπάνω μειώνουν αισθητά το χρόνο εκτέλεσης εύρεσης της ΣΑ. Ενημέρωση χρόνου ταξιδιού. Έστω, η καθυστέρηση ενός οχήματος στη σύνδεση και έστω ότι υπόλοιπο δρομολόγιο που ακολουθεί μέχρι τη τελική στάση είναι. Τότε η διαδικασία ενημέρωσης του ανηγμένου ρεαλιστικού χρονο-εκτεταμένου γραφήματος [13],, περιλαμβάνει τα εξής βήματα: Βήμα 1 (Ενημέρωση πρώτης άφιξης): Το βάρος των εισερχόμενων ακμών του κόμβου άφιξης, που αντιστοιχεί στο όχημα που καθυστέρησε, με και, αυξάνεται κατά. Βήμα 2 (Ενημέρωση επόμενων αφίξεων): Σε όλους τους υπόλοιπους σταθμούς στους οποίους ταξιδεύει το όχημα, μέσω των συνδέσεων πραγματοποιείται η ίδια διαδικασία ενημέρωσης. Σε κάθε τέτοιο σταθμό, έστω το 47

54 48 ζεύγος : ο κόμβος άφιξης με την καθυστερημένη άφιξη του οχήματος και ο κόμβος με την καθυστερημένη (και επόμενη χρονικά) αναχώρηση του οχήματος. Τότε ο κόμβος αναχώρησης θα έχει πλέον νέα χρονική στιγμή αναχώρησης. Για να διατηρηθεί η διάταξη των κόμβων αναχώρησης κατά αύξουσα σειρά χρόνου αναχώρησης, ο μπορεί να χρειαστεί να μετακινηθεί στην κατάλληλη θέση αλλάζοντας τους δείκτες των ακμών (με παρόμοιο τρόπο όπως σε μια δομή διασυνδεδεμένης λίστας). Επίσης ανάλογα το μέγεθος της καθυστέρησης, στο σταθμό, μπορεί να χρειαστεί τουλάχιστον ένας κόμβος άφιξης στο να συνδεθεί σε ένα νέο κόμβο συντομότερης αναχώρησης στο που να ικανοποιεί το περιορισμό του ελάχιστου χρόνου μετεπιβίβασης. Αυτό απαιτεί μια τροποποίηση της τοπολογίας του γραφήματος, ώστε αυτό να παραμείνει έγκυρο ως προς το νέο πίνακα δρομολογίων. Τότε, οι ακμές άφιξης-αναχώρησης που απαιτούνται να ενημερωθούν, ικανοποιούν μια από τις ακόλουθες συνθήκες: α) η ουρά τους είναι ο κόμβος, β) η κεφαλή τους είναι ο κόμβος και γ) η κεφαλή τους είναι ένας επόμενος (χρονικά) κόμβος αναχώρησης από τον κόμβο. Σε κάθε περίπτωση, τα βάρη των ακμών που επηρεάζονται από τη διαδικασία υπολογίζονται εκ νέου ως. Ένα παράδειγμα ενημέρωσης ενός ανηγμένου ρεαλιστικού χρονο-εκτεταμένου γραφήματος περιγράφεται στην Εικόνα 22 (πριν την εφαρμογή της καθυστέρησης) και στην Εικόνα 23 (μετά την εφαρμογή της καθυστέρησης). 4.4 Μοντέλο Δυναμικού Πίνακα Δρομολογίων Το Μοντέλο Δυναμικού Πίνακα Δρομολογίων (Dynamic Timetable Model), λαμβάνει υπόψη το ελάχιστο χρόνο μετεπιβίβασης κάθε σταθμού. Το πλεονέκτημά του έγκειται στο ότι πετυχαίνει το μικρότερο μέγεθος γραφήματος σε σχέση με τα αντίστοιχα των μοντέλων που εξετάστηκαν στις προηγούμενες ενότητες. Στο, σε κάθε σταθμό ξεχωριστά, όλες οι αφίξεις αντιπροσωπεύονται αποκλειστικά από έναν μόνο κόμβο. Δοθέντος ενός πίνακα δρομολογίου, ορίζεται ένα κατευθυνόμενο γράφημα, το οποίο ονομάζεται γράφημα δυναμικού πίνακα δρομολογίων (dynamic timetable graph) [13] με συνάρτηση βάρους. Η κατασκευή του γραφήματος περιγράφεται ως εξής: 1. Για κάθε σταθμό, δημιουργείται ένας κόμβος, ο οποίος καλείται κόμβος μεταγωγής (switch node). 2. Για κάθε στοιχειώδη σύνδεση, δημιουργείται: α) ένας κόμβος αναχώρησης (departure node), με, β) μια ακμή μεταγωγής (switch edge),, από τον κόμβο μεταγωγής στον κόμβο αναχώρησης, με βάρος άπειρο, και γ) μια ακμή ταξιδιού (travel edge) (, ), από τον κόμβο αναχώρησης στον κόμβο μεταγωγής, με βάρος ). Συμβολικά, για μια ακμή ταξιδιού, ο χρόνο άφιξης που αντιστοιχεί στον κόμβο αναχώρησης είναι. 3. Για ένα όχημα, το οποίο ακολουθεί το δρομολόγιο, μια ακμή οχήματος (vehicle edge) εισάγεται σε κάθε ζεύγος κόμβων αναχώρησης, των

55 συνδέσεων και,. Οι ακμές οχήματος υποδηλώνουν ένα ταξίδι στον επόμενο σταθμό, χωρίς μετεπιβίβαση, παραμένοντας ο επιβάτης στο ίδιο όχημα. Το βάρος κάθε ακμής οχήματος ορίζεται Δ( ). 4. Σε κάθε σταθμό, οι κόμβοι αναχώρησης ταξινομούνται κατά αύξουσα σειρά χρόνου άφιξης: η σειρά των εξερχόμενων ακμών του κόμβου μεταγωγής είναι τέτοια ώστε για δυο διαδοχικές ακμές, και, ανν. Εικόνα 24: Παράδειγμα γραφήματος δυναμικού πίνακα δρομολογίων. Οι κόμβοι μεταγωγής και αναχώρησης έχουν χρωματιστεί με μπλε και κίτρινο, αντίστοιχα. Οι ακμές ταξιδιού, μεταγωγήςαναχώρησης και αναχώρησης-αναχώρησης έχουν χρωματιστεί με μπλε, (σκούρο) πορτοκαλί και πράσινο, αντίστοιχα. Ο ελάχιστος χρόνος μετεπιβίβασης είναι 5min σε όλους τους σταθμούς του παραδείγματος. Χωρική πολυπλοκότητα. Με βάση την κατασκευή του γραφήματος δυναμικού πίνακα δρομολογίων, απαιτούνται κόμβοι και ακμές. Το πρώτο, διότι, για κάθε σταθμό παράγεται 1 κόμβος μεταγωγής και για κάθε σύνδεση παράγεται 1 κόμβος αναχώρησης. Ως προς τις ακμές, για κάθε σύνδεση παράγεται 1 ακμή μεταγωγής-αναχώρησης και 1 ακμή ταξιδιού (, ). Επιπρόσθετα, παράγεται 1 ακμή οχήματος στην περίπτωση που το όχημα συνεχίζει το δρομολόγιο του μέσω μιας επόμενης σύνδεσης (έχοντας δηλαδή δυο διαδοχικές αναχωρήσεις από το και από το ). Σε αντίθεση με τα προηγούμενα χρόνο-εκτεταμένα μοντέλα στο μοντέλο δυναμικού πίνακα δρομολογίων, οι κόμβοι άφιξης του σταθμού συγχωνεύονται σε έναν, τον κόμβο μεταγωγής του. Για την ακρίβεια, ο δύναται να αντιπροσωπεύει όλες τις χρονικές στιγμές άφιξης στο σταθμό. Κατά αυτόν τον τρόπο, οι χρόνοι των αφίξεων των οχημάτων πλέον δεν αποθηκεύονται στο γράφημα αλλά υπολογίζονται κατά την διάρκεια της αναζήτησης των συντομότερων διαδρομών σε κάθε κόμβο μεταγωγής. Επίσης μια άλλη σημαντική διαφοροποίηση, έγκειται στο ότι κόμβοι αναχώρησης ταξινομούνται κατά αύξουσα σειρά χρόνου άφιξης, αντί κατά αύξουσα σειρά χρόνου αναχώρησης. 49

56 Εικόνα 25: Παράδειγμα ενημέρωσης του γραφήματος δυναμικού πίνακα δρομολογίων, μετά από την καθυστέρηση ενός δρομολογίου. Οι ακμές καθώς και οι κόμβοι αναχώρησης που αντιστοιχούν στο δρομολόγιο με την καθυστέρηση και χρειάζονται να ενημερωθούν έχουν χρωματιστεί με κόκκινο. Η καθυστέρηση είναι 15min. Θεώρημα [13] Η επίλυση του και πραγματοποιείται στη χειρότερη περίπτωση σε χρόνο. Εύρεση του Ελάχιστου Αριθμού Μετεπιβιβάσεων. Η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Για να μπορεί ο αλγόριθμος να λάβει υπόψη του τις μετεπιβιβάσεις, είναι μόλις αρκετό να οριστεί βάρος ίσο με 0 σε όλες τις ακμές αναχώρησης-αναχώρησης και στις υπόλοιπες βάρος ίσο με 1. Ο κόμβος από τον οποίο ξεκινάει ο αλγόριθμος είναι ο κόμβος μεταγωγής του σταθμού αφετηρία. Ο αλγόριθμος τερματίζει στον κόμβο μεταγωγής του σταθμού προορισμού. Εύρεση της Συντομότερης Άφιξης. Η επίλυση του μπορεί να επιτευχτεί με τον αλγόριθμο του Dijkstra, σε χρόνο. Ο κόμβος από τον οποίο ξεκινάει ο αλγόριθμος είναι ο κόμβος μεταγωγής του σταθμού αφετηρία, σημειώνοντας την αρχική απόσταση ίση με τη χρονική στιγμή έναρξης. Ο αλγόριθμος τερματίζει στον κόμβο μεταγωγής του σταθμού προορισμού. Η χρονική στιγμή άφιξης σε ένα κόμβο μεταγωγής, ορίζεται ως. Το βάρος μιας ακμής μεταγωγής-αναχώρησης ( υπολογίζεται από τον αλγόριθμο ως, αν, και διαφορετικά. Παρουσιάζεται μια βελτιστοποιημένη παραλλαγή του αλγορίθμου του Dijkstra [13], για την περίπτωση της εισόδου ενός γραφήματος δυναμικού πίνακα δρομολογίων. Η παραλλαγή περιλαμβάνει τα ακόλουθα: Πρώτον, προκειμένου να μειωθεί το μέγεθος της ουράς προτεραιότητας, επιτρέπονται εισαγωγές σε αυτή μόνο από κόμβους μεταγωγής, και κόμβους αναχώρησης με βαθμό εξερχόμενων ακμών μεγαλύτερο του 1. Αυτό είναι δυνατό να 50

57 μειώσει το υπολογιστικό κόστος του αλγορίθμου καθώς μειώνεται το πλήθος και το κόστος των ενημερώσεων στην ουρά προτεραιότητας. Ωστόσο, από την άλλη πλευρά, για να διατηρηθεί η ορθότητα του αλγόριθμου πρέπει η χαλάρωση της ακμής να επεκταθεί σε βάθος δύο επίπεδων. Συγκεκριμένα, κατά την διαδικασία χαλάρωσης μιας ακμής όπου η απόσταση του κόμβου,, ενημερώνεται, εάν o αποτελεί έναν κόμβο αναχώρησης, τότε χαλαρώνονται επιπρόσθετα η εξερχόμενη ακμή αναχώρησης-μεταγωγής και η εξερχόμενη ακμή αναχώρησης-αναχώρησης. Για παράδειγμα, στο γράφημα της Εικόνας 24, η διαδικασία χαλάρωσης μπορεί να περιλαμβάνει την ακυκλική συνιστώσα των ακμών από το (άφιξη) στο 15 (αναχώρηση), από το 15 (αναχώρηση) στο (άφιξη) και από το 15 (αναχώρηση) στο 25 (αναχώρηση). Δεύτερον, για τη μείωση του χώρου αναζήτησης του Dijkstra, τα κριτήρια εξερεύνησης των κόμβων τροποποιούνται. Μεταξύ δυο γειτονικών σταθμών, και, (που συνδέονται με ακμές ταξιδιού) υπάρχουν γενικά πολλές διαδρομές (για κάθε διαφορετική αναχώρηση στο και άφιξη στο των μέσων μεταφοράς). Επομένως για να αυξηθεί η απόδοση χρειάζεται να αποκλεισθούν από νωρίς αυτές που δεν αποτελούν μέρος της βέλτιστης διαδρομής. Για να πραγματοποιηθεί αυτός ο αποκλεισμός, αξιοποιείται η διάταξη των κόμβων αναχώρησης του σταθμού κατά αύξουσα σειρά χρόνου άφιξης. Τότε, μπορούν να αποκλεισθούν οι κόμβοι αναχώρησης του που έχουν χρονική στιγμή άφιξης μεγαλύτερη από το τρέχον συντομότερο χρόνο άφιξης στο συν το ελάχιστο χρόνο μετεπιβίβασης του (για τη ρεαλιστική περίπτωση). Αυτό είναι ορθό, εφόσον αυτοί οι κόμβοι είναι αδύνατο να δώσουν καλύτερους χρόνους άφιξης στο. Τρίτον, η χρήση για το στοχοκατευθυνόμενο προσανατολισμό στο σταθμό προορισμού είναι δυνατό να οδηγήσει στη γρηγορότερη ανακάλυψη της βέλτιστης διαδρομής μειώνοντας τα βήματα του αλγορίθμου. Η χρονική πολυπλοκότητα του αλγόριθμου στη χειρότερη περίπτωση είναι. Ωστόσο, οι τεχνικές επιτάχυνσης που περιγράφηκαν παραπάνω μειώνουν αισθητά το χρόνο εκτέλεσης εύρεσης της ΣΑ. Ενημέρωση χρόνου ταξιδιού. Ο αλγόριθμος ενημέρωσης [13],, που παρουσιάζεται παρακάτω πραγματοποιεί τις κατάλληλες αλλαγές στο γράφημα δυναμικού πίνακα δρομολογίων, για την περίπτωση καθυστερήσεων στο χρόνο ταξιδιού των μέσων μεταφοράς. Έστω ότι συμβαίνει μια καθυστέρηση στο χρόνο ταξιδιού του οχήματος, στη σύνδεση του πίνακα δρομολογίων και έστω η αλυσίδα συνδέσεων που χρησιμοποιεί το ίδιο όχημα έως ότου φτάσει σε ένα τελικό σταθμό ή στάση. Τότε τα βήματα της ενημέρωσης, είναι: Βήμα 1 (Ενημέρωση πρώτης αναχώρησης): Το βάρος των εξερχόμενων ακμών του κόμβου, ο οποίος αντιπροσωπεύει την πρώτη αναχώρηση του οχήματος, με και, αυξάνεται κατά. Βήμα 2 (Ενημέρωση επόμενων αναχωρήσεων): Σε όλους τους σταθμούς στους οποίους ταξιδεύει το όχημα, μέσω των συνδέσεων, ο αντίστοιχος χρόνος αναχώρησης του οχήματος στους σταθμούς αυτούς αυξάνεται κατά. Συγκεκριμένα, για, ο κόμβος αναχώρησης θα έχει πλέον νέα χρονική 51

58 στιγμή αναχώρησης. Επιπλέον, ανάλογα με το μέγεθος της καθυστέρησης, η διάταξη των κόμβων αναχώρησης στο σταθμό ενδεχομένως να μην είναι έγκυρη. Σε αυτή την περίπτωση χρειάζεται ο κόμβος αναχώρησης να μεταφερθεί στο τέλος της σειράς ή πριν τον πρώτο κόμβο που έχει. Στην περίπτωση που οι κόμβοι αποθηκεύονται σε πίνακα η διαδικασία διόρθωσης της διάταξης απαιτεί μια σειρά ανταλλαγών (swap) στις τιμές του εν λόγω πίνακα. Ένα παράδειγμα ενημέρωσης ενός γραφήματος δυναμικού πίνακα δρομολογίων περιγράφεται στην Εικόνα 24 (πριν την εφαρμογή της καθυστέρησης) και στην Εικόνα 25 (μετά την εφαρμογή της καθυστέρησης). Θεώρημα [13] Η ενημέρωση του γραφήματος δυναμικού πίνακα δρομολογίων σε καθυστερήσεις των οχημάτων πραγματοποιείται στη χειρότερη περίπτωση σε χρόνο. 52

59 Κεφάλαιο 5 - Νέο Μοντέλο Πολυτροπικής Δρομολόγησης Στον παρόν κεφάλαιο, για τις ανάγκες της ρεαλιστικής και πολυτροπικής δρομολόγησης, παρουσιάζεται ένα νέο μοντέλο, το οποίο καλείται Πολυτροπικό Μοντέλο Δυναμικού Πίνακα Δρομολογίων (Multimodal Dynamic Timetable Model). Στο, ο πίνακας δρομολογίων ορίζεται ως, όπου αντιπροσωπεύει το σύνολο των οχημάτων του δικτύου, το σύνολο των σταθμών του δικτύου, το σύνολο των στοιχειωδών συνδέσεων και το σύνολο των τύπων των μέσων μεταφοράς (όπως λεωφορείο, τρένο, τραμ). 5.1 Τοπολογία Δοθέντος ενός πίνακα δρομολογίου, ορίζεται ένα κατευθυνόμενο γράφημα, το οποίο ονομάζεται πολυτροπικό γράφημα δυναμικού πίνακα δρομολογίων (multimodal dynamic timetable graph) με συνάρτηση βάρους. Η δομή του γραφήματος, είναι ίδια με αυτή του Δυναμικού Πίνακα Δρομολογίων (Ενότητα 4.4), με μια διαφοροποίηση στη διάταξη των κόμβων αναχώρησης. Συγκεκριμένα, σε κάθε σταθμό, οι κόμβοι αναχώρησης, ομαδοποιούνται πρώτα κατά γειτονικό σταθμό άφιξης και στη συνέχεια κατά χρησιμοποιούμενο τύπο μέσου μεταφοράς. Ακολούθως, οι κόμβοι αναχώρησης μέσα σε κάθε υποομάδα ταξινομούνται κατά αύξουσα σειρά χρόνου άφιξης. Στην Εικόνα 26 παρουσιάζεται ένα γράφημα στο και στην Εικόνα 27 το αντίστοιχο γράφημα στο. Έστω το σύνολο σταθμών, έτσι ώστε αν υπάρχει σύνδεση με. Τότε το περιέχει τους γειτονικούς σταθμούς του σταθμού, για τους οποίους ένα όχημα, χωρίς ενδιάμεση στάση, αναχωρεί από το και φτάνει στο. Τότε ως προς τους γειτονικούς σταθμούς άφιξης, για κάθε σταθμό, υπάρχουν ομάδες κόμβων αναχώρησης. Για ένα σταθμό, ορίζεται ως, το σύνολο των κόμβων αναχώρησης, για κάθε σύνδεση, με, και. Τότε για κάθε και, οι κόμβοι αναχώρησης που αντιστοιχούν στο ταξινομούνται κατά αύξουσα σειρά χρόνου άφιξης. Αυτή η οργάνωση των κόμβων αναχώρησης δίνει το πλεονέκτημα σε μια διαδικασία αναζήτησης ή ενημέρωσης να εστιάσει κατευθείαν στους κόμβους που παρέχουν τους ζητούμενους τύπους οχημάτων και τους συντομότερους χρόνους άφιξης. 53

60 Εικόνα 26: Παράδειγμα γραφήματος δυναμικού πίνακα δρομολογίων. Οι κόμβοι μεταγωγής και αναχώρησης έχουν χρωματιστεί με μπλε και κίτρινο, αντίστοιχα. Οι ακμές μεταγωγήςαναχώρησης και αναχώρησης-αναχώρησης έχουν χρωματιστεί με σκούρο πορτοκαλί και πράσινο, αντίστοιχα. Οι ακμές ταξιδιού για δυο διαφορετικούς τύπους μέσων μεταφοράς έχουν χρωματιστεί με πορτοκαλί και κυανό. Ο ελάχιστος χρόνος μετεπιβίβασης είναι 5min σε όλους τους σταθμούς του παραδείγματος. Εικόνα 27: Παράδειγμα πολυτροπικού γραφήματος δυναμικού πίνακα δρομολογίων. Οι κόμβοι μεταγωγής και αναχώρησης έχουν χρωματιστεί με μπλε και κίτρινο, αντίστοιχα. Οι ακμές μεταγωγής-αναχώρησης και αναχώρησης-αναχώρησης έχουν χρωματιστεί με σκούρο πορτοκαλί και πράσινο, αντίστοιχα. Οι ακμές ταξιδιού για δυο διαφορετικούς τύπους μέσων μεταφοράς έχουν χρωματιστεί με πορτοκαλί και μπλε. Οι ακμές μεταγωγής-μεταγωγής έχουν χρωματιστεί με μαύρο. Ο ελάχιστος χρόνος μετεπιβίβασης είναι 5min σε όλους τους σταθμούς του παραδείγματος. 54

61 5.2 Μέσα μεταφοράς με ελεύθερη αναχώρηση To επιτρέπει τη μετακίνηση μέσω διαφορετικών δικτύων πέρα αυτού των ΜΜΜ. Αυτό έχει νόημα, εφόσον σε πραγματικά συγκοινωνιακά δίκτυα, οι επιβάτες προκειμένου να φτάσουν στον προορισμό τους μπορεί να χρειαστεί να αλλάξουν πάνω από μια συγκοινωνιακές γραμμές των ΜΜΜ. Κατά συνέπεια, οι επιβάτες μετά την άφιξή τους σε μια στάση ή σταθμό μπορεί να χρειαστεί να περπατήσουν έως ένα άλλο κοντινό σταθμό ή στάση, από όπου θα μπορούν να συνεχίσουν το ταξίδι τους. Σε αυτό το πλαίσιο λαμβάνεται υπόψη η μετακίνηση των επιβατών: α) μέσω πεζόδρομου και β) χρήσης αυτοκινήτου. Σε αντίθεση με την επιβίβαση σε οχήματα που εκτελούν προγραμματισμένα δρομολόγια, οι παραπάνω τρόποι μετακίνησης έχουν την ιδιαιτερότητα ότι δεν περιορίζονται σε συγκεκριμένες χρονικές στιγμές αναχώρησης. Για την υποστήριξη αυτού του είδους της μεταφοράς, ορίζεται ένας νέος τύπος ακμών ο οποίος αναλαμβάνει τη σύνδεση των σταθμών μέσω του οδικού δικτύου και του δικτύου των πεζόδρομων. Συγκεκριμένα, μια ακμή μεταγωγής-μεταγωγής αντιστοιχεί σε μια διαδρομή, χωρίς περιορισμό στην αναχώρηση, από το σταθμό στο σταθμό. 5.3 Ευρετήριο Βέλτιστης Άφιξης Για την αποδοτική εύρεση της συντομότερης άφιξης χρησιμοποιείται σε κάθε σταθμό ένα ευρετήριο. Έστω ότι είμαστε στο σταθμό τη χρονική και έστω ένας γειτονικός σταθμός του. Τότε ξεκινώντας τη χρονική στιγμή από το σταθμό, το ζητούμενο είναι η εύρεση της συντομότερης χρονικής άφιξης στο. Αυτό συνεπάγεται την εύρεση του βέλτιστου κόμβου αναχώρησης στο που το επιτυγχάνει αυτό. Σε αυτή την περίπτωση, ο χώρος αναζήτησης περιλαμβάνει τους κόμβους αναχώρησης του μέσω των οποίων υπάρχει άφιξη στο χρησιμοποιώντας τον τύπο οχήματος. Οι εν λόγω κόμβοι, από το σύνολο, είναι ήδη ταξινομημένοι κατά αύξουσα σειρά χρόνου άφιξης. Τότε, ο βέλτιστος κόμβος αναχώρησης στο καθορίζεται ως ο πρώτος κόμβος στην ταξινομημένη ακολουθία, με χρόνο αναχώρησης μεγαλύτερο ή ίσο από. Το πρόβλημα στην εύρεση του βέλτιστου κόμβου αναχώρησης στο έγκειται στο ότι χρειάζεται να διαχωριστούν οι κόμβοι με από τους υπόλοιπους με. Αυτό διότι, στην πρώτη περίπτωση, οι κόμβοι αφορούν δρομολόγια οχημάτων που έχουν ήδη αναχωρήσει από το σταθμό (οπότε δεν είναι εφικτή η επιβίβαση στη διάρκεια της τρέχουσας ημέρας) και στη δεύτερη περίπτωση, αφορούν δρομολόγια οχημάτων που πρόκειται να αναχωρήσουν από το σταθμό στο παρόν ( ) ή στο μέλλον (οπότε είναι εφικτή η επιβίβαση σε αυτά). Για την εύρεση του ζητούμενου κόμβου αναχώρησης, ο απλούστερος τρόπος, με γραμμική αναζήτηση χρειάζεται χρόνο. Το Ευρετήριο Βέλτιστης Άφιξης ΕΒΑ που αναπτύχθηκε, συμβολικά ως, βελτιώνει το χρόνο σε. Η κατασκευή του, σε δομή πίνακα περιγράφεται παρακάτω. Έστω η ακολουθία. Τότε: 55

62 Βήμα 1. Αρχικά πραγματοποιείται η εισαγωγή, στη πρώτη θέση του πίνακα. Επίσης ορίζεται. Βήμα 2. Με τη σειρά, για επιλέγεται το. Αν, τότε τίθεται και πραγματοποιείται η εισαγωγή στην αμέσως επόμενη θέση του πίνακα. Για παράδειγμα, έστω όλοι οι κόμβοι αναχώρησης (Πίνακας 4) ενός σταθμού σχετίζονται με αφίξεις προς το γειτονικό σταθμό. που 56 Σειρά κόμβων αναχωρήσεων κόμβος χρόνος αναχώρησης χρόνος άφιξης Πίνακας 4: Οι κόμβοι αναχώρησης μιας ομάδας. Τότε το Ευρετηρίου Βέλτιστης Άφιξης (Πίνακας 5), από το σταθμό στο σταθμό, θα έχει το ακόλουθο περιεχόμενο: Ευρετήριο Βέλτιστης Άφιξης κόμβος χρόνος αναχώρησης διάστημα αναχώρησης 1 [0,1] 3 (1,3] 14 (3,14] 20 (14,1440] Πίνακας 5: Παράδειγμα ευρετηρίου μιας ομάδας. Επομένως, αν για παράδειγμα ο επιβάτης βρεθεί τη χρονική στιγμή 5 στο σταθμό, τότε η αναζήτηση του βέλτιστου κόμβου αναχώρησης μπορεί να ξεκινήσει από τον κόμβο, παραλείποντας τους και, εφόσον έχουν 5. Αν ο επιβάτης βρεθεί τη χρονική στιγμή 15 στο σταθμό, τότε η αναζήτηση του βέλτιστου κόμβου αναχώρησης μπορεί να ξεκινήσει από τον κόμβο. Σημειώνεται, ότι στο παράδειγμα, οι κόμβοι και, σε κάθε περίπτωση, είναι αδύνατο να αποτελέσουν βέλτιστο κόμβο αναχώρησης. Αυτό διότι, οδηγούν στο πιο αργότερο χρόνο άφιξης σε σύγκριση με τους αντίστοιχους των γειτονικών κόμβων αναχώρησης. Η αποδοτικότητα του ευρετηρίου εξαρτάται από τα δεδομένα των αναχωρήσεωναφίξεων. Συγκεκριμένα, στο βαθμό που οι συνδέσεις από το στο έχουν κατά μέσο

63 όρο ίδιο χρόνο ταξιδιού, το ευρετήριο έχει την καλύτερη απόδοση στην αναζήτηση του βέλτιστου κόμβου αναχώρησης. Στη χειρότερη περίπτωση οι απαιτήσεις ενός ευρετηρίου σε χώρο είναι. 5.4 Αλγόριθμος εύρεσης της Συντομότερης Άφιξης Η βασική έκδοση, του αλγορίθμου βασίζεται στον ίδιο μηχανισμό αναζήτησης που ακολουθεί και ο ο αλγόριθμος του Dijkstra (εξέταση των κόμβων κατά αύξουσα σειρά απόσταση από την αφετηρία). Στην επόμενη ενότητα, ο αλγόριθμος, επεκτείνεται με την προσέγγιση. Είσοδος - Έξοδος Η είσοδος του αλγορίθμου αποτελεί: α) το συγκοινωνιακό δίκτυο ως ένα κατευθυνόμενο γράφημα του, με τα βάρη των ακμών να αντιστοιχούν στους χρόνους ταξιδιού ενός οχήματος ή παραμονής του επιβάτη σε ένα σταθμό, και β) οι επιλογές του επιβάτη: ο σταθμός ή η στάση αφετηρία από την οποία θέλει να ξεκινήσει, ο σταθμός ή η στάση προορισμού στην οποία θέλει να φτάσει, η χρονική στιγμή στην οποία βρίσκεται στην αφετηρία και τα μέσα μεταφοράς που θέλει να χρησιμοποιήσει στο ταξίδι του. Η έξοδος του αλγορίθμου αποτελεί η βέλτιστη διαδρομή, από τον κόμβο μεταγωγής με χρόνο έναρξης, προς τον κόμβο μεταγωγής του σταθμού. Η έξοδος, μέσω αυτής της διαδρομής, παρέχει τις ζητούμενες κατευθυντήριες πληροφορίες για το ερώτημα του χρήστη (χρόνοι αναχώρησης και άφιξης στα οχήματα που θα χρειαστεί να επιβιβαστεί, καθώς και τους σταθμούς ή τις στάσεις τα οποία περιλαμβάνει το ταξίδι). Τα βήματα του αλγορίθμου Παρακάτω ακολουθεί μια τυποποιημένη περιγραφή του αλγορίθμου, οποία παραθέτονται τα βήματα του αλγορίθμου., στην Αρχικοποίηση. Αρχικά από τον αλγόριθμο επιλέγεται ως ρίζα, ο κόμβος μεταγωγής του σταθμού. H απόσταση του ορίζεται ίση με τη χρονική στιγμή έναρξης του ταξιδιού,. Επιπλέον, για το σταθμό, ο ελάχιστος χρόνος μετεπιβίβασης τίθεται σε 0,, εφόσον τη χρονική στιγμή ο επιβάτης βρίσκεται ήδη μέσα στο σταθμό. Επαναληπτικό βήμα. Κάθε φορά εξάγεται από την ουρά ο κόμβος μεταγωγής, ενός σταθμού, με τη τρέχουσα ελάχιστη απόσταση από τον κόμβο μεταγωγής της αφετηρίας. Τότε ο σημειώνεται ως διευθετημένος, ορίζεται και στη συνέχεια χαλαρώνονται οι εξερχόμενες ακμές του. Σε αυτό το σημείο, αξιοποιούνται οι ομαδοποιήσεις των κόμβων αναχώρησης, που έχουν οριστεί για κάθε ένα σταθμό. Συγκεκριμένα, για κάθε γειτονικό σταθμό, και για κάθε τύπο οχήματος, ο αλγόριθμος επεξεργάζεται τους κόμβους αναχώρησης στην ομάδα. Με αυτό τον τρόπο ο αλγόριθμος μπορεί να παραλείψει όλους τους υπόλοιπους κόμβους αναχώρησης που δεν αφορούν ένα ταξίδι με τους επιλεγμένους τύπους οχημάτων του χρήστη. 57

64 Προκειμένου να μειωθεί το μέγεθος της ουράς προτεραιότητας επιτρέπονται εισαγωγές σε αυτή μόνο από κόμβους μεταγωγής. Αυτό είναι δυνατό να περιορίσει το μέγεθος της ουράς προτεραιότητας το πολύ σε, μειώνοντας σημαντικά το υπολογιστικό κόστος της. Ωστόσο, από την άλλη πλευρά, για να διατηρηθεί η ορθότητα του αλγορίθμου πρέπει να χρησιμοποιηθεί ένας διαφορετικός τρόπος εξερεύνησης και ενημέρωσης των κόμβων αναχώρησης. Πριν ξεκινήσει η διαδικασία χαλάρωσης των εξερχόμενων ακμών του, με δυαδική αναζήτηση στο ευρετήριο, από το σύνολο εντοπίζεται σε λογαριθμικό χρόνο ο βέλτιστος κόμβος αναχώρησης. Τότε ο αλγόριθμος ξεκινά τη χαλάρωση των ακμών από την, με βάση την ακολουθία των εξερχόμενων ακμών του, η οποία είναι ταξινομημένη κατά αύξουσα σειρά χρόνου άφιξης. Για λόγους διευκόλυνσης της περιγραφής χρησιμοποιούνται οι παρακάτω ορισμοί. Έστω όλη η ακολουθία των εξερχόμενων ακμών του :, με,. Στον έλεγχο των ακμών, ο πρώτος κόμβος αναχώρησης που έχει καλείται ο βέλτιστος ρεαλιστικός κόμβος αναχώρησης. Αν και, τότε διακρίνονται δυο ακολουθίες ακμών: και. Κατά τη διάρκεια της χαλάρωσης των ακμών του, ο αλγόριθμος χαλαρώνει με τη σειρά τις ακμές της ακολουθίας και έπειτα της ακολουθίας. Το βάρος μιας ακμής μεταγωγής-αναχώρησης, υπολογίζεται από τον αλγόριθμο ως. Στη πρώτη περίπτωση, για κάθε ακμή στην ακολουθία, o αλγόριθμος εξερευνεί και ενημερώνει τους κόμβους στις ακμές μεταγωγής-αναχώρησης και αναχώρησης-μεταγωγής ). Επίσης, αν υπάρχει μια ακμή αναχώρησηςαναχώρησης ), τότε υπάρχει ένα ταξίδι μέσω του οχήματος χωρίς μετεπιβιβάσεις, από κόμβο αναχώρησης σε κόμβο αναχώρησης. Σε αυτή την περίπτωση ο αλγόριθμος συνεχίζει την εξερεύνηση και ενημέρωση των κόμβων μέσω της αλυσίδας των ακμών αναχώρησης-αναχώρησης έως ότου βρεθεί κόμβος μεταγωγής που να είναι είτε μη εξερευνημένος ή είτε μη διευθετημένος. Στην δεύτερη περίπτωση, για κάθε ακμή στην ακολουθία, o αλγόριθμος εξερευνεί και ενημερώνει τους κόμβους στις ακμές μεταγωγής-αναχώρησης, αναχώρησης-μεταγωγής ), και (αν υπάρχει) αναχώρησης-αναχώρησης ). Ο αλγόριθμος μετά την τερματίζει στην πρώτη ακμή, που έχει. Όπως αποδεικνύεται, οι υπόλοιποι κόμβοι αναχώρησης στην ακολουθία στο δεν δύναται να ανήκουν στη συντομότερη διαδρομή από το στο. Τερματική συνθήκη. Ο αλγόριθμος τερματίζει όταν ο κόμβος μεταγωγής σημειωθεί από τον αλγόριθμο ως διευθετημένος, έχοντας αποκτήσει το συντομότερο χρόνο άφιξης για το σταθμό. 58

65 Λήμμα 5.4. Όταν διευθετείται ένας κόμβος μεταγωγής από τον αλγόριθμο, η συντομότερη διαδρομή από το στο, δεν περιλαμβάνει κόμβους με. Απόδειξη (απαγωγή σε άτοπο). Ένας κόμβος αναχώρησης εκ κατασκευής του γραφήματος πολυτροπικού δυναμικού πίνακα δρομολογίων, έχει το πολύ δυο εξερχόμενες ακμές. Ειδικότερα, έστω ότι αυτές είναι η ακμή αναχώρησης-μεταγωγής και αν υπάρχει η ακμή αναχώρησης-αναχώρησης. Υπόθεση: Έστω ότι η συντομότερη διαδρομή από το στο, περιέχει τον κόμβο με διακρίνονται δυο περιπτώσεις (Εικόνα 28): (1). Τότε α) Ο ανήκει στη συντομότερη διαδρομή. Αυτό σημαίνει ότι, που έρχεται σε αντίθεση με την υπόθεση. β) Ο ανήκει στη συντομότερη διαδρομή. Αυτό σημαίνει ότι, όπου Επομένως, λόγω (1), προκύπτει ότι:. Άρα, το βάρος της ακμής είναι: (2). Λόγω (1) και (2), έχουμε:. Δηλαδή, υπάρχει μικρότερη απόσταση στο μέσω του κόμβου, το οποίο έρχεται σε αντίθεση με την υπόθεση. Εφόσον και στις δυο περιπτώσεις προέκυψε άτοπο, συμπεραίνεται ότι ο όταν ικανοποιείται η συνθήκη (1), δεν μπορεί να ανήκει στη συντομότερη διαδρομή από το στο. Εικόνα 28: Μετάβαση από το σταθμό στο σταθμό, με μετεπιβίβαση ή χωρίς. 59

66 Ψευδοκώδικας 001 MultiModalRouting(Graph G, Station S, Station T, Time ts, VehicleSet Mc) 002 { 003 Node v, d, σ; 004 Edge e; //αρχικοποίηση 007 //οι κόμβοι σημειώνονται ως ανεξερεύνητοι 008 forall_nodes( v, G) 009 { 010 mark v as unvisited; 011 dist[v] = ; 012 pred[v] = null; 013 } //έναρξη από το σταθμό-αφετηρία 016 σ = getswitchnode( S); 017 dist[σ] = ts; 018 PQ.insert( σ, ts); 019 mintransfertime(s) = 0; //εξερεύνηση και διευθέτηση των κόμβων μεταγωγής 022 //των σταθμών κατά αύξουσα σειρά απόστασης 023 while(!q.empty()) 024 { 025 σ = PQ.extract_min(); if( station[σ] == T) 028 break; //ορισμός συντομότερης χρονικής στιγμής άφιξης 031 t(σ) = σ->dist % Period; //χαλάρωση ακμών προς τους γειτονικούς σταθμούς 034 Station nextst; 035 forall_adj_stations( station[σ], nextst) 036 { 037 forall_vehicles( vh, M(station[σ],nextSt)) 038 if( vh in Mc) 039 relaxstationedges( σ, nextst, vh); 040 else 041 continue; 042 } 043 } resetmintransfertime(s); 046 } relaxstationedges( Node σ, Station nextst, VehicleType vh) 049 { 050 EdgeSet E0, Ei; 051 Edge e; //με βάση τη δεδομένη ταξινόμηση των κόμβων αναχώρησης 054 //κατά αύξουσα σειρά χρόνου άφιξης, εξετάζονται 055 //οι παρακάτω ακολουθίες ακμών 056 E0 = 057 { e=(σ,d) switch-departure edges: 058 departure time t(d) >= arrival time t(σ), 059 d has an outgoing edge to switch node 60

67 060 at station:nextst using vehicle:vh } E1 = get(currst) 063 { e=(σ,d) switch-departure edges: 064 d has an outgoing edge to switch node 065 at station:nextst using vehicle:vh } //κατά τη διάρκεια της (i=0) τρέχουσας χρονικής περιόδου και 068 //της επόμενης (i=1) χρονικής περιόδου 069 for i:0,1 070 forall_edges(e, Ei) 071 { 072 //για τους κόμβους αναχώρησης στο τρέχον σταθμό 073 d = target(e); //και τη χρονική στιγμή αναχώρησης στην οποία αντιστοιχούν 076 ti(d) = t(d) + i*period; //αν η συνθήκη ελάχιστου χρόνου μετεπιβίβασης δεν ικανοποιείται 079 if( ti(d) < t(σ) + mintransfertime(station[σ])) 080 { 081 //εξετάζεται μόνο η μεταφορά των επιβατών 082 //χωρίς μετεπιβίβαση 083 if( dist[d] == ) 084 continue; //χαλάρωση ακμής αναχώρησης-μεταγωγής 087 //προς το γειτονικό σταθμό 088 σnext = getswitchnode( nextst); 089 relaxedge(d, σnext); //χαλάρωση ακμής αναχώρησης-αναχώρησης 092 //προς το γειτονικό σταθμό 093 e = getdeparturedepartureedge(d); 094 dnext = target(e); 095 relaxedge(d, dnext); 096 } //διαφορετικά, εξετάζεται η μεταφορά των επιβατών 099 //και με δυνατότητα μετεπιβίβασης 100 else 101 { 102 relaxedge(σ, d); //χαλάρωση ακμής αναχώρησης-μεταγωγής 105 //προς το γειτονικό σταθμό 106 σnext = getswitchnode( nextst); 107 relaxedge(d, σnext); //χαλάρωση ακμής αναχώρησης-αναχώρησης 110 //προς το γειτονικό σταθμό 111 e = getdeparturedepartureedge(d); 112 dnext = target(e); 113 relaxedge(d, dnext); //αν η εύρεση της συντομότερης άφιξης 116 //στο γειτονικό σταθμό έχει επιτευχτεί τότε τερμάτισε 117 if( dist[σnext] > dist[d]+w(d,σnext)+mintransfertime(nextst)) 118 return; 119 } 120 } 61

68 121 } relaxedge(node u, Node v) 124 { 125 discovereddistance = dist[u] + w(u,v); key = discovereddistance; //επίσκεψη για πρώτη φορά 130 if(dist[v] == ) 131 if(v is switch node) PQ.insert(key, v); //ενημέρωση συντομότερης απόστασης 134 else if(discovereddistance < dist[v]) 135 if(v is switch node) PQ.decrease_key(key, v); else return; dist[v] = discovereddistance; 140 pred[v] = u; //χαλάρωση ακμών από κόμβο αναχώρησης σε κόμβο αναχώρησης 143 if( u and v are departure nodes) 144 { 145 e1 = getswitchdepartureedge(σv,v); 146 e2 = getdepartureswitchedge(v, σnext); 147 e3 = getdeparturedepartureedge(v, dnext); //αν ο κόμβος μεταγωγής είναι διευθετημένος 150 //προώθησε την ενημέρωση της συντομότερης απόστασης 151 //στον επόμενο κόμβο αναχώρησης 152 if( dist[σv]!= && PQ.isMember(σv) == false) 153 { 154 relaxedge(v, σnext); 155 relaxedge(v, dnext); 156 } 157 } 158 } 5.5 Επέκταση Στο Κεφάλαιο 3, περιγράφεται η επέκταση του Dijkstra μέσω της κάτω οριοθέτησης. Στο ίδιο πλαίσιο, είναι δυνατή η ενσωμάτωση της τεχνικής στους αλγορίθμους εύρεσης της συντομότερης διαδρομής (ή εύρεσης της συντομότερης άφιξης), που παρουσιάστηκαν στα Κεφάλαια 3-4 (αντίστοιχα για τα, και ) [13]. Η μόνη διαφορά είναι ότι στα κλειδιά των κόμβων που εισάγονται στην ουρά προτεραιότητας εκτός από την απόσταση από την αφετηρία-σταθμό θα προστίθεται και το κάτω όριο στην συντομότερη απόσταση προς τον προορισμόσταθμό. Και στην περίπτωση των χρονο-εκτεταμένων γραφημάτων, η επιλογή των καλύτερων οδηγών (landmarks) επηρεάζει σε σημαντικό βαθμό την παραγωγή των στενότερων κάτω ορίων στις συντομότερες αποστάσεις μεταξύ των σταθμών. Για την παραγωγή των κάτω ορίων στις αποστάσεις (χρόνο ταξιδιού) μεταξύ των σταθμών, στην περίπτωση των γραφημάτων των μοντέλων, και, επιχειρείται μια παρόμοια προσέγγιση με αυτή που προτάθηκε στην εργασία [19]. Αρχικά δημιουργείται ένα κατευθυνόμενο γράφημα με κόμβους, 62

69 όσοι είναι και οι σταθμοί του δικτύου, και ακμές, όσες είναι και οι συνδέσεις του δικτύου. Για κάθε σύνδεση, στο δημιουργείται η ακμή από το κόμβο που αντιστοιχεί στο σταθμό στο κόμβο που αντιστοιχεί στο σταθμό, με βάρος. Στη περίπτωση των και, ως οδηγοί επιλέγονται οι κόμβοι μεταγωγής [13], οι οποίοι αντιπροσωπεύουν όλες τις αφίξεις σε ένα σταθμό. Τότε το κάτω όριο στην απόσταση, δηλώνει το ελάχιστο χρόνο ταξιδιού από το σταθμό στο σταθμό. Αυτές οι αποστάσεις μπορούν να υπολογιστούν κατά τη διάρκεια μιας φάσης προεπεξεργασίας εκτελώντας τον αλγόριθμο του Dijkstra με ρίζα έναν από τους κόμβους-σταθμούς στο [19]. Τα καλύτερα κάτω όρια, με αυτό τον τρόπο, μπορεί να παραχθούν, αποθηκεύοντας όλες τα ζεύγη αποστάσεων μεταξύ των σταθμών. Αυτό έχει νόημα πρακτικά όταν οι σταθμοί είναι σχετικά λίγοι σε αριθμό. 5.6 Αλγόριθμος ενημέρωσης Ο αλγόριθμος ενημέρωσης,, που παρουσιάζεται παρακάτω πραγματοποιεί τις κατάλληλες αλλαγές στο πολυτροπικό γράφημα δυναμικού πίνακα δρομολογίων, για την περίπτωση καθυστερήσεων στο χρόνο ταξιδιού των μέσων μεταφοράς. Η διαφορά με τον αντίστοιχο αλγόριθμο ενημέρωσης [13] είναι ότι αξιοποιώντας την ομαδοποίηση (Ενότητα 5.1) των κόμβων αναχώρησης οι απαιτούμενες αλλαγές μπορεί να μειωθούν σε κάθε σταθμό σε, όπου το μεγαλύτερο σύνολο που προκύπτει από την ομαδοποίηση. Έστω ότι συμβαίνει μια καθυστέρηση στο χρόνο ταξιδιού του οχήματος, τύπου, στη σύνδεση του πίνακα δρομολογίων και έστω η αλυσίδα συνδέσεων που χρησιμοποιεί το ίδιο όχημα έως ότου φτάσει σε ένα τελικό σταθμό ή στάση. Τότε τα βήματα της ενημέρωσης, είναι: Βήμα 1 (Ενημέρωση ακμών πρώτης αναχώρησης): Το βάρος των εξερχόμενων ακμών του κόμβου, ο οποίος αντιπροσωπεύει την πρώτη αναχώρηση του οχήματος, με και, αυξάνεται κατά. Βήμα 2 (Διόρθωση της διάταξης των κόμβων αναχώρησης): Σε όλους τους σταθμούς στους οποίους ταξιδεύει το όχημα, μέσω των συνδέσεων, ο αντίστοιχος χρόνος αναχώρησης του οχήματος στους σταθμούς αυτούς αυξάνεται κατά. Συγκεκριμένα, για, ο κόμβος αναχώρησης θα έχει πλέον νέα χρονική στιγμή αναχώρησης. Επιπλέον, ανάλογα με το μέγεθος της καθυστέρησης, η διάταξη των κόμβων αναχώρησης στην ομάδα ενός σταθμού ενδεχομένως να μην ισχύει. Σε αυτή την περίπτωση χρειάζεται ο κόμβος αναχώρησης να μεταφερθεί στο τέλος της σειράς ή πριν τον πρώτο κόμβο της ομάδας που έχει. Στην περίπτωση που οι κόμβοι αποθηκεύονται σε πίνακα η διαδικασία διόρθωσης της διάταξης απαιτεί μια σειρά ανταλλαγών (swap) στις τιμές του εν λόγω πίνακα. 63

70 Κεφάλαιο 6 - Δίκτυα Πολυτροπικής Δρομολόγησης Οι χρήστες ενδιαφέρονται για διαδρομές που συνδυάζουν διάφορους τρόπους μεταφοράς (Εικόνα 29). Σε αυτό το πλαίσιο, η ζητούμενη πολυτροπική διαδρομή ενδεχομένως να περιλαμβάνει τη μετακίνηση μέσω οδικών τμημάτων, πεζόδρομων, σιδηροδρομικών γραμμών, κ.ά. Στην παρούσα εργασία εξετάζονται τρία είδη δικτύων: α) το δίκτυο των σταθμών ή στάσεων και των συγκοινωνιακών γραμμών των ΜΜΜ (public transport), β) το δίκτυο των πεζόδρομων (pedestrian network) και γ) το οδικό δίκτυο (road network). Για κάθε ένα χρησιμοποιήθηκε ένα σύνολο ανοικτών δεδομένων. Συγκεκριμένα, για το πρώτο δίκτυο στο πρότυπο GTFS, ενώ τα υπόλοιπα στο πρότυπο OSM XML. Εικόνα 29: Συνδιασμός δικτύου πεζόδρομων, δικτύου ΜΜΜ και οδικού δικτύου. 6.1 Οδικά Δίκτυα Για τη δημιουργία των οδικών δικτύων χρησιμοποιήθηκαν δεδομένα σε μορφή OSM XML. Η πηγή των δεδομένων είναι το OpenStreetMaps 1, που ως μια διαδικτυακή υπηρεσία πληθοπορισμού (crowdsourcing) δημιουργεί και διανέμει ελεύθερα γεωγραφικά δεδομένα σε ολόκληρο τον κόσμο. Το πρότυπο OSM XML περιέχει ένα σύνολο κόμβων (όπου για καθένα διατίθενται οι γεωγραφικές συντεταγμένες μιας τοποθεσίας στο οδικό δίκτυο), ένα σύνολο δρόμων (ως μια λίστα κόμβων) και ένα σύνολο σχέσεων (για την παροχή επιπρόσθετων πληροφοριών σε σχέση με τους κόμβους και τους δρόμους). Οι κόμβοι στο παραπάνω πρότυπο διαθέτουν γεωγραφικό μήκος και πλάτος. Για να είναι εφικτός, όμως, ο υπολογισμός της κλήσης στους δρόμους, απαιτούνται επιπλέον και η χρήση υψομετρικών δεδομένων. Τα δεδομένα που χρησιμοποιήθηκαν συμπληρωματικά βασίζονται στο πρότυπο Shuttle Radar Topography Mission (SRTM)

71 6.2 Δίκτυα ΜΜΜ Το πρότυπο GTFS (General Transit Feed Specification) ορίζει μια συλλογή αρχείων, τα οποία προσδιορίζουν τον τρόπο μεταφοράς των επιβατών εντός ενός συγκοινωνιακού δικτύου. Στα δεδομένα περιλαμβάνονται γεωγραφικές πληροφορίες για τη θέση των σταθμών ή στάσεων του δικτύου, καθώς και το πρόγραμμα των δρομολογίων που εκτελούν τα Μέσα Μαζικής Μεταφοράς. Τον τελευταίο καιρό, το πρότυπο GTFS (η πρώτη έκδοση του δημοσιεύτηκε το 2006) χρησιμοποιείται ως επί τον πλείστον στη δημοσιοποίηση των δρομολογίων από οργανισμούς και υπηρεσίες δημόσιων μέσων μεταφοράς ή\και εθελοντές. Στο πλαίσιο του προτύπου υπάρχει μια συλλογή αρχείων. Στη τρέχουσα έκδοση (2016), περιλαμβάνονται: Αρχείο agency.txt stops.txt routes.txt trips.txt stop_times.txt calendar.txt Περιεχόμενο υπηρεσίες ΜΜΜ (επωνυμία, στοιχεία επικοινωνίας) τοποθεσίες στάσεων (γεωγραφικό μήκος και πλάτος) συγκοινωνιακές γραμμές (routes) δρομολόγια (trips) κάθε γραμμής στάσεις, χρόνοι άφιξης και αναχώρησης των οχημάτων που εκτελούν τα δρομολόγια εβδομαδιαίο πρόγραμμα (περιοδικότητα) δρομολογίων Εικόνα 30: Δεδομένα στο πρότυπο GTFS. 6.3 Κατασκευή πολυτροπικού δικτύου Υπάρχουν περιπτώσεις που είναι αναγκαίο ένα ταξίδι να περιλαμβάνει τη μεταφορά μέσω διαφορετικών δικτύων. Στην εργασία, δίνεται έμφαση στα οδικά δίκτυα και τα δίκτυα των ΜΜΜ. Για παράδειγμα, οι επιβάτες σε ένα σιδηροδρομικό σταθμό μπορεί να χρειαστεί να περπατήσουν (μέσα στο δίκτυο των πεζόδρομων), προκειμένου να φτάσουν σε μια κοντινή στάση λεωφορείου από όπου μπορούν συνεχίσουν το ταξίδι τους (μέσα στο δίκτυο των ΜΜΜ). Επίσης, αν ο σταθμός διαθέτει δημόσια ηλεκτρικά αυτοκίνητα, οι επιβάτες μπορούν να φτάσουν σε έναν άλλο σταθμό οδηγώντας (μέσα στο οδικό δίκτυο). Στο, στην περίπτωση που μια ακμή μεταγωγής-μεταγωγής αντιστοιχεί σε μεταφορά μέσω ηλεκτρικού οχήματος, ο περιορισμός που υπεισέρχεται είναι αν υπάρχει διαθέσιμο όχημα μέσα στο σταθμό ή αν η μπαταρία του οχήματος αρκεί για την πραγματοποίηση του ταξιδιού. Σε ένα απλουστευμένο μοντέλο [7], δοθείσας μιας ακμής, η κατανάλωση του ηλεκτρικού οχήματος στο οδικό τμήμα που αντιστοιχεί στην, υπολογίζεται ως: αν, και, διαφορετικά (όπου : το γεωγραφικό ύψος σε μέτρα, το μήκος του δρόμου σε μέτρα). Με προεπιλεγμένες τιμές, και. Στην παρούσα εργασία, προκειμένου να μπορούν να πραγματοποιηθούν οι παραπάνω τρόποι μεταφορών, κατασκευάζεται μια διασύνδεση του οδικού δικτύου, σε αναπαράσταση γραφήματος, με τις συγκοινωνιακές γραμμές των ΜΜΜ, σε αναπαράσταση πίνακα δρομολογίων, με τον ακόλουθο τρόπο: Βήμα 1. Με μια γραμμική αναζήτηση σε χρόνο, τίθεται το ελάχιστο και μέγιστο γεωγραφικό μήκος και πλάτος των σταθμών (ή στάσεων) του δικτύου των ΜΜΜ, ως / /. Βάσει αυτών των συντεταγμένων ορίζεται ένα ορθογώνιο όριο μέσα στο οποίο περιέχονται οι σταθμοί. 65

72 Βήμα 2. Όλοι οι κόμβοι του οδικού δικτύου που βρίσκονται εκτός του παραπάνω ορθογώνιο ορίου αγνοούνται, σε χρόνο. Βήμα 3. Δημιουργείται έναν δισδιάστατο πλέγμα από μπλοκ (Εικόνα 31), καθένα με πλάτος, όπου (σε μέτρα) είναι ο περιορισμός για τη μέγιστη απόσταση μεταξύ ενός σταθμού και ενός κόμβου, ως σημείου πρόσβασης μεταξύ του οδικού δικτύου και του δικτύου των ΜΜΜ, και μια σταθερά ( ) που εξαρτάται από το σύστημα αναφοράς των γεωγραφικών συντεταγμένων. Βήμα 4. Αντιστοιχούμε τους κόμβους και τους σταθμούς σε κάθε μπλοκ, σε χρόνο. Συγκεκριμένα, ένας κόμβος στο οδικό δίκτυο ή ένας σταθμός στο δίκτυο των ΜΜΜ, με γεωγραφικό μήκος και γεωγραφικό πλάτος, αντιστοιχεί στο μπλοκ, όπου: και. Βήμα 5. Έστω, ο μέσος αριθμός κόμβων του που συγκεντρώνονται σε ένα μπλοκ. Χρησιμοποιώντας τοπική αναζήτηση σε χρόνο μέσα σε ένα μπλοκ και στα γειτονικά του, βρίσκουμε τον κοντινότερο κόμβο του οδικού δικτύου σε κάθε ένα σταθμό του δικτύου των ΜΜΜ. Η αναζήτηση είναι αποδοτικότερη από, καθώς για κάθε ένα σταθμό, ελέγχονται μόνο οι κόμβοι που βρίσκονται σε απόσταση το πολύ από το σταθμό. Κατά σύμβαση, οι κόμβοι που ανακαλύπτονται αποτελούν τους συνδετικούς κρίκους των δυο δικτύων και τα σημεία πρόσβασης (access points) των σταθμών. Βήμα 6. Στο οδικό δίκτυο, υπολογίζονται μεταξύ των σταθμών οι συντομότερες διαδρομές μέσω πεζόδρομου και οδικού δικτύου, σε μια ακτίνα (διάρκεια ταξιδιού) το πολύ. Αυτό επιτυγχάνεται εκτελώντας τον αλγόριθμο του Dijkstra, με ρίζα τους κόμβους που έχουν επιλεγεί ως σημεία πρόσβασης των σταθμών και κριτήριο τερματισμού τη εξερεύνηση και διευθέτηση των κόμβων που απέχουν (ως προς το χρόνο ταξιδιού) έως και. Έστω και, δυο κόμβοι που αποτελούν σημεία πρόσβασης των σταθμών και, αντίστοιχα. Τότε αν υπάρχει διαδρομή από το στο με χρόνο ταξιδιού μικρότερο από, ορίζεται μια σύνδεση από το στο, που αφορά τη μετακίνηση, είτε περπατώντας είτε χρησιμοποιώντας αυτοκίνητο, από στο. Εικόνα 31: Η διαμέριση του οδικού δικτύου για την εύρεση των σημείων πρόσβασης στους σταθμούς. 66

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 9 Απριλίου 2009 1 / 0 Παραδείγµατα γράφων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035). Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη

Διαβάστε περισσότερα

u v 4 w G 2 G 1 u v w x y z 4

u v 4 w G 2 G 1 u v w x y z 4 Διάλεξη :.0.06 Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος. Εισαγωγικοί ορισμοί Ορισμός. Γράφημα G καλείται ένα ζεύγος G = (V, E) όπου V είναι το σύνολο των κορυφών (ή κόμβων) και E

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Θεωρία Γραφημάτων 6η Διάλεξη

Θεωρία Γραφημάτων 6η Διάλεξη Θεωρία Γραφημάτων 6η Διάλεξη Α. Συμβώνης Εθνικο Μετσοβειο Πολυτεχνειο Σχολη Εφαρμοσμενων Μαθηματικων και Φυσικων Επιστημων Τομεασ Μαθηματικων Φεβρουάριος 2016 Α. Συμβώνης (ΕΜΠ) Θεωρία Γραφημάτων 6η Διάλεξη

Διαβάστε περισσότερα

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων. Γραφήματα. Αναπαράσταση Γραφημάτων 3. Διερεύνηση σε Πρώτα σε Πλάτος (BFS) Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γράφημα Ορισμός: Ένα γράφημα G είναι το διατεταγμένο ζεύγος

Διαβάστε περισσότερα

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 12 16 2 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 13 1 με τις ακόλουθες ιδιότητες 4 14 9 7 4 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 10β: Αλγόριθμοι Γραφημάτων-Γραφήματα- Αναπαράσταση Γραφημάτων- Διερεύνηση Πρώτα σε Πλάτος (BFS) Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ Συνεκτικότητα Γραφημάτων 123 ΚΕΦΑΛΑΙΟ 4 ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ 4.1 Τοπική και Ολική Συνεκτικότητα Γραφημάτων 4.2 Συνεκτικότητα Μη-κατευθυνόμενων Γραφημάτων 4.3 Συνεκτικότητα Κατευθυνόμενων Γραφημάτων

Διαβάστε περισσότερα

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα μονοδρόμησης (The One-Way Street Problem) Το πρόβλημα Σχετίζεται με τη διαχείριση της κίνησης οχημάτων στους δρόμους Αν δεν υπήρχαν καθυστερήσεις στην κίνηση στις πόλεις Αποφυγή σπατάλης ενέργειας

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

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

Επίλυση προβλημάτων με αναζήτηση Επίλυση προβλημάτων με αναζήτηση Περιεχόμενα Μέθοδοι (πράκτορες) επίλυσης προβλημάτων Προβλήματα και Λύσεις Προβλήματα παιχνίδια Προβλήματα του πραγματικού κόσμου Αναζήτηση λύσεων Δέντρο αναζήτησης Στρατηγικές

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 3 Γραφήµατα v1.0 (2010-05-25) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 3.1 Βασικοί Ορισµοί και Εφαρµογές γραφήµατα γράφηµα G: ένας τρόπος κωδικοποίησης των σχέσεων

Διαβάστε περισσότερα

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

Αλγόριθµοι Γραφηµάτων Αλγόριθµοι Γραφηµάτων Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Γραφήµατα Μοντελοποίηση

Διαβάστε περισσότερα

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

Διαβάστε περισσότερα

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ Καθηγητής Πληροφορικής Απαγορεύεται η αναπαραγωγή των σημειώσεων χωρίς αναφορά στην πηγή Οι σημειώσεις, αν και βασίζονται στο διδακτικό πακέτο, αποτελούν προσωπική θεώρηση της σχετικής ύλης και όχι επίσημο

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 3 η Εργασία: Γενική Εικόνα Αρκετά απαιτητικά ερωτήματα,

Διαβάστε περισσότερα

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

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο Σχεδίαση Αλγορίθμων Άπληστοι Αλγόριθμοι http://delab.csd.auth.gr/~gounaris/courses/ad 1 Άπληστοι αλγόριθμοι Προβλήματα βελτιστοποίησης ηςλύνονται με μια σειρά επιλογών που είναι: εφικτές τοπικά βέλτιστες

Διαβάστε περισσότερα

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

Διαβάστε περισσότερα

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

Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Κατευθυνόμενο γράφημα Συνάρτηση βάρους Ελαφρύτατη διαδρομή από το u στο v : διαδρομή με και ελάχιστο βάρος s 3 t 7 x 5 3 y z Βάρος ελαφρύτατης διαδρομής εάν

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

Διαβάστε περισσότερα

(elementary graph algorithms)

(elementary graph algorithms) (elementary graph algorithms) Παύλος Εφραιμίδης 1 περιεχόμενα γραφήματα αναπαραστάσεις οριζόντια διερεύνηση καθοδική διερεύνηση 2 ΓΡΑΦΉΜΑΤΑ 3 αναπαράσταση δύο καθιερωμένοι τρόποι: πίνακας γειτνίασης συλλογή

Διαβάστε περισσότερα

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

Στοιχεία Θεωρίας Γράφων (Graph Theory) Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr, Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση,

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

Διαβάστε περισσότερα

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

ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΟΛΙΤΙΣΜΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΚΑΙ ΝΕΩΝ ΤΕΧΝΟΛΟΓΙΩΝ ΣΧΕΔΙΑΣΗ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΚΤΙΚΗ ΕΝΟΤΗΤΑ 3 ΘΕΜΑ: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ ΓΡΑΦΗΜΑΤΑ Επίκουρος Καθηγητής ΠΕΡΙΕΧΟΜΕΝΟ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα Δένδρα Δένδρα Ειδική κατηγορία γραφημάτων: συνεκτικά γραφήματα που δεν περιέχουν απλά κυκλώματα [1857] Arthur Cayley: για απαρίθμηση ορισμένων ειδών χημικών ενώσεων Χρησιμοποιούνται σε πληθώρα προβλημάτων,

Διαβάστε περισσότερα

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 2 6 20 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 0 με τις ακόλουθες ιδιότητες 9 7 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση ροής:

Διαβάστε περισσότερα

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.

Διαβάστε περισσότερα

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4 ο εξάμηνο ΣΗΜΜΥ 4 η ενότητα: Γράφοι: προβλήματα και αλγόριθμοι Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

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

Ευχαριστίες Ευχαριστώ θερμά τον επιβλέποντα καθηγήτη κ.χρήστο Ζαρολιάγκη που μου εμπιστεύτηκε την εκπόνηση της συγκεκριμένης διπλωματικής εργασίας καθ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Π.Μ.Σ ΕΠΙΣΤΗΜΗ & ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ Παράλληλοι Αλγόριθμοι Εύρεσης Βέλτιστων Διαδρομών σε χρονο-εξαρτώμενα Δίκτυα ΓΙΩΡΓΟΣ ΜΙΧΑΛΟΠΟΥΛΟΣ Α.Μ 1055 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΧΡΗΣΤΟΣ ΖΑΡΟΛΙΑΓΚΗΣ

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης

Δομές Δεδομένων και Αλγόριθμοι. Λουκάς Γεωργιάδης Δομές Δεδομένων και Αλγόριθμοι Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Στόχοι Μαθήματος Η σχεδίαση και ανάλυση αλγορίθμων και δομών δεδομένων αποτελεί σημαντικό τμήμα της πληροφορικής.

Διαβάστε περισσότερα

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι Κ Ο Τ Ι Ν Η Ι Σ Α Β Ε Λ Λ Α Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Π Ε 8 6 Ν Ε Ι Ρ Ο Σ Α Ν Τ Ω ΝΙ Ο Σ Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Ο Σ Π Λ Η Ρ Ο Φ Ο

Διαβάστε περισσότερα

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

Διαβάστε περισσότερα

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

Διαβάστε περισσότερα

Επιχειρησιακή Έρευνα I

Επιχειρησιακή Έρευνα I Επιχειρησιακή Έρευνα I Operations/Operational Research (OR) Κωστής Μαμάσης Παρασκευή 9: : Σημειώσεις των Α. Platis, K. Mamasis Περιεχόμενα EE & Εισαγωγή Μαθηματικός Προγραμματισμός - Γραμμικός Προγραμματισμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

2 ) d i = 2e 28, i=1. a b c

2 ) d i = 2e 28, i=1. a b c ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ ΓΡΑΦΩΝ (1) Εστω G απλός γράφος, που έχει 9 κορυφές και άθροισμα βαθμών κορυφών μεγαλύτερο του 7. Αποδείξτε ότι υπάρχει μια κορυφή του G με βαθμό μεγαλύτερο ή ίσο του 4. () Αποδείξτε ότι

Διαβάστε περισσότερα

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

1 Διάσχιση κατευθυνόμενων γραφημάτων ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 5ο ΕΡΓΑΣΤΗΡΙΟ

Διαβάστε περισσότερα

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

Διαβάστε περισσότερα

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

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

ΔΙΚΤΥΑ (13) Π. Φουληράς

ΔΙΚΤΥΑ (13) Π. Φουληράς ΔΙΚΤΥΑ (13) Π. Φουληράς Τεχνολογίες WAN και Δρομολόγηση LAN Επεκτείνεται μόνον σε ένα κτίριο ή ομάδα κτιρίων WAN (Wide Area Network) Επεκτείνονται σε μεγάλες περιοχές MAN Ενδιάμεσο ως προς το μέγεθος της

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Μελέτη του Προβλήματος των Κίβδηλων Νομισμάτων Ονοματεπώνυμο

Διαβάστε περισσότερα

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο 3 η Εργασία: Γενική Εικόνα Αξιόλογη προσπάθεια,

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

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

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

Διαβάστε περισσότερα

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

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

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή Εργαστήριο 10 Γράφηµα (Graph) Εισαγωγή Στην πληροφορική γράφηµα ονοµάζεται µια δοµή δεδοµένων, που αποτελείται από ένα σύνολο κορυφών ( vertices) (ή κόµβων ( nodes» και ένα σύνολο ακµών ( edges). Ενας

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 3 Γραφήματα v1.3 (2014-01-30) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 3.1 Βασικοί Ορισμοί και Εφαρμογές γραφήματα γράφημα G: ένας τρόπος κωδικοποίησης των σχέσεων

Διαβάστε περισσότερα

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ (Transportation Problems) Βασίλης Κώστογλου E-mail: vkostogl@it.teithe.gr URL: www.it.teithe.gr/~vkostogl Περιγραφή Ένα πρόβλημα μεταφοράς ασχολείται με το πρόβλημα του προσδιορισμού του καλύτερου δυνατού

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 7η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Αλγόριθμοι Γραφημάτων Τοπολογική Διάταξη

Διαβάστε περισσότερα

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

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4 ο εξάμηνο ΣΗΜΜΥ 5 η ενότητα: Γράφοι: προβλήματα και αλγόριθμοι Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης Παγουρτζής, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Dr. Christos D. Tarantilis Associate Professor in Operations Research & Management Science http://tarantilis.dmst.aueb.gr/ ΕΦΑΡΜΟΓΕΣ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Ι - 1- ΕΦΑΡΜΟΓΕΣΔΙΟΙΚΗΤΙΚΗΣΕΠΙΣΤΗΜΗΣ&

Διαβάστε περισσότερα

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 2: Γραφήματα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης

Διαβάστε περισσότερα

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Εισαγωγή σε βασικές έννοιες. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Εισαγωγή σε βασικές έννοιες. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών Τίτλος Μαθήματος: Θεωρία Γραφημάτων Ενότητα: Εισαγωγή σε βασικές έννοιες Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος Τμήμα: Μαθηματικών Θεωρία Γραφημάτων Χάρης Παπαδόπουλος 2012, Διάλεξη Κεφαλαίου 1 Περιεχόμενα

Διαβάστε περισσότερα

Βασικές Έννοιες Θεωρίας Γραφημάτων

Βασικές Έννοιες Θεωρίας Γραφημάτων Βασικές Έννοιες Θεωρίας Γραφημάτων Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων

Διαβάστε περισσότερα

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

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2017-2018. Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

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

Συντομότερες ιαδρομές Συντομότερες ιαδρομές ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Συντομότερη ιαδρομή Κατευθυνόμενο G(V, E, w) με μήκη Μήκος διαδρομής Απόσταση d(u,

Διαβάστε περισσότερα

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

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός Κατευθυνόμενα γραφήματα Μαθηματικά Πληροφορικής 6ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Κατευθυνόμενο γράφημα G είναι ένα ζεύγος (V, E ) όπου V πεπερασμένο σύνολο του οποίου

Διαβάστε περισσότερα

Δροµολόγηση (Routing)

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

Διαβάστε περισσότερα

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

Διαβάστε περισσότερα

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k

Διαίρει και Βασίλευε. πρόβλημα μεγέθους Ν. διάσπαση. πρόβλημα μεγέθους k. πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους k πρόβλημα

Διαβάστε περισσότερα

HY118-Διακριτά Μαθηματικά

HY118-Διακριτά Μαθηματικά HY118-Διακριτά Μαθηματικά Πέμπτη, 10/05/2018 Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr 10-May-18 1 1 Θεωρία γράφων / γραφήματα 10-May-18 2 2 Τι είναι οι γράφοι; Mία ειδική κλάση διακριτών δομώνκαι

Διαβάστε περισσότερα

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

1 Το πρόβλημα της συντομότερης διαδρομής ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 00 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di88 6ο ΕΡΓΑΣΤΗΡΙΟ

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 2: Μαθηματικό Υπόβαθρο Τι θα κάνουμε σήμερα Συναρτήσεις & Σχέσεις (0.2.3) Γράφοι (Γραφήματα) (0.2.4) Λέξεις και Γλώσσες (0.2.5) Αποδείξεις (0.3) 1

Διαβάστε περισσότερα

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

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου

Διαβάστε περισσότερα

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3. ΜΗΧΑΝΙΣΜΟΙ & ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΧΕ ΙΑΣΜΟ ΜΗΧΑΝΩΝ - 3.1 - Cpright ΕΜΠ - Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 2012. Με επιφύλαξη παντός δικαιώµατος. All rights reserved. Απαγορεύεται

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

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

Συντομότερες Διαδρομές Συντομότερη Διαδρομή Συντομότερες Διαδρομές Διδάσκοντες: Σ Ζάχος, Δ Φωτάκης Επιμέλεια διαφανειών: Δ Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κατευθυνόμενο G(V, E, w) με μήκη Μήκος

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Γράφοι: κατευθυνόμενοι και μη Γράφοι: κατευθυνόμενοι και μη (V,E ) (V,E ) Γράφος (ή γράφημα): ζεύγος (V,E), V ένα μη κενό σύνολο, Ε διμελής σχέση πάνω στο V Μη κατευθυνόμενος γράφος: σχέση Ε συμμετρική V: κορυφές (vertices), κόμβοι

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών Πολυτεχνική Σχολή Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Μιχαήλ Παναγιώτης (Α.Μ.: 607) Νέος Δυναμικός Τύπος Γραφημάτων Ευρείας Κλίμακας και Εφαρμογές του Επιβλέπων

Διαβάστε περισσότερα