ΠΛΗ30 ΜΑΘΗΜΑ 4.3

17
ΠΛΗ30 ΕΝΟΤΗΤΑ 4: ΓΛΩΣΣΕΣ ΑΝΕΞΑΡΤΗΤΕΣ ΣΥΜΦΡΑΖΟΜΕΝΩΝ Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας ∆ηµήτρης Ψούνης

Transcript of ΠΛΗ30 ΜΑΘΗΜΑ 4.3

ΠΛΗ30ΕΝΟΤΗΤΑ 4: ΓΛΩΣΣΕΣ ΑΝΕΞΑΡΤΗΤΕΣ

ΣΥΜΦΡΑΖΟΜΕΝΩΝ

Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

∆ηµήτρης Ψούνης

ΠΕΡΙΕΧΟΜΕΝΑΑ. Σκοπός του Μαθήµατος

Β. Θεωρία

1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας

1. Ορισµός Γλώσσας Ανεξάρτητης Συµφραζοµένων

2. Ιδέα Πίσω από το Μη Ντετερνιστικό Αυτόµατο Στοίβας

3. Παράδειγµα για την 01 n 0

4. Παράδειγµα για την n, m 0

2. Μαθηµατικός Ορισµός Μη Ντετερµισνιστικού Αυτοµάτου Στοίβας

1. Ορισµός

2. Παράδειγµα

Γ.Ασκήσεις

Εφαρµογές

2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Α. Σκοπός του Μαθήµατος

Οι στόχοι του µαθήµατος είναι:

Επίπεδο Α Κατασκευή Μη Ντετερµινιστικού Αυτοµάτου ΣτοίβαςΕπίπεδο Β (-)Επίπεδο ΓΜαθηµατικός Ορισµός Μη Ντετερµινιστικού Αυτοµάτου Στοίβας Τρόπος Λειτουργίας Μη Ντετερµινιστικού Αυτοµάτου Στοίβας

3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

B. Θεωρία1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας1. Ορισµός Γλώσσας Ανέξάρτητης Συµφραζοµένων

Το Αυτόµατο Στοίβας είναι η «µηχανή» που αναγνωρίζει τις συµβολοσειρές της γλώσσας, δηλαδή: Απαντά ΝΑΙ για κάθε συµβολοσειρά που ανήκει στην γλώσσα. Απαντά ΌΧΙ για κάθε συµβολοσειρά που δεν ανήκει στην γλώσσα.

Υπάρχουν δύο κατηγορίες αυτοµάτων στοίβας: Τα Ντετερµινιστικά Αυτόµατα Στοίβας (Μάθηµα 4.2) Τα Μη Ντετερµινιστικά Αυτόµατα Στοίβας (Μάθηµα 4.3)

4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Ορισµός Γλώσσας Ανεξάρτητης Συµφραζοµένων: Μία γλώσσα θα λέγεται Γλώσσα Ανεξάρτητη Συµφραζοµένων (ή Γλώσσα Χωρίς Συµφραζόµενα) αν και µόνο αν Υπάρχει Γραµµατική Ανεξάρτητη Συµφραζοµένων (Γ.Χ.Σ) που παράγει τις

συµβολοσειρές της. Υπάρχει Αυτόµατο Στοίβας (Α.Σ) που αναγνωρίζει τις συµβολοσειρές της

γλώσσας.

B. Θεωρία1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας2. Ιδέα πίσω από το Μη Ντετερµινιστικό Αυτόµατο Στοίβας

5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Το ΕΑΠ µε το Αυτόµατο Στοίβας έχουν µια ιδιαίτερη σχέση!!!!

Το µη ντετερµινιστικό αυτόµατο στοίβας ορίζεται ΑΥΣΤΗΡΑ ως το αυτοµατο στοίβας που προκύπτει µε την µετατροπή µιας Γραµµατικής Χωρίς Συµφραζόµενα σε Αυτόµατο Στοίβας.

Έτσι θα ορίσουµε τον αλγόριθµο µετατροπής ο οποίος:• Με είσοδο µία γραµµατική χωρίς συµφραζόµενα,• Θα παράγει ένα µη ντετερµινιστικό αυτόµατο στοίβας που αναγνωρίζει τις συµβολοσειρές

της.

Άρα συνοψίζοντας:• Ως ντετερµινιστικό αυτόµατο στοιβας ορίζεται το αυτόµατο που κάνει µία διαχείριση της

στοίβας.• Ως µη ντετερµινιστικό αυτόµατο στοίβας ορίζεται το αυτόµατο που προσοµοιώνει την

λειτουργία της αντίστοιχης γραµµατικής χωρίς συµφραζόµενα.

B. Θεωρία1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας3. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας

6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

ΠΑΡΑ∆ΕΙΓΜΑ 1: Να κατασκευαστεί Mη Ντετερµινιστικό Αυτόµατο Στοίβας που να αναγνωρίζει τις συµβολοσειρές της γλώσσας: 01 n 0

ΠΡΟΧΕΙΡΟ:Πρώτα σκεφτόµαστε µία γραµµατική χωρίς συµφραζόµενα που παράγει τις συµβολοσειρές της γλώσσας και γράφουµε τους κανόνες αναλυτικά:

• →

• →

Το αυτόµατο στοίβας προκύπτει άµεσα:

• Οι καταστασεις q0,q1,q2 είναι πάντα οι ίδιες• Η µετάβαση από το q0 στο q1 είναι πάντα η ίδια• Η µετάβαση από το q1 στο q2 είναι πάντα η ίδια

q0 q1

(ε,Ζ0)→SΖ0q2

(ε,Ζ0)→Ζ0

(ε,S)→0S1(ε,S)→ε

(0,0)→ε(1,1)→ε

Γράφουµε έναν κανόνα για κάθε κανόνα της γραµµατικής (συµβολο εισόδου το ε)

Γράφουµε έναν κανόνα διαγραφής για κάθε σύµβολο της γλώσσας.

B. Θεωρία1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας3. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας

7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

ΚΑΘΑΡΟ:Το αυτόµατο που κατασκευάζουµε προσοµοιώνει τη λειτουργία της γραµµατικής χωρίς συµφραζόµενα: → |

Ο πίνακας µετάβασης είναι

Τελική κατάσταση είναι η q2

Αριθµός Κατ/ση ΣύµβολοΕισόδου

Σύµβολο Σωρού

Κίνηση Επεξήγηση

1 Ζ , Ζ Αρχικοποίηση

2.1 , Κανόνας ! →

2.2 , Κανόνας ! →

3.1 , Ταίριασµα

3.2 , Ταίριασµα

4 Ζ $, Ζ Αποδοχή

Οι υπόλοιποι συνδυασµοί ΤΙΠΟΤΑ

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 $ Ζ ΑΝΑΓΝΩΡΙΣΗ

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Ζ ΠΑΓΩΜΑ ΜΗΧΑΝΗΣ

B. Θεωρία1. Μη Ντετερµινιστικό Αυτόµατο Στοίβας4. Παράδειγµα Κατασκευής Μη Ντετερµινιστικού Αυτοµάτου Στοίβας

10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

ΠΑΡΑ∆ΕΙΓΜΑ 2: Να κατασκευαστεί Μη Ντετερµινιστικό Αυτόµατο Στοίβας που να αναγνωρίζει τις συµβολοσειρές της γλώσσας: n, m 0

ΠΡΟΧΕΙΡΟ:Αναλυτικά, µια γραµµατική χωρίς συµφραζόµενα που παράγει τις συµβολοσειρές της γλώσσας είναι:

• → ''

• → (

• ( → )(*

• ( →

q0 q1

(ε,Ζ0)→SΖ0q2

(ε,Ζ0)→Ζ0

(ε, )→''

(α,α)→ε(b,b)→ε

(ε, )→+(ε, +)→)(*(ε, +)→

(c,c)→ε

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 Ζ $, Ζ Αποδοχή

Οι υπόλοιποι συνδυασµοί ΤΙΠΟΤΑ

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

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Ζ0q2

(ε,Ζ0)→Ζ0

(ε,S)→0S1(ε,S)→ε

(0,0)→ε(1,1)→ε

Γ. ΑσκήσειςΕφαρµογή 1

∆ώστε Μη Ντετερµινιστικό Αυτόµατο Στοίβας για τη γλώσσα: 012|3 0

14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Γ. ΑσκήσειςΕφαρµογή 2

∆ώστε ένα µη ντετερµινιστικό αυτόµατο στοίβας M που να αναγνωρίζει τη γλώσσα L2 = ambbam+1 | m ∈ Ν, m ≥ 1.

15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Γ. ΑσκήσειςΕφαρµογή 3

A) Να δώσετε γραµµατική ανεξάρτητη συµφραζοµένων για τη γλώσσα L = xcy : x,y ∈ a, b*, |x| = |y| .Β) Να σχεδιάσετε µη ντετερµινιστικό αυτόµατο στοίβας, σύµφωνα µε το Θεώρηµα 8.2, που να αναγνωρίζει τη γλώσσα L. Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη συµβολοσειρά abbcaba.

16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας

Γ. ΑσκήσειςΕφαρµογή 3

Γ) Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη συµβολοσειρά aca.

∆) Να δώσετε τη λειτουργία του αυτοµάτου µε είσοδο τη συµβολοσειρά abbcaba.

17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 4.3: Μη Ντετερµινιστικά Αυτόµατα Στοίβας