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

Σχετικά έγγραφα
Εισαγωγή στους Αλγόριθμους

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

Υπολογιστική Πολυπλοκότητα

Ασυμπτωτικός Συμβολισμός

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

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός

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

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Ασυμπτωτικός Συμβολισμός

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

Πολλαπλασιασμός: αλγόριθμος

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

Αν ένα πρόβλημα λύνεται από δύο ή περισσότερους αλγόριθμους, ποιος θα είναι ο καλύτερος; Με ποια κριτήρια θα τους συγκρίνουμε;

Αριθμητικά Συστήματα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

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

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

Ασκήσεις (2) Άσκηση 1

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

Ελίνα Μακρή

Υπολογιστικά & Διακριτά Μαθηματικά

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

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

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

Λέγονται οι αριθμοί που βρίσκονται καθημερινά στη φύση, γύρω μας. π.χ. 1 μήλο, 2 παιδιά, 5 αυτοκίνητα, 100 πρόβατα, δέντρα κ.λ.π.

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

* * * ( ) mod p = (a p 1. 2 ) mod p.

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Οι Φυσικοί Αριθμοί. Παρατήρηση: Δεν στρογγυλοποιούνται αριθμοί τηλεφώνων, Α.Φ.Μ., κωδικοί αριθμοί κλπ. Πρόσθεση Φυσικών αριθμών

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

Λογική Σχεδίαση Ψηφιακών Συστημάτων

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Γνωρίστε το Excel 2007

ΣΥΝΟΠΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΣΤΟ ΜΑΘΗΜΑ ΜΑΘΗΜΑΤΙΚΑ Ι.Ι (τεύχος-1-)

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Αλγόριθμοι Χαμηλού Επιπέδου

(Γραμμικές) Αναδρομικές Σχέσεις

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

(Γραμμικές) Αναδρομικές Σχέσεις

Υπολογιστικά & Διακριτά Μαθηματικά

Θεωρια Αριθµων Προβληµατα

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

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

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

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

1. ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΩΝ. α i. (α i β i ) (1.3) όπου: η= το πλήθος ακεραίων ψηφίων του αριθμού Ν. n-1

Διάλεξη 04: Παραδείγματα Ανάλυσης

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Πράξεις με δυαδικούς αριθμούς

ΑΝΑΛΥΣΗ 1 ΕΙΚΟΣΤΟ ΠΡΩΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Αριθμοθεωρητικοί Αλγόριθμοι

ΛΧ1004 Μαθηματικά για Οικονομολόγους

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

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

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

Σύστημα αρίθμησης. Τρόπος αναπαράστασης αριθμών Κάθε σύστημα αρίθμησης έχει μία βάση R

0,00620 = 6, ΣΗΜΑΝΤΙΚΑ ΨΗΦΙΑ. Γενικοί Κανόνες για τα Σημαντικά Ψηφία

Αρβανιτίδης Θεόδωρος, - Μαθηματικά Ε

(Γραμμικές) Αναδρομικές Σχέσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΑΕΠΠ 2o Επαναληπτικό Διαγώνισμα

ρυθιμός αύξησης συναρτήσεων

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

Όλοι οι ακέραιοι αριθμοί από το 0 και μετά λέγονται φυσικοί αριθμοί π.χ.

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

Δυαδικη παρασταση αριθμων και συμβολων

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

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

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

Αριθµητική υπολογιστών

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

bca = e. H 1j = G 2 H 5j = {f G j : f(0) = 1}

Μαθηµατικά για Πληροφορική

Ε Μέχρι 18 Μαΐου 2015.

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

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

Πρόσθεση, αφαίρεση και πολλαπλασιασμός φυσικών αριθμών

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΑΛΓΕΒΡΑΣ B ΛΥΚΕΙΟΥ

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

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

Εθνικό Μετσόβιο Πολυτεχνείο

Αριθμητικά Συστήματα

Transcript:

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

Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση

Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το 600 π.χ. και ήταν επανάσταση για τον ποσοτικό λογισμό: χρησιμοποιώντας μόνο 10 σύμβολα, ακόμα και πολύ μεγάλοι αριθμοί μπορούν να γραφτούν με συνοπτικό τρόπο και μπορούν να γίνουν αριθμητικές πράξεις με αυτούς ακολουθώντας στοιχειώδη βήματα Οι ιδέες αυτές άργησαν να εξαπλωθούν λόγω κλασικών εμποδίων όπως η γλώσσα, η απόσταση, η άγνοια

Al Khwarizmi Αλγόριθμοι Το πιο αποδοτικό μέσο μετάδοσής τους αποδείχθηκε ένα βιβλίο γραμμένο στα αραβικά τον 9o αιώνα από κάποιον που ζούσε στη Βαγδάτη, ονόματι Al Khwarizmi, ο οποίος παρουσίασε τις βασικές μεθόδους για άθροιση, πολλαπλασιασμό και διαίρεση αριθμών ακόμα και για τον υπολογισμό τετραγωνικών ριζών και ψηφίων του π Οι μέθοδοι ήταν ακριβείς, μηχανικές, αποδοτικές, ορθές με λίγα λόγια ήταν αλγόριθμοι ένας όρος που χρησιμοποιήθηκε για να τιμηθεί αυτός ο σημαντικός άνθρωπος αφότου το δεκαδικό σύστημα υιοθετήθηκε τελικά στην Ευρώπη πολλούς αιώνες αργότερα

Τι είναι το π; Ένας πραγματικός αριθμός που μπορεί να οριστεί ως ο λόγος του μήκους της περιφέρειας ενός κύκλου προς τη διάμετρό του στην Ευκλείδεια γεωμετρία = 3,14159 Ο συμβολισμός προέρχεται από το αρχικό γράμμα πι της λέξης «περιφέρεια» και έχει καθιερωθεί διεθνώς Είναι γνωστό επίσης ως σταθερά του Αρχιμήδη ή αριθμός του Λούντολφ

Ορθότητα και απόδοση αλγορίθμων Υπάρχουν 3 βασικές ερωτήσεις για κάθε αλγόριθμο: 1. Είναι σωστός; 2. Πόσο χρόνο (σα συνάρτηση του πλήθους των δεδομένων εισόδου) χρειάζεται για να εκτελεστεί; Εναλλακτικά, πόσο αποδοτικός είναι; 3. Μπορεί να βελτιωθεί;

Ασυμπτωτική ανάλυση Όταν αναλύουμε έναν αλγόριθμο (π.χ., υπολογίζουμε πόσο χρόνο χρειάζεται για να εκτελεστεί για κάθε πιθανή ερώτηση) δεν πρέπει να είμαστε ούτε πολύ πρόχειροι ούτε πολύ ακριβείς Πρέπει να κάνουμε τις αναγκαίες απλοποιήσεις Το να μετράμε το χρόνο εκτέλεσης ενός αλγορίθμου που εκτελείται σε υπολογιστή με βήματα είναι ήδη απλοποίηση Ασυμπτωτική ανάλυση = ανάλυση στο περίπου

Απλοποιήσεις Μετράμε το χρόνο εκτέλεσης ενός αλγόριθμου με βασικά βήματα υπολογιστή και τον εκφράζουμε ως συνάρτηση του μεγέθους της εισόδου Αντί να λέμε ότι ένας αλγόριθμος τρέχει σε π.χ., 5n 3 +4n+3 βήματα για μέγεθος εισόδου n, είναι απλούστερο να παραλείψουμε τους όρους χαμηλής τάξης όπως οι 4n και 3 (οι οποίοι γίνονται ασήμαντοι καθώς μεγαλώνει το n) ακόμα και τη συνιστώσα 5 στο επικρατή όρο και να πούμε ότι ο αλγόριθμος τρέχει σε O(n 3 ) βήματα

Συμβολισμός Ο Φανταστείτε ότι f(n) και g(n) είναι οι χρόνοι εκτέλεσης δύο αλγορίθμων για μέγεθος εισόδου n Οι f(n) και g(n) είναι συναρτήσεις από τους θετικούς ακέραιους στους θετικούς πραγματικούς f = O(g) (που σημαίνει ότι η f δεν μεγαλώνει γρηγορότερα από τη g) αν υπάρχει σταθερά c > 0 τέτοια ώστε f(n) c g(n) f = O(g) μοιάζει με το f g με τη διαφορά της σταθεράς c 10n = O(n) μπορούμε να παραβλέψουμε τι συμβαίνει για μικρές τιμές του n

Συμβολισμός Ο g f f = O(g)

Συμβολισμοί Ω και Θ Ακριβές φράγμα (Exact Bound) Άνω φράγμα (Upper Bound) Κάτω φράγμα (Lower Bound)

Απλοί κανόνες για ασυμπτωτική ανάλυση Αντί να έχουμε μια πολύπλοκη συνάρτηση της μορφής 3n 2 + 4n + 5, μπορούμε να την αντικαταστήσουμε με O(f(n)), με την f(n) να είναι όσο απλούστερη γίνεται Εδώ θα μπορούσαμε να χρησιμοποιήσουμε O(n 2 ) αφού ο όρος με το τετράγωνο κυριαρχεί όλων των άλλων όρων του αθροίσματος Μερικοί απλοί κανόνες για την απλοποίηση συναρτήσεων μέσω της παράλειψης όρων είναι οι: 1. Πολλαπλασιαστικές σταθερές μπορούν να παραλειφθούν 14n 2 γίνεται n 2 2. n a επικρατεί του n b αν a > b n 2 κυριαρχεί του n 3. Κάθε εκθετικός όρος κυριαρχεί κάθε πολυωνυμικού 3 n κυριαρχεί του n 5 (κυριαρχεί επίσης του 2 n ). 4. Κάθε πολυωνυμικός όρος κυριαρχεί κάθε λογαρίθμου n κυριαρχεί του (log n) 3. Αυτό σημαίνει επίσης ότι ο όρος n 2 κυριαρχεί του όρου n log n.

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

ΠΡΟΣΘΕΣΗ

Πρόσθεση: αλγόριθμος Βάλε τους αριθμούς έναν σε κάθε σειρά και στοίχισέ τους από δεξιά προς τα αριστερά Κάνε ένα πέρασμα από το δεξιά προς τα αριστερά υπολογίζοντας το άθροισμα ψηφίο ψηφίο, διατηρώντας μία επιπλέον γραμμή για το κρατούμενο Σε κάθε βήμα αθροίζονται τρεις μονοψήφιοι αριθμοί

Κρατούμενο: Πρόσθεση: παράδειγμα

Πρόσθεση: χρόνος εκτέλεσης αλγορίθμου Δίνονται δύο δυαδικοί αριθμοί x και y Πόσο χρόνο απαιτεί ο προηγούμενος αλγόριθμος για να τους αθροίσει; Θέλουμε η απάντηση να εκφραστεί σα συνάρτηση του μεγέθους της εισόδου: του αριθμού των bits του x και του y, δηλ., του αριθμού των πλήκτρων που πατάμε για να τους πληκτρολογήσουμε

Πρόσθεση: χρόνος εκτέλεσης αλγορίθμου Υποθέτουμε ότι οι αριθμοί x και y αποτελούνται από n bits ο καθένας Το άθροισμα των x και y έχει n+1 bits το πολύ Κάθε ανεξάρτητο bit του αθροίσματος υπολογίζεται σε σταθερό χρόνο Ο συνολικός χρόνος εκτέλεσης του αλγορίθμου είναι επομένως c0+c1n (c0 και c1 είναι σταθερές) δηλ., γραμμικός Δεν επικεντρωνόμαστε στις σταθερές c0 και c1, και συμβολίζουμε το χρόνο εκτέλεσης με O(n)

Πρόσθεση: μπορούμε καλύτερα; Για να προσθέσουμε δύο αριθμούς των n bit ο καθένας πρέπει τουλάχιστον να τους διαβάσουμε και να γράψουμε το αποτέλεσμα: ακόμα και αυτό απαιτεί n λειτουργίες Επομένως, ο αλγόριθμος για την πρόσθεση είναι βέλτιστος εντός πολλαπλασιαστικών σταθερών