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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

ΚΑΘΟΡΙΣΜΟΣ ΚΑΙ ΚΑΤΑΝΟΗΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
Eπιμέλεια Τίκβα Χριστίνα
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Σημειώσεις : Χρήστος Μουρατίδης
Η εντολή Δείξε είναι μια εντολή εξόδου και χρησιμοποιείται για:
Πολυπλοκότητα Παράμετροι της αποδοτικότητας ενός αλγόριθμου:
9 Οκτώβρη 2002.
ΑΛΓΟΡΙΘΜΟΙ.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Προσεγγιστικοί Αλγόριθμοι
Κεφάλαιο 2. Τι είναι αλγόριθμος  Η λέξη αλγόριθμος προέρχεται από μελέτη του Πέρση μαθηματικού Abu Ja’far Mohammed ibn al Khowarizmi  Στα λατινικά ξεκινούσε.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Κεφάλαιο 1ο Ανάλυση Προβλήματος.
ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΚΕΦΑΛΑΙΟ 1ο ΚΕΦ. 1-ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΕΠΠ.
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Αλγόριθμοι: Σύγχρονες Τάσεις Ηλίας Κουτσουπιάς Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών.
Αλγόριθμοι 2.1.1,
Kεφάλαιο 4 ΑΛΓΟΡΙΘΜΟΙ-ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ (αναλυτική προσέγγιση)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Κάντε κλικ για έναρξη… Τ Ο ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ Κέντρο εντολών Χώρος γραφικών (σελίδα) Χώρος σύνταξης διαδικασιών.
Από την ιδέα μέχρι το λογισμικό. Ξεκινώντας από το πρόβλημα...
Τμήμα Πληροφορικής και Τηλεπικοινωνιών Κ. Χαλάτσης, Εισαγωγή στην Επιστήμη της Πληροφορικής και των Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών 1 Παράσταση Πληροφοριών.
Κοζαλάκης Ευστάθιος ΠΕ03
Ασυμπτωτικός Συμβολισμός
Ερωτήσεις & Φύλλο εργασίας
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
Χρονική Πολυπλοκότητα
ΗΜΥ 100: Εισαγωγή στην Τεχνολογία Διάλεξη 16 Εισαγωγή στα Ψηφιακά Συστήματα: Μέρος B TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Βασικές έννοιες προγραμματισμού Κεφάλαιο 7 ο. Βασικές έννοιες προγραμματισμού Αλφάβητο και τύποι δεδομένων Σταθερές και μεταβλητές Τελεστές, συναρτήσεις.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
1.4 Καθορισμός απαιτήσεων Είναι η διαδικασία κατά την οποία πρέπει να κάνουμε: ✗ τον επακριβή προσδιορισμό των δεδομένων που παρέχει το πρόβλημα ✗ την.
Φυσική για Επιστήμονες και Μηχανικούς Εισαγωγή – Φυσική και μετρήσεις.
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
Οι Δομές Δεδομένων Ουρά και Στοίβα
ΣΤΑΤΙΣΤΙΚΑ ΜΕΤΡΑ ΔΙΑΣΠΟΡΑΣ - ΑΣΥΜΜΕΤΡΙΑΣ - ΚΥΡΤΩΣΕΩΣ
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Ο μαγικός αριθμός π.
ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΚΕΡΑΙΩΝ
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Μορφές κατανομών Αθανάσιος Βέρδης.
Πι.
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΑΛΓΟΡΙΘΜΟΣ.
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Εντολές και δομές αλγορίθμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Οι Δομές Δεδομένων Ουρά και Στοίβα
Πληροφορική Β΄ Γυμνασιου Κεφάλαιο 3, 3.4
1.1 Ψηφιακό – Αναλογικό σύστημα 1.2 Ο υπολογιστής ως ψηφιακή μηχανή Τζικούδη – Παπαγεωργίου Χρυσάνθη ΑΣΠΑΙΤΕ – ΕΠΠΑΙΚ – Τμήμα Ε2 Θεσσαλονίκη Νοέμβριος.
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
ΗΜΥ 210: Λογικός Σχεδιασμός
Υπολογιστικά Φύλλα Περιεχόμενο κελιού - Πράξεις
Κυριάκου Νικόλαος Πληροφορικής ΠΕ-20
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

Συμβολισμός Ο Φανταστείτε ότι 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)

Απλοί κανόνες για ασυμπτωτική ανάλυση Αντί να έχουμε μια πολύπλοκη συνάρτηση της μορφής 3n2 + 4n + 5, μπορούμε να την αντικαταστήσουμε με O(f(n)), με την f(n) να είναι όσο απλούστερη γίνεται… Εδώ θα μπορούσαμε να χρησιμοποιήσουμε O(n2) αφού ο όρος με το τετράγωνο κυριαρχεί όλων των άλλων όρων του αθροίσματος Μερικοί απλοί κανόνες για την απλοποίηση συναρτήσεων μέσω της παράλειψης όρων είναι οι: Πολλαπλασιαστικές σταθερές μπορούν να παραλειφθούν 14n2 γίνεται n2 na επικρατεί του nb αν a > b n2 κυριαρχεί του n Κάθε εκθετικός όρος κυριαρχεί κάθε πολυωνυμικού 3n κυριαρχεί του n5 (κυριαρχεί επίσης του 2n). Κάθε πολυωνυμικός όρος κυριαρχεί κάθε λογαρίθμου n κυριαρχεί του (log n)3. Αυτό σημαίνει επίσης ότι ο όρος n2 κυριαρχεί του όρου 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 λειτουργίες Επομένως, ο αλγόριθμος για την πρόσθεση είναι βέλτιστος εντός πολλαπλασιαστικών σταθερών