言語が正規ではないことを証明する方法はたくさんありますが、一部の言語が正規であることを証明するにはどうすればよいですか?
たとえば、が規則的であると指定された場合、次のも規則的であることをどのように証明できますか?L ′
これを証明するために非決定的な有限オートマトンを描画できますか?
言語が正規ではないことを証明する方法はたくさんありますが、一部の言語が正規であることを証明するにはどうすればよいですか?
たとえば、が規則的であると指定された場合、次のも規則的であることをどのように証明できますか?L ′
これを証明するために非決定的な有限オートマトンを描画できますか?
回答:
はい、次のいずれかを思い付くことができる場合:
一部の言語では、は規則的です。より多くの同等のモデルがありますが、上記が最も一般的です。L
「計算」世界以外にも便利なプロパティがあります。も次の場合に規則的です。
通常の言語で特定の操作を実行することで構築できます。これらの操作は、次のような通常の言語では閉じられます。
そしてより多くの、または
与えられた例では、我々はいくつかの(通常の)関連リンク言語の持つ基礎として、および言語について何か言いたいそれから派生します。最初のアプローチ(適したモデルの構築)に従って、希望する同等のモデルを想定できます。もちろん、は未知であるため、抽象のままです。2番目のアプローチでは、直接使用し、それにクロージャープロパティを適用して、記述に到達することができます。L ′ L ′ L L L L ′
基本的な方法
論理的方法(正式な検証でよく使用されます)
高度な方法
洗練されたポンピング補題。例えば、
[1] J. Jaffe、Aの通常の言語に必要かつ十分なポンピング補題、Sigact News-SIGACT 10(1978)48-49を参照してください。
[2] A. Ehrenfeucht、R。Parikh、およびG. Rozenberg、レギュラーセットの補題、SIAM J. Comput。 10(1981)、536-541。
[3] S. Varricchio、レギュラーセットのポンプ条件、SIAM J. Comput。 26(1997)764-771。
まあ準注文。
[4]を参照してください。計算。科学 40(1985)131–148。
[5] M.クンツ、言語の不等式と井戸準秩序の定期的な解決策。
有理数系列のサポート。
変換に基づく代数的手法(通常の言語を保存する操作も参照)。
ランG. ')。そして、ラファエルが強調するように、選択した表現が実際に正しいことを聴衆に納得させるための議論が必要です。
質問を再考して、 'For instance 'を追加します。つまり、上記のモデルのいずれかが言語指定すると仮定して、そのモデルをモデルに変換する有効な構成を提供する必要があります。これは通常、同じタイプのモデルになりますが、そうである必要はありません。たとえば、決定論的なFSAで始まり、非決定論的なFSAで終わることができます。L L ′ L L ′
これには、クロージャー操作を使用する可能性が含まれます。例で明示的に指定された操作では、ます。
したがって、私のポイントは答えが素晴らしいということですが、特定の言語をゼロから構築しない場合は、からへ構築」を追加する必要があります。L ′
上記の回答に含まれていない別の方法は、有限オートマトン変換です。簡単な例として、次のように定義されたシャッフル操作 で通常の言語が閉じていることを示しましょう クロージャープロパティを使用してシャッフル中にクロージャーを表示できますが、DFAを使用して直接表示することもできます。仮定する受け付けDFAある(ための)。次のように、新しいDFAを作成します。
この方法のより洗練されたバージョンには、推測が含まれます。例として、通常の言語が反転、つまり 下で閉じられることを示しましょう (ここで)これは標準のクロージャー操作の1つであり、反転中のクロージャーは正規表現の操作から簡単に続きます(これは、正規表現)–正規表現を単に逆にします。ただし、NFAを使用して閉鎖を証明することもできます。がDFA受け入れられるとします。NFAを構築します
(複数の初期状態を許可する場合、を取り除くことができます。)ここでの推測コンポーネントは、反転後の単語の最終状態です。
多くの場合、推測には検証も含まれます。単純な例の1つは、回転下での閉包です: がDFA受け入れられる とします。NFAを作成します。これは次のように動作します。NFAは最初に推測します。次に、およびであることを検証し、から非決定的に移動します。これは次のように形式化できます。
この手法のもう1つのバリアントには、境界付きカウンタが組み込まれています。例として、編集距離の変更の変更を考えてみましょう: DFA for、eはNFA for次のように:
言語は、任意の文字列が一定量のメモリを使用して言語に属しているかどうかを判断するスキャナーを作成できる場合、つまりO(1)空間で認識を行うことができる場合、通常の言語です。
正規表現の変換は、特定の操作の下でクロージャを証明する1つの方法です。最も単純な2つの例は、反転下の閉包と準同型下の閉包です。
正規表現を考えると言語表現、我々は正規表現構築できる、内のすべての単語の逆の言語再帰的に、:
すべてのアクションは、最終ルールます。例として、ます。構造誘導は、言語が実際にことを確立します。(0 ∗ 1 ∗ )R = 1 ∗ 0 ∗ r R L R
別の簡単な例は、準同型での閉包です。準同型を考える正規表現の言語のための、我々は正規表現取得することができのすべてのインスタンス置き換えることにより、でによって。のR Lの時間(L )σ R H (σ )