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

Download ""

Transcript

1 Πανεπιστήμιο Πατρών Πολυτεχνική Σχολή Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Μιχαήλ Παναγιώτης (Α.Μ.: 607) Νέος Δυναμικός Τύπος Γραφημάτων Ευρείας Κλίμακας και Εφαρμογές του Επιβλέπων Καθηγητής Χρήστος Ζαρολιάγκης Καθηγητής, Τμήμα Μηχανικών Η/Υ & Πληροφορικής, Πανεπιστήμιο Πατρών Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Τριμελής Επιτροπή Σωτήρης Νικολετσέας Αν. Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Κωνσταντίνος Τσίχλας Λέκτορας Τμήμα Επιστήμης Υπολογιστών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης 9 Ιουλίου 2012

2

3 Ευχαριστίες Για την ολοκλήρωση αυτής της εργασίας έλαβα την βοήθεια αρκετών ανθρώπων που θα ήθελα πραγματικά να ευχαριστήσω. Πρώτα, θα ήθελα να εκφράσω την ευγνωμοσύνη μου στον επιβλέποντα καθηγητή μου, κ. Χρήστο Ζαρολιάγκη, για όλη την βοήθεια που μου παρείχε. Τον ευχαριστώ για την εμπιστοσύνη του, τις εύστοχες παρατηρήσεις του και τις συμβουλές του σε κάθε στάδιο της εργασίας. Στη συνέχεια θα ήθελα να ευχαριστήσω τα άτομα που αφιέρωσαν χρόνο για την εισαγωγή μας στις ιδιαίτερες δομές δεδομένων που χρησιμοποιήσαμε. Πρώτα, τον κ. Κωνσταντίνο Τσίχλα, για την παρουσίαση των cache-oblivious δομών δεδομένων για πρώτη φορά σε εμάς. Επίσης, τον Daniel Delling για τις για αμέτρητες συμβουλές του και την παραχώρηση της πλατφόρμας γραφημάτων που έχει δημιουργήσει, καθώς η επέκτασή της αποτέλεσε βασικό κίνητρο της εργασίας. Ευχαριστώ την Γεωργία Μαλή, που συνέβαλε σημαντικά στο να ξεπεραστούν σχεδιαστικά αδιέξοδα κατά την κατασκευή της νέας δομής γραφημάτων, και για τον χρόνο που αφιέρωσε για την αποσφαλμάτωση ολόκληρης της νέας πλατφόρμας αλγορίθμων. Ευχαριστώ επίσης, τον αδερφό μου, Άγγελο Μιχαήλ, και τον Βασίλη Κωνσταντίνου για την βοήθειά τους σε περίπλοκα μαθηματικά προβλήματα που προέκυψαν κατά τη διάρκεια της εργασίας. Τέλος, ένα μεγάλο ευχαριστώ στην οικογένειά μου, που πάντοτε στηρίζει τις επιλογές μου.

4

5 Περίληψη Στην διπλωματική εργασία παρουσιάζεται μια νέα δομή δεδομένων ειδικά σχεδιασμένη για δίκτυα μεταφορών ευρείας κλίμακας τα οποία αλλάζουν δυναμικά. Η νέα δομή δεδομένων γραφημάτων μας παρέχει ταυτόχρονα τρία μοναδικά χαρακτηριστικά: 1. Σύμπτυξη(Compactness): ικανότητα να προσπελάσει αποδοτικά διαδοχικές κορυφές και ακμές, μια απαίτηση όλων των αλγορίθμων γραφημάτων). 2. Ευκινησία(Agility): ικανότητα να αλλάξει και να ρυθμίσει εξαρχής την εσωτερική της διάταξη με σκοπό να βελτιώσει την τοπικότητα των αναφορών των στοιχείων, σύμφωνα με έναν δεδομένο αλγόριθμο. 3. Δυναμικότητα(Dynamicity): ικανότητα να ενθέσει ή να διαγράψει αποδοτικά κορυφές και ακμές. Ολες οι προηγούμενες γνωστές δομές γραφημάτων δεν υποστήριζαν τουλάχιστον ένα από τα προηγούμενα χαρακτηριστικά ή/και δεν μπορούσαν να εφαρμοστούν σε δυναμικά δίκτυα μεταφορών ευρείας κλίμακας. Σε αυτή τη διπλωματική εργασία, παρουσιάζεται η πρακτικότητα της νέας δομής γραφημάτων εκτελώντας μια εκτενή πειραματική μελέτη για δρομολόγηση συντομότερων διαδρομών σε Ευρωπαϊκά οδικά δίκτυα ευρείας κλίμακας με μερικές δεκάδες εκατομμύρια κορυφές και ακμές. Χρησιμοποιώντας κλασικούς αλγόριθμους εύρεσης συντομότερων διαδρομών, επιτυγχάνονται εύκολα χρόνοι ερωτημάτων από μια αρχική κορυφή σε μια τελική κορυφή της τάξης των milliseconds, ενώ η νέα δομή γραφημάτων μας μπορεί να ενημερωθεί σε μόλις μερικά microseconds μετά από μια ένθεση ή διαγραφή μιας κορυφής ή ακμής.

6

7 Περιεχόμενα 1 Εισαγωγή Σημασία του προβλήματος Στόχοι της διπλωματικής Συνεισφορά της διπλωματικής Δομή Βασικές Εννοιες Γραφήματα Αναπαράσταση ενός γραφήματος Αναπαράσταση Λίστας Γειτνίασης Αναπαράσταση γραφήματος Ευθύδρομου Άστρου και Αντίστροφου Αστρου Αποθήκευση παράλληλων ακμών Αναπαράσταση μη κατευθυνόμενων γραφημάτων Δέντρα Δέντρα με ρίζα Δυαδικά δέντρα Πλήρη δυαδικά δέντρα - Δομή σωρού Αναπαράσταση δένδρων Διερεύνηση κορυφών του γραφήματος Το πρόβλημα Εύρεσης Συντομότερων Διαδρομών Ο απλός αλγόριθμος Dijkstra Ο αμφίδρομος αλγόριθμος Dijkstra Στοχοκατευθυνόμενη αναζήτηση και ο αλγόριθμος A Ιεραρχία Μνήμης και Δομές Δεδομένων Cache Oblivious Ιεραρχία μνήμης και δομές δεδομένων Cache-Oblivious Αλγόριθμοι και δομές δεδομένων Cache-oblivious Ιδεατό μοντέλο κρυφής μνήμης

8 2 ΠΕΡΙΕΧ ΟΜΕΝΑ 3.2 Διάταξη δυαδικών δέντρων κατά van Emde Boas Πίνακες πακεταρισμένης-μνήμης Γράφημα Πακεταρισμένης-μνήμης Δομή δεδομένων Λειτουργίες Εσωτερική αναδιάταξη κορυφών Ανάλυση πολυπλοκότητας λειτουργιών Σύγκριση με άλλες δομές δεδομένων για αναπαράσταση γραφημάτων Θέματα υλοποίησης Πειραματική Αξιολόγηση Ερωτήματα συντομότερων διαδρομών Τοπικότητα των αναφορών Δυναμικές ενημερώσεις Τυχαία ακολουθία λειτουργιών Συμπεράσματα και Προοπτικές 63

9 Κεφάλαιο 1 Εισαγωγή 1.1 Σημασία του προβλήματος Τα τελευταία χρόνια παρατηρούμε έναν πολύ μεγάλο αριθμό ερευνών για α- ποδοτική δρομολόγηση σε οδικά δίκτυα και δίκτυα μαζικής μεταφοράς. Για παράδειγμα, βλέπουμε εξαιρετικά γρήγορους αλγόριθμους που μπορούν να α- παντήσουν σε ερωτήματα συντομότερων διαδρομών από μια αρχική κορυφή σε μια τελική κορυφή (βάση μιας συγκεκριμένης μετρικής) σε milliseconds για οδικά δίκτυα ευρείας κλίμακας με μερικές δεκάδες εκατομμυρίων κορυφών και ακμών, μετά από ένα αρχικό βήμα προεπεξεργασίας [4, 8, 12]. Αυτοί οι αλγόριθμοι είναι έξυπνες επεκτάσεις ή/και παραλλαγές του κλασικού αλγορίθμου του Dijkstra [9], που είναι κάπως αργός όταν εκτελείται σε δίκτυα ευρείας κλίμακας, και για αυτόν τον λόγο συνήθως αναφέρονται ως τεχνικές επιτάχυνσης (πάνω στον αλγόριθμο του Dijkstra). Οι τεχνικές επιτάχυνσης χρησιμοποιούν όχι μόνο ευρετικές μεθόδους για να ελαχιστοποιήσουν το εύρος αναζήτησης του αλγορίθμου του Dijkstra, αλλά και βελτιστοποιήσεις στον τρόπο που υλοποιούνται. Από όσο γνωρίζουμε, οι δομές γραφημάτων που χρησιμοποιούνται είναι παραλλαγές της αναπαράστασης λίστας γειτνίασης και παρέχουν έλεγχο στην αποθήκευση των στοιχείων του γραφήματος. Αυτές οι παραλλαγές δεν είναι μόνο σύμπτυξη(compaction), με την έννοια ότι αποθηκεύουν κορυφές και ακμές σε γειτονικές διευθύνσεις μνήμης, αλλά υποστηρίζουν και αναδιάταξη(reordering) των κορυφών και των ακμών σε αυθαίρετη σχετική σειρά, έτσι ώστε να αυξήσουν την τοπικότητα των αναφορών του κύριου βρόχου του αλγορίθμου του Dijkstra. Η τελευταία λειτουργία, γνωστή και ως εσωτερική αναδιάταξη κορυφών του γραφήματος, έχει παίξει σημαντικό ρόλο στην επίτευξη αυτών των πολύ γρήγορων χρόνων εκτέλεσης [4, 8, 12, 14, 15] για ερωτήματα συντομότερων διαδρομών από μια

10 4 Εισαγωγή αρχική κορυφή σε μια τελική κορυφή. Αυτή η βελτιστοποίηση, βελτιώνει την τοπικότητα των αναφορών των κορυφών με μια αναδιάταξή τους μέσα στην ήδη δεσμευμένη μνήμη από το γράφημα, επιτυγχάνοντας καλύτερη απόδοση της κρυφής μνήμης των συστημάτων και κατά συνέπεια καλύτερους χρόνους εκτέλεσης των αλγορίθμων. Αυτές οι αναπαραστάσεις γραφημάτων είναι πολύ αποδοτικές στην στατική περίπτωση που το γράφημα δεν αλλάζει, αλλά η απόδοσή τους πέφτει δραματικά όταν γίνονται ενημερώσεις (updates) του γραφήματος. Ο λόγος είναι ότι, για να διατηρήσουν την συνεπτυγμένη τους φύση και τοπικότητα, μια ενημέρωση πρέπει να μετακινήσει προς τα δεξιά (shift) ένα μεγάλο αριθμό στοιχείων στην μνήμη. Ετσι, οι παραπάνω αναπαραστάσεις χρησιμοποιούνται κυρίως σε στατικά περιβάλλοντα, όπου το υποκείμενο δίκτυο δεν αλλάζει. Ωστόσο, η υπόθεση ότι το δίκτυο είναι στατικό δεν είναι πάντα ρεαλιστική στην πράξη. Για παράδειγμα, σε ένα οδικό δίκτυο: Η δομή του δικτύου αλλάζει (χτίζονται καινούριες διαδρομές, καταστρέφονται οι παλιές). Μια διαφορετική συνάρτηση κόστους χρησιμοποιείται (διαφορετικά κριτήρια βέλτιστων διαδρομών). Κάτι αναπάντεχο συμβαίνει σε κάποια διαδρομή (κάποια καθυστέρηση, κάποιο ατύχημα). Τα κόστη των διαδρομών εξαρτώνται από την χρονική στιγμή που βρισκόμαστε (σε ένα οδικό δίκτυο, το βράδυ οι δρόμοι είναι άδειοι). Στις παραπάνω περιπτώσεις, το γράφημα που αναπαριστά το δίκτυο πρέπει να ενημερωθεί και οποιαδήποτε δεδομένα προεπεξεργασίας πρέπει να υπολογιστούν από την αρχή. Ετσι είναι απαραίτητο οποιαδήποτε δομή δεδομένων γραφημάτων χρησιμοποιείται σε τέτοιες εφαρμογές να υποστηρίζει αποδοτικές ενθέσεις και διαγραφές κορυφών και ακμών. Συνοψίζοντας, η αποδοτική δρομολόγηση σε δυναμικά δίκτυα μεταφορών ευρείας κλίμακας χρειάζεται μια δομή γραφημάτων που να έχει τα παρακάτω χαρακτηριστικά: 1. Σύμπτυξη(Compactness): ικανότητα να προσπελάσει αποδοτικά διαδοχικές κορυφές και ακμές. 2. Ευκινησία(Agility): ικανότητα να αλλάξει και να ρυθμίσει εξαρχής την εσωτερική της διάταξη με σκοπό να βελτιώσει την τοπικότητα των αναφορών των στοιχείων, σύμφωνα με έναν δεδομένο αλγόριθμο.

11 1.2 Στόχοι της διπλωματικής 5 3. Δυναμικότητα(Dynamicity): ικανότητα να ενθέσει ή να διαγράψει αποδοτικά κορυφές και ακμές. Μια προφανής επιλογή, σύμφωνα με τα παραπάνω χαρακτηριστικά, είναι η αναπαράσταση λίστας γειτνίασης, υλοποιημένη με συνδεδεμένες λίστες από γειτονικές κορυφές, λόγω της απλότητας και της δυναμικότητάς της. Ωστόσο, αν και η δομή αυτή είναι εκ φύσεως δυναμική, τέτοια ώστε να υποστηρίζει ενθέσεις και διαγραφές κορυφών και ακμών σε χρόνο O(1), δεν παρέχει καμία εγγύηση για την πραγματική διάταξη του γραφήματος στην μνήμη (που γίνεται από τον διαχειριστή μνήμης του συστήματος). Ετσι, έχει δυναμικότητα αλλά δεν προσφέρει ούτε σύμπτυξη, ούτε ευκινησία. Μια πολύ ενδιαφέρουσα παραλλαγή της αναπαράστασης λίστας γειτνίασης, που χρησιμοποιείται πολύ συχνά σε τεχνικές επιτάχυνσης (δείτε π.χ. [4]) είναι η αναπαράσταση ευθύδρομου άστρου [1, 2], η οποία αποθηκεύει την λίστα γειτνίασης σε έναν πίνακα, που χρησιμοποιείται ως ένα συνεχόμενο τμήμα δεσμευμένης μνήμης παραχωρημένο μόνο στο γράφημα. Οι κορυφές και οι ακμές μπορούν να διαταχθούν με τέτοιο τρόπο στην μνήμη ώστε να είναι βέλτιστος για τους αντίστοιχους αλγόριθμους, καταλαμβάνοντας διαδοχικές θέσεις μνήμης οι οποίες μπορούν αργότερα να προσπελαστούν διαδοχικά με την μέγιστη απόδοση. Αυτή η αναπαράσταση είναι εξαιρετικά γρήγορη όταν θεωρούμε ένα στατικό γράφημα, αλλά όταν απαιτείται μια ενημέρωση, ο χρόνος για ένθεση ή διαγραφή κορυφών και ακμών είναι απαγορευτικός διότι πολλά στοιχεία θα πρέπει να μετακινηθούν προς τα δεξιά για να δημιουργηθεί χώρος για τα νέα στοιχεία. Ετσι, η αναπαράσταση ευθύδρομου άστρου προσφέρει σύμπτυξη και ευκινησία, και έτσι εξαιρετικά γρήγορους χρόνους ερωτημάτων, αλλά δεν προσφέρει δυναμικότητα. 1.2 Στόχοι της διπλωματικής Ο κύριος στόχος της διπλωματικής είναι η σχεδίαση και η υλοποίηση ενός νέου δυναμικού τύπου γραφημάτων που να υποστηρίζει την δρομολόγηση σε δίκτυα ευρείας κλίμακας με δυναμικές ενημερώσεις, πιο αποδοτικά από ό,τι οι μέχρι σήμερα δομές που χρησιμοποιούνται. Πιο συγκεκριμένα οι στόχοι είναι: Ανάλυση των κύριων δομών γραφημάτων που χρησιμοποιούνται στην βιβλιογραφία. Αναγνώριση των μειονεκτημάτων τους με στόχο την εξάλειψή τους από την νέα δομή. Υλοποίηση των παραπάνω δομών με στόχο την μετέπειτα πειραματική αξιολόγηση.

12 6 Εισαγωγή Σχεδίαση και υλοποίηση μιας νέας πρωτότυπης δομής δεδομένων για κατευθυνόμενα γραφήματα. Πειραματική αξιολόγηση της νέας δομής έναντι των κλασικών αναπαραστάσεων γραφημάτων. 1.3 Συνεισφορά της διπλωματικής Στην παρούσα εργασία παρουσιάζουμε μια νέα δομή δεδομένων για κατευθυνόμενα γραφήματα που προσφέρει όλα τα χαρακτηριστικά που απαιτούνται για αποδοτική δρομολόγηση σε δυναμικά δίκτυα μεταφορών ευρείας κλίμακας. Πιο συγκεκριμένα: 1. Η ακολουθιακή προσπέλαση διαδοχικών κορυφών ή ακμών είναι κοντά στην βέλτιστη (κατά ένα σταθερό παράγοντα) σε σχέση με τον χρόνο ε- κτέλεσης και τις μεταφορές μνήμης, και κατά συνέπεια συγκρίσιμη με την μέγιστη αποδοτικότητα της αναπαράστασης ευθύδρομου άστρου (σύμπτυξη). 2. Οι κορυφές και οι ακμές μπορούν να επαναδιαταχθούν μέσα στην δεσμευμένη από το γράφημα μνήμη, με σκοπό να αυξήσουν την τοπικότητα των αναφορών οποιουδήποτε αλγόριθμου, και άρα την απόδοσή του. Ο- ποιαδήποτε τεχνική επιτάχυνσης στην οποία μια διάταξη κορυφών είναι ιδιαίτερης σημασίας μπορεί να δώσει αυτή την διάταξη ως είσοδο στο γράφημα (ευκινησία). 3. Η ένθεση ή η διαγραφή κορυφών είναι συγκρίσιμη σε απόδοση με την απόδοση στην αναπαράσταση λίστας γειτνίασης υλοποιημένη με συνδεδεμένες λίστες, και κατά συνέπεια αρκετά γρήγορη για πρακτικές εφαρμογές (δυναμικότητα). Η νέα δομή μπορεί να απαντήσει σε ερωτήματα συντομότερων διαδρομών σε δίκτυα μεταφορών ευρείας κλίμακας χρησιμοποιώντας τον αλγόριθμο του Dijkstra και δύο κλασικές τεχνικές επιτάχυνσης σε milliseconds, πολύ κοντά στην βέλτιστη απόδοση της αναπαράστασης ευθύδρομου άστρου. Επίσης, υποστηρίζει ενθέσεις και διαγραφές κορυφών και ακμών, καθώς και αλλαγές στην διάταξη των κορυφών και των ακμών σε μερικά microseconds. Στην παρούσα εργασία παρουσιάζεται επίσης μια πειραματική μελέτη για την νέα δομή δεδομένων. Η πειραματική μελέτη έχει ως στόχο να αναδείξει την αποδοτικότητα της νέας δομής δεδομένων πάνω σε γνωστές τεχνικές ε- πιτάχυνσης. Ο στόχος της αξιολόγησης δεν είναι να συγκριθούν οι τεχνικές

13 1.4 Δομή 7 επιτάχυνσης που χρησιμοποιούμε, με άλλες, πιο γρήγορες και αποδοτικές, αλλά να συγκριθούν οι αναπαραστάσεις γραφημάτων μεταξύ τους πάνω στις ίδιες τεχνικές. Η δομή γραφημάτων που παρουσιάζεται είναι μια πολύ καλή συμβιβαστική λύση ανάμεσα σε δύο δομές με ακραίες αποδόσεις, την αναπαράσταση λίστας γειτνίασης που προσφέρει βέλτιστη δυναμικότητα και την αναπαράσταση ευθύδρομου άστρου που παρέχει σύμπτυξη και ευκινησία σε βέλτιστο βαθμό. Η δομή γραφημάτων μας είναι μόλις 2% πιο αργή από την αναπαράσταση ευθύδρομου άστρου στους χρόνους απάντησης ερωτημάτων συντομότερων διαδρομών αλλά πάνω από ένα εκατομμύριο φορές πιο γρήγορη κατά τις ενημερώσεις του γραφήματος. Αντίστοιχα, είναι μόνο δέκα φορές πιο αργή από την αναπαράσταση λίστας γειτνίασης κατά τις ενημερώσεις του γραφήματος αλλά κοντά στο 30% πιο γρήγορη στην απάντηση των ερωτημάτων από αυτήν. Ετσι στη γενική περίπτωση, η συνολική απόδοση της δομής που παρουσιάζουμε είναι καλύτερη από τις άλλες κλασικές δομές που χρησιμοποιούνται. Αξίζει να σημειωθεί ότι η νέα δομή γραφημάτων δεν είναι η ίδια μια τεχνική επιτάχυνσης αλλά μπορεί να αυξήσει την απόδοση οποιασδήποτε τεχνικής επιτάχυνσης υλοποιηθεί πάνω σε αυτήν. Υπάρχουσες τεχνικές που λειτουργούν πάνω σε ένα στατικό γράφημα και μπορούν να επωφεληθούν από την δυναμική φύση της νέας δομής ώστε να εφαρμόζονται σε δυναμικές περιπτώσεις, χωρίς να θυσιάσουν την απόδοσή τους στην στατική περίπτωση. Θα θέλαμε να παρατηρήσουμε ότι η προσέγγισή μας σε σχέση με δίκτυα μεταφορών ευρείας κλίμακας είναι η πρώτη που ασχολείται με την δυναμοποίηση του ίδιου του γραφήματος. Σε αντίθεση, οι μέχρι τώρα γνωστές προσεγγίσεις που ασχολούνται με δυναμικές περιπτώσεις [19, 21], λειτουργούν σε ένα γράφημα στατικής δομής και διάταξης και ενδιαφέρονται κυρίως για δυναμικούς αλγόριθμους που ενημερώνουν τα δεδομένα της προεπεξεργασίας. Ολες αυτές οι τεχνικές μπορούν επίσης να υλοποιηθούν πάνω στην δική μας δομή γραφημάτων και έτσι να επωφεληθούν από αυτήν. 1.4 Δομή Στο Κεφάλαιο 2, κάνουμε μια σύντομη εισαγωγή στους όρους που χρησιμοποιούμε στην συνέχεια. Παραθέτουμε θεωρητικές έννοιες που αφορούν τα γραφήματα και περιγράφουμε τους τρόπους αναπαράστασής τους. Στη συνέχεια δίνουμε ορισμούς, ιδιότητες και αναπαραστάσεις ενός υποσυνόλου γραφημάτων, των δένδρων, που έχουν ιδιαίτερο ενδιαφέρον για τις δομές που θα παρουσιάσουμε. Παράλληλα, στο Κεφάλαιο 2 περιγράφουμε κάποιους αλγόριθμους, κυρίως αλγόριθμους εύρεσης συντομότερων διαδρομών που θα μας απασχολήσουν στην

14 8 Εισαγωγή συνέχεια. Στο Κεφάλαιο 3, εισάγουμε το μοντέλο ανάλυσης που θα χρησιμοποιήσουμε και εισάγουμε την έννοια των cache-oblivious αλγορίθμων και δομών δεδομένων. Στη συνέχεια παρουσιάζουμε δύο cache-oblivious δομές δεδομένων που είναι δομικά συστατικά της νέας δομής γραφημάτων που παρουσιάζουμε. Στο Κεφάλαιο 4, παρουσιάζουμε την νέα δομή δεδομένων γραφημάτων, περιγράφουμε τις διάφορες λειτουργίες της και παραθέτουμε την θεωρητική α- νάλυσή τους. Παράλληλα, την συγκρίνουμε με άλλες βασικές δομές δεδομένων γραφημάτων και παρουσιάζουμε τα ειδικά χαρακτηριστικά της. Το Κεφάλαιο 5 περιέχει μια πλήρη πειραματική αξιολόγηση της νέας δομής γραφημάτων. Η αξιολόγησή της γίνεται έναντι γνωστών δομών δεδομένων που χρησιμοποιούνται στην πράξη, σε στατικά και δυναμικά σενάρια. Οι δρομολογήσεις γίνονται σε οδικά Ευρωπαϊκά δίκτυα χρησιμοποιώντας κλασικές τεχνικές επιτάχυνσης του αλγορίθμου του Dijkstra. Ολα τα αποτελέσματα παρατίθενται σε πίνακες και γραφικές παραστάσεις. Το Κεφάλαιο 6 περιέχει κάποια συμπεράσματά μας, και προτάσεις για μελλοντική εργασία.

15 Κεφάλαιο 2 Βασικές Εννοιες Στο κεφάλαιο αυτό ορίζουμε κάποιες βασικές έννοιες που θα χρησιμοποιήσουμε αργότερα. Η περιγραφή τους θα είναι περιληπτική, ο αναγώστης μπορεί ωστόσο να ανατρέξει στην σχετική βιβλιογραφία που παρατίθεται. 2.1 Γραφήματα Ενα γράφημα συμβολίζεται G = (V, E) και αποτελείται από ένα πεπερασμένο μη μηδενικό σύνολο κορυφών V (vertices) και ένα πεπερασμένο σύνολο ακμών E (edges). Με n = V συμβολίζουμε το πλήθος των κορυφών και με m = E το πλήθος των ακμών. Μία ακμή e είναι είτε ένα σύνολο κορυφών, e = {u, v}, όπου u v, οπότε χαρακτηρίζεται μη-κατευθυνόμενη, ή ένα ζεύγος κορυφών, e = (u, v), οπότε χαρακτηρίζεται κατευθυνόμενη. Αντίστοιχα ένα γράφημα που αποτελείται μόνο από μη-κατευθυνόμενες ακμές, ονομάζεται απλό γράφημα ή μη-κατευθυνόμενο, ενώ ένα γράφημα που αποτελείται μόνο από κατευθυνόμενες ακμές, ονομάζεται κατευθυνόμενο. Μία ακμή e = (u, v) ή e = {u, v} προσπίπτει στις κορυφές u, v που ονομάζονται άκρα της ακμής. Η κορυφή u ονομάζεται αρχική της κατευθυνόμενης ακμής e = (u, v) (source(e) = u), και η κορυφή v τελική της (target(e) = v). Οι κορυφές u, v ονομάζονται γειτονικές όταν το γράφημα περιέχει μία ακμή με άκρα τις u, v. Μια ακμή e = (u, u) ονομάζεται βρόγχος. Δύο ακμές με τα ίδια άκρα ονομάζονται παράλληλες ακμές. Ο βαθμός μιάς κορυφής u, deg(u), είναι ο αριθμός των ακμών που προσπίπτουν στην u. Ο βαθμός εισόδου της u είναι ο αριθμός των κατευθυνόμενων ακμών του γραφήματος με τέλος την u. Αντίστοιχα ο βαθμός εξόδου μιάς κο-

16 10 Βασικές Εννοιες ρυφής u είναι ο αριθμός των κατευθυνόμενων ακμών του γραφήματος με αρχή την u. Συμβολίζουμε με τον μέγιστο βαθμό που έχει μια κορυφή στο γράφημα. Τέλος, μία κορυφή στην οποία δεν προσπίπτει καμία ακμή (έχει βαθμό 0) ονομάζεται απομονωμένη. Ενα γράφημα G = (V, E) ονομάζεται πλήρες (complete) όταν για κάθε ζεύγος κορυφών u, v V υπάρχει ακμή e = (u, v) που να ανήκει στο γράφημα. Εστω ένα γράφημα G = (V, E). Διαμερισμός (V 1, V 2,..., V k ) (partition) των κορυφών του G ονομάζεται ο διαχωρισμός των κορυφών του γραφήματος σε σύνολα V i τέτοια ώστε V i V, V 1 V 2... V k = V i = 0...k και V i V j = 0 i, j = 0...k. Αντίστοιχα, διαμερισμός (E 1, E 2,..., E k ) των ακμών του ονομάζεται ο διαχωρισμός των ακμών του γραφήματος σε σύνολα E i τέτοια ώστε E i E, E 1 E 2... E k = E i = 0...k και E i E j = 0 i, j = 0...k. Με αφαίρεση της ακμής e από ένα γράφημα G = (V, E) παίρνουμε το γράφημα (V, E e) το οποίο συμβολίζουμε G e. Με αφαίρεση της κορυφής u από ένα γράφημα G = (V, E) παίρνουμε το γράφημα (V {u}, E {e target(e) = u or source(e) = u}) το οποίο συμβολίζουμε G u. Το γράφημα G = (V, E ) λέγεται υπογράφημα του G = (V, E) όταν V V και E E. Το G = (V, E ) λέγεται επαγόμενο υπογράφημα του G = (V, E) όταν V V και το E περιέχει ακριβώς τις ακμές του G που έχουν και τα δύο τους άκρα στο G. Εστω γράφημα G = (V, E) και υπογράφημά του G = (V, E ). Αν V = V τότε το G = (V, E ) ονομάζεται γεννητικό υπογράφημα του G. Εστω κατευθυνόμενο γράφημα G = (V, E). Το γράφημα G = (V, E ) με E = {(u, v) (v, u) E} ονομάζεται «προς τα πίσω» γράφημα του G. Κάθε διαδικασία που εφαρμόζεται πάνω στο G ονομάζεται «προς τα πίσω» διαδικασία του G. Εστω n ένας μη-αρνητικός ακέραιος και G = (V, E) ένα γράφημα. Μια διαδρομή (path) μήκους n από την κορυφή u στην κορυφή v είναι μία ακολουθία n ακμών e 1, e 2,..., e n G, τέτοια ώστε e 1 = (x 0, x 1 ), e 2 = (x 1, x 2 ),..., e n = (x n 1, x n ) και u = x 0, v = x n. Μια διαδρομή ονομάζεται απλή αν δεν περιλαμβάνει την ίδια ακμή περισσότερες από μια φορά. Μια διαδρομή ονομάζεται κυκλική αν αρχίζει και τελειώνει

17 2.2 Αναπαράσταση ενός γραφήματος 11 στην ίδια κορυφή. Ονομάζουμε διάμετρο ενός γραφήματος G το μέγεθος της μεγαλύτερης α- πλής διαδρομής στο G. Εστω γράφημα G = (V, E). Το γράφημα αυτό ονομάζεται συνεκτικό αν για κάθε ζευγάρι κορυφών του u, v υπάρχει διαδρομή στο γράφημα που να τις ενώνει. 2.2 Αναπαράσταση ενός γραφήματος Στην βιβλιογραφία έχουν προταθεί πολλοί τρόποι αναπαράστασης ενός γραφήματος. Καθένας έχει διαφορετικά χαρακτηριστικά, και η επιλογή ενός ε- ξαρτάται σε μεγάλο βαθμό από την εφαρμογή στην οποία θα χρησιμοποιηθεί. Στην παρούσα εργασία, το ενδιαφέρον μας βρίσκεται κυρίως σε αραιά δυναμικά δίκτυα, όπως τα δίκτυα μεταφορών, και πιο συγκεκριμένα, τα οδικά δίκτυα. Για τέτοιου είδους δίκτυα μας απασχολούν κυρίως αναπαραστάσεις που απαιτούν γραμμικό χώρο, καθώς τα δίκτυα όχι μόνο είναι αραιά, αλλά και εξαιρετικά μεγάλου μεγέθους. Κατά συνέπεια, εξετάζουμε κυρίως αναπαραστάσεις που είναι παραλλαγές της αναπαράστασης λίστας γειτνίασης που απαιτεί γραμμικό χώρο για την αποθήκευση των στοιχείων ενός γραφήματος. Ολες οι αναπαραστάσεις που περιγράφονται στην παρούσα εργασία είναι αναπαραστάσεις κατευθυνόμενων γραφημάτων Αναπαράσταση Λίστας Γειτνίασης Η λίστα γειτνίασης A(u) μιας κορυφής u σε ένα γράφημα G = (V, E) ορίζεται ως το σύνολο A(u) = {w (u, w) E}. Η αναπαράσταση λίστας γειτνίασης (adjacency list representation) αποθηκεύει την λίστα γειτνίασης κάθε κορυφής σαν μια συνδεδεμένη λίστα. Μια συνδεδεμένη λίστα είναι μια συλλογή κελιών που το καθένα περιέχει ένα ή περισσότερα πεδία. Η λίστα γειτνίασης μιας κορυφής u είναι μια συνδεδεμένη λίστα με A(u) κελιά και κάθε κελί αντιστοιχεί σε μια ακμή (u, w) E. Το κελί που αντιστοιχεί στην ακμή (u, w) περιέχει τόσα πεδία όση και η πληροφορία που θέλουμε να αποθηκεύσουμε για κάθε ακμή. Ενα από τα πεδία είναι η κορυφή w. Κάθε κελί περιέχει άλλο ένα πεδίο με ένα δείκτη προς το επόμενο κελί στην συνδεδεμένη λίστα. Αν ένα κελί είναι το τελευταίο στην συγκεκριμένη λίστα, αυτός ο δείκτης είναι ίσος με μηδέν. Αφού πρέπει να αποθηκεύσουμε n συνδεδεμένες λίστες, μία για κάθε κορυφή, πρέπει επίσης να αποθηκεύσουμε μια συνδεδεμένη λίστα με δείκτες που

18 12 Βασικές Εννοιες να δείχνουν στο πρώτο κελί κάθε λίστας γειτνίασης. Το πετυχαίνουμε ο- ρίζοντας μια συνδεδεμένη λίστα n στοιχείων, f irst, της οποίας κάθε στοιχείο f irst(u) περιέχει έναν δείκτη στο πρώτο κελί της λίστας γειτνίασης της αντίστοιχης κορυφής u. Αν η λίστα γειτνίασης μιας κορυφής u είναι κενή, θέτουμε f irst(u) = 0. Το Σχήμα 2.2 δείχνει την αναπαράσταση λίστας γειτνίασης του γραφήματος στο Σχήμα 2.1. u0 (u0,u2) (u0,u1) (u0,u4) u1 (u1,u3) (u1,u4) (u1,u0) (u1,u2) u4 u2 u2 (u2,u0) (u2,u3) (u2,u4) (u2,u1) u3 u3 (u3,u1) (u3,u2) u0 u1 u4 Nodes (u4,u1) (u4,u2) Edges (u4,u0) Σχήμα 2.1: Παράδειγμα ενός γραφήματος με 5 κορυφές και 8 ακμές (όλες οι ακμές είναι δικατευθυνόμενες) Σχήμα 2.2: Αναπαράσταση λίστας γειτνίασης Σε αυτή την εργασία μερικές φορές υποθέτουμε ότι όταν υπάρχει μια ακμή (u, w) σε ένα γράφημα, υπάρχει και η αντίστροφη ακμή (w, u). Σε τέτοιες περιπτώσεις, όταν ενημερώνουμε την πληροφορία που είναι αποθηκευμένη στην ακμή (u, w) πρέπει να ενημερώσουμε και την πληροφορία στην ακμή (w, u). Αφού η μία ακμή ανήκει στην λίστα γειτνίασης της κορυφής u και η άλλη στην αντίστοιχη λίστα της κορυφής w, για να εκτελέσουμε αποδοτικά μια λειτουργία και στις δύο ακμές πρέπει να ξέρουμε πώς από μια ακμή (u, w) θα βρούμε την αντίστροφή της, (w, u). Για αυτό το λόγο, σε κάθε ακμή αποθηκεύουμε ένα επιπλέον πεδίο που περιέχει ένα δείκτη στο κελί που περιέχει την αντίστροφη ακμή Αναπαράσταση γραφήματος Ευθύδρομου Άστρου και Αντίστροφου Αστρου Η αναπαράσταση ευθύδρομου άστρου (forward star representation) ενός γραφήματος είναι παρόμοια με την αναπαράσταση λίστας γειτνίασης με την έννοια ότι επίσης αποθηκεύει τις λίστες γειτνίασης των κορυφών του γραφήματος. Αλλά αντί να τις αποθηκεύει ως συνδεδεμένες λίστες, τις αποθηκεύει σε ένα

19 2.2 Αναπαράσταση ενός γραφήματος 13 μοναδικό πίνακα ακμών. Για να δημιουργήσουμε αυτή την αναπαράσταση, αρχικά αποδίδουμε ένα μοναδικό αυθαίρετο αριθμό σε κάθε κορυφή, καθώς και έναν συγκεκριμένο αριθμό σε κάθε ακμή ορίζοντας έτσι μια αρίθμηση των α- κμών. Αριθμούμε τις ακμές με συγκεκριμένη σειρά: αρχικά αριθμούμε τις ακμές που είναι εξερχόμενες της κορυφής u 0, μετά τις εξερχόμενες της κορυφής u 1, συνεχίζοντας για όλες τις κορυφές. Μεταξύ των εξερχόμενων ακμών μιας συγκεκριμένης κορυφής, η αρίθμηση είναι αυθαίρετη. Στη συνέχεια αποθηκεύουμε ακολουθιακά την πληροφορία κάθε ακμής στον πίνακα ακμών, με την ίδια σειρά με αυτή της αρίθμησης. Ταυτόχρονα διατηρούμε έναν δείκτη με κάθε κορυφή u i, συμβολίζοντάς τον με point(u i ) που δείχνει στην ακμή με τον μικρότερο αριθμό από τις εξερχόμενές του. Αν μια κορυφή δεν έχει εξερχόμενες ακμές, τότε θέτουμε point(u i ) = point(u i+1 ). Ετσι η αναπαράσταση ευθύδρομου άστρου αποθηκεύει της εξερχόμενες ακμές μιας κορυφής u i στις θέσεις point(u i ) έως point(u i+1 ) 1 στον πίνακα των ακμών. Το Σχήμα 2.3 δείχνει την αναπαράσταση ευθύδρομου άστρου του γραφήματος στο Σχήμα 2.1. Nodes 0 u0 1 u1 2 u2 3 u3 4 u4 Edges (u0,u2) (u0,u1) (u0,u4) (u1,u3) (u1,u4) (u1,u0) (u1,u2) (u2,u0) (u2,u3) (u2,u4) (u2,u1) (u3,u1) (u3,u2) (u4,u1) (u4,u2) (u4,u0) Σχήμα 2.3: Αναπαράσταση ευθύδρομου άστρου Η αναπαράσταση ευθύδρομου άστρου μας δίνει έναν αποδοτικό τρόπο να καθορίσουμε το σύνολο εξερχομένων ακμών οποιασδήποτε κορυφής. Για να καθορίσουμε ταυτόχρονα το σύνολο των εισερχόμενων ακμών μιας κορυφής, χρειαζόμαστε μια επιπλέον δομή δεδομένων, γνωστή ως αναπαράσταση αντίστροφου άστρου. Αυτή η αναπαράσταση ακολουθεί τον ίδιο ακριβώς τρόπο αποθήκευσης με την αναπαράσταση ευθύδρομου άστρου με την διαφορά ότι η νέα αρίθμηση των ακμών γίνεται πάνω στις εισερχόμενες ακμές κάθε κορυφής αντί των εξερχομένων. Ετσι, αρχικά αριθμούνται όλες οι εισερχόμενες ακμές της κορυφής u 0, μετά της u 1, συνεχίζοντας για όλες τις κορυφές. Παρόμοια, κάθε κορυφή u διατηρεί έναν δείκτη rpoint(u) που δείχνει στην πρώτη ακμή του συνόλου των εισερχομένων ακμών του. Η αναπαράσταση αυτή είναι ισοδύναμη με την αναπαράσταση ευθύδρομου άστρου του προς-τα-πίσω γραφήματος του αρχικού γραφήματος. Οπως είδαμε και στην παράγραφο της αναπαράστασης λίστας γειτνίασης, μερικές φορές όταν ενημερώνουμε την πληροφορία της ακμής (u, w), πρέπει

20 14 Βασικές Εννοιες να ενημερώσουμε και την πληροφορία της ακμής (w, u). Για αυτό τον λόγο αποθηκεύουμε σε ένα πεδίο κάθε ακμής (u, w) έναν δείκτη στην αντίστροφη ακμή της, (w, u) Αποθήκευση παράλληλων ακμών Στην παρούσα εργασία υποθέτουμε ότι το γράφημα δεν περιέχει παράλληλες ακμές. Αυτό σημαίνει ότι δεν υπάρχουν δύο ακμές στο γράφημα που να έχουν την ίδια αρχική και τελική κορυφή. Εάν επιτρέψουμε παράλληλες ακμές, αντιμετωπίζουμε ορισμένα προβλήματα σημειολογίας, αφού ο συμβολισμός (u, w) δεν αναφέρεται σε μοναδική ακμή. Αυτή η δυσκολία ωστόσο είναι μόνο σημειολογική. Η αναπαράσταση λίστας γειτνίασης, οι αναπαραστάσεις ευθύδρομου άστρου και αντίστροφου άστρου καθώς και η αναπαράσταση γραφήματος πακεταρισμένης-μνήμης που θα προταθεί στη συνέχεια μπορούν να διαχειριστούν παράλληλες ακμές. Αν μια κορυφή έχει δύο εξερχόμενες ακμές με την ίδια τελική κορυφή αλλά ενδεχομένως διαφορετικό βάρος, η συνδεδεμένη λίστα ή ο πίνακας ακμών σε κάθε περίπτωση μπορεί να περιέχει δύο διαφορετικά κελιά που να αντιστοιχούν σε αυτές τις δύο ακμές Αναπαράσταση μη κατευθυνόμενων γραφημάτων Μπορούμε να αναπαραστήσουμε μη-κατευθυνόμενα γραφήματα με τις ίδιες α- ναπαραστάσεις που περιγράψαμε παραπάνω. Ωστόσο πρέπει να θυμόμαστε ότι όταν μια ακμή (u, w) ανήκει σε ένα μη-κατευθυνόμενο γράφημα, πρέπει να συμπεριλάβουμε και τα δύο ζεύγη (u, w) και (w, u) στις παραπάνω αναπαραστάσεις. Κατά συνέπεια, θα αποθηκεύσουμε κάθε ακμή (u, w) δύο φορές, μια στην λίστα γειτνίασης της κορυφής u και μια στην λίστα γειτνίασης της κορυφής w. Παρομοίως, όταν ενημερώνουμε την πληροφορία της μίας ακμής, πρέπει να ενημερώνουμε και την πληροφορία της άλλης. Βεβαίως, μπορούμε να το πετύχουμε αυτό αποδοτικά εάν διατηρούμε δείκτες μεταξύ των δύο στιγμιοτύπων κάθε ακμής. 2.3 Δέντρα Στην θεωρία γραφημάτων, ένα δέντρο είναι ένα άκυκλο συνεκτικό γράφημα. Για τα δέντρα ισχύει το παρακάτω θεώρημα. Θεώρημα Εστω G = (V, E) ένα γράφημα. Τότε τα παρακάτω είναι ισοδύναμα: 1. Το γράφημα G είναι δέντρο.

21 2.3 Δέντρα Οποιεσδήποτε δύο κορυφές του γραφήματος G συνδέονται με μια μοναδική απλή διαδρομή. 3. Το γράφημα G είναι συνεκτικό, αλλά αν διαγραφεί μια πλευρά, τότε γίνεται μη-συνεκτικό. 4. Το γράφημα G είναι συνεκτικό και m = n Το γράφημα G είναι άκυκλο και m = n Το γράφημα G είναι άκυκλο, αλλά αν προστεθεί μια πλευρά στο σύνολο E, τότε δημιουργείται κύκλος Δέντρα με ρίζα Ενα δέντρο με ρίζα είναι ένα δέντρο με μια επιλεγμένη κορυφή ως ρίζα. Σε ένα δέντρο με ρίζα υπάρχει μια ιεράρχηση κορυφών σε επίπεδα, όπου στο επίπεδο 0 τοποθετείται μόνο η ρίζα, και στα υπόλοιπα επίπεδα οι υπόλοιπες κορυφές ανάλογα με την απόστασή τους από την ρίζα. Ετσι σχηματίζεται μια σχέση γονέα-παιδιών: για κάθε κορυφή u V στη μοναδική διαδρομή από την ρίζα r προς μια διαφορετική κορυφή υ, η u έχει μια μοναδική προηγούμενη κορυφή που ονομάζεται γονέας της u και μια μοναδική επόμενη κορυφή που ονομάζεται παιδί της u. Μια κορυφή χωρίς παιδιά ονομάζεται φύλλο. Μια κορυφή με παιδιά ονομάζεται εσωτερική κορυφή του δέντρου Κάθε κορυφή u στην διαδρομή από την ρίζα r προς μια διαφορετική κορυφή υ λέγεται πρόγονος της υ. Αν μια κορυφή u είναι πρόγονος της υ τότε η υ ονομάζεται απόγονος της u. Ονομάζουμε ως επίπεδο μιας κορυφής υ τον αριθμό των πλευρών στην διαδρομή από την ρίζα προς την υ. Το ύψος ενός δέντρου με ρίζα είναι ίσο με το μέγιστο επίπεδο μιας κορυφής του δέντρου Δυαδικά δέντρα Ενα δέντρο με ρίζα στο οποίο κάθε εσωτερική κορυφή έχει το πολύ δύο παιδιά ονομάζεται δυαδικό δέντρο. Για ένα δυαδικό δέντρο T με n κορυφές και ύψος h ισχύουν τα παρακάτω: Λήμμα Εστω δυαδικό δέντρο T με n κορυφές και ύψος h. Στο επίπεδο l του δέντρου υπάρχουν το πολύ 2 l κορυφές. Λήμμα Εστω δυαδικό δέντρο T με n κορυφές και ύψος h. Ο αριθμός των κορυφών του είναι n 2 h+1 1.

22 16 Βασικές Εννοιες Λήμμα Σε κάθε δυαδικό δέντρο T, n 0 = n 2 +1 όπου n 0 είναι ο αριθμός των φύλλων και n 2 ο αριθμός των κορυφών με δύο παιδιά. Λήμμα Εστω δυαδικό δέντρο T με n κορυφές και ύψος h. Ο αριθμός των φύλλων του είναι n 0 2 h. Λήμμα Εστω δυαδικό δέντρο T με n κορυφές και ύψος h. ισχύει για τα φύλλα του ότι n+1 2 n 0 n+1 2. Τότε Λήμμα Εστω δυαδικό δέντρο T με n κορυφές και ύψος h. Το ύψος του είναι h log(n + 1) Πλήρη δυαδικά δέντρα - Δομή σωρού Ενα δυαδικό δέντρο ονομάζεται πλήρες ή δομή σωρού αν κάθε επίπεδο του δέντρου εκτός του τελευταίου είναι πλήρες, με το τελευταίο να είναι γεμάτο στα αριστερά αλλά να υπολείπεται κάποια φύλλα προς τα δεξιά Αναπαράσταση δένδρων Τα δυαδικά δέντρα μπορούν να αναπαρασταθούν με χρήση βασικών δομών δεδομένων σε πολλές γλώσσες προγραμματισμού. Η επιλογή μιας αναπαράστασης εξαρτάται από την εφαρμογή στην οποία θα χρησιμοποιηθεί και τις απαιτήσεις της. Παρακάτω αναφέρουμε τις δύο πιο κοινές αναπαραστάσεις δυαδικών δένδρων. Αναπαράσταση κορυφών και αναφορών Σε γλώσσες προγραμματισμού που παρέχουν υποστήριξη για δομές (records) και αναφορές (references), τα δυαδικά δέντρα συνήθως υλοποιούνται κατασκευάζοντας μια δομή για μια κορυφή του δέντρου που περιέχει ένα πεδίο για τα δεδομένα της κορυφής και δύο πεδία αναφορές στο αριστερό και δεξιό παιδί της. Μερικές φορές περιέχει και αναφορά στην μοναδική κορυφή γονέα της. Αν μια κορυφή έχει λιγότερα από δύο παιδιά, αυτές οι αναφορές παίρνουν μια ειδική μηδενική τιμή, ή δείχνουν σε μια βοηθητική κρυφή κορυφή. Αυτός ο τρόπος αναπαράστασης ενδείκνυται για όλα τα είδη δένδρων, λόγω της ευκολίας στην υλοποίησή του, της δυναμικής του φύσης και της ελάχιστης μνήμης που απαιτεί. Το μειονέκτημά του είναι ότι αν έχουμε δέντρα ειδικής μορφής, όπως πλήρη δυαδικά δέντρα, δεν παρέχει κάποιου είδους δόμηση στην μνήμη που θα είχε ως αποτέλεσμα την πιο γρήγορη προσπέλαση των κορυφών.

23 2.4 Διερεύνηση κορυφών του γραφήματος 17 Αναπαράσταση πινάκων Τα δυαδικά δέντρα μπορούν επίσης να αποθηκευθούν με σειρά πρώτα-κατάπλάτος σαν μια έμμεση δομή δεδομένων σε μονοδιάστατους πίνακες (array). Εάν τα δέντρα είναι πλήρη, αυτή η αναπαράσταση δεν σπαταλάει καθόλου χώρο. Σε αυτή την συμπαγή διάταξη, αν μια κορυφή βρίσκεται στην θέση i του πίνακα, τα παιδιά της βρίσκονται στις θέσεις 2i (για το δεξιό παιδί) και 2i + 1 (για το αριστερό παιδί), ενώ ο γονέας (αν υπάρχει) βρίσκεται στην θέση i/2 (υποθέτοντας ότι η ρίζα βρίσκεται στην θέση 1). Μια σχηματική αναπαράσταση φαίνεται στο Σχήμα Σχήμα 2.4: Αναπαράσταση πλήρους δυαδικού δέντρου κατά διάταξη πρώτακατά-βάθος. Οι κορυφές είναι αποθηκευμένες σε ένα πίνακα, κατά επίπεδα από αριστερά προς τα δεξιά. Η θέση κάθε κορυφής στον πίνακα φαίνεται στον αριθμό που της αντιστοιχεί. 2.4 Διερεύνηση κορυφών του γραφήματος Σε πολλές εφαρμογές που εκπροσωπούνται με γράφημα, πρέπει να γίνει επίσκεψη σε όλες τις κορυφές του γραφήματος και εκεί να εκτελεστεί κάποιο έργο που καθορίζεται από την εφαρμογή. Σκοπός είναι να προσπελάσουμε ολόκληρο το γράφημα, να επισκεφτούμε όλες τις κορυφές, με κάποιον τρόπο. Αλγόριθμοι τέτοιου είδους ονομάζονται αλγόριθμοι αναζήτησης (όπως ο αλγόριθμος 1). Οι δύο πιο συνηθισμένοι αλγόριθμοι είναι η Αναζήτηση Πρώτα Κατά Πλάτος (BFS) και η Αναζήτηση Πρώτα Κατά Βάθος (DFS) Ενας αλγόριθμος αναζήτησης λειτουργεί ως εξής. Εστω ένα γράφημα G = (V, E) και μια τυχαία αρχική κορυφή s V. Ξεκίνα μια αναζήτηση, αρχίζοντας από τον s, επισκέπτοντας τον s, και επανέλαβε το επόμενο βήμα έως ότου δεν υπάρχει πιά ακμή (u, w) τέτοια ώστε να έχουμε επισκεφτεί τον u και όχι τον w (ακμή διέλευσης):

24 18 Βασικές Εννοιες Algorithm 1 Αλγόριθμος Αναζήτησης INPUT: GRAPH G = (V, E) and vertex s V OUTPUT:Arrays pred and order unmark all vertices of V mark s; pred(s) = 0; next = 1; order(s) = next; LIST = {s}; while LIST do select vertex u from LIST ; if u is incident to admissible edge (u, w) then mark w; pred(w) = u; next = next + 1; order(w) = next; mark w; pred(w) = u; LIST = LIST {w}; else delete u from LIST ; end if end while Βήμα αναζήτησης: διάλεξε μια ακμή διέλευσης (u, w) (τέτοια ώστε να έχουμε επισκεφτεί τον u μα όχι τον w) και εξέτασέ την με ε- πίσκεψη στον ω. Εάν κάποιος ορίσει και την σειρά επίσκεψης των πιθανών ακμών τότε καταλήγει στους αλγόριθμους Αναζήτησης Πρώτα Κατά Βάθος (DFS) και Αναζήτησης Πρώτα Κατά Πλάτος (BFS). Αν διαλέξουμε ακμή (u, w) τέτοια ώστε ο u να είναι η κορυφή που έχουμε επισκεφτεί πιο πρόσφατα, τότε έχουμε τον αλγόριθμο Αναζήτησης Πρώτα Κατά Βάθος (DFS). Αν διαλέξουμε ακμή (u, w) τέτοια ώστε ο u να είναι η πιο παλιά κορυφή που έχουμε επισκεφτεί, τότε έχουμε τον αλγόριθμο Αναζήτησης Πρώτα Κατά Πλάτος (BFS). Αυτοί οι αλγόριθμοι, χρησιμοποιούνται για να εξερευνήσουμε το γράφημα, και για όποια διαδικασία χρειάζεται την προσπέλαση ολόκληρου του γραφήματος. Τέλος, κάτι που είναι σημαντικό, βλέπουμε πως εάν κρατήσουμε για κάθε κορυφή w, την κορυφή-γείτονά της u, ώς πατέρα της, τότε δημιουργείται ένα γεννητικό υποδέντρο του γραφήματος, το οποίο ονομάζεται Δέντρο Αναζήτησης του γραφήματος.

25 2.5 Το πρόβλημα Εύρεσης Συντομότερων Διαδρομών Το πρόβλημα Εύρεσης Συντομότερων Διαδρομών Πολλές φορές έχει νόημα η αντιστοίχηση κάθε ακμής με μία τιμή η οποία συνήθως ονομάζεται κόστος ή βάρος. Σε αυτήν την περίπτωση το γράφημα ονομάζεται δίκτυο και συμβολίζεται συνήθως ως G = (V, E, wt) όπου wt : E R είναι η συνάρτηση κόστους των ακμών. Ορίζουμε το κόστος μιας διαδρομής P = (u 0, u 1 ), (u 1, u 2 ),..., (u n 1, u n ) = e 1, e 1,..., e 1 ως το άθροισμα των βαρών των ακμών που την απαρτίζουν wt(p ) = n i=1 wt(e i). Δεδομένου ενός κατευθυνόμενου γραφήματος G = (V, E, wt) με μη-αρνητικά βάρη στις ακμές του και δεδομένη μια από τις κορυφές του ως κορυφή πηγής(source) ορίζουμε: Το πρόβλημα εύρεσης της συντομότερης διαδρομής (ΕΣΔ) από μια αρχική κορυφή (single source shortest path SSSP) είναι το να βρούμε το κόστος της συντομότερης διαδρομής μεταξύ της αρχικής κορυφής και κάθε άλλης κορυφής του γραφήματος. Η απόσταση του κόμβου u από τον κόμβο s συμβολίζεται συνήθως ως d(s, u). Αν είναι σαφές ποιός είναι ο αρχικός κόμβος s μπορούμε να τον παραλείψουμε από το συμβολισμό, δηλαδή d(u) θα είναι η απόσταση του u από τον δεδομένο αρχικό κόμβο. Το κόστος της συντομότερης διαδρομής από τον κόμβο s στον u που διέρχεται μόνο από κόμβους που ανήκουν σε ένα σύνολο W V συμβολίζεται με d(s, u; W ) ή d(u; W ) αντίστοιχα. Πέρα από αυτό το βασικό πρόβλημα εύρεσης υπάρχουν και δύο παραλλαγές του. Η μία είναι το πρόβλημα εύρεσης συντομότερης διαδρομής μεταξύ ενός ζεύγους κόμβων (single-source single-sink shortest path) και το άλλο μεταξύ όλων των ζευγών κόμβων ενός γραφήματος (all-pairs shortest paths) Ο απλός αλγόριθμος Dijkstra Ο αλγόριθμος Dijkstra είναι ένας αλγόριθμος που λύνει το πρόβλημα εύρεσης συντομότερης διαδρομής μεταξύ ενός κόμβου πηγής (source) και ενός άλλου κόμβου του γραφήματος (target) (αλγόριθμος 2). Για ένα δεδομένο ζευγάρι κόμβων s και t ενός γραφήματος G = (V, E), ο αλγόριθμος βρίσκει τη διαδρομή από το s στο t με το χαμηλότερο κόστος. Ο αλγόριθμος ανήκει σε μια κατηγορία αλγορίθμων που υπολογίζουν το ζητούμενο, θέτοντας ένα είδος «ετικέτας» σε κάθε κορυφή. Στην περίπτωση μας η «ετικέτα» μιας κορυφής u αντιπροσωπεύει την ελάχιστη απόσταση της u από τον s στο συγκεκριμένο βήμα του αλγορίθμου. Αρχικά ο s έχει απόσταση 0 και οι υπόλοιπες κορυφές απόσταση. Συμβολίζουμε την απόσταση μιας κορυφής u ως d(u). Ο αλγόριθμος κρατάει δύο σύνολα, το S το οποίο περιέχει τις κορυφές για τις οποίες έχουμε ήδη βρει τη συντομότερη διαδρομή, και το Q

26 20 Βασικές Εννοιες που περιέχει τις υπόλοιπες κορυφές. Ονομάζουμε χαλάρωση ακμών, την εξής διαδικασία: έστω u κορυφή S, με (γνωστή) ελάχιστη απόσταση από τον s, d(u). (u, w) E, αν d(w) > d(u) + wt(u, w) θέσε d(w) = d(u) + wt(u, w) και τον u γονέα του w. Ουσιαστικά, λέμε στον w ότι έχουμε βρεί μια συντομότερη διαδρομή μέσω του u(για τον οποίο είμαστε σίγουροι για την απόστασή του - ανήκει στο S), και του λέμε να ενημερώσει την «ετικέτα» του. Algorithm 2 Αλγόριθμος του Dijkstra INPUT: Directed Network G = (V, E), n = V, m = E, with nonnegative edge weights and vertex s V OUTPUT:Array d(.) of length n, where d(u) = δ(s, u), u V, and array pred(.) of length n, where pred(u) is the parent of vertex u in the shortest path tree rooted at s. METHOD; S = ; S = V ; for every u V do d(u) = ; end for d(s) = 0; pred(s) = 0; while S < n do (*vertex selection*) let u S be the vertex for which d(u) = min υ S {d(υ)}; S = S {u}; S = S {u}; (*distance update*) for each (u, w) E do if end if end for end while d(w) > d(u) + wt(u, w) then d(w) = d(u) + wt(u, w); pred(w) = u; Ο αλγόριθμος εκτελεί τα παρακάτω βήματα: διάλεξε την κορυφή u με την μικρότερη προσωρινή απόσταση μέσα από το Q. Εφόσον δεν υπάρχει κορυφή με μεγαλύτερη απόσταση στο Q,

27 2.5 Το πρόβλημα Εύρεσης Συντομότερων Διαδρομών 21 είμαστε σίγουροι πως έχουμε βρεί την ελάχιστη απόσταση για τον u και τον βάζουμε στο S. χαλάρωσε τις ακμές του u. Ενημέρωσε τους γειτονικούς κόμβους για την νέα διαδρομή που βρέθηκε. Ο αλγόριθμος τελειώνει αφού βρεί όλες τις συντομότερες αποστάσεις. Φυσικά δημιουργείται το δέντρο συντομότερων διαδρομών αν αναλογιστούμε ότι κάθε κορυφή έχει έναν γονέα. Η πολυπλοκότητα χρόνου του αλγορίθμου είναι O(m + n log n) Ο αμφίδρομος αλγόριθμος Dijkstra Ο αλγόριθμος αυτός είναι η πιο απλή παραλλαγή του αλγορίθμου του Dijkstra. Εστω γράφημα G = (V, E) και ζευγάρι κορυφών s, t. Η κλασική αναζήτηση ξεκινάει από τον s μέχρι να βρεθεί η απόσταση του t. Η αμφίδρομη αναζήτηση εκτελεί δύο αναζητήσεις ταυτόχρονα: μια ευθύδρομη αναζήτηση ξεκινώντας από την αρχική κορυφή s και μια οπισθόδρομη αναζήτηση ξεκινώντας από την τελική κορυφή t. Κατά την οπισθόδρομη αναζήτηση ο αλγόριθμος εκτελείται στο προςτα-πίσω γράφημα του αρχικού γραφήματος, δηλαδή στο γράφημα με το ίδιο σύνολο κορυφών V και το αντίστροφο σύνολο ακμών E = {(u, v) (v, u) E}. Εστω df(u) οι ετικέτες απόστασης της ευθύδρομης αναζήτησης και db(u) οι ετικέτες απόστασης της οπισθόδρομης αναζήτησης αντίστοιχα. Ο αλγόριθμος μπορεί να τερματίσει όταν μια κορυφή έχει μονιμοποιηθεί και από τις δύο αναζητήσεις. Τότε, η συντομότερη διαδρομή καθορίζεται από την κορυφή u με ελάχιστη τιμή df(u) + db(u) και συντίθεται από την συντομότερη διαδρομή από την αρχική κορυφή s προς την κορυφή u (που έχει βρεθεί από την ευθύδρομη αναζήτηση), και από την συντομότερη διαδρομή από την κορυφή u στην τελική κορυφή t (που έχει βρεθεί από την οπισθόδρομη αναζήτηση). Παρατηρήστε ότι η κορυφή u δεν έχει κατά ανάγκη μονιμοποιηθεί και από τις δύο αναζητήσεις. Ενας βαθμός ελευθερίας στην δικατευθυνόμενη αναζήτηση είναι η επιλογή αν το προς-τα-εμπρός ή το προς-τα-πίσω βήμα θα εκτελεσθεί. Συνήθεις τακτικές είναι να επιλέγεται η κατεύθυνση με την μικρότερη ουρά προτεραιότητας, ή να επιλέγεται η κατεύθυνση με την μικρότερη απόσταση στην ουρά προτεραιότητα ή να εναλλάσσονται σε κάθε βήμα οι κατευθύνσεις. Η απόδοση του αλγορίθμου αυτού είναι σχεδόν δύο φορές καλύτερη από τον απλό Dijkstra, και η τροποποίηση του απλού Dijkstra σε αμφίδρομο αλγόριθμο Dijkstra είναι απλή και άμεση. Για αυτό, σε πολλές περιπτώσεις που μας επιτρέπεται, αντί να κάνουμε τροποποιήσεις πάνω στον απλό Dijkstra, κατασκευάζουμε τον αλγόριθμό μας βάση του αμφίδρομου αλγορίθμου Dijkstra.

28 22 Βασικές Εννοιες Στοχοκατευθυνόμενη αναζήτηση και ο αλγόριθμος A Αυτή η τεχνική, που έχει της ρίζες της στην Τεχνητή Νοημοσύνη, αλλάζει την προτεραιότητα των ενεργών κορυφών ώστε να αλλάξει την σειρά με την οποία τις επεξεργάζεται. Πιο συγκεκριμένα, μια στοχοκατευθυνόμενη αναζήτηση προσθέτει στην προτεραιότητα d(u) ένα δυναμικό(potential): π : V R + 0 που εξαρτάται από την τελική κορυφή t της αναζήτησης. Η αλλαγμένη προτεραιότητα μιας κορυφής u V είναι τότε d(u) + π(u). Με ένα κατάλληλο δυναμικό, η αναζήτηση μπορεί να κατευθυνθεί πιο γρήγορα προς την τελική κορυφή, μειώνοντας τον χρόνο εκτέλεσης, ενώ ο αλγόριθμος επιστρέφει και πάλι την σωστή συντομότερη διαδρομή. Διαισθητικά, μπορεί κανείς να φανταστεί μια διαδρομή σε ένα δίκτυο ως ένα περίπατο σε μια φυσική τοποθεσία. Οταν προστίθεται ένα δυναμικό, μια περιοχή αποκτά μεγαλύτερο ύψος. Αν το δυναμικό είναι μικρό κοντά στην τελική κορυφή, δημιουργείται μια πεδιάδα γύρω από αυτήν. Επειδή ένας περίπατος είναι πιο εύκολος προς τα κάτω παρά προς τα πάνω, είναι πιο πιθανό να καταλήξει κανείς στην κορυφή πιο γρήγορα από ότι χωρίς το δυναμικό. Για την ορθότητα της αναζήτησης θα πρέπει να χρησιμοποιήσουμε μια διαφορετική διατύπωση. Ισοδύναμα με την αλλαγή της προτεραιότητας των κορυφών, μπορεί κανείς να αλλάξει τα κόστη των ακμών έτσι ώστε η αναζήτηση να κατευθύνεται πιο γρήγορα προς τον στόχο t. Σε αυτή την περίπτωση το κόστος wt των ακμών (u, w) E αντικαθίσταται από το επαγόμενο κόστος r(u, w) = wt(u, w) π(u) + π(w). Τότε, για δύο οποιεσδήποτε κορυφές x και y, το κόστος οποιασδήποτε x-y διαδρομής αλλάζει κατά την ίδια ποσότητα, π(y) π(x). Ετσι, μια διαδρομή είναι συντομότερη διαδρομή σύμφωνα με τα κόστη wt αν και μόνο αν είναι συντομότερη διαδρομή σύμφωνα με τα κόστη r και τα δύο προβλήματα είναι ισοδύναμα. Αν όλα τα τροποποιημένα κόστη ακμών είναι μη-αρνητικά τότε μπορούμε να εκτελέσουμε τον αλγόριθμο του Dijkstra στο γράφημα με τα τροποποιημένα κόστη και να πάρουμε την ίδια συντομότερη διαδρομή σύμφωνα με τα αρχικά κόστη. Ετσι, λέμε ότι μια συνάρτηση π είναι εφικτή, αν τα επαγόμενα κόστη είναι μη-αρνητικά για όλες τις ακμές. Συνήθως χρησιμοποιούνται συναρτήσεις δυναμικού που εκτιμούν την α- πόσταση προς την τελική κορυφή. Μάλιστα, μπορεί να δειχθεί ότι αν μια συνάρτηση δυναμικού είναι εφικτή, τότε αποτελεί ένα κάτω όριο στην απόσταση προς την κορυφή t αν π(t) 0. Παρατηρούμε ότι κάθε εφικτή συνάρτηση δυναμικού μπορεί να μετατραπεί σε μια ισοδύναμη συνάρτηση δυναμικού π (u) = π(u) π(t) που είναι ένα κάτω όριο της απόστασης προς την τελική κορυφή. Ετσι μπορούμε να υποθέσουμε δίχως βλάβη της γενικότητας ότι η συ-

29 2.5 Το πρόβλημα Εύρεσης Συντομότερων Διαδρομών 23 νάρτηση δυναμικού είναι πράγματι ένα κάτω όριο. Οσο αυστηρότερο το όριο, τόσο η αναζήτηση κατευθύνεται πιο γρήγορα προς τον στόχο. Στην πραγματικότητα, αν η συνάρτηση δυναμικού είναι η απόσταση προς την τελική κορυφή, τότε η στοχοκατευθυνόμενη αναζήτηση επισκέπτεται μόνο κορυφές πάνω στην συντομότερη διαδρομή. Ευκλείδειες αποστάσεις Υποθέτουμε ότι υπάρχει μια διάταξη L : V R 2 του γραφήματος όπου το κόστος μιας ακμής σχετίζεται κάπως με την Ευκλείδεια απόσταση των άκρων της. Τότε μια εφικτή συνάρτηση δυναμικού θα μπορούσε να υπολογισθεί από την Ευκλείδεια απόσταση L(u) L(t) προς την τελική κορυφή t. Σε περίπτωση που τα κόστη των ακμών είναι πράγματι Ευκλείδειες αποστάσεις, τότε η Ευκλείδεια απόσταση L(u) L(t) είναι ήδη μια εφικτή συνάρτηση potential λόγω της τριγωνικής ανισότητας. Με αυτή τη συνάρτηση, μια ακμή που δείχνει κατευθείαν προς την τελική κορυφή αποκτά τροποποιημένο κόστος ίσο με το μηδέν, ενώ μια ακμή που δείχνει προς την άλλη κατεύθυνση αποκτά το διπλάσιο κόστος. Αν τα κόστη των ακμών δεν είναι Ευκλείδειες αποστάσεις των άκρων τους, τότε μια εφικτή συνάρτηση δυναμικού είναι η παρακάτω. Ορίζουμε ως u max την μέγιστη ταχύτητα ακμής L(u) L(w) /wt(u, w) για κάθε ακμή (u, w) E. Τότε η συνάρτηση δυναμικού μπορεί να οριστεί ώς π(u) = L(u) L(t) /u max. Η μέγιστη ταχύτητα μπορεί να υπολογιστεί από ένα βήμα προεπεξεργασίας με μια γραμμική προσπέλαση όλων των ακμών. Τέλος, αριθμητικά προβλήματα μπορούν να επιλυθούν αν η μέγιστη ταχύτητα πολλαπλασιαστεί με 1 + ɛ για ένα μικρό ɛ > 0.

30 24 Βασικές Εννοιες

31 Κεφάλαιο 3 Ιεραρχία Μνήμης και Δομές Δεδομένων Cache Oblivious Στο κεφάλαιο αυτό εισάγουμε το μοντέλο που θα χρησιμοποιηθεί για την α- νάλυση των δομών γραφημάτων και των αντίστοιχων αλγορίθμων. Παράλληλα, παρουσιάζονται δύο δομές που παίζουν βασικό ρόλο στην σχεδίαση και κατασκευή της νέας δομής γραφημάτων, ένα δέντρο (δυαδικό δέντρο με διάταξη van Emde Boas) και έναν πίνακα διατεταγμένων στοιχείων (Πίνακας Πακεταρισμένης-μνήμης) που υποστηρίζουν λειτουργίες με βέλτιστες μεταφορές μνήμης. 3.1 Ιεραρχία μνήμης και δομές δεδομένων Cache- Oblivious Στις περισσότερες θεωρητικές αναλύσεις αλγορίθμων, το μοντέλο που χρησιμοποιείται για βασική ανάλυση είναι το Random Access Machine (RAM) μοντέλο: υποθέτουμε ότι έχουμε μια μεγάλη συστοιχία μνήμης (Κύρια Μνήμη) που υ- ποστηρίζει τυχαία προσπέλαση διευθύνσεων, και μετράμε τον αριθμό απλών αναγνώσεων και εγγραφών που απαιτούνται κατά την εκτέλεση του αλγορίθμου. Αυτό το μοντέλο ήταν σχετικά ακριβές μέχρι την δεκαετία του 1980, όταν οι επεξεργαστές ήταν αρκετά αργοί, και η Κύρια Μνήμη αρκετά μικρή ώστε η ανάγνωση και η διαγραφή από την Κύρια Μνήμη να μην δημιουργεί σημαντική επιβράδυνση. Σήμερα, ωστόσο, οι επεξεργαστές διαθέτουν βαθιές ιεραρχίες κρυφής μνήμης, τουλάχιστον μια κρυφή μνήμη Επιπέδου 1 και μια Επιπέδου 2, και μάλιστα αρκετά μεγάλου μεγέθους. Ετσι, αποτρέπουν την επικάλυψη του χρόνου εκτέλεσης του αλγορίθμου από τους χρόνους πρόσβασης της Κύριας

32 26 Ιεραρχία Μνήμης και Δομές Δεδομένων Cache Oblivious Μνήμης. Αλγόριθμοι και δομές δεδομένων που μπορούν να εκμεταλλευτούν αποδοτικά την κρυφή μνήμη μπορούν να αποδώσουν πολύ πιο γρήγορους χρόνους, και η ανάλυσή μας πρέπει να το λάβει υπόψιν Αλγόριθμοι και δομές δεδομένων Cache-oblivious Ενας αλγόριθμος cache-oblivious είναι ένας αλγόριθμος σχεδιασμένος έτσι ώστε να εκμεταλλεύεται την κρυφή μνήμη ενός επεξεργαστή χωρίς να γνωρίζει το μέγεθός της (ή το μέγεθος των πλαισίων πληροφορίας της). Ενας βέλτιστος αλγόριθμος cache-oblivious είναι ένας αλγόριθμος cache-oblivious ο οποίος χρησιμοποιεί την κρυφή μνήμη βέλτιστα (με την ασυμπτωτική έννοια). Ετσι, ένας αλγόριθμος cache-oblivious έχει σχεδιαστεί να αποδίδει καλά, χωρίς μετατροπή, σε πολλαπλά συστήματα με διαφορετικά μεγέθη κρυφής μνήμης, ή για μια ιεραρχία μνήμης με πολλαπλά επίπεδα κρυφής μνήμης διαφορετικών μεγεθών. Φυσικά, το ίδιο ισχύει και για δομές δεδομένων που παρέχουν λειτουργίες σχεδιασμένες να εκτελούνται με βέλτιστο cache-oblivious τρόπο. Η ιδέα και το όνομα των αλγορίθμων cache-oblivious δημοσιεύτηκε πρώτη φορά από τον Harald Prokop κατά την μεταπτυχιακή του διπλωματική εργασία [11, 17]. Συνήθως, ένας αλγόριθμος cache-oblivious λειτουργεί αναδρομικά χρησιμοποιώντας την μέθοδο του διαίρει-και-βασίλευε, όπου το πρόβλημα υποδιαιρείται διαρκώς σε όλο μικρότερα υποπροβλήματα. Τελικά, τα υποπροβλήματα φτάνουν σε μέγεθος που μπορεί να χωρέσει ολόκληρο στην κρυφή μνήμη, ανεξάρτητα από το μέγεθός της. Για παράδειγμα, ένα βέλτιστο γινόμενο μητρώων cacheoblivious μπορεί να υπολογιστεί εάν υποδιαιρέσουμε κάθε μητρώο σε τέσσερα υπομητρώα και υπολογίσουμε τα μερικά γινόμενά τους με τρόπο πρώτα-κατάβάθος Ιδεατό μοντέλο κρυφής μνήμης Η ανάλυση αλγορίθμων και δομών δεδομένων cache-oblivious συνήθως γίνεται χρησιμοποιώντας ένα ιδεατό μοντέλο κρυφής μνήμης, που ονομάζεται μοντέλο cache-oblivious. Το μοντέλο είναι πολύ πιο εύκολο για ανάλυση από τα χαρακτηριστικά μιας πραγματικής κρυφής μνήμης (που έχει πολύπλοκους τρόπους συσχέτισης, στρατηγικές απελευθέρωσης μνήμης, κλπ.) αλλά σε πολλές περιπτώσεις είναι αποδεδειγμένα κατά ένα σταθερό παράγοντα κοντά στην απόδοση μιας πιο ρεαλιστικής κρυφής μνήμης. Πιο συγκεκριμένα, το μοντέλο cache-oblivious είναι ένα θεωρητικό μοντέλο υπολογισμού παρόμοιο με το RAM μοντέλο. Κάθε διεύθυνση μνήμης μπορεί να προσπελαστεί σε χρόνο O(1), όπως και στην Κύρια Μνήμη ενός πραγματικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. () Αποδείξτε ότι

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

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

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

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

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

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

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

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

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Εκλογή αρχηγού σε γενικά δίκτυα Προηγούμενη διάλεξη Σύγχρονα Κατανεμημένα Συστήματα Μοντελοποίηση συστήματος Πρόβλημα εκλογής αρχηγού

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

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

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

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

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

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

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

Ουρά Προτεραιότητας: Heap

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

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

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

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

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

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

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

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

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

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

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

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

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

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

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

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

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

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

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

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

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

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

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

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00 Χρήστος. Ζαρολιάγκης Τεχνολογίες Υλοποίησης Αλγορίθµων : Άσκηση 1 1 Ασκηση 1 [16.03.2016] Παράδοση : Τετάρτη 13.04.2016, 13:00 Η παρούσα άσκηση αφορά στον έλεγχο διµερότητας ενός γραφήµατος. Σκοπός της

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ Πανεπιστήμιο Στερεάς Ελλάδας Τμήμα Πληροφορικής Εξάμηνο ΣΤ ΘΕΩΡΙΑ ΓΡΑΦΩΝ 2 Η ΔΙΑΛΕΞΗ Βασικές Έννοιες Γράφων - Ορισμοί (συνέχεια) - Ισομορφισμοί-Ομοιομορφισμοί Γράφων - Πράξεις - Αναπαράσταση Γράφων (Πίνακες

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών

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

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

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

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

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

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

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

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

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

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

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

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

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

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

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

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

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

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

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

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

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

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

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

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

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

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

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

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

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

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

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

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

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

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

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

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

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

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

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

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ÌïëëÜ Ì. Á μýô Á.Ì. : 5 moll@moll.r ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΤΥΟ (ΕΡΓΑΣΤΗΡΙΟ) Ε ΕΞΑΜΗΝΟ ΕΙΣΗΓΗΤΕΣ: Χαϊδόγιαννος Χαράλαμπος ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ

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

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

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

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

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

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

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

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

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

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

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

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

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

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Διάλεξη 2: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Βραχύτερα Μονοπάτια σε γράφους - Ο αλγόριθμος Dijkstra για εύρεση της βραχύτερης απόστασης

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

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

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

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

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

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια Περιεχόμενα Μεταβατικό Κλείσιμο Συνεκτικές συνιστώσες Συντομότερα μονοπάτια Breadth First Spanning

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

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

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

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

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Δρομολόγηση Και Πολύχρωματισμός Μονοπατιών Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Εισαγωγή. Το πρόβλημα με το οποίο θα ασχοληθούμε εδώ είναι γνωστό σαν: Δρομολόγηση και Πολύ-χρωματισμός Διαδρομών (Routing

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

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

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

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