Αλγόριθμοι Μάρθα Σιδέρη epl333 lect1 2011 1 1
Τι είναι αλγόριθμος?? ιαδικασία για να λύνουμε υπολογιστικά προβλήματα. Βήμα βήμα σαφής διαδικασία επίλυσης προβλήματος (μετασχηματισμού της εισόδου στην επιθυμητή έξοδο). ηλαδή τα πάντα σχετικά με την Επιστήμη μας? epl333 lect1 2011 2 2
Τι κάνουμε στο μάθημα αυτό Τι σημαίνει καλός αλγόριθμος. Τι σημαίνει «καλός» διαισθητικά: Όταν υλοποιηθεί, να κάνει τη δουλειά που θέλουμε σωστά και γρήγορα για τις εισόδους που παρουσιάζονται στην πράξη. Πριν υλοποιηθεί, ανεξαρτήτως γλώσσας και επεξεργαστή Πως αποδεικνύουμε ότι είναι ορθός? Πως μετράμε το γρήγορα...ασυμπτωτικός συμβολισμός εν μπορούμε πάντα να προβλέψουμε, εξετάζουμε τη χειρότερη περίπτωση εισόδου (worst case) epl333 lect1 2011 3 3
Μας δίνουν ένα πρόβλημα. Πως το λύνουμε, πως κατασκευάζουμε αλγόριθμο? Περιμένουμε επιφοίτηση... Μήπως είναι παραλλαγή κάποιου από τους πολύ βασικούς? (το πιο συνηθισμένο στην πράξη, πάντα στις εξετάσεις...) ) ιδασκαλία πολλών βασικών αλγορίθμων. Πως αφαιρούμε από το πρόβλημα τα περιττά... Αν δεν είναι παραλλαγή γνωστού, πώς αρχίζουμε να σκεφτόμαστε? Κατηγορίες αλγορίθμων Αν δεν υπάρχει καλός αλγόριθμος? ύσκολα- εύκολα προβλήματα (πως τα αναγνωρίζουμε) epl333 lect1 2011 4 4
Ποίοι είναι ο πρώτοι αλγόριθμοι που μαθαίνουμε? Πρόσθεση πολλαπλασιασμός. δεκάδες 75 μονάδες 29 675 150 2175 Θεσιακό σύστημα (positional system) Mayan Indians πριν 2000 χρόνια. Τι κάνει τον αλγόριθμο αυτό εύκολο? Ποιος σκέφτηκε τους αλγόριθμους αυτούς? Al-Khwarizmi, 750 μχ Περσία epl333 lect1 2011 5 5
Όλα αυτά δεν είναι αυτονόητα?? Όχι στους σοφούς Αρχαίους Έλληνες ---- 369: τξθ,, 309: τθ Η στους Ρωμαίους ----369:CCCLXIX + 244:CCXLIV = 2175:DCXIII epl333 lect1 2011 6 6
Ας μιλήσουμε λίγο τη γλώσσα που θα χρησιμοποιούμε στο μάθημα αυτό. 75 Πόσο γρήγορος είναι ο αλγόριθμος του 29 675 150 2175 Πρόσθεση και πολλαπλασιασμός: 2 αριθμοί x και y, n bits ο καθένας. Μήκος αποτελέσματος πράξης: Πρόσθεση n+1 Πολλαπλασιασμός 2n epl333 lect1 2011 7 7
Πρόσθεση και πολλαπλασιασμός: x και y, n bits ο καθένας Πόσο γρήγορη είναι η πράξη? Πρόσθεση, αποτέλεσμα n+1 On ( ) Γίνεται καλύτερα; ΟΧΙ! Πολλαπλασιασμός, αποτέλεσμα 2 On ( ) 2n Γίνεται καλύτερα; NAI epl333 lect1 2011 8 8
Παρουσίαση ενός άλλου αλγόριθμου πολ/σμου repeat ιαίρεσε τον πρώτο αριθμό με 2 (πέταξε τα δεκαδικά ψηφία) Πολλαπλασίασε τον δεύτερο με 2 until ο πρώτος γίνει 1 ιάγραψε τις σειρές, στις οποίες ο πρώτος είναι άρτιος Πρόσθεσε τις σειρές του δεύτερου που δεν διαγράφηκαν. epl333 lect1 2011 9 9
Παράδειγμα 6 3 2 2 2 1 75 75 διαιρώ/2 29 πολ/ζω x 2 29 37 58 1001011 18 116 29 9 232 58 4 464 232 2 928 1856 1 1856 2175 2175 epl333 lect1 2011 10 10
Ερωτήματα που θα εξετάζουμε για κάθε αλγόριθμο Τερματίζει; Είναι ορθός; Είναι γρήγορος; Πόσο μεγαλύτερη είναι η παράσταση στο δυαδικό από την παράσταση στο δεκαδικό? 75 (2 ψηφία) -> 1001011 (7 ψηφία) τι συμβαίνει γενικά? Πόση μνήμη; epl333 lect1 2011 11 11
Στον πρώτο μας αλγόριθμο 2 φορές χρησιμοποιήσαμε την έννοια log log 2 Πόσα ψηφία χρειαζόμαστε για να παραστήσουμε αριθμό x σε βάση base log a log b c a / log log n log n log 10 c 2 10 2 log base x b epl333 lect1 2011 12 12
Ένα πρόβλημα που (θα) άκουτε συνέχεια... TSP traveling salesman problem: πρόβλημα περιοδεύοντος πωλητή Στιγμιότυπο:Σημεία-πόλεις, αποστάσεις μεταξύ κάθε ζεύγους, αρχική πόλη Ζητούμενο: συντομότερη διαδρομή που ξεκινά και καταλήγει στην αρχική και περνά από όλες τις πόλεις epl333 lect1 2011 13 13
Στιγμιότυπο TSP... epl333 lect1 2011 14 14
Να βρεθεί ένας γρήγορος αλγόριθμος που να το λύνει. Πιστεύουμε ότι αυτό είναι αδύνατο... Αλλά γιατί δεν δοκιμάζουμε να πάμε κάθε φορά στην πόλη που είναι πιο κοντά μέχρι να περάσουμε από όλες? Ο αλγόριθμος τερματίζει και είναι γρήγορος! εν είναι ορθός, δεν έχει πάντα το αποτέλεσμα που θέλουμε epl333 lect1 2011 15 15
Πρόβλημα περιοδεύοντος πωλητή: αλγόριθμος πλησιέστερου γείτονα 1+2+4+8+16+22+21=75 1+2+8+32+21=64 εν είναι ορθός. Απόδειξη με Αντιπαράδειγμα epl333 lect1 2011 16 16
Θέλουμε οι αλγόριθμοί μας να τρέχουν γρήγορα! Εξετάζουμε τη χειρότερη περίπτωση. Τον μεγαλύτερο χρόνο που κάνει ο αλγόριθμος για όλες τις εισόδους μεγέθους n και πως μεταβάλλεται ο χρόνος αυτός με το n Πώς κάνουμε την έννοια «γρήγορος αλγόριθμος» κάτι πιο συγκεκριμένο??? Υπάρχει πάντα ο αλγόριθμος λό να ψάξουμε όλες τις δυνατές λύσεις. Πχ. Στο TSP να δοκιμάσουμε όλες τις διαδρομές που αρχίζουν και καταλήγουν στην αρχική πόλη. n! Ένας αλγόριθμος θεωρείται γρήγορος αν, όταν τον αναλύσουμε, είναι σημαντικά καλύτερος από το να ψάχναμε όλες τις λύσεις... epl333 lect1 2011 17 17
Σταθερός γάμος (stable marriage) Κάθε άνδρας βάζει σε σειρά προτίμησης όλες τις γυναίκες Κάθε γυναίκα βάζει σε σειρά προτίμησης όλους τους άνδρες Υπάρχει σταθερό ταίριασμα; Μπορούμε να το βρούμε γρήγορα; Σταθερό: κανένας να μην θέλει να αλλάξει Ποιο είναι το μήκος της εισόδου; n άνδρες, n γυναίκες 2 On ( ) epl333 lect1 2011 18 18
Αλγόριθμος: Gale Shapley 1962 (ο πρώτος μας ωραίος αλγόριθμος) WHILE υπάρχει άνδρας που είναι ελεύθερος και δεν έχει κάνει πρόταση σε όλες τις γυναίκες Διάλεξε έναν τέτοιο άνδρα m Έστω w η γυναίκα που προτιμάει περισσότερο από αυτές που δεν του έχουν δώσει ακόμα χυλόπιτα IF η w είναι ελεύθερη (m,w) αρραβωνιάζονται ELSE IF η w προτιμά τον αρραβωνιαστικό της m από τον m, o m παίρνει χυλόπιτα και παραμένει ελεύθερος ELSE δημιουργείται το ζευγάρι (m,w) και ο m γίνεται ελεύθερος. Έξοδος: Όλα τα ζευγάρια epl333 lect1 2011 19 19
Ερωτήματα Τερματίζει; Ναι, σε κάθε επανάληψη ένας άνδρας προτείνει σε μια νέα γυναίκα. Κάποτε τελειώνουν όλα τα n ζεύγη. Δεν υπάρχει περίπτωση ένας άνδρας να έχει κάνει πρόταση σε όλες τις γυναίκες και να είναι ελεύθερος (γιατί?). epl333 lect1 2011 20 20
Είναι ορθός; Ζευγαρώνουν όλοι (perfect matching) Με σταθερό τρόπο; Κανείς δεν έχει κίνητρο να αλλάξει Ναι, Μια γυναίκα, όταν αρραβωνιαστεί πρώτη φορά, δεν μένει ποτέ μόνη και έχει όλο και καλύτερους άνδρες. εν θέλει να αλλάξει γιατί έχει τον προτιμότερο από όσους της πρότειναν. Οι γυναίκες, στις οποίες προτείνει ένας άνδρας γίνονται όλο και χειρότερες. Ενόσω είναι ακόμα μόνος, υπάρχει κάποια γυναίκα, από την οποία δεν πήρε χυλόπιτα. εν θέλει να αλλάξει επειδή όλες οι προτιμότερες τον έχουν απορρίψει. epl333 lect1 2011 21 21
Είναι γρήγορος; 2 On ( ) Επαναλήψεις του while Πόσο χρόνο κάθε επανάληψη; Κάθε επανάληψη μπορεί να γίνει σε σταθερό χρόνο, αν φυλάξουμε έξυπνα τις πληροφορίες μας. Σταθερός χρόνος (δεν εξαρτάται από το n, δεν εξαρτάται από το πόσα ζευγάρια έχουμε) epl333 lect1 2011 22 22
Δομές δεδομένων! Παράδειγμα: WHILE υπάρχει άνδρας που είναι εεύθερος ελεύθερος Πως θα βρούμε έναν άνδρα που είναι ελεύθερος δίχως να τους εξετάσουμε όλους? (σε κάθε επανάληψη μπορεί να δημιουργηθεί κάποιος νέος ελεύθερος). Συνδεδεμένη λίστα (linked list). epl333 lect1 2011 23 23
Επιτυχίες Αλγόριθμοι συντακτικής ανάλυσης FFT ταχύς μετασχηματισμός Fourier Γραμμικός προγραμματισμός Ταξινόμηση Επεξεργασία συμβολοσειρών (string matching) Αριθμοθεωρίας, γεωμετρικοί, συμπίεσης. epl333 lect1 2011 24 24
Όλες οι πληροφορίες, ανακοινώσεις κ.λ.π. στο e-class http://eclass.aueb.gr/courses/inf161/ aueb Γραφτείτε σήμερα!! epl333 lect1 2011 25 25
Βιβλιογραφία ιανομή : δύο βιβλία, εκ των οποίων επιλέγετε το ένα: 1. )S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani «Αλγόριθμοι» Κλειδάριθμος 2009. Για να αρχίσετε να διαβάζετε από τώρα το αγγλικό πρωτότυπο S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani "Algorithms" το οποίο υπάρχει online στο http://www.cs.berkeley.edu/~vazirani/algorithms.html 2.) Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ, Τόμος Ι Πανεπιστημιακές εκδόσεις Κρήτης. μετάφραση του "Introduction to Algorithms" (MIT Electrical Engineering and Computer Science Series) MIT Press 2001. epl333 lect1 2011 26 26
Επιπλέον βιβλιογραφία Jon Kleinberg, Eva Tardos: "Algorithm Design", Pearson, Addison Wesley 2006. Κυκλοφορεί και σε ελληνική μετάφραση ως «Σχεδιασμός Αλγορίθμων» Κλειδάριθμος 2008. Introduction to algorithms Udi Mamber The algorithm design manual S. Skiena..Web epl333 lect1 2011 27 27
Βιβλιογραφία συνέχεια... Για όσους θέλουν να μελετήσουν σε βάθος Υπολογιστική πολυπλοκότητα: C. H.Papadimitriou: Computational Complexity, Addison Wesley, 1993. Για όσους θέλουν να ασχοληθούν περισσότερο με προβλήματα που δεν ξέρουμε πως να λύσουμε γρήγορα: Michael R. Garey, David S. Johnson Computers and Intractability : A Guide to the Theory of Np- Completeness (Series of Books in the Mathematical Sciences) Freeman, 1979. epl333 lect1 2011 28 28
Φροντιστήρια Βαγγέλης ούρος (douros at aueb dot gr) Γιώργος Ζώης (georzois at aueb dot gr) Κούρουπας Γεώργιος (kouroupa -AT- aueb.gr) Ώρες ρςφροντιστηρίων (δύο τμήματα): ) Βαγγέλης ούρος Α' Τμήμα: ευτέρα 13:00-15:00 Αίθουσα Π Β' Τμήμα: Τετάρτη 13:00-15:00 23 epl333 lect1 2011 29 29
Πρόοδοι (προαιρετικές, πρέπει να δηλώσετε αν θέλετε να γράψετε μια πρόοδο μια εβδομάδα πριν την κάθε πρόοδο) 1η Πρόοδος: 31 Μαρτίου. 2η Πρόοδος: 18 Μαΐου. 20% του τελικού βαθμού κάθε πρόοδος epl333 lect1 2011 30 30
Προγραμματιστικές εργασίες (προαιρετικές σε ομάδες 2-3 ατόμων, εξετάζονται προφορικά) 4 Μαΐου : 1ο πρόγραμμα. 2 Ιουνίου: 2ο πρόγραμμα. 10% κάθε πρόγραμμα epl333 lect1 2011 31 31
Τελικός βαθμός Οι εργασίες και οι πρόοδοι είναι προαιρετικές Το ποσοστό προόδων μετράει μόνο αν ανεβάζουν την τελική βαθμολογία. Η βαθμολογία εργασιών είναι προσθετική. Για να περάσετε το μάθημα πρέπει προσέλθετε στο τελικό διαγώνισμα πάρετε βαθμό τουλάχιστον 3,5/10. epl333 lect1 2011 32 32
Ύλη στο e-class στα έγραφα, υπάρχει το αρχείο, Υλη προόδων και τελικών εξετάσεων Το οποίο ενημερώνω πριν και μετά από κάθε μάθημα εν θα δώσω σελίδες από συγγράμματα... epl333 lect1 2011 33 33
Επαναφορά στο μάθημα: Είναι φυσικό, για διάφορους λόγους να χάσετε μερικές διαλέξεις. Αν κάποιος θέλει να ξαναρχίσει να παρακολουθεί σε κάποιο σημείο του εξάμηνου, προσφέρω βοήθεια επαναφοράς: Μια συνάντηση που θα εξηγήσω τι είναι απαραίτητο από τα προηγούμενα για να γίνει κατανοητή η επόμενη διάλεξη. epl333 lect1 2011 34 34
Χρειάζομαι τις παρατηρήσεις σας!! Να απαντάτε στα ερωτηματολόγια στο e-class class... epl333 lect1 2011 35 35
Καλό εξάμηνο!! epl333 lect1 2011 36 36