Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών
ΠΕΡΙΕΧΟΜΕΝΟ Διαδοχική Αναζήτηση Δυαδική Αναζήτηση 2
ΔΙΑΔΟΧΙΚΗ ΑΝΑΖΗΤΗΣΗ Πρόβλημα Δίνονται ο φυσικός αριθμός, τα στοιχεία x 1, x 2,, x και ένα στοιχείο x του ίδιου τύπου με τα x i. Ζητείται να βρεθεί αν υπάρχει το x στη λίστα των στοιχείων και να επιστραφεί η θέση του σε αυτή ή ο αριθμός 0 αν δεν υπάρχει. 3
ΑΛΓΟΡΙΘΜΟΣ Αλγόριθμος Διαδοχικής Αναζήτησης Είσοδος: στοιχείο x. 1, πίνακας L μήκους με L(i)=x i,όπου i=1.., και Έξοδος: θέση j στον πίνακα L αν L(j)=x, αλλιώς j=0. Ψευδοκώδικας: j=1 while (j<=) ad (L(j)!=x) do j=j+1 ed if (j>) the j=0 exit j 4
ΠΑΡΑΔΕΙΓΜΑ Πρόβλημα Δίνονται ο φυσικός αριθμός 10, τα 10 στοιχεία 5, 6, 8, 11, 0, 3, 7, 0, 100, 29 και ο αριθμός 11. Ζητείται να βρεθεί αν υπάρχει το 11 στη λίστα των 10 στοιχείων και να επιστραφεί η θέση του σε αυτή ή ο αριθμός 0 αν δεν υπάρχει. 5
ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ Βήμα 1: 5 6 8 11 0 3 7 0 100 29 Βήμα 2: j=1 11!= 5 5 6 8 11 0 3 7 0 100 29 j=2 11!= 6 6
ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ Βήμα 3: 5 6 8 11 0 3 7 0 100 29 j=3 11!= 8 Βήμα 4: 5 6 8 11 0 3 7 0 100 29 j=4 11 = 11 7
ΠΧΠ() Πολυπλοκότητα Χειρότερης Περίπτωσης: Στη χειρότερη περίπτωση η επανάληψη θα εκτελεστεί φορές. Αυτό συμβαίνει είτε όταν το x δεν είναι στη λίστα είτε όταν x=l(). Βασική πράξη: Σύγκριση Στη χειρότερη περίπτωση εκτελούνται συγκρίσεις. Επομένως: ΠΧΠ()= συγκρίσεις 8
ΠMO() Γενικός Κανόνας Για να βρω την Πολυπλοκότητα Μέσου Όρου πρέπει να θεωρήσω όλες τις δυνατές περιπτώσεις τερματισμού και να υπολογίσω την πιθανότητα που υπάρχει να συμβεί η καθεμιά. Γενικά οι πιθανότητες θα δίνονται. Αν Π i είναι η i-στη περίπτωση τερματισμού τότε πρέπει να ισχύει p( i) 1 i 9
ΠMO() Αν η i-στη περίπτωση τερματισμού Π i ενός αλγορίθμου απαιτεί την εκτέλεση t(π i ) εντολών και συμβαίνει με πιθανότητα p(π i ) τότε η ΠΜΟ() του αλγορίθμου θα είναι: ( ) p( i) t( i i ) 10
ΠMO() ΔΙΑΔΟΧΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Υπόθεση: Έστω ότι η πιθανότητα να είναι το x στη λίστα είναι q και όλες οι περιπτώσεις όπου x=l(i) είναι ισοπίθανες. Βήματα: 1. Υπάρχουν +1 περιπτώσεις τερματισμού ( περιπτώσεις επιτυχίας και 1 περίπτωση αποτυχίας). Περιπτώσεις επιτυχίας Π i με i=1,..,: ισχύει ότι x=l(i) με πιθανότητα p(π i )=q/. Περίπτωση απoτυχίας Π +1 : ισχύει ότι x δεν είναι σε λίστα με πιθανότητα 1-q. 11
12 ΠMO() ΔΙΑΔΟΧΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ 2. Ελέγχω αν ισχύει Πράγματι 3. Ισχύει ότι t(π i )=i, i=1,.., και t(π +1 )=. Επομένως: i q q q i q 1 ) (1 2 1) ( ) (1 () i 1 ) p( i i i q q q p 1 1 i 1 1 1 ) (
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ Πρόβλημα Δίνονται ο φυσικός αριθμός, τα διατεταγμένα στοιχεία με αύξουσα σειρά x 1, x 2,, x και ένα στοιχείο x του ίδιου τύπου με τα x i. Ζητείται να βρεθεί αν υπάρχει το x στη λίστα των στοιχείων και να επιστραφεί η θέση του σε αυτή ή ο αριθμός 0 αν δεν υπάρχει. 13
ΑΛΓΟΡΙΘΜΟΣ Αλγόριθμος Δυαδικής Αναζήτησης Είσοδος: 1, πίνακας L μήκους με L(i)=x i και L( 1) L( ) όπου i=1.., και στοιχείο x. Έξοδος: θέση j στον πίνακα L αν L(j)=x, αλλιώς j=0. Ψευδοκώδικας: k=0 m= while (k<=m) do j=(k+m)/2 if x=l(j) the retur j if x<l(j) the m=j-1 else k=j+1 ed retur j=0 14
ΠΑΡΑΔΕΙΓΜΑ Πρόβλημα Δίνονται ο φυσικός αριθμός 10, τα 10 στοιχεία 5, 6, 8, 11, 12, 30, 70, 90, 100, 129 και ο αριθμός 11. Ζητείται να βρεθεί αν υπάρχει το 11 στη λίστα των 10 στοιχείων και να επιστραφεί η θέση του σε αυτή ή ο αριθμός 0 αν δεν υπάρχει. 15
ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ Βήμα 1: 5 6 8 11 12 30 70 90 100 129 k=0 j=5 11 < 12 m=10 Βήμα 2: 5 6 8 11 12 30 70 90 100 129 k=0 j=2 11 > 6 m=4 16
ΕΦΑΡΜΟΓΗ ΑΛΓΟΡΙΘΜΟΥ Βήμα 3: 5 6 8 11 12 30 70 90 100 129 k=3 j=3 11>8 m=4 Βήμα 4: 5 6 8 11 12 30 70 90 100 129 m=4 k=4 j=4 11=11 17
ΠΧΠ() Χειρότερη Περίπτωσης:Το x δεν είναι στη λίστα ή το x βρίσκεται, αφού φτάσω σε υπολίστα με 1 στοιχείο. Βασική πράξη: Σύγκριση Κάθε σύγκριση ανάγει το πρόβλημα στην αναζήτηση του στοιχείου x σε λίστα μισού μεγέθους σε σχέση με την προηγούμενη. Επειδή, όμως =2 p στη χειρότερη περίπτωση θα γίνουν p=log διασπάσεις της αρχικής λίστας. Επομένως, θα γίνουν log συγκρίσεις. Επομένως: ΠΧΠ()=1+ log συγκρίσεις 18
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Υπάρχουν περιπτώσεις επιτυχίας Ε i με i=1,.., και +1 περιπτώσεις αποτυχίας A i με i=1,..., +1. 19
20 ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ A. Υποθέσεις: 1. Έστω ότι οι περιπτώσεις επιτυχίας έχουν συνολική πιθανότητα q και είναι μεταξύ τους ισοπίθανες: p(ε i )=q/, i=1,.., 2. Δεχόμαστε ότι οι +1 περιπτώσεις αποτυχίας είναι μεταξύ τους ισοπίθανες: p(a i )=(1-q)/(+1), i=1,.., +1. Από τύπο έχω: 1 1 i 1 1 1 i i i i 1 i i i ) ( 1 1 ) ( q ) ( ) ( ) ( ) ( () i i t q t t p t p
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Πρέπει να βρω τα t(e i ) και t(α i ) για κάθε περίπτωση. Απλοποίηση: =2 r -1 για φυσικό αριθμό r > 0. Μοντελοποίηση: 1. Όλες οι διαδρομές που πιθανόν να ακολουθήσει ο αλγόριθμος δίνονται από ένα πλήρες δυαδικό δέντρο βάθους d = r - 1, όπου ο j-στος κόμβος περιέχει δείκτη στη σύγκριση του L(j) με το x. 2. Ένα αριστερό κλαδί ακολουθείται αν x < L(j), αλλιώς ακολουθείται το δεξί κλαδί. Ο αλγόριθμος τερματίζει στον κόμβο j, αν x=l(j). 21
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ 3. Οι περιπτώσεις αποτυχίας διαπιστώνονται μετά από τελευταία σύγκριση. 4. Οποιαδήποτε διαδρομή από τη ρίζα στο τελευταίο επίπεδο περνά από d+1=r κόμβους. Επομένως, έχουμε t(a i )=r συγκρίσεις για κάθε περίπτωση αποτυχίας. 5. Η περίπτωση επιτυχίας Ε i διαπιστώνεται, όταν γίνει η σύγκριση σε κόμβο i. 22
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Επίπεδα 0 L(i)=L(2 r-1 ) 1 L(2 r-2 ) L(3*2 r-2 ) 2 L(2 r-3 ) L(3*2 r-3 ) L(5*2 r-3 ) L(7*2 r-3 ) 23
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Περιπτώσεις Επιτυχίας: 1. Υπάρχει μια περίπτωση που απαιτεί 1 σύγκριση (i=(+1)/2). 2. Υπάρχουν δυο περιπτώσεις που απαιτούν 2 συγκρίσεις η καθεμιά (i=(+1)/4 και i=3(+1)/4). 3. Γενικά σε όλα τα επίπεδα k=0,,d υπάρχουν 2 k δείκτες i, δηλαδή 2 k περιπτώσεις Ε i που απαιτούν k+1 συγκρίσεις η καθεμιά. Επομένως: r1 r k j1 r t( i) ( k 1)2 j2 ( r 1)2 1 i1 k0 j1 24
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Περιπτώσεις Aπoτυχίας: Είδαμε ότι t(a i )=r, δηλαδή 1 i1 t( i ) ( 1) r q r 1 q Επομένως: ( ) [( r 1)2 1] [( 1) r] 1 Όμως r log 1 Οπότε q q ( ) log log (1 q) ( log ) 25
ΠΜΟ() ΔΥΑΔΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ Αν όλες οι 2+1 περιπτώσεις είναι ισοπίθανες τότε p(e i )=q/=1/(2+1) και p(α i )=(1-q)/(+1)=1/(2+1) 1 2 Οπότε, ( ) log 26
ΧΡΗΜΑΤΟΔΟΤΗΣΗ Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 27
ΣΗΜΕΙΩΜΑ ΙΣΤΟΥΡΙΚΟΥ ΕΚΔΟΣΕΩΝ ΕΡΓΟΥ Το παρόν έργο αποτελεί την έκδοση 1.0. 28
ΣΗΜΕΙΩΜΑ ΑΝΑΦΟΡΑΣ Copyright Πανεπιστήμιο Πατρών, Δημήτριος Κουκόπουλος. «Σχεδίαση και Ανάλυση Αλγορίθμων. ΑΛΓΟΡΙΘΜΟΙ ΑΝΑΖΗΤΗΣΗΣ». Έκδοση: 1.0. Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/culture109/. 29
ΣΗΜΕΙΩΜΑ ΑΔΕΙΟΔΟΤΗΣΗΣ Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commos Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommos.org/liceses/by-c-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 30
ΔΙΑΤΗΡΗΣΗ ΣΗΜΕΙΩΜΑΤΩΝ Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 31