Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού / 24
Μηχανές Πεπερασµένων Καταστάσεων Πεπερασµένα Αυτόµατα Απλοϊκές µηχανές που δέχονται σαν είσοδο µία συµβολοσειρά. Σε κάθε βήµα υπολογισµού:. ιαβάζουν το επόµενο σύµβολο της συµβολοσειράς εισόδου. 2. Ανάλογα µε την κατάσταση στην οποία ϐρίσκονται... 3.... και ανάλογα µε το σύµβολο που διαβάζουν, µεταβαίνουν σε νέα κατάσταση. Εχουν πεπερασµένο πλήθος καταστάσεων. Εχουν µία αρχική κατάσταση από την οποία εκκινούν. Εχουν µία ή περισσότερες καταστάσεις αποδοσχής. Αποδέχονται την είσοδο, αν στο τέλος του υπολογισµού ϐρίσκονται σε κάποια από αυτές τις καταστάσεις. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24
Παράδειγµα Σύνολο Καταστάσεων: S = { s, s, s 2, s 3 }. Αλφάβητο Εισόδου: Σ = {, }. Αρχική Κατάσταση: s. Σύνολο Καταστάσεων Αποδοχής: F = { s, s 3 }. Συνάρτηση Μεταβάσεων: δ : S Σ S, όπως απεικονίζεται παρακάτω. δ s s s s s s 2 s 2 s s s 3 s 2 s s s, s 2 s 3 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 3 / 24
Πεπερασµένα Αυτόµατα - Αναγνωριστές Γλώσσας Ενα αυτόµατο πεπερασµένων καταστάσεων (πεπερασµένο αυτόµατο): αποτελείται από: M = (S, Σ, δ, s, F) Πεπερασµένο Σύνολο Καταστάσεων Πεπερασµένο Αλφάβητο Εισόδου Συνάρτηση Μεταβάσεων Αρχική Κατάσταση Σύνολο Καταστάσεων Αποδοχής S Σ δ : S Σ S s S F S Κάθε λέξη εισόδου που αποδέχεται το αυτόµατο ανήκει στη γλώσσα που αναγνωρίζει. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 4 / 24
Παράδειγµα () Ποιά γλώσσα αναγνωρίζει το παρακάτω πεπερασµένο αυτόµατο;, s s Μερικές δοκιµές µε εισόδους: : s s (αποδοχή) : s s s s s (µη αποδοχή) : s s s s s (µη αποδοχή) : s s s s s (αποδοχή) Αποδέχεται τη γλώσσα { k : k N } (όσο η είσοδος αποτελείται από τερµατίζει σε κατάσταση αποδοχής). Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 5 / 24
Παράδειγµα (2) Ποιά γλώσσα αναγνωρίζει το παρακάτω πεπερασµένο αυτόµατο; s s s 2, s 3, Αν η είσοδος είναι απλώς, µεταβαίνει στην s 2 και αποδέχεται. Αν όµως το ακολουθείται από οποιαδήποτε υπολέξη, µεταβαίνει και «παγιδεύεται» στην s 3. Αν η είσοδος είναι, µεταβαίνει στην s, κατόπιν στην s 2 και αποδέχεται. εν αποδέχεται οποιαδήποτε άλλη λέξη εισόδου, άρα L(M) = {, }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 6 / 24
Παράδειγµα (3) Ποιά γλώσσα αναγνωρίζει το παρακάτω πεπερασµένο αυτόµατο; s s s 2 s 3,, Τερµατίζει σε κατάσταση αποδοχής όσο «καταναλώνει» στην είσοδο. Εφόσον διαβάσει, µεταβαίνει σε άλλες καταστάσεις που δεν είναι αποδοχής, χωρίς επιστροφή. Εποµένως, L(M) = { k : k N } = {}. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 7 / 24
Παράδειγµα (4) Ποιά γλώσσα αναγνωρίζει το αυτόµατο; q q 2 q 3 Τη γλώσσα των λέξεων που περιέχουν τουλάχιστον ένα και τερµατίζουν µε άρτιο πλήθος. (επαληθεύστε το), Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 8 / 24
Παραδείγµατα Σχεδιασµού Αυτοµάτων Για καθεµία από τις ακόλουθες γλώσσες, να σχεδιαστεί πεπερασµένο αυτόµατο που την αναγνωρίζει. Γλώσσα: Το σύνολο των δυαδικών συµβολοσειρών που: (α) αρχίζουν µε. (β) περιέχουν δύο συνεχόµενα. (γ) δεν περιέχουν δύο συνεχόµενα. (δ) τελειώνουν µε. (ε) περιέχουν τουλάχιστον δύο. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 9 / 24
Παραδείγµατα Σχεδιασµού Αυτοµάτων (/2) (α) s 3,, s s s 2, (β) s s s 2, (γ) s s s 2 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού / 24
Παραδείγµατα Σχεδιασµού Αυτοµάτων (2/2) (δ) s s s 2 (ε), s s s 2 Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού / 24
Μετατροπή Αυτοµάτου σε Γραµµατική Τύπου 3 Για κάθε κατάσταση s k εισάγουµε µη τερµατικό σύµβολο A k. Για την αρχική κατάσταση s : εισάγουµε αρχικό µη τερµατικό σύµβολο S. Αν η αρχική κατάσταση είναι και αποδοχής, εισάγουµε κανόνα S ɛ. Για κάθε µετάβαση από την s k στην s l µε ανάγνωση συµβόλου α: Αν η s l είναι αποδοχής, εισάγουµε κανόνες: A k α, A k αa l Αν η s l δεν είναι αποδοχής, εισάγουµε κανόνα: A k αa l Συµβολισµός: Για δύο ή περισσότερους κανόνες µε ίδιο αριστερό µέλος π.χ., A αb, A βb, γράφουµε: A αb βb Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24
Παραδείγµατα Μετατροπής σε Γραµµατική Τύπου 3 (/2) C,, S A B S A C B B B A C B C C C, S A B, S A B S S A A S B B B B S A S ɛ A B S B B B Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 3 / 24
Παραδείγµατα Μετατροπής σε Γραµµατική Τύπου 3 (2/2) S A B S A S B S B A S B, S A B S S A A A B B B B Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 4 / 24
Κανονικές Γλώσσες Παράγονται από Κανονικές Γραµµατικές (Τύπου 3). Αναγνωρίζονται από Πεπερασµένα Αυτόµατα. εν αναγνωρίζουν µη κανονικές γλώσσες (π.χ., µε συµφραζόµενα). Περιγράφονται από Κανονικές Εκφράσεις. Αποδεικνύεται ότι οι τρεις αυτοί µηχανισµοί είναι ισοδύναµοι. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 5 / 24
Κανονικές Εκφράσεις Συντακτική περιγραφή Κανονικών Γλωσσών, µε Κανονικές Πράξεις: Παράθεση ( ): παράθεση συµβόλων/λέξεων/εκφράσεων Σώρευση ( ): «επανάληψη καµία ή περισσότερες ϕορές» Ενωση ( ): λογικό «ή» µεταξύ συµβόλων/λέξεων/εκφράσεων Παράδειγµα: Οι λέξεις που αρχίζουν µε ή και συνεχίζονται µε κανένα ή περισσότερα. ( ) Συνήθως παραλείπουµε το της παράθεσης: ( ). Πρακτική Αξία: αναζήτηση προτύπων (ptterns) κειµένου. Υποστηρίζονται από όλες τις σύγχρονες γλώσσες προγραµµατισµού. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 6 / 24
Κανονικές Εκφράσεις Ορισµός. Η R είναι κανονική έκφραση, αν είναι της µορφής: Μορφή Επεξήγηση Γλώσσα L(R) α, α σύµβολο ενός αλφαβήτου Σ, {α} ɛ, {ɛ}, R R 2, R, R 2 κανονικές εκφράσεις, L(R ) L(R 2 ) (R R 2 ), R, R 2 κανονικές εκφράσεις, L(R ) L(R 2 ) (R ), R κανονική έκφραση, [L(R )] Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 7 / 24
Κανονικές Εκφράσεις Επιπλέον Πράξεις για ιευκόλυνση Επανάληψη µιας έκφρασης µία ή περισσότερες ϕορές: Αν Σ = { α, α 2,..., α n }: (R) + = R(R) Προτεραιότητα Κανονικών Πράξεων: χρησιµοποιούµε Σ αντί της 2 n Υψηλότερη έχει η ( ), χαµηλότερη η. Χρησιµοποιούµε παρενθέσεις για οµαδοποίηση, όποτε χρειάζεται, ή όποτε αµφιβάλλουµε. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 8 / 24
Παραδείγµατα για αλφάβητο Σ = {, } = { w η w περιέχει ακριβώς ένα }. Σ Σ = { w η w περιέχει τουλάχιστον ένα }. Σ Σ = { w η w περιέχει ως υπολέξη τη }. ( + ) = { w τουλάχιστον ένα ακολουθεί κάθε στην w }. (Σ Σ) = { w : w είναι άρτιος }. (Σ Σ Σ) = { w : w είναι πολλαπλάσιο του 3 }. = {, }. Σ Σ = { w η w αρχίζει & τελειώνει µε το ίδιο σύµβολο }. ( ɛ) =. ( ɛ)(ɛ ) = { ɛ,,, }. =. = { ɛ }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 9 / 24
Παραδείγµατα µε Κανονικές Γλώσσες Για καθεµία από τις γλώσσες, να σχεδιαστούν: αυτόµατο, κανονική γραµµατική, κανονική έκφραση.. L = { w {, } : η w αρχίζει µε ή τελειώνει µε }. 2. L 2 = { w {, } : η w έχει το πολύ δύο }. 3. L 3 = { w {, } : w αρχίζει και τελειώνει µε το ίδιο σύµβολο. }. 4. L 4 = { w {, } : η w δεν έχει τρία ή περισσότερα συνεχόµενα }. Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24
Παράδειγµα A, S B C Κανονική Γραµµατική: S A B A A A B B C C C B Κανονική Εκφραση: ({, } ) ({, } ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 2 / 24
Παράδειγµα 2 S A B C, Κανονική Γραµµατική: S S A ɛ A A B B B C C C C Κανονική Εκφραση: ( ) ( ) ( ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 22 / 24
Παράδειγµα 3 S A C B D Κανονική Γραµµατική: S A C A A B B A B C C D D C D Κανονική Εκφραση: ({, } ) ({, } ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 23 / 24
Παράδειγµα 4 S A B C, Κανονική Γραµµατική: S S A ɛ A S B B S C C C C Κανονική Εκφραση: [ () ()] ( ɛ) Ο. Τελέλης Πανεπιστήµιο Πειραιώς Θεωρία Υπολογισµού 24 / 24