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

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

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

Transcript

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

2 ii

3 Περιεχόμενα 1 Εισαγωγή στο σχεδιασμό αλγορίθμων Μάθημα Μαθηματικά προαπαιτούμενα Είδη συναρτήσεων Αλγόριθμος Παραδείγματα αλγορίθμων Τετραγωνικός & Κυβικός χρόνος Εισαγωγή στη θεωρία γραφημάτων Μάθημα Δένδρα με ρίζα Δομές Δεδομένων Μάθημα Ουρές προτεραιότητας Αναπαράσταση γραφημάτων Εξερεύνηση κατά πλάτος Μάθημα Εξερεύνηση Γραφημάτων Άπληστοι αλγόριθμοι Μάθημα Μάθημα Χρονοπρογραμματισμός (Scheduling) Διαδρομές & Βελτιστοποίηση Μάθημα Ελάχιστος Δενδροπαράγοντας (Γεννήτικο δένδρο)-spanning tree. 32 iii

4 iv Περιεχόμενα

5 Κεφάλαιο 1 Εισαγωγή στο σχεδιασμό αλγορίθμων 1.1 Μάθημα 1. Πέμπτη Μαθηματικά προαπαιτούμενα (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Στο μάθημα αυτό ασχολούμαστε κυρίως με συναρτήσεις 1 της μορφής f : N R +. Μας ενδιαφέρει ιδιαίτερα η ασυμπτωτική συμπεριφορά των συναρτήσεων, δηλαδή η συμπεριφορά των συναρτήσεων f(n) για μεγάλες τιμές του n N. Θα ισχύει ότι: f(n) = Og(n) αν υπάρχει c > 0 τέτοιο ώστε f(n) c g(n) τελικά. f(n) = Ωg(n) αν υπάρχει c > 0 τέτοιο ώστε f(n) c g(n) τελικά. f(n) = Θg(n) αν ισχύει ταυτόχρονα ότι: f(n) = Og(n) και f(n) = Ωg(n) Παράδειγμα Ισχύει ότι 3n 2 = O(n 2 ) και n = Θ(n) Είδη συναρτήσεων (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Μας ενδιαφέρουν τα εξής είδη συναρτήσεων: 1. Πολυωνυμικές συναρτήσεις: Είναι της μορφής f(n) = n δ, δ R Εκθετικές συναρτήσεις: Είναι της μορφής f(n) = c nδ, c > 1, δ > 0. 1 δηλαδή ακολουθίες θετικών αριθμών. 1

6 Κεφάλαιο 1. Εισαγωγή στο σχεδιασμό αλγορίθμων Σημείωση. Αν c < 1 τότε η f λέγεται υποεκθετική. 3. Λογαριθμικές: Είναι συναρτήσεις της μορφής f(x) = log b x Αλγόριθμος Ένας σωστά δομημένος αλγόριθμος θα πρέπει να πληρεί κάποιες, διαισθητικά ορισμένες, υποθέσεις: Θα πρέπει να είναι πεπερασμένος. Να δέχεται δεδομένα εισόδου (input) και Να παράγει δεδομένα εξόδου (output). Στο μάθημα αυτό ασχολούμαστε με συνδυαστικούς αλγορίθμους και με την υπολογιστική πολυπλοκότητα 2 (η οποία ορίζεται σαν μία συνάρτηση f : N R + ). Η υπολογιστική πολυπλοκότητα μπορεί να υπολογιστεί (κυρίως) με βάση: Είτε τη χειρότερη δυνατή περίπτωση, είτε τη μέση περίπτωση. Λόγω ευκολίας ασχολούμαστε γενικά με τη χειρότερη δυνατή περίπτωση. Οι πολυωνυμικοί αλγόριθμοι (ή αποδοτικοί ή ρεαλιστικοί) είναι οι πιο αποδοτικοί αλγόριθμοι Παραδείγματα αλγορίθμων Σημείωση. Ένας δεδομένος πίνακας ενός αλγόριθμου μπορεί να είναι: Μονοδιάστατος: A[1], A[2]...(όπου μέσα σε αγκύλες ο αριθμός του στοιχείου) Διδιάστατος: A[i, j] Τριδιάστατος: A[i, j, k] κ.ο.κ Άσκηση 1. Εύρεση μέγιστου στοιχείου 3. Έστω μονοδιάστατος πίνακας A[i] αποτελούμενος από αριθμούς. Να βρεθεί το μέγιστο στοιχείο του. Υπόδειξη. Ένας αλγόριθμος σε ψευδοκώδικα για την εύρεση του μέγιστου στοιχείου είναι όπως ο παρακάτω: Η πολυπλοκότητα του παραπάνω αλγορίθμου είναι O(n) γιατί κάθε βήμα της διέλευσης από τα δεδομένα εισόδου διαρκεί σταθερό χρόνο. Άσκηση 2. Συγχώνευση ταξινομημένων πινάκων: Δίνονται δύο ταξινομημένοι πίνακες 2 τον αριθμό των βημάτων που απαιτούνται για την εκτέλεση του αλγόριθμου 3 σελ στο Σχεδιασμός αλγορίθμων, Kleinberg-Tardos. 2

7 Κεφάλαιο 1. Εισαγωγή στο σχεδιασμό αλγορίθμων Algorithm 1 Υπολογισμός μέγιστου στοιχείου max(τσέπης)=a[1] for i = 2 to n do if A[i] > max(τσέπης) then Θέσε max(τσέπης) = A[i] end if end for (από εδώ και στο εξής θα εννοούνται μονοδιάστατοι) και ζητείται ένας νέος ταξινομημένος πίνακας που να περιέχει την ξένη ένωση των δύο πινάκων εισόδου. Υπόδειξη. Μία τυχαία επιλογή πινάκων είναι η εξής: A= B= Οπότε ο ζητούμενος πίνακας είναι ο Ο ανάλογος αλγόριθμος σε φυσική γλώσσα υψηλού επιπέδου είναι ο εξής: 1. Διατηρούμε ένα δείκτη current σε κάθε λίστα και του δίνουμε αρχική τιμή While και οι δύο λίστες δεν είναι κενές: 3. Έστω a i και b j τα στοιχεία που δείχνει το current. Εξάγουμε το min{a i, b j } 4. Αυξάνουμε κατά ένα την τιμή του current στον πίνακα απο τον οποίο επιλέξαμε το min. 5. EndWhile 6. Αν αδειάσει μία λίστα προσαρτούμε τα στοιχεία της άλλης στην λίστα εξόδου. Για να υπολογίσουμε την πολυπλοκότητα χρεώνουμε το κόστος στο βήμα μετακίνησης ενός στοιχείου στον υπο κατασκευή πίνακα. Άρα η πολυπλοκότητα είναι O(n+m) όπου n, m τα μήκη των αρχικών πινάκων. Αν n = m τότε θα εκτελεστούν n επαναλήψεις οπότε η πολυπλοκότητα θα είναι O(n). Ο καινούριος πίνακας έχει n + m στοιχεία,. επομένως ο αλγόριθμος θα έχει τρέξει n + m φορές. Ένας εναλλακτικός αλγόριθμος για το παραπάνω πρόβλημα είναι ο εξής: 1. Απο τον πρώτο πίνακα A[i] συγκρίνουμε το πρώτο στοιχείο με κάθε στοιχείο του πίνακα B[j] και το τοποθετούμε εκεί που πρέπει. 2. Επαναλαμβάνουμε τη διαδικασία για κάθε στοιχείο του A οπότε θα έχουμε n επαναλήψεις. Σημείωση. Η πολυπλοκότητα του παραπάνω είναι O(nm). 3

8 1.1.5 Τετραγωνικός & Κυβικός χρόνος (σελ. 81, 82. Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Κεφάλαιο 1. Εισαγωγή στο σχεδιασμό αλγορίθμων Παράδειγμα Έστω n σημεία στο επίπεδο τα οποία χαρακτηρίζονται απο συντεταγμένες (x, y). Να βρεθεί το ζεύγος των σημείων που απέχουν τη μικρότερη απόσταση. Ένας αλγόριθμος που θα σύγκρινε τα σημεία ανά δύο μεταξύ τους (αλγόριθμος ωμής βίας) θα χρειαζόταν ( ) n n(n 1) = = n2 n = O(n 2 ) Ο χρόνος O(n 2 ) ονομάζεται τετραγωνικός χρόνος εκτέλεσης. Παράδειγμα (σελ. 82. Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Έστω τώρα S 1, S 2,... S m τυχαία σύνολα τα οποία είναι υποσύνολα του {1... n} και προσπαθούμε να βρούμε ποιά ζεύγη S i, S j έχουν την ιδιότητα S i S j =. Το μέγεθος των δεδομένων εισόδου είναι το άθροισμα S 1 + S S m = n (όπου με εννοείται ο πληθάριθμος του συνόλου). Ένας αλγόριθμος που περιγράφει τη διαδικασία εύρεσης των ζητούμενων ζευγών είναι ο εξής: 1. Εξετάζουμε ένα προς ένα όλα τα ζεύγη συνόλων S i, S j. 2. Για κάθε ζεύγος συνόλων S i, S j και κάθε στοιχείο p S i εξετάζουμε αν p S j. 3. Δίνουμε απάντηση αν S i S j ανάλογα με το βήμα 2. Σημείωση. Η πολυπλοκότητα του παραπάνω αλγορίθμου είναι O(n 3 ). Άσκηση 3. Να συγκεκριμενοποιηθούν: 1. Το πλήθος των συνόλων. 2. Ο πληθάριθμος του κάθε συνόλου ώστε ο παραπάνω αλγόριθμος να χρειάζεται Ω(n 3 ) βήματα (δηλαδή τουλάχιστον n 3 βήματα εκτέλεσης). 4

9 Κεφάλαιο 2 Εισαγωγή στη θεωρία γραφημάτων 2.1 Μάθημα 2. Πέμπτη Παράδειγμα (Αλγόριθμος Πολυπλοκότητας O(n 3 )). Το παράδειγμα αυτό έρχεται σε συνέχεια του παραδείγματος και είναι η περίπτωση όπου m n (στο βιβλίο είναι m = n). Δεδομένα εισόδου: S 1,..., S n {1, 2..., n} Δεδομένα εξόδου: Τα ζεύγη των συνόλων που είναι ξένα μεταξύ τους. Ερώτηση. Τι είναι μέγεθος δεδομένων; Απάντηση. Τα δεδομένα παρίστανται στην είσοδο του αλγορίθμου κατά έναν εύλογο γενικώς αποδεκτό τρόπο. Στο προηγούμενο πρόβλημα το μέγεθος των δεδομένων εισόδου είναι n. υποθέτουμε οτι m n (στο βιβλίο m = n). Στη συγκεκριμένη περίπτωση το μέγεθος των δεδομένων εισόδου είναι Επιπλέον S 1 + S S m = N (2.1) Η πολυπλοκότητα σε αυτή την περίπτωση είναι O(N 2 ) (αυτό προκύπτει αν χρεώνουμε κάθε βήμα του αλγορίθμου στα ζεύγη των υπό εξέταση στοιχείων). Εφαρμογή:. τα 1,2 Για S 1 = {1, 2, 3}, S 2 = {4} και S 3 = {1, 2, 5} με S 1, S 2, S 3 {1, 2, 3, 4, 5} οπότε. ) θα έχουμε S 1 + S 2 + S 3 = 7 και ( 7 2 = 21 Για κάθε ζεύγος ο αλγόριθμος θα παίρνει. τα στοιχεία του πρώτου ζεύγους και θα τα συγκρίνει με τα στοιχεία του δεύτερου. Για τη διδασκαλία της θεωρίας γραφημάτων έγινε κατ εξαίρεση χρήση του βιβλίου Εισαγωγή στους αλγορίθμους, από το παράρτημα. του οποίου είναι και οι παραπομπές. Σε αυτό το κεφάλαιο κάνουμε ένα στοιχειώδες πέρασμα από τη θεωρία γραφημάτων. Οι ορισμοί είναι όλοι απλοποιημένοι και ενδέχεται να διαφοροποιούνται από σύγγραμμα 5 προσμετρώνται δύο φορές

10 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων σε σύγγραμμα. Θα μπορούσαμε απλουστευτικά να πούμε ότι γράφημα είναι μία συλλογή από τελείες και γραμμές. Οι τελείες θα λέγονται κορυφές ή κόμβους του γραφήματος και οι γραμμές θα λέγονται ακμές. Ένα γράφημα θα συμβολίζεται με G(V, E) όπου με V θα εννοούμε το σύνολο των κορυφών του και με E το σύνολο των ακμών του. Το V έχει γενικά τη μορφή V = {A 1, A 2... A n } (όπου A i σημεία του εκάστοτε χώρου) και το E είναι E = {{u, v} u V και v V, u v}. Παρατήρηση. Αν στις ακμές δώσουμε κατεύθυνση (δηλάδη E = {(u, v) u V και v V, u v}) τότε το γράφημα λέγεται κατευθυνόμενο. 1 (σελ. Π-24. Εισαγωγή στους αλγορίθμους, Cormen, Leiserson, Rivest, Stein). Δίνουμε παρακάτω μία σειρά ορισμών που θα μας χρειαστούν στη συνέχεια: Ορισμός (Διαδρομή σελ. Π-25). Μία πεπερασμένη ακολουθία απο κορυφές στην οποία κάθε ζεύγος διαδοχικών κορυφών αποτελεί ακμή ονομάζεται διαδρομή. Ορισμός (Κύκλος σελ. Π-25). Μία ακολουθία στην οποία το πρώτο και το τελευταίο στοιχείο ταυτίζονται και όλα τα στοιχεία συνδέονται μεταξύ τους με ακμές ονομάζεται κύκλος. Ορισμός (Συνεκτικό σελ. Π-25-το ονομάζει συνδεδεμένο ). Το γράφημα του οποίου όλες οι κορυφές συνδέονται ανά δύο με κάποια ακμή. Ορισμός (Συνεκτική συνιστώσα σελ. Π-25-το ονομάζει συνδεδεμένες συνιστώσες ). Το maximal σύνολο κορυφών που οποιαδήποτε δύο στοιχεία του συνδέονται με μία διαδρομή. Ορισμός (επαγώμενο γράφημα σελ. Π-26). Άν G(V, E) είναι ένα γράφημα και V V τότε το επαγόμενο γράφημα του G είναι το G (V.E ) όπου E = {{u, v} u, v V } Ορισμός (υπογράφημα σελ. Π-26). Αν G(V, E) ένα γράφημα και V V, E E τότε το G (V, E ) ονομάζεται υπογράφημα του G. 1 στη βιβλιογραφία συχνά αναφέρονται και σαν κατευθυντά γραφήματα 6

11 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Παράδειγμα Στο παραπάνω γράφημα έχουμε V = {V 1, V 2, V 3 }, E = {V 1, V 2 } και το G = (V, E ) είναι υπογράφημα του G αλλά όχι και επαγόμενο γράφημα. Πρόταση (άσκηση Β. 4-3 σελ. Π-28). Έστω G = (V, E) ένα συνεκτικό γράφημα. Τότε θα ισχύει ότι E V 1. Ορισμός (Δένδρο, σελ.π-28,29). Ένα άκυκλο, συνεκτικό γράφημα ονομάζεται δένδρο. Θεώρημα (σελ. Π-29). Έστω G = (V, E). Τα παρακάτω είναι ισοδύναμα: Το G είναι δένδρο. Οποιοιδήποτε κόμβοι του G συνδέονται μεταξύ τους μέσω μίας και μόνο μίας διαδρομής. Το G είναι συνεκτικό αλλά, αν αφαιρεθεί μία οποιαδήποτε ακμή απο το E τότε χάνει τη συνεκτικότητα του. Το G είναι συνεκτικό και ισχύει ότι E = V 1 Το G είναι άκυκλο και ισχύει ότι E = V 1 To G είναι άκυκλο αλλά αν του προσθέσουμε μία ακμή τότε θα πάψει να είναι άκυκλο. Οι αποδείξεις των ισοδυναμιών μπορούν να βρεθούν στο βιβλίο Εισαγωγη στους αλγορίθμους Δένδρα με ρίζα To μήκος της ρίζας μέχρι την κορυφή x ονομάζεται βάθος της x. 7

12 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Τα r, x 1 ονομάζονται πρόγονοι του x. Το x 1 ονομάζεται γονεϊκός κόμβος του x. Το x ονομάζεται παιδί του x 1. Τα x, y ονομάζονται αδελφοί κόμβοι. Εσωτερικοί ονομάζονται οι κόμβοι που έχουν παιδιά. Ύψος λέμε τη μεγαλύτερη απόσταση του x από φύλλο που είναι απόγονος του. Βαθμός κόμβου είναι ο αριθμός των απογόνων ενός κόμβου. Δυαδικό ονομάζεται το δένδρο που έχει το πολύ δύο παιδιά σε κάθε κόμβο. Ένα δυαδικό δένδρο με ρίζα ύψους h καλείται ισοσταθμισμένο αν και μόνο αν ικανοποιούνται οι παρακάτω δύο συνθήκες: 1. Κάθε κόμβος με βάθος γνησίως μικρότερο του h 1 έχει ακριβώς δύο τέκνα. 2. Τα φύλλα βάθους h είναι συγκεντρωμένα αριστερά Ερώτηση. Έστω τ ένα ισοσταθμισμένο δένδρο ύψους h. Πόσους κόμβους έχει? (άνω & κάτω φράγμα). Απάντηση. Σχεδιάζοντας ένα δένδρο θα είχαμε το αντίστοιχο σχήμα: 8

13 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Όπου n ο αριθμός των κόμβων και h το ύψος του δένδρου. Κάθε κόμβος έχει 2 παιδιά. Οπότε η ρίζα θα έχει 2 παιδιά, τα δύο επόμενα παιδιά θα γεννήσουν 2 2 = 4 παιδιά και τα επόμενα 4 παιδιά θα γεννήσουν 2 3 = 8 και συνεχίζοντας θα έχουμε στο n 1 επίπεδο, 2 n 1 κόμβους άρα για το: άνω φράγμα: h = 2 h+1 1 κάτω φράγμα: h = 2 h Άρα 2 h n 2 h h n < 2 h+1 h logn < h + 1 h = [log n] (2.2) Άρα σε ένα ισοσταθμισμένο δένδρο το ύψος h ισούται με [log n] όπου n ο αριθμός των κόμβων του δένδρου Δομές Δεδομένων (σελ. 87,88,89. Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Σε αυτό το κεφάλαιο θα μελετήσουμε τη χρήση δομών δεδομένων για να υλοποιήσουμε ουρές προτεραιότητας. Έστω S ένα σύνολο τότε για κάθε v S οι επιθυμητές πράξεις είναι η πρόσθεση στοιχείων, η αφαίρεση, ο εντοπισμός στοιχείου με το μικρότερο δυνατό κλειδί. Θα χρησιμοποιήσουμε ισοσταθμισμένα δένδρα με ιδιότητα ουράς. 2.2 Μάθημα 3. Παρασκευή Ουρές προτεραιότητας (σελ. 87. Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) 9

14 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Σημείωση. Αυτό το μάθημα είναι μία ευγενική χορηγία του μέλους Λις από το φορουμ και της Ιφιγένειας! Ορισμός (ουρά προτεραιότητας). Έστω ένα πεπερασμένο σύνολο S. Για κάθε στοιχείο v S υπάρχει μία τιμή key(v) η οποία υποδηλώνει την προτεραιότητα του στοιχείου v. Όσο πιο μικρό είναι το κλειδί, τόσο πιο μεγάλη η προτεραιότητα. Οι ουρές προτεραιότητας υποστηρίζουν την προσθήκη (insert), τη διαγραφή (delete/extract) και την εύρεση του στοιχείου με το μικρότερο κλειδί (find min). Το επόμενο πράγμα που θα χρειαστούμε είναι η δομή του σωρού. Για να εξηγήσουμε τη χρησιμότητα του σωρού θα δώσουμε ένα παράδειγμα από το βιβλίο Σχεδιασμός αλγόριθμων, (σελ.89). Έστω μία λίστα με n στοιχεία και έστω ότι ξεχωριστά από τη λίστα διατηρούμε ένα δείκτη min ο οποίος αποθηκεύει το μικρότερο στοιχείο. Όταν θέλουμε αφαιρούμε το μικρότερο στοιχείο. Μετά την αφαίρεση όμως, θα πρέπει να αλλάξουμε την τιμή του min ελέγχοντας όλα τα άλλα στοιχεία (λειτουργία που απαιτεί O(n) χρόνο εκτέλεσης). Ο χρόνος αυτός δε θα χρειαζόταν αν εργαζόμασταν με ταξινομημένους πίνακες. Αντίστοιχα όμως σε έναν ταξινομημένο πίνακα, αν θέλαμε να προσθέσουμε ένα στοιχείο θα έπρεπε να ελέγξουμε το κλειδί του και να το συγκρίνουμε με όλα τα άλλα για να το καταχωρίσουμε. Οπότε, είτε δουλεύαμε με ταξινομημένους πίνακες, είτε με λίστες, σε κάποια περίπτωση θα χρειαζόμασταν χρόνο O(n) είτε για την εισαγωγή, είτε για την αφαίρεση στοιχείου. Έδώ εισάγεται η έννοια του σωρού, ο οποίος συνδυάζει τα πλεονεκτήματα μιας λίστας και ενός ταξινομημένου πίνακα. Μπορούμε να φανταζόμαστε τον σωρό σαν ένα ισοσταθμισμένο δένδρο: Εικόνα 2.1: Σωρός με τη μορφή ισοσταθμισμένου δένδρου Ας υποθέσουμε τώρα ότι θέλουμε να τοποθετήσουμε το 3 στον παραπάνω σωρό. Ο πιο γρήγορος τρόπος είναι να τοποθετήσω το 3 στο τέλος, σαν φύλλο και να ελέγξω αν ικανοποιούνται οι ιδιότητες του σωρού με τη μέθοδο της φυσαλίδας, προωθώντας δηλαδή το 3 μέχρι τη σωστή θέση. Αυτό αν το σχεδιάζαμε θα έμοιαζε κάπως έτσι: 10

15 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Εικόνα 2.2: Εισαγωγή στοιχείου Εικόνα 2.3: Αναδιατάξεις Αν θέλαμε να περιγράψουμε την παραπάνω διαδικασία θα λέγαμε ότι: Εισάγουμε το στοιχείο 3 (γράφημα 1.2) Συγκρίνω το 3 με το 11 και αφού 3 11 το προωθώ. Συγκρίνω το 3 με το 5 και αφού 3 5, προωθώ. Ας υποθέσουμε τώρα ότι θέλουμε να εξάγουμε (extract) το 3 από το σωρό. Τότε o πιο γρήγορος τρόπος είναι να προωθήσουμε το κάτω δεξιά φύλλο, να ελέγξουμε την ιδιότητα και να ξαναπροωθήσουμε. Πριν προχωρήσουμε στις χρήσεις ενός σωρού θα εμβαθύνουμε λίγο περισσοτερο στην αναπαράσταση του. Αν το μήκος του σωρού είναι N τότε ο σωρός μπορεί να αναπαρασταθεί σε έναν πίνακα H με δείκτη i οποίος θα παίρνει τιμές i = 1,..., N: H= i 1 2 N Οι κόμβοι του σωρού αντιστοιχούν στις θέσεις του πίνακα, οπότε στη θέση H[1] θα είναι η ρίζα και για τον τυχαίο κόμβο i τα παιδιά είναι στις θέσεις: LeftChild(i) = 2i και Rightchild(i) = 2i + 1 Για να βοηθήσουμε στην κατανόηση της αναπαράστασης με τη μορφή πίνακα, θα αναπαραστήσουμε το γράφημα της εικόνας 2.1 με τη μορφή πίνακα: H= X Παρατηρήστε ότι τα παιδιά της ρίζας είναι τα: LeftChild(1) = 2 1 = 2 δηλαδή το στοιχείο H(2) = 4 και RightChild(1) = = 3 δηλαδή το στοιχείο H(3) = 5 ενώ τα παιδιά του 7 δηλαδή του στοιχείου H(6) του πίνακα είναι τα εξής: LeftChild(6) = 2 6 = 12 δηλαδή το στοιχείο H(12) = 16 και RightChild(6) = = 13 δηλαδή το στοιχείο H(13) = 15 Ο πατέρας ενός στοιχείου με δείκτη i του πίνακα δίνεται από τη σχέση: P arent(i) = i/2 όπου με x συμβολίζουμε το ακέραιο μέρος του x. Δίνουμε τώρα τον ορισμό του σχεδόν σωρού. 11

16 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Ορισμός Έστω H ένας πίνακας και το v είναι το στοιχείο της θέσης i (δηλαδή H(i) = v). Θα λέμε ότι ο H είναι σχεδόν σωρός 2 αν υπάρχει a > key(v) ώστε: αν στο v αποδωθεί το κλειδί a τότε θα ισχύει η ιδιότητα του σωρού. Ας φανταστούμε τώρα ότι έχουμε εισάγει ένα στοιχείο σε έναν σωρό. Η εισαγωγή του στοιχείου σαν φύλλο ενδεχομένως χάλασε την ιδιότητα του σωρού αφού το κλειδί του παιδιού μπορεί να είναι μικρότερο απο το κλειδί του γονέα. Για να διορθώσουμε τον σωρο χρησιμοποιούμε τον παρακάτω αλγόριθμο: Algorithm 2 Heapify-up(H,i) if i>1 then Έστω j = i/2 if keyh[i] < keyh[j] then αντάλλαξε H[i], H[j] Heapify-up(H,j) end if end if Η Heapify-up διορθώνει τον σωρό σε χρόνο O(log n) αν υποθέσουμε ότι ο H είναι σχεδόν σωρός και το κλειδί H[n] είναι πολύ μικρό. Έστω τώρα S σύνολο με n στοιχεία. Για να ταξινομηθεί το S σε σωρό απαιτείται Ο(n log n) χρόνος με διαδοχικά find, ExtractMin, Heapsort. Άσκηση 4. Nα γραφεί ο αλγόριθμος Heapify-down Αναπαράσταση γραφημάτων (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Η αναπαράσταση ενός γραφήματος μπορεί να γίνει με δύο τρόπους. Είτε με πίνακα γειτνίασης 3 είτε με λίστα γειτνίασης. Έστω ένα γράφημα G = (V, E) και n = V (ο αριθμός των κόμβων), m = E (ο αριθμός των ακμών). Ο πίνακας γειτνίασης του γραφήματος είναι ένας πίνακας A διάστασης n n όπου το στοιχείο A[u, v] έχει τιμή 1 αν το γράφημα περιέχει την ( ακμή ) (u, v) και 0 αν δεν την περιέχει. Ο αριθμός των ακμών m είναι το πολύ n αφού γενικά εργαζόμαστε θεωρώντας το πολύ μία ακμή μεταξύ δύο κόμβων. 2 Αντίστοιχα ο αριθμός των ακμών είναι τουλάχιστον 0. Άρα, 0 m ( ) n 2 = n(n 1) 2 = O(n 2 ) Άρα m =O(n 2 ), δηλαδή ένας πίνακας γειτνίασης απαιτεί χώρο O(n 2 ). Αν είναι m = Θ(n 2 ) τότε λέμε ότι το γράφημα είναι πυκνό, ενώ αν m =O(n) τότε λέμε ότι το γράφημα είναι αραιό. Γενικά θα ασχοληθούμε με αραιά γραφήματα. 2 σελ. 93 του βιβλίου 3 μήτρα γειτνίασης στο βιβλίο 12

17 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Τα στοιχεία της διαγωνίου του πίνακα είναι. μηδενικά αφού έχουμε απαγορεύσει την ύπαρξη βρόγχων. Εφόσον εργαζόμαστε με μη κατευθυνόμενα. γραφήματα, ο πίνακας θα είναι συμμετρικός ως προς την κύρια διαγώνιο. Ο πίνακας γειτνίασης δεν ενδείκνυται γιατί είναι πολύ μεγάλος: καταλαμβάνει O(n 2 ) χώρο ενώ, όπως θα δούμε παρακάτω, η λίστα γειτνίασης χρειάζεται μόνο O(m) χώρο (αφού θα ασχοληθούμε αραιά γραφήματα, δηλαδή με γραφήματα με λιγότερες απο n 2 ακμές). Η λίστα γειτνίασης είναι μία εγγραφή στην οποία, για κάθε κόμβο v έχουμε μία λίστα Adj[v] η οποία περιλαμβάνει όλες τις κορυφές που είναι γειτονικές με την v. Η λίστα γειτνίασης χρειάζεται Ο(n) χώρο γιατί: καταρχάς χρειαζόμαστε έναν πίνακα δεικτών μήκους n. Έπειτα χρειαζόμαστε χώρο για όλες τις λίστες, όπου, παρά το ότι τα μήκη των λιστών μπορεί να διαφέρουν απο κόμβο σε κόμβο θα ισχύει ότι κάθε ακμή e = (v, w) θα εμφανίζεται μόνο σε δύο από τις λίστες: στη λίστα του κόμβου v και στη λίστα του κόμβου w. Έτσι το συνολικό μήκος για όλες τις λίστες είναι O(n). Παράδειγμα Έστω το παρακάτω γράφημα: Εικόνα 2.4: Με πίνακα γειτνίασης θα χρειαστώ 7 7 = 49 στοιχεία. Με λίστα θέλω: V 1 V 2 V 3 V 2 V 1 V 4 V 3 V 7 V 8 V 1 V 4 V 4 V 2 V 3 V 5 V 6 V 3 V 6 V 5 V 8 V 7 V 3 V 8 V 3 V 5 V 6 Oπότε ο χώρος που καταλαμβάνεται περιέχει 18 στοιχεία. Ορίζουμε d(v) να είναι ο βαθμός μιας κορυφής δηλαδή, το πλήθος των κορυφών που γειτνιάζουν με την V. Τότε το μήκος της λίστας( στη θέση ) Adj[v] είναι d(v) οπότε το συνολικό μήκος για όλους τους κόμβους είναι Ο d(v) όπου d(v) = 2m v V v V 13

18 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Σημείωση. Η απόδειξη του παραπάνω υπάρχει στο Σχεδιασμός αλγορίθμων στη σελίδα 120 (και είναι αρκετά μικρή) Εξερεύνηση κατά πλάτος (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Ορίζουμε τώρα την εξερεύνηση κατά πλάτος σε μία λίστα γειτνίασης. Εικόνα 2.5: Οι κόκκινες ακμές μας δίνουν την ελάχιστη διαδρομή για 2 κορυφές. Επίσης οι κόκκινες γραμμές είναι ένα δένδρο του οποίου οι κορυφές καλύπτουν όλες τις κορυφές του αρχικού γραφήμματος. Ερώτηση. Πως λειτουργεί ο παρακάτω αλγόριθμος; Απάντηση. Ο αλγόριθμος μας εξετάζει τους γειτονικούς κόμβους από αυτόν στον οποίο είμαστε. Για να το κάνει αυτό αποδοτικά, θα πρέπει να θυμάται αν έχουμε ήδη εξετάσει έναν κόμβο σε προηγούμενη αναζήτηση. Για το λόγο αυτό έχουμε τον πίνακα Discovered[v] ο οποίος αρχικά είναι false για όλα τα στοιχεία, αφού δεν έχουμε εξετάσει κανέναν κόμβο. Ο αλγόριθμος κατασκευάζει επίπεδα κόμβων L 1, L 2... για αυτό δίνει αρχική τιμή s (αφετηρία) στο L[0]. Αμέσως μετά κατασκευάζει το επόμενο επίπεδο L[1], απο το L[0], το οποίο αποτελείται από τους κόμβους v που πρόσκυνται στην αφετηρία. Αμέσως μετά αυξάνεται κατά 1 το i και επαναλαμβάνει την ίδια λειτουργία, μόνο που τώρα, και για όλες τις επόμενες επαναλήψεις, θα εξετάζει (με το if Discovered[v]=False) μήπως έχουμε ξαναπεράσει από αυτή την κορυφή ώστε να την αγνοήσει. Δίνουμε τώρα και την ακριβή μόρφή του αλγόριθμου αναζήτησης κατά πλάτος: 14

19 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Algorithm 3 BFS(s) Πες Discovered[s]=True και Discovered[v]=false {για όλους τους κόμβους v} L[0] = {s} i = 0{μετρητής επιπέδου} T = while L[i] do Δώσε αρχική τιμή στο L[i + 1] for κάθε κόμβο u L[i] do θεώρησε τις κορυφές v που γειτνιάζουν με την u. if Discovered[v]=False then Discovered[v]=True Πρόσθεσε {u, v} στο δένδρο T Πρόσθεσε to v στην L[i + 1] end if end for i=i+1 end while 2.3 Μάθημα 4. Παρασκευή Εξερεύνηση Γραφημάτων Η εξερεύνηση γραφημάτων 4 μπορεί να γίνει με δύο τρόπους. Είτε κατά πλάτος, είτε σε βάθος. Κατά πλάτος, ορίζουμε καταρχάς το επίπεδο L 0 = {s} για να δείξουμε ότι ξεκινάμε από αυτόν τον κόμβο. Το επίπεδο 1 αποτελείται από τους κόμβους που είναι γειτονικοί με τον s. Έστω τώρα, ότι έχουμε δεδομένο το επίπεδο L i. Για να κατασκευάσουμε το L i+1 θεωρούμε τα στοιχεία του L i το ένα μετά το άλλο και για κάθε ένα απο αυτά προσθέτουμε στο L i+1 όλους τους γείτονες του που δεν εμφανίζονται σε προηγούμενο επίπεδο. Οι ακμές που οδηγούν σε νεοκαλυπτόμενες κορυφές αποτελούν δένδρο (spaning tree). Παράδειγμα Θεωρούμε το παρακάτω γράφημα: 4 Διάτρεξη γραφήματος στο βιβλίο, σελ

20 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Εικόνα 2.6: Παράδειγμα Οπότε τα επίπεδα διαμορφώνονται ως εξής: L 0 = {V 5 } οι γείτονες του V 5 είναι τα V 3, V 6 L 1 = {V 3, V 6 } οι γείτονες των V 3, V 6 είναι τα V 4, V 2, V 7 L 2 = {V 4, V 2, V 7 } οι γείτονες των V 4, V 2, V 7 είναι τα V 1, V 2, V 9, V 8 αλλά το V 2 έχει ήδη αναφερθεί, οπότε παραλλείπεται. Η αναζήτηση (εξερεύνηση) κατά πλάτος 5 ενός γραφήματος έχει την παρακάτω μορφή: Σημείωση. S(u, R) όπου S από τη λέξη search, u: η ρίζα και R: οι ήδη εξερευνημένοι κόμβοι. Algorithm 4 S(u,R) Πρόσθεσε το u στο R for όλα τα v R do while υπάρχει {v, ω} με ω / R do Πρόσθεσε το w στο R end while end for Παράδειγμα Στο παρακάτω παράδειγμα, η εκτέλεση του αλγόριθμου S(u, R) θα έδινε: 5 σελ. 113 στο βιβλίο 16

21 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Εικόνα 2.7: Παράδειγμα S(V 7, R) R = {V 7 } R = {V 7, V 1, V 6 } R = {V 7, V 1, V 6, V 5, V 2 } R = {V 7, V 1, V 6, V 5, V 2, V 3, V 4, V 9, V 8 } Η αναζήτηση κατά βάθος έχει την εξής μορφή: Εικόνα 2.8: Παράδειγμα Όπου: V 1 V 8 {V 7 V 8 } V 6 {V 1 V 5 } V 9 {V 8 V 9 } V 2 {V 6 V 2 } V 4 {V 7 V 4 } V 3 {V 2 V 3 } V 5 {V 7 V 5 } V 7 {V 3 V 7 } 17

22 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Στην αναζήτηση κατά βάθος οδηγούμαστε. σε γειτονικές κορυφές με πολύ αργό ρυθμό, άρα δεν είναι ο καλύτερος τρόπος για να βρίσκουμε κοντινές αποστάσεις. Ο αλγόριθμος τώρα, για την αναζήτηση κατά βάθος είναι ο εξής: Algorithm 5 DFS(u): Depth First Search H u είναι εξερευνημένη και την προσθέτουμε στο R{Όπου u η ρίζα} for όλα τα {u, v} do if V ένας όχι εξερευνημένος κόμβος τότε να εξερευνηθεί: then DFS(V ) end if end for Στους αλγορίθμους που αναφέραμε (BFS, DFS), πολλές φορές χρειάστηκε η καταχώριση στοιχείου σε κάποια δομή δεδομένων και ο έλεγχος έπειτα των στοιχείων της δομής. Η δομή που χρησιμοποιούμε έχει τη μορφή λίστας. Το ζήτημα το οποίο προκύπτει έχει να κάνει με τη σειρά με την οποία θα εξεταστούν τα στοιχεία της λίστας. Οι επιλογές που έχουμε για την λίστα είναι δύο: Με στοίβα ή με ουρά Η ουρά (queue) είναι ένα σύνολο από το οποίο εξάγουμε στοιχεία με τον εξής τρόπο: το στοιχείο που μπαίνει πρώτο είναι και το πρώτο που εξάγεται απο τη λίστα (FIFO- First In, First Out). Η στοίβα (stack) είναι ένα σύνολο το οποίο λειτουργεί ως εξής: το στοιχείο που εισάγεται τελευταίο είναι και το πρώτο που εξάγεται (LIFO-Last In, First Out). Οι λειτουργίες μιας στοίβας είναι δύο: Push: Εντολή η οποία προσθέτει στοιχείο στην κορυφή της στοίβας. Pop: Εντολή η οποία εξάγει το στοιχείο της κορυφής. Στη δομή της ουράς (FIFO) υπάρχουν πάλι δύο εντολές: Add: Πρόσθεσε το στοιχείο στο τέλος της ουράς. Remove: Αφαίρεσε το πρώτο στοιχείο της ουράς. Ουσιαστικά, ο αλγόριθμος αναζήτησης κατά βάθος (DFS) λειτουργεί με στοίβα, ενώ ο αλγόριθμος αναζήτησης κατά πλάτος (BFS) με ουρά. Δίνουμε τώρα την κανονική μορφή του αλγόριθμου αναζήτησης κατά βάθος: 18

23 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων Algorithm 6 DFS(u): Depth First Search Όρισε S ως στοίβα με μόνο ένα στοιχείο s (push s) while το S δεν είναι κενό do pop u από την S if ο κόμβος u δεν έχει εξερευνηθεί then κάνε τον εξερευνημένο for κάθε ακμή uv που πρόσκειται στον u do Push v end for end if end while Παράδειγμα Στην εικόνα 1.8, ο αλγόριθμος DFS θα έκανε τα εξής: οπότε θα συνέχιζε μέχρι η στοίβα να άδειαζε. Άσκηση 5. Έστω ένα δυαδικό δένδρο με ρίζα και έστω ϕ ο αριθμος των φύλλων, δ ο αριθμός των κόμβων με δύο παιδιά. Να δείξετε ότι ισχύει η σχέση: ϕ = δ + 1 (2.3) Υπόδειξη. Έστω ένα δένδρο με έναν κόμβο. Τότε είναι δ = 0 και ϕ = 1. Έστω τώρα T ένα δυαδικό δένδρο με n + 1 κόμβους. Θέλουμε να αποδείξουμε ότι ϕ T = δ T + 1. Η επαγωγική υπόθεση λέει ότι κάθε δένδρο S με n κόμβους έχει ϕ s = δ s + 1 φύλλα. Αφαιρούμε ένα φύλλο από το T και έστω T το δένδρο που προκύπτει. Με βάση την επαγωγική υπόθεση θα έχουμε ϕ T = δ T + 1 (2.4) Ως προς την αφαίρεση φύλλου έχουμε τις εξής, δύο περιπτώσεις: 1. Το φύλλο δεν έχει αδελφό. Τότε ϕ T = ϕ T και δ T = δ T 2. Το φύλλο δεν έχει αδελφό. Τότε ϕ T = ϕ T 1 και δ T = δ T 1 Χρησιμοποιώντας την επαγωγική υπόθεση καταλήγω στο συμπέρασμα. 19

24 Κεφάλαιο 2. Εισαγωγή στη θεωρία γραφημάτων 20

25 Κεφάλαιο 3 Άπληστοι αλγόριθμοι 3.1 Μάθημα 5. Πέμπτη Η πρόοδος θα γίνει το Σάββατο 12/5. Στις 10/5 (Πέμπτη) θα γίνει κανονικά το μάθημα, στις 11/5 (Παρασκευή) και ώρα 13:00. με 15:00, θα γίνει φροντιστήριο ασκήσεων Η εξερεύνηση γραφήματος μπορεί να γίνει με δύο τρόπους: είτε κατά πλάτος, είτε κατά βάθος. Η αναζήτηση κατά πλάτος χρησιμοποιεί ουρά (FIFO) για την αποθήκευση δεδομένων, ενώ η αναζήτηση κατά βάθος χρησιμοποιεί στοίβα (LIFO). Ερώτηση. Πως χρησιμοποιώ τις 2 δομές για υλοποίηση αλγορίθμων; Έστω ότι έχουμε S κορυφές εκκίνησης και R μία ουρά ή μία στοίβα. Οι αλγόριθμοι είναι οι εξής: Algorithm 7 DFS(u): Depth First Search Πρόσθεσε την s στο R while το R δεν είναι κενό do τράβηξε ένα στοιχείο u από το R if ο κόμβος u δεν έχει εξερευνηθεί then σημάδεψε τον ως εξερευνημένο Πρόσθεσε όλους τους γείτονες του u στο R end if end while Άσκηση 6. Έστω G = (V, E) ένα συνεκτικό γράφημα και s V κορυφή εκκίνησης. Έστω T π και T β οι δύο δενδροπαράγοντες που δημιουργούν οι κατά πλάτος και κατά βάθος εξερεύνηση αντίστοιχα. Να αποδειχθεί ότι αν T π = T β τότε G = T π = T β (το αρχικό γράφημα είναι δένδρο). 21

26 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Υπόδειξη. (σελ. 141, ασκ. 6 στο βιβλίο) Καταρχάς η επαγωγή δεν είναι καλή λύση γιατί αν αφαιρέσω μία κορυφή από τις n + 1 δε γνωρίζω πως θα μετασχηματιστούν οι δύο αναζητήσεις. Με απαγωγή σε άτοπο: Έστω ότι το G είχε κύκλο. Σχεδιάζω το δένδρο με αναζήτηση και κατά βάθος και κατά πλάτος: Εικόνα 3.1: Άσκηση 6 Παρατηρήστε ότι η σειρά επίσκεψης είναι διαφορετική. Επίσης, αφού υποθέσαμε ότι είναι κύκλος θα πρέπει να προσθέσουμε μία ακμή. Διακρίνουμε τις εξής δύο περιπτώσεις: Η ακμή να ενώνει κορυφή η οποία δεν είναι πρόγονος της άλλης κορυφής ή η ακμή να ενώνει κορυφή που να μην είναι πρόγονος της άλλης κορυφής. Πιο επεξηγηματικά, Στην πρώτη περίπτωση, υπάρχει ακμή e 1 = (β i, β j ) E και η e δεν είναι ακμή του T π, T β και επίσης, ούτε η β i είναι πρόγονος της β j, ούτε η β j είναι πρόγονος της β i. Στη δεύτερη περίπτωση, είτε η β i είναι πρόγονος της β j, είτε η β j είναι πρόγονος της β j. Για την πρώτη περίπτωση, έστω κατάσταση όπως στο παραπάνω δένδρο, δηλαδή η (β 2, β 9 ) είναι ακμή του G η οποία δεν ανήκει στο δένδρο. Τότε θα είχαμε επισκεφτεί την β 9 πριν από την β 8, το οποίο είναι άτοπο. Η δεύτερη περίπτωση αφήνεται για εξάσκηση. Προχωράμε τώρα σε ένα σημαντικό κεφάλαιο του μαθήματος, τους άπληστους αλγορίθμους. Σαν μία εισαγωγή στο κεφάλαιο αυτό παραθέτουμε ένα μέρος άπο το βιβλίο Σχεδιασμός Αλγορίθμων, των Kleinberg, Tardos από τη σελίδα 147: Είναι δύσκολο, αν όχι αδύνατο, να ορίσουμε με ακρίβεια τι εννοούμε με τον όρο άπληστος αλγόριθμος (greedy algorithm). Ένας αλγόριθμος είναι άπληστος όταν δομεί μία λύση με μικρά βήματα, παίρνοντας μυωπικές αποφάσεις σε κάθε βήμα για τη βελτιστοποίηση κάποιου υποκείμενου κριτηρίου. Συχνά μπορεί κανείς να σχεδιάσει πολλούς, διαφορετικούς, άπληστους αλγορίθμους για το ίδιο πρόβλημα, όπου καθένας από αυτούς τοπικά και αυξητικά θα βελτιστοποιεί κάποιο διαφορετικό μέτρο στο δρόμο του προς τη λύση. Σε έναν άπληστο αλγόριθμο υπάρχουν δύο απαραίτητες προϋποθέσεις, οι οποίες τον χαρακτηρίζουν: 22

27 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Απαγορεύεται η δρομολόγηση δύο επικαλυπτόμενων, χρονικά, αιτημάτων. Ο στόχος είναι η ικανοποίηση όσο το δυνατόν μεγαλύτερου αριθμού αιτημάτων. Εικόνα 3.2: παράδειγμα επικαλυπτόμενων αιτημάτων Θα δρομολογήσω το 2ο και το 3ο αίτημα γιατί δεν είναι επικαλυπτόμενα και άρα ικανοποιώ πιο πολλά αιτήματα. Παραθέτουμε τώρα τη γενική μορφή ενός άπληστου αλγορίθμου, όπως μπορεί κανείς να τη βρεί στο βιβλίο, στη σελίδα 150. Algorithm 8 General form of a greedy algorithm Με R συμβολίζουμε το σύνολο όλων των αιτημάτων και με A το σύνολο των ικανοποιημένων αιτημάτων. while το R δεν είναι κενό do Διάλεξε ένα αίτημα (ΠΟΤΕ?) i από το R Ικανοποίησε το i Αφαίρεσε από το R όλα όσα επικαλύπτονται μεταξύ τους Πρόσθεσε το i στο A end while Ο αλγόριθμος αυτός προφανώς είναι ορθός, αφού αφαιρώ τα επικαλυπτόμενα αιτήματα. Δε θα ικανοποιήσει όμως το μεγαλύτερο αριθμό αιτημάτων: Δεν έχω προσδιορίσει το ΠΟΤΕ. Πρέπει να σκεφτώ κάποιο κριτήριο επιλογής. Θα ακολουθήσω μια αρχή πλεονεξίας. Οι προσεγγίσεις ικανοποίησης αιτημάτων είναι τρεις (τα ονόματα δεν υπάρχουν στη βιβλιογραφία): Η δημοκρατική λύση: Επιλέγω πάντα το αίτημα i το οποίο έχει το μικρότερο s(i) (όπως στο παραπάνω παράδειγμα-αυτός δεν είναι ο βέλτιστος τρόπος). Η επιχειρηματική λύση: Επιλέγω με βάση τη διάρκεια f(i) s(i). αυτός ο τρόπος είναι βέλτιστος. Για παράδειγμα: Ούτε όμως Εικόνα 3.3: αν επιλέξω το βραχύτερο αίτημα, θα έχω τελικά ικανοποιήσει μόνο ένα αίτημα 23

28 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Η σοσιαλιστική λύση: Προηγούνται τα αιτήματα με τις λιγότερες δυνατές διενέξεις (αυτά που είναι τις λιγότερες φορές επικαλυπτόμενα με άλλα αιτήματα). Ούτε αυτός είναι ο βέλτιστος τρόπος. Για παράδειγμα: Εικόνα 3.4: χρησιμοποιώ το (1) το οποίο έχει 2 διενέξεις και έπειτα τα (2) και (3), ενώ θα μπορούσα να επιλέξω τα 4 πάνω αιτήματα και να έχω ικανοποιήσει 4 αιτήματα Αν δρομολογήσω την προτεραιότητα ενός αιτήματος με βάση την ημερομηνία λήξης (f(i)) τότε θα αποδείξω ότι έχω τη βέλτιστη δρομολόγηση. Επιλέγω δίνοντας προτεραιότητα στα αιτήματα με το μικρότερο δυνατό f(i). (Η απόδειξη ότι οδηγεί σε βέλτιστη λύση θα γίνει πιο μετά). Καταρχάς ο αλγόριθμος θα έχει την εξής μορφή: Algorithm 9 General form of a greedy algorithm Με R συμβολίζουμε το σύνολο όλων των αιτημάτων και με A το σύνολο των ικανοποιημένων αιτημάτων. Αρχικά A = while το R δεν είναι κενό do Διάλεξε το αίτημα στο R με το μικρότερο δυνατό f(i) Ικανοποίησε το i Αφαίρεσε από το R όλα όσα επικαλύπτονται μεταξύ τους Πρόσθεσε το i στο A end while Η πολυπλοκότητα του παραπάνω αλγορίθμου είναι O(n log n) μιας και είναι μία ταξινόμηση n αντικειμένων με βάση μία έννοια μεγέθους. Ταξινομώ τα αιτήματα i με αύξουσα σειρά ανάλογα με το f(i) (ημερομηνία λήξης ενός αιτήματος). Επίσης, δημιουργώ έναν πίνακα s[1,... n] ο οποίος στο δείκτη i αποδίδει το s(i) (όπου i τώρα είναι ο δείκτης ταξινόμησης). Η συνολική πολυπλοκότητα είναι O(n log n) + O(n) = O(n log n) Απόδειξη. Έστω f(n) = O(n log n) και g(n) = O(n), οπότε πλέον θέλω να δείξω ότι f(n) + g(n) = O(n log n) (3.1) Από την υπόθεση, υπάρχει σταθερά c > 0 και N N τέτοια ώστε: για κάθε n N με n > N να ισχύει f(n) cn log n (3.2) Επίσης, από την υπόθεση, υπάρχει σταθερά c > 0 και N N τέτοια ώστε: για κάθε n N με n > N να ισχύει g(n) c n log n (3.3) 24

29 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Οπότε τώρα θέλω να δείξω ότι υπάρχει c > 0 και N N με n > N ώστε f(n) + g(n) c n log n (3.4) Παίρνω N = max{n, N, 1} (το ένα το πήρα γιατί log 1 = 0) οπότε θα έχω: f(n) + g(n) cn log n + c n cn log n + c log n (c + c )n log n (3.5) άρα c = c + c (3.6) Δίνουμε τώρα την ακριβή διατύπωση και την απόδειξη του θεωρήματος που αναφέρθηκε πιο πάνω. Θεώρημα Ο προγραμματισμός 1 των αιτημάτων με βάση το χρόνο λήξης δημιουργεί ένα βέλτιστο προγραμματισμό. Λήμμα Έστω i 1,..., i k ένας προγραμματισμός των αιτημάτων με βάση τον αλγόριθμο που περιγράψαμε και έστω j 1,... j m ένας άλλος προγραμματισμός αιτημάτων. Τότε θα έχω: f(i r ) f(j r ) για κάθε r = 1,... k. (3.7) Απόδειξη. Με επαγωγή στο r. Για r = 1 έχω f(r 1 ) f(j 1 ) αφού ο αλγόριθμος επιλέγει το αίτημα με το μικρότερο χρόνο λήξης (f(i)). Για το επαγωγικό βήμα υποθέτω ότι f(i r 1 ) f(j r 1 ) και πρέπει να δείξω ότι f(i r ) f(j r ). Έστω ότι είναι f(j r ) < f(i r ) Έχω ότι f(j r 1 s(j r )) διότι τα j r 1, j r δεν επικαλύπτονται. f(i r 1 ) f(j r 1 ) απο την επαγωγική υπόθεση f(i r ) > f(j r ) (3.8) ΑΤΟΠΟ! Διότι τότε ο αλγόριθμος που περιγράψαμε θα επέλεγε j r αντί για i r. Άρα για κάθε r = 1,..., k ισχύει ότι f(i r ) f(j r ). 1 (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) 25

30 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Δίνουμε τώρα την απόδειξη του θεωρήματος: Απόδειξη. Απομένει να δείξω ότι k m. Έστω ότι είναι k < m. Από το προηγούμενο λήμμα ξέρω ότι f(i k ) f(j k ) f(j k ) s(j m ) Διότι δεν υπάρχουν επικαλύψεις μεταξύ των j άρα καταλήγω σε άτοπο, γιατί στο βήμα k υπάρχουν ακόμη μη ικανοποιημένα αιτήματα. Αιτήματα με διάρκεια t i και προθεσμία d i. Δηλαδή, d i s i + t i (3.9) όπου d i : η προθεσμία, s i : ο χρόνος εκτέλεσης και t i : η διάρκεια. Στόχος: να δρομολογηθούν όλα. Θα προσπαθήσω να ελαχιστοποιήσω τη μεγαλύτερη δυνατή καθυστέρηση. Η καθυστέρηση του αιτήματος i συμβολίζεται με l i (latency) και είναι: επίσης L είναι η μέγιστη καθυστέρηση: l i = s i + t i d i (3.10) Το πρόβλημα που θέσαμε πιο πριν αναδιατυπώνεται ως εξής: L = max i=1,...,n l i (3.11) Να ελαχιστοποιηθεί το L. Στον παραπάνω τύπο l i = s i +t i d i τα t i, d i είναι δεδομένα και το s i πρέπει να καθοριστεί από τον αλγόριθμο. Παράδειγμα Αν το πρώτο αίτημα έχει: t i = 5, d i = 5 (δηλαδή μετα το ξεκίνημα ο αλγόριθμος έχει 5 λεπτά καθυστέρηση) και το δεύτερο: t 2 = 3, d 2 = 3000 τότε: θα είχα μεγάλη καθυστέρηση λόγω d 2, άρα δεν είναι σωστό να βάλω πρώτο το αίτημα με τη μικρότερη διάρκεια. Αν βάλω πρώτη τη μικρότερη διαφορά d i t i επίσης δεν θα είναι καλή κίνηση (αφήνετε για εξάσκηση η επεξήγηση). Θα δείξουμε ότι παίρνοντας μόνο προθεσμίες καταλήγω σε βέλτιστη λύση. Δίνουμε τώρα τον αλγόριθμο για αυτή την ταξινόμηση: Algorithm 10 σελ. 160 στο βιβλίο Ταξινόμησε κατά αύξουσα σειρά ως προς τα d i Έστω d i d n Αρχικά f = s Εξέτασε τις εργασίες i,... n Εκχώρησε στο i το διάστημα s i = f μέχρι να είναι f i = s i + t i Θέσε f = f + t i 3.2 Μάθημα 6. Πέμπτη

31 3.2.1 Χρονοπρογραμματισμός (Scheduling) Κεφάλαιο 3. Άπληστοι αλγόριθμοι Από το προηγούμενο μάθημα έχουμε αναφέρει ένας προγραμματισμός εργασιών με βάση τις προθεσμίες οδηγεί σε βέλτιστη λύση. Η απόδειξη αυτού του ισχυρισμού χρησιμοποιεί ένα επιχείρημα ανταλλαγής. Δίνουμε δύο λήμματα και μία πρόταση ώστε να φτάσουμε στην απόδειξη του ισχυρισμού μας. Καταρχάς, είναι προφανές ότι ένας βέλτιστος προγραμματισμός δεν έχει χρόνο αδράνειας. Λήμμα (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos). Σε έναν προγραμματισμό ο οποίος: 1. δεν έχει χρόνο αδράνειας και 2. δεν υπάρχουν εργασίες i, j τέτοιες ώστε η i να προηγείται της j και η προθεσμία d i > d j, ισχύει ότι ο μέγιστος χρόνος καθυστέρησης είναι πάντα ο ίδιος. Σημείωση. Δύο τέτοιοι προγραμματισμοί θα διαφέρουν μόνο ως προς τη σειρά εκτέλεσης δύο εργασιών με ίδια προθεσμία. Απόδειξη. Έστω δύο διαφορετικοί προγραμματισμοί και έστω δύο εργασίες i, j με την ίδια προθεσμία d. Υποθέτουμε ότι ο πρώτος προγραμματισμός βάζει την i πρώτη και ο δεύτερος βάζει την j πρώτη. Eπίσης, χωρίς βλάβη της γενικότητας μπορούμε να υποθέσουμε ότι οι i, j είναι διαδοχικές και στους δύο προγραμματισμούς. Ισχύει ότι και στους δύο προγραμματισμούς η μέγιστη καθυστέρηση είναι: t B d, αν υπάρχει καθυστέρηση, δηλαδή αν d < t B 0, αν δεν υπάρχει καθυστέρηση, δηλαδή αν d t B. Απομένει, με χρήση του επιχειρήματος ανταλλαγής, να αποδείξω ότι ένας χρονοπρογραμματισμός που ακολουθεί τις προθεσμίες οδηγεί σε βέλτιστη λύση. Απόδειξη. Έστω προγραμματισμός και δύο εργασίες του i, j, διαδοχικές και η i προηγείται της j, ενώ d j < d i. Η ιδέα του επιχειρήματος ανταλλαγής είναι να αντιστρέψουμε τις δύο εργασίες και να αποδείξουμε ότι η μέγιστη καθυστέρηση δε μεγαλώνει μετά την 27

32 Κεφάλαιο 3. Άπληστοι αλγόριθμοι αντιστροφή. Έχω ότι max(t B d j, t A + t i d i ) (το οποίο είναι η μέγιστη καθυστέρηση στον π), είναι μεγαλύτερο ή ίσο από το max(t B d i, t A +t j d j ) (το οποίο είναι η μέγιστη καθυστέρηση στον π ). Έχουμε δηλαδή ότι max(t B d j, t A + t i d i ) max(t B d i, t A + t j d j ) t B d j max(t B d i, t A + t j d j ) }{{} δε μπορώ να αποφανθώ για το ποιό είναι Αλλά δε με απασχολεί καθώς η ανισότητα ισχύει και για τα δύο: { } t B d j t B d i t B d j t A + t j d j Διαδρομές & Βελτιστοποίηση (σελ Σχεδιασμός αλγορίθμων, Kleinberg-Tardos) Σε ένα γράφημα ένα βασικό πρόβλημα είναι η αναζήτηση της ταχύτερης μετάβασης από έναν κάμβο σε κάποιον άλλο. Τέτοια προβλήματα συναντώνται πάρα πολύ συχνά στη μοντελοποίηση δικτύων της καθημέρινης ζωής, ακόμα και όταν προσπαθεί να βρει κάποιος τον συντομότερο τρόπο μετάβασης από μια τοποθεσία σε μία άλλη. Το ζήτημα παρουσιάζει έντονο αλγοριθμικό ενδιαφέρον. Το 1959, ο Ολλανδός Edsger W. Dijkstra πρότεινε έναν πλεονεκτικό αλγόριθμο εύρεσης συντομότερων διαδρομών σε ένα γράφημα. Σε ένα βεβαρυμένα κατευθυνόμενο γράφημα με μία διακεκριμένη κορυφή s (start), ο αλγόριθμος Dijkstra υπολογίζει την απόσταση της s από όλες τις άλλες κορυφές (προφανώς υποθέτουμε ότι υπάρχει διαδρομή από την s προς όλες τις άλλες κορυφές). Καταρχάς, με βάση τον αλγόριθμο Dijkstra, θα βρούμε τις αποστάσεις μεταξύ των κορυφών. Έστω S το σύνολο των κορυφών που σε κάθε φάση ξέρουμε την ελάχιστη απόσταση τους από την αρχική κορυφή, s. Οπότε αρχικά θα είναι S = {s} και S = V τελικά. Σε κάθε φάση θα προστίθεται στο S μία κορυφή. 28

33 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Algorithm 11 Αλγόριθμος του Dijkstra Είναι δεδομένα τα G, l. Έστω S το σύνολο των εξερευνημένων κόμβων. Για κάθε u S αποθηκεύουμε μια απόσταση d(u). Αρχικά S = {s} και d(s) = 0 while S V do Διάλεξε έναν κόμβο v S με τουλάχιστον μία ακμή από το S για τον οποίο το d (v) = min e=(u,v):v S d(u) + l είναι όσο το δυνατόν μικρότερο. Πρόσθεσε το v στο S και όρισε d(v) = d (v) end while Δίνουμε μία εφαρμογή του αλγορίθμου τώρα: Αρχικά είναι S = {s}, d(s) = 0 και είναι υπό εξέταση οι v 1, v 2, v S = {s, v 1 }, d(v 1 ) = Υπο εξέταση: v 3, v 2, v 4. s v 2 : 2 s v 1 : s v 4 : 5 3. Υπό εξέταση: v 4, v 4, v 3 (η v 4 υπάρχει δύο φορές γιατί συγγενεύει με τη v 2 αλλά και την s). s v 4 : 5 s v 2 v 4 : = 8 s v 1 v 3 : Άρα επιλέγω το v 4 οπότε S = {s, v 1, v 2, v 4 }. 3.3 Μάθημα 7. Πέμπτη Μιλάμε για τον αλγόριθμο του Dijkstra και ξεκινάμε με ένα παράδειγμα από το βιβλίο των Cormen, Leiserson, Rivest, Stein. 29

34 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Παράδειγμα d(a) = 0 d (b) = 4 d (f) = d (i) = d (c) = d (g) = d (e) = d (d) = d (h) = 8 S : {a, b} d (c) = 12 d (f) = d (i) = d(a) = 0 d (c) = 12 d (g) = d (e) = d(b) = 4 d (d) = d (h) = 8 Εξετάζουμε για αλλαγή του d μόνο τις κορυδές. που συνορεύουν με την τελευταία που προστέθηκε στο S. 3. S : {a, b, h} d(a) = 0 d (c) = 12 d (d) = d(b) = 4 d (i) = 15 d (f) = d(h) = 8 d (g) = 9 d (e) = 4. S = {a, b, h, g} d(a) = 0 d(h) = 8 d (c) = 12 d (d) = d(b) = 4 d(g) = 9 d (f) = 11 d (e) = d (i) = 15 Θεωρητική γραφή Προσθέτουμε στο S το w για το οποίο επιτυγχάνεται το ελάχιστο d (w) = min d(u)+ e=(u,w):u S c(u, w ). Χρονική πολυπλοκότητα. n είναι το πλήθος κορυφών και m το πλήθος των ακμών Απλοίκή ανάλυση: n φάσεις όπου η κάθε μία διαρκεί το πολύ m βήματα άρα πολυπλοκότητα O(m m). Δυσκολότερη ανάλυση: 1. Διατηρούμε ουρά προτεραιότητας με κλειδιά τις τιμές d (w) για w V S 2. Αφαιρούμε το ελάχιστο στοιχείο της ουράς προτεραιότητας, χρόνος O(log n). 3. Η παραπάνω διαδικασία θα επαναληφθεί m φορές. Επομένως η συνολική πολυπλοκότητα του αλγορίθμου θα είναι O(m log n). Τώρα εξηγούμε ξανά πως λειτουργεί ο αλγόριθμος Dijkstra. 30

35 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Για κάθε στοιχείο το V S: Προσθέτοντας το κόστος της ss και της s g η κορυφή για την οποία το κόστος γίνεται μικρότερο προστίθεται στο S. 2 Απόδειξη ορθότητας Dijkstra Απόσταση της w από την s κατά Dijkstra: d(u) + e. Έστω μία άλλη διαδρομή από το s στο w, αυτή μέσω του p. Αρκεί να αποδείξω ότι το κόστος του μέρους της διαδρομής p από το s στο w είναι μεγαλύτερο ή ίσιο από το d(u) + e. Έχω ότι d(u) + e d(u ) + c(u, w ) a κόστος της p από το s στο w a λόγω του s Ελάχιστος Δενδροπαράγοντας (Γεννήτικο δένδρο)-spanning tree Μη κατευθυνόμενο γεννητικό δένδρο: Υπογράφημα που είναι δένδρο και του οποίου οι κορυφές εξαντλούν όλες τις κορυφές του αρχικού γραφήματος. αρχή. 2 d είναι η θεωρούμενη σε κάθε βήμα ως ελάχιστη απόσταση μιας εξωτερικής V S κορυφής από την 31

36 Κεφάλαιο 3. Άπληστοι αλγόριθμοι Θέλουμε να βρούμε ένα γεννητικό δένδρο του οποίου το άθροισμα των βαρών να είναι το ελάχιστο δυνατό. Κάποιες πλεονεκτικές προσεγγίσεις που βρίσκουν σωστά ένα ελάχιστο γεννητικό δένδρο: 1. ΔΙατάσσουμε τις ακμές κατά φθίνον βάρος και τις αφαιρούμε, τη μία μετά την άλλη, για την κάθε μία η αφαίρεση υλοποιηται μόονο αν δε χαλάει η συνεκτικότητα. 2. Κατασκευάζουμε το S ξεκινώντας από μία αρχή s αλλά σε κάθε βήμα προσθέτουμε την ακμή με το ελάχιστο κόστος μεταξύ αυτών που συνδέουν τα στοιχεία του s με το V S. 3. Διατάσσουμε τις ακμές κατά αύξον βάρος και τις προσθέτουμε τη μία μετά την άλλη εκτός αν δημιουργείται κύκλος. Απόδειξη των 2,3 (Kruskal, Prim) Απλοποιητική παραδοχή: όλα τα βάρη είναι διαφορετικά μεταξύ τους. (η συνέχεια στο επόμενο μάθημα.) 32

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

f(t) = (1 t)a + tb. f(n) =

f(t) = (1 t)a + tb. f(n) = Παράρτημα Αʹ Αριθμήσιμα και υπεραριθμήσιμα σύνολα Αʹ1 Ισοπληθικά σύνολα Ορισμός Αʹ11 (ισοπληθικότητα) Εστω A, B δύο μη κενά σύνολα Τα A, B λέγονται ισοπληθικά αν υπάρχει μια συνάρτηση f : A B, η οποία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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 Σωρός και Ταξινόμηση

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

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

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

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

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 υποσύνολο

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

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

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

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

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

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

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

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

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

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

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

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

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

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

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

q(g \ S ) = q(g \ S) S + d = S.

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

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

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

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

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

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις ΕΠΛ2: Θεωρία Υπολογισμού και Πολυπλοκότητα Σειρά Προβλημάτων Λύσεις Άσκηση Να βρείτε το σφάλμα στην πιο κάτω απόδειξη. Ισχυρισμός: Όλα τα βιβλία που έχουν γραφτεί στη Θεωρία Υπολογισμού έχουν τον ίδιο

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

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

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

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

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

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

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

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

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

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

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

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

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

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3 Αλγόριθμοι και Πολυπλοκότητα 3η Σειρά Γραπτών και Προγραμματιστικών Ασκήσεων CoReLab ΣΗΜΜΥ - Ε.Μ.Π. Ιανουάριος 2019 (CoReLab - NTUA) Αλγόριθμοι - 3η σειρά ασκήσεων Ιανουάριος 2019 1 / 54 Outline 1 Άσκηση

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

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

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

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

Μη γράφετε στο πίσω μέρος της σελίδας

Μη γράφετε στο πίσω μέρος της σελίδας Εισαγωγή στο Σχεδιασμό & την Ανάλυση Αλγορίθμων Εξέταση Φεβρουαρίου 2016 Σελ. 1 από 7 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες

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

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

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

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

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

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

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

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

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ» 2 ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Προβλήματα ελάχιστης συνεκτικότητας δικτύου Το πρόβλημα της ελάχιστης

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

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

Outline. 6 Edit Distance

Outline. 6 Edit Distance Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι και Δυναμικός Προγραμματισμός Ασκήσεις CoReLab ΣΗΜΜΥ - Ε.Μ.Π. 16 Νοεμβρίου 216 (CoReLab - NTUA) Αλγόριθμοι - Ασκήσεις 16 Νοεμβρίου 216 1 / 52 Outline 1

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

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

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

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