タグ付けされた質問 「finite-automata」

有限メモリを持つ有限オートマトンモデルである有限オートマトンに関する質問。これは通常の言語と同等であり、より多くの複雑なモデルの基礎となります。

1
DFA最小化のためのBrzozowskiのアルゴリズムの証明?
Brzozowkiのアルゴリズムは広く引用されています。ここでのいくつかの質問は、例を示したり、その複雑さを議論したりします。しかし、アルゴリズムの正当性の証明を見つけることができませんでした。それが正しいことをどのように証明しますか?CSの学部生が利用できる証拠があれば大歓迎です。

1
すべての州が受け入れるNFAの普遍性問題の複雑さはどのくらいですか?
NFAの普遍性の問題(かどうかの決定)がことはよく知られています。しかし、NFAのすべての州が受け入れていることがわかっている場合はどうなりますか?反例(一般的なNFAの場合とは異なります)は入力のサイズ(状態数)が多項式(線形であっても)であるため、問題はせいぜい -にあるようです。この問題の複雑さは何ですか?L(A)=Σ∗L(A)=Σ∗L(A)=\Sigma^*PSPACEPSPACEPSPACEcococoNPNPNP

4
正規表現と「後方参照」を使用した「括弧のキャプチャ」
正規表現(RE)は有限オートマトン(FA)で実装されています。REの一部の言語(JavaScriptなど)には、「後方参照」を使用した「括弧のキャプチャ」などの機能があります。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-capturing-parentheses (x)次の例に示すように、「x」に一致し、一致を記憶します。括弧はキャプチャ括弧と呼ばれます。パターン/(foo)(bar)\ 1 \ 2 /の「(foo)」と「(bar)」は、文字列「foo bar foo bar」の最初の2つの単語と一致し、覚えています。パターンの\ 1と\ 2は、文字列の最後の2つの単語と一致します。 このパターン/(foo) (bar) \1 \2/が実際に、私たちが理論的な形式言語で持っているREの定義に従ったREであるのか、それともより強力なものであるのかを知りたいのです。そうであれば、この種の機能がFAでも実装されているのか、それとも別の方法で実装されているのか(特に、実装方法)を知りたいと思います。

1
もし
が規則的である場合、が規則的であることを証明することに興味がありますが、どこにも到達していないようです。可能であれば、正しい方向に進むためのヒントを望んでいました。ご協力ありがとうございました。L−−√={w:ww∈L}L={w:ww∈L}\sqrt{L}=\{w:ww\in L\}LLL 平方根言語の規則性を実証するための私のアイデアは、タンデムで実行されている2つのマシンを検討することでした。それらの1つは元の言語を受け入れ、もう1つは同じマシンを逆方向に実行します(これはNFAになると思います)。次に、途中で出会った単語を受け入れたかった(つまり、 ここで、 はを受け入れるDFAの状態)。しかし、私はこれがうまくいくとは思いません。LLL(q,q):q∈Q(q,q):q∈Q{(q,q):q∈Q}QQQLLL

3
オートマトンをXORする方法?
3つのDFAがあるとします。私たちはそれらをOR、AND、またはNOTする方法を知っています。しかし、それらをどのようにXORするのでしょうか。これについては、オンラインでの言及は1つだけではありません。 バツX O RyX O Rz= ((x | y)(¬ X | Y)| z)(¬ ((x | y)(¬ X | Y))| z)xXORyXORz=((x|y)(¬x|y)|z)(¬((x|y)(¬x|y))|z)x\; \mathrm{XOR} \;y\; \mathrm{XOR} \;z = ((x|y)(\neg x|y)|z) (\neg ((x|y)(\neg x|y))|z)。これは、描画するには複雑すぎて時間がかかります。別の方法はありませんか? お時間をいただきありがとうございます!

1
すべての位置で異なる長さ 2つの単語の連結を受け入れる最小のNFA
ましょうk∈Nk∈Nk\in \mathbb N 私は、インデックスごとに異なる長さkの 2つの単語の連結言語用の小さなNFAビルドを探していkkkます。つまり、Lk={u⋅v∈Σ∗:|u|=|v|=k∧∀i,ui≠vi}Lk={u⋅v∈Σ∗:|u|=|v|=k∧∀i,ui≠vi}L_k=\{u\cdot v \in \Sigma^* : |u|=|v|=k\wedge \forall i, u_i\neq v_i\} kkkが固定されているため、|Lk|=(|Σ|⋅(|Σ|−1))k|Lk|=(|Σ|⋅(|Σ|−1))k|L_k|=(|\Sigma|\cdot(|\Sigma|-1))^kであり、有限言語として規則的であることに注意してください。 % 言語の自明なDFAには | \ Sigma |が含まれています \ k +1の状態を選択し、最初のk文字の間に見た文字を「記憶」しますが、k = o(| \ Sigma |)の場合、大幅に小さいNFAを作成できます。kkk(|Σ|k)(|Σ|k)|\Sigma| \choose k+1+1+1kkkk=o(|Σ|)k=o(|Σ|)k=o(|\Sigma|) % そのための「単純な」NFAのサイズはO∗(22k)O∗(22k)O^*(2^{2k})(より正確には、O(k2log|Σ|22k+O(log2k))O(k2log⁡|Σ|22k+O(log2⁡k))O(k^2 \log |\Sigma| 2^{2k+O(\log^2 k)})): % (|Σ|,2k)(|Σ|,2k)(|\Sigma|,2k) -universal set(すなわち、一連のベクトル\ mathcal V \ subseteq \ {0,1 \} ^ {| …

1
minとはどのような言語の場合| NFA | =Ω(最小| DFA |)?
通常の言語を検討する LLL。LETの最小DFAである及びの最小NFAである(特定の言語を認識するためのオートマトンの状態の可能な最小数の意味で最小)。書く オートマトンのサイズ(状態数)が。一般的に、よりはるかに小さい (最悪の場合、決定は指数関数であるため、まで)。D (L )D(L)D(L)LLLN(L )N(L)N(L)LLL| A ||あ||A|ああA| N(L )||N(L)||N(L)|| D(L) ||D(L)||D(L)|lg| D(L) |lg⁡|D(L)|\lg |D(L)| 最小NFAがDFAのサイズの少なくとも一部であることが保証されている言語に興味があります:。通常の言語のどのファミリーにこの特性がありますか?言い換えると、となる言語のファミリーについて は?| N(L )| ≥ K | D (L )||N(L)|≥k|D(L)||N(L)| \ge k |D(L)|(Lん)(Lん)(L_n)| D(Lん)| = n|D(Lん)|=ん|D(L_n)| = n| N(Lん)| = Ω (n )|N(Lん)|=Ω(ん)|N(L_n)| = \Omega(n)

1
無向DFAによって認識される言語の結果
私の学士論文では、対称DFAによって認識される言語のクラス、つまり、次の条件を満たす決定論的(完全)有限オートマトンを検討します。 してみましょうアルファベットを完全にDFAこと。すべてのおよびすべての遷移、に遷移が場合、を対称 DFA と呼びます(SDFA)。が完全でない場合、これを部分 SDFA と呼びます。SDFAは、自然な方法で無向のラベル付きグラフと見なすことができます。AAAΣΣ\Sigmaa∈Σa∈Σa\in \Sigmau⟶avu⟶avu \stackrel{a}{\longrightarrow}vAAAv⟶auv⟶auv \stackrel{a}{\longrightarrow}uAAAAAAAAA SDFA(完全および部分的)によって認識される言語のクラスの代数的特性を見つけ、いくつかのクロージャープロパティを推定できました。ただし、私も私の監督者も、この特定のクラスの通常言語に関する以前の結果を認識していません(Reingoldののような結果を除外すると、関連しているように見えます)。SL=LSL=L\mathsf{SL = L} が動機コメントそのJ.-E. 私が尋ねた関連する質問にピンが渡されました。私の質問は次のとおりです。 これらのオートマトンに関する結果はありますか?

2
サブストリングマッチングのオートマトン
与えられたいくつかのアルファベットを超える文字列として、含まれている任意の文字列を受け入れ、対応する決定性有限オートマトン(DFA)を計算するために最もよく知られたアルゴリズム何である?ssssss 私は主に最も短い時間の複雑さに関心を持っているので、O表記で最もよく知られている複雑さを教えてください。

2
効率的なサブセットテストまたは明確な変換を可能にするNFAのクラス
私はNFAとそれらの包含問題に関していくつかの研究をしています。一般に、包含の問題と明確なNFAへの変換はどちらもPSPACEで完全であることを知っています。 これらを効率的に決定できるNFAのサブクラスはありますか?特に、私が見ているNFAは、すべての単語が同じParikhベクトルを持つ有限言語を受け入れます。

1
GNFAアルゴリズムを使用してNFAを正規表現に変換しますか?
だから私は長い間これを解読しようとしてきました、そして私はこの質問についてループに入っているようにほとんど感じます。 次のNFAがあるとします。 GNFAアルゴリズムを使用して、正規表現を取得します。 私はあなたが最初のステップ(空の状態を追加する)のために以下を持っていることを理解しています: 次のステップは、状態[q1]を削除することです。 最後に[q2]を削除すると、次のようになります。 しかし、他の人が持っている答えがある: 私が得たとして意味をなさない、?GNFA(一般化非決定性有限オートマトン)は次のように記述されます。(∪ Bb∗a)∗bb∗(a∪bb∗a)∗bb∗(a \cup bb^*a)^*bb^*a∗B (B ∪ Aa∗b)∗a∗b(b∪aa∗b)∗a^*b(b \cup aa^*b)^* GNFAはNFAに似ていますが、特定のルールに従う必要があります。 受け入れ状態は1つだけです 初期状態には遷移がありません 受け入れ状態には、そこから出てくる遷移はありません。 遷移は、アルファベットの記号だけでなく、任意の正規表現を表すことができます。記号は、正規表現の一種であることに注意してください。 さらに、次のようにNFAをGNFAに変換する場合があります。 ε遷移を伴う新しい開始状態を古い開始状態に追加する 古い受け入れ状態からのε遷移を持つ新しい受け入れ状態を追加します。 矢印に複数のラベルがある場合、または2つの状態の間に複数の矢印がある場合は、それらをそれらのラベルの和集合(または)に置き換えます

4
最初にDFAに変換する代わりにNFAを直接使用する実際のレクサーはありますか?
私はコンパイラでCourseraクラスを受講していますが、レクサーに関するレッスンでは、非決定性有限オートマトン(NFA)を使用して正規表現を解析する間に、決定論的有限オートマトン(DFA)との間に時空間トレードオフがあることを示唆しています。私が正しく理解している場合、トレードオフはNFAが小さいことですが、すべての可能な状態を同時に考慮する必要があるため、ほとんどの場合DFAに変換されるため、トラバースに時間がかかります。「実際の」生活でDFAの代わりにNFAを使用するレクサー、つまり、単なる概念実証ではなく、本番環境で使用されるコンパイラーはありますか?

2
DFAのこの交差は正しいですか?
上で定義されたすべての文字列の言語に対して、確定的有限オートマトン(DFA)を構築しています{ 0 、1 }{0、1}\{0,1\} 長さが偶数で数が 111sは奇数です。各DFAを個別に作成し、次に結合しました。 DFAを組み合わせるための所定の手順は正しいですか? 編集:元々は労働組合を書いた。実際に交差点を取ります。 長さと数に制限がある場合、DFAの作成に関する資料を誰かが提案しますか000sまたは 111s? Merbsのリンクによると、私はこのFAを開発しました。 このFAは、長さが均一の言語を受け入れません。

1
KMPプレフィックス関数と文字列照合オートマトンの間の接続
LET文字列照合オートマトンパターンのための、ありますAP=(Q,Σ,δ,0,{m})AP=(Q,Σ,δ,0,{m})A_P = (Q,\Sigma,\delta,0,\{m\})P∈ΣmP∈ΣmP \in \Sigma^m Q={0,1,…,m}Q={0,1,…,m}Q = \{0,1,\dots,m\} δ(q,a)=σP(P0,q⋅a)δ(q,a)=σP(P0,q⋅a)\delta(q,a) = \sigma_P(P_{0,q}\cdot a) for all and a \ in \ Sigmaq∈Qq∈Qq\in Qa∈Σa∈Σa\in \Sigma σP(w)σP(w)\sigma_P(w)の最長プレフィックスの長さPPPの接尾辞であるwwwであり、 σP(w)=max{k∈N0∣P0,k⊐w}σP(w)=max{k∈N0∣P0,k⊐w}\qquad \displaystyle \sigma_P(w) = \max \left\{k \in \mathbb{N}_0 \mid P_{0,k} \sqsupset w \right\}。 さて、聞かせて\パイプレフィックス機能からクヌース-モリス-プラット法であるが、ππ\pi πP(q)=max{k∣k&lt;q∧P0,k⊐P0,q}πP(q)=最高{k|k&lt;q∧P0、k⊐P0、q}\qquad \displaystyle \pi_P(q)= \max \{k \mid k < q \wedge P_{0,k} \sqsupset P_{0,q}\}。 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.