HY 280 «ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΟΥ» θεμελικές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ Γεώργιος Φρ. Γεωργκόπουλος μέρος Α Εισγωγή, κι η σική θεωρί των πεπερσμένων υτομάτων.
Α ΜΕΡΟΣ ΑΣΚΗΣΕΙΣ ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ & ΟΜΑΛΕΣ ΓΡΑΜΜΑΤΙΚΕΣ Τ ερωτήμτ είνι πλά κι με λυμμέν πρδείγμτ. Προσπθείστε ν δώσετε τ περισσότερ που μπορείτε. Βθμολογικά θ μετρήσουν τ εξής: το πόση «ύλη» κλύψτε, (με στόχο πάνω πό το 70%, κι έν τουλάχιστον υπο ερώτημ πό κάθε ερώτημ), η ποιότητ των πντήσεων (ζητείτι σφήνει, κρίει, εξηγήσεις, κι «σωστή γλώσσ»/ορολογί). Η διορί πράδοσης είνι: στο μάθημ της 23 ης / 11 ου / 2015 (#1) ΟΜΑΛΕΣ ΓΡΑΜΜΑΤΙΚΕΣ: Το εάν μι γρμμτική είνι ομλή ή όχι, φίνετι στην μορφή της, στον τρόπο με τον οποίο είνι γρμμένη: πρέπει (i) τ πργωγικά σύμολ («κεφλί») ν μεττρέποντι μόνον σε μι λέξη λ πό τερμτικά σύμολ («πεζά»), κολουθούμενη πό κριώς έν πργωγικό σύμολο, ή κνέν. ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: Ποιές πό τις εξής γρμμτικές είνι ομλές; I Κ Κ Λ Μ Λ Κ Μ γ Μ Λ I Κ Κ Λ Κ Λ γ Κ Μ γ Μ Λ I Κ Κ Λ Μ Λ Κ Μ Λ Ι I Λ Κ γ Λ γ γ Κ Λ Μ Μ γ Λ () () (γ) (δ) () Είνι ομλή: τηρούντι οι κνόνες μορφής: ριστερά του έχουμε =1 πργωγικό σύμολο, κι δεξιά μι λέξη (λ.χ. ) κι κριώς 1 ή 0 πργωγικά σύμολ. Προσέξτε ότι ένς κνόνς «Χ» περιέχει (τρόπος του λέγειν) την κενή λέξη κι κνέν (επόμενο) πργωγικό σύμολο. () Είνι ομλή. Προσέξτε ότι δεν μς πειράζει που δεν περιέχει πλειφές της μορφής Χ πλά η γρμμτική δεν πράγει κμμί λέξη (δηλδή δεν πράγει ούτε κάν την κενή λέξη, δηλδή πράγει την κενή γλώσσ). (γ) Δεν είνι ομλή. Ο 2 ος κνόνς δεν έχει έν (κι κριώς) πργωγικό σύμολο ριστερά του. (δ) Δεν είνι ομλή. Ο 4 ος κνόνς έχει τ τερμτικά σύμολ μετά το πργωγικό. Θ πρέπει ν είνι πντού πριν πό υτό (ή πντού μετά, λλά όχι τ δύο νάμεικτ). ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#1) (1) Ποιές πό τις εξής γρμμτικές είνι ομλές; I γ Λ I Μ I γ Λ I Κ Κ Μ Κ Ι γ Κ Λ Μ Κ γ Κ Λ Κ Λ γ γ Κ Λ Λ Ι Κ Λ γ Κ γ Μ Ι Λ Μ Κ Μ Λ Ι (1.1) (1.2) (1.3) (1.4) (#2) ΟΜΑΛΕΣ ΓΛΩΣΣΕΣ ΚΑΙ ΚΛΕΙΣΤΟΤΗΤΑ: Το εάν μι γλώσσ είνι ομλή ή όχι, εξρτάτι πό το εάν μπορούμε ή όχι ν ρούμε μι ομλή γρμμτική που ν την πράγει. Στις πλές περιπτώσεις υτό το κάνουμε «κτ ευθείν». Στις πιο σύνθετες χρησιμοποιούμε τους κνόνες κλειστότητς.
ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: Δείξτε ότι οι εξής γλώσσες Λ (επί του Σ = {,, γ } ν δεν δίδετι κάτι άλλο) είνι ομλές: () Λ = «όλες οι λέξεις που περιέχουν ως υπόλεκτο το» () Λ = «όλες οι λέξεις που _δεν_ περιέχουν το υπόλεκτο» (γ) Λ = «όλες οι λέξεις που _ν_ περιέχουν το γ τότε περιέχουν κι το γ» (δ) Λ = «οι λέξεις που έχουν την μορφή μις σειράς φυσικών δεκδικών ριθμών ( 1), χωρισμένων με πύλες κι εγκλεισμένων σε γκύλες, π.χ. [ 23 45 6 12 ]» (ε) Λ = «οι δεκδικοί γρμμένοι σε επιστημονική γρφή, λ.χ. 0.314159Ε+2» Έστω ότι μι γλώσσ L επί του λφήτου Σ είνι ομλή, κι Μ Σ*. Δείξτε ότι κι οι εξής γλώσσες θ είνι ομλές: (στ) Πρόθεμ(L) { λ: λ L, κι υπάρχει τέλος τ Σ* γι τη λ ώστε λ τ L } (ζ) Maximum(L) { λ: λ L, κι γι κάθε επέκτση τ Σ* της λ (τ ), λ τ L } () Η πιο πλή κι θεμελική περίπτωση: Λ = Σ* {} Σ*, δηλδή η πράθεση τριών προφνώς ομλών γλωσσών. () Η χρησιμότητ της «άρνησης» ή «συμπληρώμτος»: πίρνουμε την γλώσσ που έχει το υπόλεκτο κι εξ υτής το συμπλήρωμ: Λ = Σ* (Σ* {} Σ*). (γ) Αυτό είνι πιο πονηρό: πιτεί πλά στοιχεί προτσικού λογισμού: έχουμε την συνθήκη (P Q), όπου P = «περιέχει γ», Q = «περιέχει γ». Επειδή η έκφρση (P Q) ισοδυνμεί με την έκφρση ( P Q) έχουμε ισοδυνάμως την ένωση [(δεν «έχει γ») ή «έχει γ»]. Έστω οι γλώσσες Λγ = (Σ* {γ} Σ*), Λγ = (Σ* {γ} Σ*), κι Λ = (Σ* Λγ) Λγ. Οι Λγ, Λγ είνι εμφνώς ομλές κι το ζητούμενο γι την προκύπτει πό την κλειστότητ ως προς συμπλήρωμ «Σ*», κι την ένωση. Στ πρπάνω εφρμόζουμε κυρίως τους κνόνες κλειστότητς ως προς τομή, ένωση, συμπλήρωμ, γι ν νλύσουμε τις ιδιότητες που έχουν οι λέξεις της γλώσσς. Έχουμε όμως στη διάθεσή μς κι τους «γρμμτικούς» κνόνες κλειστότητς ως προς πράθεση, επνάληψη κι κτοπτρισμό. (δ) Η γλώσσ Φ των φυσικών δεκδικών είνι (εύκολ) ομλή, κι μι σειρά σν την πρπάνω ρχίζει με [ Φ (πράθεση) συνεχίζει με μι όριστη επνάληψη ( Φ )* κι τελειώνει με ]. Η όλη γλώσσ είνι ομλή πό την κλειστότητ ως προς πράθεση κι όριστη επνάληψη. (ε) Οι ριθμοί υτοί ποτελούντι πό 7 μέρη: έν προιρετικό πρόσημο, έν κέριο μέρος, μι τελεί, έν δεκδικό μέρος, τον εκθέτη «Ε», έν προιρετικό πρόσημο, κι ένν φυσικό ριθμό. Όλ υτά εκφράζοντι εύκολ με ομλές γλώσσες κι ο όλος ριθμός δίδετι πό την πράθεσή τους. Τ «προιρετικά» μέρη μπορούν ν εκφρστούν πό την κενή λέξη (κι σε επίπεδο υτομάτου) πό κενές μετάσεις. Τέλος, πό την τροποποίηση ενός διγράμμτος μετάσεων, μπορούμε ν πάρουμε κι άλλες ομλές γλώσσες. Τ δύο τελευτί ερωτήμτ πντώντι με υτόν τον τρόπο. (στ) Έστω Α έν υτόμτο που ποδέχετι την Λ, κι Τ το σύνολο των ποδεκτικών κτστάσεων του. Ελέγχουμε κάθε κτάστση Κ γι το εάν υπάρχει διδρομή πό υτήν προς κάποι ποδεκτική κτάστση εντός του Τ, κι εάν νι την σημειώνουμε. Στο τέλος χρκτηρίζουμε κάθε σημειωμένεη κτάστση ως ποδεκτική. (ζ) Έστω Α έν υτόμτο που ποδέχετι την Λ, κι Τ το σύνολο των ποδεκτικών κτστάσεων του. Ελέγχουμε εάν πό μι κτάστση Κ του Τ υπάρχει διδρομή που οδηγεί σε κτάστση του Τ (σε άλλη ή κόμ κι στον ευτό της) κι ν νι τότε την σημειώνουμε. Στο τέλος χρκτηρίζουμε τις σημειωμένες κτστάσεις ως πορριπτικές. ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#2) Δείξτε ότι οι εξής γλώσσες είνι ομλές. (2.1) L = { λ {, }* : η λέξη λ δεν περιέχει το υπόλεκτο, εκτός, ίσως, ν περιέχει το }. (2.2) L = { λ {, }* : η λέξη λ περιέχει άρτιο πλήθος πό κι περιττό πό }. (2.3) Κτάληξη(L) { λ: λ L, κι υπάρχει ρχή Σ* γι τη λ ώστε λ L }
(2.4) L προ M { λ: λ L, κι υπάρχει τ Μ ώστε λ τ L } (#3) ΔΙΑΓΡΑΜΜΑΤΑ ΜΕΤΑΒΑΣΕΩΝ: Σε πλές περιπτώσεις μπορούμε ν σχεδιάσουμε έν διάγρμμ μετάσης ώστε ν δέχετι μι πλή γλώσσ. Σε πλές περιπτώσεις μπορούμε επίσης ν νγνώσουμε έν διάγρμμ μετάσης, κι ν κτλάουμε τί γλώσσ ποδέχετι. ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: () Σχεδιάστε (μέσω διγρμμάτων μετάσης) ιτιοκρτικό υτόμτ τέτοι ώστε ν δέχοντι τις εξής γλώσσες: { λ {, }* : κάθε στην λέξη λ εμφνίζετι μόνον μετά κι πρίν πό έν } () Περιγράψτε (σε πλά κι σφή Ελληνικά) το ποιές γλώσσες επί του Σ = {, } ποδέχοντι τ πρκάτω υτόμτ:, () () () Οι εμφνίσεις των κι νοίγουν κι κλείνουν σν πρενθέσεις, κι δεν έχουμε πάνω πό τρί διδοχικά. () Η μετάση πό την 2 η κτάστση στην 3 η οδηγεί σε πόρριψη, λλά είνι περιττή. Χωρίς υτήν κι την 3 η κτάστση το υτόμτο ποδέχετι κάθε λέξη, φού σε κτάστση διάζει οποιοδήποτε σύμολο, κι όλες οι κτστάσεις του είνι ποδεκτικές. Το υτόμτο ποδέχετι λοιπόν κάθε λέξη πλά δεν χρησιμοποιούμε ποτέ την μετάση πό την 2 η κτάστση στην 3 η. ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#3) (3.1) Σχεδιάστε (μέσω διγρμμάτων μετάσης) ιτιοκρτικά υτόμτ τέτοι ώστε ν δέχοντι τις εξής γλώσσες: (3.1.1) { λ {, }* : η λέξη λ δεν περιέχει ούτε την (υπο)λέξη ούτε την }. (3.1.2) { λ {, }* : η λέξη λ περιέχει άρτιο πλήθος πό κι περιττό πό } (3.2) Περιγράψτε (σε πλά κι σφή Ελληνικά) το ποιές γλώσσες επί του Σ = {, } ποδέχοντι τ πρκάτω υτόμτ: γ (1), γ (2) (#4) Διάγνωση ποδοχή: Γι την ποδοχή μις λέξης πό έν υτόμτο ρκεί ένς ποδκετικός περίπτος στο ντίστοιχο διάγρμμ μετάσεων. Πώς νκλύπτουμε κάτι τέτοιο; Σε πλές περιπτώσεις ρκεί η πρτήρηση. Σε πιο σύνθετες θ πρέπει ν εφρμόσουμε την μέθοδο της επόμενης ενότητς (5).
Κ Μ Κ Τ 2 Ι Λ, Τ Ι Λ, Τ 1 () () ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: () Ελέγξτε εάν το υτόμτο ριστερά, ποδέχετι τη λέξη λ =. () Ελέγξτε εάν το υτόμτο δεξιά, ποδέχετι τη λέξη λ =. () Αρκεί η διδρομή Ι Μ Κ Λ Ι Ι Ι. () Αρκεί η διδρομή Ι Κ Λ Ι Κ Τ2 Τ1 Τ1. ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#4) (4.1) Ελέγξτε εάν το υτόμτο ριστερά, ποδέχετι τη λέξη λ =. (4.2) Ελέγξτε εάν το υτόμτο δεξιά, ποδέχετι τη λέξη λ =. (#5) ΔΙΑΓΝΩΣΗ ΑΠΟΡΡΙΨΗ: Γι ν δείξουμε ότι μι λέξη _δεν_ νήκει σε μι ομλή γλώσσ πρέπει ν πιστοποιήσουμε ότι δεν υπάρχει κμμί διδρομή πό την φετηρική κτάστση σε μι ποδεκτική κτάστση η οποί σχημτίζει υτή την λέξη. Αυτό σημίνει ότι πρέπει ν εξετάσουμε μέ κάποιο ολικό κι σωστό τρόπο όλες τις δυντές διδρομές γι υτή την λέξη. Αυτό είνι πολύ εύκολο στ ιτιοκρτικά υτόμτ, λλά όχι στ μη ιτιοκρτικά. Γι τ δεύτερ ένς τρόπος είνι το ν σημειώνουμε σε κάθε ήμ όλες τις κτστάσεις στις οποίες θ μπορούσμε ν είχμε ρεθεί διάζοντς άλλο έν γράμμ πό την λέξη. Αν στο τέλος θ μπορούσμε ν είχμε φθάσει σε έστω μί ποδεκτική κτάστση τότε κι μόνον τότε η λέξη νήκει στη γλώσσ. ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: Δείξτε ότι το εξής (μη ιτιοκρτικό) υτόμτο _δεν_ ποδέχετι τη λέξη:., γ Τ, γ Ι M Κ γ Λ Γι ν γίνει ποδεκτή η λέξη ρκεί ν υπάρχει έστω ένς περίπτος πό την φετηρική κτάστση Ι σε μι ποδεκτική κτάστση (εδώ την Τ) που ν σχημτίζει υτή τη λέξη. Πρέπει λοιπόν ν δείξουμε ότι δεν υπάρχει κνένς τέτοιος περίπτος άρ θ πρέπει ν ελέγξουμε μεθοδικά όλες τις δυντές διδρομές που θ μπορούσε ν κολουθήσει το υτόμτο. Προς τούτο υπάρχει πλός κι τχύς συστημτικός τρόπος: Σχημτίζουμε ένν πίνκ με τόσες στήλες όσες οι κτστάσεις του υτομάτου, κι τόσες γρμμές όσες μί γι την ρχή κι πό μί γι κάθε σύμολο που θ διάσουμε.
Συμπληρώνουμε την πρώτη γρμμή σημειώνοντς με τις κστάσεις στις οποίες θ μπορούσε ν ρεθεί το υτόμτο φετηρικά δηλδή την φετηρική κι συνεχίζοντς με μί ή περισσότερες κενές μετάσεις. Συμπληρώνουμε κάθε γρμμή που ντιστοιχεί σε σύμολο σ, εξετάζοντς το σε ποιές κτστάσεις θ μπορούσε ν ήτν το υτόμτο (πό την προηγούμενη γρμμή) κι σημειώνοντς όσες θ μπορούσε ν ρεθεί σε υτές διάζοντς σ κι συνεχίζοντς με μί ή περισσότερες κενές μετάσεις. Ελέγχουμε εάν στην τελική γρμμή υπάρχει έστω μί ποδεκτική κτάστση. Στο πράδειγμ θ είχμε τ εξής: Ι Κ Λ Μ Τ ρχή γ : Σημειώνουμε την φετηρική Ι κι την Τ, διότι πό Ι πάμε Τ με κενή μετάση. : Από Ι μέσω πάμε στην Μ κι πό εκεί με κενή στην Λ // Από Τ μέσω στην Τ, κι στη Κ. // Σημειώνουμε τις Κ, Λ, Μ, Τ. : Από Κ μέσω στην Μ κι πό εκεί με κενή/κενές στην Λ // Από Λ μέσω δεν πάμε πουθενά. // Από Μ μέσω δεν πάμε πουθενά // Από Τ μέσω στην Τ κι στην Κ Σημειώνουμε τις Κ, Λ, Μ, Τ. : Από Κ μέσω στην Κ κι στην Ι, κι πό εκεί με κενή στην Τ. // Από Λ μέσω δεν πάμε πουθενά. // Από Μ μέσω δεν πάμε πουθενά. // Από Τ μέσω στην Μ κι πό εκεί με κενή στην Λ. // Σημειώνουμε Ι, Κ, Λ, Μ, Τ (όλες...). : Από Ι μέσω στην Μ κι πό εκεί με κενή στην Λ. // Από Κ μέσω στην Μ κι πό εκεί με κενή την Λ. // Από Λ μέσω δεν πάμε πουθενά. // Από Μ μέσω δεν πάμε πουθενά. // Από Τ μέσω στην Τ κι στην Κ. // Σημειώνουμε τις Κ, Λ, Μ, Τ. γ: Από Κ μέσω γ δεν πάμε πουθενά. // Από Λ μέσω γ στην Κ. // Από Μ μέσω γ δεν πάμε πουθενά. // Από Τ μέσω γ στην Μ κι πό εκεί με κενή στην Λ. // Σημειώνουμε τις Κ, Λ, Μ. Η ποδεκτική κτάστση Τ δεν περιλμάνετι στην σημειωμένες κτστάσεις της τελευτίς γρμμής, άρ όποι διδρομή κι ν κολουθούσε το υτόμτο δεν θ ποδεχότν την λέξη γ. ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#5) (5.1) Δείξτε ότι η λέξη δεν γίνετι δεκτή πό το πρκάτω υτόμτο. (5.2) Δείξτε ότι η λέξη δεν γίνετι δεκτή πό το πρκάτω υτόμτο. Κ Λ I T, M
(#6) ΛΗΜΜΑ ΑΝΤΛΗΣΗΣ ΑΝΩΜΑΛΕΣ ΓΛΩΣΣΕΣ Γι ν δείξουμε όμως ότι _δεν_ είνι ομλή πρέπει ν δείξουμε ότι _κμμί_ ομλή γρμμτική Γ δεν την πράγει κριώς, ότι δηλδή η Γ, είτε (i) προσθέτει λέξεις που δεν έχει η Λ, είτε (ii) δεν πράγει λέξεις που έχει η Λ. Το εργλείο εδώ γι το (i) είνι το λήμμ άντλησης: δείχνουμε ότι (λόγω πείρου πλήθους λέξεων) ν η Λ ήτν ομλή τότε θ έπρεπε ν περιέχει (μετξύ άλλων) κι όλες λέξεις της μορφής x μ (κ) y, γι κάποιες συγκεκριμμένες στθερές λέξεις x, μ, y, μ, κ = 0, 1, 2, 3,... κι δείχνουμε ότι (οποιδήποτε μορφή κι εάν είχν τ x, μ, y), γι κάποιο κ θ συνέινε x μ (κ) y Λ πράγμ που οδηγεί σε άτοπο. Προσέξτε ότι μερικές φορές ολεύει ν δείξουμε όχι ότι η Λ είνι νώμλη, λλά ότι έν κομμάτι της Λ είνι νώμλο τέτοιο όμως που θ έπρεπε ν ήτν ομλό εάν ήτν κι η Λ. ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: Δείξτε ότι οι εξής γλώσσες δεν είνι ομλές. () η γλώσσ Λ επί του Σ = {, } όπου πλήθος = πλήθος. () η γλώσσ Λ επί του Σ = {, } όλων των λ γι τ οποί λ = λ (R) (κτοπτρικό). () Η Λ έχει οσοδήποτε μεγάλες λέξεις επομένως, πό οποιδήποτε ομλή γρμμτική κι εάν πργότν, θ έπρεπε γι κάποι συγκεκριμμέν x, μ, y όλες οι λέξεις x μ (κ) y, κ 0, ν νήκουν στην Λ, δηλδή ν έχουν ίσο πλήθος πό κι. Αλλά υτό είνι δυντόν! Αρκεί λ.χ. τ x κι y ν έχουν ίσο πλήθος πό κι, κι το ίδιο ν ισχύει γι το μ. Δεν είνι η επνάληψη του μ που μπορεί ν κάνει (εδώ) ζημιά στο πλήθος των κι. Γι υτό χρησιμοποιούμε την γλώσσ { (κ) (λ) : κ, λ 0 }. Αυτή είνι ομλή (εύκολ), κι η τομή της Λ με την Λ είνι η γλώσσ { (κ) (λ) : κ, λ 0, κ = λ}. Αυτή γνωρίζουμε ότι δεν είνι ομλή λλά ς επνλάουμε το επιχείρημ: Η Λ έχει οσοδήποτε μεγάλες λέξεις, επομένως, πό οποιδήποτε ομλή γρμμτική κι εάν πργότν, θ έπρεπε γι κάποι συγκεκριμμέν x, μ, y όλες οι λέξεις x μ (κ) y, κ 0, ν νήκουν στην Λ, δηλδή ν έχουν ίσο πλήθος πό κι, με όλ τ στην ρχή κι όλ τ στο τέλος. Αλλά υτό είνι (τώρ) δύντον: (i) ν το μ έχει ίσο πλήθος πό κι τότε η επνάληψη του θ τ νεμίγνυε κι δεν θ είχμε όλ τ στην ρχή κι όλ τ στο τέλος. (ii) ν το μ έχει διφορετικό πλήθος πό κι τότε η επνάληψη του έστω κι μί φορά θ κτέστρεφε το ισοζύγιο κι δεν θ είχμε ίσο πλήθος πό κι. Επομένως η Λ δεν πράγετι πό κμμί ομλή γρμμτική, άρ ούτε κι η Λ (διότι τότε κι η Λ θ ήτν ομλή (πό θ. κλειστότητς τομής)). () Έστω Χ η γλώσσ των λέξεων με έν κι μόνον. Η Χ είνι προφνώς ομλή. Εάν η Λ ήτν ομλή θ ήτν κι η Λ = Λ Χ. Αλλά εάν λ = λ (R) κι η λ έχει έν κριώς, τότε λ = (κ) (κ), κ 0. Γνωρίζουμε ότι υτή τη γλώσσ δεν είνι ομλή λλά ς επνλάουμε το επιχείρημ: Η Λ έχει οσοδήποτε μεγάλες λέξεις, επομένως, πό οποιδήποτε ομλή γρμμτική κι εάν πργότν, θ έπρεπε γι κάποι συγκεκριμμέν x, μ, y όλες οι λέξεις x μ (κ) y, κ 0, ν νήκουν (μετξύ άλλων) στην Λ, δηλδή ν έχουν έν κι ίσο πλήθος πό πριν κι μετά πό το. Αλλά υτό είνι δύντον. Έστω ότι η λ = x μ y νήκει στην Λ, ότι έχει δηλδή την μορφή λ = (κ) (κ). (i) ν το μ περιέχει το τότε η x μ μ y θ είχε 2 κι η λέξη λ δεν θ ήτν στην Λ. (ii) ν το μ δεν περιέχει τότε νήκει όλο στο 1 ο μέρος πριν το, είτε όλο στο 2 ο μέρος, κι η επνάληψη του στην λέξη x μ μ y θ κτέστρεφε το ισοζύγιο των νάμεσ στο 1 ο κι 2 ο μέρος της λέξης λ. Επομένως η Λ δεν πράγετι πό κμμί ομλή γρμμτική, άρ ούτε κι η Λ (διότι τότε κι η Λ θ ήτν ομλή (πό θ. κλειστότητς τομής)). ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#6) (6.1) Το λήμμ άντλησης λέει το εξής: «εάν η γλώσσ L(Α) ενός ιτιοκρτικού υτομάτου Α έχει άπειρο πλήθος λέξεων,
τότε υπάρχουν λέξεις, μ, τ Σ*, ώστε κάθε λέξη μ (i) τ, i 0, νήκει στην L(A).». Δείξτε ότι το λήμμ μπορεί ν ενισχυθεί κτά τον εξής τρόπο: «... τότε υπάρχουν λέξεις, μ, τ Σ*, ώστε τ ΣΚ, κι κάθε λέξη μ (i) τ, i 0, νήκει στην L(A).» (6.2) Δείξτε ότι οι εξής γλώσσες δεν είνι ομλές. Μπορείτε ν χρησιμοποιείστε το (1) είτε το ποδείξτε είτε ή όχι. (6.1.1) L = { λ λ R : λ {, }* } ( λ R : η λέξη λ γρμμένη «νάποδ» (ή κτοπτρικά) ) (6.2.2) L = { λ λ: λ {, }* } (#7) ΚΑΝΟΝΙΚΕΣ ΕΚΦΡΑΣΕΙΣ: ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: Σχεδιάστε υτόμτο (όχι κτ νάγκη ιτιοκρτικό) που δέχετι τη γλώσσ της εξής ομλής έκφρσης: R = * {,, } ()* Φτιάχνουμε τ επί μέρους υτόμτ, γι τις επί μέρους γλώσσες *, {,, }, ()*, κι τ συνδέουμε όπως εξηγείτι στην ενότητ περί ομλών εκφράσεων κι κλειστότητς. Στο τέλος πολλές πλοπλοιήσεις ίσως ν είνι εφικτές. Προσέξτε ότι η επνάληψη εκφράζετι με «νκυκλώσεις», η πράθεση με «λληλουχί» κι η ένωση με «δικλδώσεις»: ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#7) (7.1) Σχεδιάστε τ υτόμτ (όχι κτ νάγκη ιτιοκρτικά) που δέχοντι τις γλώσσες των εξής ομλών εκφράσεων: (1) R = ( { {, }*, (, γ)* } )* (2) R = { (), (γ) + } γ (7.2) Έστω Μ μι ομλή έκφρση που περιγράφει τ ονόμτ μετλητών που χρησιμοποιούντι σε μι γλώσσ προγρμμτισμού. Μι συνάρτηση ή διδικσί, με τις πρμέτρους της, έχει την εξής μορφή: μ 0 ( μ 1, μ 2,..., μ κ ) όπου τ μ i είνι λέξεις της L(Μ) κι κ > 0. Δώστε μι ομλή έκφρση που ν πράγει όλες κι μόνον τις λέξεις της πρπάνω μορφής. (#8) ΘΕΩΡΗΜΑ MYHILL NERODE: ΕΡΩΤΗΜΑ ΠΑΡΑΔΕΙΓΜΑ: «ποιά είνι η κλάση ισοδυνμίς της λέξης λ ως προς την γλώσσ L;» Στην σημειώσεις, στην ενότητ γι το θ. Myhill Nerode, υπάρχει έν εκτενές πράδειγμ υπολογισμού της κλάσης ισοδυνμίς μις λέξης λ ως προς μί γλώσσ L, κι ρκεί γι τ πρκάτω: ΑΣΚΗΣΗ ΠΡΟΣ ΠΑΡΑΔΟΣΗ (#8) (8.1.1) Δείξτε με άση το θ. Myhill Nerode ότι η εξής γλώσσ δεν είνι ομλή: L = { σ (ν) μ σ (ν) : μ Σ*, σ Σ, μ δεν περιέχει σ, κι ν 0 }. (8.1.2) Η γλώσσ L = { λ {, }* : η λέξη λ δεν περιέχει την (υπο)λέξη } είνι ομλή γλώσσ. (1) Ποιές είνι οι κλάσεις ισοδυνμίς της σχέσης L ; (Υπόδειξη: εξετάστε το με ποιό τρόπο μπορεί ν κτλήγει μι λέξη λ, κι το εάν περιέχει ήδη ή όχι την υπολέξη.)
(2) Κι ως ποτέλεσμ του (1) ποιό είνι το μικρότερο (σε πλήθος κτστάσεων) ιτιοκρτικό υτόμτο που την ποδέχετι;