001と100の等しい数を含む単語の言語は規則的ですか?


14

2つのサブストリングの同じ数のインスタンスを含む言語がいつ正規化されるのだろうと思いました。Iは1と0の等しい数を含む言語が正規ではないことを知っているが、のような言語であり、、 =サブストリングのインスタンスの数が「001」は、「サブストリングのインスタンスの数に等しいが100 "レギュラー?文字列「00100」が受け入れられることに注意してください。LL{w}

私の直感はそうではないと言っていますが、それを証明することはできません。それをポンピング補題を介してポンピングできる形式に変換することはできません。どうすればそれを証明できますか?一方、DFA、NFA、または正規表現を作成しようとしましたが、それらの面でも失敗しました。どのようにすればよいですか?提案された言語だけでなく、これを一般的に理解したいと思います。



2
なぜあなたはあなた自身の解決策に答えられないのですか?
ユヴァルフィルマス

1
@YuvalFilmus評判の低いユーザーが自分の質問に回答するまでに時間がかかります(rep <100の場合は8時間)。
ジル 'SO-悪であるのをやめる'

1
おそらく、q 5に追加のループがあるはずです。0q5
ヘンドリック

1
この現象の同様の例ですが、部分文字列「01」および「10」については、姉妹サイトで議論されました言語の証明は規則的または不規則です。答えには、weceがコメントで行ったのと同様の発言があります:「つまり、01遷移の後に、10遷移が介在しない限り、別の遷移を続けることはできません。」0110
ヘンドリック

回答:


3

質問から抽出された回答。

Hendrik Janが指摘したように、q5に0の自己ループが追加されるはずです。

オートマトン


これは構造であり、証明ではありません
-vzn

単純な問題のCSクラスでは、DFAのみが与えられる場合もありますが、言語を正確に受け入れることを証明しません。[何らかの形で]入力文字列ごとに正しく機能するように表示する必要があります。「どのように機能しますか?」
vzn

2
q 2をマージできると思います。そうですか?q5q2
J.-E.

3

それはトリックの質問です。2つの001を含み、100を含まない文字列を作成してみて、それができない理由を確認してください。X =「001の数」、およびY =「100の数」の場合、X = YまたはX = Y±1。

トリックを実現すると、言語が不規則である可能性は非常に低くなり、DFAの構築は非常に簡単になります。次のシンボルが0/1の場合、遷移の状態は8つのみです。

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

初期状態はS0で、S0、S1、C0、C1、C2は受け入れ状態です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.