Ευχαριστίες. Β. Ζησιμόπουλος

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

Download "Ευχαριστίες. Β. Ζησιμόπουλος"

Transcript

1 ÂÆÁÃÇÃ ÁÃ ÈÇ ÁËÌÊÁ ÃÇÈ Æ ÈÁËÌÀÅÁÇ ÂÀÆÏÆ ÌÅÀÅ ÈÄÀÊÇ ÇÊÁÃÀËÃ ÁÌÀÄ ÈÁÃÇÁÆÏÆÁÏÆ ÌÇÅ ËÂ ÏÊÀÌÁÃÀËÈÄÀÊÇ ÇÊÁÃÀË Ð Ö ÑÓ ÈÓÐÙÔÐÓ Ø Ø º Ñ ÔÓÙÐÓ Ò ¾¼¼

2

3

4

5 Ευχαριστίες Ευχαριστώ θερμά τους συνεργάτες μου στο Τμήμα Πληροφορικής και Τηλεπικοινωνιών Μαρία Λιάζη, Γεράσιμο Πολλάτο, Ορέστη Τελέλη, Δημήτρη Ψούνη και τους μεταπτυχιακούς φοιτητές Γεράσιμο Δημητρίου, Χρήστο Σόφη, Αθανάσιο Περπερή και Πέτρο Χριστόπουλο, οι οποίοι βοήθησαν στην επιμέλεια και στην μείωση των λαθών αυτής της έκδοσης. Αναμφίβολα θα υπάρχουν και άλλα λάθη τα οποία ευελπιστούμε να ελαχιστοποιήσουμε στην επόμενη έκδοση. Β. Ζησιμόπουλος

6

7 È Ö Õ Ñ Ò 1 Εισαγωγή ΑνάλυσηΑλγορίθμων Ασυμπτωτικήπολυπλοκότητα ΚλάσειςΠολυπλοκότητας Ιδιότητεςασυμπτωτικώνσυμβολισμών Ασκήσεις Αναδρομή 1.1 Divide and Conquer Merge-Sort Binary Search Οιπύργοιτου Hanoi Ηακολουθία Fibonacci Οαλγόριθμος Min-Max QuickSort.... Ασυμπτωτικήπροσέγγισημερικώναθροισμάτων ΔένδραΑπόφασης The Master Theorem Το Masterθεώρημα Παραδείγματα Αναδρομικέςγραμμικέςεξισώσεις Γραμμικέςαναδρομέςτάξης k Αναδρομέςδιαμερίσεων Αναδρομέςπλήρεις,γραμμικέςήπολυωνυμικές Παραδείγματα Γραμμικών Αναδρομικών Εξισώσεων Γραμμικές Αναδρομικές Εξισώσεις με σταθερούς συντελεστές Εξισώσειςμετατρεπόμενεςσεγραμμικέςαναδρομές Σωροί 47.1 Δένδρα Ηδομήσωρού Υλοποίησημεπίνακαενόςσωρού Εισαγωγήενόςνέουστοιχείουστοσωρό Διαγραφήενόςστοιχείουαπότοσωρό

8 8 ΠΕΡΙΕΧ ΟΜΕΝΑ..4 Κατασκευήσωρού Ταξινόμησημετηβοήθειασωρού Κατακερματισμός (Hashing) Εισαγωγή Πίνακες Άμεσης Διευθυνσιοδότησης(Direct Address Tables) ΠίνακεςΚατακερματισμού (Hash Tables) Επίλυση Συγκρούσεων με Λίστες (Collision Resolution by Chaining) ΑνάλυσηΚατακερματισμούμεΛίστες ΣυναρτήσειςΚατακερματισμού (Hash Functions) ΗΜέθοδοςτηςΔιαίρεσης (Division Method) Η Πολλαπλασιαστική Μέθοδος (Multiplication Method) ΑνοιχτήΔιευθυνσιοδότηση (Open Addressing) ΓραμμικήΔιερεύνηση (Linear Probing) ΤετραγωνικήΔιερεύνηση (Quadratic Probing) ΔιπλόςΚατακερματισμός (Double Hashing) Ανάλυση του Κατακερματισμού Ανοιχτής Διευθυνσιοδότησης 68 5 Γράφοι Γενικά Ορισμοί Κατευθυνόμενοιγράφοι Μηκατευθυνόμενοιγράφοι Κύκλοικαιμονοπάτια ΕιδικέςΚατηγορίεςΓράφων ΠλήρειςΓράφοι ΔιμερείςΓράφοι ΚανονικοίΓράφοι Επίπεδοιγράφοι Υπογράφοι(subgraph) Συνεκτικοίγράφοι ΧορδικοίΓράφοι(Chordal Graphs) Δέντρα(trees) Πράξειςεπιτωνγράφων Ισομορφισμόςγράφων ΣυμπλήρωμαενόςΓράφου Διαγραφή(deletion) ΑποθήκευσηΓράφων ΠίνακαςΓειτνίασης ΠίνακαςΠρόσπτωσης ΛίστεςΓειτνίασης

9 ΠΕΡΙΕΧ ΟΜΕΝΑ 9 6 Αλγόριθμοι Γράφων ΕξερεύνησηΓράφων Γενικήμορφήενόςαλγορίθμουεξερεύνησης ΕξερεύνησηΠρώταΚατάΠλάτος ΕξερεύνησηΠρώταΚατάΒάθος Εφαρμογέςτωναλγορίθμωνεξερεύνησης Συνεκτικότητα ΤοπολογικήΤαξινόμηση Πράξειςσεασύνδετασύνολα(disjoint sets) ΕλάχισταΜονοπάτια Οαλγόριθμοςτου Dijkstra Οαλγόριθμοςτου Bellman Οαλγόριθμοςτου Bellmanγιαγράφουςχωρίςκύκλο ΔέντραΕπικάλυψης Πρόβλημα εύρεσης ενός δέντρου επικάλυψης ελάχιστου κόστους Αλγόριθμος Prim Αλγόριθμος Prim (nearest neighbour) Αλγόριθμος Kruskal ΔΕΕΚκαιτοπρόβληματουΠλανόδιουΠωλητή(TSP) ΆπληστοιΑλγόριθμοι ΓενικήμορφήενόςΆπληστουΑλγόριθμου Ανάθεσηενόςπόρου Αποθήκευσηαρχείωνσεδίσκους Το Διακριτό Πρόβλημα Σακιδίου (Discrete Knapsack) Το Συνεχές Πρόβλημα Σακιδίου (Continuous Knapsack) Δυναμικός Προγραμματισμός Εισαγωγικά Βασικάστοιχείατουδυναμικούπρογραμματισμού Βέλτιστα διασπώμενη δομή(optimal substructure) Επικαλυπτόμενα υποπροβλήματα(overlapping subproblems) Εφαρμογές Χρονοδρομολόγησηγραμμήςπαραγωγής Αλυσιδωτόςπολλαπλασιασμόςπινάκων Τοπρόβληματουσακιδίου Εξαντλητική Αναζήτηση Τοπρόβληματωνβασιλισσών NP-πληρότητα Εισαγωγή Οικλάσειςπολυπλοκότητας Pκαι NP ΠροβλήματαΑπόφασηςκαι NP πληρότητα Τοπρόβληματηςικανοποιησιμότητας

10 10 ΠΕΡΙΕΧ ΟΜΕΝΑ 10.4 ΠροβλήματαΣυνδυαστικήςΒελτιστοποίησης Προβλήματα NP δύσκολα Αναγωγές ΑγνώστουΚατάστασηςΠροβλήματα

11

12

13 Ã Ð Ó½ Û Η έννοια του αλγορίθμου είναι θεμελιώδης στον χώρο της επιστήμης των υπολογιστών. Χωρίς αλγόριθμους δεν υπάρχουν προγράμματα και χωρίς προγράμματα δεν υπάρχει τίποτα για να τρέξει στον υπολογιστή. Η δημιουργία αποδοτικών αλγορίθμων αποτέλεσε πρόκληση για τους επιστήμονες των περασμένων δεκαετιών. Οχι μόνο για την επίλυση με την χρήση υπολογιστή, προβλημάτων που ανέκυπταν σε όλους τους τομείς της επιστήμης, αλλά και για την συνεχή βελτίωσή τους, ώστε να τα λύνουν γρηγορότερα και καλύτερα. Σήμερα ακόμη περισσότερο, η ανάγκη σχεδίασης αποδοτικών αλγορίθμων, είναι μεγαλύτερη γιατί και τα προβλήματα που αντιμετωπίζει η ανθρωπότητα είναι μεγαλύτερα, δυσκολότερα και πιο περίπλοκα: Η αποκωδικοποίηση του ανθρωπίνου DNA, που αποσκοπεί στην αναγνώριση των περίπου γονιδίων του ανθρώπου. Η αναζήτηση των γονιδίων γίνεται σε περίπου εκατομμύρια βασικά χημικά ζευγάρια που δημιουργούν το ανθρώπινο γονιδίωμα, τα οποία είναι πεπλεγμένα και αταξινόμητα. Στο διαδίκτυο, του οποίου το ολοένα και αυξανόμενο μέγεθος δημιουργεί προβλήματα στον εντοπισμό της χρήσιμης πληροφορίας. Για παράδειγμα, οι μηχανές αναζήτησης πρέπει μέσα σε κλάσματα δευτερολέπτου να απαντούν στα ερωτήματά μας, ψάχνοντας σε μερικά δισεκατομμύρια ιστοσελίδων. Ακόμη περισσότερο, η δρομολόγηση πακέτων πληροφορίας πρέπει να βρίσκει σε μηδενικό χρόνο τον πιο γρήγορο δρόμο, ώστε να είμαστε ικανοποιημένοι με την ταχύτητα πρόσβασης των δεδομένων. Στο ηλεκτρονικό εμπόριο και γενικότερα στην επικοινωνία μέσω διαδικτύου, η εμπιστοσύνη στην υπηρεσία είναι προϋπόθεση, λόγω κινδύνου διαρροής προσωπικών δεδομένων(πιστωτικές κάρτες, διευθύνσεις κ.λ.π.). Το πρόβλημα απαιτεί τη δημιουργία γρήγορων και απαραβίαστων αλγορίθμων κρυπτογράφησης της διακινούμενης πληροφορίας. Στον εμπορικό κόσμο, η επιλογή στρατηγικών αποτελεί ένα περίπλοκο πρόβλημα. Για παράδειγμα, τα προβλήματα δρομολόγησης σε μια αεροπορική εταιρεί- 1

14 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η α, του σχεδιασμού οδικών αξόνων, της επιλογής μηχανών σε ένα εργοστάσιο, της επιλογής διαφημιστικής εκστρατείας, επιλέγονται από διαφορετικές δυνατές στρατηγικές με σκοπό την κοινή ωφέλεια ή το κέρδος. Αποδοτικοί αλγόριθμοι χρειάζονται ώστε να βρίσκεται η καλύτερη δυνατή στρατηγική από τις διαθέσιμες στρατηγικές, σε ικανοποιητικό χρόνο, παρά τα τεράστια μεγέθη δεδομένων των προβλημάτων. Τι είναι όμως ένας αλγόριθμος; Πως ξεχωρίζουμε έναν καλό από έναν κακό ½º½ Ò ÐÙ Ð ÓÖ ÑÛÒ αλγόριθμο; Πότε μπορούμε να κρίνουμε ότι ένας αλγόριθμος είναι ικανοποιητικός; Πως κατασκευάζονται αποδοτικοί αλγόριθμοι; Πως μπορούμε να εφαρμόζουμε έξυπνες αλγοριθμικές ιδέες στα προβλήματα που αντιμετωπίζουμε; Αυτά τα ερωτήματα είναι που πρέπει να απαντήσουμε, ώστε να κάνουμε τους αλγόριθμους ένα πολύ ισχυρό εφόδιο στο οπλοστάσιό μας. Ενας αλγόριθμος είναι μια υπολογιστική διαδικασία που παίρνει μία ή περισσότερες τιμές σαν είσοδο και παράγει μία ή περισσότερες τιμές σαν έξοδο. Ετσι ένας αλγόριθμος είναι μία ακολουθία υπολογιστικών βημάτων που μετασχηματίζει την είσοδο σε έξοδο. Η εκτέλεση ενός αλγορίθμου πρέπει να είναι τυφλή εφαρμογή των κανόνων ή των υπολογιστικών βημάτων από τα οποία αυτός αποτελείται. Κανένας αλγόριθμος δηλαδή δεν σκέφτεται αλλά ακολουθεί βήμα προς βήμα τους κανόνες του. Ενας αλγόριθμος καλά ορισμένος πρέπει να έχει τα εξής χαρακτηριστικά: 1. Να είναι πεπερασμένος, δηλαδή να τερματίζει πάντα μετά από έναν πεπερασμένο αριθμό βημάτων.. Να είναι επακριβώς ορισμένος. Κάθε βήμα του αλγορίθμου πρέπει να είναι επακριβώς ορισμένο, δηλαδή οι ενέργειες που πρέπει να γίνουν δεν πρέπει να είναι αμφίσημες. Για τον λόγο αυτό για την περιγραφή του αλγορίθμου ακολουθείται κάποια γλώσσα προγραμματισμού(που προσφέρει τον επακριβή ορισμό των εννοιών), ή κάποιου είδους ψευδογλώσσα.. Τα δεδομένα εισόδου, εξόδου και τα βοηθητικά δεδομένα που δημιουργούνται κατά τη διάρκεια εκτέλεσης του αλγορίθμου, πρέπει να κωδικοποιούνται από κάποιο πεπερασμένο αριθμό συμβόλων(π.χ., το σύνολο {0, 1}). 4.Ναείναιορθός.Δηλαδή,ηέξοδοςναείναιλύσηστουπόμελέτηπρόβλημα. Η ορθότητα του αλγορίθμου θα πρέπει να είναι δυνατόν να αποδειχθεί με μαθηματικά εργαλεία. Μία διαδικασία που έχει όλα τα χαρακτηριστικά που αναπτύξαμε αλλά δεν είναι σίγουρο αν είναι πεπερασμένη, ονομάζεται υπολογιστική μέθοδος. Για παράδειγμα, ένα πρόγραμμα που υπολογίζει επακριβώς τα ψηφία του π δεν είναι αλγόριθμος γιατί το πρόγραμμα αυτό δεν τερματίζει ποτέ, δεν πρόκειται κάποια στιγμή(έστω σε άπειρο χρόνο) να ολοκληρώσει τον υπολογισμό και να παράγει μία έξοδο σαν

15 1.1. ΑΝ ΑΛΥΣΗΑΛΓΟΡ ΙΘΜΩΝ αποτέλεσμα. Αντίθετα, αλγόριθμο μπορούμε να χαρακτηρίσουμε ένα πρόγραμμα πουυπολογίζειταπρώτα 1000 ψηφίατου π. Επιπρόσθετα δεν σημαίνει ότι κάθε αλγόριθμος μπορεί να προγραμματιστεί, δηλαδή μια καλά ορισμένη αλγοριθμική διαδικασία δεν είναι απαραίτητο ότι είναι προγραμματίσιμη. Αυτό μπορεί να συμβαίνει λόγω περιορισμού της χρησιμοποιούμενης γλώσσας, αδυναμίας των υπολογιστών να εκφράσουν μαθηματικές έννοιες κ.λ.π. Ωστόσο οι εφαρμογές και τα παραδείγματα που θα χρησιμοποιήσουμε στην συνέχεια, δεν θα υπεισέρχονται σε αυτές τις ειδικές κατηγορίες. Οπότε χάριν απλότητας θα εννοήσουμε ταυτόσημες τις έννοιες αλγόριθμος και πρόγραμμα. Ενα πρόγραμμα θα είναι χρήσιμο, αν εκτελείται σε λογικό χρόνο(δηλαδή δεν χρειάζεται αιώνες για να ολοκληρωθεί) και δεσμεύει λογικό χώρο μνήμης(όχι παραπάνω από όσο μπορούμε να έχουμε σε ένα καθημερινό σύστημα). Για να μπορούμε να διαχωρίσουμε τα χρήσιμα από τα άχρηστα προγράμματα, θα πρέπει να βρεθεί ένας τρόπος(μέτρο) για τον χαρακτηρισμό του προγράμματος. Αυτός είναι η πολυπλοκότητα χρόνου(δηλαδή πόσο γρήγορος είναι ο αλγόριθμος), και η πολυπλοκότητα χώρου(δηλαδή πόση μνήμη χρειάζεται το πρόγραμμα για να τρέξει). Η πολυπλοκότητα ενός αλγορίθμου εκφράζεται σαν συνάρτηση της διάστασης του υπό μελέτη προβλήματος. Η διάσταση του προβλήματος είναι το πλήθος των ατομικών δεδομένων για επεξεργασία, όπως για παράδειγμα το πλήθος των στοιχείων μιας ακολουθίας, ή ενός πίνακα, τα bits ενός αριθμού, κ.ο.κ. Ας δούμε τώρα την έννοια της πολυπλοκότητας με ένα παράδειγμα: Το Πρόβλημα της Αναζήτησης Δίνεταιμιαακολουθία nστοιχείων S = (a 1, a,..., a n )καιέναστοιχείο x. Είναιτο xμέλοςτου Sκαιανναισεποιαθέση; Ενας απλός αλγόριθμος είναι ο εξής: Ψάξε ένα ένα τα στοιχεία της ακολουθίας. Αν βρεις αυτό που ψάχνεις σταμάτα. Ας τον διατυπώσουμε σε αλγοριθμική γλώσσα (ψευδογλώσσα) όπως φαίνεται στο σχήμα 1.1. Σειριακη Αναζητηση (S, x) 1. i = 1. while i n + 1 and a i x do. i = i end while 5. if i > n 6. return 1 7. else 8. return i 9. end if Σχήμα 1.1: Αλγόριθμος αναζήτησης ενός στοιχείου x σε μονοδιάστατο πίνακα S.

16 4 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Πόσες πράξεις θα κάνει ο αλγόριθμος αυτός για κάποια δεδομένα εισόδου; Αν το xείναιτοπρώτοστοιχείοτηςακολουθίας,τότεθακάνεισυγκρίσεις(απότον πρώτοέλεγχοτης WHILEκαιτηνεντολή IF)καιμίακαταχώρηση(την i = 1). Αντο xείναιτοδεύτεροστοιχείοτηςακολουθίας,τότεθακάνει5συγκρίσειςκαι καταχωρήσεις και γενικά αν είναι το i-οστό στοιχείο θα κάνει i + 1 συγκρίσεις και i + 1καταχωρήσεις. Αντίθετα,αντο xδενανήκειστηνακολουθία,τότεο αλγόριθμος θα εκτελέσει n συγκρίσεις(στην τελευταία επανάληψη υποθέτουμε ότιθακάνεικαιτιςδύοσυγκρίσεις)και n + 1καταχωρήσεις. Η πρώτη περίπτωση είναι η καλύτερη δυνατή(δηλαδή ο αλγόριθμος θα εκτελέσει τον ελάχιστο αριθμό βημάτων). Η δεύτερη περίπτωση είναι η χειρότερη δυνατή (θα εκτελέσει το μέγιστο δυνατό αριθμό βημάτων). Ανθεωρήσουμεως D n τοσύνολοτωνδιαφορετικώνεισόδωνστοπρόβλημα και d D n μιαείσοδότου,τότεοιορίζονταιταπαρακάτωμέτρα,κάθεένααπότα οποία μας δίνει μία διαφορετική αίσθηση της αποδοτικότητάς του αλγορίθμου: Πολυπλοκότητα στην βέλτιστη περίπτωση: C βπ (n) = min{κόστος(d), d D n } Πολυπλοκότητα στην χείριστη περίπτωση: C χπ (n) = max{κόστος(d), d D n } Πολυπλοκότητα κατά μέσο όρο: C µo (n) = d D n p(d)κόστος(d) Η κατά μέσο όρο πολυπλοκότητα, είναι πόσες πράξεις κάνει(ή πόση μνήμη δεσμεύει) ο αλγόριθμος κατά μέσο όρο. Ετσι μετράμε τις πράξεις(κόστος(d)) πουκάνειοαλγόριθμοςγιακάθεδυνατήείσοδο d D n πουδίνεταιμεπιθανότητα p(d). Για παράδειγμα, έστω ότι σαν ακολουθία μας δίνεται η ταξινομημένη ακολουθία 1,..., nκαισανστοιχείοπροςεξερεύνησημαςδίνεταιισοπίθαναένααπότα {1,,..., n}.τότεηπολυπλοκότητακατάμέσοόρο(γιασυγκρίσειςμόνο)είναι: C µo (n) = 1 n + 1 n n n = 1 n i=1 (i + 1) + n + n (n + 1) + (n + ) n = n + 5 Βλέπουμε λοιπόν ότι όσον αφορά τις συγκρίσεις(που για τον αλγόριθμο αυτό είναι στοιχειώδης πράξη, δηλαδή αυτή που γίνεται περισσότερο και είναι υπολογιστικάβαρύτερηαπόκάθεάλλη)οαλγόριθμοςέχει στηνβέλτιστη, n + στην χείριστη και περίπου 1.5n κατά μέσο όρο. Θα μπορούσαμε να πούμε ότι αντίστοιχα κάθε μέγεθος από αυτά μας δίνει μια αισιόδοξη, μια απαισιόδοξη και μία ρεαλιστική άποψη του χρόνου εκτέλεσης του προβλήματος. Ωστόσο όλα μαζί είναι χρήσιμα για να έχουμε μία ολοκληρωμένη άποψη για τον αλγόριθμο. Ωστόσο, δεν είναι απαραίτητο να έχουμε τέτοιες αποκλίσεις ανάμεσα στις τρεις πολυπλοκότητες. Ας θεωρήσουμε το ακόλουθο πρόβλημα:

17 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 5 Εσωτερικό γινόμενο δύο διανυσμάτων Εστω a = (a i ), b = (b i )διανύσματατου R n. Ζητείταιτοεσωτερικόγινόμενο αυτών. Εσωτερικο Γινομενο (a, b) 1. sp = 0. for i = 1 to n do. sp = sp + a i b i 4. end for 5. return sp Σχήμα 1.: Υπολογισμός του εσωτερικού γινομένου δύο ίσης διάστασης διανυσμάτων a και b. Σε αυτόν τον αλγόριθμο ανεξάρτητα από τους αριθμούς των ακολουθιών θα γίνουν n προσθέσεις, n πολλαπλασιασμοί και n καταχωρήσεις. Άρα ισχύει ½º¾ ÙÑÔØÛØ ÔÓÐÙÔÐÓ Ø Ø C βπ (n) = C χπ (n) = C µo (n) = n Οπως θα δούμε παρακάτω, δεν χρειάζεται να κάνουμε καταμέτρηση όλων των διαφορετικών τύπων πράξεων σε έναν αλγόριθμο, αλλά αρκεί η υπολογιστικά βαρύτερη πράξη. Ακόμη πιο απλά η καταμέτρηση των εκτελούμενων εντολών αρκεί για τον υπολογισμό της πολυπλοκότητας του αλγορίθμου. Εστωέναπρόβλημαμεδιάσταση n(π.χ. ηαναζήτησησεμιαακολουθία)και έστωκαιδύοαλγόριθμοιπουτολύνουν,οaμεπολυπλοκότητα 100nκαιοBμε πολυπλοκότητα n.θεωρώνταςσανκαλύτεροαυτόνπουκάνειλιγότερεςπράξεις για την ίδια είσοδο μπορούμε να διακρίνουμε τρεις περιπτώσεις ανάλογα με το n: = 100 Οι Α,Β έχουν ίδια πολυπλοκότητα n : < 100 ΟΒείναιαποδοτικότεροςαπότονΑ > 100 οαείναιαποδοτικότερόςαπότονβ Παρατηρούμε ότι μετά από ένα κατώφλι, όσο το n γίνεται μεγαλύτερο τόσο ο αλγόριθμος A γίνεται καλύτερος του B. Ακόμη περισσότερο ο ρυθμός με τον οποίογίνεταιοaκαλύτεροςτου B αυξάνειγραμμικάσεσχέσημετο n. Για παράδειγμα,έστωμιαμηχανήπουεκτελεί 10 6 εντολέςτοδευτερόλεπτο.για n = 1000οαλγόριθμος Aεκτελείταισε 100n 10 6 = 0.1δευτερόλεπτακαιοBσε n 10 6 = 1δευτερόλεπτο,δηλαδήείναι10φορέςπιοαργός.Για n = 10000ο Βείναι100φορέςπιοαργός,κ.ο.κ. Άρα όσο αυξάνει το n τόσο η διαφορά της αποδοτικότητας γίνεται μεγάλη. Λαμβάνοντας υπ όψιν ότι μας ενδιαφέρει περισσότερο τι γίνεται για μεγάλες διαστάσεις δεδομένων και ότι μετά από ένα κατώφλι η τάξη της συνάρτησης πολυπλοκότητας

18 6 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η T T cg(n) f(n) f(n) cg(n) n 0 n n 0 n f(n) = O(g(n)) f(n) = Ω(g(n)) T c g(n) f(n) c 1 g(n) n 0 f(n) = Θ(g(n)) n Σχήμα 1.: Γραφική Απεικόνιση των συμβολισμών O, Ω, Θ είναι αυτή που καθορίζει την αποδοτικότητα του αλγορίθμου½οδηγούμαστε στην εισαγωγή συμβολισμών, που θα ορίζουν την συμπεριφορά συναρτήσεων(πολυπλοκότητας) ασυμπτωτικά. Οι συμβολισμοί αυτοί διαβάζονται f(n) ίσον(μεγάλο) όμικρον του g(n), ωμέγα του g(n) και θήτα του g(n) και ορίζονται ως εξής: f(n) = O(g(n))ανυπάρχουν c, n 0 > 0έτσιώστε f(n) cg(n)γιακάθε Òô Ñ ÒÙÔ ÖÕÓÙÒÑ Ð Ø Ö ÙØ Ñ Ö ÙÒ Ñ ôòóòø Ö Ø º Ø ØÓ ÙÒ ÖØ ÔÓÐÙÔÐÓ Ø Ø Ò Ñ ÒÞÓÒØ Ø ÒÔÖ Ü Ñ Ø ÕÒ ØÓ Ð Ö ÑÓÙ n > n 0 f(n) = Ω(g(n))ανυπάρχουν c, n 0 ;Ï Ø Ó > 0έτσιώστε f(n) cg(n)γιακάθε n > n 0 f(n) = Θ(g(n))ανυπάρχουν c 1, c, n 0 > 0έτσιώστε 0 c 1 g(n) f(n) ½Â ÛÖ Ø Ò Ð Ö ÑÓÔÓÐÙÔÐÓ Ø Ø n Ò Ð Ø ÖÓ Ô Ò Òn

19 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 7 c g(n)γιακάθε n > n 0. Εναλλακτικά,αν f(n) = O(g(n))και f(n) = Ω(g(n)),τότε f(n) = Θ(g(n)) Τα O(g(n)), Ω(g(n)), Θ(g(n)) είναι σύνολα συναρτήσεων, δηλαδή είναι όλες οι συναρτήσεις για τις οποίες ισχύει μετά από κάποιο κατώφλι, ότι η f φράσσεται αντίστοιχα από πάνω, από κάτω και είναι ίδιας τάξης με την g. Στην πραγματικότητα δηλαδή,έχουμεότι f(n) O(g(n)), f(n) Ω(g(n))ήf(n) Θ(g(n))αλλάέχει επικρατήσει ο συμβολισμός της ισότητας. Η ισότητα είναι καθαρά συμβολισμός και δεν θα πρέπει να εξάγουμε εσφαλμένα συμπεράσματα όπως παραδείγματος χάριν: f(n) = O(n)και f(n) = O(n )άρα O(n) = O(n ). Μπορούμεναδούμετην σχέση φράγματος που προκύπτει από τους ορισμούς, στις γραφικές παραστάσεις του σχήματος 1.. Ας δούμε την ασυμπτωτική συμπεριφορά της συνάρτησης πολυπλοκότητας f(n) = n 100n + 6: n 100n + 6 = O(n )αφού n 100n + 6 < n για n > 0. n 100n + 6 = O(n )αφού n 100n + 6 < n για n > 0. n 100n + 6 O(n)αφού c : n 100n + 6 < cnγια n > c. n 100n + 6 = Ω(n )αφού n 100n + 6 >.99n για n > n 100n + 6 = Ω(n)αφού n 100n + 6 > ( )nγια n > n 100n + 6 Ω(n )αφού c : n 100n + 6 > cn για n > n 0. n 100n+6 = Θ(n )αφού n 100n+6 = Ω(n )και n 100n+6 = O(n ) Ορίζουμε και ασυμπτωτικά σύμβολα που ορίζουν ότι τα φράγματα είναι αυστηρά: f(n) = o(g(n))ανγιακάθε c > 0,υπάρχει n 0 έτσιώστε f(n) < cg(n)για κάθε n > n 0 f(n) = ω(g(n))ανγιακάθε c > 0,υπάρχει n 0 έτσιώστε f(n) > cg(n)για κάθε n > n 0 Ηδιαφοράτουσυμβολισμού oαπότοσυμβολισμό Oείναιλεπτή. Στονσυμβολισμό oυπάρχειηέννοιατηςαυστηρότητας,δηλαδήαν f(n) = o(g(n)),τότε στον ορισμό ισχύει αυστηρή ανισότητα. Αντίθετα όταν f(n) = O(g(n)) ισχύει ανισοισότητα. Επίσης, στο συμβολισμό O υπάρχουν κάποιες σταθερές c για την οποία να ισχύει η ανισότητα. Ενώ στον o για κάθε σταθερά c ισχύει η ανισότητα. Γιαπαράδειγμα n + n 1 = O(n ) = o(n ) o(n ). Στηνπραγματικότητα δηλαδή,όταν f(n) = o(g(n))έχουμεότιηf(n)είναιαμελητέασεσχέσημετην g(n).

20 ½º¾º½ÃÐ ÈÓÐÙÔÐÓ Ø Ø 8 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Η κατάταξη των συναρτήσεων πολυπλοκότητας σε γενικότερα σύνολα συναρτήσεων μας παρέχει μία ομαδοποίηση υψηλού επιπέδου, μέσω της οποίας μπορούμε να κρίνουμε πότε ένας αλγόριθμος είναι καλύτερος από έναν άλλον, αν είναι αποδοτικός κ.λ.π. Ας δούμε ένα παράδειγμα. Εστω ένα πρόβλημα Π και τέσσερις αλγόριθμοι A, B, C, D που το λύνουν με αντίστοιχες συναρτήσεις πολυπλοκότητας που α- συμπτωτικάφράσσονταιωςεξής: T A (n) = O(n), T B (n) = O(n ), T C (n) = O(n ) και T D (n) = n. Καθώςηδιάστασητουπροβλήματοςαυξάνει,οιαπαιτούμενες πράξεις αυξάνουν, όπως φαίνεται στην γραφική παράσταση του σχήματος 1.4. T(n) T D (n) T C (n) T B (n) T A (n) n Σχήμα 1.4: Αύξηση πολυπλοκότητας με την αύξηση του μεγέθους του προβλήματος για 4 διαφορετικούς αλγορίθμους Καθώς το n αυξάνει η απόκλιση των απαιτούμενων πράξεων γίνεται περισσότερο φανερή. Ο ρυθμός με τον οποίο αυξάνουν οι πράξεις ακολουθεί την κατάταξη: T A (n) < T B (n) < T C (n) < T D (n) ιδιαίτεραδε οαλγόριθμος D παρουσιάζει πολύ μεγαλύτερο ρυθμό αύξησης από τους άλλους. Η μεγάλη αυτή πολυπλοκότητα, καθιστά τον αλγόριθμο D τόσο αδύναμο, ώστε να μπορεί να χρησιμοποιηθεί για την επίλυση μόνο μικρών στιγμιοτύπων του προβλήματος. Για να δούμε όμως πόσο πραγματικά μικρά είναι τα στιγμιότυπα που μπορεί αυτόςναλύσει. Εστωμιαμηχανήπουεκτελεί 10 7 πράξειςτοδευτερόλεπτο(10 MIPS)καιέστωότιαφήνουμετουςαλγορίθμους A, B, C, Dνατρέξουνγια 0.1 δευτερόλεπτα,10λεπτάκαι1ημέρα.ηδιάστασηπουθαλύσουνφαίνεταιστονπίνακα 1.1, όπου γίνεται εμφανής η αδυναμία του αλγορίθμου D να λύσει προβλήματα μεγάλης διάστασης. Αλγόριθμοι σαν τον D είναι συχνά οι καλύτεροι δυνατοί για έναν πρόβλημα, ιδίως στα αποκαλούμενα N P-δύσκολα προβλήματα(που θα δούμε αργότερα), στα οποία δεν μπορούμε μέχρι σήμερα να βρούμε καλούς(πολυωνυμικούς) αλγορίθμους που τα επιλύουν βέλτιστα.

21 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 9 Αλγόριθμος 0.1 sec 10 min 1 day T A (n) = O(n) T B (n) = O(n ) T C (n) = O(n ) T D (n) = O( n ) 0 9 Πίνακας 1.1: Διάσταση προβλημάτων που εκτελούνται από τους 4 αλγόριθμους σε σταθερό χρόνο από μια μηχανή 10 MIPS Για παράδειγμα έστω το εξής N P δύσκολο πρόβλημα: Μία επιχείρηση έχει επιλέξει n τοποθεσίες για να χτίσει n εργοστάσια. Κάθε εργοστάσιο θα έχει έναν κύκλοπαραγωγήςυλικώνκαιθαπρέπειναλαμβάνεικαιναστέλνειυλικάσταάλλα εργοστάσια πληρώνοντας το ανάλογο κόστος μεταφοράς. Αν σε κάθε τοποθεσία μπορεί να χτιστεί ακριβώς ένα εργοστάσιο, σε ποια τοποθεσία πρέπει να χτιστεί κάθε εργοστάσιο, ώστε να ελαχιστοποιείται το κόστος της μεταφοράς των υλικών; Αν δημιουργήσουμε όλους τους δυνατούς συνδυασμούς τοποθεσιών- εργοστασίων(πολυπλοκότητας n!) και μετρήσουμε το συνολικό κόστος για κάθε συνδυασμό, ώστε να επιλέξουμε αυτόν που έχει ελάχιστο κόστος, τότε ακόμη και για μικρά στιγμιότυπα του προβλήματος, για παράδειγμα με διάσταση 80 και με μία μηχανή πουεξετάζει 10 7 συνδυασμούςτοδευτερόλεπτο,θαχρειαστούνπερίπου χρόνια, ένας αριθμός πολύ μεγαλύτερος από τα μόρια του γαλαξία μας! Σεάλλαπάλιπροβλήματα(πουδενείναι NP δύσκολα),ηεύρεσηενόςαποτελεσματικού αλγορίθμου μπορεί να βελτιώσει θεαματικά τον χρόνο επίλυσης. Για παράδειγμα έστω το εξής πρόβλημα ανάθεσης εργασιών: Δίνεται ένα σύνολο υπαλλήλων και ένα σύνολο εργασιών οι οποίες πρέπει να ανατεθούνστουςυπαλλήλους.κάθεεργασία iστοιχίζει c ij ότανανατίθεταιστον υπάλληλο j.μίαεργασίαθαπρέπειναανατεθείσεένανμόνουπάλληλοκαικάθε υπάλληλος θα εκτελέσει ακριβώς μία εργασία, ενώ έχουμε ίδιο πλήθος εργασιών και υπαλλήλων. Να βρεθεί η ανάθεση που ελαχιστοποιεί το συνολικό κόστος ανάθεσης. Και εδώ, η δημιουργία όλων των δυνατών συνδυασμών εργασιών- υπαλλήλων (εκθετικός αλγόριθμος) ακόμη και για μικρά στιγμιότυπα του προβλήματος, για παράδειγμα με 0 υπαλλήλους και 0 εργασίες, θα χρειαστεί χιλιετίες για να ολοκληρωθεί. Εντούτοις, ο Hungarian αλγόριθμος, ο οποίος είναι πολυωνυμικός αλγόριθμος,θαχρειαστείπερίπουμόνο 1.95 secσεμίαμηχανήπουελέγχει 10 6 συνδυασμούς το δευτερόλεπτο. Γίνεται λοιπόν εμφανές, ότι η ανάπτυξη αποδοτικών αλγορίθμων είναι μία αναγκαιότητα παρά την ραγδαία ανάπτυξη της ταχύτητας των υπολογιστών. Σύμφωνα με τον νόμο του Moore(που ακολουθείται με θαυμαστή συνέπεια τις τελευταίες δεκαετίες) η ταχύτητα των επεξεργαστών διπλασιάζεται κάθε 18 μήνες. Αυτό σημαίνει ότι σε15χρόνιααπόσήμερα,οιεπεξεργαστέςθαέχουνγίνει1000φορέςπιογρήγοροι. Αν σήμερα σε σταθερό χρόνο λύνουμε μέχρι διάσταση n με αλγορίθμους δεδομένης πολυπλοκότητας, τότε μετά από 15 χρόνια θα λύνουμε στον ίδιο χρόνο τις διαστάσεις που φαίνονται στον πίνακα 1..

22 10 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Πολυπλοκότητα Σημερινή Διάσταση Μελλοντική Διάσταση O(n) n 1000 n O(n ) n n O(n ) n 10 n O(n 4 ) n 6 n O( n ) n n + 10 O( n ) n n + 8 O(n!) n n + 7 Πίνακας 1.: Αύξηση της διάστασης του προβλήματος που επιλύεται σε σταθερό χρόνο από έναν αλγόριθμο δεδομένης πολυπλοκότητας σε μια μηχανή 1000 φορές ταχύτερη. 1 Σταθερή πολυπλοκότητα log(n) Λογαριθμική πολυπλοκότητα log k (n) Πολυλογαριθμικήπολυπλοκότηταόταν kμίασταθερά n Γραμμικήπολυπλοκότητα(πχ, f(n) = an + b,με a, bσταθερές) nlogn n Τετραγωνικήπολυπλοκότητα n Κυβικήπολυπλοκότητα n k Πολυωνυμικηπολυπλοκότητα,με kμίασταθερά, δηλ. f(x) = a k n k a 0 a n Εκθετικήπολυπλοκότητα 1 < a < n Εκθετικήπολυπλοκότητα a n Εκθετικήπολυπλοκότητα a > n! Παραγοντική πολυπλοκότητα n n Υπερεκθετικήπολυπλοκότητα Πίνακας 1.: Χαρακτηριστικές κλάσεις πολυπλοκότητας Άρα ο ισχυρισμός ότι η ανάγκη ανάπτυξης αποδοτικών αλγορίθμων θα εκλείψει μπροστά στις αυξητικές αποδόσεις των αυριανών υπολογιστών, αποτελεί μία πλήρως εσφαλμένη θέση. Κατάταξη κλάσεων πολυπλοκότητας Με βάση την παραπάνω συζήτηση, είναι δυνατή η κατηγοριοποίηση των συναρτήσεων πολυπλοκότητας σε κλάσεις, οι οποίες μας παρέχουν ένα μέτρο αποδοτικότητας αλγορίθμων(πίνακας 1.). Η διαχωριστική γραμμή χωρίζει τους αποδοτικούς αλγόριθμους(πολυωνυμικούς) από τους μη αποδοτικούς(εκθετικούς). Οι εκθετικοί αλγόριθμοι χρειάζονται υπερβολικό χρόνο και δεν μπορούμε να τους εμπιστευθούμε ούτε για μικρές τάξεις δεδομένων για πολλά προβλήματα. Γενικά, οι κλάσεις πολυπλοκότητας έχουν σαν μέλη τους συναρτήσεις. Ω-

23 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 11 στόσο ανάλογα με ποιον ασυμπτωτικό συμβολισμό χρησιμοποιούμε, υπάρχει και μια συνολοθεωρητική σχέση. Ηκλάσηπολυπλοκότητας O(n)είναιυποσύνολοτης O(n )πουείναιυποσύνολοτης O(n )κ.ο.κ.ηαξίωσηαυτήείναιλογική:έναςαλγόριθμοςπουφράσσεται ασυμπτωτικά από μία γραμμική συνάρτηση, φράσσεται και από μία τετραγωνική, η οποία φράσσεται από μία κυβική κ.ο.κ. Αντίστροφα,ηκλάσηπολυπλοκότητας Ω(n)είναιυπερσύνολοτης Ω(n ),δηλαδή αν μια συνάρτηση φράσσεται ασυμπτωτικά από κάτω από μία τετραγωνική συνάρτηση, τότε φρασσεται και από μία γραμμική. Αυτή η συνολοθεωρητική σχέση υποσυνόλου, δεν ισχύει για το συμβολισμό Θ. Εδώ, κάθε κλάση πολυπλοκότητας είναι ξένη με οποιανδήποτε άλλη. Δηλαδή, ανμιασυνάρτησηείναι Θ(n)τότεδενανήκεισεκαμίαάλληκλάσημεσυμβολισμό Θ. Η έννοια του βέλτιστου αλγορίθμου Ας θεωρήσουμε ένα οποιοδήποτε πρόβλημα και έστω ότι υπάρχουν γι αυτό τρεις αλγόριθμοι που το λύνουν. Τότε ο καλύτερος από αυτούς, θα είναι εκείνος που έχει την καλύτερη πολυπλοκότητα στην χείριστη περίπτωση. Πως όμως θα ξέρουμε αν υπάρχει καλύτερος αλγόριθμος από αυτούς, δηλαδή έ- νας αλγόριθμος που έχει καλύτερη πολυπλοκότητα και δεν έχει ακόμη ανακαλυφθεί, αν δηλαδή αξίζει τον κόπο να καταβάλλουμε προσπάθεια για την εύρεση ενός ακόμη καλύτερου αλγόριθμου; Αν για ένα πρόβλημα, οποιοσδήποτε αλγόριθμος που το επιλύει έχει ασυμπτωτική πολυπλοκότητα Ω(f(n)) και έχουμε ήδη έναν αλγόριθμο με ασυμπτωτική πολυπλοκότητα O(f(n)) τότε ο αλγόριθμος αυτός είναι βέλτιστος(ασυμπτωτικά). Αυτό σημαίνει ότι αν για κάποιο πρόβλημα έχει αποδειχθεί ότι χρειάζεται το λιγότερο f(n) πραξεις και έχουμε κατασκευάσει αλγόριθμο που κάνει το πολύ αυτές τις πράξεις, τότε ο αλγόριθμος είναι βέλτιστος. Ενα παράδειγμα προβλήματος στο οποίο έχει βρεθεί ο βέλτιστος, ως προς την πολυπλοκότητα, αλγόριθμος είναι το πρόβλημα της ταξινόμησης με συγκρίσεις. Αποδεικνύεται εύκολα, ότι οποιοσδήποτε αλγόριθμος που βασίζεται σε συγκρίσεις πρέπει να κάνει το λιγότερο n log n συγκρίσεις. Ο αλγόριθμος της ταξινόμησης με σωρό (heapsort) και της γρήγορης ταξινόμησης (quicksort) επιτυγχάνουν πολυπλοκότητα O(n log n)κατάμέσοόρο,επομένωςείναιβέλτιστοιωςπροςτηνπολυπλοκότητα κατά μέσο όρο. Ο αλγόριθμος ταξινόμησης με σωρό έχει πολυπλοκότητα O(n log n) και στην χείριστη περίπτωση, άρα είναι βέλτιστος ασυμπτωτικά και στην χείριστη περίπτωση. Αντίθετα ο αλγόριθμος της γρήγορης ταξινόμησης, στην χείριστηπερίπτωση(π.χ.ήδηταξινομημένηακολουθία)έχειπολυπλοκότητα O(n ) άρα δεν είναι βέλτιστος αλγόριθμος. Ωστόσο η απόδειξη ύπαρξης μη τετριμμένων κάτω φραγμάτων για τις πράξεις ενός αλγορίθμου, είναι μια όχι εύκολη διαδικασία. Θα δούμε τώρα ένα δεύτερο παράδειγμα μη βέλτιστου αλγορίθμου. Θεωρούμε το πρόβλημα πολλαπλασιασμού τετραγωνικών πινάκων, στο οποίο μαςδίνονταιδύοπίνακες A n n και B n n καιμαςζητείταιναυπολογίσουμετο

24 1 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η γινόμενοτους C n n : c ij = n a ik b kj, 1 i, j n k=1 Ενας προφανής αλγόριθμος που υπολογίζει το γινόμενο είναι αυτός του σχήματος 1.5. Πολλαπλασιασμος Πινακων (A, B) 1. for i = 1 to n do. for j = 1 to n do. c ij = 0 4. for k = 1 to n do 5. c ij = c ij + a ik b kj 6. end for 7. end for 8. end for 9. return C Σχήμα 1.5: Πολλαπλασιασμός δύο τετραγωνικών πινάκων διάστασης n. Οαλγόριθμοςαυτόςκάνει n πολλαπλασιασμούς(πουείναιηστοιχειώδης πράξη)άραέχειπολυπλοκότητα O(n ). Ωστόσοεπιστήμονεςπαρατήρησανότι μπορούσαν να ελαττώσουν το πλήθος των πολλαπλασιασμών με κάποιες έξυπνες πράξειςκαιέτσιτο1969οstrassenπαρουσίασεαλγόριθμοπουέκανε O(n.81 ) πολλαπλασιασμούς και ο καλύτερος αλγόριθμος μέχρι σήμερα είναι των Coopersmith ½º¾º¾Á Ø Ø ÙÑÔØÛØ ôò ÙÑ ÓÐ ÑôÒ & Winogradτου1986με O(n.79 )πολλαπλασιασμούς.καιοιπαραπάνω αλγορίθμοι για τον πολλαπλασιασμό πινάκων δεν είναι βέλτιστοι. Είναι λογικό ότι οποιοσδήποτε αλγόριθμος που λύνει το πρόβλημα αυτό, πρέπει νακάνει Ω(n )βήματα,αφούτόσοςχρόνοςαπαιτείταιμόνογιατοσάρωματων δύο πινάκων εισόδου. Άρα ο αλγόριθμος των Coopersmith & Winograd δεν είναι βέλτιστος ως προς την πολυπλοκότητα. Θεωρώντας ότι οι συναρτήσεις πολυπλοκότητας f(n), g(n), h(n) είναι μονοτονικές μη φθίνουσες θετικές ακολουθίες, ισχύουν οι παρακάτω ιδιότητες: Μεταβατικότητα Αν f(n) = Θ(g(n))και g(n) = Θ(h(n))τότε f(n) = Θ(h(n)), Αν f(n) = O(g(n))και g(n) = O(h(n))τότε f(n) = O(h(n)), Αν f(n) = Ω(g(n))και g(n) = Ω(h(n))τότε f(n) = Ω(h(n)), Αν f(n) = o(g(n))και g(n) = o(h(n))τότε f(n) = o(h(n)),

25 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 1 Αν f(n) = ω(g(n))και g(n) = ω(h(n))τότε f(n) = ω(h(n)) Ανακλαστικότητα f(n) = Θ(f(n)), f(n) = O(f(n)), f(n) = Ω(f(n)) Συμμετρία f(n) = Θ(g(n))ανκαιμόνοαν g(n) = Θ(f(n)) Ανάστροφη Συμμετρία f(n) = O(g(n))ανκαιμόνοαν g(n) = Ω(f(n)) f(n) = o(g(n))ανκαιμόνοαν g(n) = ω(f(n)) Πράξεις co(f(n)) = O(f(n)) O(g(n)) + O(g(n)) = O(g(n)) O(g 1 (n) + O(g (n)) = O(max{g 1 (n), g (n)}) O(g 1 (n)) O(g (n)) = O(g 1 (n) g (n)) Η εξαγωγή της ασυμπτωτικής συμπεριφοράς μίας συνάρτησης μπορεί να ορισθεί ισοδύναμα χρησιμοποιώντας την έννοια του όριου συναρτήσεων και αυτό γιατί στην ουσία μας ενδιαφέρει η σύγκριση της συμπεριφοράς μιας συνάρτησης σε σχέση με ένα φράγμα, καθώς η διάσταση του προβλήματος τείνει στο άπειρο. Ετσι, έχουμε τους ακόλουθους ισοδύναμους ορισμούς για τους ασυμπτωτικούς συμβολισμούς: 1.Αν τότε f(n) = Θ(g(n)) f(n) lim n + g(n) = a 0.Αν.Αν f(n) lim n + g(n) = 0 τότε f(n) = O(g(n))και g(n) = Ω(f(n))(με f(n) Θ(g(n))) f(n) lim n + g(n) = τότε g(n) = O(f(n))και f(n) = Ω(g(n))(με g(n) Θ(f(n)))

26 14 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Παράδειγμα: Να δειχθεί ότι η συνάρτηση πολυπλοκότητας f(n) = (n + logn)(n 1) n + n είναι Θ(n). Εχουμε: ½º¾º lim n + Άρα f(n) = Θ(n). (n +logn)(n 1) n+n n n n + n log n log n = lim n + n + n = 1 Σταπαρακάτωγιατησυνάρτηση log nθαθεωρούμεβάσητο,δηλαδή log n = log n. Άσκηση1. Εστω T 1 (n) = O(f(n))και T (n) = O(g(n))οιπολυπλοκότητεςδύοτμημάτων P 1 και P ενόςπρογράμματος P. Αντο P εκτελείταιαμέσως μετάτο P 1 ποιαείναιηπολυπλοκότητατουπρογράμματος P; Λύση: Επειδή γίνεται ακολουθία από βήματα, η πολυπλοκότητα του προγράμματος είναι η μέγιστη από τις πολυπλοκότητες των δύο κομματιών, δηλαδή: T(n) = max{t 1 (n), T (n)} = max{o(f(n)), O(g(n))} Εφαρμογή:Αν T 1 (n) = O(n ), T (n) = O(n ), T (n) = O(n log n)τότε T(n) = max{o(n ), O(n ), O(n log n)} = O(n ) Άσκηση. Να δοθεί ο καλύτερος O συμβολισμός για τις ακόλουθες συναρτήσεις: 1. log n 4n + n logn n n Με τον όρο καλύτερος συμβολισμός εννοείται το πιο μικρό άνω φράγμα για κάθε συνάρτηση. Άρα έχουμε: 1. log n 4n + n logn = O(n log n) n = ( n) = n i=1 i = n(n + 1) = O(n ) n = n 1 1 = n = O( n )

27 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 15 Άσκηση. Εστω a > 1και f(n) = O(log a (n)). Δείξτεότι f(n) = O(log n). Αφού f(n) = O(log a (n))μεβάσητονορισμό,υπάρχει cπουγιακάθε n n 0 : f(n) c log a (n). Ομωςεπειδη log a (n) = log n log a έχουμε f(n) c f(n) c log nμε c = c log a γιακάθε n n 0. Άρα f(n) = O(log n). log a log nή Άσκηση4.Δείξτεότι log(n!) = O(n log n). Επειδή n! = n(n 1)... < n... n = n n καιεπειδήηλογαριθμικήσυνάρτηση είναιγνησίωςαύξουσα,έχουμε log(n!) < n log n,άρα log(n!) = O(n log n). Άσκηση 5. Ποια είναι η πολυπλοκότητα του παρακάτω τμήματος προγράμματος: 1. for i = 1 to n do. for j = 1 to i+1 do. x = x end for 5. end for Οπως είδαμε στα παραδείγματα πολλαπλασιασμού πινάκων και αναζήτησης σε πίνακα, κάθε βρόγχος εκφράζει έναν όρο του γινομένου που εμφανίζεται στην πολυπλοκότητα. Ετσι συμβαίνει και εδώ για τον εξωτερικό βρόγχο(n επαναλήψεων), αλλά πρέπει να είμαστε προσεκτικοί με τον εσωτερικό βρόγχο στον οποίο ο αριθμός επαναλήψεων είναι μεταβλητός. Άρα: T(n) = n i=1 i + 1 = 1 ( n i + i=1 n i=1 ) 1 = 1 ( n(n + 1) ) + n = O(n ) Άσκηση6.Ναδειχθείότιη n O( n ) Εχουμε n lim n + n = 0 Άρα n = Ω( n ) Άσκηση 7. Να υπολογιστεί η πολυπλοκότητα του αλγόριθμου του Ευκλείδη (σχήμα 1.6) για τον υπολογισμό του Μέγιστου Κοινού Διαιρέτη(Μ.Κ.Δ.) δύο θετικών ακέραιων αριθμών. Αςθεωρήσουμεχωρίςβλάβητηςγενικότηταςότι m n. Σεκάθεβήμαο αλγόριθμος του Ευκλείδη εφαρμόζει την ταυτότητα της διαίρεσης ώστε να βρεθούν αριθμοί q, rώστε m = qn + r, q 1, r 0. ΕπειδήΜΚΔ(m, n)=μκδ(n, r),

28 16 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Μκδ-Ευκλειδης (m, n Z) 1. repeat. r = m mod n. if r 0 then 4. m = n 5. n = r 6. end if 7. until r = 0 8. return n Σχήμα 1.6: Αλγόριθμος του Ευκλείδη για την εύρεση του Μ.Κ.Δ. δύο ακεραίων mκαι n. έχουμε την εξής ακολουθία πράξεων μέχρι να τερματίσει ο αλγόριθμος: m = q 0 n + r 0, 0 r 0 < n, q 0 = q, r 0 = r n = q 1 r 0 + r 1, 0 r 1 < r 0 r 0 = q r 1 + r, 0 r < r 1 r 1 = q r + r, 0 r < r Εστω kοαριθμόςτωνβημάτωνπουθέλειοαλγόριθμοςγιανατερματίσει. Τότεδημιουργείταιμίαακολουθίααπόαριθμούς m, n, r 0, r 1,...r k με r k = 0και r k 1 =ΜΚΔ(m, n).θεωρώνταςότισεκάθεβήματουαλγορίθμουγίνονται O(1) πράξεις, η πολυπλοκότητα του αλγορίθμου είναι O(k). Αποδεικνύται(άσκηση)ότι r i < 1 r i,οπότεέχουμεότι r k < 1 < 1 r k < 1 4 r k 4 <... < 1 k r 0 < 1 k n Άρα n > k 1,δηλαδή k log n,οπότεηπολυπλοκότητατουαλγορίθμουείναι O(log n). Άσκηση8.Δείξτεότιγιαπραγματικούςαριθμούς a, b, b > 0έχουμε (n + a) b = Θ(n b ). Από τον τύπο που δίνει το διώνυμο του Newton παίρνουμε: (n + a) b = n b + ( ) b 1 n b 1 a ( ) b n b k a k a b = Θ(n b ) k Άσκηση 9. Δείξτεότι n+1 = O( n ). Εχουμε n+1 = n = O( n )

29 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 17 Είναι n = O( n ); Επειδη n = ( ) n = 4 n,το n δενείναι O( n ).Ισοδύναμα: και όχι μηδέν. n lim n + n = + Αν f(n) = O(n)τότε f(n) δενείναι O( n ). Εστω f(n) = n.τότε f(n) = O(n),αλλα n O( n ). Άσκηση 10. Να μελετηθούν και να συγκριθούν οι αλγόριθμοι ταξινόμησης Φυσαλίδας, ταξινόμησης με Επιλογή και ταξινόμησης με Εισαγωγή, όσον αφορά την πολυπλοκότητά τους. Ταξινόμηση Φυσαλίδας (Bubble Sort) Ο αλγόριθμος αυτός, σε κάθε επανάληψη ανυψώνει στο τέλος του πίνακα το ελαφρύτερο(μικρότερο) στοιχείο. Η υλοποίηση του σε ψευδογλώσσα φαίνεται στο σχήμα 1.7. Bubble Sort (A) 1. for i = n to 1 do. for j = 1 to i 1 do. if a j < a j+1 then 4. swap(a j, a j+1 ) 5. end if 6. end for 7. end for Σχήμα 1.7: Ταξινόμηση μιας ακολουθίας στοιχείων κατά φθίνουσα σειρά με τον αλγόριθμο της φυσαλίδας. Παρατηρούμε ότι ανεξάρτητα από την μορφή της ακολουθίας εισόδου, ο αλγόριθμος θα κάνει τις ίδιες συγκρίσεις και καταχωρήσεις. Θεωρώντας σαν σταθερές (O(1)) τις πράξεις που γίνονται σε κάθε βήμα του εσωτερικού βρόγχου, έχουμε: C βπ (n) = C χπ (n) = C µo (n) = 1 i 1 n O(1) = O(1) (i 1) i=n j=1 i=1 n(n + 1) = O(1)[ n] = O(n )

30 18 ΚΕΦ ΑΛΑΙΟ1. ΕΙΣΑΓΩΓ Η Ταξινόμηση με εισαγωγή (Insertion Sort) Ο αλγόριθμος ταξινόμησης με εισαγωγή θεωρεί ότι στο βήμα i, η υπακολουθία a 1,..., a i 1 είναιταξινομημένηκαιηa i+1,..., a n αταξινόμητη.οπότεεισάγειτο στοιχείο i στην σωστή θέση της πρώτης υπακολουθίας και συνεχίζει επαναληπτικά για τα υπόλοιπα στοιχεία. Insertion Sort (A) 1. for i = 1 to n do. val = a i. j = i 1 4. while j 1 and a j < val do 5. a j+1 = a j 6. j = j 1 7. end while 8. a j+1 = val 9. end for Σχήμα 1.8: Ταξινόμηση μιας ακολουθίας στοιχείων κατά φθίνουσα σειρά με τον αλγόριθμο της εισαγωγής. Στην βέλτιστη περίπτωση(ήδη ταξινομημένη φθίνουσα ακολουθία) ο αλγόριθμος δεν μπαίνει ποτέ στο εσωτερικό (while) βρόγχο, άρα η πολυπλοκότητα του είναι: C βπ (n) = O(n). Στηχείριστηπερίπτωση(αύξουσαακολουθία),μπαίνει πάντα στο εσωτερικό βρόγχο(όσο j 1). Άρα η πολυπλοκότητα είναι: C χπ (n) = n 1 i=1 j=i 1 O(1) = O(1) n (i 1) = O(n ) Αποδεικνύεταιωστόσο,ότιημέσηπολυπλοκότητάτουείναι: C µo = O(n ). Ταξινόμηση με Επιλογή (Selection Sort) Η ταξινόμηση με επιλογή, βρίσκει στο βήμα i το στοιχείο που είναι το μεγαλύτερο στηνυπακολουθία a i,...,a n. Στηνσυνέχειαθέτειστηνθέση iτομέγιστοαυτό στοιχείο και συνεχίζει επαναληπτικά. Η πολυπλοκότητα όπως και στην Ταξινόμηση Φυσαλίδας δεν εξαρτάται από την ακολουθία που έχουμε σαν είσοδο. Άρα η πολυπλοκότητα και για τις τρεις περιπτώσεις είναι: i=1 C βπ (n) = C χπ (n) = C µo (n) = n 1 n i=1 j=i+1 = O(1) [ n(n 1) n 1 O(1) = O(1) (n i) = i=1 (n 1)(n ) ] = O(n )

31 1.. ΑΣΥΜΠΤΩΤΙΚ ΗΠΟΛΥΠΛΟΚ ΟΤΗΤΑ 19 Selection Sort (A) 1. for i = 1 to n 1 do. max = i. for j = i + 1 to n do 4. if a j > a max then 5. max = j 6. end if 7. end for 8. swap(a max, a i ) 9. end for Σχήμα 1.9: Ταξινόμηση μιας ακολουθίας στοιχείων σε φθίνουσα σειρά με τον αλγόριθμο της επιλογής. Παρατηρούμε ότι ο καλύτερος αλγόριθμος είναι ο αλγόριθμος της Εισαγωγής γιατί στην βέλτιστη περίπτωση είναι O(n) σε αντίθεση με τους άλλους δύο που είναιπάντα O(n ). Ωστόσοκαιοιτρειςαλγόριθμοιπαρουσιάζουντετραγωνική πολυπλοκότητα κατά μέσο όρο, που κρίνεται μη ικανοποιητική για το πρόβλημα αυτό. Στις επόμενες ενότητες θα δούμε αλγόριθμους ταξινόμησης (HeapSort, MergeSort, QuickSort) που έχουν μέση πολυπλοκότητα O(n log n) και χείριστη πολυπλοκότητα O(n log n)(εκτός της Quicksort) και είναι καλύτεροι από αυτούς που μελετήσαμε.

32

33 à РӾ Ò ÖÓÑ ¾º½ Divide and Conquer Πολλοί χρήσιμοι αλγόριθμοι οι οποίοι θα εξεταστούν στη συνέχεια έχουν αναδρομική δομή. Η αναδρομή είναι μια ισχυρή αλγοριθμική μέθοδος, πιο αισθητική (όσο αφορά στο μέγεθος των αλγορίθμων και κατά συνέπεια των προγραμμάτων που γράφουμε), πιο φυσική(αφού συμβαδίζει με την διαίσθησή μας) και πιο ισχυρή (μιας και μας δίδει την δυνατότητα να περιγράψουμε με εύκολο και εύληπτο τρόπο δύσκολα προβλήματα). Για την επίλυση ενός δεδομένου προβλήματος ένας αναδρομικός αλγόριθμος καλεί τον εαυτό του αναδρομικά μία ή περισσότερες φορές επιλύοντας διάφορα υποπροβλήματα του αρχικού προβλήματος. Με τον όρο υποπρόβλημα εννοούμε ένα πρόβλημα της ίδιας φύσης με το αρχικό, αλλά μικρότερου μεγέθους. Ενας αλγόριθμος τέτοιου είδους τυπικά ακολουθεί μια διαίρει και βασίλευε(divide and conquer) προσέγγιση, κατά την οποία το αρχικό πρόβλημα διασπάται σε μια σειρά από υποπροβλήματα τα οποία επιλύονται ένα προς ένα αναδρομικά και έπειτα συνδυάζονται οι λύσεις αυτών για να δημιουργηθεί η λύση του αρχικού προβλήματος. Σε κάθε αναδρομικό επίπεδο, η τεχνική divide and conquer περιλαμβάνει τρία βήματα: Divide: Διαίρεση του προβλήματος σε μικρότερα προβλήματα(υποπροβλήματα). Conquer: Επίλυση των μικρότερων προβλημάτων(είτε αναδρομικά, είτε με άμεσο τρόπο εάν έχουν ικανοποιητικά μικρό μέγεθος). Combine: Συνδυασμός των λύσεων για την εύρεση της αρχικής λύσης. ¾º½º½Merge-Sort Ενα κλασσικό παράδειγμα divide and conquer αλγορίθμου, είναι ο αλγόριθμος ταξινόμησης Merge-Sort. Διαισθητικά, ο αλγόριθμος εξελίσσεται ως εξής: 1

34 ΚΕΦ ΑΛΑΙΟ. ΑΝΑΔΡΟΜ Η Divide:Διαίρεσητουπίνακα nστοιχείωνσεδύουποπίνακες n στοιχείων οκαθένας. Conquer: Αναδρομική ταξινόμηση των δύο υποπινάκων με χρήση της Merge- Sort. Combine: Συγχώνευση των δύο ταξινομημένων υποπινάκων. Η αναδρομή στο βήμα Conquer σταματά όταν οι υποπίνακες οι οποίοι προκύπτουν μετά τη διάσπαση έχουν μόνο ένα στοιχείο, διότι σε αυτή την περίπτωση ο πίνακας είναι ήδη ταξινομημένος. Η βασική λειτουργία του αλγορίθμου Merge-Sort είναι η συγχώνευση δύο ταξινομημένων υποπινάκων η οποία γίνεται στο βήμα Combine χρησιμοποιώντας τον αλγόριθμο Merge. Ο αλγόριθμος Merge(σχήμα.1) ξεκινάει συγκρίνοντας το πρώτο στοιχείο τουπίνακα aμετοπρώτοστοιχείοτουπίνακα bκαιεπιλέγειτομικρότεροαπό τα δύο για να το τοποθετήσει πρώτο στον ταξινομημένο πίνακα c ο οποίος τελικά θαπεριέχειταστοιχείακαιτωνδύοπινάκων.ενσυνεχείαομετρητήςτουπίνακα από τον οποίο επελέγει το πρώτο στοιχείο αυξάνεται κατά ένα και η διαδικασία σύγκρισηςσυνεχίζεταιέτσιώστετελικάόλαταστοιχείατωνπινάκων aκαι bνα τοποθετηθούν ταξινομημένα στον πίνακα c. Merge (a, b, c) 1. i = 1. j = 1. for k = 1 to m + n do 4. if a i b j then 5. c k = a i 6. i = i else 8. c k = b j 9. j = j end if 11. end for Σχήμα.1: Αλγόριθμος Merge για την συγχώνευση των ταξινομημένων πινάκων a(μήκους m)και b(μήκους n)στονπίνακα c(μήκους m + n). Γιαπαράδειγμα,εάνοπίνακας aπεριέχειταστοιχεία, 6, 7, 9καιοπίνακας bταστοιχεία 4, 5, 8τότεοπίνακας cοοποίοςθαπροκύψειμετάτηνεκτέλεση τουαλγορίθμου Mergeθαέχειωςεξής:, 4, 5, 6, 7, 8, 9.Ηπολυπλοκότητατου αλγορίθμου είναι O(m + n). Τον αλγόριθμο Merge μπορούμε να τον χρησιμοποιήσουμε ως υπορουτίνα του αλγορίθμου Merge-Sort(σχήμα.), όπου A είναι ο πίνακας στοιχείων και l, rδείκτεςπουκαθορίζουνταάκρατουπροςταξινόμησηυποπίνακατου A.

35 .1. DIVIDE AND CONQUER MergeSort (A, l, r) 1. if l < r then. q (l + r)/. MergeSort(A, l, q) 4. MergeSort(A, q + 1, r) 5. Merge /* Τους δύο υποπίνακες */ 6. end if Σχήμα.: Αναδρομικός αλγόριθμος MergeSort για την ταξινόμηση των σ- τοιχείων ενός πίνακα. Merge-Sort(A,1,7) (1,4) (5,7) (1,) (,4) (5,6) (7,7) (1,1) (,) (,) (4,4) (5,5) (6,6) Σχήμα.: Το δένδρο αναδρομικών κλήσεων του αλγορίθμου Merge-Sort. Θα δούμε την λειτουργία του αλγορίθμου Merge-Sort με ένα παράδειγμα. Εστω ο πίνακας A = 6, 9,, 7, 4, 5, 8. Τοδένδρο των αναδρομικώνκλήσεων φαίνεται στο σχήμα.. Ο αλγόριθμος υλοποιημένος σε μια γλώσσα τύπου C είναι ο εξής: Merge-Sort int b[n] void MergeSort (int p, int r) { int i, j, k, m; if (p < r) { q = (p + r) / ; MergeSort (p, q);

36 4 ΚΕΦ ΑΛΑΙΟ. ΑΝΑΔΡΟΜ Η } } MergeSort (q + 1, r); for (i = q; i >= p; --i) b[i] = a[i]; for (j = q+1; j <= r; ++j) b[r+q+1-j] = a[j]; i = p; j = r; for (k = p; k <= r; ++k) if (b[i] < b[j] { a[k] = b[i]; ++i; } else { a[k] = b[j]; --j; } Οταν ένας αλγόριθμος περιέχει μία ή περισσότερες αναδρομικές κλήσεις σ- τον εαυτό του, ο συνολικός χρόνος εκτέλεσής του μπορεί συνήθως να περιγραφεί από μια αναδρομική εξίσωση ή απλά αναδρομή, μια συνάρτηση δηλαδή η οποία περιγράφει το συνολικό χρόνο εκτέλεσης του αλγορίθμου σε ένα πρόβλημα μεγέθους n χρησιμοποιώντας το χρόνο εκτέλεσης σε προβλήματα μικρότερου μεγέθους. Εν συνεχεία μπορούν να χρησιμοποιηθούν διάφορες μέθοδοι τις οποίες θα δούμε εκτενώς στη συνέχεια, για την επίλυση της αναδρομικής εξίσωσης η οποία έχει προκύψει. Πιο συγκεκριμένα, ας συμβολίσουμε με T(n) το χρόνο εκτέλεσης του αλγορίθμου Merge-Sortγιαέναπρόβλημαμεγέθους n.εάν n = 1τότεουποπίνακας με ένα στοιχείο είναι ήδη ταξινομημένος και ο αλγόριθμος παίρνει σταθερό χρόνο τον οποίο γράφουμε με Θ(1). Επίσης ο αλγόριθμος Merge ο οποίος επιτυγχάνει τη συγχώνευση χρειάζεται χρόνο Θ(n). Συνολικά λοιπόν μπορούμε να γράψουμε την εξής αναδρομική εξίσωση: { Θ(1) if n = 1, T(n) = T( n ) + Θ(n) if n > 1. Ηεπίλυσητηςπαραπάνωαναδρομικήςεξίσωσηςμαςδίδει T(n) = Θ(n log n)όπως θα δούμε παρακάτω. Γενικά, η εύρεση της αναδρομικής εξίσωσης η οποία περιγράφει το χρόνο εκτέλεσης ενός divide and conquer αλγορίθμου βασίζεται στα τρία βήματα (divide, conquer, combine) της μεθόδου. Αν υποθέσουμε ότι η υποδιαίρεση του αρχικού προβλήματος σε υποπροβλήματα οδηγεί στη δημιουργία a υποπροβλημάτωντοκαθένααπόταοποίαέχειμέγεθος 1/bτουαρχικούκαιότιτοβήμα combine χρειάζεται χρόνο d(n), τότε λαμβάνουμε την παρακάτω αναδρομική εξίσωση: { 1 if n = 1, T(n) = at( n b ) + d(n) if n > 1.

37 .1. DIVIDE AND CONQUER 5 Μπορούμε να χρησιμοποιήσουμε την μέθοδο της αντικατάστασης(substitution) γιαναβρούμετηλύσηστηνεξίσωσηαυτή,ωςεξής: T(n) = at(n/b) + d(n) = a[at(n/b ) + d(n/b)] + d(n) = a T(n/b ) + ad(n/b) + d(n) = a [at(n/b ) + d(n/b )] + ad(n/b) + d(n) = a T(n/b ) + a d(n/b ) + ad(n/b) + d(n) =... i 1 = a i T(n/b i ) + a j d(n/b j ) j=0 Ανυποθέσουμετώραότι n = b k τότεθαέχουμεότι T(n/b k ) = T(1) = 1καιγια i = kθαλάβουμε: k 1 T(n) = a k + a j d(b k j ) j=0 Επίσης k = log b nκαιεπομένως a k = a log b n = n log b a. Στηνπερίπτωσητης Merge-Sortέχουμε a = b = και d(n) = n 1(= Θ(n)). Κάνονταςτις αντικαταστάσεις έχουμε: ¾º½º¾Binary Search k 1 T(n) = n + j ( k j 1) j=0 k 1 = n + ( k j ) j=0 = n + k k (k 1) ( 1) = n + n logn n + 1 = n log n + 1 Ο αλγόριθμος της δυαδικής αναζητησης έχει ως είσοδο έναν ταξινομημένο πίνακαακαιψάχνειναβρειανυπάρχειέναστοιχείο aμέσασ αυτοντονπίνακα. Παρακάτω περιγράφουμε πως ο αλγόριθμος εκμεταλλεύεται την τεχνική Divideand-Conquer: Divide: Βρίσκουμε το μεσαίο στοιχείο του πίνακα και τον χωρίζουμε σε δύο υποπίνακες. Αν το μεσαίο στοιχείο είναι μικρότερο του στοιχείου που ψάχνουμε, τότε κρατάμε τον υποπίνακα με τα μικρότερα από το μεσαίο στοιχεία,

38 6 ΚΕΦ ΑΛΑΙΟ. ΑΝΑΔΡΟΜ Η διαφορετικά κρατάμε τον υποπίνακα με τα μεγαλύτερα από το μεσαίο στοιχεία. Conquer: Επαναλαμβάνουμε την παραπάνω διαδικασία στον επιλεγμένο υποπίνακα,μεχρίςότουβρούμετοστοιχείοσανμεσαίοημεχριναεχουμεκενούς υποπίνακες. Combine: Δεν Υπάρχει βήμα Combine αφού με το πέρας όλων των αναδρομικών εκτελέσεων έχουμε τη λύση. Η αναδρομική εξίσωση του αλγοριθμου είναι T(n) = T(n/) + c = O(logn). Οπότε, αντί να ψάχνουμε σειριακά σε όλο τον πίνακα σε O(n) χρόνο χρησιμοποιώντας έναν αλγόριθμο Divide and Conquer ο χρόνος μειώνεται σε O(logn)! ¾º½º Ç Ô Ö Ó ØÓÙHanoi Ας εξετάσουμε ένα άλλο κλασσικό πρόβλημα στο οποίο χρησιμοποιείται η έννοια της αναδρομής. Πρόκειται για το πρόβλημα των πύργων του Hanoi το οποίο επινοήθηκε από τον γάλλο μαθηματικό Edouard Lucas το 188. Στο πρόβλημα αυτό μας δίδονται στύλοι 1,, αντίστοιχα καθώς επίσης και n δίσκοι διαφορετικών μεγεθών οι οποίοι αρχικά είναι τοποθετημένοι στο στύλο 1, σχηματίζοντας ένανκώνομετονπιομεγάλοδίσκοκάτωκαιτονπιομικρόπάνω,όπωςφαίνεται στοσχήμα.4.τοζητούμενοείναιναμεταφερθούνόλοιοιδίσκοιαπότοστύλο Σχήμα.4:Οιπύργοιτου Hanoi 1στονστύλο,μετακινώνταςμόνοέναδίσκοτηφοράκαιπροσέχονταςποτένα μην είναι ένας μικρός δίσκος κάτω από έναν μεγαλύτερο. Ο αλγόριθμος ο οποίος επιλύει το πρόβλημα έχει ως εξής:

39 .1. DIVIDE AND CONQUER 7 µ ÖÕ Ø Ø º µhanoi(n µå Ø Ò ØÓÙÑ ÐÓÙ ÓÙ Ô ØÓ Ø ÐÓi ØÓÒ Ø ÐÓjº µhanoi(n 1, i,6 (i + j)) 1,6 (i + j), j) Σχήμα.5: Σχηματική λειτουργία του αλγορίθμου. Hanoi (n, i, j) 1. if n 1 then. Ηανοι(n 1, i, 6 (i + j)). Μεταφορά του μεγάλου δίσκου από τον στύλο i στον στύλο j 4. Hanoi(n 1, 6 (i + j), j) 5. end if Στο σχήμα.5 φαίνεται ο τρόπος λειτουργίας του αλγορίθμου. Για να εξετάσουμε την πολυπλοκότητα του αλγορίθμου, γράφουμε την αναδρομική εξίσωση η οποία εκφράζει το χρόνο εκτέλεσης: T(n) = { 0 if n = 0, T(n 1) + 1 if n 1. Η επίλυση της παραπάνω αναδρομικής εξίσωσης θα γίνει με τη μέθοδο των αθροιζομένων

40 8 ΚΕΦ ΑΛΑΙΟ. ΑΝΑΔΡΟΜ Η παραγόντων ως εξής: T(n) = T(n 1) + 1 ( 0 ) T(n 1) = T(n ) + 1 ( 1 ) T(n ) = T(n ) + 1 ( )... Αθροίζοντας κατά μέλη λαμβάνουμε T() = T(1) + 1 ( n ) T(1) = T(0) + 1 ( n 1 ) T(n) = n T(0) + ( n 1 ) = n 0 + n 1 1 και τελικά T(n) = n 1, n 0 Η γενική μορφή μιας αναδρομικής εξίσωσης όπως αυτή η οποία περιγράφει το χρόνο εκτέλεσης του αλγορίθμου Hanoi είναι η εξής: a(n)t n = b(n)t n 1 + c(n) με T 0 σταθεράκαι a(n), b(n), c(n)συναρτήσειςτου n. Άσκηση: Ναεπιλυθείηαναδρομικήεξίσωση T(n) = T(n 1)+με T(1) = 1. Λύση: T(n) = + T(n 1) = + + T(n )... = T(1) = (n 1) + 1 n T(n) = Θ(n) ¾º½º À ÓÐÓÙ Fibonacci Ενα άλλο κλασσικό μαθηματικό πρόβλημα το οποίο εμπεριέχει την έννοια της αναδρομής είναι η ακολουθία Fibonacci. Η ακολουθία αυτή ορίζεται ως εξής: T(n) = { 1 if n = 0, n = 1, T(n 1) + T(n ) if n > 1.

41 .1. DIVIDE AND CONQUER 9 Πρακτικά κάθε αριθμός της ακολουθίας Fibonacci προκύπτει ως το άθροισμα των προηγουμένων δύο αριθμών της ακολουθίας. Για παράδειγμα οι 1 πρώτοι αριθμοίτηςακολουθίαςείναι: 1,1,,,5,8,1,1,4,55,89,144,. Ενας επαναληπτικός αλγόριθμος ο οποίος μπορεί να χρησιμοποιηθεί για την εύρεση του n οστού αριθμού της ακολουθίας είναι ο εξής: Fibonacci (n) 1. f0 = 1. f1 = 1. for i = to n do 4. temp = f0 + f1 5. f0 = f1 6. f1 = temp 7. end for 8. return f Σχήμα.6: Επαναληπτικός Αλγόριθμος εύρεσης του n-οστού αριθμού Fibonacci Για την εύρεση της ασυμπτωτικής πολυπλοκότητας του παραπάνω αλγορίθμου μπορούμεναπαρατηρήσουμεότιοκύριοςβρόγχοςεκτελείται n φορές,άραη πολυπλοκότητα είναι της τάξης O(n). Μπορεί όμως να χρησιμοποιηθεί και ένας περισσότερο προφανής και πιο απλός αλγόριθμος ο οποίος βασίζεται στον αναδρομικό ορισμό της ακολουθίας. Ο αλγόριθμος αυτός έχει ως εξής: Fibonacci (n) 1. u = 1. f = 1. if n 1 then 4. return 1 5. else 6. return Fibonacci(n 1) + Fibonacci(n ) 7. end if Σχήμα.7: Αναδρομικός Αλγόριθμος εύρεσης του n-οστού αριθμού Fibonacci Ας θεωρήσουμε ένα παράδειγμα υπολογισμού κατά το οποίο ζητάμε να βρούμε τον 5ο αριθμό της ακολουθίας. Η εκτέλεση του αναδρομικού αλγορίθμου μπορεί να ιδωθεί ως ένα δένδρο αναδρομικών κλήσεων(άσκηση). Για την εύρεση της πολυπλοκότητας έχουμε:

42 0 ΚΕΦ ΑΛΑΙΟ. ΑΝΑΔΡΟΜ Η Άρα θα έχουμε εάν n άρτιος και T(n) = 1 + T(n 1) + T(n ) = T(n ) + T(n ) + T(n ) (n ) T(n) T(n ) T(n 4)... n T(n n ) εάν n περιττός, οπότε τελικά T(n) n T(0) T(n) n 1 T(1) T(n) n, δεδομένουότι T(0) = T(1) = 1. Παρατηρούμε λοιπόν ότι ο εκθετικός αλγόριθμος, αν και πολύ φυσικός στην σκέψη και εύκολος στην υλοποίηση έχει εκθετική πολυπλοκότητα. Το γεγονός αυτό οφείλεται στο ότι υπάρχει επανυπολογισμός αρκετών από τους ενδιάμεσους όρους, όπως μπορεί να φανεί και στο δένδρο υπολογισμών. ¾º½º Ç Ð Ö ÑÓMin-Max Το τελευταίο πρόβλημα το οποίο θα θεωρήσουμε είναι το πρόβλημα της εύρεσης του μέγιστου και του ελάχιστου στοιχείου ενός πίνακα A με n στοιχεία. Ενας απλός επαναληπτικός αλγόριθμος για την επίλυση του προβλήματος είναι αυτός του σχήματος.8. MinMax (A) 1. min = a 1. max = a 1. for i = to n do 4. if a i > max then 5. max = a i 6. else if a i < min then 7. min = a i 8. end if 9. end for Σχήμα.8: Αλγόριθμος εύρεσης του μέγιστου και του ελάχιστου στοιχείου ενός πίνακα

43 .1. DIVIDE AND CONQUER 1 Ο παραπάνω αλγόριθμος στη χείριστη περίπτωση, όπου τα στοιχεία του πίνακα θα είναι ταξινομημένα σε φθίνουσα σειρά θα έχει ακριβή πολυπλοκότητα χρόνου (n 1), αν συμπεριλάβουμε και τη σύγκριση για να υλοποιήσουμε την επανάληψη for. Στην περίπτωση όπου τα στοιχεία του πίνακα είναι ταξινομημένα σε αύξουσα σειράηακριβήςπολυπλοκότηταθαείναι n 1,άρασυνολικάθαέχουμε Θ(n). Ας θεωρήσουμε τώρα όμως τον αναδρομικό αλγόριθμο του σχήματος.9 για την επίλυση του προβλήματος. MinMax (A, i, j, min, max) 1. if i j 1 then. if a i < a j then. max = a j 4. min = a i 5. else 6. max = a i 7. min = a j 8. end if 9. else 10. m = (i + j)/ 11. MinMax(A, i, m, min 1, max 1 ) 1. MinMax(A, m, j, min, max ) 1. min = fmin(min 1, min ) 14. max = fmax(max 1, max ) 15. end if Σχήμα.9: Αναδρομικός Αλγόριθμος εύρεσης του μέγιστου και του ελάχιστου στοιχείου ενός πίνακα Για την εύρεση της πολυπλοκότητας του αναδρομικού αλγορίθμου ας σημειώσουμε τα εξής: Οέλεγχος i j 1καλύπτειτιςδύοπεριπτώσεις i = jκαι i = j 1 Οισυναρτήσεις fmax()και fmin()απαιτούνμίασύγκρισηηκάθεμίαγιατην εύρεση του μέγιστου ή του ελάχιστου(αντίστοιχα) μεταξύ δύο στοιχείων. Η πολυπλοκότητα δίδεται από την παρακάτω αναδρομική σχέση: T(n) = { if n = or n = 1, T( n ) + if n >.

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

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

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

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

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

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

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

υναμικός Προγραμματισμός

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

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

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

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

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

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

Δυναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν «Διαίρει και βασίλευε» : ανεξάρτητα υποπροβλήματα διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους Ν Σε κάποιες περιπτώσεις όμως τα υποπροβλήματα δεν είναι ανεξάρτητα

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Συνδυαστική Βελτιστοποίηση

Συνδυαστική Βελτιστοποίηση Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 1 Άγγελος Σιφαλέρας sifalera@uom.gr 4 η Διάλεξη Τμήμα Εφαρμοσμένης Πληροφορικής, Παν. Μακεδονίας 2 Knapsack Problem, (1/9) Ένας επενδυτής διαθέτει ένα χρηματικό

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

O Χρόνος Εκτέλεσης. προγραμμάτων ΚΕΦΑΛΑΙΟ 3. Τα θέματα αυτού του κεφαλαίου

O Χρόνος Εκτέλεσης. προγραμμάτων ΚΕΦΑΛΑΙΟ 3. Τα θέματα αυτού του κεφαλαίου ΚΕΦΑΛΑΙΟ 3 O Χρόνος Εκτέλεσης Προγραμμάτων Στο Κεφάλαιο 2 είδαμε δύο ριζικά διαφορετικούς αλγόριθμους ταξινόμησης: τον αλγόριθμο ταξινόμησης με εισαγωγή και τον αλγόριθμο ταξινόμησης με συγχώνευση. Υπάρχουν,

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Γενικά Σχόλια (1) 2 Για το τελικό διαγώνισμα θα χρειαστείτε: Φοιτητική

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

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

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

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

ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου

ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου Κεφάλαιο ο Αλγεβρικές Παραστάσεις ΛΕΜΟΝΙΑ ΜΠΟΥΤΣΚΟΥ Γυμνάσιο Αμυνταίου ΜΑΘΗΜΑ Α. Πράξεις με πραγματικούς αριθμούς ΑΣΚΗΣΕΙΣ ) ) Να συμπληρώσετε τα κενά ώστε στην κατακόρυφη στήλη

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μαθησιακές δυσκολίες ΙΙ Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας Μάρτιος 2010 Προηγούμενη διάλεξη Μαθησιακές δυσκολίες Σε όλες

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

Συνεχή Κλάσματα. Εμμανουήλ Καπνόπουλος Α.Μ 282

Συνεχή Κλάσματα. Εμμανουήλ Καπνόπουλος Α.Μ 282 Συνεχή Κλάσματα Εμμανουήλ Καπνόπουλος Α.Μ 282 5 Νοεμβρίου 204 Ορισμός και ιδιότητες: Ορισμός: Έστω a 0, a, a 2,...a n ανεξάρτητες μεταβλητές, n N σχηματίζουν την ακολουθία {[a 0, a,..., a n ] : n N} όπου

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

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

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

Συναρτήσεις Όρια Συνέχεια

Συναρτήσεις Όρια Συνέχεια Κωνσταντίνος Παπασταματίου Μαθηματικά Γ Λυκείου Κατεύθυνσης Συναρτήσεις Όρια Συνέχεια Συνοπτική Θεωρία Μεθοδολογίες Λυμένα Παραδείγματα Επιμέλεια: Μαθηματικός Φροντιστήριο Μ.Ε. «ΑΙΧΜΗ» Κ. Καρτάλη 8 (με

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

ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ

ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ Δρ. Ηλίας Κ. Σάββας ΛΑΡΙΣΑ, Ιανουάριος 2005

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

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης 7η Δραστηριότητα Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης Περίληψη Οι υπολογιστές χρησιμοποιούνται συχνά για την ταξινόμηση καταλόγων, όπως για παράδειγμα, ονόματα σε αλφαβητική σειρά, ραντεβού

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

B Γυμνασίου. Ενότητα 9

B Γυμνασίου. Ενότητα 9 B Γυμνασίου Ενότητα 9 Γραμμικές εξισώσεις με μία μεταβλητή Διερεύνηση (1) Να λύσετε τις πιο κάτω εξισώσεις και ακολούθως να σχολιάσετε το πλήθος των λύσεων που βρήκατε σε καθεμιά. α) ( ) ( ) ( ) Διερεύνηση

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

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

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ

ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ ΚΕΦΑΛΑΙΟ 3ο ΤΥΧΑΙΟΙ ΑΡΙΘΜΟΙ ΕΛΕΓΧΟΣ ΤΥΧΑΙΟΤΗΤΑΣ 3.1 Τυχαίοι αριθμοί Στην προσομοίωση διακριτών γεγονότων γίνεται χρήση ακολουθίας τυχαίων αριθμών στις περιπτώσεις που απαιτείται η δημιουργία στοχαστικών

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΩΤΗΣΕΙΣ 1. Τι καλείται ψευδοκώδικας; 2. Τι καλείται λογικό διάγραμμα; 3. Για ποιο λόγο είναι απαραίτητη η τυποποίηση του αλγόριθμου; 4. Ποιες είναι οι βασικές αλγοριθμικές δομές; 5. Να περιγράψετε τις

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

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο.

ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1. Τελεστές και πίνακες. 1. Τελεστές και πίνακες Γενικά. Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. ΤΕΤΥ Εφαρμοσμένα Μαθηματικά 1 Τελεστές και πίνακες 1. Τελεστές και πίνακες Γενικά Τι είναι συνάρτηση? Απεικόνιση ενός αριθμού σε έναν άλλο. Ανάλογα, τελεστής είναι η απεικόνιση ενός διανύσματος σε ένα

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

ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι

ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι ΚΕΦΑΛΑΙΟ 5: Αλγόριθμοι 5.1 Η έννοια του αλγορίθμου 5.2 Αναπαράσταση αλγορίθμων 5.3 Επινόηση αλγορίθμων 5.4 Δομές επανάληψης 5.5 Αναδρομικές δομές 5.6 Απόδοση και ορθότητα Οι διαφάνειες βασίζονται σε μεγάλο

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

ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου

ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου ιακριτά Μαθηµατικά Ασκήσεις Φροντιστηρίου Εαρινό Εξάµηνο 2009 Κάτια Παπακωνσταντινοπούλου 1. Εστω A ένα µη κενό σύνολο. Να δείξετε ότι η αλγεβρική δοµή (P(A), ) είναι αβελιανή οµάδα. 2. Εστω ένα ξενοδοχείο

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

Εισαγωγή στον Προγραμματισμό

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

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

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

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

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

Δυαδικό Σύστημα Αρίθμησης

Δυαδικό Σύστημα Αρίθμησης Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,

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

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

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

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ.

Γνωστό: P (M) = 2 M = τρόποι επιλογής υποσυνόλου του M. Π.χ. M = {A, B, C} π. 1. Π.χ. Παραδείγματα Απαρίθμησης Γνωστό: P (M 2 M τρόποι επιλογής υποσυνόλου του M Τεχνικές Απαρίθμησης Πχ M {A, B, C} P (M 2 3 8 #(Υποσυνόλων με 2 στοιχεία ( 3 2 3 #(Διατεταγμένων υποσυνόλων με 2 στοιχεία 3 2

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 1 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ 1.1 Να δοθεί ο ορισμός του προβλήματος καθώς και τρία παραδείγματα

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

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να εξετάσετε αν ισχύουν οι υποθέσεις του Θ.Μ.Τ. για την συνάρτηση στο διάστημα [ 1,1] τέτοιο, ώστε: C στο σημείο (,f( ))

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. Να εξετάσετε αν ισχύουν οι υποθέσεις του Θ.Μ.Τ. για την συνάρτηση στο διάστημα [ 1,1] τέτοιο, ώστε: C στο σημείο (,f( )) ΚΕΦΑΛΑΙΟ ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 6: ΘΕΩΡΗΜΑ ΜΕΣΗΣ ΤΙΜΗΣ ΔΙΑΦΟΡΙΚΟΥ ΛΟΓΙΣΜΟΥ (Θ.Μ.Τ.) [Θεώρημα Μέσης Τιμής Διαφορικού Λογισμού του κεφ..5 Μέρος Β του σχολικού βιβλίου]. ΠΑΡΑΔΕΙΓΜΑΤΑ Παράδειγμα. ΘΕΜΑ

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

Πεπερασμένες Διαφορές.

Πεπερασμένες Διαφορές. Κεφάλαιο 1 Πεπερασμένες Διαφορές. 1.1 Προσέγγιση παραγώγων. 1.1.1 Πρώτη παράγωγος. Από τον ορισμό της παραγώγου για συναρτήσεις μιας μεταβλητής γνωρίζουμε ότι η παράγωγος μιας συνάρτησης f στο σημείο x

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

Κεφάλαιο 4 Διανυσματικοί Χώροι

Κεφάλαιο 4 Διανυσματικοί Χώροι Κεφάλαιο Διανυσματικοί Χώροι Διανυσματικοί χώροι - Βασικοί ορισμοί και ιδιότητες Θεωρούμε τρία διαφορετικά σύνολα: Διανυσματικοί Χώροι α) Το σύνολο διανυσμάτων (πινάκων με μία στήλη) με στοιχεία το οποίο

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα: ΠΛΗΡΟΦΟΡΙΚΗ Ημερομηνία και ώρα εξέτασης: Τρίτη, 6 Ιουνίου 2006 07:30 10:30

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ

ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑ Ρ Μ Α ΜΑΤΙ Τ ΣΜΟΣ Τμήμα Εφαρμοσμένης Πληροφορικής ΔΙΑΔΙΚΑΣΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εξάμηνο Α' Φύλλο Ασκήσεων 3 ΔΟΜΕΣ ΕΠAΝΑΛΗΨΗΣ Διδάσκοντες: Μάγια Σατρατζέμη, Αλέξανδρος Χατζηγεωργίου, Ηλίας Σακελλαρίου, Στέλιος Ξυνόγαλος

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

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0

ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 ΑΣΚΗΣΕΙΣ ΠΙΘΑΝΟΤΗΤΩΝ του Παν. Λ. Θεοδωρόπουλου 0 Η Θεωρία Πιθανοτήτων είναι ένας σχετικά νέος κλάδος των Μαθηματικών, ο οποίος παρουσιάζει πολλά ιδιαίτερα χαρακτηριστικά στοιχεία. Επειδή η ιδιαιτερότητα

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

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

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

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 1. Μαθηματικό Υπόβαθρο 23, 26 Ιανουαρίου 2007 Δρ. Παπαδοπούλου Βίκη 1 1.1. Σύνολα Ορισμός : Σύνολο μια συλλογή από αντικείμενα Στοιχεία: Μέλη συνόλου Τα στοιχεία

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές Βασικές Αλγοριθμικές Δομές 2 Εισαγωγή Οι αλγοριθμικές δομές εκφράζουν διαφορετικούς τρόπους γραφής ενός αλγορίθμου.

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

Κεφάλαιο 1 o Εξισώσεις - Ανισώσεις

Κεφάλαιο 1 o Εξισώσεις - Ανισώσεις 2 ΕΡΩΤΗΣΕΙΙΣ ΘΕΩΡΙΙΑΣ ΑΠΟ ΤΗΝ ΥΛΗ ΤΗΣ Β ΤΑΞΗΣ ΜΕΡΟΣ Α -- ΑΛΓΕΒΡΑ Κεφάλαιο 1 o Εξισώσεις - Ανισώσεις Α. 1 1 1. Τι ονομάζεται Αριθμητική και τι Αλγεβρική παράσταση; Ονομάζεται Αριθμητική παράσταση μια παράσταση

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

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

«ΣΥΝΕΧΗ ΚΛΑΣΜΑΤΑ ΚΑΙ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ: ΠΡΟΣΕΓΓΙΣΕΙΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ» Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο «ΣΥΝΕΧΗ ΚΛΑΣΜΑΤΑ ΚΑΙ ΠΡΑΓΜΑΤΙΚΟΙ ΑΡΙΘΜΟΙ: ΠΡΟΣΕΓΓΙΣΕΙΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ» ΜΠΙΘΗΜΗΤΡΗ ΒΑΣΙΛΙΚΗ ΣΤΕΛΛΑ Επιβλέπουσα: Αν. Καθηγήτρια

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

Ελλιπή δεδομένα. Εδώ έχουμε 1275. Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 1275 ατόμων

Ελλιπή δεδομένα. Εδώ έχουμε 1275. Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 1275 ατόμων Ελλιπή δεδομένα Στον πίνακα που ακολουθεί δίνεται η κατά ηλικία κατανομή 75 ατόμων Εδώ έχουμε δ 75,0 75 5 Ηλικία Συχνότητες f 5-4 70 5-34 50 35-44 30 45-54 465 55-64 335 Δεν δήλωσαν 5 Σύνολο 75 Μπορεί

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

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

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

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Προτεινόμενα θέματα 2013 - Λύσεις

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Προτεινόμενα θέματα 2013 - Λύσεις Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Προτεινόμενα θέματα 2013 - Λύσεις ΘΕΜΑ 1 ο Α1. Να γράψετε την λέξη Σωστό αν είναι σωστή, ή την λέξη Λάθος αν είναι λανθασμένη η πρόταση : 1. Μια συνάρτηση

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

Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση

Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση Φυσικοί αριθμοί - Διάταξη φυσικών αριθμών - Στρογγυλοποίηση TINΑ ΒΡΕΝΤΖΟΥ www.ma8eno.gr Βρέντζου Τίνα Φυσικός Μεταπτυχιακός τίτλος: «Σπουδές στην εκπαίδευση» ΜEd Email : stvrentzou@gmail.com 2 Φυσικοί

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

ÑÏÕËÁ ÌÁÊÑÇ. Β. Να αναφέρετε τις κυριότερες τυποποιηµένες τεχνικές σχεδίασης αλγορίθµων. ΜΟΝΑ ΕΣ 3

ÑÏÕËÁ ÌÁÊÑÇ. Β. Να αναφέρετε τις κυριότερες τυποποιηµένες τεχνικές σχεδίασης αλγορίθµων. ΜΟΝΑ ΕΣ 3 1 Γ' ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΘΕΜΑ 1 Ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό

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

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n Η ύλη συνοπτικά... Στοιχειώδης συνδυαστική Γεννήτριες συναρτήσεις Σχέσεις αναδρομής Θεωρία Μέτρησης Polyá Αρχή Εγκλεισμού - Αποκλεισμού Σχέσεις Αναδρομής Γραμμικές Σχέσεις Αναδρομής με σταθερούς συντελεστές

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

ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ. a β a β.

ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ. a β a β. ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ Ε.1 ΤΟ ΛΕΞΙΛΟΓΙΟ ΤΗΣ ΛΟΓΙΚΗΣ Στη παράγραφο αυτή θα γνωρίσουμε μερικές βασικές έννοιες της Λογικής, τις οποίες θα χρησιμοποιήσουμε στη συνέχεια, όπου αυτό κρίνεται αναγκαίο, για τη σαφέστερη

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

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση

Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση Αλγόριθµοι Brute-Force και Διεξοδική Αναζήτηση Περίληψη Αλγόριθµοι τύπου Brute-Force Παραδείγµατα Αναζήτησης Ταξινόµησης Πλησιέστερα σηµεία Convex hull Βελτιστοποίηση Knapsack problem Προβλήµατα Ανάθεσης

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

ΜΑΘΗΜΑΤΙΚΑ Β Γυμνασίου

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

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

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

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

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

Αλγόριθμοι Τυφλής Αναζήτησης

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός: Θέμα 1ο Α) Απαντήστε στις παρακάτω ερωτήσεις επιλέγοντας Σ (Σωστό) ή Λ (Λάθος). 1) Ο έλεγχος μιας συνθήκης έχει μόνο δυο τιμές,

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

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

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

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

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009

Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο

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

Γραμμικός Προγραμματισμός

Γραμμικός Προγραμματισμός Γραμμικός Προγραμματισμός Εισαγωγή Το πρόβλημα του Σχεδιασμού στη Χημική Τεχνολογία και Βιομηχανία. Το συνολικό πρόβλημα του Σχεδιασμού, από μαθηματική άποψη ανάγεται σε ένα πρόβλημα επίλυσης συστήματος

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

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

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

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

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015 Βάλβης Δημήτριος Μηχανικός Πληροφορικής ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 Ο ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 Ο Α. Να αναπτύξετε τις παρακάτω ερωτήσεις: 1. Τι καλείται βρόγχος; 2. Σε ποιες κατηγορίες διακρίνονται τα προβλήματα ανάλογα με

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

εξισώσεις-ανισώσεις Μαθηματικά α λυκείου Φροντιστήρια Μ.Ε. ΠΑΙΔΕΙΑ σύνολο) στα Μαθηματικά, τη Φυσική αλλά και σε πολλές επιστήμες

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

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

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

Τα παρακάτω σύνολα θα τα θεωρήσουμε γενικά γνωστά, αν και θα δούμε πολλές από τις ιδιότητές τους: N Z Q R C

Τα παρακάτω σύνολα θα τα θεωρήσουμε γενικά γνωστά, αν και θα δούμε πολλές από τις ιδιότητές τους: N Z Q R C Κεφάλαιο 1 Εισαγωγικές έννοιες Στο κεφάλαιο αυτό θα αναφερθούμε σε ορισμένες έννοιες, οι οποίες ίσως δεν έχουν άμεση σχέση με τους διανυσματικούς χώρους, όμως θα χρησιμοποιηθούν αρκετά κατά τη μελέτη τόσο

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

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

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

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

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

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

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

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Μονάδες 12 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ A ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑΔΑ Β ) ΠΑΡΑΣΚΕΥΗ 5 ΙΟΥΝΙΟΥ 2015 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ:

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

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

Κεφάλαιο 10. Υποπρογράμματα Κεφάλαιο 10 Υποπρογράμματα 10.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να καταστούν ικανοί οι μαθητές να χρησιμοποιούν υποπρογράμματα για τη δημιουργία συνθέτων προγραμμάτων. 194

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

ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ. Η διαίρεση καλείται Ευκλείδεια και είναι τέλεια όταν το υπόλοιπο είναι μηδέν.

ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ. Η διαίρεση καλείται Ευκλείδεια και είναι τέλεια όταν το υπόλοιπο είναι μηδέν. ΑΛΓΕΒΡΑ 1 ο ΚΕΦΑΛΑΙΟ ΘΕΩΡΙΑ Α ΓΥΜΝΑΣΙΟΥ 1. Τι είναι αριθμητική παράσταση; Με ποια σειρά εκτελούμε τις πράξεις σε μια αριθμητική παράσταση ώστε να βρούμε την τιμή της; Αριθμητική παράσταση λέγεται κάθε

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ 1 ο ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ' ΛΥΚΕΙΟΥ ΤΕΧΝ/ΚΗΣ ΚΑΤ/ΝΣΗΣ (Πλ. & Υπ.) 2006 ΕΚΦΩΝΗΣΕΙΣ Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 2.1 Αν χ και y μεταβλητές με τιμές 5 και 10 αντίστοιχα να εξηγηθούν οι ακόλουθες εντολές εξόδου. 1) Η τιμή του χ είναι,χ Ητιμή του χ είναι 5 Ηεντολή εμφανίζει ότι υπάρχει στα διπλά εισαγωγικά ως έχει.

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΗΜΕΡΗΣΙΩΝ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 19 ΙΟΥΝΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ

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

Τεχνικές Προγραμματισμού

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

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

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

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

Κεφάλαιο 8.6. Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.6. Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.6 Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 16-1 Πίνακες - Επανάληψη Στην προηγούµενη διάλεξη κάναµε µια εισαγωγή στην δοµή δεδοµένων Πίνακας Σε ένα πίνακα ένα σύνολο αντικειµένων

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

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

3.12 Το Πρόβλημα της Μεταφοράς

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

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

Εργαστήριο 2: Πίνακες

Εργαστήριο 2: Πίνακες Εργαστήριο 2: Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Επεξεργασία Πινάκων - Υλοποίηση της Δυαδικής Αναζήτησης σε πίνακες - Υλοποίηση της Ταξινόμησης με Επιλογής σε πίνακες ΕΠΛ035

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΣΠΕΡΙΝΩΝ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΣΠΕΡΙΝΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΕΣΠΕΡΙΝΩΝ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΗΝΙΕΣ ΕΞΕΤΑΣΕΙΣ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 19 ΙΟΥΝΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

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

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ : Γ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ ΜΑΘΗΜΑ ΤΑΞΗ ΚΕΦΑΛΑΙΟ 2 ο ΕΙΣΗΓΗΤΗΣ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ : Γ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ : ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ : ΚΑΖΑΝΤΖΗΣ ΧΡΗΣΤΟΣ 1. Γενικός

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

ProapaitoÔmenec gn seic.

ProapaitoÔmenec gn seic. ProapaitoÔmeec g seic. Α. Το σύνολο των πραγματικών αριθμών R και οι αλγεβρικές ιδιότητες των τεσσάρων πράξεων στο R. Το σύνολο των φυσικών αριθμών N = {1,, 3,... }. Προσέξτε: μερικά βιβλία (τα βιβλία

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