✖

Τομή κανονικών γλωσσών

Έστω δύο κανονικές γλώσσες L1, L2. Θα αποδείξουμε ότι η τομή τους L = L1 ∩ L2 είναι επίσης κανονική γλώσσα.

Η ιδέα της απόδειξης

Έχουμε δύο κανονικές γλώσσες L1 και L2 και θέλουμε να αποδείξουμε ότι η τομή τους L1 ∩ L2 είναι πάλι κανονική γλώσσα. Επειδή οι L1 και L2 είναι κανονικές γλώσσες, υπάρχουν πεπερασμένα αυτόματα A1 και A2 που αποδέχονται τις γλώσσες L1 και L2, δηλαδή ισχύει L(A1) = L1 και L(A2) = L2. Στη συνέχεια θα κατασκευάσουμε ένα πεπερασμένο αυτόματο A που θα αποδέχεται τη γλώσσα L1 ∩ L2, και έτσι θα αποδείξουμε ότι η γλώσσα L1 ∩ L2 είναι κανονική.

Μια λέξη ανήκει στην τομή των γλωσσών αν ανήκει στη γλώσσα L1 και ταυτόχρονα στη γλώσσα L2. Άρα τη λέξη πρέπει να την αποδέχεται το αυτόματο A1 και ταυτόχρονα το αυτόματο A2. Θα χρησιμοποιήσουμε ακριβώς την ίδια ιδέα που χρησιμοποιήσαμε στην ένωση κανονικών γλωσσών, αλλάζοντας μόνο το σύνολο των τελικών καταστάσεων.

Αυστηρή διατύπωση της μεθόδου

Έχουμε δύο αυτόματα,

A1=⟨Q1,Σ1,δ1,q0,F1⟩A2=⟨Q2,Σ2,δ2,p0,F2⟩

Κατασκευάζουμε το αυτόματο A = ⟨Q, Σ, δ, q, F⟩ που αποδέχεται τη γλώσσα L(A1) ∩ L(A2). Ισχύει ότι

  • Q = Q1 × Q2
  • Σ= Σ1 ∩ Σ2
  • q = ⟨q0, p0⟩
  • F = F1 × F2

Για τη συνάρτηση μετάβασης δ θα ισχύει η ακόλουθη σχέση:

∀q∈Q1,p∈Q2:δ(⟨q,p⟩,a)=⟨δ1(q,a),δ2(p,a)⟩

Παράδειγμα

Έστω το αυτόματο A1, που αποδέχεται όλες τις λέξεις που περιέχουν άρτιο πλήθος μονάδων:

και το αυτόματο A2, που αποδέχεται τις λέξεις που περιέχουν περιττό πλήθος μηδενικών:

Θα κατασκευάσουμε το αυτόματο που θα αποδέχεται την τομή αυτών των γλωσσών. Το σύνολο καταστάσεων του αυτομάτου έχει τη μορφή Q = Q1 × Q2, η αρχική κατάσταση είναι η ⟨q0, p0⟩ και οι τελικές καταστάσεις είναι τα στοιχεία του F1 × F2:

Στη συνέχεια συμπληρώνουμε τις μεταβάσεις με τον τύπο δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩:

Σε αυτό το αυτόματο, για παράδειγμα, από την κατάσταση ⟨q0, p0⟩ υπάρχει μετάβαση για το σύμβολο 0 στην κατάσταση ⟨q0,p1⟩. Αυτό σημαίνει ότι το αυτόματο A1 έχει από την κατάσταση q0 μετάβαση για το σύμβολο 0 πίσω στην κατάσταση q0. Το αυτόματο A2 έχει για το σύμβολο 0 μετάβαση από την κατάσταση p0 στην κατάσταση p1.

Μπορούμε να δοκιμάσουμε το αυτόματο. Θα πρέπει να αποδέχεται λέξεις όπως η 110 ή η 00000 (περιέχουν άρτιο πλήθος μονάδων και ταυτόχρονα περιττό πλήθος μηδενικών), αλλά δεν θα πρέπει να αποδέχεται λέξεις όπως οι 11, 111, 1010.

Πηγές

Κεφάλαια: Κλειστότητα κανονικών γλωσσών, Ένωση, Τομή, Διαφορά, Συμπλήρωμα, Παράθεση, Κλειστότητα Kleene