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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

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

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

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

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

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

Κλάσεις Πολυπλοκότητας

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

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

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

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

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

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

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

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

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

Τεχνικές Επιμερισμένης Ανάλυσης

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

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

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

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

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

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Αλγόριθμοι και πολυπλοκότητα Ανάλυση αλγορίθμων

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

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

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

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

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 2: Ανάλυση Αλγορίθμων. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

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

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

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

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

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

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

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

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

Ορισμένες Κατηγορίες Αλγορίθμων

Δοµές Δεδοµένων. 5η Διάλεξη Λίστες και αρχές ανάλυσης αλγορίθµων. Ε. Μαρκάκης

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

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

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

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

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

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

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

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

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

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

Θεωρία Λήψης Αποφάσεων

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

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

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

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

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

Τεχνικές Επιμερισμένης Ανάλυσης

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

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ

Transcript:

Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1

Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας Προβλήματα NP-Complete Προβλήματα μεταξύ P και NP (;) 2

Random Access Machine RAM Απλό σειριακό επεξεργαστή Μνήμη άμεσης προσπέλασης Καταχωρητές Βασικές πράξεις (αριθμητικές, διακλαδώσεως, συγκρίσεις) Λογαριθμικού ή Μοναδιαίου κόστους 3

Πολυπλοκότητα Αλγορίθμου Πολυπλοκότητα Χρόνου: Καθορίζεται κυρίως από το πλήθος των υπολογιστικών πράξεων Πολυπλοκότητα Χώρου: Οι απαιτήσεις σε μνήμη χώρο αποθήκευσης Για παράλληλους αλγορίθμους: Το πλήθος των επεξεργαστών που απαιτεί ο αλγόριθμος 4

Εκτίμηση Πολυπλοκότητας Χρόνου Απόδοση χρόνου σε κάθε πράξη Μέτρηση των κυριάρχων πράξεων Ασυμπτωτικές εκτιμήσεις Εύρεση χρόνου μέσω αναδρομικών σχέσεων 5

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

Πρόβλημα και Στιγμιότυπο Προβλήματος Εύρεση του μέγιστου αριθμού από ένα σύνολο αριθμών: Το πρόβλημα είναι η εύρεση του μέγιστου αριθμού από ένα σύνολο αριθμών Η εύρεση του μέγιστου από το σύνολο {8, 15} και από το σύνολο {0, 7, 2, 1} είναι δύο στιγμιότυπα του προβλήματος 7

Μέγεθος Προβλήματος (1) Πολυπλοκότητα και Μέγεθος: Η πολυπλοκότητα ενός αλγορίθμου εκφράζεται κατά κανόνα σε σχέση με το μέγεθος του προβλήματος Παράδειγμα: Η αλγόριθμος ταξινόμησης QuickSort απαιτεί O(Ν log(ν) ) βήματα για την ταξινόμηση N αριθμών Μέγεθος του προβλήματος: Στο παραπάνω παράδειγμα θεωρούμε ότι για κάθε στιγμιότυπο του προβλήματος της ταξινόμησης αριθμών το μέγεθος του προβλήματος είναι το πλήθος των αριθμών 8

Μέγεθος Προβλήματος (2) ΑνάλογαμετοΠρόβλημα: Ηέννοιατου μεγέθους προβλήματος μπορεί να διαφέρει ή να προσαρμόζεται ανάλογα με το πρόβλημα Πρόβλημα συντομότερης διαδρομής: Δίνονται Ν κόμβοι και οι αποστάσεις ανα δύο μεταξύ τους. Για συγκεκριμένους κόμβους s και t ζητείται να βρεθεί η συντομότερη διαδρομή μεταξύ τους. Ποιο είναι το μέγεθος του προβλήματος; Ο αριθμός των κόμβων Ν; Το πλήθος των ακμών διαδρομών μεταξύ όλων των ζευγών κόμβων N(N-1)/2 ; 9

Μέγεθος Προβλήματος (3) Σε προβλήματα όπου εμφανίζονται πολύ μεγάλοι αριθμοί μπορούμε να χρησιμοποιήσουμε το πλήθος των δυαδικών ψηφίων όλων των αριθμών ως μέγεθος του προβλήματος. Όταν μελετούμε την πολυπλοκότητα ενός προβλήματος οφείλουμε να αποσαφηνίζουμε τι θεωρούμε ως μέγεθος του προβλήματος 10

Ρυθμός Ανάπτυξης Ρυθμός Ανάπτυξης: Κατά την ανάλυση της πολυπλοκότητας ενός αλγορίθμου πολλές φορές δεν μπορούμε να βρούμε την ακριβή πολυπλοκότητα, ή δεν μας ενδιαφέρει η ακριβής πολυπλοκότητα, και απλά μελετούμε το ρυθμό ανάπτυξης των συναρτήσεων που εκφράζουν την πολυπλοκότητα Ασυμπτωτική Εκτίμηση: Χρησιμοποιούμε ασυμπτωτικές εκτιμήσεις για να περιγράψουμε την πολυπλοκότητα του αλγορίθμου 11

Ασυμπτωτικές Εκτιμήσεις (1) Βασικοί Συμβολισμοί και Ορισμοί: Θ( ):ασυμπτωτικό άνω και κάτω ή σφικτό (tight) όριο Ο( ):ασυμπτοτικό άνω όριο Ω( ):ασυμπτωτικό κάτω όριο ο( ):ασυμπτωτικό άνω όριο που δεν είναι tight ω( ):ασυμπτωτικό κάτω όριο που δεν είναι tight 12

Ασυμπτωτικές Εκτιμήσεις (2) Έστω f(n) και g(n) αριθμητικές συναρτήσεις από τους φυσικούς αριθμούς στους θετικούς πραγματικούς αριθμούς f : N R + g: N R + 13

Θ() Ισχύει g(n) = Θ( f(n) ) όταν υπάρχουν σταθερές c, c και n 0 τέτοιες ώστε: Για κάθε n > n 0, c f(n) g(n) c f(n) c f g c f 14

Ο() Ισχύει g(n) = O( f(n) ) όταν υπάρχουν σταθερές c και n 0 τέτοιες ώστε: Για κάθε n > n 0, g(n) c f(n) c f g 15

Ω( ) Ισχύει g(n) = Ω( f(n) ) όταν υπάρχουν σταθερές c και n 0 τέτοιες ώστε: Για κάθε n > n 0, g(n) c f(n) g c f 16

ο( ), ω( ) Ισχύει g(n) = ο( f(n) ) όταν για κάθε θετική σταθερά c υπάρχει σταθερά n 0 τέτοια ώστε: Για κάθε n > n 0, g(n) < c f(n) Διαφορετικός ορισμός: gn ( ) lim = 0 n f( n) Ισχύει g(n) = ω( f(n) ) όταν για κάθε θετική σταθερά c υπάρχει σταθερά n 0 τέτοια ώστε: Για κάθε n > n 0, g(n) > c f(n) Διαφορετικός ορισμός: f( n) lim = 0 n gn ( ) 17

Συνήθεις Συναρτήσεις Πολυπλοκότητας Συνάρτηση c log (N) log 2 (N) Ν Ν log (N) N 2 N 3 Ν κ, κ σταθερά 2 N Όνομα - Παρατήρηση Σταθερά Λογαριθμική log (N) log (N) Γραμμική Τετράγωνο Κύβος Πολυωνυμική Εκθετική 18

Ανάλυση Πολυπλοκότητας Ανάλυση Χειρότερης Περίπτωσης (Worst Case) Ανάλυση Μέσης Περίπτωσης (Average Case Analysis) ΕπιμερισμένηήΚατανεμημένηΑνάλυση (Amortized Case Analysis) 19

Αναφορές-Πηγές Βιβλίο του μαθήματος: Κεφάλαιο 1 Introduction to Algorithms, Κεφάλαια 1 και 3 20