通常の言語が周期演算子の下で閉じられていることを証明する


8

私は数日で試験を受けましたが、このタスクを解決するのに問題があります。

してみましょうアルファベットを超える正規言語も。私たちは、運転してい そして今、我々は示すべきであることも定期的です。LΣcycle(L)={xyx,yΣ and yxL}cycle(L)

参照は、DFAを a -NFA withおよび 状態。D=(Q,Σ,δ,q0,F)L(D)=LϵNL(N)=cycle(L)2·|Q|2+1


演習5.4、5月24日締め切り。
ラファエル

回答:


15

アイデアは、単語が循環する量を最初に非決定的に決定し、すべてのケースにオートマトンのコピーを用意することです。オートマトンに関しては、これは、単語のプレフィックス(入力のサフィックス)を消費した後にがどの状態になったかを推測し、その状態で開始することを意味します。D

今建設。すべての状態、を2つの部分と分離します。そこから状態が含ま到達可能とされから到達可能な状態:qQDA1A2A1qA2q

ここに画像の説明を入力してください
[ ソース ]

任意のノードがと両方に含まれている可能性があることに注意してください。したがって、このステップを明示的にすると、状態数が2倍になる可能性があります。A1A2

次に、このオートマトンを再配線して、が「サイクルポイント」をマークするすべての単語を受け入れます。q

ここに画像の説明を入力してください
[ ソース ]

我々が得るこの形式のオートマトン。すべての開始状態への -transitionsを持つ新しい初期状態を作成します。結果のオートマトンは受け入れます。まとめると、最大で状態、のみが得られます 参照クレームより多くの状態が可能です。|Q|εcycle(L)|Q|(2|Q|+1)+1|Q|

コンポーネントのオートマトンを少し変更することで、状態を実現できます。着信する -transitionsを発信する遷移のコピーで置き換えることにより、すべての排除します。つまり、遷移のすべてのペアに対して、遷移導入します。2|Q|2+1q0ε(q1,ε,q0),(q0,a,q2)(q1,a,q2)

厳密な構造と正当性の証明は、演習として残ります。


しかし、どのようにこれを証明できるのですか?
悲しいGolduhren

3
@SadGolduhren RaphaelがNFAを構築しました(状態数には有限の制限があるため、有限です)。このNFAが元の言語と同じ言語を認識することを確認するには、オートマトンのパスを観察します。q0q そして qqF (どこ qF から到達した最終状態です qになる qqF そして q0q、および qFϵq0パスを完成させます。
Gilles 'SO-悪をやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.