特定の言語の規則性を証明する


7

私はこの問題をこの1時間ほどいじっていて、信じられないほど困惑しています。

レッツA={0ku0k∣k≥1 and u∈Σ∗}。ことを示しA規則的です。

この言語は明らかにパンピング補題を満たしていますが、それは規則性を決定付けるものではありません。この言語が正規であることをいったいどのように証明しますか?私はすべての通常の方法(閉ざされているなど)を知っていますが、私が一生続けるには適切な条件を理解することができません。

回答:


14

それはトリックの質問です。言語を説明する簡単なフォームを見つけることができます。


...そしてはい、私は解決策を知っていますが、それを完全に書き留めるのではなく、正しい方向に微調整を与える方がより役立つと考えました。ただ私の考え。
— Hendrik Jan

10

言語はA = \ {0u0 \ mid u \ in \ Sigma ^ * \}のように書き直すことができますA={0u0∣u∈Σ∗}。

基本的な考え方は、の値が何であっても、すべてが完全な言語である「吸収」されるということです。kuΣ∗


しかし、 'u'は完全な言語なので、それも空の文字列ではないでしょうか?'u'が空の文字列の場合、どのような影響がありますか?
— Shubham Singh rawat 16年

@ShubhamSinghrawatはい、しかしそれは意味を持ちません。言語を認識するDFAが存在する場合、その言語は通常のものであることに注意してください。という単語を考えます。この答えは、そのように見るのではなく、単語と見ることができることを示しています。の単語の定義に一致しますが、この回答の定義にも一致します。結局のところ、AのDFAは単純です。最初の文字があり、最後の文字がであることを確認します。他のすべては問題ではありません。w=03ϵ03∈Aw=01u01u=0202∈Σ∗A00
— Bakuriu 2016年

それが十分に明確でない場合、を認識するNFA は、、およびそして実際、これは合計ではないことを除いて、ほとんどDFAです...AN=(Q,Σ,Δ,q0,{q2})Q={q0,q1,q2}
Δ={(q0,0,q1),(q1,0,q2),(q2,0,q2)}∪{(q1,x,q1)∣x∈Σ∖{0}}∪{(q2,x,q1)∣x∈Σ∖{0}}
— バクリウ

8

この言語の場合:

B={0k1u10k∣k≥1 and u∈Σ∗}

あなたは困るだろう。は規則的ではありません。B

重要な問題は、から文字列を認識しようとする場合、ような文字列を区別する必要があるため、の最初の文字列(いくつあったか)から無制限の量の情報を「記憶」する必要があることですなどのもの()。正規表現(またはDFA)は、このような「無限のメモリ」を表現できません。B00k1...10k0k1...10jj≠k

A も同じ問題があるように見えますが、実際には、「バランスのとれた」ケースと「アンバランスの」ケースを区別する必要はありません。任意の文字列(とは等しいが、両方とも少なくとも1であるかどうか)の場合、として書き込むこともできます。ここで、。このような文字列は、の文字列のルール(と選択すること)にも適合しているため、結局のところ、先頭と末尾ののバランスが取れているかどうかは問題ではありませんでした。0ku0jjk0v0v=0k−1u0j−1Ak=1u=v0

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