1) Μη Ντετερμινιστικό Αυτόματο Στοίβας
1.1) Ορισμός Γλώσσας Ανεξάρτητης Συμφραζομένων
1.2) Ιδέα Πίσω από το Μη Ντετερνιστικό Αυτόματο Στοίβας
1.3) Παράδειγμα για την L={0^n 1^n | n≥0}
2) Μαθηματικός Ορισμός Μη Ντετερμισνιστικού Αυτομάτου Στοίβας
2.1) Ορισμός
2.2) Παράδειγμα
Ασκήσεις
2. ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
Β. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
1. Ορισµός Γλώσσας Ανεξάρτητης Συµφραζοµένων
2. Ιδέα Πίσω από το Μη Ντετερνιστικό Αυτόµατο Στοίβας
3. Παράδειγµα για την 0 1 n 0
4. Παράδειγµα για την n, m 0
2. Μαθηµατικός Ορισµός Μη Ντετερµισνιστικού Αυτοµάτου Στοίβας
1. Ορισµός
2. Παράδειγµα
Γ.Ασκήσεις
Εφαρµογές
2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
3. Α. Σκοπός του Μαθήµατος
Οι στόχοι του µαθήµατος είναι:
Επίπεδο Α
Κατασκευή Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
Επίπεδο Β
(-)
Επίπεδο Γ
Μαθηµατικός Ορισµός Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
Τρόπος Λειτουργίας Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
4. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
1. Ορισµός Γλώσσας Ανέξάρτητης Συµφραζοµένων
Το Αυτόµατο Στοίβας είναι η «µηχανή» που αναγνωρίζει τις συµβολοσειρές της
γλώσσας, δηλαδή:
Απαντά ΝΑΙ για κάθε συµβολοσειρά που ανήκει στην γλώσσα.
Απαντά ΌΧΙ για κάθε συµβολοσειρά που δεν ανήκει στην γλώσσα.
Υπάρχουν δύο κατηγορίες αυτοµάτων στοίβας:
Τα Ντετερµινιστικά Αυτόµατα Στοίβας (Μάθηµα 4.2)
Τα Μη Ντετερµινιστικά Αυτόµατα Στοίβας (Μάθηµα 4.3)
4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Ορισµός Γλώσσας Ανεξάρτητης Συµφραζοµένων:
Μία γλώσσα θα λέγεται Γλώσσα Ανεξάρτητη Συµφραζοµένων (ή Γλώσσα
Χωρίς Συµφραζόµενα) αν και µόνο αν
Υπάρχει Γραµµατική Ανεξάρτητη Συµφραζοµένων (Γ.Χ.Σ) που παράγει τις
συµβολοσειρές της.
Υπάρχει Αυτόµατο Στοίβας (Α.Σ) που αναγνωρίζει τις συµβολοσειρές της
γλώσσας.
5. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
2. Ιδέα πίσω από το Μη Ντετερµινιστικό Αυτόµατο Στοίβας
5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Το ΕΑΠ µε το Αυτόµατο Στοίβας έχουν µια ιδιαίτερη σχέση!!!!
Το µη ντετερµινιστικό αυτόµατο στοίβας ορίζεται ΑΥΣΤΗΡΑ ως το αυτοµατο στοίβας που
προκύπτει µε την µετατροπή µιας Γραµµατικής Χωρίς Συµφραζόµενα σε Αυτόµατο Στοίβας.
Έτσι θα ορίσουµε τον αλγόριθµο µετατροπής ο οποίος:
• Με είσοδο µία γραµµατική χωρίς συµφραζόµενα,
• Θα παράγει ένα µη ντετερµινιστικό αυτόµατο στοίβας που αναγνωρίζει τις συµβολοσειρές
της.
Άρα συνοψίζοντας:
• Ως ντετερµινιστικό αυτόµατο στοιβας ορίζεται το αυτόµατο που κάνει µία διαχείριση της
στοίβας.
• Ως µη ντετερµινιστικό αυτόµατο στοίβας ορίζεται το αυτόµατο που προσοµοιώνει την
λειτουργία της αντίστοιχης γραµµατικής χωρίς συµφραζόµενα.
6. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
3. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
ΠΑΡΑ∆ΕΙΓΜΑ 1: Να κατασκευαστεί Mη Ντετερµινιστικό Αυτόµατο Στοίβας που να αναγνωρίζει τις
συµβολοσειρές της γλώσσας: 0 1 n 0
ΠΡΟΧΕΙΡΟ:
Πρώτα σκεφτόµαστε µία γραµµατική χωρίς συµφραζόµενα που παράγει τις συµβολοσειρές της γλώσσας
και γράφουµε τους κανόνες αναλυτικά:
• →
• →
Το αυτόµατο στοίβας προκύπτει άµεσα:
• Οι καταστασεις q0,q1,q2 είναι πάντα οι ίδιες
• Η µετάβαση από το q0 στο q1 είναι πάντα η ίδια
• Η µετάβαση από το q1 στο q2 είναι πάντα η ίδια
q0 q1
(ε,Ζ0)→SΖ0
q2
(ε,Ζ0)→Ζ0
(ε,S)→0S1
(ε,S)→ε
(0,0)→ε
(1,1)→ε
Γράφουµε έναν κανόνα για κάθε
κανόνα της γραµµατικής
(συµβολο εισόδου το ε)
Γράφουµε έναν κανόνα
διαγραφής για κάθε σύµβολο της
γλώσσας.
7. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
3. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
ΚΑΘΑΡΟ:
Το αυτόµατο που κατασκευάζουµε προσοµοιώνει τη λειτουργία της γραµµατικής χωρίς
συµφραζόµενα: → |
Ο πίνακας µετάβασης είναι
Τελική κατάσταση είναι η q2
Αριθµός Κατ/ση Σύµβολο
Εισόδου
Σύµβολο
Σωρού
Κίνηση Επεξήγηση
1 Ζ , Ζ Αρχικοποίηση
2.1 , Κανόνας ! →
2.2 , Κανόνας ! →
3.1 , Ταίριασµα
3.2 , Ταίριασµα
4 Ζ $, Ζ Αποδοχή
Οι υπόλοιποι συνδυασµοί ΤΙΠΟΤΑ
8. B. Θεωρία
1. Ντετερµινιστικό Αυτόµατο Στοίβας
2. Παράδειγµα Κατασκευής Αυτοµάτου Στοίβας
8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Παραδείγµατα εκτέλεσης συµβολοσειρών
Ενδέχεται να µας ζητηθεί παράδειγµα εκτέλεσης για κάποιες συγκεκριµένες συµβολοσειρές.
Κατασκευάζουµε ένα πινακάκι που απεικονίζουµε βήµα-βήµα τις µεταβάσεις που γίνονται µε κάθε
σύµβολο που λέει ο υποβολέας. Προσοχή! ∆είχνουµε µόνο την µη ντετερµινιστική εκτέλεση που οδηγεί σε
επιτυχία, η οποία θα προσοµοιώνει µια αριστερότερη παραγωγή της γραµµατικής
Π.χ. για την συµβολοσειρά 0011
Αριθµός
Κίνησης
Κατ/ση Υπόλοιπη
Συµβ/ρα
Σωρός Παραγωγή
0011 Ζ
1 0011 SΖ !
2.1 0011 0S1Ζ ⟹
3.1 011 S1Ζ
2.1 011 0S11Ζ ⟹
3.1 11 S11Ζ
2.2 11 11Ζ ⟹
3.2 1 1Ζ
3.2 Ζ
4 $ Ζ ΑΝΑΓΝΩΡΙΣΗ
9. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
3. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Παραδείγµατα εκτέλεσης συµβολοσειρών
Π.χ. για την συµβολοσειρά 001
Αριθµός
Κίνησης
Κατ/ση Υπόλοιπη
Συµβ/ρα
Σωρός Παραγωγή
001 Ζ
1 001 SΖ !
2.1 001 0S1Ζ ⟹
3.1 01 S1Ζ
2.1 01 0S11Ζ ⟹
3.1 1 S11Ζ
2.2 1 11Ζ ⟹
3.2 1 1Ζ
4 $ 1Ζ ΠΑΓΩΜΑ ΜΗΧΑΝΗΣ
10. B. Θεωρία
1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας
4. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
ΠΑΡΑ∆ΕΙΓΜΑ 2: Να κατασκευαστεί Μη Ντετερµινιστικό Αυτόµατο Στοίβας που να αναγνωρίζει τις
συµβολοσειρές της γλώσσας: n, m 0
ΠΡΟΧΕΙΡΟ:
Αναλυτικά, µια γραµµατική χωρίς συµφραζόµενα που παράγει τις συµβολοσειρές της γλώσσας είναι:
• → ' '
• → (
• ( → )(*
• ( →
q0 q1
(ε,Ζ0)→SΖ0
q2
(ε,Ζ0)→Ζ0
(ε, )→' '
(α,α)→ε
(b,b)→ε
(ε, )→+
(ε, +)→)(*
(ε, +)→
(c,c)→ε
11. B. Θεωρία
1. Ντετερµινιστικό Αυτόµατο Στοίβας
4. Παράδειγµα Κατασκευής Αυτοµάτου Στοίβας
11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
ΚΑΘΑΡΟ:
Το αυτόµατο που κατασκευάζουµε προσοµοιώνει τη λειτουργία της γραµµατικής χωρίς συµφραζόµενα:
→ , , | +, + → )(* | . Ο πίνακας µετάβασης είναι
Τελική κατάσταση είναι η q2
Αριθµός Κατ/ση Σύµβολο
Εισόδου
Σύµβολο
Σωρού
Κίνηση Επεξήγηση
1 Ζ , Ζ Αρχικοποίηση
2.1 , , , Κανόνας ! → , '
2.2 , ( Κανόνας ! → (
2.3 ( , )(* Κανόνας X→ )(*
2.4 ( , Κανόνας + →
3.1 , , , Ταίριασµα ,
3.2 ) ) , Ταίριασµα )
3.3 * * , Ταίριασµα *
4 Ζ $, Ζ Αποδοχή
Οι υπόλοιποι συνδυασµοί ΤΙΠΟΤΑ
12. B. Θεωρία
3. Μαθηµατικός Ορισµός Μη Ντετ/κού Αυτοµάτου Στοίβας
1. Τυπικός (µαθηµατικός) Ορισµός Μη Ντετερµινιστικού Αυτοµάτου Στοίβας
12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Ορισµός:
Ένα Μη Ντετερµινιστικό Αυτόµατο Στοίβας είναι µία 7-άδα
M=(Q, Σ, Γ, q0, Z0, δ, F)
Όπου:
Q είναι το σύνολο των καταστάσεων
Σ είναι το αλφάβητο των συµβόλων εισόδου
Γ είναι το αλφάβητο των συµβόλων στοίβας
είναι η αρχική κατάσταση
είναι το αρχικό σύµβολο του σωρού
είναι η συνάρτηση µετάβασης (π.χ.
δ(q1,σ,σ’)=(q2,w) που σηµαίνει ότι είµαστε στην q1 διαβάζουµε σ από την είσοδο
και η στοίβα έχει πάνω-πάνω το σ’, το αφαιρούµε πάµε στην q2 και βάζουµε στην
στοίβα την w).
είναι το σύνολο των τελικών καταστάσεων
Qq ∈0
*
}){(: Γ×→Γ×∪Σ× QQ εδ
QF ⊆
Γ∈0Z
13. B. Θεωρία
3. Μαθηµατικός Ορισµός Μη Ντετ/κου Αυτοµάτου Στοίβας
2. Παράδειγµα
13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
Παράδειγµα για την γλώσσα - . .
/
Το Ντετερµινιστικό Πεπερασµένο Αυτόµατο που κατασκευάσαµε:
Τυπικά ορίζεται ως η 7άδα: M=(Q,Σ,Γ,q0,Z0,δ,F) όπου:
• Q={q0,q1,q2}
• Σ={0,1}
• Γ={Z0,0,1,S}
• q0 είναι η αρχική κατάσταση
• Z0 είναι το αρχικό σύµβολο σωρού
• Η συνάρτηση µετάβασης:
1. δ(q0,ε,Z0)=(q1,SZ0)
2. δ(q1,ε,S)=(q1,0S1)
3. δ(q1,ε,S)=(q1,ε)
4. δ(q1,0,0)=(q1,ε)
5. δ(q1,1,1)=(q1,ε)
6. δ(q1,ε, Z0)=(q2, Z0)
• F={q2}
q0 q1
(ε,Ζ0)→SΖ0
q2
(ε,Ζ0)→Ζ0
(ε,S)→0S1
(ε,S)→ε
(0,0)→ε
(1,1)→ε
14. Γ. Ασκήσεις
Εφαρµογή 1
∆ώστε Μη Ντετερµινιστικό Αυτόµατο Στοίβας για τη γλώσσα: 0 1 2
|3 0
14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
15. Γ. Ασκήσεις
Εφαρµογή 2
∆ώστε ένα µη ντετερµινιστικό αυτόµατο στοίβας M που να αναγνωρίζει τη γλώσσα
L2 = {ambbam+1 | m ∈ Ν, m ≥ 1}.
15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
16. Γ. Ασκήσεις
Εφαρµογή 3
A) Να δώσετε γραµµατική ανεξάρτητη συµφραζοµένων για τη γλώσσα
L = { xcy : x,y ∈ {a, b}*, |x| = |y| }.
Β) Να σχεδιάσετε µη ντετερµινιστικό αυτόµατο στοίβας, σύµφωνα µε το Θεώρηµα 8.2,
που να αναγνωρίζει τη γλώσσα L. Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη
συµβολοσειρά abbcaba.
16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας
17. Γ. Ασκήσεις
Εφαρµογή 3
Γ) Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη συµβολοσειρά aca.
∆) Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη συµβολοσειρά abbcaba.
17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας