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

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

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

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

Θεωρία Υπολογισμού. Ενότητα 7 : Ντετερμινιστικά Πεπερασμένα Αυτόματα, Κανονικές Πράξεις. Αλέξανδρος Τζάλλας

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (1) Προβλήµατα και Γλώσσες. Σε αυτό το µάθηµα. ιαδικαστικά του Μαθήµατος.

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

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

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

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

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

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

HEAD INPUT. q0 q1 CONTROL UNIT

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

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

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

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

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

Στοιχεία Θεωρίας Υπολογισµού (2): Πεπερασµένα Αυτόµατα, Κανονικές Εκφράσεις

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

Σύνοψη Προηγούµενου. Κανονικές Γλώσσες (3) Παραδείγµατα µε Κανονικές Εκφράσεις. Σε αυτό το µάθηµα.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

q 0 q 0.2 q 0.1 q 0.05 q 0.05 q 0.25 q 0.15 q 0.1 q 0.2 q 0.25 q 0.25 q 0.25

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

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

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

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

ΠΛΗ30 ΕΝΟΤΗΤΑ 3: ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ. Μάθηµα 3.2: ηµήτρης Ψούνης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μοντελοποίηση Υπολογισμού. Γραμματικές Πεπερασμένα Αυτόματα Κανονικές Εκφράσεις

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

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

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

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

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

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

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

CSC 314: Switching Theory

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

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Ποιές οι θεµελιώδεις δυνατότητες και ποιοί οι εγγενείς περιορισµοί των υπολογιστών ; Τί µπορούµε και τί δε µπορούµε να υπολογίσουµε (και γιατί);

Στοιχεία Θεωρίας Υπολογισµού (1): Τυπικές Γλώσσες, Γραµµατικές

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

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

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

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

Αριθμοθεωρητικοί Αλγόριθμοι

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

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

Transcript:

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του υπολογισμού Σχεδίαση πεπερασμένων αυτομάτων Ανταιτιοκρατία (Κεφάλαιο.2, Sipser) Ορισμός μη ντετερμινιστικών αυτομάτων Ισοδυναμία ντετερμινιστικών και μη ντετερμινιστικών αυτομάτων Κλειστότητα ως προς τις κανονικές πράξεις ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-

Πεπερασμένα αυτόματα Ερώτημα: Τι είναι υπολογιστής; Ποιες οι δυνατότητές του; Ποιοι οι περιορισμοί του; Η Θεωρία Υπολογισμού επιδιώκει να απαντήσει στα ερωτήματα αυτά στα πλαίσια διάφορων υπολογιστικών μοντέλων. Πεπερασμένα αυτόματα: Απλούστερο υπολογιστικό μοντέλο Περιορισμένη μνήμη ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-2

Αναπαράσταση Πεπερασμένων Αυτομάτων Γραφήματα με βάρη Κορυφές καταστάσεις Ακμές μεταβάσεις Βάρη ενέργειες που προκαλούν τη μετάβαση ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-3

Διασταύρωση Μια σιδηροδρομική γραμμή διασταυρώνεται με κάποιο δρόμο. Τ Π Ε Τ: τραίνο Π: πύλη Ε: Ελεγκτής Ένας ελεγκτής πρέπει να κλείνει την πύλη κάθε φορά που το τραίνο πλησιάζει: Όταν δεν υπάρχει τραίνο κοντά στο δρόμο η πύλη μπορεί και πρέπει να είναι ανοικτή Όταν πλησιάζει κάποιο τραίνο στο δρόμο, αν η πύλη είναι ανοικτή πρέπει να κλείσει και αν είναι κλειστή πρέπει να παραμείνει κλειστή Όταν το τραίνο απομακρύνεται και η πύλη είναι κλειστή τότε μπορεί να ανοίξει. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-4

Καταστάσεις ελεγκτή Κλείσε την πύλη: close Άνοιξε την πύλη: open Μηνύματα προς ελεγκτή Διασταύρωση Το τραίνο πλησιάζει: train_approaching Το τραίνο φεύγει: train_leaving Δεν υπάρχει τραίνο: no_train no_train train_leaving no_train train_leaving open close train_approaching train_approaching ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-5

Διασταύρωση Καταστάσεις ελεγκτή Κλείσε την πύλη: close Άνοιξε την πύλη: open Διάγραμμα Καταστάσεων Μηνύματα προς ελεγκτή Το τραίνο πλησιάζει: train_approaching Το τραίνο φεύγει: train_leaving Δεν υπάρχει τραίνο: no_train no_train train_leaving no_train train_leaving open close train_approaching train_approaching no_train train_approaching train_leaving Πίνακας Μεταβάσεων: open open close open close open close open ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-6

Αναγνώριση συμβολοσειρών Θέλουμε να αναγνωρίσουμε κατά πόσο μια ακολουθία τελειώνει στη συμβολοσειρά «μαι» Καταστάσεις Έχω δει συμβολοσειρά που τελειώνει σε «μ»: είδα μ Έχω δει συμβολοσειρά που τελειώνει σε «μα»: είδα μα Έχω δει συμβολοσειρά που τελειώνει σε «μαι»: είδα μαι Η συμβολοσειρά που έχω δει δεν τελειώνει σε κανένα από τα πιο πάνω: κανένα Όχι μ Όχι μ ή α μ Όχι μ ή ι μ κανένα είδα μ είδα μα είδα μαι μ α ι εκκίνηση Όχι μ μ ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-7

Πεπερασμένα Αυτόματα Ορισμός ΟΡΙΣΜΟΣ Πεπερασμένο αυτόματο είναι μια πεντάδα (Q, Σ, δ, q 0, F), όπου. Q είναι ένα πεπερασμένο σύνολο, τα στοιχεία του οποίου ονομάζονται καταστάσεις, 2. Σείναι ένα πεπερασμένο σύνολο, που ονομάζεται αλφάβητο, 3. δ: Q Σ Q, είναι η συνάρτηση μεταβάσεων, 4. q 0 Q είναι η εναρκτήρια κατάσταση (αρχική κατάσταση), 5. F είναι το σύνολο των καταστάσεων αποδοχής (τελικές καταστάσεις). Πεπερασμένα αυτόματα, ντετερμινιστικά αυτόματα, deterministic automata, DFA ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-8

Παράδειγμα Πεπερασμένου Αυτομάτου M = (Q, Σ, δ, q, F), όπου Q= {q, q 2, q 3 } Σ = {0,} η συνάρτηση μεταβάσεων δ περιγράφεται στον πίνακα εναρκτήρια κατάσταση είναι η q και F = {q 2 } 0 q q q 2 q 2 q 3 q 2 q 3 q 2 q 2 0 0 q q 2 q 3 0, ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-9

Επεξεργασία Αυτομάτων Έστω μια λέξη w = w w 2 w n. Όταν το αυτόματο Μ λάβει την λέξη w την επεξεργάζεται ως εξής: Ξεκινώντας από την εναρκτήρια κατάσταση τo αυτόματο λαμβάνει τα σύμβολα της λέξης ένα προς ένα. Μετά από την ανάγνωση κάθε συμβόλου, το αυτόματο μεταβαίνει από την τρέχουσα κατάσταση σε μία καινούρια κατάσταση επιλέγοντας τη μετάβαση που επιγράφεται με το συγκεκριμένο σύμβολο. Μετά από την επεξεργασία και του τελευταίου συμβόλου το αυτόματο παράγει μια έξοδο: Παράδειγμα Αν βρίσκεται σε κατάσταση αποδοχής, η έξοδος είναι αποδοχή Διαφορετικά η έξοδος είναι απόρριψη 0 q 0 q α 2 q 3 Λέξη 000: Απόρριψη Λέξη 00: Αποδοχή Λέξη 000000: Αποδοχή 0, ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-0

Ορολογία Γλώσσα του αυτομάτου Μ, L(M): το σύνολο όλων των λέξεων του αποδέχεται το αυτόματο Μ. Αν L(M) = Α τότε λέμε ότι το Μ αναγνωρίζει την Α Κάθε αυτόματο αποδέχεται πολλές λέξεις αλλά αναγνωρίζει μια μόνο γλώσσα Ποια η γλώσσα του αυτόματου M ; 0 0 q q α 2 q 3 0, L(M ) = {w η w περιέχει τουλάχιστον ένα σύμβολο και το τελευταίο ακολουθείται από άρτιο αριθμό 0} ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-

Παράδειγμα Μ 2 =({q, q 2 }, {0, }, δ, q, {q 2 }) 0 q q q 2 q 2 q q 2 Διάγραμμα Καταστάσεων: 0 q 0 q 2 L(M 2 )=;; Δοκιμάζουμε κάποιες λέξεις εισόδου 0,, 00, 00, 00 L(M 2 ) = {w w τελειώνει σε } ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-2

Παράδειγμα Μ 3 =({q, q 2 }, {0, }, δ, q, {q }) 0 q q q 2 q 2 q q 2 Διάγραμμα Καταστάσεων: 0 q 0 q 2 L(M 3 )= ;; L(M 3 ) = {w w τελειώνει σε 0 ή έχει μήκος 0} ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-3

Ορισμός του υπολογισμού To αυτόματο M = (Q, Σ, δ, q 0, F) αποδέχεται μια λέξη w = w w 2 w n Σ n αν υπάρχει ακολουθία καταστάσεων r 0, r,, r n του Q που να ικανοποιεί τις συνθήκες: r 0 = q 0 δ(r i, w i+ ) = r i+ για i = 0,,n, και r n F Το αυτόματο Μ αναγνωρίζει τη γλώσσα Α αν: A = {w το Μ αποδέχεται την w} ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-4

Κανονική Γλώσσα ΟΡΙΣΜΟΣ Μια γλώσσα λέγεται κανονική αν υπάρχει πεπερασμένο αυτόματο που να την αναγνωρίζει. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-5

Σχεδίαση Αυτομάτων Πρόβλημα: Δοθείσας μιας γλώσσας σχεδιάστε ένα αυτόματο που να την αναγνωρίζει. Παράδειγμα : Α = {w w έχει άρτιο αριθμό από } Βήμα : Καθορισμός καταστάσεων Έλεγχος κάθε συμβόλου και αν το τμήμα της λέξης που εξετάστηκε ανήκει ή όχι στη γλώσσα Καθορισμός πληροφοριών που πρέπει να θυμόμαστε:. είτε ο αριθμός των που διαβάσαμε είναι άρτιος 2. είτε ο αριθμός των που διαβάσαμε είναι περιττός Αποδίδουμε σε κάθε περίπτωση μια κατάσταση q άρτιο q περιττό ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-6

Βήμα 2: Καθορισμός Μεταβάσεων Σχεδίαση Αυτομάτων Με βάση το πώς πρέπει να μετακινηθούμε μετά την ανάγνωση ενός συμβόλου Ανάγνωση 0: αριθμός δεν αλλάζει άρα μένουμε στην ίδια κατάσταση Ανάγνωση : αριθμός αλλάζει άρα αν είμαστε στο q άρτιο πάμε q περιττό και ανάποδα 0 0 q άρτιο q περιττό ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-7

Σχεδίαση Αυτομάτων Βήμα 3: Καθορισμός εναρκτήριας κατάστασης Αντιστοιχεί στην περίπτωση της λέξης με 0 σύμβολα. Εναρκτήρια το q άρτιο αφού σε 0 σύμβολα το πλήθος των είναι άρτιο Βήμα 4: Καθορισμός Τελικών Καταστάσεων Στην περίπτωσή μας το q άρτιο 0 0 q άρτιο q περιττό ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-8

Πράξεις σε Κανονικές Γλώσσες Έστω δυο γλώσσες Α και Β: Ένωση: Συναρμογή (Σύμπτυξη): Σώρευση: ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-9

Κλειστότητα ΟΡΙΣΜΟΣ Ένα σύνολο είναι κλειστό ως προς κάποια πράξη αν η πράξη αυτή, όταν εκτελείται σε μέλη του συνόλου, επιστρέφει ένα αντικείμενο που ανήκει επίσης στο σύνολο. Παράδειγμα Το σύνολο των φυσικών είναι κλειστό ως προς τον πολλαπλασιασμό Το σύνολο των φυσικών δεν είναι κλειστό ως προς την διαίρεση ΘΕΩΡΗΜΑ Η κλάση των κανονικών γλωσσών είναι κλειστή ως προς τις κανονικές πράξεις. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-20

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

Παράδειγμα () Έστω οι γλώσσες Α ={w η λέξη w τελειώνει σε 0 ή έχει μήκος 0} Α 2 ={w η λέξη w έχει άρτιο μήκος} Α Α 2 : όλες οι λέξεις που είτε έχουν άρτιο μήκος είτε τελειώνουν σε 0 0 0, q in0 q in q even q odd 0 0, Αυτόματο Μ Αυτόματο Μ 2 ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-22

Παράδειγμα (2) 0 0, q in0 0 q in q even 0, q odd Αυτόματο Μ Αυτόματο Μ 2 Λέξεις που τελειώνουν σε 0 και έχουν άρτιο μήκος 0 q q 2 0 Λέξεις που τελειώνουν σε 0 και έχουν περιττό μήκος 0 0 Λέξεις που τελειώνουν σε και έχουν περιττό μήκος q 3 q 4 Αυτόματο Μ Λέξεις που τελειώνουν σε και έχουν άρτιο μήκος ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-23

Απόδειξη κλειστότητας ως προς την ένωση Κατασκευαστική Έστω Μ = (Q, Σ, δ, q, F ) και Μ 2 = (Q 2, Σ, δ 2, q 2, F 2 ). Κατασκευάζουμε το Μ = (Q, Σ, δ, q 0, F) ως εξής: Q = {(r, r 2 ) r Q, r 2 Q 2 } Σ: το αλφάβητο είναι το ίδιο με αυτό των Μ και Μ 2. Για κάθε (r, r 2 ) Q και a Σ, θέτουμε δ((r, r 2 ), a) = (δ (r, a), δ 2 (r 2, a)) q 0 = (q, q 2 ) F = {(r, r 2 ) Q r F ή r 2 F 2 } Μπορούμε να δείξουμε ότι για οποιαδήποτε λέξη w επί του αλφάβητου Σ: w L(Μ) αν και μόνο αν w L(Μ ) L(Μ 2 ) (Δείξτε το!) ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-24

Ανταιτιοκρατία Αιτιοκρατία: από κάθε κατάσταση, για κάθε σύμβολο η επόμενη κατάσταση είναι καθορισμένη και μοναδική. Ανταιτιοκρατία: γενίκευση της αιτιοκρατίας Ενδέχεται να υπάρχουν περισσότερες από μια επιλογές για την επόμενη κατάσταση. Ανταιτιοκρατικά αυτόματα, μη ντετερμινιστικά αυτόματα, nondeterministic automata, NFA 0, 0,ε q q 2 q 3 q 4 0, Διαφορές από DFA Από κάθε κατάσταση μπορούν να εκκινούν μηδέν, ένα, ή περισσότερα βέλη για κάθε σύμβολο του αλφαβήτου Προσθέτει το σύμβολο εστο αλφάβητο. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-25

Πως υπολογίζει ένα NFA; 0, 0,ε q q 2 q 3 q 4 0, Έστω βρισκόμαστε στην q και λαμβάνουμε Το αυτόματο διασπάται σε πολλαπλά αντίγραφα του εαυτού του και ακολουθεί όλες τις δυνατότητες παράλληλα. Αν σε κάποιο αντίγραφο το επόμενο σύμβολο εισόδου δεν εμφανίζεται σε κανένα από τα βέλη τότε το αντίγραφο «σβήνει». Το αυτόματο τερματίζει αν στο τέλος της ανάγνωσης της εισόδου υπάρχει έστω και ένα αντίγραφο που οδηγεί σε κατάσταση αποδοχής. Τι γίνεται όταν σε κάποια κατάσταση ξεκινά μονοπάτι με το σύμβολο ε; Χωρίς να διαβάσει κανένα σύμβολο της λέξης εισόδου, το αυτόματο διασπάται σε αντίγραφα, το ένα παραμένει στην τρέχουσα κατάσταση και τα υπόλοιπα ακολουθούν τα εξερχόμενα βέλη με επιγραφή «ε». ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-26

Δέντρο Υπολογισμού Ένα NFA μπορεί να τύχει ερμηνείας ως ένα δένδρο δυνατοτήτων: Η ρίζα του δέντρου αντιστοιχεί στην αρχή του υπολογισμού. Κάθε σημείο διακλάδωσης αντιστοιχεί σε ένα σημείο του υπολογισμού στο οποίο το αυτόματο έχει πολλαπλές επιλογές. Το αυτόματο αποδέχεται αν έστω και ένα από τα μονοπάτια αυτού του δένδρου καταλήγει σε κατάσταση αποδοχής. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-27

Παράδειγμα 0, 0, 0,ε q q 2 q 3 q 4 Πως προχωρά ο υπολογισμός πάνω στη λέξη 000 q q q q q q 2 q 2 q 3 q q q 2 q 3 q 3 q 3 q 4 q 4 q 3 q 4 q 4 q 4 0 0 0 ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-28

Παράδειγμα 0, 0, 0,ε q q 2 q 3 q 4 Ποια γλώσσα αναγνωρίζει το αυτόματο; Τη γλώσσα με όλες τις λέξεις που έχουν ως υπολέξη το 0 ή το ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-29

Χρησιμότητα NFA Κάθε NFA μπορεί να μετατραπεί σε ένα αντίστοιχο ισοδύναμο DFA Τα NFA είναι συνήθως μικρότερα Η λειτουργία ενός NFA είναι ευκολότερα κατανοητή Η κατασκευή ενός NFA είναι ευκολότερη ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-30

Παράδειγμα Α = {w w περιέχει το σύμβολο στην τρίτη θέση από το τέλος} 0000 ανήκει στην Α 0 δεν ανήκει 0, 0, 0, q q 2 q 3 q 4 Ποιο είναι το αντίστοιχο ντετερμινιστικό; ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-3

Χρήση «ε»-μεταβάσεων Το αυτόματο αποδέχεται όλες τις λέξεις 0 k όπου το k μπορεί να είναι οποιοσδήποτε ακέραιος ο οποίος είναι είτε πολλαπλάσιο του 2 είτε πολλαπλάσιο του 3. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-32

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

Παράδειγμα NFA N =, Σ, δ,,, όπου = {q, q 2, q 3, q 4 } Σ 0, η συνάρτηση μεταβάσεων περιγράφεται στον πίνακα εναρκτήρια κατάσταση είναι η και F = {q 4 } 0 ε q {q } {q,q 2 } q 2 {q 3 } {q 3 } q 3 {q 4 } q 3 {q 4 } {q 4 } 0, 0, 0,ε q q 2 q 3 q 4 ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-34

Ορισμός του υπολογισμού To αυτόματο Ν =, Σ, δ,, αποδέχεται μια λέξη w αν αυτή μπορεί να γραφτεί στη μορφή w = y y 2 y m όπου y i Σ ε αν υπάρχει ακολουθία καταστάσεων r 0, r,, r m του που να ικανοποιεί τις συνθήκες: r 0 = δ,, για i = 0,,m, και r m F Το αυτόματο N αναγνωρίζει τη γλώσσα Α αν: A = {w το N αποδέχεται την w} ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-35

Ισοδυναμία NFA με DFA ΘΕΩΡΗΜΑ Για κάθε μη ντετερμινιστικό πεπερασμένο αυτόματο υπάρχει ισοδύναμο ντετερμινιστικό. Ιδέα απόδειξης Πρέπει να δείξουμε ότι αν μια γλώσσα αναγνωρίζεται από κάποιο μη ντετερμινιστικό αυτόματο, υπάρχει ντετερμινιστικό αυτόματο που την αναγνωρίζει. Κατασκευή ενός ντετερμινιστικού αυτόματου που να προσομοιώνει το μη ντετερμινιστικό Υπόδειξη: Κάθε σύμβολο στο NFA μας οδηγεί σε ένα σύνολο καταστάσεων Αυτό το σύνολο πρέπει να αντιπροσωπεύει μια κατάσταση του ντετερμινιστικού αυτομάτου. Άρα οι καταστάσεις του DFA θα περιέχουν όλα τα δυνατά υποσύνολα των καταστάσεων του NFA ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-36

Κατασκευαστική Απόδειξη Θεωρήματος Έστω το NFA N = (Q, Σ, δ, q 0, F) Κατ αρχή, ας υποθέσουμε ότι το Ν δεν περιέχει μεταβάσεις «ε». Κατασκευάζουμε το Μ = (Q, Σ, δ, q 0, F ) ως εξής: Q = (το δυναμοσύνολο του Q) Σ: το αλφάβητο είναι το ίδιο με αυτό του Ν Για κάθε R Q και a Σ, θέτουμε δ (R, a) = {q Q q δ(r, a) για κάποιο r R} q 0 = q 0 F = {R Q το R περιέχει κάποια κατάσταση αποδοχής του Ν} ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-37

Ισοδυναμία NFA με DFA (Απόδειξη) Μετατροπή μεταβάσεων ε: E(R) = { q η q είναι προσπελάσιμη από το R μέσω μηδέν ή περισσοτέρων μεταβάσεων «ε»} Ορθότητα Κατασκευής: Σε κάθε βήμα του υπολογισμού του Μ επί κάποιας εισόδου, το Μ βρίσκεται σε μια κατάσταση που αντιστοιχεί στο σύνολο των καταστάσεων που θα μπορούσε να βρίσκεται το Ν στο σημείο εκείνο. Μπορούμε να δείξουμε ότι για οποιαδήποτε λέξη w επί του αλφάβητου Σ: w L(Μ) αν και μόνο αν w L(Ν) (Δείξτε το!) ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-38

ΝFA και Κανονικές Γλώσσες ΠΟΡΙΣΜΑ Μια γλώσσα είναι κανονική αν και μόνο αν υπάρχει μη ντετερμινιστικό πεπερασμένο αυτόματο που να την αναγνωρίζει. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-39

Παράδειγμα: NFA to DFA Ποιο είναι το DFA που αντιστοιχεί στο πιο κάτω NFA; b q ε a a q 2 q a,b 3 Μ =, Σ, δ,, = {, {q }, {q 2 }, {q 3 }, {q, q 2 }, {q, q 3 }, {q 2, q 3 }, {q, q 2, q 3 }} Σ = {a, b} q 0 = E({q }) = {q, q 3 } F = {{q }, {q, q 2 }, {q, q 3 }, {q, q 2, q 3 }} δ = ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-40

Πράξεις σε Κανονικές Γλώσσες Έστω δυο γλώσσες Α και Β: Ένωση: Συναρμογή (Σύμπτυξη): Σώρευση: ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-4

ΘΕΩΡΗΜΑ Κλειστότητα ως προς την ένωση Το σύνολο των κανονικών γλωσσών είναι κλειστό ως προς την ένωση. Το θεώρημα αυτό έχει ήδη αποδειχθεί χρησιμοποιώντας πεπερασμένα ντετερμινιστικά αυτόματα (διαφάνεια 2-24). Θα δούμε τώρα μια απλουστευμένη απόδειξη χρησιμοποιώντας μηντετερμινιστικά αυτόματα. Η απόδειξη είναι και πάλι κατασκευαστική. Βασική Ιδέα: Αφού οι Α και Α 2 είναι κανονικές γλώσσες τότε υπάρχουν μη ντετερμινιστικά αυτόματα Ν και Ν 2 που τις αναγνωρίζουν. Συνδυάζουμε τα Ν και Ν 2 για να κτίσουμε αυτόματο Ν που να αναγνωρίζει τη γλώσσα Α Α 2. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-42

Απόδειξη κλειστότητας ως προς την ένωση Έστω Ν και Ν 2 μη ντετερμινιστικά αυτόματα που αναγνωρίζουν τις γλώσσες Α και Α 2 αντίστοιχα. Κτίζουμε το Ν ως εξής: Εισάγουμε μια καινούρια αρχική κατάσταση η οποία διακλαδώνεται προς τις αρχικές καταστάσεις των μηχανών Ν και Ν 2 μέσω μεταβάσεων ε. Ν Ν ε Ν 2 ε ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-43

Απόδειξη κλειστότητας ως προς την ένωση Έστω Ν = (Q, Σ, δ, q, F ) και Ν 2 = (Q 2, Σ, δ 2, q 2, F 2 ). Κατασκευάζουμε το Ν = (Q, Σ, δ, q 0, F) ως εξής: Q = {q 0 } Q Q 2 Σ: το αλφάβητο είναι το ίδιο με αυτό των Ν και Ν 2. Για κάθε q Q και a Σ, θέτουμε Αρχική κατάσταση είναι η καινούρια κατάσταση q 0 F = F F 2 Μπορούμε να δείξουμε ότι για οποιαδήποτε λέξη w επί του αλφάβητου Σ: w L(Ν) αν και μόνο αν w L(Ν ) L(Ν 2 ) (δείξτε το!) ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-44 ε ε

Παράδειγμα 0 0, q in0 0 q in q even 0, q odd Αυτόματο Ν Αυτόματο Ν 2 0 ε q in0 0 q in q 0 ε q even 0, 0, q odd Αυτόματο Ν ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-45

Κλειστότητα ως προς τη συναρμογή ΘΕΩΡΗΜΑ Το σύνολο των κανονικών γλωσσών είναι κλειστό ως προς τη συναρμογή. Δηλαδή: Αν οι γλώσσες Α και Α 2 είναι κανονικές γλώσσες τότε το ίδιο ισχύει για την γλώσσα Α Α 2. Κατασκευαστική απόδειξη Βασική Ιδέα: Αφού οι Α και Α 2 είναι κανονικές γλώσσες τότε υπάρχουν μη ντετερμινιστικά αυτόματα Ν και Ν 2 που τις αναγνωρίζουν. Συνδυάζουμε τα Ν και Ν 2 για να κτίσουμε αυτόματο Ν που να αναγνωρίζει τη γλώσσα Α Α 2. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-46

Κλειστότητα ως προς τη συναρμογή Έστω Ν και Ν 2 μη ντετερμινιστικά αυτόματα που αναγνωρίζουν τις γλώσσες Α και Α 2 αντίστοιχα. Κτίζουμε το Ν ως εξής: Επιλέγουμε ως αρχική κατάσταση την αρχική κατάσταση του Ν και ως τελικές καταστάσεις τις τελικές καταστάσεις του Ν 2. Οι τελικές καταστάσεις του Ν συνδέονται μέσω ε μεταβάσεων με τις αρχικές καταστάσεις του Ν 2. Ν Ν 2 ε ε Ν ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-47

Κλειστότητα ως προς τη συναρμογή Έστω Ν = (Q, Σ, δ, q, F ) και Ν 2 = (Q 2, Σ, δ 2, q 2, F 2 ). Κατασκευάζουμε το Ν = (Q, Σ, δ, q 0, F) ως εξής: Q = Q Q 2 Σ: το αλφάβητο είναι το ίδιο με αυτό των Ν και Ν 2. Για κάθε q Q και a Σ, θέτουμε q ε ε q 0 = q F = F 2 Μπορούμε να δείξουμε ότι για οποιαδήποτε λέξη w επί του αλφάβητου Σ: w L(Ν) αν και μόνο αν w L(Ν )L(Ν 2 ) (δείξτε το!) ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-48

Κλειστότητα ως προς τη σώρευση ΘΕΩΡΗΜΑ Το σύνολο των κανονικών γλωσσών είναι κλειστό ως προς τη σώρευση. Δηλαδή: Αν η γλώσσα Α είναι κανονική γλώσσα τότε το ίδιο ισχύει για τη γλώσσα Α*. Κατασκευαστική απόδειξη Βασική Ιδέα: Αφού η Α είναι κανονική γλώσσα τότε υπάρχει μη ντετερμινιστικό αυτόματο Ν που την αναγνωρίζει. Επεξεργαζόμαστε το Ν για να κτίσουμε αυτόματο Ν που αναγνωρίζει τη γλώσσα Α*. ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-49

Κλειστότητα ως προς τη σώρευση Έστω Ν μη ντετερμινιστικό αυτόματο που αναγνωρίζει τη γλώσσα Α. Κτίζουμε το Ν ως εξής: Εισάγουμε μια νέα αρχική κατάσταση η οποία είναι και τελική (0 επαναλήψεις των λέξεων του Α). Συνδέουμε την κατάσταση αυτή μέσω μιας ε μετάβασης με την αρχική κατάσταση του Ν. Οι τελικές καταστάσεις του Ν συνδέονται μέσω ε μεταβάσεων με τις αρχικές καταστάσεις του Ν. Ν ε ε Ν ε ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-50

Κλειστότητα ως προς τη σώρευση Έστω Ν = (Q, Σ, δ, q, F ). Κατασκευάζουμε το Ν = (Q, Σ, δ, q 0, F) ως εξής: Q = {q 0 } Q Σ: το αλφάβητο είναι το ίδιο με αυτό του Ν. Για κάθε q Q και a Σ, θέτουμε q ε ε ε ε Αρχική κατάσταση είναι η q 0. F = {q 0 } F Μπορούμε να δείξουμε ότι για οποιαδήποτε λέξη w επί του αλφάβητου Σ: w L(Ν) αν και μόνο αν w L(Ν ) *. (δείξτε το!) ΕΠΛ 2 Θεωρία Υπολογισμού και Πολυπλοκότητα 2-5