Eşit sayıda 001 ve 100 içeren kelimelerin dili düzenli mi?


14

İki alt dizenin aynı sayıda örneğini içeren dillerin ne zaman düzenli olacağını merak ediyordum. Ben 1 ve 0'ların eşit sayıda içeren dil düzenli değil ama gibi bir dil olduğunu biliyoruz , = alt dize örneklerini sayısına "001" alt dize "örnekleri sayısına eşittir 100 " düzenli mi? "00100" dizesinin kabul edileceğini unutmayın.L { w }LL{w}

Sezgim bunun olmadığını söylüyor, ama bunu kanıtlayamıyorum; Bunu pompalama lemması yoluyla pompalanabilecek bir forma dönüştüremiyorum, o zaman bunu nasıl kanıtlayabilirim? Öte yandan, bir DFA veya bir NFA veya düzenli bir ifade oluşturmayı denedim ve bu cephelerde de başarısız oldum, bu yüzden nasıl devam etmeliyim? Bunu sadece önerilen dil için değil, genel olarak anlamak istiyorum.



2
Neden kendi çözümünüzü cevaplayamıyorsunuz?
Yuval Filmus

1
@YuvalFilmus Düşük itibarlı kullanıcıların kendi sorularını cevaplamaları için gecikme olur (temsilci <100 ise 8 saat).
Gilles 'SO- kötü olmayı bırak'

1
Muhtemelen döngü daha olmalı ? q 50q5
Hendrik Ocak

1
Bu fenomenin benzer bir örneği, ancak "01" ve "10" alt dizeleri için kardeş sitemizde tartışılmıştır Bir dilin kanıtlanması düzenli veya düzensizdir . Cevap yaptığı açıklamada yapılan wece olarak benzer sözler vardır: "Bu, bir 01 geçiş diğeri tarafından takip edilemez olduğu bir müdahale olmadan geçiş geçiş.". 100110
Hendrik Ocak

Yanıtlar:


3

Sorudan bir cevap çıkarıldı.

Hendrik Jan'ın işaret ettiği gibi, q5'te ek bir 0 otomatik döngü olmalıdır.

otomat


Bu bir inşaat, kanıt değil
vzn

CS sınıflarında basit problemler için bazen sadece DFA'lar verilir, ancak dili tam olarak kabul ettiğini kanıtlamaz. düzgün çalıştığı her giriş dizesi için [bir şekilde] göstermeniz gerekir. "o nasıl çalışır?"
Haziran'da vzn

2
Sanırım ve birleştirebilirsiniz . Bu doğru mu? q 2q5q2
J.-E.

3

Bu hileli bir soru. İki 001 içeren ve 100 içermeyen bir dize oluşturmayı deneyin ve neden yapamadığınızı görün. X = "001 sayısı" ve Y = "100 sayısı" ise, X = Y veya X = Y ± 1 ise.

Hile fark ettiğinizde, dilin düzensiz olması pek olası değildir ve daha sonra bir DFA oluşturmak oldukça basittir. Bir sonraki sembol 0/1 ise geçişleri olan yalnızca 8 durum vardır:

State S0: Input is empty. -> S1/C0

State S1: Input is 0. -> C2/C0

State A: Y = X + 1, input ends in 00. -> A/C0

State B0: X = Y + 1, input ends in 1. -> B1/B0

State B1: X = Y + 1, input ends in 10. -> C2/B0

State C0: X = Y, input ends in 1. -> C1/C0

State C1: X = Y, input ends in 10. -> A/C0

State C2: X = Y, input ends in 00. -> C2/B0

Başlangıç ​​durumu S0'dir ve S0, S1, C0, C1, C2 kabul eden durumlardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.