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

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

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

Transcript

1 Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2 Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου αλγόριθμου. Γενικά ένας άπληστος αλγόριθμος (greedy algorithm) κατασκευάζει μια λύση τμηματικά επιλέγοντας πάντοτε το επόμενο τμήμα το οποίο προσφέρει το πιο προφανές και άμεσο όφελος. Για κάποια προβλήματα αυτή η στρατηγική είναι καταστροφική αλλά για άλλα είναι βέλτιστη. Χαροκόπειο Πανεπιστήμιο 2/62

3 Χρονοπρογραμματισμός Διαστημάτων Είσοδος. Σύνολο αιτημάτων {1, 2,..., n}. Αίτημα i ξεκινά την χρονική στιγμή s(i) και τερματίζει την f(i). Έξοδος. To μέγιστο συμβατό υποσύνολο αιτημάτων, όπου ένα υποσύνολο είναι συμβατό εαν ανά δύο τα αιτήματα δεν επικαλύπτονται χρονικά. Χαροκόπειο Πανεπιστήμιο 3/62

4 Χρονοπρογραμματισμός Διαστημάτων a b c d e f g h Χαροκόπειο Πανεπιστήμιο 4/62

5 Χρονοπρογραμματισμός Διαστημάτων Ένας άπληστος αλγόριθμος για το πρόβλημα χρονοπρογραμματισμού διαστημάτων χρησιμοποιεί έναν απλό κανόνα για να κάνει επιλογή αιτημάτων με βάση την λογική που ακολουθεί..1 επιλέγει ένα αίτημα i 1.2 διαγράφει όλα τα αιτήματα που δεν είναι συμβατά με το i 1.3 κατόπιν επιλέγει ένα άλλο αίτημα i 2.4 διαγράφει όλα τα αιτήματα που δεν είναι συμβατά με το i 2.5 συνεχίζει έτσι μέχρι να τελειώσουν τα δυνατά αιτήματα Χαροκόπειο Πανεπιστήμιο 5/62

6 Χρονοπρογραμματισμός Διαστημάτων Ένας άπληστος αλγόριθμος για το πρόβλημα χρονοπρογραμματισμού διαστημάτων χρησιμοποιεί έναν απλό κανόνα για να κάνει επιλογή αιτημάτων με βάση την λογική που ακολουθεί..1 επιλέγει ένα αίτημα i 1.2 διαγράφει όλα τα αιτήματα που δεν είναι συμβατά με το i 1.3 κατόπιν επιλέγει ένα άλλο αίτημα i 2.4 διαγράφει όλα τα αιτήματα που δεν είναι συμβατά με το i 2.5 συνεχίζει έτσι μέχρι να τελειώσουν τα δυνατά αιτήματα Δεν μπορεί να πάρει πίσω μια επιλογή αιτήματος. Χαροκόπειο Πανεπιστήμιο 5/62

7 Χρονοπρογραμματισμός Διαστημάτων Μπορούμε να παρουσιάσουμε τον ίδιο αλγόριθμο ως εξής:.1 ταξινόμησε τα αιτήματα με βάση κάποιο κριτήριο.2 διάλεξε ένα αίτημα εαν είναι συμβατό με τα αιτήματα που έχεις ήδη διαλέξει Χαροκόπειο Πανεπιστήμιο 6/62

8 Χρονοπρογραμματισμός Διαστημάτων Μπορούμε να παρουσιάσουμε τον ίδιο αλγόριθμο ως εξής:.1 ταξινόμησε τα αιτήματα με βάση κάποιο κριτήριο.2 διάλεξε ένα αίτημα εαν είναι συμβατό με τα αιτήματα που έχεις ήδη διαλέξει Λειτουργεί σωστά ένας τέτοιος αλγόριθμος; Χαροκόπειο Πανεπιστήμιο 6/62

9 Χρονοπρογραμματισμός Διαστημάτων Μπορούμε να παρουσιάσουμε τον ίδιο αλγόριθμο ως εξής:.1 ταξινόμησε τα αιτήματα με βάση κάποιο κριτήριο.2 διάλεξε ένα αίτημα εαν είναι συμβατό με τα αιτήματα που έχεις ήδη διαλέξει Λειτουργεί σωστά ένας τέτοιος αλγόριθμος; Για να απαντήσουμε πρέπει καταρχήν να ορίσουμε τον κανόνα επιλογής των αιτημάτων. Χαροκόπειο Πανεπιστήμιο 6/62

10 Χρονοπρογραμματισμός Διαστημάτων Μικρότερος Χρόνος Έναρξης Φανταστείτε τον αλγόριθμο που επιλέγει πρώτα το αίτημα που ξεκινά πιο νωρίς. a b d c Ο αλγόριθμος θα επιλέξει πρώτα το αίτημα c ενώ η καλύτερη λύση είναι a, b, και d. Ο αλγόριθμος δεν είναι βέλτιστος! Χαροκόπειο Πανεπιστήμιο 7/62

11 Χρονοπρογραμματισμός Διαστημάτων Μικρότερου Μήκους Διάστημα Έστω ο αλγόριθμος που επιλέγει πρώτα το αίτημα που έχει την μικρότερη διάρκεια. b c a Ο αλγόριθμος θα επιλέξει πρώτα το αίτημα a ενώ η καλύτερη λύση είναι b, c. Ο αλγόριθμος δεν είναι βέλτιστος! Χαροκόπειο Πανεπιστήμιο 8/62

12 Χρονοπρογραμματισμός Διαστημάτων Αίτημα όπου f( ) είναι ελάχιστο Έστω ο αλγόριθμος που επιλέγει πρώτα το αίτημα που τελειώνει πρώτο, δηλαδή το αίτημα i όπου ο χρόνος f(i) είναι όσο το δυνατόν μικρότερος..1 διασφαλίζει ότι οι πόροι μας θα απελευθερωθούν όσο το δυνατόν πιο σύντομα.2 μεγιστοποιεί τον χρόνο που απομένει για την ικανοποίηση των άλλων αιτημάτων.3 θα αποδείξουμε πως βρίσκει την βέλτιστη λύση Χαροκόπειο Πανεπιστήμιο 9/62

13 Χρονοπρογραμματισμός Διαστημάτων Αίτημα όπου f( ) είναι ελάχιστο Συντομότερος χρόνος ολοκλήρωσης Έστω R το σύνολο όλων των αιτημάτων και A κενό while R δεν είναι κενό do Διάλεξε ένα αίτημα i R που έχει το συντομότερο χρόνο ολοκλήρωσης Πρόσθεσε το i στο σύνολο A Διάγραψε από το R το αίτημα i και όλα τα αιτήματα που δεν είναι συμβατά με το i end return το σύνολο A Χαροκόπειο Πανεπιστήμιο 10/62

14 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

15 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

16 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

17 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

18 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

19 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

20 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

21 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

22 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 11/62

23 Χρονοπρογραμματισμός Διαστημάτων Αίτημα όπου f( ) είναι ελάχιστο Πρέπει να αποδείξουμε πως ο αλγόριθμος αυτός βρίσκει όντως την βέλτιστη λύση. Ορθότητα. Καταρχήν είναι προφανές πως ο αλγόριθμος επιστρέφει ένα σύνολο αιτημάτων που είναι συμβατά. Απομένει να δείξουμε πως η λύση είναι βέλτιστη. Έστω λοιπόν για λόγους σύγκρισης ότι O είναι ένα βέλτιστο σύνολο χρονικών διαστημάτων..1 είναι υπερβολή να προσπαθήσουμε να αποδείξουμε πως A = O μιας και μπορεί να υπάρχουν πολλές βέλτιστες λύσεις.2 αρκεί να δείξουμε πως A = O Χαροκόπειο Πανεπιστήμιο 12/62

24 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Λύση αλγορίθμου. Έστω i 1,..., i k το σύνολο αιτημάτων στο A με τη σειρά με την οποία προστέθηκαν στο A. Βέλτιστη λύση. Έστω j 1,..., j m το σύνολο αιτημάτων στο O. Υποθέστε πως είναι ταξινομημένα με τη σειρά των χρονικών σημείων έναρξης και τέλους (λόγω συμβατότητας τα σημεία έναρξης έχουν την ίδια σειρά με τα σημεία τέλους). Θέλουμε να δείξουμε πως k = m. Χαροκόπειο Πανεπιστήμιο 13/62

25 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Λήμμα Για όλους τους δείκτες r k ισχύει f(i r ) f(j r ). Θα χρησιμοποιήσουμε επαγωγή. Για r = 1 ισχύει μιας και ο αλγόριθμος διαλέγει το αίτημα i 1 με τον ελάχιστο χρόνο τερματισμού. Έστω τώρα ένα r > 1 και ας θεωρήσουμε πως ότι η πρόταση είναι αληθής για r 1. Ξέρουμε δηλαδή πως f(i r 1) f(j r 1). i r 1 i r? j r 1 j r Είναι δυνατόν να συμβεί αυτό που δείχνει το παραπάνω σχήμα; Χαροκόπειο Πανεπιστήμιο 14/62

26 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης i r 1 i r? j r 1 j r Όχι γιατι ο αλγόριθμος μας θα είχε διαλέξει το j r. Πιο τυπικά μπορούμε να πούμε πως f(j r 1 ) s(j r ) αφού το O έχει συμβατά διαστήματα f(i r 1 ) f(j r 1 ) από την επαγωγική υπόθεση και άρα f(i r 1 ) s(j r ). Με άλλα λόγια το διάστημα j r ανήκει στο σύνολο R των διαθέσιμων χρονικών διαστημάτων την ώρα που ο άπληστος αλγόριθμος επιλέγει το διάστημα i r. Επειδή ο αλγόριθμος διαλέγει πάντα το μικρότερο χρόνο τερματισμού έχουμε πως f(i r ) f(j r ). Χαροκόπειο Πανεπιστήμιο 15/62

27 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Θεώρημα Ο άπληστος αλγόριθμος επιστρέφει ένα βέλτιστο σύνολο A. Χαροκόπειο Πανεπιστήμιο 16/62

28 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Θεώρημα Ο άπληστος αλγόριθμος επιστρέφει ένα βέλτιστο σύνολο A. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Χαροκόπειο Πανεπιστήμιο 16/62

29 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Θεώρημα Ο άπληστος αλγόριθμος επιστρέφει ένα βέλτιστο σύνολο A. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Αν το A δεν είναι βέλτιστο, τότε ένα βέλτιστο σύνολο O πρέπει να έχει περισσότερα αιτήματα, δηλαδή, πρέπει m > k. Χαροκόπειο Πανεπιστήμιο 16/62

30 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Θεώρημα Ο άπληστος αλγόριθμος επιστρέφει ένα βέλτιστο σύνολο A. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Αν το A δεν είναι βέλτιστο, τότε ένα βέλτιστο σύνολο O πρέπει να έχει περισσότερα αιτήματα, δηλαδή, πρέπει m > k. Χρησιμοποιώντας το προηγούμενο Λήμμα για r = k έχουμε πως f(i k ) f(j k ). Χαροκόπειο Πανεπιστήμιο 16/62

31 Χρονοπρογραμματισμός Διαστημάτων Απόδειξη Βέλτιστης Λύσης Θεώρημα Ο άπληστος αλγόριθμος επιστρέφει ένα βέλτιστο σύνολο A. Απόδειξη Θα χρησιμοποιήσουμε εις άτοπον απαγωγή. Αν το A δεν είναι βέλτιστο, τότε ένα βέλτιστο σύνολο O πρέπει να έχει περισσότερα αιτήματα, δηλαδή, πρέπει m > k. Χρησιμοποιώντας το προηγούμενο Λήμμα για r = k έχουμε πως f(i k ) f(j k ). Αφού m > k υπάρχει ένα αίτημα j k+1 στο σύνολο O. Ξέρουμε όμως πως f(j k ) s(j k+1 ) και f(i k ) f(j k ) και άρα το αίτημα j k+1 είναι διαθέσιμο όταν ο άπληστος αλγόριθμος τερματίζει. Άτοπο. Χαροκόπειο Πανεπιστήμιο 16/62

32 Χρονοπρογραμματισμός Διαστημάτων Υλοποίηση σε χρόνο O(n log n) Αρχικοποίηση..1 ταξινόμησε τα n αιτήματα κατά σειρά χρόνου τερματισμού (f(i) < f(j) όταν i < j).2 κατασκεύασε πίνακα S[1... n] όπου το S[i] περιέχει την τιμή s(i) Αλγόριθμος. Επιλέγουμε αιτήματα με επεξεργασία των χρονικών διαστημάτων κατά αύξουσα σειρά ως προς το f(i)..1 επέλεξε το πρώτο διάστημα.2 διατρέχουμε τα διαστήματα με τη σειρά μέχρι να φτάσουμε το πρώτο χρονικό διάστημα j για το οποίο s(j) f(1) και το επιλέγουμε.3 αν το πιο πρόσφατο διάστημα που έχουμε επιλέξει τελειώνει τη χρονική στιγμή f, διατρέχουμε τα διαστήματα μέχρι να φτάσουμε στο πρώτο j για το οποίο s(j) f Χαροκόπειο Πανεπιστήμιο 17/62

33 Συντομότερες Διαδρομές σε Γραφήματα Τα γραφήματα χρησιμοποιούνται για να μοντελοποιήσουν δίκτυα. Κατά συνέπεια, ένα βασικό αλγοριθμικό πρόβλημα είναι ο προσδιορισμός της συντομότερης διαδρομής μεταξύ των κόμβων ενός γραφήματος. Χαροκόπειο Πανεπιστήμιο 18/62

34 Συντομότερες Διαδρομές σε Γραφήματα Το πρόβλημα. Μας δίνεται ένα κατευθυνόμενο γράφημα G(V, E) όπου έχουμε ένα καθορισμένο κόμβο εκκίνησης s V, κάθε ακμή e E έχει μήκος l(e) 0, το οποίο δηλώνει το χρόνο (ή την απόσταση ή το κόστος) που απαιτείται για τη διάσχιση της ακμής e, για μια διαδρομή P, το μήκος της P, είναι το άθροισμα των μηκών όλων των ακμών της και συμβολίζεται ως l(p). Σκοπός είναι να προσδιορίσουμε τη συντομότερη διαδρομή από τον s προς οποιονδήποτε άλλο κόμβο του γραφήματος. Χαροκόπειο Πανεπιστήμιο 19/62

35 Ο Αλγόριθμος του Dijkstra Το 1959 ο Edsger Dijkstra πρότεινε ένα πολύ απλό άπληστο αλγόριθμο για την επίλυση του προβλήματος των συντομότερων διαδρομών μιας αφετηρίας (single-source shortest paths). Χαροκόπειο Πανεπιστήμιο 20/62

36 Ο Αλγόριθμος του Dijkstra Ο αλγόριθμος διατηρεί ένα σύνολο κορυφών S, όπου για κάθε u S η απόσταση της συντομότερης διαδρομής d(u) είναι γνωστή. Για κάθε κόμβο v V \ S προσδιορίζουμε τη συντομότερη διαδρομή που μπορεί να κατασκευαστεί αν διατρέξουμε μια διαδρομή μέσω του εξερευνημένου τμήματος S προς κάποιο κόμβο u S, και στην συνέχεια ακολουθήσουμε την ακμή (u, v). s S v V \ S Ο κόμβος που πετυχαίνει την συντομότερη διαδρομή προστίθεται στο σύνολο S. u Χαροκόπειο Πανεπιστήμιο 21/62

37 Ο Αλγόριθμος του Dijkstra Αλγόριθμος του Dijkstra S = {s} d(s) = 0 while υπάρχουν ακμές από κόμβους του S σε κόμβους του V \ S do Βρες τον κόμβο v V \ S που ελαχιστοποιεί την ποσότητα d (v) = min e=(u,v):u S d(u) + l(e) Θέσε d(v) = d (v) και πρόσθεσε τον v στο σύνολο S. end Χαροκόπειο Πανεπιστήμιο 22/62

38 Ο Αλγόριθμος του Dijkstra Αλγόριθμος του Dijkstra S = {s} d(s) = 0 while υπάρχουν ακμές από κόμβους του S σε κόμβους του V \ S do Βρες τον κόμβο v V \ S που ελαχιστοποιεί την ποσότητα d (v) = min e=(u,v):u S d(u) + l(e) Θέσε d(v) = d (v) και πρόσθεσε τον v στο σύνολο S. end Ο αλγόριθμος θεωρείται άπληστος αφού κάθε φορά που αυξάνει το μέγεθος του συνόλου S διαλέγει τον κόμβο που βρίσκεται πιο κοντά. Χαροκόπειο Πανεπιστήμιο 22/62

39 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 s Χαροκόπειο Πανεπιστήμιο 23/62

40 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

41 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

42 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

43 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

44 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

45 Ο Αλγόριθμος του Dijkstra Παράδειγμα 3 3 S 1 s Χαροκόπειο Πανεπιστήμιο 23/62

46 Ο Αλγόριθμος του Dijkstra Διαδρομές Αλγόριθμος του Dijkstra S = {s} d(s) = 0 while υπάρχουν ακμές από κόμβους του S σε κόμβους του V \ S do Βρες τον κόμβο v V \ S που ελαχιστοποιεί την ποσότητα d (v) = min e=(u,v):u S d(u) + l(e) Θέσε d(v) = d (v) και πρόσθεσε τον v στο σύνολο S. end Κάθε φορά που βάζουμε ένα κόμβο v στο σύνολο S κρατάμε την ακμή που χρησιμοποιήσαμε ώστε να σχηματίσουμε ένα δέντρο ελάχιστων διαδρομών. Έστω για ένα κόμβο v S η ακμή (u, v) που χρησιμοποιήσαμε. Το μονοπάτι P v ορίζεται αναδρομικά ως η διαδρομή P u ακολουθούμενη από την ακμή (u, v). Χαροκόπειο Πανεπιστήμιο 24/62

47 Ορθότητα Λήμμα Έστω το σύνολο S σε κάθε σημείο εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s u. Χαροκόπειο Πανεπιστήμιο 25/62

48 Ορθότητα Λήμμα Έστω το σύνολο S σε κάθε σημείο εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s u. Απόδειξη Θα χρησιμοποιήσουμε επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη αφού S = {s} και d(s) = 0. Χαροκόπειο Πανεπιστήμιο 25/62

49 Ορθότητα Λήμμα Έστω το σύνολο S σε κάθε σημείο εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s u. Απόδειξη Θα χρησιμοποιήσουμε επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη αφού S = {s} και d(s) = 0. Έστω πως ισχύει όταν S = k για κάποια τιμή k 1. Αυξάνουμε τώρα το μέγεθος του S με την προσθήκη του κόμβου v. Έστω ότι (u, v) είναι η τελική ακμή της διαδρομής s v P v. Χαροκόπειο Πανεπιστήμιο 25/62

50 Ορθότητα Λήμμα Έστω το σύνολο S σε κάθε σημείο εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s u. Απόδειξη Θα χρησιμοποιήσουμε επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη αφού S = {s} και d(s) = 0. Έστω πως ισχύει όταν S = k για κάποια τιμή k 1. Αυξάνουμε τώρα το μέγεθος του S με την προσθήκη του κόμβου v. Έστω ότι (u, v) είναι η τελική ακμή της διαδρομής s v P v. P x P y Θα δείξουμε πως οποιαδήποτε άλλη διαδρομή P από το s στο v έχει τουλάχιστον το ίδιο μήκος με την P v. Η διαδρομή P για να φτάσει στο v πρέπει να αφήσει κάπου το σύνολο S. Έστω y ο πρώτος κόμβος εκτός S και x ο αμέσως προηγούμενος. s S P u u v Χαροκόπειο Πανεπιστήμιο 25/62

51 Ορθότητα Λήμμα Έστω το σύνολο S σε κάθε σημείο εκτέλεσης του αλγορίθμου. Για κάθε u S, η διαδρομή P u είναι η συντομότερη διαδρομή s u. Απόδειξη Θα χρησιμοποιήσουμε επαγωγή ως προς το μέγεθος του S. Η περίπτωση S = 1 είναι εύκολη αφού S = {s} και d(s) = 0. Έστω πως ισχύει όταν S = k για κάποια τιμή k 1. Αυξάνουμε τώρα το μέγεθος του S με την προσθήκη του κόμβου v. Έστω ότι (u, v) είναι η τελική ακμή της διαδρομής s v P v. P x P y Θα δείξουμε πως οποιαδήποτε άλλη διαδρομή P από το s στο v έχει τουλάχιστον το ίδιο μήκος με την P v. Η διαδρομή P για να φτάσει στο v πρέπει να αφήσει κάπου το σύνολο S. Έστω y ο πρώτος κόμβος εκτός S και x ο αμέσως προηγούμενος. s S P u u v l(p ) l(p ) + l(x, y) d(x) + l(x, y) d (y) d (v) = l(p v ) µη-αρνητικά ϐάρη επαγωγή ορισµός d (y) επιλογή αλγορίθµου Χαροκόπειο Πανεπιστήμιο 25/62

52 Ο Αλγόριθμος του Dijkstra Πρώτη ανάλυση χρόνου εκτέλεσης Αλγόριθμος του Dijkstra S = {s} d(s) = 0 while υπάρχουν ακμές από κόμβους του S σε κόμβους του V \ S do Βρες τον κόμβο v V \ S που ελαχιστοποιεί την ποσότητα d (v) = min e=(u,v):u S d(u) + l(e) Θέσε d(v) = d (v) και πρόσθεσε τον v στο σύνολο S. end Μια άμεση υλοποίηση των παραπάνω χρειάζεται χρόνο O(nm) αφού για κάθε κόμβο πρέπει να βρεί την ακμή που δίνει την ελάχιστη τιμή. Χαροκόπειο Πανεπιστήμιο 26/62

53 Ο Αλγόριθμος του Dijkstra Βελτιστοποίηση.1 Οι τιμές των ελάχιστων ποσοτήτων d (v) = min d(u) + l(e) e=(u,v):u S για κάθε κόμβο v V \ S δεν είναι ανάγκη να υπολογίζονται από την αρχή. Μπορούμε να τις έχουμε αποθηκευμένες σε ένα πίνακα και κάθε φορά που προσθέτουμε έναν κόμβο στο S να ανανεώνουμε αυτές που πρέπει..2 Για να βρούμε τον κόμβο με την ελάχιστη τέτοια τιμή θα χρησιμοποιήσουμε μια ουρά προτεραιότητας. Χαροκόπειο Πανεπιστήμιο 27/62

54 Ουρές Προτεραιότητας Επανάληψη Μια ουρά προτεραιότητας είναι μια δομή δεδομένων που διατηρεί ένα σύνολο στοιχείων S, όπου κάθε στοιχείο v S έχει μια συσχετισμένη τιμή key(v) που υποδηλώνει την προτεραιότητα του στοιχείου v. Μικρότερα κλειδιά αντιπροσωπεύουν υψηλότερες προτεραιότητες. Χαροκόπειο Πανεπιστήμιο 28/62

55 Ουρές Προτεραιότητας Επανάληψη Λειτουργίες. Μια ουρά προτεραιότητας Q υποστηρίζει τα εξής: Insert(Q, x, k) -- εισαγωγή του στοιχείου x με κλειδί k ExtractMin(Q) -- επιστροφή και διαγραφή του στοιχείου με το μικρότερο κλειδί (μεγαλύτερη προτεραιότητα) FindMin(Q) -- επιστροφή του στοιχείου με το μικρότερο κλειδί DecreaseKey(Q, x, k ) -- μειώνει το κλειδί του στοιχείου x σε k (αύξηση προτεραιότητας) IsEmpty(Q) -- έλεγχος κενής ουράς Χαροκόπειο Πανεπιστήμιο 29/62

56 Υλοποίηση Ουράς Προτεραιότητας με Σωρό Επανάληψη Insert(Q, x, k) -- εισαγωγή του στοιχείου x με κλειδί k. Εαν ο σωρός έχει n στοιχεία πέρνει χρόνο O(log n). ExtractMin(Q) -- επιστροφή και διαγραφή του στοιχείου με το μικρότερο κλειδί (μεγαλύτερη προτεραιότητα). Εαν ο σωρός έχει n στοιχεία πέρνει χρόνο O(log n). FindMin(Q) -- επιστροφή του στοιχείου με το μικρότερο κλειδί. Πέρνει χρόνο O(1). DecreaseKey(Q, x, k ) -- μειώνει το κλειδί του στοιχείου x σε k (αύξηση προτεραιότητας). Εαν ο σωρός έχει n στοιχεία πέρνει χρόνο O(log n). IsEmpty(Q) -- έλεγχος κενής ουράς. Πέρνει χρόνο O(1). Χαροκόπειο Πανεπιστήμιο 30/62

57 Ο Αλγόριθμος του Dijkstra Αλγόριθμος του Dijkstra S θέσε d[v] = για κάθε v V έστω Q η ουρά προτεραιότητας Insert(Q, s, 0) while υπάρχουν κόμβοι στην Q do u ExtractMin(Q) S S {u} for κάθε κόμβο v όπου (u, v) E do if d[v] = then Insert(Q, v, d[u] + l(u, v)) d[v] d[u] + l(u, v) else if d[u] + l(u, v) < d[v] then DecreaseKey(Q, v, d[u] + l(u, v)) d[v] d[u] + l(u, v) end end end end Χαροκόπειο Πανεπιστήμιο 31/62

58 Dijkstra Χρόνος Εκτέλεσης Ο αλγόριθμος χρησιμοποιεί μια ουρά προτεραιότητας και ένα πίνακα με τιμές για κάθε κόμβο. Εκτελεί το πολύ.1 n φορές την λειτουργία ExtractMin() αφού κάθε φορά που την εκτελούμε έχουμε υπολογίσει την ελάχιστη απόσταση προς ακόμα ένα κόμβο.2 m φορές την λειτουργία DecreaseKey() αφού αυτή η λειτουργία συμβαίνει μια φορά για κάθε ακμή e = (u, v) όταν ο κόμβος u προστίθεται στο σύνολο S Χαροκόπειο Πανεπιστήμιο 32/62

59 Dijkstra Χρόνος Εκτέλεσης λειτουργία PQ Dijkstra Binary Heap Fibonacci Heap 1 Insert n log n 1 ExtractMin n log n log n DecreaseKey m log n 1 IsEmpty n 1 1 Σύνολο m log n m + n log n 1 amortized bounds Χαροκόπειο Πανεπιστήμιο 33/62

60 Ελάχιστο Γεννητικό Δέντρο Minimum Spanning Tree Έστω ένα συνεκτικό γράφημα G = (V, E) όπου κάθε ακμή e E έχει ένα πραγματικό βάρος c e 0. Ένα ελάχιστο γεννητικό δέντρο (MST) είναι ένα υποσύνολο ακμών T E όπου T είναι ένα συνεκτικό δέντρο και το άθροισμα των βαρών των ακμών του δέντρου είναι ελάχιστο. Χαροκόπειο Πανεπιστήμιο 34/62

61 Ελάχιστο Γεννητικό Δέντρο Minimum Spanning Tree Έστω ένα συνεκτικό γράφημα G = (V, E) όπου κάθε ακμή e E έχει ένα πραγματικό βάρος c e 0. Ένα ελάχιστο γεννητικό δέντρο (MST) είναι ένα υποσύνολο ακμών T E όπου T είναι ένα συνεκτικό δέντρο και το άθροισμα των βαρών των ακμών του δέντρου είναι ελάχιστο Χαροκόπειο Πανεπιστήμιο 34/62

62 Ελάχιστο Γεννητικό Δέντρο Minimum Spanning Tree Έστω ένα συνεκτικό γράφημα G = (V, E) όπου κάθε ακμή e E έχει ένα πραγματικό βάρος c e 0. Ένα ελάχιστο γεννητικό δέντρο (MST) είναι ένα υποσύνολο ακμών T E όπου T είναι ένα συνεκτικό δέντρο και το άθροισμα των βαρών των ακμών του δέντρου είναι ελάχιστο Το γράφημα με n κόμβους και όλες τις ( n 2) ακμές έχει n n 2 συνεκτικά δέντρα (Cayley's Theorem, 1889). Άρα η λύση ωμής βίας αποκλείεται. Χαροκόπειο Πανεπιστήμιο 34/62

63 Εφαρμογές MST Το MST πρόβλημα είναι πάρα πολύ σημαντικό με εφαρμογές σε πολλά πεδία..1 σχεδίαση δικτύων τηλεφωνικό, ηλεκτρικό, υδραυλικό, υπολογιστών, δρόμων.2 προσεγγιστικούς αλγορίθμους για "δύσκολα" προβλήματα traveling salesman problem steiner tree problem.3 εμφανίζεται ως υποπρόβλημα στην λύση διαφόρων άλλων προβλημάτων Χαροκόπειο Πανεπιστήμιο 35/62

64 Παράδειγμα Εφαρμογής MST Ένας πάροχος έχει κάποια data centers και θέλει να τα συνδέσει μεταξύ τους με οπτικές ίνες, έτσι ώστε όλα τα data centers να μπορούν να επικοινωνούν μεταξύ τους Οι ακμές είναι οι δυνατές συνδέσεις που μπορούμε να κάνουμε. Το βάρος κάθε ακμής είναι το κόστος της ακμής (είτε κόστος κατασκευής, είτε κόστος επικοινωνίας, κ.τ.λ. ). Χαροκόπειο Πανεπιστήμιο 36/62

65 Παράδειγμα Εφαρμογής MST Ένας πάροχος έχει κάποια data centers και θέλει να τα συνδέσει μεταξύ τους με οπτικές ίνες, έτσι ώστε όλα τα data centers να μπορούν να επικοινωνούν μεταξύ τους Οι ακμές είναι οι δυνατές συνδέσεις που μπορούμε να κάνουμε. Το βάρος κάθε ακμής είναι το κόστος της ακμής (είτε κόστος κατασκευής, είτε κόστος επικοινωνίας, κ.τ.λ. ). Χαροκόπειο Πανεπιστήμιο 36/62

66 Άπληστοι Αλγόριθμοι για MST Μπορούμε εύκολα να σκεφτούμε διάφορους άπληστους αλγορίθμους για το πρόβλημα..1 Ένας απλός αλγόριθμος ξεκινά χωρίς καθόλου ακμές και δομεί ένα γεννητικό δέντρο με διαδοχική εισαγωγή ακμών από το E κατά αύξουσα σειρά κόστους. Εαν μια ακμή δημιουργεί κύκλο απλά απορρίπτεται. Αυτός είναι ο αλγόριθμος του Kruskal..2 Ένας άλλος απλός αλγόριθμος είναι παρόμοιος με τον αλγόριθμο του Dijkstra. Διατηρούμε ένα σύνολο S V για το οποίο έχουμε ήδη κατασκευάσει ένα γεννητικό δέντρο και προσθέτουμε την πιο φτηνή ακμή μεταξύ των S και V \ S. Ο αλγόριθμος ξεκινά με S = {s} όπου s V είναι οποιοσδήποτε κόμβος. Αυτός είναι ο αλγόριθμος του Prim. Θα δούμε πως και οι δύο αυτοί αλγόριθμοι παράγουν βέλτιστες λύσεις. Χαροκόπειο Πανεπιστήμιο 37/62

67 Ιδιότητα Τομής Cut Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω S V ένα υποσύνολο κόμβων διάφορο του κενού και έστω e = (v, w) η ακμή ελάχιστου κόστους με v S και w V \ S. Κάθε ελάχιστο γεννητικό δέντρο (MST) θα περιέχει την ακμή e. Χαροκόπειο Πανεπιστήμιο 38/62

68 Ιδιότητα Τομής Cut Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω S V ένα υποσύνολο κόμβων διάφορο του κενού και έστω e = (v, w) η ακμή ελάχιστου κόστους με v S και w V \ S. Κάθε ελάχιστο γεννητικό δέντρο (MST) θα περιέχει την ακμή e. S v e w v e w V \ S Χαροκόπειο Πανεπιστήμιο 38/62

69 Ιδιότητα Τομής Cut Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω S V ένα υποσύνολο κόμβων διάφορο του κενού και έστω e = (v, w) η ακμή ελάχιστου κόστους με v S και w V \ S. Κάθε ελάχιστο γεννητικό δέντρο (MST) θα περιέχει την ακμή e. S v e w v e w V \ S Απόδειξη Έστω T ένα MST που δεν περιέχει την e. Υπάρχει διαδρομή μεταξύ v και w, η οποία έστω πως περνάει την τομή με την ακμή e = (v, w ). Χαροκόπειο Πανεπιστήμιο 38/62

70 Ιδιότητα Τομής Cut Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω S V ένα υποσύνολο κόμβων διάφορο του κενού και έστω e = (v, w) η ακμή ελάχιστου κόστους με v S και w V \ S. Κάθε ελάχιστο γεννητικό δέντρο (MST) θα περιέχει την ακμή e. S v e w v e w V \ S Απόδειξη Έστω T ένα MST που δεν περιέχει την e. Υπάρχει διαδρομή μεταξύ v και w, η οποία έστω πως περνάει την τομή με την ακμή e = (v, w ). Το σύνολο ακμών T = T \ {e } {e} έχει μικρότερο κόστος. Επίσης είναι συνεκτικό και δεν περιέχει κύκλους. Χαροκόπειο Πανεπιστήμιο 38/62

71 Ιδιότητα Τομής Cut Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω S V ένα υποσύνολο κόμβων διάφορο του κενού και έστω e = (v, w) η ακμή ελάχιστου κόστους με v S και w V \ S. Κάθε ελάχιστο γεννητικό δέντρο (MST) θα περιέχει την ακμή e. S v e w v e w V \ S Απόδειξη Έστω T ένα MST που δεν περιέχει την e. Υπάρχει διαδρομή μεταξύ v και w, η οποία έστω πως περνάει την τομή με την ακμή e = (v, w ). Το σύνολο ακμών T = T \ {e } {e} έχει μικρότερο κόστος. Επίσης είναι συνεκτικό και δεν περιέχει κύκλους. Άτοπο. Χαροκόπειο Πανεπιστήμιο 38/62

72 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. Χαροκόπειο Πανεπιστήμιο 39/62

73 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. S v e w C v e w V \ S Χαροκόπειο Πανεπιστήμιο 39/62

74 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. S v e w C v e w V \ S Απόδειξη Έστω T ένα MST που περιέχει την e. Διαγράφοντας την e από το T, χωρίζουμε τους κόμβους σε δύο υποσύνολα S και V \ S. Χαροκόπειο Πανεπιστήμιο 39/62

75 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. S v e w C v e w V \ S Απόδειξη Έστω T ένα MST που περιέχει την e. Διαγράφοντας την e από το T, χωρίζουμε τους κόμβους σε δύο υποσύνολα S και V \ S. Ακολουθώντας τον κύκλο C από v προς w μπορούμε να βρούμε μια ακμή e που περνάει την τομή (S, V \ S). Αυτή η ακμή έχει βάρος μικρότερο της e από την υπόθεση. Χαροκόπειο Πανεπιστήμιο 39/62

76 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. S v e w C v e w V \ S Απόδειξη Έστω T ένα MST που περιέχει την e. Διαγράφοντας την e από το T, χωρίζουμε τους κόμβους σε δύο υποσύνολα S και V \ S. Ακολουθώντας τον κύκλο C από v προς w μπορούμε να βρούμε μια ακμή e που περνάει την τομή (S, V \ S). Αυτή η ακμή έχει βάρος μικρότερο της e από την υπόθεση. Το σύνολο ακμών T = T \ {e} {e } έχει μικρότερο κόστος. Επίσης είναι συνεκτικό και δεν περιέχει κύκλους. Χαροκόπειο Πανεπιστήμιο 39/62

77 Ιδιότητα Κύκλου Cycle Property Λήμμα Υποθέστε πως όλα τα βάρη των ακμών είναι διαφορετικά. Έστω C ένας κύκλος του γραφήματος G(V, E), και έστω ότι η ακμή e = (v, w) E είναι η πιο ακριβή ακμή που ανήκει στον C. Τότε η ακμή e δεν ανήκει σε κανένα ελάχιστο γεννητικό δέντρο (MST) του G. S v e w C v e w V \ S Απόδειξη Έστω T ένα MST που περιέχει την e. Διαγράφοντας την e από το T, χωρίζουμε τους κόμβους σε δύο υποσύνολα S και V \ S. Ακολουθώντας τον κύκλο C από v προς w μπορούμε να βρούμε μια ακμή e που περνάει την τομή (S, V \ S). Αυτή η ακμή έχει βάρος μικρότερο της e από την υπόθεση. Το σύνολο ακμών T = T \ {e} {e } έχει μικρότερο κόστος. Επίσης είναι συνεκτικό και δεν περιέχει κύκλους. Άτοπο. Χαροκόπειο Πανεπιστήμιο 39/62

78 Αλγόριθμος του Prim Αλγόριθμος του Prim για MST Διάλεξε έναν οποιοδήποτε κόμβο s V S {s}. T while S V do διάλεξε την ακμή e = (u, v) με ελάχιστο κόστος όπου u S και v V \ S T T {e} end return το σύνολο T Χαροκόπειο Πανεπιστήμιο 40/62

79 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

80 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

81 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

82 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

83 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

84 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

85 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

86 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

87 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

88 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

89 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

90 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

91 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

92 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

93 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

94 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

95 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

96 Αλγόριθμος του Prim Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 41/62

97 Αλγόριθμος του Prim Ορθότητα Θεώρημα Ο αλγόριθμος του Prim παράγει ένα ελάχιστο γεννητικό δέντρο του G. Απόδειξη Προκύπτει απευθείας από την ιδιότητα τομής (cut property) αφού ο αλγόριθμος προσθέτει πάντα την ακμή με ελάχιστο κόστος που περνάει μια τομή (S, V \ S). Χαροκόπειο Πανεπιστήμιο 42/62

98 Αλγόριθμος του Prim Υλοποίηση Η υλοποίηση του αλγορίθμου του Prim είναι παρόμοια με την υλοποίηση του αλγορίθμου του Dijkstra. δεδομένου του συνόλου S κάθε κόμβος έχει ένα κόστος "προσάρτησης" το κόστος προσάρτησης του κόμβου v V \ S είναι π(v) = min c e e=(u,v):u S πρέπει να μπορούμε να διαλέξουμε τον κόμβο v V \ S με το ελάχιστο κόστος προσάρτησης επίσης πρέπει να μπορούμε να ανανεώσουμε τα κόστη προσάρτησης κάθε φορά που αυξάνουμε το μέγεθος του S κατά 1. Θα χρησιμοποιήσουμε πάλι ουρά προτεραιότητας και προτεραιότητα το κόστος προσάρτησης. Χαροκόπειο Πανεπιστήμιο 43/62

99 Υλοποίηση του αλγορίθμου του Prim Αλγόριθμος του Prim for κάθε κόμβο v V do d[v] = end έστω Q η ουρά προτεραιότητας διάλεξε οποιονδήποτε κόμβο s V for κάθε ακμή e = (s, u) E do Insert(Q, u, c e ) d[u] c e end S = {s} while η ουρά Q δεν είναι άδεια do u ExtractMin(Q) S S {u} for κάθε κόμβο v όπου e = (u, v) E do if d[v] = then Insert(Q, v, c e ) d[v] c e else if c e < d[v] then DecreaseKey(Q, v, c e) d[v] c e end end end end Χαροκόπειο Πανεπιστήμιο 44/62

100 Ο Αλγόριθμος του Prim Ανάλυση Χρόνου Ο αλγόριθμος εκτελεί το πολύ n λειτουργίες Insert στην ουρά, το πολύ n λειτουργίες ExtractMin και το πολύ m λειτουργίες DecreaseKey. Με την χρήστη ως δυαδικού σωρού για ουρά προτεραιότητας ο αλγόριθμος τρέχει σε χρόνο O(m log n). Χαροκόπειο Πανεπιστήμιο 45/62

101 Αλγόριθμος του Kruskal Αλγόριθμος του Kruskal για MST Ταξινόμησε τις ακμές σε αύξουσα σειρά με βάση τα βάρη c e T while δεν έχουμε δει όλες τις ακμές do έστω e η επόμενη ακμή στην ταξινομημένη σειρά if T {e} δεν περιέχει κύκλο then T T {e} end end return το σύνολο T Χαροκόπειο Πανεπιστήμιο 46/62

102 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

103 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

104 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

105 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

106 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

107 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

108 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

109 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

110 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

111 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

112 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

113 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

114 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

115 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

116 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

117 Αλγόριθμος του Kruskal Παράδειγμα Εκτέλεσης Χαροκόπειο Πανεπιστήμιο 47/62

118 Αλγόριθμος του Kruskal Ορθότητα Θεώρημα Ο αλγόριθμος του Kruskal παράγει ένα ελάχιστο γεννητικό δέντρο του G. Απόδειξη Θα εξετάσουμε τις ακμές με την σειρά που τις εξετάζει και ο αλγόριθμος. Έστω λοιπόν η ακμή e = (v, w) E την ώρα που ο αλγόριθμος εξετάζει την ένταξη της στο δέντρο e Περίπτωση 1. Εαν η ακμή δημιουργεί κύκλο, τότε είναι η πιο ακριβή ακμή του κύκλου (γιατί;) και άρα από την ιδιότητα κύκλου δεν ανήκει σε κανένα MST. Χαροκόπειο Πανεπιστήμιο 48/62

119 Αλγόριθμος του Kruskal Ορθότητα Θεώρημα Ο αλγόριθμος του Kruskal παράγει ένα ελάχιστο γεννητικό δέντρο του G. Απόδειξη Θα εξετάσουμε τις ακμές με την σειρά που τις εξετάζει και ο αλγόριθμος. Έστω λοιπόν η ακμή e = (v, w) E την ώρα που ο αλγόριθμος εξετάζει την ένταξη της στο δέντρο. S v e w Περίπτωση 2. Εαν η ακμή δεν δημιουργεί κύκλο τότε ας ορίσουμε το σύνολο S ως το σύνολο των κόμβων για τους οποίους ο κόμβος v έχει διαδρομή. Η ακμή e είναι η ελάχιστου κόστους ακμή με ακριβώς ένα κόμβο στο σύνολο S και άρα ανήκει στο MST λόγω ιδιότητας τομής. Χαροκόπειο Πανεπιστήμιο 49/62

120 Αλγόριθμος του Kruskal Υλοποίηση Μια αποδοτική υλοποίηση του αλγορίθμου χρειάζεται δύο μέρη:.1 ταξινόμηση ακμών στην γενική περίπτωση χρειάζεται χρόνο O(m log m) = O(m log n).2 αναγνώριση κύκλων μπορούμε να ελέγχουμε για ύπαρξη κύκλων εκτελώντας διάσχιση DFS είναι όμως πολύ αργό μιας και οδηγεί σε O(n) χρόνο για έναν έλεγχο και άρα σε O(nm) αλγόριθμο θα δούμε μια καινούρια δομή δεδομένων που μας βοηθάει Χαροκόπειο Πανεπιστήμιο 50/62

121 Η Δομή Union-Find Η δομή Union-Find μας επιτρέπει να διατηρήσουμε ξένα σύνολα (όπως για παράδειγμα οι συνεκτικές συνιστώσες ενός γραφήματος). Η δομή μας παρέχει 3 βασικές λειτουργίες.1 MakeSet(x) -- δημιουργεί το σύνολο {x}.2 Find(x) -- επιστρέφει το όνομα (έναν αντιπρόσωπο) του συνόλου που περιέχει το στοιχείο x.3 Union(x, y) -- συγχωνεύει τα ξένα σύνολα στα οποία ανήκουν τα στοιχεία x και y Όταν μιλάμε για το όνομα ενός συνόλου, έχουμε αρκετή ελευθερία. Αυτό που μας ενδιαφέρει είναι να είναι συνεπή, με την έννοια πως Find(v) και Find(w) πρέπει να επιστρέφουν το ίδιο όνομα αν τα v και w ανήκουν στο ίδιο σύνολο. Χαροκόπειο Πανεπιστήμιο 51/62

122 Αλγόριθμος του Kruskal Με δομή Union-Find Αλγόριθμος του Kruskal για MST Ταξινόμησε τις ακμές σε αύξουσα σειρά με βάση τα βάρη c e T for v V do MakeSet(v) end while δεν έχουμε δει όλες τις ακμές do έστω e = (v, w) η επόμενη ακμή στην ταξινομημένη σειρά if Find(v) Find(w) then T T {e} Union(v, w) end end return το σύνολο T Χαροκόπειο Πανεπιστήμιο 52/62

123 Υλοποίηση της Δομής Union-Find Θα δείξουμε μια υλοποίηση με δείκτες. κάθε σύνολο θα είναι ένα προσανατολισμένο δέντρο κόμβοι του δέντρου είναι τα στοιχεία του συνόλου (χωρίς κάποια ιδιαίτερη σειρά) κάθε κόμβος έχει ένα γονικό δείκτη που τελικά οδηγεί στη ρίζα του δέντρου το στοιχείο στη ρίζα του δέντρου είναι ο αντιπρόσωπος ή το όνομα του συνόλου ο γονικός δείκτης στην ρίζα δείχνει στον εαυτό του για λόγους που θα προκύψουν σύντομα κάθε κόμβος γνωρίζει το ύψος (ή το μέγεθος) του υποδέντρου που κρέμεται από αυτόν Χαροκόπειο Πανεπιστήμιο 53/62

124 Υλοποίηση της Δομής Union-Find e eg k f r w x y Αναπαράσταση προσανατολισμένου δέντρου τριών συνόλων.1 {e}.2 {g, f}.3 {k, r, w, x, y} Χαροκόπειο Πανεπιστήμιο 54/62

125 Υλοποίηση της Δομής Union-Find MakeSet(x) π(x) = x rank(x) = 0 Η MakeSet(x) απλά δημιουργεί ένα κόμβο ο οποίος δείχνει στον εαυτό του. Find(x) while x π(x) do x = π(x) end return x Η Find(x) ξεκινά από τον κόμβο του στοιχείου x και διασχίζει το δέντρο προς τα πάνω μέχρι να βρει και να επιστρέψει την ρίζα. Η ρίζα είναι το όνομα ή ο αντιπρόσωπος του συνόλου στο οποίο ανήκει το στοιχείο x. Χαροκόπειο Πανεπιστήμιο 55/62

126 Υλοποίηση της Δομής Union-Find Union by Rank Η υλοποίηση της Union(x, y) γίνεται εύκολα.1 βρίσκουμε τους δύο αντιπροσώπους με Find(x) και Find(y).2 κρεμάμε το ένα δέντρο από το άλλο.3 για να μην καταλήξουμε σε δέντρα με μεγάλο ύψος (το οποίο καθυστερεί τον χρόνο της αναζήτησης) κρεμάμε το μικρότερο δέντρο κάτω από τη ρίζα του μεγαλύτερου Union(x,y) r x = Find(x) r y = Find(y) if r x = r y then return end if rank(r x ) > rank(r y ) then π(r y ) = r x else π(r x ) = r y if rank(r x) = rank(r y) then rank(r y ) = rank(r y ) + 1 end end Χαροκόπειο Πανεπιστήμιο 56/62

127 Union-Find Παράδειγμα MakeSet(a), MakeSet(b),, MakeSet(g) a 0 b 0 c 0 d 0 e 0 f 0 g 0 Union(a,d), Union(b,e), Union(c,f) d 1 e 1 f 1 g 0 a 0 b 0 c 0 Χαροκόπειο Πανεπιστήμιο 57/62

128 Union-Find Παράδειγμα Union(a,d), Union(b,e), Union(c,f) d 1 e 1 f 1 g 0 a 0 b 0 c 0 Union(c,g), Union(e,a) d 2 f 1 a 0 e 1 c 0 g 0 b 0 Χαροκόπειο Πανεπιστήμιο 57/62

129 Union-Find Παράδειγμα Union(c,g), Union(e,a) d 2 f 1 a 0 e 1 c 0 g 0 b 0 Union(b,g) d 2 a 0 e 1 f 1 b 0 c 0 g 0 Χαροκόπειο Πανεπιστήμιο 57/62

130 Union-Find by Rank Χρόνοι Εκτέλεσης.1 η MakeSet(x) έχει προφανώς σταθερό χρόνο εκτέλεσης O(1).2 η συνάρτηση Find(x) εξαρτάται από το ύψος του δέντρου όπου βρίσκεται το στοιχείο x.3 η συνάρτηση Union(a, b) το ίδιο Θα δούμε τώρα γιατί κρατάμε σε κάθε κόμβο την τάξη (rank) που είναι το ύψος του υποδέντρου το οποίο έχει ρίζα τον κόμβο αυτό. Χαροκόπειο Πανεπιστήμιο 58/62

131 Union-Find by Rank Ιδιότητες Τάξεων (rank) Ιδιότητα Για έναν κόμβο x έχουμε rank(x) < rank(π(x)). Χαροκόπειο Πανεπιστήμιο 59/62

132 Union-Find by Rank Ιδιότητες Τάξεων (rank) Ιδιότητα Ένας ριζικός κόμβος τάξης k έχει τουλάχιστον 2 k κόμβους στο δέντρο του. Απόδειξη Θα χρησιμοποιήσουμε επαγωγή στην τάξη του κόμβου. Για k = 0 και k = 1 είναι προφανές αφού έχει αντίστοιχα 1 και 2 κόμβους στο δέντρο. Έστω πως ισχύει για k 1. Για να δημιουργηθεί ένας κόμβος τάξης k πρέπει να ενωθούν κόμβοι τάξης k 1. Το δέντρο που προκύπτει έχει (λόγω υπόθεσης επαγωγής) τουλάχιστον 2 2 k 1 = 2 k κόμβους. Η ιδιότητα αυτή ισχύει και για μη ριζικούς κόμβους, αφού κάθε κόμβος ήταν ρίζα κάποτε. Μόλις ένας κόμβος πάψει να είναι ρίζα, η τάξη του αλλά και ο αριθμός των απογόνων του δεν αλλάζει. Χαροκόπειο Πανεπιστήμιο 59/62

133 Union-Find by Rank Ιδιότητες Τάξεων (rank) Λόγω της πρώτης ιδιότητας ένα στοιχείο έχει το πολύ έναν πρόγονο τάξης k. Αυτό σημαίνει πως διαφορετικοί κόμβοι τάξης k δεν μπορούν να έχουν κοινούς απογόνους. Καταλήγουμε λοιπόν στο εξής συμπέρασμα. Ιδιότητα Αν συνολικά υπάρχουν n στοιχεία, τότε μπορεί να υπάρχουν το πολύ n κόμβοι 2 τάξης k. k Η τελευταία ιδιότητα σημαίνει πως η μέγιστη δυνατή τάξη είναι log n, και άρα όλα τα δέντρα έχουν ύψος log n. Χαροκόπειο Πανεπιστήμιο 59/62

134 Union-Find by Rank Χρόνοι Εκτέλεσης.1 η MakeSet(x) έχει προφανώς σταθερό χρόνο εκτέλεσης O(1).2 η συνάρτηση Find(x) εξαρτάται από το ύψος του δέντρου όπου βρίσκεται το στοιχείο x.3 η συνάρτηση Union(a, b) το ίδιο Το ύψος ενός δέντρου είναι log n και άρα οι Find(x) και Union(a, b) πέρνουν χρόνο O(log n). Χαροκόπειο Πανεπιστήμιο 60/62

135 Αλγόριθμος του Kruskal Με δομή Union-Find Αλγόριθμος του Kruskal για MST Ταξινόμησε τις ακμές σε αύξουσα σειρά με βάση τα βάρη c e T for v V do MakeSet(v) end while δεν έχουμε δει όλες τις ακμές do έστω e = (v, w) η επόμενη ακμή στην ταξινομημένη σειρά if Find(v) Find(w) then T T {e} Union(v, w) end end return το σύνολο T O(m log m) = O(m log n) για ταξινόμηση των ακμών O(n) χρόνο για να κατασκευάσει όλα τα αρχικά σύνολα O(m log n) για όλα τα Find(x) O(m log n) για όλα τα Union(a, b) σύνολο O(m log n) Χαροκόπειο Πανεπιστήμιο 61/62

136 Απαλοιφή Υπόθεσης για Διαφορετικά Βάρη Εαν έχουμε ένα πρόβλημα όπου υπάρχουν ακμές με ίδια βάρη "διαταρράσουμε" τα βάρη των ακμών προσθέτοντας ή αφαιρώντας διαφορετικούς, εξαιρετικά μικρούς αριθμούς με αυτό τον τρόπο όλα τα βάρη γίνονται διαφορετικά φροντίζουμε οι διαταραχή αυτή να μην αλλάζει την σχετική σειρά των δέντρων που δεν είχαν ίδιο αρχικό κόστος Αυτό είναι ίδιο με το να εκφράσουμε συμβολικά αυτή την διαταραχή, επιλύοντας τις διαφορές λεξικογραφικά: bool l e s s ( i, j ) { i f ( cost ( e i ) == cost ( e j ) ) return i < j ; else return cost ( e i ) < cost ( e j ) ; } Χαροκόπειο Πανεπιστήμιο 62/62

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

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,

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

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

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #7: Ελάχιστα Επικαλυπτικά Δένδρα, Αλγόριθμος Kruskal, Δομές Union-Find Άσκηση # 0 5 0 0 0

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι; Άπληστοι Αλγόριθμοι ΙΙI Αλγόριθμοι γραφημάτων Ελάχιστο Γεννητικό Δένδρο Παράδειγμα Κατασκευή δικτύων Οδικά, επικοινωνίας Έχουμε ένα συνεκτικό γράφημα (V,E) και ένας βάρος we σε κάθε ακμή e. Να βρεθεί υποσύνολο

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

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

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

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

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

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25. 2. Βασικά στοιχεία ανάλυσης αλγορίθμων... 57. 3. Γραφήματα...

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25. 2. Βασικά στοιχεία ανάλυσης αλγορίθμων... 57. 3. Γραφήματα... Περιεχόμενα Σχετικά με τους συγγραφείς...3 Πρόλογος... 11 Πρόλογος της ελληνικής έκδοσης... 23 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα... 25 1.1 Ένα πρώτο πρόβλημα: Ευσταθές Ταίριασμα...25 1.2

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

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

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

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

Ελάχιστο Συνδετικό Δέντρο

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

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

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

Αλγόριθμοι και Πολυπλοκότητα 7ο εξάμηνο Σ.Η.Μ.Μ.Υ. & Σ.Ε.Μ.Φ.Ε. http://www.corelab.ece.ntua.gr/courses/ 4η εβδομάδα: Εύρεση k-οστού Μικρότερου Στοιχείου, Master Theorem, Τεχνική Greedy: Knapsack, Minimum Spanning Tree, Shortest Paths

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Prim-Kruskal Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Prim-Kruskal

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

Ελάχιστο Συνδετικό Δέντρο

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

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

Ελάχιστο Συνδετικό έντρο

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #: Εύρεση Ελαχίστων Μονοπατιών σε Γραφήματα που Περιλαμβάνουν και Αρνητικά Βάρη: Αλγόριθμος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Επίλυση Προβληµάτων µε Greedy Αλγόριθµους Περίληψη Επίλυση προβληµάτων χρησιµοποιώντας Greedy Αλγόριθµους Ελάχιστα Δέντρα Επικάλυψης Αλγόριθµος του Prim Αλγόριθµος του Kruskal Πρόβληµα Ελάχιστης Απόστασης

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Dijkstra Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Jon Kleinberg και Éva Tardos, Σχεδιασμός αλγορίθμων, Εκδόσεις Κλειδάριθμος,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

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

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

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

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

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

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος των BellmanFord Ο αλγόριθµος του Dijkstra ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 61

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

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

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

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

Εισαγωγή στο Σχεδιασμό και την Ανάλυση Αλγορίθμων

Εισαγωγή στο Σχεδιασμό και την Ανάλυση Αλγορίθμων Τσουκνίδας Ιωάννης Τσαπέτη Μαρία Εισαγωγή στο Σχεδιασμό και την Ανάλυση Αλγορίθμων Σημειώσεις σύμφωνα με τις παραδόσεις του Λευτέρη Μ. Κυρούση Τμήμα Μαθηματικών Πανεπιστήμιο Αθηνών Αθήνα, 2012 ii Περιεχόμενα

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

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

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

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

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

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

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

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 4.2 Διαδρομές σε Γραφήματα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Πρόβλημα Οδικό Δίκτυο

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

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 Αλγόριθμοι και Πολυπλοκότητα 2η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Δεκέμβριος 2016 (CoReLab - NTUA) Αλγόριθμοι - 2η σειρά ασκήσεων Δεκέμβριος 2016 1 / 65 Outline 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

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

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

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

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει

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

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε Διάλεξη 4: 20.10.2016 Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος 4.1 2-συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός γραφήματος G μοιράζονται το πολύ μία κορυφή. Απόδειξη:

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 9: Άπληστοι Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα

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

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

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

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Κεφάλαιο 2 Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Σωρός και Ταξινόμηση

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

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2 Πρόβληµα (ADT) Λεξικού Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2 Πρόβληµα (ADT) Λεξικού Δυναµικά µεταβαλλόµενη συλλογή αντικειµένων που αναγνωρίζονται µε κλειδί (π.χ. κατάλογοι,

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

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) Ένωση Ξένων Συνόλων (Disjoint Sets with Union) S 1,, S k : ξένα υποσύνολα ενός συνόλου U δηλ., S i S j =, αν i j, και S 1 S k = U. Λειτουργίες που θέλουµε

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

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

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

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

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

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

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

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

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

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

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

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

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

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

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

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

d(v) = 3 S. q(g \ S) S Διάλεξη 9: 9.11.2016 Θεωρία Γραφημάτων Διδάσκων: Σταύρος Κολλιόπουλος Γραφέας: Παναγιωτίδης Αλέξανδρος Θεώρημα 9.1 Εστω γράφημα G = (V, E), υπάρχει τέλειο ταίριασμα στο G αν και μόνο αν για κάθε S υποσύνολο

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

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

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

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

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

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

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

Ασκήσεις στους Γράφους. 2 ο Σετ Ασκήσεων. Δέντρα

Ασκήσεις στους Γράφους. 2 ο Σετ Ασκήσεων. Δέντρα Ασκήσεις στους Γράφους 2 ο Σετ Ασκήσεων Δέντρα Ασκηση 1 η Ένας γράφος G είναι δέντρο αν και μόνο αν κάθε δυο κορυφές του συνδέονται με ένα μοναδικό μονοπάτι. Υποθέτουμε ότι ο γράφος G είναι δέντρο. Έστω

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Κεφάλαιο 4 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 4) 1 Θέματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι; ΘΕΜΑΤΑ ΔΕΝΔΡΩΝ ΓΙΑ ΤΙΣ ΕΞΕΤΑΣΕΙΣ ΠΛΗ0 ΑΣΚΗΣΗ Για τις ερωτήσεις - θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι; Β Ε Α 6 Δ 5 9 8 0 Γ 7 Ζ Η. Σ/Λ Δυο από τα συνδετικά

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

Ελάχιστα Γεννητορικά ένδρα

Ελάχιστα Γεννητορικά ένδρα λάχιστα Γεννητορικά ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος του Prim και ο αλγόριθµος του Kruskal για εύρεση λάχιστων Γεννητορικών ένδρων ΠΛ 23 οµές εδοµένων και Αλγόριθµοι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 2017 18 Μαΐου 2017 papagianno@ceid.upatras.gr 1 Περιεχόμενα Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί

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

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ Greedy Algorithms 1 Greedy algorithms H βασική ιδέα: Άρχισε από ένα υπο-πρόβλημα μικρού μεγέθους Επαναληπτικά,

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 12: Αλγόριθμοι Γραφημάτων/Συντομότατα μονοπάτια/αλγόριθμος Bellman-Ford/Αλγόριθμος Dijkstra/Floyd-Warshall Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες

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

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

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

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

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

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

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

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler Γράφοι (συνέχεια) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

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

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

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

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

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

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

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

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο Αλγόριθμοι και Πολυπλοκότητα 3η σειρά γραπτών και προγραμματιστικών ασκήσεων CoReLab ΣΗΜΜΥ ΕΜΠ Ιανουάριος 2017 CoReLab ΣΗΜΜΥ ΕΜΠ Αλγόριθμοι και Πολυπλοκότητα Ιανουάριος 2017 1 / 53 Outline 1 Άσκηση 1:

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

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

ΠΛΗ 20, 5 η ΟΣΣ: Θεωρία Γραφημάτων

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

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