ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΙΑΚΡΙΤΕΣ ΜΕΘΟ ΟΙ ΓΙΑ ΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ η Γραπτή Εργασία-Ενδεικτικές Λύσεις Επιµέλεια:. Σούλιου Θέµα (Κανονικές Εκφράσεις µονάδα). Να γράψετε κανονικές εκφράσεις για τις γλώσσες: L = { w : w δεν περιέχει την συµβολοσειρά }. { } η L = { w : w περιέχει µία (ακριβώς) εµφάνιση της συµβολοσειράς }. { } η. { } η L = { w : w δεν περιέχει την συµβολοσειρά } Η κανονική έκφραση για την L = ( UUU) ( ε UU ) U Η κανονική έκφραση για την L = ( UUU) ( U U U ) Η κανονική έκφραση για την L = ( ) (Κάθε εµφάνιση της συµβολοσειράς πρέπει να ακολουθείται από τουλάχιστον ένα ενώ δεν υπάρχει κάποιος περιορισµός όταν έχουµε µια ακολουθία από ή µία ακολουθία από που ακολουθείται από κάποια ) Θέµα (Πεπερασµένα Αυτόµατα µονάδες). (α) Να κατασκευάσετε πεπερασµένα αυτόµατα όχι κατ ανάγκη ντετερµινιστικά για τις παρακάτω γλώσσες:. L = { w { } : η w περιέχει τουλάχιστον δύο εµφανίσεις της συµβολοσειράς }. = { w { } : η L w έχει άρτιο αριθµό και δεν περιέχει τη συµβολοσειρά } (β) Να µετατρέψετε τα µη ντετερµινιστικά αυτόµατα των σχηµάτων.α και.β σε ντετερµινιστικά. (γ) Να γράψετε κανονικές εκφράσεις για τις γλώσσες που αναγνωρίζονται από τα πεπερασµένα αυτόµατα του σχήµατος Σχήµα (α) Τα ντετερµινιστικά αυτόµατα για τις γλώσσες L και Lφαίνονται στο παρακάτω σχήµα. Το δεύτερο προκύπτει από την τοµή των αυτοµάτων για τη γλώσσα που περιλαµβάνει τις δυαδικές συµβολοσειρές µε άρτιο πλήθος και για τη γλώσσα που περιλαµβάνει τις δυαδικές συµβολοσειρές που δεν περιέχουν το.
(β) Τα αυτόµατα που προκύπτουν είναι: (γ) Για το αυτόµατο του σχήµατος.α είναι: ( U ) U( U). Για το αυτόµατο του σχήµατος.β είναι: ε U ( U). Για το αυτόµατο του σχήµατος.γ είναι: ( ) ( )) Για το αυτόµατο του σχήµατος.δ είναι: ( U ).. Θέµα (Γραµµατικές. µονάδες). Να διατυπώσετε γραµµατικές χωρίς συµφραζόµενα που παράγουν τις παρακάτω γλώσσες. Αν κάποια γλώσσα είναι κανονική η αντίστοιχη γραµµατική πρέπει να είναι κανονική. m n p. L = { a b c : p m n m n } G = ( V T P ) όπου V = { B C a b c} και P οι κάτωθι κανόνες παραγωγής ac B B bbc C C Cc. = { w { } : η G = V T P όπου { } L w έχει περιττό µήκος και το µεσαίο της σύµβολο είναι } ( ) V = και P οι κάτωθι κανόνες παραγωγής. = { w { } : L το πλήθος των στην w είναι διαφορετικό από το πλήθος των } Πρόκειται για γλώσσα χωρίς συµφραζόµενα που δεν είναι κανονική. G V T ) όπου { B } = = { } V B T και κανόνες παραγωγής ( P πουπροκύπτουν ως εξής: Φτιάχνουµε κανόνες που παράγουν τις συµβολοσειρές µε το ίδιο πλήθος και (και µόνο αυτές): B B B B B Η ιδέα είναι να προσθέσουµε ένα νέο αρχικό σύµβολο µε αποστολή την παραγωγή κάποιων επιπλέον (τουλάχιστον ενός). Τα επιπλέον θα πλαισιώνονται από υποσυµβολοσειρές µε το ίδιο πλήθος και. Έτσι δηµιουργούµε το σύνολο κανόνων
παραγωγής P που παράγει όλες τις συµβολοσειρές όπου το πλήθος των είναι µεγαλύτερο από το πλήθος των και µόνον αυτές: B B B B B Αντίστοιχα δηµιουργούµε το σύνολο κανόνων παραγωγής P που παράγει όλες τις συµβολοσειρές όπου το πλήθος των είναι µεγαλύτερο από το πλήθος των και µόνον αυτές. Από την ένωση των P και P παίρνουµε το ζητούµενο σύνολο κανόνων παραγωγής: B B B B B B B B B B. = { w { } : η G = ( V T P ) όπου { } L w δεν περιέχει συνεχόµενα } V = και P οι κάτωθι κανόνες παραγωγής: n. L = { w : για κάποια n w { } το πλήθος των στην w είναι το πολύ n} Πρόκειται για γλώσσα χωρίς συµφραζόµενα που δεν είναι κανονική. G V T ) όπου V = { } = { } B T και κανόνες παραγωγής P B B B ( P Θέµα (Γλώσσες µονάδες). Ποιές από τις παρακάτω γλώσσες είναι χωρίς συµφραζόµενα; Αν µια γλώσσα δεν είναι χωρίς συµφραζόµενα να το αποδείξετε χρησιµοποιώντας είτε το Λήµµα Άντλησης είτε κάποια ιδιότητα κλειστότητας. Αν µια γλώσσα είναι χωρίς συµφραζόµενα να το αιτιολογήσετε κατάλληλα.. L = { : n n} Είναι γλώσσα χωρίς συµφραζόµενα και η γραµµατική της είναι: G ( V T P ) όπου V = { B} T = { } και P
B B n n n n. L = { : n } Θα αποδείξουµε πως δεν είναι γλώσσα χωρίς συµφραζόµενα χρησιµοποιώντας το λήµµα k k k k άντλησης. Pumping length k. Έστω συµβολοσειρά w= που ανήκει στη γλώσσα. Θεωρούµε συµβολοσειρές u v x y zτέτοια ώστε w= uvxyz. ιακρίνουµε περιπτώσεις: Αν η v είναι µη κενή και αποτελείται από ένα µόνο σύµβολο π.χ. µόνο από τότε η uv xy z L γιατί το πλήθος των στο ένα τµήµα της uv xy zείναι διαφορετικό από το k πλήθος των στο άλλο τµήµα της (π.χ. αν η vαποτελεί συµβολοσειρά του πρώτου η vxy αποτελεί υποσυµβολοσειρά του πρώτου µισού της w επειδή vxy k οπότε το πρώτο µισό της uv xy zέχει λιγότερα µηδενικά από το δεύτερο µισό της). Αντίστοιχη είναι η περίπτωση που η vείναι µη κενή και αποτελείται µόνο από. Χειριζόµαστε την περίπτωση που η y είναι µη κενή και αποτελείται µόνο από ένα σύµβολο αντιστοίχως. ιαφορετικά τουλάχιστον µία από τις u y είναι µη κενή και αποτελείται τόσο από όσο και από. Τότε uv xy z L γιατί στην uv xy zυπάρχουν περισσότερα από δύο σηµεία όπου κάποιο ακολουθείται από κάποιο. v. L = { auabwbcvc : u w v { a b c} u = w = } n n n Παρατηρούµε ότι L I a b c = { a b c : n }. Επειδή η τοµή µιας γλώσσας χωρίς συµφραζόµενα µε µία κανονική γλώσσα είναι γλώσσα χωρίς συµφραζόµενα και η n n n a b c δεν είναι γλώσσα χωρίς συµφραζόµενα δεν είναι ούτε η L.. L = { w { } : η w είναι παλινδροµική και περιέχει το ίδιο πλήθος από και } Θα αποδείξουµε ότι η άπειρη γλώσσα Lδεν είναι γλώσσα χωρίς συµφραζόµενα k k k k χρησιµοποιώντας Λήµµα Άντλησης. Επιλέγουµε w= όπου k το pumping length. Θα αποδείξουµε πως για τις συµβολοσειρές u v x y zτέτοιες ώστε w= uvxyz µε n n vy > και vxy k η συµβολοσειρά uv xy z L για κάθε παρακάτω περιπτώσεις: n N. ιακρίνουµε τις Αν η vy αποτελείται µόνο από (ή αντίστοιχα µόνο από ) τότε uv xy z L γιατί περιέχει διαφορετικό πλήθος από και. Αν η vείναι µη κενή και αποτελείται µόνο από και η yείναι µη κενή και αποτελείται µόνο από (ή αντίστροφα) τότε uv xy z L γιατί δεν είναι παλινδροµική. Αν µία µόνο από τις v yαποτελείται τόσο από όσο και από (η άλλη µπορεί να είναι κενή ή να αποτελείται από ένα µόνο σύµβολο) τότε uv xy z Lγιατί δεν είναι παλινδροµική.
Τέλος παρατηρούµε ότι επειδή µη κενές και να αποτελούνται τόσο από όσο και από. Άρα η γλώσσα δεν είναι γλώσσα χωρίς συµφραζόµενα. uxy k δεν είναι δυνατόν αµφότερες οι vκαι yνα είναι Θέµα (Κανονικές και Μη Κανονικές Γλώσσες. µον.). Είναι κανονικές οι παρακάτω γλώσσες; Αν µια γλώσσα δεν είναι κανονική να το αποδείξετε χρησιµοποιώντας είτε το Λήµµα Άντλησης είτε κάποια ιδιότητα κλειστότητας. Αν µια γλώσσα είναι κανονική να το αιτιολογήσετε κατάλληλα.. Η γλώσσα των προθεµάτων Pref( L ) = { w Σ : υπάρχουν x L y Σ ώστε x= wy} µιας κανονικής γλώσσας L Σ. Με DF Σε ένα DF όλες οι καταστάσεις οι οποίες έχουνε µετάβαση δηλαδή µπορώ από αυτές να φτάσω σε τελική κατάσταση γίνονται τελικές. Εποµένως όλες εκτός από την καταβόθρα µπορούν να γίνουν τελικές. Άρα µπορώ να κατασκευάσω DF. Ή µε κανονικές γραµµατικές Στις κανονικές γραµµατικές σε κάθε µη τερµατικό σύµβολο από το οποίο µπορεί να τερµατίσει η γραµµατική προσθέτω ένα e. Μπορώ έτσι να τη σταµατήσω όποια στιγµή θέλω και να έχω κανονική γραµµατική για τη γλώσσα των προθεµάτων.. L = { : n m Nτέτοιοι ώστε n= mή περιττός} Pumping lemma kεπιλέγω k l k xy z = L k k w= L για κάθε xyz x= l και y= l µε l l k. L = { : n m Nτέτοιοι ώστε n m και άρτιος} Θα χρησιµοποιήσουµε ιδιότητες κλειστότητας κανονικών γλωσσών. Οι κανονικές γλώσσες είναι κλειστές ως προς το συµπλήρωµα και την τοµή. Η τοµή του συµπληρώµατος της L µε την κανονική γλώσσα είναι η γλώσσα όπου n= mή = περιττός δηλαδή η γλώσσα L. Όπως αποδείχθηκε η γλώσσα Lδεν είναι κανονική άρα και η Lδεν είναι κανονική (εφόσον η τοµή της µε κανονική γλώσσα δίνει µη κανονική) και έτσι προκύπτει ότι η L είναι µη κανονική. L x = y και. = { xy : x y { }. x y } Ισχύει πως L I = L όπου L = { : n m N τέτοιοι ώστε n m και άρτιος} Η τοµή µιας κανονικής γλώσσας µε µια επίσης κανονική δίνει κανονική γλώσσα. Άρα η Lδεν µπορεί να είναι κανονική δεδοµένου ότι η L αποδείχθηκε ότι δεν είναι κανονική και η είναι κανονική.. { { } : L = w το πλήθος των στην w είναι διπλάσιο από το πλήθος των}
Θα δείξουµε ότι η άπειρη γλώσσα δεν είναι κανονική µε το λήµµα Άντλησης. Για pumping k k length k παίρνουµε τη συµβολοσειρά w= L. Θεωρούµε σπάσιµο xyz τέτοιο ώστε x= l y= l k ( l l) µε l l k l > εποµένως z = k. Το k l k xy z = L γιατί το πλήθος των δεν είναι διπλάσιο από το πλήθος των.