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

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

Download "Εισαγωγή στους αλγορίθµους"

Transcript

1

2 Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest CliffordStein Εισαγωγή στους αλγορίθµους Απόδοση στα ελληνικά: Ιωάννης Παπαδόγγονας Επιστηµονική επιµέλεια: Γεώργιος Φρ. Γεωργακόπουλος Με τη συνεργασία των: Σταύρου Νικολόπουλου Λεωνίδα Παληού Βιβής Φραγκοπούλου ÓÂappleÈÛÙËÌÈ ÎÂÛ Î ÔÛÂÈÛ ÚËÙËÛ Ιδρυτική ωρεά Παγκρητικής Ενώσεως Αµερικής ΗΡΑΚΛΕΙΟ 2010

3 π ªπ π ƒ Ι ΡΥΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΡΕΥΝΑΣ Ηράκλειο Κρήτης, Τ.Θ. 1527, Τηλ , , Fax: Αθήνα: Μάνης 5, Τηλ , Fax: ΣΕΙΡΑ: ΠΑΝΕΠΙΣΤΗΜΙΑΚΗ ΒΙΒΛΙΟΘΗΚΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ / ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ È ı ÓÙÂÛ ÂÈÚ Û: ˆÚÁÈÔÛ ºÚ. ˆÚÁ ÎÔappleÔ ÏÔÛ, πˆ ÓÓËÛ apple ÔÁÁÔÓ Û Τίτλος πρωτοτύπου: Introduction to Algorithms, 2nd edition c 1990, 2001: The Massachusetts Institute of Technology - MIT Press c για την ελληνική γλώσσα: 2003, Πανεπιστηµιακές Εκδόσεις Κρήτης Πρώτη έκδοση: εκέµβριος 2006 Πρώτη ανατύπωση: Μάιος 2007 εύτερη ανατύπωση: εκέµβριος 2008 Τρίτη ανατύπωση: Μάιος 2010 Απόδοση στα ελληνικά: Ιωάννης Παπαδόγγονας (ΠΕΚ) Επιστηµονική επιµέλεια: Γεώργιος Φρ. Γεωργακόπουλος Με τη συνεργασία των: Σταύρου Νικολόπουλου Λεωνίδα Παληού Βιβής Φραγκοπούλου Στοιχειοθεσία, σελιδοποίηση, επιµέλεια έκδοσης: Ιωάννης Παπαδόγγονας (ΠΕΚ) Μακέτα εξωϕύλλου: Βάσω Αβραµοπούλου ISBN set ΤΟΜΟΣΙ

4 Περιεχόµενα Πρόλογος του επιµελητή Πρόλογος xiii xi I Θεµελιώδεις έννοιες Εισαγωγή 3 1 Ορόλοςτωναλγορίθµων στις υπολογιστικές διαδικασίες Αλγόριθµοι Οι αλγόριθµοι ως τεχνολογία 10 2 Προκαταρκτικές έννοιες και παρατηρήσεις Ενθετική ταξινόµηση Ανάλυση αλγορίθµων Σχεδίαση αλγορίθµων 28 3 Ρυθµός αύξησης συναρτήσεων Ασυµπτωτικός συµβολισµός Καθιερωµένοι συµβολισµοίκαι συνήθεις συναρτήσεις 52 4 Αναδροµικές σχέσεις Η µέθοδος της αντικατάστασης Η µέθοδος του δένδρου αναδροµής Η κεντρική µέθοδος Απόδειξη του κεντρικού θεωρήµατος 75 5 Πιθανοτικήανάλυση και τυχαιοκρατικοί αλγόριθµοι Το πρόβληµα της πρόσληψης είκτριες τυχαίες µεταβλητές Τυχαιοκρατικοίαλγόριθµοι Πιθανοτική ανάλυση και άλλες χρήσεις των δεικτριών τυχαίων µεταβλητών 104

5 vi Περιεχόµενα II Ταξινόµηση και διατακτικές στατιστικές Εισαγωγή Τ αξινόµηση σωρού Σωροί ιατήρηση της ιδιότητας σωρού Κατασκευή σωρού Ο αλγόριθµος της ταξινόµησης σωρού Ουρές προτεραιότητας Τ αχυταξινόµηση Περιγραϕή της ταχυταξινόµησης Επίδοση της ταχυταξινόµησης Μια τυχαιοκρατική εκδοχή της ταχυταξινόµησης Ανάλυση της ταχυταξινόµησης 152 Τ8 αξινόµησησεγραµµικό χρόνο Κάτω ϕράγµαταγια αλγορίθµους ταξινόµησης Απαριθµητική ταξινόµηση Αριθµοτακτική ταξινόµηση Ταξινόµηση µε δοχεία ιάµεσοικαιδιατακτικές στατιστικές Ελάχιστο και µέγιστο Επιλογή σε γραµµικό αναµενόµενο χρόνο Επιλογή σε γραµµικό χρόνο χειρότερης περίπτωσης 186 III οµές δεδοµένων Εισαγωγή Στοιχειώδεις δοµές δεδοµένων Στοίβες καιουρές Αλυσίδες Υλοποίηση δεικτών και αντικειµένων Αναπαράσταση έρριζων δένδρων Πίνακες διασποράς Πίνακες σταθερών διευθύνσεων Πίνακεςδιασποράς Συναρτήσεις διασποράς Η µέθοδος των µεταβλητών διευθύνσεων Πλήρης διασπορά υαδικά δένδρα αναζήτησης Τι είναι ένα δυαδικό δένδρο αναζήτησης; Άντληση πληροϕοριών από δυαδικό δένδρο αναζήτησης Εισαγωγή και διαγραϕή Τυχαία κατασκευασµένα δυαδικά δέντρα αναζήτησης 264

6 Περιεχόµενα vii 13 Μελανέρυθρα δένδρα Ιδιότητες των µελανέρυθρων δένδρων Περιστροϕές Εισαγωγή ιαγραϕή Επαύξηση δοµών δεδοµένων υναµικές διατακτικές στατιστικές Η επαύξηση δοµών δεδοµένων στην πράξη ένδρα διαστηµάτων 311 IV Ανώτερες τεχνικές σχεδίασης καιανάλυσης Εισαγωγή υναµικός προγραµµατισµός Χρονοπρογραµµατισµός γραµµής παραγωγής Πολλαπλασιασµός αλληλουχίας πινάκων Στοιχεία δυναµικού προγραµµατισµού Μέγιστη κοινή υπακολουθία Βέλτιστα (στατικά) δυαδικά δένδρα αναζήτησης Άπληστοι αλγόριθµοι Ένα πρόβληµα επιλογής δραστηριοτήτων Στοιχεία της άπληστης στρατηγικής Κώδικες Huffman Θεωρητική θεµελίωση της άπληστης µεθοδολογίας Ένα πρόβληµα χρονοπρογραµµατισµού εργασιών Αντισταθµιστική ανάλυση Η αθροιστική µέθοδος Η χρεωπιστωτική µέθοδος Η ενεργειακή µέθοδος υναµικοίπίνακες 420 V οµές δεδοµένων προηγµένης σχεδίασης Εισαγωγή ένδρα Β Ορισµός των δένδρων Β Βασικές πράξεις σε δένδρα Β ιαγραϕήκλειδιού από δένδρο Β ιωνυµικοί σωροί ιωνυµικά δένδρα και διωνυµικοίσωροί Πράξεις σε διωνυµικούς σωρούς 465

7 viii Περιεχόµενα 20 Σωροί Fibonacci οµή των σωρών Fibonacci Πράξεις συγχωνεύσιµου σωρού Μείωση κλειδιού και διαγραϕή κόµβου Φραγή του µέγιστου βαθµού οµές δεδοµένων για παράσταση ξένων συνόλων Πράξεις ξένων συνόλων Αναπαράσταση ξένων συνόλων µέσω αλυσίδων άση ξένων συνόλων Ανάλυση της ένωσης κατά τάξηµεσυµπίεσηκλάδου 512 VI Αλγόριθµοι γραϕηµάτων Εισαγωγή Στοιχειώδεις αλγόριθµοι γραϕηµάτων Αναπαραστάσεις γραϕηµάτων Οριζόντια διερεύνηση Καθοδική διερεύνηση Τοπολογική ταξινόµηση Ισχυρά συνδεδεµένες συνιστώσες Ελαϕρύτατα συνδετικάδένδρα Επέκταση ελαϕρύτατου συνδετικού δένδρου Οι αλγόριθµοι των Kruskal και Prim Οµοαϕετηριακές ελαϕρύτατες διαδροµές Ο αλγόριθµος των Bellman-Ford Οµοαϕετηριακές ελαϕρύτατες διαδροµές σε κατευθυντά άκυκλα γραϕήµατα ΑλγόριθµοςτουDijkstra Περιορισµοίδιαϕοράς και ελαϕρύτατες διαδροµές Αποδείξεις των ιδιοτήτων ελαϕρύτατων διαδροµών Πανζευκτικές ελαϕρύτατες διαδροµές Ελαϕρύτατες διαδροµές και πολλαπλασιασµός πινάκων Ο αλγόριθµος των Floyd-Warshall Αλγόριθµος του Johnson για αραιά γραϕήµατα Μέγιστη ροή ίκτυα ροής Η µέθοδος των Ford-Fulkerson Μέγιστη διµερής αντιστοίχιση Αλγόριθµοι διοχέτευσης-αναβάθµισης Ο αλγόριθµος της προτακτικής αναβάθµισης 684

8 Περιεχόµενα ix VII Παράρτηµα: Μαθηµατικό υπόβαθρο Εισαγωγή Π 1 Αʹ Αθροίσµατα Π 2 Αʹ.1 Τύποι και ιδιότητες αθροισµάτων Π 2 Αʹ.2 Φραγή αθροισµάτων Π 6 Βʹ Σύνολα, σχέσεις, γραϕήµατα και άλλα Π 14 Βʹ.1 Σύνολα Π 14 Βʹ.2 Σχέσεις Π 19 Βʹ.3 Συναρτήσεις Π 21 Βʹ.4 Γραϕήµατα Π 23 Βʹ.5 ένδρα Π 28 Γʹ Απαρίθµηση καιπιθανότητες Π 37 Γʹ.1 Απαρίθµηση Π 37 Γʹ.2 Πιθανότητες Π 42 Γʹ.3 ιακριτές τυχαίες µεταβλητές Π 49 Γʹ.4 Η γεωµετρική και η διωνυµική κατανοµή Π 54 Γʹ.5 Οι ουρές της διωνυµικής κατανοµής Π 59 Βιβλιογραϕία Β 1 Ευρετήριο Ε 1

9 Πρόλογος του επιµελητή Οι Πανεπιστηµιακές Εκδόσεις Κρήτης έχουν τη χαρά να παρουσιάσουν την Εισαγωγή στους αλγορίθµους,τηνελληνικήµετάϕρασητουβιβλίου «Introduction to Algorithms», των T.H. Cormen, C.E. Leiserson, R.L. Rivest και C. Stein. Το αµερικανικό πρωτότυπο εγχειρίδιο θεωρείται διεθνώς εξαιρετικά επιτυχηµένο, λόγω αϕ ενός της πληρότητάς του και αϕ ετέρου της υψηλότατης διδακτικής του αξίας. Λόγω του µεγέθους του βιβλίου, θεωρήσαµε ως πιο πρακτική επιλογή να εκδοθείη ελληνική µετάϕραση σε δύο τόµους. στα χέρια σας κρατάτε τον πρώτο τό- µο. Συµπεριλάβαµε τα µαθηµατικά παραρτήµατα σε αυτόν τον πρώτο τόµο, και το γλωσσάρι στον δεύτερο τόµο. (Το γλωσσάρι είναι διαθέσιµο και από τη σχετική ιστοσελίδα του δικτυοτόπου των ΠΕΚ.) Το βιβλίο απευθύνεται σε διδάσκοντες και ϕοιτητές στην περιοχή της σχεδίασης και ανάλυσης αλγορίθµων, κυρίως σε τµήµατα πληροϕορικής και τµήµατα εϕαρ- µοσµένων ή καθαρών µαθηµατικών. Ο πρώτος τόµος επαρκείγια µια εισαγωγή στη θεωρία των αλγορίθµων σε προπτυχιακό επίπεδο, αϕού περιλαµβάνει τις θε- µελιώδεις αλγοριθµικές έννοιες και τεχνικές, και πραγµατεύεται αρκετές επιµέρους αλγοριθµικές περιοχές, όπως δοµές δεδοµένων και θεωρία γραϕηµάτων. Ηέκδοσητουέργουεντάσσεται στη γενικότερη σειρά την οποία οι ΠΕΚ έχουν προγραµµατίσει να αϕιερώσουν σε πανεπιστηµιακά διδακτικά εγχειρίδια στην περιοχή της πληροϕορικής. Μία από τις κύριες µέριµνες των ΠΕΚ είναι η προσεκτική χρήση της ελληνικής γλώσσας, αϕού οι µεταϕράσεις ξένων έργων στα ελληνικά έχουν προϕανώς ως στόχο να διευκολύνουν τους έλληνες ϕοιτητές και καθηγητές να µελετήσουν, να µιλήσουν, να γράψουν και να σκεϕθούν σε σωστά ελληνικά εκµεταλλευόµενοι έτσι όλα τα πλεονεκτήµατα της µητρικής γλώσσας. Ένα από τα σηµαντικά προβλήµατα που έπρεπε να επιλυθούν στη συγκεκριµένη έκδοση ήταν ηεύστοχηαπόδοση στα ελληνικά της σχετικής επιστηµονικής ορολογίας, και η συνεπής τήρηση των όποιων ορολογικών επιλογών καθ όλη την υπό έκδοση σειρά. Αϕιερώσαµε, µαζίµε τον µεταϕραστή του έργου κ. Ιωάννη Παπαδόγγονα, όλο τον απαραίτητο χρόνο για αυτόν τον σκοπό. Η τελική κρί ση για το αποτέλεσµα της προσπάθειας αυτής ανήκει, βεβαίως, στους αναγνώστες. Ευχαριστώ εκ µέρους µου θερµά για την ολοκλήρωση της έκδοσης τον ιευθυντή των ΠΕΚ, κ. Στέϕανο Τραχανά, και όλους τους συνεργάτες που συνεισέϕεραν σε αυτήν την προσπάθεια, ιδιαιτέρως την κ. ιονυσία ασκάλου, για την προσαρµογή των σχηµάτων, τον κ. Παπαδόγγονα, για τον δηµιουργικό διάλογο που αναπτύξα- µε,και τον κ.david McClurkin, για την τεχνική υποστήριξη που προσέϕερε σχετικά µε το στοιχειοθετικό πρόγραµµα LATEX. ίπλα σε ένα τέτοιο επιτελείο συνεργατών το έργο γίνεται πρόκληση και το καθήκον χαρά. Γεώργιος Φρ. Γεωργακόπουλος

10 Πρόλογος Το βιβλίο αυτό αποτελείµια εκτενή εισαγωγή στη σύγχρονη µελέτη των υπολογιστικών αλγορίθµων. Πραγµατεύεται ένα µεγάλο πλήθος αλγορίθµων, τους οποίους καλύπτει σε αρκετά µεγάλο βάθος, διατηρώντας ταυτόχρονα τη σχεδίαση και την ανάλυσή τους προσιτή σε όλους τους αναγνώστες. Έχουµε προσπαθήσει να διατηρήσουµε τη µελέτη των αλγορίθµων σε στοιχειώδες επίπεδο, χωρίς να θυσιάσουµε την εµβάθυνση ή τη µαθηµατική αυστηρότητα. Σε κάθε κεϕάλαιο παρουσιάζεται ένας αλγόριθµος, µια τεχνική σχεδίασης, µια περιοχή εϕαρµογών ή ένα σχετικό θέµα. Οι αλγόριθµοι περιγράϕονται σε ϕυσική γλώσσα και µέσω ενός «ψευδοκώδικα» σχεδιασµένου ώστε να είναι κατανοητός από οποιονδήποτε έχει έστω και ελάχιστη εµπειρία στον προγραµµατισµό. Το βιβλίο περιλαµβάνει περισσότερα από 230 σχήµατα τα οποία αποσαϕηνίζουν τη λειτουργία των αλγορίθµων. εδοµένου ότι δίνουµε έµϕαση στη δραστικότητα ως κριτήριο σχεδίασης, έχουµε συµπεριλάβει διεξοδικές αναλύσεις των χρόνων εκτέλεσης των αλγορίθµων µας. Σκοπός του βιβλίου είναι να χρησιµοποιηθεί ως διδακτικό εγχειρίδιο σε προπτυχιακά ή µεταπτυχιακά µαθήµατα αλγορίθµων ή δοµών δεδοµένων. εδοµένου ότι εκτός από τις µαθηµατικές πλευρές της σχεδίασης αλγορίθµων πραγµατεύεται και τα σχετικά τεχνικά ζητήµατα, προσϕέρεται εξίσου και για κατ ιδίαν µελέτη από επαγγελµατίες µε τεχνικό προσανατολισµό. Σε αυτή τη δεύτερη έκδοση, το βιβλίο έχει αναθεωρηθεί στο σύνολό του. Οι αλλαγές εκτείνονται από την προσθήκη νέων κεϕαλαίων µέχρι την αναδιατύπωση µεµονωµένων προτάσεων. Προς τον διδάσκοντα Το βιβλίο αυτό έχει σχεδιαστείέτσι ώστε να είναι αϕ ενός προσαρµόσιµο στις ανάγκες των αναγνωστών και αϕ ετέρου πλήρες. Μπορείνα χρησιµοποιηθείστη διδασκαλία διαϕόρων µαθηµάτων, από ένα προπτυχιακό µάθηµα δοµών δεδοµένων µέχρι και ένα µεταπτυχιακό µάθηµα αλγορίθµων. εδοµένου ότι η ύλη που περιλαµβάνει υπερβαίνει σηµαντικά αυτήν που µπορεί να καλυϕθεί σε ένα τυπικό εξα- µηνιαίο µάθηµα, µπορεί να θεωρηθεί ως ένα είδος «εκθετηρίου» από το οποίο έχετε τη δυνατότητα να επιλέξετε την ύλη που ταιριάζει περισσότερο στο µάθηµα που επιθυµείτε να διδάξετε. Ευελπιστούµε ότι η δοµή του βιβλίου θα σας επιτρέψει να οργανώσετε το µάθηµά σας µόνο µε βάση τα κεϕάλαια που θα θεωρήσετε αναγκαία. Έχουµε ϕροντίσει τα διάϕορα κεϕάλαια να είναι σχετικά αυτοτελή, ώστε να µη χρειάζεται να ανησυχείτε για αναπάντεχες και περιττές αλληλεξαρτήσεις µεταξύ τους. Σε κάθε κεϕάλαιο,

11 xiv Πρόλογος παρατίθενται πρώτα τα πιο βατά τµήµατα της ύλης και ακολουθούν τα πιο απαιτητικά, ενώ τα όρια µεταξύ των ενοτήτων σηµατοδοτούν ϕυσιολογικά σηµεία τερµατισµού. Σε ένα προπτυχιακό µάθηµα, θα µπορούσαν να χρησιµοποιηθούν µόνο οι αρχικές ενότητες των κεϕαλαίων που θα επιλεγούν. σε ένα µεταπτυχιακό µάθηµα, θα µπορούσε κανείς να καλύψει στο σύνολό τους τα κεϕάλαια που θα επιλέξει. Το βιβλίο περιλαµβάνει περισσότερες από920 ασκήσεις και περισσότερα από 140 προβλήµατα. Κάθε ενότητα ολοκληρώνεται µε τις αντίστοιχες ασκήσεις, και κάθε κεϕάλαιο µε τα αντίστοιχα προβλήµατα. Οι ασκήσεις συνίστανται εν γένει σε σύντοµα ερωτήµατα που ελέγχουν την αϕοµοίωση της ύλης σε βασικό επίπεδο. Ορισµένες από τις ασκήσεις αποτελούν απλές νοητικές δοκιµασίες αυτοελέγχου, ενώ άλλες είναι περισσότερο ουσιώδεις και προσϕέρονται για ανάθεση κατ οίκον εργασιών. Τα προβλήµατασυνιστούν πιο σύνθετες µελέτες περιπτώσεων στις οποίες συχνά παρουσιάζονται και κάποια συµπληρώµατα της θεωρίας, και αποτελούνται κατά κανόνα από διάϕορα ερωτήµατα τα οποία καθοδηγούν τον σπουδαστή στα βήµατα που θα πρέπει να ακολουθήσει για να ϕτάσει στη λύση. Οι ενότητες και οι ασκήσεις που είναι περισσότερο κατάλληλες για µεταπτυχιακούς παρά για προπτυχιακούς ϕοιτητές επισηµαίνονται µε έναν αστερίσκο ( ). Οι επισηµασµένες ενότητες δεν είναι κατ ανάγκη δυσκολότερες από τις µη επισηµασµένες, αλλά ενδέχεται να απαιτούν υψηλότερο µαθηµατικό υπόβαθρο. Οµοίως, οι επισηµασµένες ασκήσεις ενδέχεται να απαιτούν υψηλότερο υπόβαθρο ή αυξηµένη επινοητικότητα. Προς τον σπουδαστή Ελπίζουµε το βιβλίο αυτό να αποτελέσει για εσάς µια ευχάριστη εισαγωγή στο πεδίο των αλγορίθµων. Έχουµε προσπαθήσει να παρουσιάσουµε όλους τους αλγορίθµους µε τρόπο βατό και ενδιαϕέροντα. Για να διευκολύνουµε την κατανόηση µη οικείων ήδύσκολων αλγορίθµων, έχουµε ακολουθήσει µια βήµα προς βήµα περιγραϕή. Παραθέτουµε επίσης λεπτοµερείς αναϕορές στα µαθηµατικά που απαιτούνται για την κατανόηση της ανάλυσης των αλγορίθµων. Εάν είστε ήδη εξοικειµένοι µε κάποιο γνωστικόαντικείµενο, θαδιαπιστώσετε ότι τα κεϕάλαιαείναι δοµηµένα έτσι ώστε να µπορείτε να διατρέξετε επί τροχάδην τις εισαγωγικές ενότητες και να προχωρήσετε γρήγορασταπιο απαιτητικά τµήµατα της ύλης. εδοµένου του µεγάλου όγκου του βιβλίου, το µάθηµά σας θα καλύψει πιθανότητα µόνο ένα τµήµα της συνολικής ύλης του. Ωστόσο, έχουµε καταβάλει κάθε προσπάθεια ώστε το βιβλίο αυτό, πέραν της χρήσης του ως διδακτικού εγχειριδίου, να αποτελέσει επίσης χρήσιµο βοήθηµα στη µελλοντική σας καριέρα τόσο ως βιβλίο αναϕοράς για µαθηµατικά ζητήµατα όσο και ως τεχνικό εγχειρίδιο. Ποια είναι τα προαπαιτούµενα για τη µελέτη αυτού του βιβλίου; Θα πρέπει να έχετε κάποια εµπειρία στον προγραµµατισµό. Συγκεκριµένα, θα πρέπει να έχετε κατανοήσει τις αναδροµικές διαδικασίες και τις απλές δοµές δεδοµένων, όπως οι συστοιχίες και οι αλυσίδες. Θα πρέπει να έχετε κάποια ευχέρεια στις αποδείξεις µέσω µαθηµατικής επαγωγής. Λίγα τµήµατα του βιβλίου προϋποθέτουν στοιχειώδεις γνώσεις απειροστικού λογισµού. Πέραν αυτών, όλες οι µαθηµατικές τεχνικές που θα χρειαστείτε αναπτύσσονται στα ΜέρηIκαιVII.

12 Πρόλογος xv Προς τον επαγγελµατία Το µεγάλο εύρος των ζητηµάτων που καλύπτει το βιβλίο αυτό το καθιστούν ιδανικό εγχειρίδιο αναϕοράς για αλγορίθµους. Το γεγονός ότι όλα τα κεϕάλαια είναι σχετικά αυτοτελή σας επιτρέπει να εστιάσετε στα ζητήµατα που σας ενδιαϕέρουν περισσότερο. Οι περισσότεροι από τους αλγορίθµους που πραγµατευόµαστε στο βιβλίο αυτό έχουν µεγάλη πρακτική χρησιµότητα. Για τον λόγο αυτό, η µελέτη τους επεκτείνεται και σε ζητήµατα υλοποίησης, καθώς και σε τεχνικά θέµατα. Για τους λίγους αλγορίθµους που έχουν πρωτίστως θεωρητικό ενδιαϕέρον, συχνά παραθέτουµε πρακτικές εναλλακτικέςλύσεις. Εάν θελήσετε να υλοποιήσετε κάποιους από τους αλγορίθµους, θα διαπιστώσετε ότι η µετάϕρασή τους απο τον ψευδοκώδικα που χρησιµοποιούµε στην γλώσσα προγραµµατισµού της επιλογής σας είναι αρκετά απλή διαδικασία. Ο ψευδοκώδικας είναι σχεδιασµένος έτσι ώστε η παρουσίαση όλων των αλγορίθµων να χαρακτηρίζεται από σαϕήνεια και λιτότητα. Ως εκ τούτου, δεν ασχολούµαστε µε ζητήµατα διαχείρισης σϕαλµάτων και τεχνολογίας λογισµικού τα οποία βασίζονται σε συγκεκριµένες παραδοχές για το εκάστοτε προγραµµατιστικό περιβάλλον. Στόχος µας είναι να παρουσιάσουµε κάθε αλγόριθµο µε απλό και άµεσο τρόπο, και να αποϕύγουµε τη συσκότιση των βασικών του χαρακτηριστικών από τις ιδιοµορϕίες της κάθε γλώσσας προγραµµατισµού. Προς τους συναδέλϕους µας Έχουµε ϕροντίσει να παραθέσουµε µια εκτενή βιβλιογραϕία καθώς και παραποµπές στη σύγχρονη αρθρογραϕία. Στο τέλος κάθε κεϕαλαίου, παρατίθενται κάποιες «σηµειώσεις» οι οποίες αναϕέρονται σε ζητήµατα ιστορικού ενδιαϕέροντος καθώς και σε βιβλιογραϕικές πηγές. Εντούτοις, οι σηµειώσεις αυτές δεν εξαντλούν τις βιβλιογραϕικές αναϕορές στοπεδίοτωναλγορίθµων. Ανκαι, κρίνοντας απότονόγκο του βιβλίου, θα ήταν µάλλον δύσκολο να το πιστέψει κανείς, πολλοί ενδιαϕέροντες αλγόριθµοι δεν στάθηκεδυνατόννα συµπεριληϕθούνλόγω έλλειψης χώρου. Παρά τα αναρίθµητα αιτήµατα που δεχθήκαµε από σπουδαστές για να συµπεριλάβουµε τις λύσεις των προβληµάτων και των ασκήσεων, επιλέξαµε να µην παραθέσουµε αναλυτικές υποδείξεις για τα προβλήµατα και τις ασκήσεις, προκειµένου οι σπουδαστές να αποϕύγουν τον πειρασµό να ανατρέξουν απλώς στη λύση αντί να τη βρουν οι ίδιοι. Αλλαγές στη δεύτερη έκδοση Τι έχει αλλάξει µεταξύ της πρώτης και της δεύτερης έκδοσης αυτού του βιβλίου; Ανάλογα µε το πώς το εξετάζει κανείς, είτε ελάχιστα πράγµατα είτε πάρα πολλά. Όπως µπορείνα διαπιστώσει κανείς µε µια σύντοµη µατιά στον πίνακα περιεχο- µένων, τα κεϕάλαια και οι ενότητες της πρώτης έκδοσης υπάρχουν στην πλειονότητάτους καιστη δεύτερη. Έχουµε αϕαιρέσειδύο κεϕάλαιακαι λίγες ενότητες, και έχουµε προσθέσει τρία νέα κεϕάλαια και τέσσερεις νέες ενότητες, πέραν των νέων αυτών κεϕαλαίων. Εάν προσπαθήσει κανείς να εκτιµήσει το εύρος των αλλαγών µε βάση τον πίνακα των περιεχοµένων, θα συµπεράνει µάλλον ότι δεν υπάρχουν σηµαντικές µεταβολές.

13 xvi Πρόλογος Εντούτοις, οι αλλαγές στη δεύτερη έκδοση εκτείνονται πολύ πέραν αυτών που ϕαίνονται στον πίνακα των περιεχοµένων. Οι πιο σηµαντικές από αυτές, µε αυθαίρετη σειρά, είναι οι εξής: Στην οµάδα των συγγραϕέων έχει προστεθείκαι ο Cliff Stein. Έχουν διορθωθείκάποια λάθη. Πόσα; Ας πούµε απλώς αρκετά. Υπάρχουν τρία νέα κεϕάλαια: Το Κεϕάλαιο 1 πραγµατεύεται τον ρόλο των αλγορίθµων στις υπολογιστικές διαδικασίες. Το Κεϕάλαιο 5 καλύπτει την πιθανοτική ανάλυση και τους τυχαιοκρατικούς αλγορίθµους. Όπως και στην πρώτη έκδοση, τα αντικείµενα αυτά απαντούν σε διάϕορα σηµείατουβιβλίου. Το Κεϕάλαιο 29 είναι αϕιερωµένο στον γραµµικό προγραµµατισµό. Σε κεϕάλαια που υπήρχαν και στην πρώτη έκδοση, έχουν προστεθείνέες ενότητες στα εξής αντικείµενα: στην πλήρη διασπορά(ενότητα 11.5), σε δύοεϕαρµογές δυναµικού προγραµµατισµού (Ενότητες 15.1 και 15.5), και σε προσεγγιστικούς αλγορίθµους οιοποίοι βασίζονται σε τυχαιοκρατικές διαδικασίες και σε γραµµικό προγραµµατισµό (Ενότητα 35.4). Προκειµένου να εισαγάγουµε τον αναγνώστη στην καθαυτό µελέτητωναλγορίθµων νωρίτερα, έχουµε µετακινήσει τρία από τα κεϕάλαια που αϕορούν το µαθηµατικό υπόβαθρο από το Μέρος I στο Παράρτηµα, το οποίο αποτελεί το Μέρος VII. Υπάρχουν περισσότερα από 40 νέα προβλήµατα και περισσότερες από 185 νέες ασκήσεις. Έχουµε καθιερώσει την απευθείας χρήση των αναλλοίωτων συνθηκών για την απόδειξη της ορθότητας αλγορίθµων. Η πρώτη αναλλοίωτη συνθήκη εµϕανίζεται στο Κεϕάλαιο 2, ενώ η µέθοδος χρησιµοποιείται συνολικά µερικές δεκάδες ϕορές σεόλοτοβιβλίο. Πολλές από τις πιθανοτικές αναλύσεις έχουν αναθεωρηθεί. Συγκεκριµένα, χρησιµοποιούµε σε περίπου δέκα περιπτώσειςτηντεχνικήτων«δεικτριών τυχαίων µεταβλητών», η οποία απλοποιεί την πιθανοτική ανάλυση, ιδιαίτερα όταν οι δείκτριες µεταβλητέςείναι εξαρτηµένες. Έχουµε επεκτείνει και ανανεώσει τις σηµειώσεις των κεϕαλαίων και τη βιβλιογραϕία. Η βιβλιογραϕία έχει αυξηθεί κατά περίπου 50%, και έχουµε προσθέσει αναϕορές σε πολλά νέα αποτελέσµατα τα οποία δηµοσιεύθηκαν µετά την κυκλοϕορία της πρώτης έκδοσης. Έχουµε προχωρήσει επίσης στις ακόλουθες αλλαγές: Από το κεϕάλαιοπουαϕορά την επίλυση αναδροµικών σχέσεων έχει απαλει- ϕθείη επαναληπτική µέθοδος. Αντ αυτής, στην Ενότητα 4.2, έχουµε «προαγάγει» τα δένδρα αναδροµής σε καθαυτό µέθοδο επίλυσης. Έχουµε διαπιστώσει ότι η µέθοδος της σχεδίασης δένδρων αναδροµής είναι λιγότερο ευάλωτη σε

14 Πρόλογος xvii σϕάλµατα απ ό,τι η επαναληπτική επίλυση αναδροµικών σχέσεων. Επισηµαίνουµε, ωστόσο, ότι τα δένδρα αναδροµής είναι καλύτερο να χρησιµοποιούνται για τη διατύπωση εικασιών οι οποίες στη συνέχεια επιβεβαιώνονται µέσω της µεθόδου της αντικατάστασης. Η µέθοδος διαµέρισης που χρησιµοποιείται στην ταχυταξινόµηση (Ενότητα 7.1) και ο αλγόριθµος διατακτικών στατιστικών γραµµικού αναµενόµενου χρόνου (Ενότητα 9.2) διαϕέρουν σε σχέση µε την πρώτη έκδοση. Στην έκδοση αυτή, χρησιµοποιούµε τη µέθοδο που έχει αναπτυχθείαπό τον Lomuto, η οποία, σε συνδυασµόµε τις δείκτριες τυχαίεςµεταβλητές, απλοποιεί κάπως την ανάλυση. Η µέθοδος της πρώτης έκδοσης, η οποία οϕείλεται στον Hoare, παρατίθεται ως πρόβληµα στο Κεϕάλαιο 7. Έχουµε τροποποιήσει την περιγραϕή της καθολικής διασποράς (Ενότητα ) έτσι ώστε να εντάσσεται στη µελέτη της πλήρους διασποράς. Ηανάλυσητουύψουςενόςτυχαία κατασκευασµένου δυαδικού δένδρου αναζήτησης (Ενότητα 12.4) έχει απλοποιηθείσηµαντικά. Ηµελέτη των στοιχείων δυναµικού προγραµµατισµού (Ενότητα 15.3) έχει επεκταθείσηµαντικά, όπως καιηµελέτητωνστοιχείων των άπληστωναλγορίθµων (Ενότητα 16.2). Η διερεύνηση του προβλήµατος της επιλογής δραστηριοτήτων, µε το οποίο ξεκινά το κεϕάλαιο των άπληστων αλγορίθµων, διευκολύνει την αποσαϕήνιση της σχέσης µεταξύ δυναµικού προγραµµατισµού και άπληστων αλγορίθµων. Ηαπόδειξητουχρόνου εκτέλεσηςτης δοµής δεδοµένων της ένωσης ξένων συνόλων στην Ενότητα 21.4 έχει αντικατασταθεί. Η νέα απόδειξη βασίζεται στην ενεργειακή µέθοδο για τον προσδιορισµό ενός αυστηρού ϕράγµατος. Ηαπόδειξητης ορθότητας του αλγορίθµου για τις ισχυρά συνδεδεµένες συνιστώσες στην Ενότητα 22.5 έχει γίνει απλούστερη, σαϕέστερη και πιο άµεση. Το Κεϕάλαιο 24, που αναϕέρεταιστιςοµοαϕετηριακέςελαϕρύτατεςδιαδροµές, έχει ανασυγκροτηθείέτσι ώστε οι αποδείξεις των βασικών ιδιοτήτων να ενταχθούν σε µια ξεχωριστή ενότητα. Η νέα δοµή του κεϕαλαίου µας επιτρέπει να εισαγάγουµε νωρίτερα τους σχετικούς αλγορίθµους. ΗΕνότητα34.5 περιλαµβάνει µια διευρυµένη επισκόπηση της NP-πληρότητας καθώς και νέες αποδείξεις της NP-πληρότητας για τα προβλήµατα του χαµιλτονιανού κύκλου και του αθροίσµατος υποσυνόλων. Τέλος, σχεδόν όλες οι ενότητες έχουν τροποποιηθείπροκειµένου να διορθωθούν, να απλοποιηθούν και να αποσαϕηνιστούν οι διάϕορες εξηγήσεις και αποδείξεις. ικτυότοπος Μια άλλη αλλαγή σε σχέση µε την πρώτη έκδοση είναι ότι το βιβλίο διαθέτει πλέον τον δικό του δικτυότοπο: αυτού, µπορείτε να αναϕέρετε σϕάλµατα, να προµηθευτείτε έναν κατάλογο των γνωστών σϕαλµάτων, ή να κάνετε υποδείξεις. τα σχόλιά σας είναι ευπρόσδεκτα. Θα εκτιµούσαµε ιδιαίτερα τις ιδέες σας για νέες ασκήσεις και προβλήµατα, που θα θέλαµε όµως να συνοδεύονται από τις λύσεις τους. υστυχώς, δεν είναι δυνατόν να απαντήσουµεπροσωπικά σε όλα τα σχόλια.

15 xviii Πρόλογος Ευχαριστίες για την πρώτη έκδοση Πολλοίϕίλοι και συνάδελϕοι έχουν συµβάλει σηµαντικά στην ποιότητα αυτού του βιβλίου. Τους ευχαριστούµε όλους για τη συνδροµή τους και την εποικοδοµητική τους κριτική. Το Εργαστήριο Επιστήµης Υπολογιστών του MIT µας εξασϕάλισε ένα ιδανικό περιβάλλον εργασίας. Οι συνάδελϕοί µας από την Οµάδα Θεωρίας Υπολογισµού του εργαστηρίου προσέϕεραν σηµαντική υποστήριξη και επέδειξαν εξαιρετική υπο- µονή στις συνεχείς παρακλήσεις µας για κριτική αξιολόγηση των διαϕόρων κε- ϕαλαίων. Θα θέλαµε να ευχαριστήσουµε ιδιαίτερα τους Baruch Awerbuch, Shafi Goldwasser, Λεωνίδα Γκίµπα, Tom Leighton, Albert Meyer, David Shmoys, και Éva Tardos. Ευχαριστούµε επίσης τους William Ang, Sally Bemus, Ray Hirschfeld, και Mark Reinhold για την εύρυθµη λειτουργία των υπολογιστών µας (DEC Microvax, Apple Macintosh, και Sun Sparcstation) και την επαναµεταγλώττιση του TEX κάθε ϕορά που υπερβαίναµε κάποιο χρονικό όριο µεταγλώττισης. Η Thinking Machines Corporation προσέϕερε την υποστήριξή της στον Charles Leiserson για να ασχοληθείµε αυτό το βιβλίο κατά τη διάρκεια µιας εκπαιδευτικής άδειας από το MIT. Πολλοί συνάδελϕοι οι οποίοι χρησιµοποίησαν προσχέδια του κειµένου αυτού στη διδασκαλία µαθηµάτων σε άλλες σχολές µας υπέδειξαν αρκετές διορθώσεις και αναθεωρήσεις. Θα θέλαµε να ευχαριστήσουµε ιδιαίτερα τους Richard Beigel, Andrew Goldberg, Joan Lucas, Mark Overmars, Alan Sherman, και Diane Souvaine. Πολλοί βοηθοίκαθηγητού στα µαθήµατά µας συνεισέϕεραν σηµαντικά στην ανάπτυξη του υλικού αυτού. Ευχαριστούµε ιδιαίτερα τους Alan Baratz, Bonnie Berger, Aditi Dhagat, Burt Kaliski, Arthur Lent, Andrew Moulton, Μάριο Παπαευθυµίου, Cindy Phillips, Mark Reinhold, Phil Rogaway, Flavio Rose, Arie Rudich, Alan Sherman, Cliff Stein, Susmita Sur, Gregory Troxel, και Margaret Tuttle. Πολλοίάλλοι προσέϕεραν πολύτιµη τεχνική υποστήριξη. Η Denise Sergent αϕιέρωσε πολλές ώρες στις βιβλιοθήκες του MIT αναζητώντας βιβλιογραϕικές πηγές. Η Maria Sensale, η βιβλιοθηκονόµος του αναγνωστηρίου µας, ήταν πάντοτε προσηνής και εξυπηρετική. Η πρόσβαση που είχαµε στην προσωπική βιβλιοθήκη του Albert Meyer µας απάλλαξε από πολλές ώρες απασχόλησης στη βιβλιοθήκη για τηνπροετοιµασία τωνσηµειώσεωντωνκεϕαλαίων.οιshlomokipnis, Bill Niehaus, και David Wilson διόρθωσαν παλιές ασκήσεις, ανέπτυξαν νέες, και προσέθεσαν ση- µειώσεις στις λύσεις τους. Οι Μάριος Παπαευθυµίου και Gregory Troxel βοήθησαν στην ευρετηρίαση των όρων. Επί πολλά χρόνια, οι γραµµατείς µας Inna Radzihovsky, Denise Sergent, Gayle Sherman, και ιδιαιτέρως η Be Blackburn παρείχαν απεριόριστη υποστήριξη στην προσπάθεια αυτή. Τις ευχαριστούµε. Πολλοίϕοιτητές µάς ανέϕεραν σϕάλµατα στα αρχικά προσχέδια του βιβλίου. Ευχαριστούµε ιδιαίτερα τους Bobby Blumofe, Bonnie Eisenberg, Raymond Johnson, John Keen, Richard Lethin, Mark Lillibridge, Ιωάννη Πεζάρη, Steve Ponzio, και Margaret Tuttle για την προσεκτική τους ανάγνωση. Επίσης, πολλοί συνάδελϕοι συνέταξαν κριτικές ανασκοπήσεις για συγκεκριµένα κεϕάλαια, ή προσέϕεραν πληροϕορίες για συγκεκριµένους αλγορίθµους, και τους ευχαριστούµε θερµά. Ιδιαίτερα θα θέλαµε να ευχαριστήσουµε τους Bill Aiello, Alok Aggarwal, Eric Bach, Vašek Chvátal, Richard Cole, Johan Hastad, Alex Ishii, David Johnson, Joe Kilian, Dina Kravets, Bruce Maggs, Jim Orlin, James Park, Thane Plambeck, Hershel Safer, Jeff Shallit, Cliff Stein, Gil Strang, Bob Tarjan, και Paul Wang. ιάϕοροι συνάδελϕοίµας είχαν επίσης την καλοσύνη να µας προµηθεύ-

16 Πρόλογος xix σουν προβλήµατα. ευχαριστούµε ιδιαίτερα τους Andrew Goldberg, Danny Sleator, και Umesh Vazirani. Ήταν χαρά για µας η συνεργασία µε την MIT Press και την McGraw-Hill για τη διαµόρϕωση του κειµένου αυτού. Ευχαριστούµε ιδιαιτέρως τους Frank Satlow, Terry Ehling, Larry Cohen, και Lorrie Lejeune της MIT Press και τον David Shapiro της McGraw-Hill για την ενθάρρυνση, την υποστήριξη και την υποµονή τους, καθώς και τον Larry Cohen για την εξαιρετική επιµέλεια της έκδοσης. Ευχαριστίες για τη δεύτερη έκδοση Όταν ζητήσαµε από την Julie Sussman, P.P.A., να αναλάβει την τεχνική επιµέλεια της δεύτερης έκδοσης,δεν µπορούσαµε να ϕανταστούµε πόσο εύστοχη ήταν η επιλογή µας. Εκτός από την επιµέλεια του κειµένου ως προς το τεχνικό σκέλος, η Julie ανέλαβε επίσης µε ιδιαίτερο ζήλο και τη ϕιλολογική επιµέλεια. Αισθανόµαστε πολύ πιο ταπεινοίόταν σκεπτόµαστε πόσα λάθη εντόπισε η Julie στα αρχικά µας δοκί- µια, παρ ότι αυτό δεν προκαλείκαµία έκπληξη αν αναλογιστούµε πόσα εντόπισε στηνπρώτη έκδοση (δυστυχώς, αϕότου είχε εκτυπωθεί). Επιπλέον, η Julie υπερέβη το δικό της χρονοδιάγραµµα προκειµένου να προσαρµοστείστις δικές µας υποχρεώσεις ϕτάνοντας στο σηµείο να επιµεληθεί κάποια κεϕάλαια ακόµη και σε ένα ταξίδι της στις Παρθένους Νήσους! Julie, όσο και αν σε ευχαριστήσουµε για την καταπληκτική σου δουλειά, δεν θα είναι αρκετό. Η προετοιµασία της δεύτερης έκδοσης πραγµατοποιήθηκε ενόσω οι συγγραϕείς ήταν µέλη του Τµήµατος Επιστήµης Υπολογιστών του Dartmouth College και του Εργαστηρίου Επιστήµης Υπολογιστών του MIT. Και στα δύο αυτά ιδρύµατα, το περιβάλλον εργασίας ήταν ιδιαίτερα ενθαρρυντικό, και θα θέλαµε να ευχαριστήσουµε όλους τους συναδέλϕους µας για την υποστήριξή τους. ιάϕοροι ϕίλοι και συνάδελϕοι ανά την υϕήλιο διατύπωσαν υποδείξεις και απόψεις οι οποίες µας καθοδήγησαν στη συγγραϕή του κειµένου. Ευχαριστούµε πολύ τους Sanjeev Arora, Javed Aslam, Guy Blelloch, Avrim Blum, Scot Drysdale, Hany Farid, Hal Gabow, Andrew Goldberg, David Johnson, Yanlin Liu, Nicolas Schabanel, Alexander Schrijver, Sasha Shen, David Shmoys, Dan Spielman, Gerald Jay Sussman, Bob Tarjan, Mikkel Thorup, και Vijay Vazirani. Πολλοίδάσκαλοι και συνάδελϕοι µας δίδαξαν πολλά σχετικά µε τους αλγορίθ- µους. Θα θέλαµε να ευχαριστήσουµε ιδιαίτερα τους δασκάλους µας Jon L. Bentley, Bob Floyd, Don Knuth, Harold Kuhn, H. T. Kung, Richard Lipton, Arnold Ross, Larry Snyder, Michael I. Shamos, David Shmoys, Ken Steiglitz, Tom Szymanski, Éva Tardos, Bob Tarjan, καιjeffreyullman. Θα πρέπει επίσης να ευχαριστήσουµε πολλούς από τους τους βοηθούς καθηγητού στα µαθήµατα της θεωρίας αλγορίθµων στο MIT και το Dartmouth, µεταξύ των οποίων τους Joseph Adler, Craig Barrack, Bobby Blumofe, Roberto De Prisco, Matteo Frigo, Igal Galperin, David Gupta, Raj D. Iyer, Nabil Kahale, Sarfraz Khurshid, Σταύρο Κολλιόπουλο, Alain Leblanc, Yuan Ma, Maria Minkoff, ηµήτρη Μήτσουρα, Alin Popescu, Harald Prokop, Sudipta Sengupta, Donna Slonim, Joshua A. Tauber, Sivan Toledo, Elisheva Werner-Reiss, Lea Wittie, Qiang Wu, και Michael Zhang. Οι William Ang, Scott Blomquist, και Greg Shomo στο MIT και οι Wayne Cripps, John Konkle, και Tim Tregubov στο Dartmouth µας προσέϕεραν υπολογιστική υποστήριξη. Ευχαριστούµε επίσης τους Be Blackburn,DonDailey, Leigh Deacon,

17 xx Πρόλογος Irene Sebeda, και Cheryl Patton Wu του MIT και τους Phyllis Bellmore, Kelly Clark, Delia Mauceli, Sammie Travis, Deb Whiting, και Beth Young του Dartmouth για τη διοικητική υποστήριξη. Οι Michael Fromberger, Brian Campbell, Amanda Eubanks, Sung Hoon Kim, και Neha Narula µας προσέϕεραν επίσης σηµαντική βοήθεια στο Dartmouth. Πολλοίαναγνώστες είχαντηνκαλοσύνηνα µας αναϕέρουνσϕάλµαταστηνπρώτη έκδοση. Θα θέλαµε να ευχαριστήσουµε τους παρακάτω αναγνώστες, καθένας από τους οποίους ανέϕερε πρώτος κάποιο σϕάλµα στην πρώτη έκδοση: Len Adleman, Selim Akl, Richard Anderson, Juan Andrade-Cetto, Gregory Bachelis, David Barrington, Paul Beame, Richard Beigel, Margrit Betke, Alex Blakemore, Bobby Blumofe, Alexander Brown, Xavier Cazin, Jack Chan, Richard Chang, Chienhua Chen, Ien Cheng, Hoon Choi, Drue Coles, Christian Collberg, George Collins, Eric Conrad, Peter Csaszar, Paul Dietz, Martin Dietzfelbinger, Scot Drysdale, Patricia Ealy, Yaakov Eisenberg, Michael Ernst, Michael Formann, Nedim Fresko, Hal Gabow, Marek Galecki, Igal Galperin, Luisa Gargano, John Gately, Rosario Genario, Mihaly Gereb, Ronald Greenberg, Jerry Grossman, Stephen Guattery, Alexander Hartemik, Anthony Hill, Thomas Hofmeister, Mathew Hostetter, Yih-Chun Hu, Dick Johnsonbaugh, Marcin Jurdzinki, Nabil Kahale, Fumiaki Kamiya, Anand Kanagala, Mark Kantrowitz, Scott Karlin, Dean Kelley, Sanjay Khanna, Haluk Konuk, Dina Kravets, Jon Kroger, Bradley Kuszmaul, Tim Lambert, Hang Lau, Thomas Lengauer, George Madrid, Bruce Maggs, Victor Miller, Joseph Muskat, Tung Nguyen, Michael Orlov, James Park, Seongbin Park, Ιωάννης Πασχαλίδης, Boaz Patt-Shamir, Leonid Peshkin, Patricio Poblete, Ira Pohl, Stephen Ponzio, Kjell Post, Todd Poynor, Colin Prepscius, Sholom Rosen, Dale Russell, Hershel Safer, Karen Seidel, Joel Seiferas, Erik Seligman, Stanley Selkow, Jeffrey Shallit, Greg Shannon, Micha Sharir, Sasha Shen, Norman Shulman, Andrew Singer, Daniel Sleator, Bob Sloan, Michael Sofka, Volker Strumpen, Lon Sunshine, Julie Sussman, Asterio Tanaka, Clark Thomborson, Nils Thommesen, Homer Tilton, Martin Tompa, Andrei Toom, Felzer Torsten, Hirendu Vaishnav, M. Veldhorst, Luca Venuti, Jian Wang, Michael Wellman, Gerry Wiener, Ronald Williams, David Wolfe, Jeff Wong, Richard Woundy, Neal Young, Huaiyuan Yu, Tian Yuxing, Joe Zachary, Steve Zhang, Florian Zschoke, καιurizwick. Πολλοίαπό τους συναδέλϕους µας προσέϕεραν ενδελεχείς ανασκοπήσεις ήσυµπλήρωσαν µακροσκελή ερωτηµατολόγια. Ευχαριστούµε τους Nancy Amato, Jim Aspnes, Kevin Compton, William Evans, Peter Gacs, Michael Goldwasser, Andrzej Proskurowski, Vijaya Ramachandran, και John Reif για την κριτική ανάγνωση κε- ϕαλαίων. Ευχαριστούµε επίσης τους κάτωθι, για τη συµπλήρωση του ερωτηµατολογίου: James Abello, Josh Benaloh, Bryan Beresford-Smith, Kenneth Blaha, Hans Bodlaender, Richard Borie, Ted Brown, Domenico Cantone, M. Chen, Robert Cimikowski, William Clocksin, Paul Cull, Rick Decker, Matthew Dickerson, Robert Douglas, Margaret Fleck, Michael Goodrich, Susanne Hambrusch, Dean Hendrix, Richard Johnsonbaugh, Κυριάκο Καλορκώτη, Srinivas Kankanahalli, Hikyoo Koh, Steven Lindell, Errol Lloyd, Andy Lopez, Dian Rae Lopez, George Lucker, David Maier, Charles Martel, Xiannong Meng, David Mount, Alberto Policriti, Andrzej Proskurowski, Kirk Pruhs, Yves Robert, Guna Seetharaman, Stanley Selkow, Robert Sloan, Charles Steele, Gerard Tel, Murali Varanasi, Bernd Walter, και Alden Wright. Θα ήµασταν ευτυχείς εάν µπορούσαµε να υλοποιήσουµε όλες τις υποδεί-

18 Πρόλογος xxi ξεις τους. Το µόνο πρόβληµα είναι ότι εάν το κάναµε, η δεύτερη έκδοση θα είχε έκταση περίπου 3000 σελίδες! Η δεύτερη έκδοση συντάχθηκε στο LATEX 2ε. Ο Michael Downes µετέτρεψε τις µακροεντολές του LATEXαπότο«κλασικό» LATEXστοLATEX2ε,καιπροσάρµοσε επίσης τα αρχεία κειµένου προκειµένου να χρησιµοποιούν αυτές τις µακροεντολές. Επίσης, προσέϕερε τη βοήθειά του και σε γενικότερα ζητήµατα του L A TEX 2ε. Τα σχήµατα της δεύτερης έκδοσης σχεδιάστηκαν από τους συγγραϕείς µε το πρόγραµ- µα MacDraw Pro. Όπως και στην πρώτη έκδοση, για τη σύνταξη του ευρετηρίου χρησιµοποιήθηκε το Windex, ένα πρόγραµµα σε C το οποίο έχουν κατασκευάσει οι συγγραϕείς, ενώ η βιβλιογραϕία συντάχθηκε µέσω του προγράµµατος µè TEX. Οι Ayorkor Mills-Tettey και Rob Leathern βοήθησαν στη µετατροπή των σχηµάτων στοπρόγραµµα MacDraw Pro, ενώ ο Ayorkor έλεγξε επίσης τη βιβλιογραϕία. Όπως και στην πρώτη έκδοση, η συνεργασία µε την MIT Press και την McGraw- Hill ήταν ιδιαίτερα ευχάριστη. Οι επιµελητές µας, Bob Prior από την MIT Press και Betsy Jones από την McGraw-Hill, ανέχθηκαν τις ιδιορρυθµίες µας και µας παρότρυναν µε «καρότο και µαστίγιο». Τέλος, θα θέλαµε να ευχαριστήσουµε τις συζύγους µας Nicole Cormen, Gail Rivest, και Rebecca Ivry τα παιδιά µας Ricky, William, και Debby Leiserson. Alex και Christopher Rivest. και Molly, Noah, και Benjamin Stein και τους γονείς µας Renee και Perry Cormen, Jean και Mark Leiserson, Shirley και Lloyd Rivest, και Irene και Ira Stein για την αγάπηκαισυµπαράστασήτους κατά τη διάρκεια της συγγραϕήςαυτού του βιβλίου. Η ευόδωση της προσπάθειας αυτής οϕείλεται στην υποµονή και την ενθάρρυνση των οικογενειών µας. Τους αϕιερώνουµε το βιβλίο αυτό µε στοργή. Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Hanover, New Hampshire Cambridge, Massachusetts Cambridge, Massachusetts Hanover, New Hampshire Μάιος 2001

19 Εισαγωγή στους αλγορίθµους

20 I Θεµελιώδεις έννοιες

21 Εισαγωγή Σε αυτό το µέρος του βιβλίου παρουσιάζονται οι πρώτες έννοιες της σχεδίασης και ανάλυσης αλγορίθµων. Στόχος τουµέρους αυτούείναινα εισαγάγειτοναναγνώστη οµαλά στη µεθοδολογία του ακριβούς καθορισµού των αλγορίθµων, σε ορισµένες από τις στρατηγικές σχεδίασης που χρησιµοποιούνται γενικότερα στο βιβλίο αυτό, και σε πολλές θεµελιώδεις έννοιες της ανάλυσης αλγορίθµων. Η ύλη αυτών των πρώτων κεϕαλαίων αποτελεί τη βάση για τα επόµενα µέρη του βιβλίου. Στο Κεϕάλαιο1παρουσιάζεται µια γενική επισκόπηση των αλγορίθµων και του ρόλου τους στα σύγχρονα υπολογιστικά συστήµατα. Στο κεϕάλαιο αυτό ορίζεται η έννοια του αλγορίθµου και παρατίθενται ορισµένα παραδείγµατα. Επιπλέον, τεκ- µηριώνεται η άποψη ότι οι αλγόριθµοι αποτελούν τεχνολογία, ακριβώς όπως το υλισµικό υψηλής ταχύτητας, οι γραϕικές επαϕές χρήσεως, τα αντικειµενοστρεϕή συστήµατα και τα δίκτυα. Στο Κεϕάλαιο 2 παρουσιάζονται οι πρώτοι αλγόριθµοι, οι οποίοι επιλύουν το πρόβληµα της ταξινόµησης µιας ακολουθίας n αριθµών. Οι αλγόριθµοι αυτοίείναι γραµµένοι σε ψευδοκώδικα, ο οποίος αν και δεν µπορεί να µεταϕραστεί απευθείας σε καµία από τις συµβατικές γλώσσες προγραµµατισµού, αποτυπώνει τη δοµή του αλγορίθµου µε αρκετή σαϕήνεια ούτως ώστε ένας έµπειρος προγραµµατιστής να µπορείνα τον υλοποιήσει στη γλώσσα της αρεσκείας του. Οι αλγόριθµοι που εξετάζονται είναι αυτοί της ενθετικής ταξινόµησης, η οποία βασίζεται στην αυξητική προσέγγιση, και της συγχωνευτικής ταξινόµησης, η οποία βασίζεται σε µια αναδρο- µική τεχνική γνωστή ως «διαίρει-και-κυρίευε». Παρ όλο που ο χρόνος εκτέλεσης και των δύο αυτών αλγορίθµων αυξάνεται καθώς αυξάνεται η τιµή του n,ορυθµός αύξησης διαϕέρει µεταξύ των δύο αλγορίθµων. Στο Κεϕάλαιο 2 προσδιορίζονται αυτοίοι χρόνοι εκτέλεσης, και εισάγεται ένας εύχρηστος συµβολισµός για την περιγραϕή τους. Στο Κεϕάλαιο 3 ορίζεταιεπακριβώς αυτόςο λεγόµενος ασυµπτωτικόςσυµβολισµός. Σε πρώτη ϕάση ορίζονται διάϕοροι συµβολισµοίαυτού του τύπου, οι οποίοι χρησιµοποιούνται για τη ϕραγή του χρόνου εκτέλεσης των αλγορίθµων εκ των άνω και/ή εκ των κάτω. Το υπόλοιπο τµήµα του Κεϕαλαίου 3 αποτελεί κατά κύριο λόγο µια παρουσίαση µαθηµατικών συµβολισµών. Στόχος αυτού του τµήµατος δεν είναι

22 4 Μέρος I Θεµελιώδεις έννοιες τόσο η παρουσίαση νέων µαθηµατικών εννοιών, αλλά κυρίως η αποσαϕήνιση των συµβολιστικών συµβάσεων που ακολουθούνται σε αυτό το βιβλίο. Στο Κεϕάλαιο 4 αναλύεται λεπτοµερέστερα η µέθοδος διαί ρει-και-κυρίευε η οποία έχει εισαχθεί στο Κεϕάλαιο 2. Συγκεκριµένα, στο Κεϕάλαιο 4 παρουσιάζονται µέθοδοι επίλυσης αναδροµικών σχέσεων, οι οποίες χρησιµοποιούνται για την περιγραϕή του χρόνου εκτέλεσης αναδροµικών αλγορίθµων. Μια ισχυρή τέτοια τεχνική είναι η λεγόµενη «κεντρική µέθοδος», η οποία µπορεί να χρησιµοποιηθεί για την επίλυση αναδροµικών σχέσεων που προκύπτουν από αλγορίθµους τύπου διαίρει-και-κυρίευε. Μεγάλο µέρος του Κεϕαλαίου 4 είναι αϕιερωµένο στην απόδειξη της ορθότητας της κεντρικής µεθόδου, αν και η απόδειξη αυτή µπορείνα παραλειϕθείαπό τον αναγνώστη. Το Κεϕάλαιο 5 αποτελείµια εισαγωγή στην πιθανοτική ανάλυση και τους τυχαιοκρατικούς αλγορίθµους. Η πιθανοτική ανάλυση χρησιµοποιείται κατά κανόνα για να προσδιοριστεί ο χρόνος εκτέλεσης ενός αλγορίθµου στις περιπτώσεις όπου, λόγω της εγγενούς ύπαρξης µιας κατανοµής πιθανότητας, ο χρόνος εκτέλεσης ενδέχεται να διαϕέρει για διαϕορετικές εισόδους του ίδιου µεγέθους. Σε ορισµένες περιπτώσεις, υποθέτουµε ότι οι είσοδοι ακολουθούν µια γνωστή κατανοµή πιθανότητας, και συνεπώς υπολογίζουµε την αναµενόµενη τιµή του χρόνου εκτέλεσης επίόλων των δυνατών εισόδων. Σε άλλες περιπτώσεις, η κατανοµή πιθανότητας δεν προέρχεται από τις εισόδους αλλά από τυχαίες επιλογές που πραγµατοποιούνται κατά την πορεία εκτέλεσης του αλγορίθµου. Ένας αλγόριθµος του οποίου η συµπεριϕορά δεν καθορίζεται µόνο από την είσοδό του αλλά και από τιµές που παράγονται από µια γεννήτρια τυχαίων αριθµών ονοµάζεται τυχαιοκρατικός. Οι τυχαιοκρατικοίαλγόριθµοι µπορούν να χρησιµοποιηθούν για να επιβληθείµια κατανοµή πιθανότητας στις εισόδους ώστε να εξασϕαλιστείότι καµία συγκεκριµένη είσοδος δεν θα προκαλεί πάντοτε χαµηλή επίδοση, ή ακόµη και για να ϕραγεί ο ρυθµός εµϕάνισης σϕαλµάτωναπόαλγορίθµους οιοποίοι επιτρέπεται να παράγουν λανθασµένα αποτελέσµατα σε κάποιο περιορισµένο ποσοστό. Τα Παραρτήµατα Αʹ Γʹ καλύπτουν ύλη µαθηµατικού χαρακτήρα η οποία θα σας ϕανεί χρήσιµη κατά την πορεία της µελέτης αυτού του βιβλίου. Κατά πάσα πιθανότητα, µεγάλο µέρος της ύλης αυτής θα σας είναι ήδη γνωστό (παρ όλο που σε ορισµένεςπεριπτώσεις οι συγκεκριµένεςσυµβολιστικές συµβάσεις που ακολουθούµε πιθανόν να διαϕέρουν από αυτές που έχετε συναντήσει στο παρελθόν), και εποµένως τα παραρτήµατα έχουν περισσότερο χαρακτήρα «ύλης αναϕοράς». Από την άλλη πλευρά, η ύλη του Μέρους I πιθανότατα θα σας είναι εν πολλοίς άγνωστη. Όλατακεϕάλαια του Μέρους I καθώς και τα παραρτήµατα είναι γραµµένα σε πνεύµα αναλυτικής διδασκαλίας, και όχι επιγραµµατικής παρουσίασης.

23 1 Ορόλοςτωναλγορίθµων στις υπολογιστικές διαδικασίες Τι είναι οι αλγόριθµοι; Σε τι µας χρησιµεύει η µελέτη τους; Ποιος είναι ο ρόλος τους σε σχέση µε τις άλλες τεχνολογίες που χρησιµοποιούνται στους υπολογιστές; Σκοπός µας σε αυτό το κεϕάλαιο είναι να δώσουµε απαντήσεις στα παραπάνω ερωτήµατα. 1.1 Αλγόριθµοι Οόροςαλγόριθµος αναϕέρεται σε οποιαδήποτε καλά ορισµένη υπολογιστική διαδικασία που δέχεται κάποια τιµή ή κάποιο σύνολο τιµών ως είσοδο και δίνεικάποια τιµήήκάποιο σύνολοτιµώνωςέξοδο. Συνεπώς,έναςαλγόριθµος είναιµια ακολουθία υπολογιστικών βηµάτων που µετασχηµατίζει την είσοδο στην έξοδο. Μπορούµε επίσης να θεωρήσουµε τον αλγόριθµο ως ένα εργαλείο για την επίλυση ενός καλά καθορισµένου υπολογιστικού προβλήµατος. Ηδιατύπωσητουπροβλήµατος καθορίζει σε γενικές γραµµές την επιθυµητή σχέση εισόδου-εξόδου. Ο αλγόριθµοςπεριγράϕειµια συγκεκριµένηυπολογιστικήδιαδικασία για την επίτευξη αυτής της σχέσης εισόδου-εξόδου. Ας υποθέσουµε, λόγου χάριν, ότι θέλουµε να ταξινοµήσουµε µια ακολουθία αριθ- µών κατ αύξουσα σειρά. Το συγκεκριµένο πρόβληµα ανακύπτει συχνά στην πράξη και προσϕέρεται για την εισαγωγή πολλών καθιερωµένων σχεδιαστικών τεχνικών καιεργαλείωνανάλυσης. Το πρόβληµα της ταξινόµησης ορίζεταιτυπικάωςεξής: Είσοδος: Μια ακολουθία n αριθµών a 1,a 2,...,a n. Έξοδος: Μια µετάθεση (αναδιάταξη) a 1,a 2,...,a n της ακολουθίας εισόδου τέτοια ώστε a 1 a 2 a n. Επίπαραδείγµατι, αν η ακολουθία εισόδου είναι 31, 41, 59, 26, 41, 58, ένας αλγόριθµος ταξινόµησης επιστρέϕει ως έξοδο την ακολουθία 26, 31, 41, 41, 58, 59. Κάθε τέτοια ακολουθία εισόδου ονοµάζεται στιγµιότυπο του προβλήµατος ταξινόµησης. Εν γένει, ο όρος στιγµιότυπο προβλήµατος δηλώνει την είσοδο η οποία απαιτείται για να υπολογιστεί µια λύση του προβλήµατος (εννοείται ότι η είσοδος αυτή θα ικανοποιείόλους τους περιορισµούς που επιβάλλει η διατύπωση του προβλήµατος). Η ταξινόµηση αποτελείβασική πράξη στην επιστήµη υπολογιστών (καθώς χρησιµοποιείται ως ενδιάµεσο βήµα σε πολλά προγράµµατα), και για τον λόγο αυτό έχουν αναπτυχθεί αρκετοίικανοποιητικοίαλγόριθµοι ταξινόµησης. Το ποιος αλγόριθµος είναι ο καταλληλότερος για µια δεδοµένη εϕαρµογή εξαρτάται, µεταξύ

24 6 Κεϕάλαιο1 Ο ρόλος των αλγορίθµων στις υπολογιστικές διαδικασίες άλλων, από τον αριθµό των ταξινοµητέων στοιχείων, τον βαθµό της αρχικής τους ταξινόµησης, τους πιθανούς περιορισµούς στις τιµές των στοιχείων και το είδος της συσκευής αποθήκευσης που θα χρησιµοποιηθεί: κύρια µνήµη, δίσκος ή µαγνητική ταινία. Ένας αλγόριθµος χαρακτηρίζεται ορθός αν γιακάθε στιγµιότυπο εισόδου τερµατίζει δίνοντας την ορθή έξοδο. Λέµε ότι έναςορθός αλγόριθµοςεπιλύει το δεδοµένο υπολογιστικό πρόβληµα. Ένας µη ορθός αλγόριθµος µπορείνα µην τερµατίζει καν σε ορισµένα στιγµιότυπα εισόδου, ή µπορείνα τερµατίζει δίνοντας αποτέλεσµα διαϕορετικό από το ζητούµενο. Αντίθετα απ ό,τι θα υπέθετε ίσως κανείς, ακόµη και ένας µη ορθός αλγόριθµος ενδέχεται µερικές ϕορές να είναι χρήσιµος, αν το ποσοστό των σϕαλµάτων του µπορείνα συγκρατηθείµέσα σε ορισµένα πλαίσια. Μια τέτοια περίπτωση θα δούµε στο Κεϕάλαιο 31,όπου θα µελετήσουµε αλγορίθµους για την εύρεση µεγάλωνπρώτωναριθµών. Κατά κανόνα, ωστόσο, οι αλγόριθµοι µε τους οποίους θα ασχοληθούµε θα είναι ορθοί. Ένας αλγόριθµοςµπορείνα διατυπωθείσεµια ϕυσική γλώσσα, λόγουχάριν στα Αγγλικά, όπως συµβαίνει σε ένα υπολογιστικό πρόγραµµα, ή ακόµη και να αποδοθείµέσω της σχεδίασης του υλισµικού του υπολογιστή. Η µόνη απαίτησηείναιη διατύπωσή του να αποτελείακριβή περιγραϕή της υπολογιστικής διαδικασίας που πρέπει να ακολουθηθεί. Τι είδους προβλήµατα επιλύονται µε αλγορίθµους; Η ταξινόµησηδεν είναι βέβαιατο µόνο υπολογιστικόπρόβληµα για το οποίο έχουν αναπτυχθείαλγόριθµοι (µάλλον θα το είχατε ήδη υποψιαστείαπό τη στιγµή που είδατε το µέγεθος αυτού του βιβλίου.) Οι πρακτικές εϕαρµογές των αλγορίθµων είναι πανταχού παρούσες και περιλαµβάνουν µεταξύ άλλων ταακόλουθαπαραδείγµατα: Το Πρόγραµµα του Ανθρώπινου Γονιδιώµατος, οι στόχοι του οποίου είναι ο προσδιορισµός του συνόλου των γονιδίων του ανθρώπινου DNA,ηεύ- ρεση της αλληλουχίας των 3 δισεκατοµµυρίων ζευγών χηµικών βάσεων από τις οποίες αποτελείται το ανθρώπινο DNA, ηαποθήκευσηαυτώντωνπληροϕοριών σε κατάλληλες βάσεις δεδοµένων, και η ανάπτυξη εργαλείων για την ανάλυση των δεδοµένων. Καθένα από τα παραπάνω βήµατα απαιτείπερίτεχνους αλγορίθµους. Αν και οι λύσεις στα διάϕορα προβλήµατα που υπεισέρχονται στο συγκεκριµένο πρόγραµµα υπερβαίνουν τον ορίζοντα αυτού του βιβλίου,πολλές από τις έννοιες που παρουσιάζονται στα κεϕάλαια που ακολουθούν χρησιµοποιούνται για τηνεπίλυσηαυτών των προβληµάτων της βιολογίας, δίνοντας στους επιστήµονεςτηδυνατότητανα επιτελέσουντοέργοτουςαξιοποιώντας αποδοτικά τους πόρους που έχουν στη διάθεσή τους. Με τον τρόπο αυτό εξοικονοµείται χρόνος, τόσο ανθρώπινος όσο και υπολογιστικός, και χρήµατα, αϕού µπορούν να εξαχθούν περισσότερες πληροϕορίες από τις διάϕορες εργαστηριακές εργασίες. Το ιαδίκτυο δίνει τη δυνατότητα σε ανθρώπους από όλο τον κόσµο να προσπελάσουν και να αποκτήσουν γρήγορα µεγάλες ποσότητες πληροϕοριών. Η δυνατότητα αυτή έχει επιτευχθείµε τη βοήθεια έξυπνων αλγορίθµων οι οποίοι διαχειρίζονται αυτούς τους µεγάλους όγκους δεδοµένων. Τα προβλήµατα που υπεισέρχονται σε αυτήν την παγκόσµια επικοινωνία περιλαµβάνουν την εύρεση κατάλληλων διαδροµών για τη µεταϕορά των δεδοµένων (τεχνικές για την επίλυση τέτοιων προβληµάτων παρουσιάζονται στο Κεϕάλαιο 24), και τη χρήση

25 1.1 Αλγόριθµοι 7 µηχανών αναζήτησης για την γρήγορη εύρεση των ιστοσελίδων στις οποίες εντοπίζονται συγκεκριµένες πληροϕορίες (σχετικές τεχνικές περιγράϕονται στα Κεϕάλαια 11 και 32 ). Το ηλεκτρονικό εµπόριο δίνει τη δυνατότητα αγοραπωλησίας και διακίνησης αγαθών και υπηρεσιών µε ηλεκτρονικά µέσα. Η δυνατότητα ασϕαλούς επεξεργασίας εµπιστευτικών πληροϕοριών, όπως είναι οι αριθµοί πιστωτικών καρτών, οι συνθηµατικοίκωδικοί, και τα αντίγραϕα κίνησης τραπεζικών λογαριασµών, αποτελείουσιώδη προϋπόθεση για την ευρεία χρήση του ηλεκτρονικού εµπορίου. Μεταξύ των βασικών τεχνικών που χρησιµοποιούνται σε αυτόν τον τοµέα είναι η κρυπτογραϕίαδηµόσιου κλειδιού και οι ψηϕιακές υπογραϕές (τις οποίες θα µελετήσουµε στο Κεϕάλαιο 31). Οι συγκεκριµένες τεχνικές βασίζονται σε αριθµητικούς αλγορίθµους και στη θεωρία αριθµών. Στη βιοµηχανική παραγωγή και σε άλλες εµπορικές δραστηριότητες συχνά είναι ιδιαίτερα σηµαντικό να µπορούµε να κατανείµουµε ανεπαρκείς πόρους µε τον επωϕελέστερο δυνατό τρόπο. Μια εταιρεία πετρελαίου, λόγου χάριν, πιθανόν να επιθυµείνα γνωρίζει πού να εγκαταστήσει τις πετρελαιοπηγές της προκειµένου να µεγιστοποιήσει το αναµενόµενοκέρδος. Έναςυποψήϕιος για την προεδρία των ΗΠΑ πιθανόν να θέλει ναπροσδιορίσεισεποιεςπεριοχές της χώρας θα πρέπει να επενδύσει χρήµατα για να διαϕηµίσει την προεκλογική του εκστρατεία ώστε να µεγιστοποιήσει τις πιθανότητές του να κερδίσει τις εκλογές. Μια αεροπορική εταιρεία ίσως να επιθυµεί να κατανείµει τα πληρώ- µατα στις διάϕορες πτήσεις µε τον λιγότερο δαπανηρό τρόπο, εξασϕαλίζοντας ταυτόχρονα ότι όλες οι πτήσεις καλύπτονται επαρκώς και ότιικανοποιούνται οι πτητικοί κανονισµοίγια τον χρονοπρογραµµατισµό των πληρωµάτων. Μια εταιρεία παροχής ιαδικτυακών υπηρεσιών πιθανόν να επιθυµείνα προσδιορίσει σε ποια σηµεία θαπρέπει ναεγκαταστήσειεπιπλέον πόρους προκειµένου να ικανοποιήσει αποτελεσµατικότερα τις ανάγκεςτωνπελατών της. Όλες οι παραπάνω περιπτώσεις αποτελούν παραδείγµατα προβληµάτων που µπορούν να επιλυθούν µε τη βοήθεια του γραµµικού προγραµµατισµού, τον οποίο θα µελετήσουµε στο Κεϕάλαιο 29. Στο βιβλίο αυτό, αν και δεν θα επεκταθούµε σε λεπτοµερή ανάλυση των προηγούµενων παραδειγµάτων, θα µελετήσουµε τις θεµελιώδεις τεχνικές που εϕαρµόζονται σε αυτά τα προβλήµατα και σε αυτές τις περιοχές προβληµάτων. Θα περιγράψουµε επίσης τη λύση πολλών συγκεκριµένων προβληµάτων, όπως π.χ. τα παρακάτω: Μας δίνεται ένας οδικός χάρτης ο οποίος αναγράϕει όλες τις αποστάσεις µεταξύ παρακείµενων διασταυρώσεων, και µας ζητείται να προσδιορίσουµε τη βραχύτερη διαδροµή από κάποια διασταύρωσηµέχρι κάποια άλλη. Ακόµη και αν αποκλείσουµε τις διαδροµές που τέµνουν τον εαυτό τους,οαριθµόςτωνδυνατών διαδροµών µπορεί να είναι τεράστιος. Πώς θα βρούµε ποια απ όλες είναι η βραχύτερη; Στην περίπτωση αυτή, αναπαριστούµε τον οδικό χάρτη (ο οποίος, µε τη σειρά του,είναι επίσης µια αναπαράσταση του πραγµατικού οδικού δικτύου) µε τη µορϕή ενός γραϕήµατος (τα γραϕήµατα περιγράϕονται στο Κεϕάλαιο 10 και στο Παράρτηµα Βʹ), και ανάγουµε το πρόβληµα στην εύρεση της βραχύτερης διαδροµής από κάποιον κόµβο του γραϕήµατος µέχρι κάποιον άλλον. Μια δραστική επίλυση αυτού του προβλήµατος παρουσιάζεται στο Κεϕάλαιο 24.

26 8 Κεϕάλαιο1 Ο ρόλος των αλγορίθµων στις υπολογιστικές διαδικασίες Μας δίνεται µια ακολουθία n πινάκων A 1,A 2,...,A n,καιµας ζητείται να υπολογίσουµε το γινόµενό τουςa 1 A 2 A n. εδοµένου ότι ο πολλαπλασιασµός πινάκων είναι προσεταιριστικός, υπάρχουν διάϕορες επιτρεπτές πολλαπλασιαστικές διατάξεις. Παραδείγµατος χάριν, θα µπορούσαµε να εκτελέσουµε τους πολλαπλασιασµούς µε οποιαδήποτε από τις ακόλουθες οµαδοποιήσεις της ακολουθίας πινάκων: (A 1 (A 2 (A 3 A 4 ))), (A 1 ((A 2 A 3 )A 4 )), ((A 1 A 2 )(A 3 A 4 )), ((A 1 (A 2 A 3 ))A 4 ),ή(((a 1 A 2 )A 3 )A 4 ).Ανόλοιοιπίνακεςείναι τετραγωνικοί (και εποµένως ισοµεγέθεις), η χρονική διάρκεια του πολλαπλασιασµού είναι ανεξάρτητη από την οµαδοποίηση που θα χρησιµοποιήσουµε. Αν, όµως, οι πίνακες έχουν διαϕορετικά µεγέθη (τα οποία ωστόσο είναι συµβατά µεταξύ τους όσον αϕορά τον πολλαπλασιασµό), τότε η οµαδοποίησή τους µπορεί να έχει σηµαντική επίπτωση στον χρόνο εκτέλεσης. Ο αριθµός των δυνατών πολλαπλασιαστικών οµαδοποιήσεων αυξάνεται εκθετικά συναρτήσει του n, καιεπο- µένως η δοκιµή όλων των οµαδοποιήσεων µπορείνα είναι εξαιρετικά χρονοβόρα. Όπως θα δούµε στο Κεϕάλαιο 15, το πρόβληµα αυτό µπορείνα λυθεί πολύ πιο ικανοποιητικά µέσω µιας γενικής τεχνικής που ονοµάζεται δυναµικός προγραµµατισµός. Μας δίνεται µια εξίσωση ax b (mod n), όπουταa, b, καιn είναι ακέραιοι, και µας ζητείται να βρούµε όλους τους ακεραίους x, modulon, οιοποίοι την ικανοποιούν. Μια τέτοια εξίσωση πιθανόν να µην έχει καµία λύση, ή να έχει µία ήκαιπερισσότερες λύσεις. Αν και θα µπορούσαµε απλώς να δοκιµάσουµε να θέσουµε διαδοχικά x =0, 1,...,n 1, όπωςθαδούµεστοκεϕάλαιο31το πρόβληµα µπορείνα λυθείπιο αποτελεσµατικά. Μας δίνονται n σηµεία στο επίπεδο,καιµας ζητείται να βρούµε το κυρτό κάλυµ- µα των σηµείων αυτών, δηλαδή το µικρότερο κυρτό πολύγωνο που περιέχει όλα τα σηµεία. Χάριν εποπτείας, µπορούµε να ϕανταστούµε το κάθε σηµείο σαν ένα καρϕίπου προεξέχει από την επιϕάνεια µιας ξύλινης πινακίδας. Στην απεικόνιση αυτή, το κυρτό κάλυµµα θα αναπαρίσταται από µια τεντωµένη ελαστική ταινία που περιβάλλει το σύνολο των καρϕιών. Το κάθε καρϕίγύρω από το οποίο κάµπτεται η ταινία είναι µια κορυϕή του κυρτού καλύµµατος (βλ. Σχήµα 33.6, π.χ.). Εν γένει, το σύνολο των κορυϕών του καλύµµατος µπορείνα είναι οποιοδήποτε από τα 2 n υποσύνολα των σηµείων. Επιπλέον, δεν αρκεί να γνωρίζουµε ποια από τα σηµεία είναι κορυϕές του καλύµµατος. θα πρέπει επίσης να γνωρίζου- µε τη διάταξη των σηµείων αυτών. Εποµένως, υπάρχουν πολλές επιλογές για τις κορυϕές του κυρτού καλύµµατος. Στο Κεϕάλαιο 33 θα παρουσιάσουµε δύο καλές µεθόδους για την εύρεση του κυρτού καλύµµατος. Τα παραπάνω παραδείγµατα, αν και δεν εξαντλούν επ ουδενί το σύνολο των σηµαντικώνπεριπτώσεων (όπως καιπάλι θα έχετεαντιληϕθείαπό το βάρος αυτού του βιβλίου), διαθέτουν δύο χαρακτηριστικά που είναι κοινά σε πολλούς ενδιαϕέροντες αλγορίθµους. 1. Υπάρχουν πολλές υποψήϕιες λύσεις, οι περισσότερες από τις οποίες δεν ανταποκρίνονται στις απαιτήσεις µας. Η εύρεση µιας λύσης που να ικανοποιείτις απαιτήσεις µας µπορείνα παρουσιάζει αρκετές δυσκολίες. 2. Υπάρχουν πρακτικές εϕαρµογές. Το πιο χαρακτηριστικό παράδειγµα µεταξύ των παραπάνω προβληµάτων είναι αυτό των βραχύτερων διαδροµών. Για µια µεταϕορική εταιρεία, όπως είναι λόγου χάριν ένας σιδηροδροµικός οργανισµός

viii 20 Δένδρα van Emde Boas 543

viii 20 Δένδρα van Emde Boas 543 Περιεχόμενα Πρόλογος xi I Θεμελιώδεις έννοιες Εισαγωγή 3 1 Ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες 5 1.1 Αλγόριθμοι 5 1.2 Οι αλγόριθμοι σαν τεχνολογία 12 2 Προκαταρκτικές έννοιες και παρατηρήσεις

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

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

Εισαγωγή στους αλγορίθµους Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein Εισαγωγή στους αλγορίθµους Απόδοση στα ελληνικά: Ιωάννης Παπαδόγγονας Επιστηµονική επιµέλεια: Γεώργιος Φρ. Γεωργακόπουλος (Κεϕ. 1-26)

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

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι

ο ρόλος των αλγορίθμων στις υπολογιστικές διαδικασίες Παύλος Εφραιμίδης Δομές Δεδομένων και Αλγόριθμοι Παύλος Εφραιμίδης 1 περιεχόμενα αλγόριθμοι τεχνολογία αλγορίθμων 2 αλγόριθμοι αλγόριθμος: οποιαδήποτε καλά ορισμένη υπολογιστική διαδικασία που δέχεται κάποια τιμή ή κάποιο σύνολο τιμών, και δίνεικάποιατιμήήκάποιοσύνολοτιμώνως

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

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης

περιεχόμενα υπολογιστικό πρόβλημα αλγόριθμοι παράδειγμα ταξινόμησης ταξινόμηση αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης περιεχόμενα αλγόριθμοι τεχνολογία αλγορίθμων Παύλος Εφραιμίδης 1 2 αλγόριθμοι αλγόριθμος: οποιαδήποτε καλά ορισμένη υπολογιστική διαδικασία που δέχεταικάποιατιμήήκάποιοσύνολοτιμών, και δίνει κάποια τιμή

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΑΝΘΡΩΠΙΣΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΙ ΑΓΩΓΙΚΟ ΤΜΗΜΑ ΗΜΟΤΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΦΑΚΕΛΟΣ ΜΑΘΗΜΑΤΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΑΝΘΡΩΠΙΣΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΙ ΑΓΩΓΙΚΟ ΤΜΗΜΑ ΗΜΟΤΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΦΑΚΕΛΟΣ ΜΑΘΗΜΑΤΟΣ Μάθηµα: Εφαρµοσµένη ιδακτική των Φυσικών Επιστηµών (Πρακτικές Ασκήσεις Γ Φάσης) ΜΙΧΑΗΛ ΣΚΟΥΜΙΟΣ

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

Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ)

Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ) Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ) ΜΙΧΑΛΗΣ ΤΖΟΥΜΑΣ ΕΣΠΟΤΑΤΟΥ 3 ΑΓΡΙΝΙΟ. ΠΕΡΙΛΗΨΗ Η έννοια της συνάρτησης είναι στενά συνυφασµένη µε τον πίνακα τιµών και τη γραφική παράσταση.

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

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

Αλγόριθμοι και Πολυπλοκότητα Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος στη δεύτερη έκδοση Πρόλογος του επιµελητή xiii Πρόλογος στην πρώτη έκδοση xv Προς τους ϕοιτητές.......................... xv Προς τους διδάσκοντες........................ xvii Ηπρώτηέκδοση........................... xviii

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε

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

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος xi 1 Αντικείμενα των Πιθανοτήτων και της Στατιστικής 1 1.1 Πιθανοτικά Πρότυπα και Αντικείμενο των Πιθανοτήτων, 1 1.2 Αντικείμενο της Στατιστικής, 3 1.3 Ο Ρόλος των Πιθανοτήτων

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

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας)

Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Ανάπτυξη εφαρµογών σε προγραµµατιστικό περιβάλλον (στοιχεία θεωρίας) Εισαγωγή 1. Τι είναι αυτό που κρατάς στα χέρια σου. Αυτό το κείµενο είναι µια προσπάθεια να αποτυπωθεί όλη η θεωρία του σχολικού µε

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

μαθηματικά β γυμνασίου

μαθηματικά β γυμνασίου μαθηματικά β γυμνασίου Κάθε αντίτυπο φέρει την υπογραφή ενός εκ των συγγραφέων Σειρά: Γυμνάσιο, Θετικές Επιστήμες Μαθηματικά Β Γυμνασίου, Βασίλης Διολίτσης Ιωάννα Κοσκινά Νικολέττα Μπάκου Θεώρηση Κειμένου:

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

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

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

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ Γώγουλος Γ., Κοτσιφάκης Γ., Κυριακάκη Γ., Παπαγιάννης Α., Φραγκονικολάκης Μ., Χίνου Π. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ

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

Μαθηματικά. Β'Γυμνασίου. Μαρίνος Παπαδόπουλος

Μαθηματικά. Β'Γυμνασίου. Μαρίνος Παπαδόπουλος Μαθηματικά Β'Γυμνασίου Μαρίνος Παπαδόπουλος ΠΡΟΛΟΓΙΚΟ ΣΗΜΕΙΩΜΑ Σας καλωσορίζω στον όµορφο κόσµο των Μαθηµατικών της B Γυµνασίου. Τα µαθηµατικά της συγκεκριµένης τάξης αποτελούν βάση των µαθηµατικών του

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670 ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ Έκτο ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Δομές Δεδομένων και Αλγόριθμοι ΑΥΤΟΤΕΛΕΙΣ ΔΙΔΑΚΤΙΚΕΣ

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

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι Πρόλογος Το εφαλτήριο για τη συγγραφή αυτού του βιβλίου ήταν η πολύχρονη εμπειρία μου στη διδασκαλία του μαθήματος «Αλγόριθμοι και Δομές Δεδομένων» (κωδ. ECE 250) το οποίο εντάσσεται στο πρόγραμμα σπουδών

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)

Q 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Πολιτικών Μηχανικών Τοµέας Υδατικών Πόρων Μάθηµα: Τυπικά Υδραυλικά Έργα Μέρος 2: ίκτυα διανοµής Άσκηση E0: Μαθηµατική διατύπωση µοντέλου επίλυσης απλού δικτύου διανοµής

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

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

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

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

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ. Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΥΤΕΧΝΙΚΗ Τμήμα Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0175 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 9 ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Επιστημονικός Προγραμματισμός

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

ΠΡΟΤΑΣΗ ΝΕΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ

ΠΡΟΤΑΣΗ ΝΕΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΕΠΙΤΡΟΠΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ ΤΜΗΜΑΤΟΣ ΦΥΣΙΚΗΣ Α.Π.Θ. 2010-2011 ΠΡΟΤΑΣΗ ΝΕΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥ ΩΝ Εισαγωγικά: Το σχέδιο περιλαµβάνει τον προτεινόµενο κατάλογο υποχρεωτικών µαθηµάτων µε τις αντίστοιχες

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

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

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

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου

Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου Οδηγίες για τη διδασκαλία µαθηµάτων Πληροφορικής του Ενιαίου Λυκείου Εγγραφο Γ2/4769/4-9-1998 ΣΧΕΤ. 2794/23-6-98 έγγραφο του Παιδαγωγικού Ινστιτούτου Σας αποστέλλουµε οδηγίες για τη διδασκαλία των µαθηµάτων

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

τα βιβλία των επιτυχιών

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

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

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα) ΜΥΥ204 Διακριτά Μαθηματικά Μθ άι Εισαγωγικά 1 η Εβδομάδα Άνοιξη 2015 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Παν. Ιωαννίνων Μερικά Οργανωτικά Θέματα ιδάσκων: ιαλέξεις: Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00

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

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων... Περιεχόμενα Ανάλυση προβλήματος 1. Η έννοια πρόβλημα...13 2. Επίλυση προβλημάτων...17 Δομή ακολουθίας 3. Βασικές έννοιες αλγορίθμων...27 4. Εισαγωγή στην ψευδογλώσσα...31 5. Οι πρώτοι μου αλγόριθμοι...54

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

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής:

ΣΕΙΡΕΣ TAYLOR. Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων. Πολυώνυµο είναι κάθε συνάρτηση της µορφής: ΣΕΙΡΕΣ TAYLOR Στην Ενότητα αυτή θα ασχοληθούµε µε την προσέγγιση συναρτήσεων µέσω πολυωνύµων Πολυώνυµο είναι κάθε συνάρτηση της µορφής: p( ) = a + a + a + a + + a, όπου οι συντελεστές α i θα θεωρούνται

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

ΠΑΡΑΡΤΗΜΑ VΙ - Ο ΗΓΙΕΣ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ

ΠΑΡΑΡΤΗΜΑ VΙ - Ο ΗΓΙΕΣ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ ΠΑΡΑΡΤΗΜΑ VΙ - Ο ΗΓΙΕΣ ΥΠΟΒΟΛΗΣ ΠΡΟΤΑΣΗΣ Έκδοση Εγγράφου: 1.0 Επιχειρησιακό Πρόγραµµα «Εκπαίδευση & ια Βίου Μάθηση» (ΕΚ. ι.βι.μ) Κενή σελίδα 2 Πίνακας περιεχοµένων 1 Εισαγωγή... 6 1.1 ηµιουργία πρότασης...

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

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

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

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

ΤΕΧΝΙΚΕΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ

ΤΕΧΝΙΚΕΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ Ε. ΞΕΚΑΛΑΚΗ Καθηγήτριας του Τμήματος Στατιστικής του Οικονομικού Πανεπιστημίου Αθηνών ΤΕΧΝΙΚΕΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ B ΕΚΔΟΣΗ ΑΘΗΝΑ 2004 ΠΡΟΛΟΓΟΣ Η συλλογή και επεξεργασία δεδομένων από πεπερασμένους πληθυσμούς

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

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro

Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Το «Φύλλο Εργασίας» για τους µαθητές Το παρακάτω φύλλο εργασίας µπορεί να χρησιµοποιηθεί ως εισαγωγικό

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

Βοηθήστε τη ΕΗ. Ένα µικρό νησί απέχει 4 χιλιόµετρα από την ακτή και πρόκειται να συνδεθεί µε τον υποσταθµό της ΕΗ που βλέπετε στην παρακάτω εικόνα.

Βοηθήστε τη ΕΗ. Ένα µικρό νησί απέχει 4 χιλιόµετρα από την ακτή και πρόκειται να συνδεθεί µε τον υποσταθµό της ΕΗ που βλέπετε στην παρακάτω εικόνα. Γιώργος Μαντζώλας ΠΕ03 Βοηθήστε τη ΕΗ Η προβληµατική της Εκπαιδευτικής ραστηριότητας Η επίλυση προβλήµατος δεν είναι η άµεση απόκριση σε ένα ερέθισµα, αλλά ένας πολύπλοκος µηχανισµός στον οποίο εµπλέκονται

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

Γεωλογικοί Χάρτες ΜΕΡΟΣ Α: Βασικές Έννοιες & Στοιχειώδεις Δομές. Χ.Δ. Κράνης. Β.Ε. Αντωνίου. Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών

Γεωλογικοί Χάρτες ΜΕΡΟΣ Α: Βασικές Έννοιες & Στοιχειώδεις Δομές. Χ.Δ. Κράνης. Β.Ε. Αντωνίου. Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών Τμήμα Γεωλογίας Γεωλογικοί Χάρτες ΜΕΡΟΣ Α: Βασικές Έννοιες & Τομέας ΔυναμικήςΤεκτονικής & Εφαρμοσμένης Γεωλογίας Στοιχειώδεις Δομές Χ.Δ. Κράνης Β.Ε. Αντωνίου

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

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Συναρτήσεις & Υποπρογράμματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Τμηματικός Προγραμματισμός Η επίλυση ενός προβλήματος διευκολύνεται

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

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό, 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή 1. εδοµένα, Πληροφορίες και Υπολογιστές 2. Πώς φτάσαµε στους σηµερινούς υπολογιστές 3. Το υλικό ενός υπολογιστικού συστήµατος 4. Το λογισµικό ενός υπολογιστικού συστήµατος

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

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

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Σκοπός του μαθήματος είναι οι μαθητές και οι μαθήτριες να αναπτύξουν ικανότητες αναλυτικής και συνθετικής σκέψης, ώστε να επιλύουν προβλήματα, να σχεδιάζουν

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) 3 ο Εξάμηνο Σπουδών Εαρινό Εξάμηνο 2010/11 Διδάσκων: Χαρμανδάρης Ευάγγελος, Τμήμα Εφαρμοσμένων Μαθηματικών, Πανεπιστήμιο Κρήτης email: vagelis@tem.uoc.gr, Ιστοσελίδα Μαθήματος:

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Η έννοια πρόβληµα Ανάλυση προβλήµατος Με τον όρο πρόβληµα εννοούµε µια κατάσταση η οποία χρήζει αντιµετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή ούτε προφανής. Μερικά προβλήµατα είναι τα εξής:

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

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

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

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

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

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

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

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

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

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

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

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ... ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ...1 1. Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...3 Κατηγορίες των Γεωγραφικών εδοµένων...3 Γεωγραφικές οντότητες...3 ιαστάσεις

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

http://kesyp.didefth.gr/ 1

http://kesyp.didefth.gr/ 1 248_Τµήµα Εφαρµοσµένων Μαθηµατικών Πανεπιστήµιο Κρήτης, Ηράκλειο Προπτυχιακό Πρόγραµµα Σκοπός του Τµήµατος Εφαρµοσµένων Μαθηµατικών είναι η εκαπαίδευση επιστηµόνων ικανών όχι µόνο να υπηρετήσουν και να

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές κατασκευής δένδρων επιθεµάτων πολύ µεγάλου µεγέθους και χρήσης

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

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ (1) ΓΕΝΙΚΑ ΣΧΟΛΗ ΠΟΛΥΤΕΧΝΙΚΗ ΤΜΗΜΑ Μηχανικών Οικονομίας και Διοίκησης ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ ΓΕ0145 ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ 4ο ΤΙΤΛΟΣ ΜΑΘΗΜΑΤΟΣ Εργαστήριο Προγράμματος

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

Πρόλογος των Συγγραφέων

Πρόλογος των Συγγραφέων Πρόλογος των Συγγραφέων Τεχνητή Νοηµοσύνη (ΤΝ) είναι ο τοµέας της επιστήµης των υπολογιστών, που ασχολείται µε τη σχεδίαση ευφυών (νοηµόνων) υπολογιστικών συστηµάτων, δηλαδή συστηµάτων που επιδεικνύουν

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

Κεφάλαιο 2. Μέθοδος πεπερασµένων διαφορών προβλήµατα οριακών τιµών µε Σ Ε

Κεφάλαιο 2. Μέθοδος πεπερασµένων διαφορών προβλήµατα οριακών τιµών µε Σ Ε Κεφάλαιο Μέθοδος πεπερασµένων διαφορών προβλήµατα οριακών τιµών µε Σ Ε. Εισαγωγή Η µέθοδος των πεπερασµένων διαφορών είναι από τις παλαιότερες και πλέον συνηθισµένες και διαδεδοµένες υπολογιστικές τεχνικές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

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

Ε. ΞΕΚΑΛΑΚΗ Καθηγήτριας του Τμήματος Στατιστικής του Οικονομικού Πανεπιστημίου Αθηνών ΜΗ ΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

Ε. ΞΕΚΑΛΑΚΗ Καθηγήτριας του Τμήματος Στατιστικής του Οικονομικού Πανεπιστημίου Αθηνών ΜΗ ΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ Ε. ΞΕΚΑΛΑΚΗ Καθηγήτριας του Τμήματος Στατιστικής του Οικονομικού Πανεπιστημίου Αθηνών ΜΗ ΠΑΡΑΜΕΤΡΙΚΗ ΣΤΑΤΙΣΤΙΚΗ ΑΘΗΝΑ, 2001 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ iii ix ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ 1 1.1

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

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

Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά. Ε. Κολέζα

Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά. Ε. Κολέζα Θεωρητικές αρχές σχεδιασµού µιας ενότητας στα Μαθηµατικά Ε. Κολέζα Α. Θεωρητικές αρχές σχεδιασµού µιας µαθηµατικής ενότητας: Βήµατα για τη συγγραφή του σχεδίου Β. Θεωρητικό υπόβαθρο της διδακτικής πρότασης

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα ΤµήµαΕφαρµοσµένης Πληροφορικής Πανεπιστήµιο Μακεδονίας Θεσσαλονίκη Ιούνιος 2006 εισαγωγικού µαθήµατος προγραµµατισµού υπολογιστών.

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

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

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

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

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

Φίλη μαθήτρια, φίλε μαθητή,

Φίλη μαθήτρια, φίλε μαθητή, Φίλη μαθήτρια, φίλε μαθητή, Το βιβλίο αυτό, όπως και το πρώτο τεύχος, είναι εναρμονισμένο με την πρόσφατα καθορισμένη ύλη και απευθύνεται στους μαθητές της Γ Λυκείου που έχουν επιλέξει τον προσανατολισμό

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

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

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

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

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Αντικείµενο της εργαστηριακής άσκησης για το 2008 αποτελεί το πρόβληµα της εύρεσης της κατανοµής ϑερµότητας ενός αντικειµένου σε σταθερή

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

Μεθοδολογίες παρεµβολής σε DTM.

Μεθοδολογίες παρεµβολής σε DTM. Μάθηµα : Αλγοριθµικές Βάσεις στη Γεωπληροφορική ιδάσκων : Συµεών Κατσουγιαννόπουλος Μεθοδολογίες παρεµβολής σε DTM.. Μέθοδοι παρεµβολής. Η παρεµβολή σε ψηφιακό µοντέλο εδάφους (DTM) είναι η διαδικασία

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

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

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

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

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

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

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

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

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος 2009. Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας.

ΠΡΟΛΟΓΟΣ. Θεσσαλονίκη, Μάρτιος 2009. Οι συγγραφείς. Κ. Παπαρρίζος, Ν. Σαμαράς, Α. Σιφαλέρας. ΠΡΟΛΟΓΟΣ Το βιβλίο «Δικτυακή Βελτιστοποίηση» γράφτηκε με κύριο στόχο να καλύψει τις ανάγκες της διδασκαλίας του μαθήματος «Δικτυακός Προγραμματισμός», που διδάσκεται στο Τμήμα Εφαρμοσμένης Πληροφορικής,

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

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Μάθηµα Κατεύθυνσης Πληροφορική Επιστήµη Η.Υ. Γ Ενιαίου Λυκείου ΟΚΤΩΒΡΙΟΣ 2005 1 Αναλυτικό Πρόγραµµα Μάθηµα Κατεύθυνσης:

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

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

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

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α : Α1. Να

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ ΘΕΜΑ ο 2.5 µονάδες ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ Τελικές εξετάσεις 2 Σεπτεµβρίου 2005 5:00-8:00 Σχεδιάστε έναν αισθητήρα ercetro

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

οµηµένος Προγραµµατισµός ΙΙΙ - Java

οµηµένος Προγραµµατισµός ΙΙΙ - Java οµηµένος Προγραµµατισµός ΙΙΙ - Παύλος Εφραιµίδης 1 Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2 Περιεχόµενα Μαθήµατος Εισαγωγή στους Αλγόριθµους

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

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 435: ΑΛΛΗΛΕΠΙ ΡΑΣΗ ΑΝΘΡΩΠΟΥ ΥΠΟΛΟΓΙΣΤΗ Ακαδηµαϊκό Έτος 2004 2005, Χειµερινό Εξάµηνο 2 Η ΟΜΑ ΙΚΗ ΕΡΓΑΣΙΑ: ΑΝΑΠΤΥΞΗ ΑΡΧΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΝΑΓΚΩΝ

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

MEΤΑΣΧΗΜΑΤΙΣΜΟΙ ΤΗΣ ΜΟΡΦΗΣ Y= g( X1, X2,..., Xn)

MEΤΑΣΧΗΜΑΤΙΣΜΟΙ ΤΗΣ ΜΟΡΦΗΣ Y= g( X1, X2,..., Xn) MEΤΑΣΧΗΜΑΤΙΣΜΟΙ ΤΗΣ ΜΟΡΦΗΣ g( Έστω τυχαίες µεταβλητές οι οποίες έχουν κάποια από κοινού κατανοµή Ας υποθέσουµε ότι επιθυµούµε να προσδιορίσουµε την κατανοµή της τυχαίας µεταβλητής g( Η θεωρία των ένα-προς-ένα

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

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008 2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008 Μικρό Θεώρηµα του Fermat, η συνάρτηση του Euler και Μαθηµατικοί ιαγωνισµοί Αλέξανδρος Γ. Συγκελάκης ags@math.uoc.gr Αύγουστος 2008 Αλεξανδρος Γ. Συγκελακης

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ. Μαθηματικά. Β μέρος

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ. Μαθηματικά. Β μέρος ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ 2 5 +32 17 2= 1156 Μαθηματικά Β μέρος 8 9 15 Δ=2 δ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Ομάδας Προσανατολισμού Θετικών Σπουδών και Σπουδών Οικονομίας

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Εισαγωγή ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΥΠΟΛΟΓΙΣΤΩΝ Όπως για όλες τις επιστήμες, έτσι και για την επιστήμη της Πληροφορικής, ο τελικός στόχος της είναι η επίλυση προβλημάτων. Λύνονται όμως όλα τα προβλήματα;

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

Άξονας ανάπτυξης του µαθήµατος 3. Γενικός σκοπός του µαθήµατος. Το µάθηµα της Πληροφορικής στο Γυµνάσιο

Άξονας ανάπτυξης του µαθήµατος 3. Γενικός σκοπός του µαθήµατος. Το µάθηµα της Πληροφορικής στο Γυµνάσιο Το µάθηµα της Πληροφορικής στο Γυµνάσιο Χρήση του ελεύθερου λογισµικού "Γλωσσοµάθεια" για την διδασκαλία εννοιών αλγοριθµικής - προγραµµατισµού στη Γ' Φουστέρης Νικόλαος Μηχανικός Πληροφορικής Τ.Ε. Καθηγητής

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

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΣΗΣ ΚΑΙ ΑΓΩΓΗΣ ΣΤΗΝ ΠΡΟΣΧΟΛΙΚΗ ΗΛΙΚΙΑ ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ/ ΟΥΣΑ: ΕΞΑΜΗΝΟ ΣΠΟΥΔΩΝ:. Σας παρακαλούμε, απαντώντας στα δύο ερωτηματολόγια που ακολουθούν,

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

5.1 Θεωρητική εισαγωγή

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

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