✖

Сечение на регулярни езици

Нека имаме два регулярни езика 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.

Източници

Глави: Затвореност на регулярните езици, Обединение на регулярни езици, Сечение на регулярни езици, Разлика на регулярни езици, Допълнение на регулярен език, Конкатенация на регулярни езици, Затваряне на регулярен език