Düzenli Dillerin Birleştirilmesi
İki düzenli dil L1, L2 olsun. Bunların birleştirilmesiyle (art arda eklenmesiyle) elde edilen L = L1 ∘ L2 dilinin de düzenli bir dil olduğunu ispatlayacağız.
Birleştirme Nedir?
“010” ve “1111” sözcüklerini birleştirirsek “0101111” sözcüğünü elde ederiz. Dilleri birleştirdiğimizde de yeni bir dil oluşur: birinci dilin her sözcüğünü ikinci dilin her sözcüğüyle birleştiririz. İki sözcüğün ve iki dilin birleştirilmesini küçük daire simgesiyle göstereceğiz: ∘. Buna göre L1 ve L2 dillerinin birleştirilmesini şöyle tanımlayabiliriz:
İspatın Fikri
İki düzenli dilimiz L1, L2 ve bu dilleri kabul eden iki otomatımız var:
A1 ve A2 otomatlarını “içinde barındıran” deterministik olmayan bir A = ⟨Q, Σ, δ, q, F⟩ otomatı kuracağız. Temel fikir şu: sözcüğü önce A1 otomatıyla kabul etmeye başlarız; A1 otomatı bir kabul durumuna ulaşınca sözcüğün geri kalan kısmını da A2 otomatıyla kabul etmeyi deneriz. Bu otomat da sözcüğün o kısmını kabul ederse A otomatı sözcüğü kabul eder.
Örnek
Yalnızca sıfırlardan oluşan boş olmayan sözcükleri ve bir 1’den sonra yalnızca sıfırların geldiği sözcükleri (1, 10, 100, …) kabul eden A1 otomatı şu olsun:
Bir de 01 ile biten sözcükleri kabul eden A2 otomatı olsun:
Otomatları şöyle birleştiririz: A1 otomatının tüm kabul durumlarından A2 otomatının başlangıç durumuna ε-geçişleri ekleriz, sonra A1 otomatının kabul durumlarını sıradan durumlara çeviririz. Yeni otomatın başlangıç durumu A1 otomatının başlangıç durumu olur:
Otomat nasıl çalışır? Önce A1 otomatının çalışmasının benzetimini yapmaya başlarız. Eski kabul durumlarından q1 ya da q2 durumuna geçersek A1 otomatının sözcüğün bir kısmını kabul ettiğini biliriz. Sözcüğün tamamının L1 ∘ L2 diline ait olması için geri kalan kısmını da ikinci otomat A2 kabul etmelidir; bu yüzden eski kabul durumlarının hepsinden A2 otomatının eski başlangıç durumuna ε-geçişleri çıkar.
Örnek olarak 0001 sözcüğünü alalım. Bu sözcük iki dilin birleştirilmesine aittir, çünkü 00 ∘ 01 sözcüklerinin birleştirilmesiyle oluşabilir. Ama aynı şekilde 0 ∘ 001 sözcüklerinin birleştirilmesiyle de oluşabilir. Bizim otomatımızda iki yolun da benzetimini yapabiliriz. Otomat şu yolu izleyebilir:
Bu yolda otomat önce sözcüğün 00 kısmını, sonra 01 kısmını “kabul eder”. Ya da şu yolu izleyebilir:
ve böylece önce sözcüğün 0 kısmını, sonra 001 kısmını “kabul eder”. Her iki durumda da elbette p2 kabul durumuna ulaşırız.
Biçimsel Yöntem
Bir kez daha: iki düzenli dilimiz L1, L2 ve bu dilleri kabul eden iki otomatımız var:
Aşağıdaki koşulları sağlayan deterministik olmayan bir A = ⟨Q, Σ, δ, q, F⟩ otomatı kuruyoruz:
- Q = Q1 ∪ Q2 (ayrıca Q1 ∩ Q2 = ∅ olduğunu varsayıyoruz)
- Σ= Σ1 ∪ Σ2
- q = q0
- F = F2
Geçiş fonksiyonu δ’yı adım adım oluştururuz:
Kaynaklar
Bölümler: Düzenli Dillerin Kapalılığı, Düzenli Dillerin Birleşimi, Düzenli Dillerin Kesişimi, Düzenli Dillerin Farkı, Düzenli Dilin Tümleyeni, Düzenli Dillerin Birleştirilmesi, Düzenli Dilin Kleene Kapanışı