Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Σχετικά έγγραφα
Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 10: Αυτόματα Στοίβας II

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 9: Αυτόματα Στοίβας (Pushdown Automata - PDA)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (1)

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2): Αυτόµατα Στοίβας. Παραδείγµατα Σχεδιασµού CFG. Παράδειγµα 1.

Σειρά Προβλημάτων 3 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 3 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Σειρά Προβλημάτων 3 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Ασκήσεις από παλιές εξετάσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 7: Ασυμφραστικές Γλώσσες (Γλώσσες Ελεύθερες Συμφραζομένων)

Σειρά Προβλημάτων 3 Λύσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 4: Μη Ντετερμινιστικά (Αντιαιτιοκρατικά) Πεπερασμένα Αυτόματα (ΝFA)

Σειρά Προβλημάτων 4 Λύσεις

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Σειρά Προβλημάτων 4 Λύσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 12: Μηχανές Turing

Σειρά Προβλημάτων 3 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα

Σειρά Προβλημάτων 4 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Σειρά Προβλημάτων 3 Λύσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 5: Κανονικές Εκφράσεις

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών 6

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αυτόματα. Παράδειγμα: πωλητής καφέ (iii) Παράδειγμα: πωλητής καφέ (iv) Εισαγωγή στην Επιστήμη των Υπολογιστών. Προδιαγραφές

Η δυαδική σχέση M ( «παράγει σε ένα βήμα» ) ορίζεται ως εξής: (q, w) M (q, w ), αν και μόνο αν w = σw, για κάποιο σ Σ

Σειρά Προβλημάτων 5 Λύσεις

Αυτόματα και Υπολογιστικά Μοντέλα Automata and Models of Computation

Θεωρία Υπολογισμού και Πολυπλοκότητα Διαγνωσιμότητα

Σειρά Προβλημάτων 4 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα To Δόγμα Church-Turing

Σε αυτό το µάθηµα. Εισαγωγή στις Μηχανές Turing. Μηχανή Turing (Turing Machine - TM) Μηχανές Turing. Παραδείγµατα Μηχανών Turing

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Σειρά Προβλημάτων 5 Λύσεις

HEAD INPUT. q0 q1 CONTROL UNIT

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 11: Μη Ασυμφραστικές Γλώσσες

Σειρά Προβλημάτων 3 Λύσεις

CSC 314: Switching Theory

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Σειρά Προβλημάτων 1 Λύσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 15: Διαγνωσιμότητα (Επιλυσιμότητα) ΙΙ

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 3: Ντετερμινιστικά Πεπερασμένα Αυτόματα (DFA)

Φροντιστήριο 9 Λύσεις

Άσκησηη 1. (α) Το αυτόματο. (γ) Να δείξετε όλα aabbb. Λύση. λέξεις. αυτόματο. (β) Τυπικά. μεταβάσεων δ. ορίζεται. (γ) Θα δείξουμε τα.

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 14: Διαγνωσιμότητα (Επιλυσιμότητα)

Η NTM αποδέχεται αν µονοπάτι στο δέντρο που οδηγεί σε αποδοχή.

Φροντιστήριο 10 Λύσεις

num(m(w 1 ;... ; w k )) = f(num(w 1 ),..., num(w k ))

Σειρά Προβλημάτων 5 Λύσεις

Φροντιστήριο 8 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Κανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Σειρά Προβλημάτων 1 Λύσεις

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

Φροντιστήριο 7 Λύσεις

Θεωρία Υπολογισμού και Πολυπλοκότητα

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πεπερασμένα Αυτόματα. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 3 Λύσεις

Φροντιστήριο 8 Λύσεις

Μεταγλωττιστές. Ενότητα 4: Τυπικές γλώσσες (Μέρος 3 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

Σειρά Προβλημάτων 5 Λύσεις

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 6: Μη Κανονικές Γλώσσες

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις

771 Η - Θεωρία Υπολογισµών και Αλγορίθµων

Σειρά Προβλημάτων 5 Λύσεις

Φροντιστήριο 2 Λύσεις

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Context free γραμματικές και γλώσσες

Αυτοματοποιημένη Επαλήθευση

Σύνοψη Προηγούµενου. Γλώσσες χωρίς Συµφραζόµενα (2) Ισοδυναµία CFG και PDA. Σε αυτό το µάθηµα. Αυτόµατα Στοίβας Pushdown Automata

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

Αλγόριθμοι για αυτόματα

Transcript:

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αυτόματα Στοίβας (2.2) Τυπικός Ορισμός Παραδείγματα Ισοδυναμία με Ασυμφραστικές Γραμματικές ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-1

Αυτόματα Στοίβας Αυτόματο Στοίβας (Pushdown automaton, PDA) Μη Ντετερμινιστικό Πεπερασμένο Αυτόματο με επιπλέον «εξάρτημα» - ΣΤΟΙΒΑ H στοίβα παρέχει επιπρόσθετη μνήμη - πέραν της πεπερασμένης μνήμης που προσφέρουν οι καταστάσεις του αυτόματου Επιτρέπει στα αυτόματα να αναγνωρίζουν μη κανονικές γλώσσες Τα PDA είναι ισοδύναμα με τις ασυμφραστικές γραμματικές Επιτρέπουν την αναγνώριση ασυμφραστικών γλωσσών. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-2

Λειτουργία Πεπερασμένων Αυτομάτων Σχηματική αναπαράσταση πεπερασμένου αυτόματου Ελεγκτής: Καταστάσεις και Μεταβάσεις Καταστάσεων Ταινία: Λέξη Εισόδου Βέλος : Κεφαλή Εισόδου ελεγκτής καταστάσεων a a b b είσοδος Ο ελεγκτής διαβάζει το επόμενο σύμβολο και βάσει αυτού καθορίζει την επόμενη κατάσταση του αυτομάτου. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-3

Λειτουργία Αυτομάτων Στοίβας Σχηματική Αναπαράσταση πεπερασμένου αυτόματου στοίβας Ελεγκτής: Καταστάσεις και Μεταβάσεις Καταστάσεων Ταινία: Λέξη Εισόδου Βέλος : Κεφαλή Εισόδου Στοίβα: Εγγραφή και διάβασμα συμβόλων ελεγκτής καταστάσεων x y z στοίβα a a b b είσοδος Ο ελεγκτής διαβάζει (1) το επόμενο σύμβολο και (2) το στοιχείο στην κορυφή της στοίβας και, βάσει αυτής της δυάδας, αποφασίζει ποια θα είναι η επόμενη κατάσταση. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-4

Ένα αυτόματο στοίβας μπορεί Χρήση Στοίβας Να γράφει σύμβολα στη στοίβα Να διαβάζει σύμβολα από την στοίβα αν δεν είναι κενή. Είδος αποθήκευσης LIFO: last in first out Εγγραφή: Το νέο σύμβολο τοποθετείται στην κορυφή και πιέζει τα υπόλοιπα σύμβολα προς τα κάτω. απόθεση push Ανάγνωση: Επιστρέφει το σύμβολο που βρίσκεται στην κορυφή και το αφαιρεί από την στοίβα. ανάληψη pop Απεριόριστος αποθηκευτικός χώρος ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-5

Γλώσσα L={0 n 1 n n 0} Παράδειγμα Δεν μπορεί να αναγνωριστεί από κανένα πεπερασμένο αυτόματο Λόγω πεπερασμένου αριθμού καταστάσεων Αναγνωρίζεται από αυτόματα στοίβας Διαβάζουμε σύμβολα από την είσοδο Αν το σύμβολο είναι 0 το αποθέτουμε στη στοίβα Μόλις δούμε το πρώτο 1 βγάζουμε ένα 0 από την στοίβα Συνεχίζουμε με τον ίδιο τρόπο για κάθε 1 που διαβάζουμε Αν όταν φτάσουμε στο τέλος της εισόδου η στοίβα είναι κενή τότε το αυτόματο αποδέχεται την λέξη. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-6

Σημείωση Τα ντετερμινιστικά αυτόματα στοίβας δεν είναι ισοδύναμα με τα μη ντετερμινιστικά αυτόματα στοίβας Τα μη ντετερμινιστικά αυτόματα στοίβας αναγνωρίζουν περισσότερες γλώσσες από τα ντετερμινιστικά Θα μελετήσουμε μόνο τα ΜΗ ΝΤΕΤΕΡΜΙΝΙΣΤΙΚΑ αυτόματα στοίβας ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-7

Δύο αλφάβητα Αλφάβητα και Μεταβάσεις Σ ε = Σ {ε}: αλφάβητο εισόδου Γ ε = Γ {ε}: αλφάβητο στοίβας Η στοίβα μπορεί να χρησιμοποιεί διαφορετικά σύμβολα από αυτά της εισόδου. Συνάρτηση μεταβάσεων Για κάθε τριάδα (κατάσταση, σύμβολο εισόδου, σύμβολο κορυφής στοίβας) παράγεται ένα σύνολο {(κατάσταση 1, σύμβολο στοίβας 1),,(κατάσταση k, σύμβολο στοίβας k)} Αν δ(q, a, b) = {(q 1, b 1 ),,(q k, b k )}, τότε το αυτόματο διαβάζοντας το σύμβολο a όντας στην κατάσταση q τη στιγμή που η στοίβα έχει στην κορυφή της το σύμβολο b, τότε το αυτόματο μπορεί να μεταβεί στην κατάσταση q i γράφοντας στη στοίβα το σύμβολο b i για κάθε 1 i k. Τα σύμβολα στοίβας μπορούν να είναι και η κενή λέξη ε. Αυτό σημαίνει ότι η μηχανή δεν θα διαβάσει από τη στοίβα ή δεν θα γράψει σε αυτή. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-8

PDA Ορισμός ΟΡΙΣΜΟΣ Αυτόματο στοίβας είναι μια εξάδα, Σ, Γ, δ,,, όπου 1. είναι ένα πεπερασμένο σύνολο, τα στοιχεία του οποίου ονομάζονται καταστάσεις, 2. Σ είναι ένα πεπερασμένο σύνολο, που ονομάζεται αλφάβητο, 3. Γ είναι ένα πεπερασμένο σύνολο, που ονομάζεται αλφάβητο στοίβας 4. : Σ Γ ( Γ ), είναι η συνάρτηση μεταβάσεων, 5. είναι η εναρκτήρια κατάσταση, 6. είναι το σύνολο των καταστάσεων αποδοχής. Παρατήρηση: Κάθε NFA είναι και PDA. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-9

Ορισμός του υπολογισμού To αυτόματο στοίβας Μ =, Σ, Γ, δ,, αποδέχεται μια λέξη w αν αυτή μπορεί να γραφτεί στη μορφή w = w 1 w 2 w m όπου κάθε w i Σ ε, και αν υπάρχει ακολουθία καταστάσεων r 0, r 1,, r m και ακολουθία λέξεων s 0, s 1,, s m Γ * που να ικανοποιούν τις συνθήκες: r 0 = και s 0 = ε Για κάθε i = 0,,m 1,(,b) δ(,, ),όπου s i = at και s i+1 =bt για κάποια a, b Γ ε και t Γ *, και r m F Το αυτόματο Μ αναγνωρίζει τη γλώσσα Α αν: A = {w το Μ αποδέχεται την w} ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-10

Περιγραφή Αυτομάτου Στοίβας (1) Πως παρουσιάζουμε ένα αυτόματο στοίβας; Πίνακας Μεταβάσεων Για κάθε κατάσταση και κάθε σύμβολο της γλώσσας σημειώνουμε την εξέλιξη του αυτομάτου για κάθε δυνατό σύμβολο στην κορυφή της στοίβας. Χωρίζουμε κάθε στήλη σε υποστήλες που αναφέρονται στα σύμβολα που δυνατόν να διαβάσουμε στην κορυφή της στοίβας. Γράφοντας ε υπονοούμε ότι η μετάβαση γίνεται χωρίς ανάγνωση συμβόλου από τη στοίβα. Παράδειγμα: Αν Q = {q 1, q 2 }, Σ = {0,1}, Γ = {0,$}, ο πίνακας μεταβάσεων θα έχει την πιο κάτω μορφή: Είσοδος 0 1 ε Στοίβα 0 $ ε 0 $ ε 0 $ ε q 1 q 2 ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-11

Περιγραφή Αυτομάτου Στοίβας (2) Σχεδιάγραμμα Καταστάσεων Στις ακμές του αυτομάτου τοποθετούμε πλειάδες της μορφής a, b c όπου a: το σύμβολο στην είσοδο Αν a = ετο αυτόματο εκτελεί τη μετάβαση χωρίς να διαβάσει σύμβολο από την είσοδο b: το σύμβολο στην κορυφή της στοίβας Αν b = ε το αυτόματο εκτελεί τη μετάβαση χωρίς να διαβάσει σύμβολο από τη στοίβα c: σύμβολο με το οποίο αντικαθιστούμε το b στη στοίβα Αν c = ε το αυτόματο εκτελεί την μετάβαση χωρίς να αποθέσει σύμβολο στη στοίβα Παράδειγμα: a,1 0 q 1 q 2 Αν στην κατάσταση q 1 διαβάσουμε το σύμβολο a και στην κορυφή της στοίβας βρίσκεται το 1 τότε το αυτόματο θα μεταβεί στην κατάσταση q 2 και το 1 θα αντικατασταθεί από 0. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-12

Παράδειγμα 1 Γλώσσα L={0 n 1 n n 0} Αυτόματο Στοίβας Q = {q 1, q 2, q 3, q 4 }, Σ = {0,1}, Γ = {0,$}, F = {q 1, q 4 } ε, ε $ q 1 q 2 0,ε 0 1, 0 ε q 4 ε, $ ε q 3 1, 0 ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-13

Εξήγηση: Παράδειγμα 1(συν.) Από την αρχική κατάσταση χωρίς να διαβάσουμε σύμβολο τοποθετούμε το $ στη στοίβα με αυτό τον τρόπο μπορούμε να αναγνωρίσουμε τον πάτο της. Από την q 2 για κάθε 0 που διαβάζουμε τοποθετούμε ένα 0 στη στοίβα χωρίς να ανασύρουμε οποιοδήποτε σύμβολο Από την q 2 την πρώτη φορά που θα διαβάσουμε το 1 εφόσον υπάρχει 0 στη στοίβα (δηλ. έχουμε διαβάσει τουλάχιστον 1 μηδέν) ανασύρουμε τον κόμβο κορυφής και προχωρούμε στην κατάσταση q 3. Από την q 3 κάθε φορά που διαβάζουμε το 1 εφόσον υπάρχει 0 στη στοίβα 0,ε 0 ε, ε $ ανασύρουμε τον κόμβο κορυφής. q 1 q 2 Όταν αδειάσει η στοίβα (ο κόμβος κορυφής είναι το σύμβολο $) προχωρούμε στην 1, 0 ε τελική κατάσταση q 4 χωρίς να διαβάσουμε οποιοδήποτε σύμβολο. q 4 ε, $ ε q 3 1, 0 ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-14

Πίνακας μεταβάσεων Παράδειγμα 1(συν.) Είσοδος 0 1 ε Στοίβα 0 $ ε 0 $ ε 0 $ ε q 1 {(q 2,$)} q 2 {(q 2,0)} {(q 3,ε)} q 3 {(q 3,ε)} {(q 4,ε)} q 4 ε, ε $ q 1 q 2 0,ε 0 1, 0 ε q 4 ε, $ ε q 3 1, 0 ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-15

Γλώσσα L={ww R w {0,1} * } Παράδειγμα 2 w R : ανάστροφη π.χ. Αν w = 0111 τότε w R = 1110 ε, ε $ q 1 q 2 0, ε 0 1, ε 1 ε, ε ε q 4 ε, $ ε q 3 1, 1 ε 0, 0 ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-16

Ισοδυναμία PDA με CFG ΘΕΩΡΗΜΑ Μια γλώσσα είναι ασυμφραστική αν και μόνο αν υπάρχει αυτόματο στοίβας που την αναγνωρίζει. ΛΗΜΜΑ 1 Αν μια γλώσσα είναι ασυμφραστική, τότε υπάρχει αυτόματο στοίβας που την αναγνωρίζει. ΛΗΜΜΑ 2 Κάθε γλώσσα που αναγνωρίζεται από ένα αυτόματο στοίβας είναι ασυμφραστική. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-17

Απόδειξη Λήμματος 1 ΛΗΜΜΑ 1 Αν μια γλώσσα είναι ασυμφραστική, τότε υπάρχει αυτόματο στοίβας που την αναγνωρίζει. Έστω Α, μια ασυμφραστική γλώσσα Εξ ορισμού παράγεται από κάποια ασυμφραστική γραμματική G. Στόχος: Να μετατρέψουμε τη γραμματική G σε ένα ισοδύναμο αυτόματο στοίβας Ρ. Το Ρ πρέπει να αποδέχεται μια λέξη w αν και μόνο αν η w παράγεται από τη G. Δυσκολία: Ανά πάσα στιγμή δυνατόν να υπάρχουν >1 κανόνες αντικατάστασης για μια μεταβλητή. Αυτό όμως μπορεί να αντιμετωπιστεί μέσω μη-ντετερμινισμού στο αυτόματο. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-18

Έστω η γραμματική P apb abbqc Q και η λέξη aab. Βασική Ιδέα (1) To αυτόματο θα πρέπει να ξεκινήσει με την αρχική μεταβλητή P και να κωδικοποιήσει μη-ντετερμινιστικά τους δύο κανόνες που αναφέρονται σε αυτή. Έτσι, με είσοδο a το αυτόματο θα πρέπει να έχει δύο εναλλακτικές μεταβάσεις: Η πρώτη θα πρέπει να προχωρήσει σύμφωνα με το Pb, και Η δεύτερη σύμφωνα με το bbqc. Και στις δύο περιπτώσεις θα αξιοποιήσουμε τη στοίβα: Ενδιάμεσες λέξεις τοποθετούνται στη στοίβα Με την εξαίρεση όποιων αρχικών τερματικών συμβόλων τα οποία συγκρίνονται απευθείας με τα σύμβολα που διαβάζονται από την είσοδο. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-19

Βασική Ιδέα (2) Αν η ενδιάμεση λέξη είναι η bbqc τότε Θα τοποθετήσουμε στη στοίβα τα σύμβολα Qc Ενώ θα περιμένουμε στην είσοδο την εμφάνιση των χαρακτήρων bb. ελεγκτής καταστάσεων Q b b c $ ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-20

Η κατασκευή περιγραφικά Το αυτόματο μιμείται μια εξ αριστερών παραγωγή της συμβολοσειράς εισόδου Βήμα 1: Αποθέτουμε στην στοίβα το ειδικό σύμβολο $ και την εναρκτήρια μεταβλητή Βήμα 2: Επαναλαμβάνουμε τα ακόλουθα Αν στην κορυφή της στοίβας έχουμε τη μεταβλητή Α, επιλέγουμε μηντετερμινιστικά έναν από τους κανόνες του Α και αντικαθιστούμε τη μεταβλητή με τη λέξη στο δεξί μέρος του κανόνα Αν στην κορυφή της στοίβας είναι ένα τερματικό σύμβολο a, διαβάζουμε το επόμενο σύμβολο από την είσοδο και συγκρίνουμε με το a. Αν τα σύμβολα συμπίπτουν τότε συνεχίζουμε Διαφορετικά απορρίπτουμε (σε αυτό το μονοπάτι) Αν στην κορυφή της στοίβας είναι το $, πάμε στην κατάσταση αποδοχής. Αν η λέξη εισόδου έχει εξαντληθεί τότε γίνεται αποδεκτή. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-21

Εγγραφή λέξης στη στοίβα (1) Για υλοποίηση της πιο πάνω ιδέας, σε κάποια σημεία της κατασκευής του αυτομάτου στοίβας θα χρειάζεται να γράψουμε μια μη κενή λέξη. Αυτό δεν είναι συμβατό με τη συνάρτηση μεταβάσεων των αυτομάτων στοίβας : Σ Γ ( Γ ). Για απλούστερη παρουσίαση της κατασκευής, εισάγουμε την εξής συντομογραφία. Γράφουμε (r,u) δ(q, a,s), όπου u = u 1 u n, για να δηλώσουμε ότι κάθε φορά που βρισκόμαστε στην κατάσταση q, διαβάζουμε a στην είσοδο και το s βρίσκεται στην κορυφή της στοίβας, θα μεταβαίνουμε στην r αφού αποθέσουμε στη στοίβα τη λέξη u. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-22

Εγγραφή λέξης στη στοίβα (2) Αυτό τυπικά μπορεί να υλοποιηθεί εισάγοντας καινούριες καταστάσεις και γράφοντας ένα-ένα τα γράμματα της λέξης u στη στοίβα ξεκινώντας από το τελευταίο γράμμα και προχωρώντας προς το πρώτο: Βήμα 1: Εισάγουμε νέες καταστάσεις q 1,, q n-1 Βήμα 2: Τροποποιούμε την συνάρτηση μεταβάσεων Προσθέτουμε στο δ(q, a, s) το μέλος (q 1,u n ) Εισάγουμε τι μεταβάσεις δ(q 1, ε, ε)={(q 2, u n-1 )}, δ(q n-1,ε,ε)={(r, u 1 )} ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-23

Υλοποίηση συντομογραφίας Συντομογραφία: (r, xyz) δ(q, a, s) Υλοποίηση: q q a, s z q 1 a, s xyz ε, ε y r r ε, ε x q 2 ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-24

Τυπική Περιγραφή Κατασκευής Το ζητούμενο αυτόματο στοίβας, Σ, Γ, δ,,{ } ορίζεται ως εξής: Q = { q start, q loop, q end } E Όπου E είναι το σύνολο των καταστάσεων που απαιτούνται για τις αντικαταστάσεις των μεταβλητών με λέξεις Η συνάρτηση μεταβάσεων είναι η εξής: δ(q start, ε, ε) = {(q loop, S$)} Εξήγηση: Αρχικά προσθέτουμε το σύμβολο $ που δηλώνει ότι η στοίβα είναι κενή και την αρχική μεταβλητή S δ(q loop, ε, A) = {(q loop, w) υπάρχει κανόνας Α w στη γραμματική} Εξήγηση: Αν η μεταβλητή Α βρίσκεται στην κορυφή της στοίβας, δημιουργούμε μια μετάβαση για κάθε κανόνα παραγωγής της Α. Για κάθε μετάβαση αντικαθιστούμε το Α με τη σχετική λέξη. δ(q loop, a, a) = {(q loop, ε)} Εξήγηση: Αν το σύμβολο a βρίσκεται στην κορυφή της στοίβας τότε δημιουργούμε μετάβαση που αναμένει να λάβει το εν λόγω σύμβολο δ(q loop, ε, $) = {(q end, ε)} Εξήγηση: Αν το σύμβολο $ βρίσκεται στην κορυφή της στοίβας τότε τερματίζουμε. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-25

Κατασκευή το διάγραμμα καταστάσεων q start ε, ε S$ ε,a w q loop a, a ε ε,$ ε q end ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-26

Παράδειγμα (1) Να κατασκευάσετε αυτόματο στοίβας το οποίο να είναι ισοδύναμο με την πιο κάτω γραμματική. P aτb b Τ Τa ε Σύμφωνα με την κατασκευή που δημιουργήσαμε, το ισοδύναμο αυτόματο έχει τις εξής μεταβάσεις: (q start, ε, ε)=(q, S$) (q loop, ε, S)=(q loop, atb) (q loop, ε, S)=(q loop, b) (q loop, ε, T)=(q loop, Ta) (q loop, ε, T)=(q loop, ε) (q loop, a, a)=(q loop, ε) (q loop, b, b)=(q loop, ε) (q loop, ε, $) = (q end, ε) ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-27

Παράδειγμα (1) (συν.) Αν αναλύσουμε τις μεταβάσεις που αναφέρονται σε λέξεις, το αυτόματο έχει ως εξής: q start ε, ε $ ε, S b ε, ε Τ ε, ε $ ε, T a ε, ε Τ ε, ε a ε,$ ε q loop q end ε, S b ε, Τ ε a, a ε b, b ε ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-28

Παράδειγμα 2 Να κατασκευάσετε αυτόματο στοίβας το οποίο να είναι ισοδύναμο με την πιο κάτω γλώσσα. L={w#w R w {a,b} * } Η γραμματική που παράγει τη γλώσσα είναι η S asa bsb # Σύμφωνα με την κατασκευή που ορίσαμε, το ισοδύναμο αυτόματο έχει τις εξής μεταβάσεις: (q start, ε, ε)=(q loop, S$) (q loop, ε, S)=(q loop, asa) (q loop, ε, S) =(q loop, bsb) (q loop, ε, S)=(q loop, #) (q loop, a, a)=(q loop, ε) (q loop, b, b)=(q loop, ε) (q loop, #, #) = (q loop, ε) (q loop, ε, $) = (q end, ε) Άσκηση: Δώστε αναλυτικά το ισοδύναμο αυτόματο που περιλαμβάνει όλες τις ενδιάμεσες καταστάσεις. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-29

Λήμμα 2 Αποδεικτική Ιδέα: Να βρούμε μια κατασκευή μέσω της οποίας κάθε PDA να μεταφράζεται σε ασυμφραστική γραμματική. Κατασκευαστική Ιδέα: Για κάθε ζεύγος καταστάσεων p, q του αυτόματου θα υπάρχει μια μεταβλητή A pq που να παράγει όλες τις λέξεις που μπορούν να οδηγήσουν το αυτόματο από την p με κενή στοίβα στην q με κενή στοίβα. Απόδειξη Παραλείπεται. ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-30

Πόρισμα Κάθε κανονική γλώσσα είναι και ασυμφραστική Αυτόματα στοίβας αναγνωρίζουν την κλάση των ασυμφραστικών γλωσσών Πεπερασμένα αυτόματα αναγνωρίζουν τις κανονικές γλώσσες Κάθε πεπερασμένο αυτόματο είναι αυτόματο στοίβας που αγνοεί την στοίβα. ασυμφραστικές γλώσσες κανονικές γλώσσες ΕΠΛ 211 Θεωρία Υπολογισμού και Πολυπλοκότητα 5-31