Στις μέρες μας, οι μετακινήσεις έχουν αποκτήσει μεγάλη σημασία. Οι άνθρωποι ταξιδεύουν καθημερινά είτε για τις δουλειές τους είτε για λόγους αναψυχής με αποτέλεσμα οι μετακινήσεις να αποτελούν ένα σημαντικό μέρος της ζωής τους. Αν και οι πρώτοι αλγόριθμοι, που έλυναν τέτοιου είδους προβλήματα, όπως ο Dijkstra και ο Bellman-Ford είναι αρκετά παλιοί, οι νέες συνθήκες απαιτούν πιο αποδοτικές λύσεις λαμβάνοντας ταυτόχρονα υπόψη ποικίλες παραμέτρους όπως τις προτιμήσεις των οδηγών, τις περιβαλλοντικές συνθήκες, τις οικονομικές συγκυρίες, την κυκλοφοριακή συμφόρηση και πολλά άλλα.
Κάτω από αυτές τις νέες απαιτήσεις, το algorithmic engineering δείχνει τα τελευταία χρόνια μεγάλο ενδιαφέρον σχετικά με την εύρεση και το σχεδιασμό διαδρομών, αναπτύσσοντας νέες αλγοριθμικές μεθόδους οι οποίες λύνουν πιο εξεζητημένες εκδοχές του προβλήματος εύρεσης βέλτιστης διαδρομής. Για παράδειγμα, ερευνητές έχουν αναπτύξει τεχνικές επιτάχυνσης του Dijkstra με τις οποίες καταφέρνουν να υπολογίσουν ερωτήματα μεταξύ αφετηρίας-προορισμού σε μεγάλης κλίμακας δίκτυα με πολύ μικρή χρονική πολυπλοκότητα ή έχουν εισάγει την έννοια εύρεσης διαδρομών με συνδυασμό των μέσων μαζικής μεταφοράς κλπ.
Σε αυτή τη διπλωματική εργασία, επικεντρωνόμαστε σε μία παραλλαγή του προβλήματος εύρεσης συντομότερης διαδρομής η οποία έχει στόχο να εντοπίζει πολλαπλές εναλλακτικές διαδρομές από μία αφετηρία σε έναν προορισμό, πέραν της βέλτιστης. Η έρευνα πάνω σε αυτό το αντικείμενο είναι ιδιαίτερα σημαντική μιας και ο υπολογισμός ενός συνόλου εναλλακτικών διαδρομών είναι πολύ χρήσιμος σε πληθώρα περιπτώσεων. Για παράδειγμα, η αποφυγή διοδίων, η αυξανόμενη εμφάνιση κυκλοφοριακών προβλημάτων, η προτίμηση ενός οδηγού να αποφεύγει κακόφημους δρόμους αποτελούν λίγες περιπτώσεις όπου ο υπολογισμός μιας μοναδικής διαδρομής δεν επαρκεί.
Συνεπώς, στην εργασία αυτή, παρουσιάζουμε τη μέθοδο του plateau (plateau method) η οποία αποτελεί μία σημαντική προσέγγιση σε αυτό το πεδίο ενδιαφέροντος και βασίζεται στην εύρεση μονοπατιών οι κόμβοι των οποίων έχουν σταθερές αποστάσεις από την αφετηρία και τον προορισμό (plateaux). Αναλύουμε βήμα προς βήμα όλα τα στάδια του αλγορίθμου, κατανοούμε τη μεθοδολογία και κάνουμε τη δική μας υλοποίηση σε C++. Στη συνέχεια, συνδυάζουμε το plateau με τον αλγόριθμο penalty ο οποίος, όπως δηλώνει και το όνομά του, εισάγει κάποια ποινή (= επιπλέον βάρος) στις ακμές των εναλλακτικών που ήδη έχουν υπολογιστεί. Εκτός από αυτές τις δύο υλοποιήσεις, στόχος μας επίσης είναι να αξιολογήσουμε τις υποψήφιες εναλλακτικές που προκύπτουν ώστε να διαλέξουμε τις καλύτερες. Η υπεροχή της κάθε εναλλακτικής εξετάζεται με βάση κάποια συγκεκριμένα κριτήρια. Αυτά τα κριτήρια εξετάζουν την ποιότητα των plateaux, το ποσοστό των κοινών τμημάτων των εναλλακτικών, το μέσο μήκος τους συγκριτικά με το βέλτιστο, την τοπική βελτιστότητα. Αυτά τα κριτήρια επίσης ενσωματώνονται στις υλοποιήσεις μας σε C++. Τέλος, για να εξετάσουμε την αποδοτικότητα αυτών των αλγορίθμων, εκτελούμε πειράματα για διάφορες τιμές των παραμέτρων, σε οδικά δίκτυα μεγάλης κλίμακας, εξάγουμε στατιστικά αποτελέσματα και βγάζουμε συμπεράσματα.
Nowadays, mobility has gained great importance. People travel daily either for their works or for pleasure making route planning a significant aspect of their everyday life. Although first algorithms solving this kind of problem, such as Dijkstra and Bellman-Ford, are quite old, the new circumstances require more efficient solutions taking into account various parameters related to driver’s preferences, environmental conditions, financial conditions, traffic congestions and many other aspects.
Under these new requirements and needs, algorithmic engineering exhibited an impressive surge of interest during the last years in the field of route planning, developing new algorithmic approaches that solve more sophisticated variants of the shortest path problem. For example, researchers developed speed-up techniques computing queries in large-scale networks with great time efficiency, introduced new concepts of multi-modal and multi-objective routing etc.
In this thesis, we focus on a variant of the shortest path problem that aims to find multiple alternative routes from source to target, apart from the single shortest path. Research on this field is very important since finding a set of alternatives can be useful for various reasons. For example, the need to avoid costly roads, the increasing occurrence of traffic congestions, driver’s preferences to avoid some streets are cases that a single route would not be enough.
So, we present plateau method which is a significant approach on this field of interest based on paths with constant distances from source and target, along them (plateaux). We analyze step by step its stages, we understand the methodology and we implement it in our own C++ program. We further combine our plateau approach with penalty algorithm which, as its name states, penalizes the edges already belonging in an alternative. Apart from the two interesting implementations, we aim to evaluate the resulting alternative routes so as to choose the best ones. The superiority of each single alternative is examined on the basis of specific criteria we introduce. These criteria check the quality of the candidate plateaux, the amount of disjointness between the paths, the average length, the local optimality. These criteria are incorporated in the C++ implementations. Last but not least, in order to examine the efficiency of these algorithms, we conduct an experimental study for various values of the parameters in large-scale road networks, we export statistical data and we draw conclusions.