✖

Bao đóng của ngôn ngữ chính quy

Cho ngôn ngữ chính quy L. Ta sẽ chứng minh bao đóng của ngôn ngữ L cũng là ngôn ngữ chính quy.

Bao đóng của ngôn ngữ là gì

Bao đóng (bao đóng Kleene) của ngôn ngữ L kí hiệu là L∗. Bao đóng gồm mọi xâu có thể tạo được bằng cách ghép một số hữu hạn xâu của ngôn ngữ L. Có thể định nghĩa bao đóng như sau:

L∗={a1∘a2∘⋯∘an|ai∈L,n∈N},

trong đó ∘ là phép ghép. Bao đóng chứa cả xâu rỗng, tức là ϵ.

Cách làm hình thức

Cách làm rất giống với trường hợp phép ghép hai ngôn ngữ. Chỉ khác là thay vì nối hai ôtômat khác nhau, ta nối một ôtômat với chính nó – từ các trạng thái kết thúc của ôtômat, ta vẽ các phép chuyển epsilon đến trạng thái bắt đầu của ôtômat. Tuy nhiên, bao đóng còn phải chứa xâu rỗng. Làm thế nào? Có thể biến trạng thái bắt đầu thành trạng thái kết thúc. Khi đó ôtômat sẽ đoán nhận xâu rỗng, nhưng cũng có thể đoán nhận thêm những xâu khác không thuộc bao đóng. Vì vậy, thay vào đó ta tạo một trạng thái bắt đầu mới và từ trạng thái này vẽ một phép chuyển epsilon đến trạng thái bắt đầu cũ.

Cho ngôn ngữ chính quy L1 và ôtômat đoán nhận ngôn ngữ đó:

A1=⟨Q1,Σ1,δ1,q0,F1⟩

Ta xây dựng ôtômat không đơn định A = ⟨Q, Σ, δ, qs, F⟩ với:

  • Q = Q1 ∪ {qs}
  • Σ= Σ1
  • F = F1 ∪ {qs}

Hàm chuyển trạng thái δ được định nghĩa như sau:

δ(q,a)={δ1(q,a)nếuq∈Q1∧q∉F1δ1(q,a)nếuq∈F1∧a≠ϵδ1(q,a)∪{q0}nếuq∈F1∧a=ϵ{q0}nếuq=qs∧a=ϵ∅nếuq=qs∧a≠ϵ

Ví dụ

Cho ôtômat A1 đoán nhận các xâu 00 và 11:

Bao đóng của ngôn ngữ L(A1) là ngôn ngữ gồm mọi xâu tạo bởi các cặp 00 và 11, chẳng hạn 0000, 110011, 11110000, … Để xây dựng ôtômat đoán nhận bao đóng này, ta tạo một trạng thái bắt đầu mới qs có phép chuyển epsilon đến trạng thái bắt đầu cũ q0, và thêm các phép chuyển epsilon từ các trạng thái q3 và q4 đến trạng thái q0:

Có thể kiểm tra rằng ôtômat này đoán nhận các xâu 0000, 110011, 11110000, nhưng chẳng hạn không đoán nhận xâu 1010.

Tài liệu tham khảo

Mục lục: Tính đóng của ngôn ngữ chính quy, Hợp của hai ngôn ngữ chính quy, Giao của hai ngôn ngữ chính quy, Hiệu của hai ngôn ngữ chính quy, Phần bù của ngôn ngữ chính quy, Phép ghép hai ngôn ngữ chính quy, Bao đóng của ngôn ngữ chính quy