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

Μέγεθος: 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 Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 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) με βάρη Βάρος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 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): επιστρέφει

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

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

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

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

ΕΝΟΤΗΤΑ 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 Η τεχνική διαίρει και βασίλευε αναφέρεται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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:

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

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

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

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου

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

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

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ Εύρεση ελάχιστων μονοπατιών Αλγόριθμος του ijkstra Θέματα μελέτης Πρόβλημα εύρεσης ελάχιστων μονοπατιών σε γραφήματα (shortest path problem) Αλγόριθμος

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

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

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

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

Πληρότητα της μεθόδου επίλυσης

Πληρότητα της μεθόδου επίλυσης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο, θα πρέπει να περιέχει τουλάχιστον

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

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

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

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

ΔΕΝΔΡΙΚΑ ΓΡΑΦΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 3

ΔΕΝΔΡΙΚΑ ΓΡΑΦΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 3 Δενδρικά Γραφήματα 93 ΚΕΦΑΛΑΙΟ 3 ΔΕΝΔΡΙΚΑ ΓΡΑΦΗΜΑΤΑ 3.1 Εισαγωγή 3.2 Βασικές Ιδιότητες Δένδρων 3.3 Απαρίθμηση Δένδρων 3.4 Γενετικά Δένδρα 3.5 Ελάχιστα Γενετικά Δένδρα Προαπαιτούμενη Γνώση Πολύ καλή γνώση

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

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

Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Το Πρόβλημα του Περιοδεύοντος Πωλητή - The Travelling Salesman Problem Έλενα Ρόκου Μεταδιδακτορική Ερευνήτρια ΕΜΠ Κηρυττόπουλος Κωνσταντίνος Επ. Καθηγητής ΕΜΠ Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων

Κατ οίκον Εργασία 4 Σκελετοί Λύσεων Κατ οίκον Εργασία Σκελετοί Λύσεων Άσκηση Αναδρομική διαδικασία Η αναδρομική διαδικασία RecIsheap παίρνει ως παραμέτρους τον πίνακα, το μέγεθός του καθώς και το στοιχείο το οποίο θα τύχει επεξεργασίας.

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

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

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

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 016 - I. ΜΗΛΗΣ AΛΓΟΡΙΘΜΟΙ ΓΡΑΦΩΝ ΙΙΙ Minimum Spanning Trees ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 016 - Ι. ΜΗΛΗΣ 14 - GRAPHS III - MSTs 1 Trees Ένας γράφος T = (V,

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

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 4. Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 4 Άπληστοι Αλγόριθµοι (Greedy Algorithms) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 4.1 Χρονοπρογραµµατισµός Διαστηµάτων Χρονοπρογραµµατισµός Διαστηµάτων Το πρόβληµα.

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

Θεωρία και Αλγόριθμοι Γράφων

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

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

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

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

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

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

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

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

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

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

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική Graph Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βασιλική Περιεχόμενα minimum weight spanning tree connected components transitive closure shortest paths

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

12/1/2006 Διακριτά Μαθηματικά. Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον)

12/1/2006 Διακριτά Μαθηματικά. Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον) ΣΥΝΔΕΤΙΚΑ ΔΕΝΤΡΑ Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον) δέντρο (spanning tree) του Γ εάν αυτό είναι δέντρο και περιέχει όλες τις κορυφές του Γ. Παράδειγμα. Στο παρακάτω

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91 Ε.Μ.Πoλυτεχνείο ΣΗΜΜΥ, ΣΕΜΦΕ Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Διδάσκων: Ε.Ζαχος Ονοματεπώνυμο:... Αριθμός Μητρώου:... Σχολή:... εξάμηνο:... ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 005 Σύνολο

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

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

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

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

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Επαγωγή και αναδρομή για συνεκτικά γραφήματα ΘΕ4 Αναδρομή και Επαγωγή για Γραφήματα Επαγωγή και αναδρομή για συνεκτικά γραφήματα Επαγωγή για συνεκτικά γραφήματα (με αφαίρεση κορυφής) Η αρχή της επαγωγής, με αφαίρεση κορυφής, για δεδομένη προτασιακή

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

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

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

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

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 1 Πέντε Αντιπροσωπευτικά Προβλήματα Έκδοση 1.4, 30/10/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 1.2 Πέντε Αντιπροσωπευτικά Προβλήματα 1. Χρονοπρογραμματισμός Διαστημάτων

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

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

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

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

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

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

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

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

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

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

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

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

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

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

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

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

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

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