771 Η - Θεωρία Υπολογισµών και Αλγορίθµων Σηµειώσεις Μέρος 1 ο ιδάσκων: Το παρόν αποτελεί σηµειώσεις που αντιστοιχούν σε µέρος των διαλέξεων για το µάθηµα 771 Η - Θεωρία Υπολογισµών και Αλγορίθµων του Τµήµατος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Αριστοτέλειου Πανεπιστήµιου Θεσσαλονίκης. Το υλικό των διαλέξεων και των σηµειώσεων στηρίζεται σε µεγάλο βαθµό στην ύλη του βιβλίου: Harry R. Lewis and hristos H. Papadimitriou, Elements of the Theory of omputation, 2nd edition, Prentice Hall, 1998. 1
Σύνολα Σχέσεις Συναρτήσεις Αλγόριθµοι Γλώσσες Ορισµοί, Ιδιότητες Σύνολα ορισµός, αναπαράσταση Σύνολο: συλλογή αντικειµένων Παραδείγµατα: {a, b, c} {a, c, b} {1, {x,y}, x, y, z} {x/x έχει την ιδιότητα P} {x/x είναι θετικός ακέραιος >18} {19,20,21,...} το πλήθος των στοιχείων του πληθικός αριθµός 2
3 Σύνολα βασικές πράξεις } / { x x x OR } / { x x x ND } / { x x x ND 2 Α {το σύνολο µε στοιχεία όλα τα υποσύνολα του } π.χ., 2 {a,b} {{a,b},{a},{b}, } Σύνολα ιδιότητες βασικών πράξεων ' Morgan De ή ή ή επιµεριστικ προσεταιριστικ µεταθετικ
Σύνολα διαµερίσεις Βοηθητικοί ορισµοί S { x / S : x } S { x / S : x } π.χ. S {{ a, b},{ b, c},{ b, d}} S { a, b, c, d} S { b} Το Π είναι διαµέριση του Α όταν: Α Π 2 Π K, L Π Π K L Σχέσεις και Συναρτήσεις ιατεταγµένο ζεύγος: a, b b, a " a, b c, d" " a c b ND d" ιατεταγµένη n-άδα: a1, a2,..., an Καρτεσιανό γινόµενο: 1 2... n { x1, x2,..., xn / xi i, i 1,..., n} π.χ. { a, b} {0,1,2} { a,0, a,1, a,2, b,0, b,1, b,2} 4
Σχέσεις ιαδική σχέση, R, στα, µε αυτή τη σειρά!: οποιοδήποτε υποσύνολο R του x n-πλή σχέση, R, στα 1, 2,, n µε αυτή τη σειρά!: οποιοδήποτε υποσύνολο R του 1 x 2 x x n Αντίστροφη σχέση της R: R -1 { y,x / x,y R } x Συναρτήσεις Συνάρτηση f από το στο : Γράφουµε f : Ορισµός: Η f είναι οποιαδήποτε διαδική σχέση τέτοια 1 1 ώστε: a 1 a, b f 1 : " 1 και µ όνο Πεδίο ορισµού: Πεδίο τιµών: f{b/b και a,b f } Προβολή του 1 : f 1 {b/b και a,b f µε a 1 } 1" 5
Συναρτήσεις πολλών µεταβλητών f: 1 x 2 x x n Γράφουµε: fa 1,a 2,, a n b a 1,a 2,, a n : ορίσµατα b: τιµή Ειδικές Συναρτήσεις ένα προς ένα 1-1 a 1 a 2 συνεπάγεται fa 1 fa 2 επί f αντιστοιχία bijection 1-1 και επί f -1 f 6
Ειδικοί τύποι διαδικών σχέσεων R έχονται αναπαραστάσεις µέσω κατευθυντικών γράφων a c b d { a, b, c, d} R { a, b, b, a, a, c, d, b, c, c} Μονοπάτι a 1,a 2,..,a n µήκους n: a i,a i+1 R Ειδικοί τύποι διαδικών σχέσεων Ιδιότητες ανακλαστική σχέση: a, a R, a συµµετρική σχέση: a, b R b, a R Οι συµµετρικές σχέσεις αναπαρίστανται µε µή κατευθυντικούς γράφους a b a b c d c d 7
Ειδικοί τύποι διαδικών σχέσεων Ιδιότητες αντισυµµετρική σχέση: µεταβατική σχέση: σχέση ισοδυναµίας: a, b R & a b b, a R a, b R & b, c R a, c R ανακλαστική & συµµετρική & µεταβατική σχέση µερικής διαµέρισης: ανακλαστική & αντισυµµετρική & µεταβατική σχέση ολικής διαµέρισης: µερική διαµέριση & a, b a, b R ή b, α R Ιδιότητες σχέσεων ισοδυναµίας κλάση ισοδυναµίας [a]: Το υποσύνολο των στοιχείων του που σχετίζονται είναι ισοδύναµα µε το a Θεώρηµα: Αν η R είναι σχέση ισοδυναµίας στο Α τότε το σύνολο των κλάσεων ισοδυναµίας της, Π, αποτελεί διαµέριση του. Απόδειξη: είχνουµε ότι: Π 2 Π Α K, L Π K L Π 8
Πεπερασµένα σύνολα και απειροσύνολα τα σύνολα Α,Β είναι ισοπληθή όταν: υπάρχει αντιστοιχία f: το σύνολο είναι πεπερασµένο: υπάρχει αντιστοιχία f: {1,2,3,...,n} για κάποιο n N Nφυσικοί αριθµοί τότε n το σύνολο είναι απειροσύνολο: δεν είναι πεπερασµένο το απειροσύνολο είναι µετρήσιµο: Υπάρχει αντιστοιχία f: N δηλ. υπάρχει τρόπος απαρίθµησης των στοιχείων του η µέθοδος της πλακόστρωσης Τρείς µέθοδοι απόδειξης -1 Η αρχή της µαθηµατικής επαγωγής αν 0 και {0,1,2,...,n} Α τότε n+1 πρακτικά τη χρησιµοποιούµε για {n / η πρόταση P είναι αληθής για τον αριθµό n } δείχνουµε ότι 0 δηλ. η P αληθεύει για το 0 υποθέτουµε ότι {0,1,2,...,n} Α δηλ. ότι η P αληθέυει για 0,1,,n µε βάση τα παραπάνω αποδεικνύουµεότικαιτοn+1 δηλ. η P αληθεύει για το n+1 9
Τρείς µέθοδοι απόδειξης -2 Η αρχή της φωλιάς των περιστεριών αν τα σύνολα και είναι πεπερασµένα και > τότε δεν υπάρχει 1-1 f: δηλ. αν είναι τα περιστέρια και οι φωλιές, σε κάποια φωλιά θα κοιµηθούν περισσότερα του ενός περιστέρια. Απόδειξη: µε τη µέθοδο της επαγωγής Τρείς µέθοδοι απόδειξης -3 Η αρχή της διαγωνιοποίησης Εστω: R διαδική σχέση στο σύνολο D {a : a και a,a R} διαγώνιο σύνολο της R στο Α R a {b : b και a,b R}, για κάθε a Τότε: το D είναι διαφορετικό από κάθε R a R a b c d e f Επίδειξη: a o x x Ra {b,d} b x x c x d x x o x x e x x Rb {b,c} Rc {c} Rd {b,c,e,f} Re {e,f} f x x x x o Rf {a,c,d,e} Dc {b,c,e} D{a,d,f} 10
Κλειστότητα και Ιδιότητες Κλειστότητας Ορισµοί: 1. Έστω: σύνολο D, n 0, σχέση R D n+1, D Τότε: κλειστό ως προς την R όταν: b 1, b 2,, b n και b 1, b 2,, b n, b n+1 R b n+1 2. Κάθε ιδιότητα του τύπου το είναι κλειστό ώς προς τις σχέσεις R 1, R 2,,R m λέγεται ιδιότητα κλειστότητας Παραδείγµατα Κλειστότητας #1: οπρόγονοςτου πρόγονου είναι πρόγονος {x/x πρόγονος του Νίκου} D{άνθρωποι} R{a,b: b γονιός του a} Τότε το είναι κλειστό ως προς την R Απόδειξη: Αν a και a,b R b γονιός του a b πρόγονος του a b πρόγονος του Νίκου γιατί; #2: Και οι σχέσεις είναι σύνολα! R ο σχέση στο R ο D R{a,b,b,c,a,c: a,b,c } Η R ο είναι κλειστή ως προς την R αν και µόνο αν η R ο είναι µεταβατική! Αποδείξτε το! 11
Κλείσιµο συνόλων Θεώρηµα: Έστω 1 P ιδιότητα κλειστότητας από τις σχέσεις R 1,,R m σε σύνολο D και 2 Α D. Τότε υπάρχει µοναδικό ελάχιστο σύνολο µε την ιδιότητα Pδηλ. κλειστό ως προς R 1,,R m. ελάχιστο σύνολο : ΕΝ Β Β µε τις δύο παραπάνω ιδιότητες δηλ. και P Μάλιστα S όπου S{ i / Α i D και i κλειστό ως προς R 1,,R m δηλ. i έχει την ιδιότητα P } Ορισµός: Το παραπάνω ελάχιστο λέγεται κλείσιµο του ως προς την ιδιότητα κλειστότητας P ή ισοδύναµα τις σχέσεις R 1,,R m. Ανακλαστικό+Μεταβατικό Κλείσιµο µιας διαδικής σχέσης R Η διαδική σχέση R είναι ένα σύνολο Α 2 Η ανακλαστική ιδιότητα είναι ιδιότητα κλειστότητας δείξτε το! Η µεταβατική ιδιότητα M είναι ιδιότητα κλειστότητας το δείξαµε... Το κλείσιµο, R*, της R ώς προς ΑΙ και ΜΙ λέγεται Ανακλαστικό+Μεταβατικό Κλείσιµο της R Εναλλακτικά: R*{a,b: υπάρχει µονοπάτι της R από το a στο b} 12
Ανακλαστικό+Μεταβατικό Κλείσιµο µιας διαδικής σχέσης R a b a b c d c d R R* Πολυπλοκότητα Αλγορίθµων µια πρώτη µατιά Ζητούµενο: Πόσα βήµατα χρειάζεται ένας αλγόριθµος για να ολοκληρωθεί; Ισοδύναµο ζητούµενο: Ποια συνάρτηση f:n N αντιστοιχίζει το µέγεθος του προβλήµατος, n, στον αριθµό των βηµάτων, fn, που απαιτούνται; Χρήσιµα εργαλεία: τάξη µεγέθους & ρυθµός αύξησης συναρτήσεων f:n N 13
Τάξη Μεγέθους Ρυθµός Αύξησης Τάξη µεγέθους της f:n N είναι το σύνολο: Of {g/ g:n N και σταθ. c,d: gn cfn+d, n N} f g: f Og και g Of Η είναι σχέση ισοδυναµίας δείξτε το Ρυθµός αύξησης: κάθε κλάση ισοδυναµίας [f] που ορίζεται µεβάσητησχέση Τάξη Μεγέθους Ρυθµός Αύξησης ενδιαφέροντα παραδείγµατα 1 1. fn31n 2 +17n+3 On 2 Απόδειξη: 31n 2 +17n+3 48 n 2 + 3 2. n 2 Of Απόδειξη: n 2 1fn+0 3. Από 1 και 2 : fn n 2 4. f na K n K + + a 1 n+a 0 On K µε cσa i, da 0 5. Αν f na K n K + + a 1 n+a 0 και gnb L n L + + b 1 n+b 0 µε K>L>0 τότε: f Og αλλά g Of f n K και g n L 14
Τάξη Μεγέθους Ρυθµός Αύξησης ενδιαφέροντα παραδείγµατα 2 Για όλα τα K: n K O2 n µε c2κ K και dk 2 K Απόδειξη: 1. n<2 n αποδεικνύεται µε επαγωγή 2. Για n K 2 : n K K 2 K d Για n K 2 : n K 2Κ K 2 n c 2 n Πράγµατι: nπk+υ n< πk+κ n K Κ K π+1 K n K < Κ K 2 π+1 K 2Κ K 2 πκ 2Κ K 2 n Οι συναρτήσεις 5 n, n n, n!, 2 n2 ακόµη µεγαλύτερο ρυθµό αύξησης Αλγόριθµοι Ανακλαστικού/Μεταβατικού Κλεισίµατος ιαδικής Συνάρτησης - Πολυπλοκότητα Αλγόριθµος #1 ο προφανής: Υποθέτουµε ότι η σχέση R 2 όπου {a 1, a 2,,a n } Αρχικοποίηση:R* και n FOR i 1,,n DO FOR EH b 1, b 2,,b i i DO F b 1, b 2,,b i µονοπάτι στην R THEN πρόσθεσε το b 1, b i στην R* Πολυπλοκότητα στη χειρότερη περίπτωση: Για κάθε i ελέγχονται i n i i-αδες b 1, b 2,,b i Οέλεγχος αν είναι µονοπάτι µία i-άδα απαιτεί το πολύ i-1<n ελέγχους για το αν καθέ ζεύγος b j, b j+1 µε j1,..,i-1 ανήκει στην R Άρα fn n n + n 2 + + n n n 2 + n 3 + n n+1 fn On n+1 Καθόλου αποτελεσµατικός άκου On n+1, το On n+1 είναι χειρότερο κι από το O2 n!!! 15
Αλγόριθµοι Ανακλαστικού/Μεταβατικού Κλεισίµατος ιαδικής Συνάρτησης - Πολυπλοκότητα Αλγόριθµος #2 λίγο καλύτερος: Υποθέτουµε ότι η σχέση R 2 όπου {a 1, a 2,,a n } Αρχικοποίηση:R* R {α i, α i / α i } και n WHLE υπάρχουν α i, α j,α k όπου α i, α j, α j,α k R αλλά α i,α k R* DO πρόσθεσε το α i, α k στην R* Πολυπλοκότητα στη χειρότερη περίπτωση: Οέλεγχος υπάρχουν στο εσωτερικό του WHLE απαιτεί το πολύ 3 3 3n 3 συγκρίσεις για i,j,k1 n. Το 3 αφορά τους 3 ελέγχους που απαιτούνται για τον εντοπισµό των διατεταγµένων ζευγών στις R και R* Το WHLE θα εκτελεστεί το πολύ R* 2 n 2 φορές γιατί σε κάθε εκτέλεση προστίθεται και ένα νέο διατεταγµένο ζεύγος στην R*. Άρα fn n 2 3n 3 3n 5 fn On 5 Πολύ καλύτερα! Πολυωνυµική πολυπλοκότητα! Αλγόριθµοι Ανακλαστικού/Μεταβατικού Κλεισίµατος ιαδικής Συνάρτησης - Πολυπλοκότητα Αλγόριθµος #3 πολύ καλύτερος: Υποθέτουµε ότι η σχέση R 2 όπου {a 1, a 2,,a n } Αρχικοποίηση:R* R {α i, α i / α i } και n FOR EH j1,2,,n DO FOR EH i1,2,,n DO FOR EH k1,2,,n DO F α i, α j, α j,α k R* αλλά α i,α k R* THEN DO πρόσθεσε το α i, α k στην R* Πολυπλοκότητα στη χειρότερη περίπτωση: Λόγω των 3 nested FOR LOOPS έχουµε n 3 επαναλήψεις. Το F κάθε επανάληψης απαιτεί 3 ελέγχους διατεταγµένων διάδων Άρα fn 3n 3 fn On 3 Πολυωνυµική πολυπλοκότητα, καλύτερα από πριν. 16
Αλγόριθµοι Ανακλαστικού/Μεταβατικού Κλεισίµατος ιαδικής Συνάρτησης Απόδειξή; Οι τρείς προηγούµενοι αλγόριθµοι είναι ορθοί παράγουν όντως την R* Αποδείξτε το...... ή έστω επιδείξτε το µε ένα παράδειγµα Αλφάβητα και Γλώσσες Οι γλώσσες είναι ένα εργαλείο τυπικής αναπαράστασης α αλγορίθµων και β δοµών δεδοµένων που αυτοί επεξεργάζονται/παράγουν Οι γλώσσες επεξεργάζονται συµβολοσειρές strings αποτελούµενες από σύµβολα που ανήκουν σε κάποιο αλφάβητο 17
Αλφάβητα ορισµοί Αλφάβητο Σ: πεπερασµένο σύνολο συµβόλων Το λατινικό αλφάβητο πεζά {a,b,,y,z} Το διαδικό αλφάβητο {1,0} Συµβολοσειρά string σε ένα αλφάβητο Σ : µια πεπερασµένου µήκους ακολουθία, w, συµβόλων του αλφαβήτου aaabbb, butter, 1010111 Σ* {w/ w συµβολοσειρά του Σ} Το Σ* περιλαµβάνει την κενή συµβολοσειρά e Μήκος συµβολοσειράς, w : butter 6, e 0 Η συµβολοσειρά σαν συνάρτηση: w:{1,2,, w } Σ Π.χ. για wbutter w1b,w2u, w3t,w4t,w5e, w6r Αλφάβητα πράξεις Παράθεση concatenation Για x, y Σ* : xοy για συντοµία xy πρώτατασύµβολα του x και µετάτασύµβολα του y 0101 o 101 0101101 Μήκος: xy x + y Προσεταιριστική: xyz xyz [οπότε γράφουµε xyz] Υποσυµβολοσειρά substring v µίας συµβολοσειράς w: x, y Σ*: wxvy Κατάληξη suffix v µίας συµβολοσειράς w: x Σ*: wxv Πρόθεµα prefix v µίας συµβολοσειράς w: x Σ*: wvx ύναµη w i : w 0 e και w i+1 w i o w 18
Αλφάβητα πράξεις Αντίστροφη συµβολοσειρα w R της w τρείς ισοδύναµοι ορισµοί: 1. w R η w γραµµένη από το τέλος προς την αρχή π.χ. EGGS R SGGE 2. ν we τότε w R we, αν w >0 τότε w R iw w -i+1 3. ν we τότε w R we, αν w n+1>0 τότε a Σ και u Σ* : wua και τότε w R au R. Ιδιότητα:xy R y R x R δείξτε το µε επαγωγή Γλώσσες Γλώσσα L στο αλφάβητο Σ L {w / w Σ* και το w έχει κάποια ιδιότητα P} Σ* Πεπερασµένες Γλώσσες πεπερασµένα υποσύνολα του Σ* Άπειρες Γλώσσες απειροσύνολα υποσύνολα του Σ* Πρόταση: Αν το Σ είναι πεπερασµένο τότε το Σ* είναι αριθµήσιµο Απόδειξη: Το Σ γράφεται Σ{α 1, α 2,..., α n }. Τότε τα στοιχεία του Σ* απαριθµούνται ως εξής: 1 Όλα τα n k στοιχεία µήκους k απαριθµούνται πριν από αυτά µε µήκος k+1. 2 Η απαρίθµιση γίνεται λεξικογραφικά ως προς τους δείκτες i1,2,, n των συµβόλων τους. Π.χ. Σ{α,β} Σ*{e, α, β, αα, αβ, βα, ββ, ααα, ααβ, αβα, αββ, βαα, βαβ, ββα, βββ, αααα...} 19
Γλώσσες - Πράξεις Οι Γλώσσες έχουν όλες τις πράξεις συνόλων και επιπλέον: Παράθεση: LL 1 ol 2 ή απλά LL 1 L 2 LL 1 ol 2 {w/w Σ* και x L 1, y L 2 ώστε wxoy} Kleene star: L* L* {w/ w Σ*: ww 1 ow 2 o ow k για k 0 και w 1,w 2,,w k L} όλες οι συµβολοσειρές που προκύπτουν από παραθέσεις συµβολοσειρών της L περιλαµβανοµένης και της κενής L+ LoL* είναι το κλείσιµο της L ως προς την συνάρτηση παράθεση Πεπερασµένη Αναπαράσταση Γλωσσών Οι πεπερασµένες γλώσσες έχουν έτσι κι αλλοιώς πεπερασµένη αναπαράσταση Οι άπειρες γλώσσες έχουν; ΝΑΙ υπό προϋποθέσεις ΕΝ µπορούν όλες οι γλώσσες ενός αλφαβήτου Σ να αναπαρασταθούν περιγραφούν από πεπερασµένο αριθµό συµβόλων κάποιου αλφαβήτου Σ L, γιατί: Το σύνολο, Σ L *, των δυνατών περιγραφών πεπερασµένου µήκους είναι µετρήσιµο, ενώ Το σύνολο των δυνατών γλωσσών, 2 Σ*, είναι µη µετρήσιµο! 20
Πεπερασµένη Αναπαράσταση Γλωσσών- Κανονικές Γλώσσες Κανονικές Εκφράσεις ΚΕ σε αλφάβητο Σ: το σύνολο των συµβολοσειρών του Σ L Σ {,,,, *} που παράγονται σύµφωνα µε τα παρακάτω: 1. Το και κάθε στοιχείο του Σ είναι ΚΕ 2. Αν οι συµβολοσειρές α και β είναι ΚΕ τότε και το αβ είναι ΚΕ 3. Αν οι συµβολοσειρές α και β είναι ΚΕ τότε και το α β είναι ΚΕ 4. Αν η συµβολοσειρά α είναι ΚΕ τότε α* είναι ΚΕ 5. Οποιαδήποτε συµβολοσειρά ΕΝ προκύπτει από τα 1 ώς 4 ΕΝ είναι ΚΕ Πεπερασµένη Αναπαράσταση Γλωσσών- Κανονικές Γλώσσες Κάθε κανονική έκφραση α περιγράφει µία κανονική γλώσσα Lα Σ* εάν θεωρήσουµε ότι: Το σύµβολο σηµαίνει ένωση γλωσσών Το σύµβολο * σηµαίνει το Kleene star µίας γλώσσας Η τοποθέτηση πλάι-πλάι σηµαίνει παράθεση γλωσσών Οι παρενθέσεις και όρίζουν προτεραιότητα Αναλυτικότερα η γλώσσα Lα παράγεται αναδροµικά ώς εξής: L κενή γλώσσα και La {a} για a Σ Αν α,β ΚΕτότεL αβ LαLβ παράθεση γλωσσών Αν α,β ΚΕτότεL α β Lα Lβ παράθεση γλωσσών ΑναΚΕτότεLα* Lα* Kleene star γλώσσας 21
Πεπερασµένη Αναπαράσταση Γλωσσών- Κανονικές Γλώσσες Παραδείγµατα: #1: Έστω Σ{0,1} και ΚΕ α 0*10*010*10* * τότε: Lα L0* ο L1 ο L0* ο L0 ο L1 ο L0* ο L10* * L0*οL1 ο L0* ο L0 ο L1 ο L0* ο L1 ο L0* L * οι συµβολοσειρές που έχουν 2 ή 3 εµφανίσεις του συµβόλου 1 εκ των οποίων η πρώτη και η δεύτερη δεν είναι συνεχόµενες, π.χ. 000100100, 101100000, αλλά όχι 00011000100 Πεπερασµένη Αναπαράσταση Γλωσσών- Κανονικές Γλώσσες Παραδείγµατα: #2: Σ{a,b} και ΚΕ α a b*a, τότε: Lα La b*ala La b*{a} La Lb*{a} {{a} {b}}*{a} {a,b}*{a} {w/w {a,b}* και w τελειώνει µε a} {οποιαδήποτε παράθεση των a και b που τελειώνει µε a} 22