Αλγόριθμοι. Μάρθα Σιδέρη. ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 20% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία.

Σχετικά έγγραφα
ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Αλγόριθμοι. Μάρθα Σιδέρη. epl333 lect

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

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

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

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

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

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

Ανάλυση Αλγορίθµων 4. Πειραµατικές Μελέτες. Χρόνος Εκτέλεσης. Περιγραφή και Υλικό Ανάγνωσης

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Δομές Δεδομένων Ενότητα 2

8. Πολλαπλές μερικές παράγωγοι

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

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

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

Εισαγωγή στην Ανάλυση Αλγορίθμων

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

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

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

8. Πολλαπλές μερικές παράγωγοι

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

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

ΚΕΦΑΛΑΙΟ 1ο: ΔΙΑΦΟΡΙΚΟΣ ΛΟΓΙΣΜΟΣ ΕΝΟΤΗΤΑ 3: ΟΡΙΑ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Τεχνικές Αποδείξεις Κάτω Φραγμάτων

Εισαγωγή στην Πληροφορική

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Προηγούµενο: Ανω Φράγµα στην Τάξη των Συναρτήσεων. Ρυθµός Αύξησης (Τάξη) των Συναρτήσεων. Σύνοψη Ιδιοτήτων

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

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

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

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

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

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

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

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

α n z n = 1 + 2z 2 + 5z 3 n=0

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

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

H mèjodoc Sturm. Mˆjhma AkoloujÐec Sturm

1 Σύντομη επανάληψη βασικών εννοιών

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

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

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

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

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

Συναρτησιακές Εξαρτήσεις

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

Συναρτησιακές Εξαρτήσεις

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

Σχέδια μαθημάτων για την δημιουργία συναρτήσεων υπολογισμού του ΜΚΔ και του ΕΚΠ στην MSWLogo

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

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

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

ΑΛΓΟΡΙΘΜΟΙ Ενότητα 10

Συναρτησιακές Εξαρτήσεις

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

ΟΙ πιο πάνω έννοιες εκφράζουν όπως λέμε τη μονοτονία της συνάρτησης.

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

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

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

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

Κεφάλαιο 2. Βασικά στοιχεία ανάλυσης αλγορίθμων. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

5.1. Προσδοκώμενα αποτελέσματα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

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

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Transcript:

Αλγόριθμοι Μάρθα Σιδέρη epl333 lect 011 1 ιαδικαστικά: ύο πρόοδοι 31 Μαρτίου, 18 Μαΐου 7-9μμ 0% η μία, ύο Προγραμματιστικές 1 προσθετικό βαθμό η μία. Οι πρόοδοι είναι προαιρετικές και το ποσοστό μετράει μόνο αν ανεβάζουν την τελική βαθμολογία. Για να περάσετε το μάθημα πρέπει προσέλθετε στο τελικό διαγώνισμα πάρετε βαθμό τουλάχιστον 3,5/10. Ώρες Φροντιστηρίου ευτέρα 1:00-3:00 Π, αρχίζει την επόμενη Τετάρτη Τετάρτη 1-3 15:00 3 epl333 lect 011 1

Προηγούμενο μάθημα: πρόβλημα Σταθερός γάμος (stable marriage) Κάθε γυναίκα βάζει σε σειρά προτίμησης όλους τους άνδρες Κάθε άνδρας βάζει σε σειρά προτίμησης όλες τις γυναίκες Υπάρχει σταθερό ταίριασμα; Μπορούμε να το βρούμε γρήγορα; Παρουσιάσαμε αλγόριθμο και εξετάσαμε τα ερωτήματα: Τερματίζει; Είναι ορθός; Είναι γρήγορος; O ( ) epl333 lect 011 3 Θέλουμε οι αλγόριθμοί μας να τρέχουν γρήγορα! Πώς κάνουμε την έννοια «γρήγορος αλγόριθμος» κάτι πιο συγκεκριμένο??? Υπάρχει πάντα ο αλγόριθμος να ψάξουμε όλες τις δυνατές λύσεις. Π.χ. Στο σταθερό γάμο: Να εξετάσουμε όλα τα δυνατά σύνολα ζευγών, ένα- ένα.! ταιριάσματα epl333 lect 011 4

Για κάθε ένα από τα! ταιριάσματα Ελέγχουμε αν υπάρχουν ζευγάρια ( mw, ) και ( m', w') Που προκαλούν «αστάθεια» δηλαδή, ο m προτιμά την w από την w και η w προτιμά τον m από τον m. Ένας αλγόριθμος θεωρείται γρήγορος αν, όταν τον αναλύσουμε, είναι σημαντικά καλύτερος από το να ψάχναμε όλες τις λύσεις... epl333 lect 011 5 Ένας αλγόριθμος θεωρείται γρήγορος, αν ο χρόνος εκτέλεσης είναι πολυωνυμικός Τι σημαίνει πολυωνυμικός αλγόριθμος?? Στην χειρότερη περίπτωση εισόδου μήκους N, ο αλγόριθμος κάνει cn cn d :Συνάρτηση και c, d σταθερές (δεν εξαρτώνται από το Ν) d υπολογιστικά βήματα μέχρι να σταματήσει. epl333 lect 011 6 3

Γρήγοροι αλγόριθμοι Είσοδος Ν, cn cn d υπολογιστικά βήματα d :Συνάρτηση και c, d σταθερές (δεν εξαρτώνται από το Ν) 1. Πώς μετράμε το μήκος εισόδου Ν;. Σε ποια γλώσσα προγραμματισμού τα βήματα;; 3. Είναι σωστή αυτή η θεώρηση γρήγορου αλγορίθμου? epl333 lect 011 7 3. Είναι σωστή αυτή η θεώρηση γρήγορου αλγορίθμου? 100?? 1 0.log?? Τέτοιες συναρτήσεις δεν παρουσιάζονται στην πράξη Κάθε γενίκευση έχει και τα αντιπαραδείγματά της Όταν το γίνει πολύ μεγάλο, πάντα τα πολυώνυμα έχουν μικρότερη τιμή από τις εκθετικές συναρτήσεις. epl333 lect 011 8 4

epl333 lect 011 9 Ασυμπτωτικός συμβολισμός Επέζησε όλα αυτά τα χρόνια... Kuth 1968 Αλλά τώρα πια με το web έχουμε δει καθαρά τη σημασία του... Ναι, πολύ μεγάλο μέγεθος εισόδου αλγορίθμων υπάρχει στην πράξη! epl333 lect 011 10 5

Ένας αλγόριθμος θεωρείται γρήγορος, αν ο χρόνος εκτέλεσης είναι πολυωνυμικός Είσοδος Ν, cn d c, d σταθερές (δεν εξαρτώνται από το Ν) υπολογιστικά βήματα 1. Είναι σωστή αυτή η θεώρηση γρήγορου αλγορίθμου? Ναι, είναι λογική απλούστευση και βοηθάει ιδιαίτερα.. Πώς μετράμε το μήκος εισόδου Ν; Όπως θέλουμε, αρκεί να σχετίζονται πολυωνυμικά οι παραστάσεις. 3. Σε ποια γλώσσα προγραμματισμού τα βήματα;; Οποία θέλουμε, αρκεί κάθε εντολή να έχει σταθερό αριθμό βημάτων σε μια απλή γλώσσα (assembly). epl333 lect 011 11 Μέγεθος εισόδου? 8390 epl333 lect 011 1 6

Μέγεθος εισόδου? 5 8390 1cm cm Φυσικό μήκος- = cm # bits - = 17 bits # ψηφίων - = 5 digits Τιμή - = 8390 Τι είναι λογικό epl333 lect 011 13 Μήκος εισόδου 5 8390 1cm cm Φυσικό μήκος- = cm... # of bits - = 17 bits λογικό # ψηφίων - = 5 ψηφία λογικό Τιμή - = 8390 Παράλογο # of bits = log (Τιμής) Τιμή = # of bits epl333 lect 011 14 7

Μήκος εισόδου? 14,3,5,30,31,5,6,79,88,98 epl333 lect 011 15 Μήκος εισόδου 10 14,3,5,30,31,5,6,79,88,98 αριθμός στοιχείων = 10 στοιχεία epl333 lect 011 16 8

Μήκος εισόδου 10 14,3,5,30,31,5,6,79,88,98 # στοιχείων - = 10 Είναι λογικό? epl333 lect 011 17 Μήκος εισόδου 10 14,3,5,30,31,5,6,79,88,98 # στοιχείων - = 10 ~ Λογικό Αν κάθε στοιχείο έχει σταθερό αριθμό bits c # bits = c * # στοιχείων epl333 lect 011 18 9

Πως μετράμε βήματα? Έχει νόημα να πούμε «ο τάδε αλγόριθμος με είσοδο κάνει.5 85 9 βήματα»? ΟΧΙ Οι σταθερές εξαρτώνται από παράσταση εισόδου και ψευδογλώσσα. Έχει πολύ περισσότερη λεπτομέρεια από όση χρειαζόμαστε... epl333 lect 011 19 Πρώτο παράδειγμα αλγορίθμου για να μετρήσουμε χρόνο...isertio sort isertio sort(a) {for i= to do { j=i; while (A[j] < A[j-1] ad j>1) {swap(a[j], A[j-1]); j--;}}} epl333 lect 011 0 10

Τρέξιμο aimatios isertio sort(a) 5 1 706348 {for i= to do 5 1 7 0 6 3 4 8 { j=i; while (A[j] < A[j-1] ad j>1) 5 7 1 0 6 3 4 8 {swap(a[j], A[j-1]); j--;}}} 5 7 1 0 6 3 4 8 5 6 7 1 0 3 4 8 3 5 6 7 1 0 4 8 3 4 5 6 7 1 0 8 3 4 5 6 7 8 1 0 epl333 lect 011 1 Είναι ο αλγόριθμός αυτός γρήγορος? Είναι καλύτερος από το να απαριθμούσαμε όλες τις μεταθέσεις των αριθμών και για κάθε μια να ελέγχαμε αν είναι ταξινομημένη? epl333 lect 011 11

Πόσο γρήγορος είναι? μήκος εισόδου (πόσους αριθμούς έχουμε) {for i=todo -1 επαναλήψεις { j=i; -1 επαναλήψεις while (A[j] < A[j-1] ad j>1) t t t t επαναλήψεις 3 4... {swap(a[j], A[j-1]); j--;}}} t t3 t4 t 1 1 1... 1 t j αριθμός στοιχείων, με τα οποία κανουμε swap το j 1 epl333 lect 011 3 Ανάλυση isertio sort Ακριβής ανάλυση τα t j εξαρτώνται από την είσοδο Καλύτερη περίπτωση (best case) sorted όλα τα t j = 1 πράξεις c+d Χειρότερη ρηπερίπτωση η( (worst case) όλα τα t j =j epl333 lect 011 4 1

j j Συνολικός αριθμός βημάτων: άθροιση... Ασυμπτωτικά Γιατί?? epl333 lect 011 5 Είναι ο x (x>) πρώτος; αλγόριθμος prime(x) /* x > { y=; repeat if (mod(x, y)= = 0) {write(x δεν είναι πρώτος); exit;} else y=y+1; util y<=x; write(x είναι πρώτος); } Εκθετική πολυπλοκότητα! Υπάρχει γρήγορος αλγόριθμος? ΝΑΙ! epl333 lect 011 6 13

Γιατί εκθετική πολυπλοκότητα? Μήκος εισόδου =#των bits (κωδικοποίηση στο δυαδικό) δ Αριθμός βημάτων = τιμή του # of bits = log (Τιμής) Τιμή = # of bits epl333 lect 011 7 Ασυμπτωτικός συμβολισμός (otatio) Θέλουμε να βρούμε άνω όρια στο χρόνο εκτέλεσης T() ενός αλγορίθμου, θετικές τιμές. T ( ) Of ( ( )) Η f() είναι άνω όριο στην T(), ένα πολλαπλάσιο της f() είναι άνω όριο στην Τ() για αρκετά μεγάλα epl333 lect 011 8 14

Παράδειγμα αν : pqr,, 0 T ( ) p q r p q r ( pqr) 0, T( ) c, c p q r T ( ) O ( ) epl333 lect 011 9 Isertio sort j j ( )/ T ( ) O ( ) T() p q r ( p q r), άρα 1 1 epl333 lect 011 30 15

Ασυμπτωτικός συμβολισμός (otatio) συγκρίνουμε συναρτήσεις f( ): f (g) = f (g) f (g) epl333 lect 011 31 cg() f() 0 f 0 Og ( ) epl333 lect 011 3 16

epl333 lect 011 33 Ασυμπτωτικός συμβολισμός (otatio) f (g) epl333 lect 011 34 17

Παράδειγμα: pqr,, 0 T ( ) p q r p T 0, T( ) c, c p ( ) ( ) epl333 lect 011 35 Παράδειγμα: pqr,, 0 T ( ) p q r p p 0, T( ) c, c p T ( ) ( ) epl333 lect 011 36 18

Ασυμπτωτικός συμβολισμός (otatio) f (g) «Το ακριβές όριο...» epl333 lect 011 37 Παράδειγμα: pqr,, 0 T () p qr Αποδείξαμε ότι: T ( ) O ( ) T ( ) ( ) } T ( ) ( ) epl333 lect 011 38 19

Σχέση μεταξύ, O, epl333 lect 011 39 f ( ) O( g( )) σημαίνει c : c g( ) είναι πάνω όριο στη f ( ) f ( ) ( g( )) σημαίνει c : cg( ) είναι κάτω όριο στη f ( ) f ( ) ( g( )) σημαίνει c, c : c g( ) είναι πάνω όριο στη f ( ) 1 1 c g( ) είναι κάτω όριο στη f ( ) cc, 1, c σταθερές! εν μας ενδιαφέρουν μικρές τιμές του epl333 lect 011 40 0

Χρήσιμη ιδιότητα Ιδιότητα: f Oh ( ), g Oh ( ) f g Oh ( ) c : f ( ) ch( ) 0 ' } c ': g( ) c' h( ) 0 f ( ) g( ) ( cc') h( ) max(, ) ' 0 0 Προφανώς γενικεύεται για περισσότερες από συναρτήσεις.. epl333 lect 011 41 3 Παραδείγματα 100 6 O ( ) Επειδή για C=3 και για κάθε 3 1006 3 epl333 lect 011 4 1

Παράδειγμα O( ) 0, c 1, epl333 lect 011 43 Παράδειγμα..συνέχεια ( )? Χρειαζόμαστε σταθερά μικρότερη του 1, έστω c=1/3 1 1:1 3 4 : 4 4 3 3 : 9 6 3!!!... 1 ( ) 3 3 ( ) epl333 lect 011 44

Παράδειγμα...συνέχεια ( ) c c 1 c 1/3, c 1, 3 1 0 epl333 lect 011 45 Προσοχή! Υπάρχουν πολλοί συνδυασμοί c1, c, 0 για την διπλή ανισότητα: c c 1 Αρκεί ένας, οποιοσδήποτε... ή epl333 lect 011 46 3

Τι είναι όλα αυτά?? Δεν καταλαβαίνω τίποτα... Ο ασυμπτωτικός συμβολισμός είναι τρόπος να συγκρίνουμε (..χοντροειδώς) συναρτήσεις για να δούμε ποία έχει μεγαλύτερες τιμές. Τι χρειάζεται? Ο χρόνος (υπολογιστικά βήματα) αλγορίθμου είναι συνάρτηση του μήκους της εισόδου. Αν υπολογίσουμε τα βήματα ενός αλγορίθμου είναι πολύπλοκη συνάρτηση, χρειάζεται να την συγκρίνουμε με μια πιο απλή. epl333 lect 011 47 Και γιατί τα κάνουμε όλα αυτά? Για να ξέρουμε αν η διαδικασία που σκεφτήκαμε για να λύσουμε ένα πρόβλημα είναι «έξυπνη», δηλαδή καλλίτερη από το να ψάχναμε όλες τις λύσεις....και πόσο ακριβώς «έξυπνη» είναι! Πριν την υλοποιήσουμε... Δίχως να χρειαστεί να δοκιμαστεί... epl333 lect 011 48 4

Γιατί κάναμε όλες αυτές τις πράξεις με πολυώνυμα? Τα πολυώνυμα μας ενδιαφέρουν πολύ ως συναρτήσεις βημάτων. Πολυωνυμικός χρόνος σημαίνει «γρήγορος» αλγόριθμος. Όλοι οι αλγόριθμοι του μαθήματος είναι πολυωνυμικοί! epl333 lect 011 49 Τελικά, τι λέγαμε τόση ώρα για τα πολυώνυμα? Ότι ΚΑΘΕ πολυώνυμο ανεξάρτητα από τους συντελεστές του αυξάνεται ακριβώς τόσο γρήγορα ασυμπτωτικά όσο ο μεγαλύτερος εκθέτης. Π.χ. 1 4 3 4 00 4 50 ( ) 8 x x x x x Τόση ώρα μόνο αυτό??? Προσπαθούσαμε να το αποδείξουμε τυπικά με βάση τους ορισμούς. epl333 lect 011 50 5

Χρησιμοποιείται στην πράξη ο ασυμπτωτικός συμβολισμός, ή είναι από τα πράγματα που ποτέ δεν θα δούμε μετά το μάθημα? Για κάθε διαδικασία που υλοποιείτε η σχεδιάζετε θα πρέπει να ξέρετε πόσο γρήγορη είναι. Σιγά, σιγά, με την εμπειρία, δεν χρειάζονται πράξεις, γίνεται αυτόματα... Είσαστε στο σημείο αυτό?? epl333 lect 011 51 Τώρα, στην αρχή, πριν την φάση που μου έχει γίνει σχεδόν αυτόματο (και για τις εξετάσεις και ασκήσεις...) τι κάνω για να πω ότι f () (()) g Δύο τρόποι epl333 lect 011 5 6

f () (()) g Τρόπος α. 1.Αποδεικνύουμε ότι δηλαδή βρίσκουμε c, 0 με δοκιμές δηλαδή βρίσκουμε.αποδεικνύουμε ότι c', epl333 lect 011 53 0 ' με δοκιμές f () (()) g Τρόπος β. f ( x ) lim L 0 x gx ( ) epl333 lect 011 54 7

Γιατί οι δύο τρόποι είναι ακριβώς το ίδιο?? (Χρειάζεται να το πούμε?) s: f ( x ) L xs epl333 lect 011 55 f( x) lim L 0 x gx ( ) 1 L 1 f( ) : L L g ( ) 0 0 f ( ) Lg( ) f( ) O( g( )) 1 f ( ) Lg ( ) f( ) ( g ( )) Άρα υπάρχει c L 1 c' L epl333 lect 011 56 8

Παράδειγμα απόδειξης με όρια: τρόπος (χρειάζεται?) ( )? 1 (1 ) 1 lim lim lim (1 ) 1 epl333 lect 011 57 Από όσα είπαμε έως τώρα, τα ελάχιστα που πρέπει να θυμάστε είναι: 1. Για να δούμε πόσο γρήγορος είναι ένας αλγόριθμος: Μετράμε βήματα Παραλείπουμε σταθερές Από τα πολυώνυμα κρατάμε τον όρο με το μεγαλύτερο βαθμό. Οι κύριες ομάδες αλγορίθμων είναι: a ( ), 1 log... a πολυωνυμικοί, γρήγοροι ( a ): a1 εκθετικοί 3. Ιεραρχία συναρτήσεων epl333 lect 011 58 9

Μερικοί ακόμα κανόνες, που χρησιμεύουν συχνά: Κάθε λογάριθμος αυξάνεται αργότερα ρ από κάθε πολυώνυμο ανεξάρτητα βάσης και εκθέτη x b0, x0: log O( ) Εκθέτες μικρότεροι θετικοί μικρότεροι από 1 b Γιατί? epl333 lect 011 59 Μερικοί ακόμα κανόνες, που χρησιμεύουν συχνά: Κάθε εκθετική συνάρτηση αυξάνεται γρηγορότερα από κάθε πολυωνυμική, ανεξάρτητα εκθέτη και βάσης d r 1, d 0 : O( r ) epl333 lect 011 60 30

Μερικοί ακόμα κανόνες, που χρησιμεύουν συχνά: Όσο μεγαλύτερη είναι η βάση της εκθετικής συνάρτησης, τόσο γρηγορότερα αυξάνεται r s 1: s O ( r ) s ( r ) epl333 lect 011 61 Μερικοί ακόμα κανόνες, που χρησιμεύουν συχνά: Ποιο είναι το ασυμπτωτικό όριο του Είναι αργότερο από όλες τις εκθετικές συναρτήσεις! 134...! Επειδή όλοι οι αριθμοί είναι μικρότεροι από το 1 3... ( 1)... ( )! Επειδή όλοι οι αριθμοί είναι μεγαλύτεροι από / epl333 lect 011 6 31

( )! Προσέγγιση Stirlig 1! ( ) (1 ( )) e epl333 lect 011 63 3