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

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

5
有限状態オートマトン:最終状態
私たちのプログラミング言語の概念コースでは、最終状態が有限状態図の別の状態につながることは問題ないと私たちの講師は主張しました。 しかし、これは根本的に矛盾した概念のようです。定義により、最終状態は遷移を終了する状態です。つまり、最終状態に到達すると、他に何もする必要がなくなります。 それでも、彼はこのようなスライドを提示しました。最終状態は2つの円で表されています... B、D、E、およびHが明らかにそうでない場合に、最終状態になることができるのはなぜですか。

1
NFAを使用したスター操作での閉鎖の誤った証明により、NFAが望ましくない文字列を認識する結果になりますか?
私は現在、Michael Sipser著「Introduction to the Theory of Computation(2nd or 3rd Ed。)」という本を読んでおり、第1章-通常の言語、つまり作者が定理1.49の証明概念を提示しているときに疑問に遭遇しました- 「通常の言語のクラスは、スター作戦の下で閉鎖されています。」NFAを使用します。 推奨されるアプローチは、通常の言語あ1あ1A_1あり、も通常であることを証明したい場合、NFAを取得し、下の画像のように変更することができます。これは、特定のNFAです。認識します。あ∗1あ1∗A_1^*N1N1N_1NNNあ∗1あ1∗A_1^* 彼は指摘した: (少し悪い)1つのアイデアは、開始状態を受け入れ状態のセットに追加することです。このアプローチは確かに認識された言語にεεεを追加しますが、他の望ましくない文字列を追加することもあります。 私は「悪い」NFAを以下のように描き、これが望ましくない文字列になる理由を理解しようとしました。ただし、不要な文字列が認識されるタイミングの例を見つけることができません。このアイデアによってNFAが望ましくない文字列を認識するのはなぜですか? 誰かが私にこれを指摘したり、ヒントをくれたり、著者を誤解したりしていませんか?前もって感謝します!

2
2進数で書かれた平方数は通常の言語ですか?
バイナリ形式(1、100、1001、...)で記述されたすべての平方数(1、4、9、16、...)が通常の言語であるかどうかを判断しようとして問題が発生しています。 これらの数値の一般的なパターンを見つけるためにいくつかの試みを行った後、正方形番号n2n2n^2場合、n2mod4n2mod4n^2 mod 4は0または1に等しいため、4つの状態のDFAグラフを描画して、この言語を認識します。しかし、どうやら、私が描いたDFAは、実際には問題の平方数言語のスーパーセットを認識しています。ここで行き詰まっています。 誰もがこの問題についていくつかの手がかりを与えることができますか?通常の言語ではない場合、どうすれば証明できますか? 私はまた、この種の質問に将来どのように最善の方法でアプローチすべきかを知ることにも非常に興味があります。多くの場合、オートマトンがすでに見たもの(ようなaibiaibia^i b^i)を追跡しなければならないという直感がある場合、オートマトンが計算するために必要な未確定の状態があり、したがって有限ではありません。または定期的。次に、Pumping補題を使用して、それが規則的でないことを証明できます。ただし、この言語がまだ一般的であるかどうかはわかりません。そのため、次に何をすればよいのか本当にわかりません。 ありがとう!

2
有限オートマトンによって解決される問題はすべてPにあります
今日の私の理論の計算クラスの後、この質問が私の頭に浮かびました。問題が有限オートマトンによって解決できる場合、この問題はPに属します。 オートマトンは非常に単純な言語を認識するため、これらの言語はすべて、それらを解決するための多項式アルゴリズムを備えていると思います。したがって、有限オートマトンによって解決される問題がPにあることは本当ですか?


1
途中が1の奇数長の単語に対してDFAを構築することは可能ですか?
L:={w∈{0,1}∗|L:={w∈{0,1}∗|L := \{w \in \{0,1\}^* | の長さは奇数です 1はの中央にありますwww∧∧ \wedge w}w}w\} したがって、アルファベットはです。私の問題は、1と前後の文字の等価性を追跡できないことです。長さが6未満の限定DFA:{0,1}∗{0,1}∗\{0,1\}^*111 どのようにして長さの単語を受け入れるように拡張できますか?出来ますか? 私はそれにサイクルを入れてみましたが、すでに述べたように、後の文字数が前の文字数と同じになるように追跡することはできません。つまり、常に真ん中にある1。111

2
受け入れ状態のない確定的有限オートマトンを最小化
私には最終/受け入れ状態のない有限オートマトンがあるので、Fは空です。どうすれば最小化できますか? テストでこれを取得しましたが、オートマトンに受け入れ状態がないため、問題への対処方法がわかりませんでした。それ自体へのすべての遷移を伴う単一の初期状態は正しい答えですか?

2
非循環NFAで受け入れられた単語の数を数える
してみましょう非環式NFAなります。MMM は非環状なので、は有限です。MMML(M)L(M)L(M) を計算できますか 多項式時間で?|L(M)||L(M)||L(M)| そうでない場合、近似できますか? ワード数はの受け入れパスの数と同じではないことに注意してください。これは簡単に計算できます。MMM 機能しない明らかなアプローチの1つについて説明します。NFAをDFA(これも非循環になります)に変換し、DFA内の受け入れパスの数を数えます。これは多項式時間アルゴリズムにはなりません。変換によってDFAのサイズが指数関数的に増大する可能性があるためです。

3
非決定性を導入してDFAを縮小するアルゴリズム?
これは、私が尋ねた別の質問と多少関連していますが、私自身の質問を正当化するのに十分異なると感じています。 特定のクラスの有限言語の補集合の構造を見つけようとしているところです。これらの言語を受け入れる最小限のDFAを取得するのは簡単ですが、これらの言語を受け入れるNFAがどのような構造を持っているか、特に非決定性がオートマトンの状態サイズにどのように役立つか(DFAは指数関数的に大きい)を調べたいと思います。 問題は、メインのNFA削減手法で等価を使用することです。これは、最小限のDFAから始めた場合、削減は生成されません(それは基本的に同じ手法を使用しているためです)。最小ではないDFAから始めると、最小のDFAが吐き出されます。 私が不思議に思っているのは、DFAから開始して、非決定性を導入することでそれをより小さなNFAに圧縮できるアルゴリズムはあるのでしょうか。これを行う「標準的なテクニック」はありますか? プレオーダーの削減が見つかりました。これは有望に見えますが、実装が困難です。私は多くの提案を受け入れています。

6
有限状態機械の実用化
DFA、NFA、ムーア、ミーリーマシンなどの有限状態マシンの実用的なアプリケーションを探しています... Linuxカーネルの例を誰かが指摘すると、役に立ちます。KMPアルゴリズムのような文字列照合でDFAが使用されていることを知っています。 NFA、ムーア、ミーリーのマシンの重要性は何ですか?

3
一部の言語のすべての文字列で構成される言語が、別の言語の一部の文字列が通常のものと同じ長さであることを証明する
だから私はこの問題を頭の中で数日間掻き続けてきました。通常の言語とBがある場合、Aのすべての文字列で構成され、その長さがBの一部の文字列と等しい言語Lが通常の言語であることを示します。AAABBBLLLAAABBB 方程式の形で: L={x∈A∣∃y∈B s.t. |x|=|y|}L={x∈A∣∃y∈B s.t. |x|=|y|}L = \{x \in A \mid \exists y \in B \text{ s.t. } |x| = |y| \} 私の最初の考えは、言語とBの両方のDFAを試してみて、2つの状態を相互にマッピングし、うまくいけば、Lが正規であることを証明する新しいDFAを生成できるように1:1の比率を取得することでした。しかし、私はAとBが同じシンボルセット上にある必要はないことに気付きました。 AAABBBLLLAAABBB これを解決する正しい方法は通常の言語のクロージャープロパティを使用することだと思いますが、文字列自体ではなく文字列の「長さ」のプロパティを開始/使用する方法がわかりません。 誰かが私を正しい方向に向けることができますか?

1
Brzozowskiのアルゴリズムの実装に関する問題
私はBrzozowskiのアルゴリズムを実装しようとしましたが、それが特定のクラスの入力に対して次善のオートマトンを作成し、結果に実際に必要なものよりも1つ多い状態があることを発見しました。自明なオートマトンでそれを示すことができます: a b a b a b a b a b >0 0 1 rev *0 0,2 - det >0 - 1 rev *0 - - det >0 1 2 1 1 2 --> 1 1 0 --> 1 2 5 --> 1 - 0,4 --> 1 1 2 *2 …

1
通常の言語が周期演算子の下で閉じられていることを証明する
私は数日で試験を受けましたが、このタスクを解決するのに問題があります。 してみましょうアルファベットを超える正規言語も。私たちは、運転してい そして今、我々は示すべきであることも定期的です。LLLΣΣ\Sigmacycle(L)={xy∣x,y∈Σ∗ and yx∈L}cycle⁡(L)={xy∣x,y∈Σ∗ and yx∈L}\operatorname{cycle}(L) = \{ xy \mid x,y\in \Sigma^* \text{ and } yx\in L\}cycle(L)cycle⁡(L)\operatorname{cycle}(L) 参照は、DFAを a -NFA withおよび 状態。D=(Q,Σ,δ,q0,F)D=(Q,Σ,δ,q0,F)D=(Q,\Sigma,\delta, q_0, F)L(D)=LL(D)=LL(D) = Lϵϵ\epsilonNNNL(N)=cycle(L)L(N)=cycle⁡(L)L(N) = \operatorname{cycle}(L)2⋅|Q|2+12·|Q|2+12 · |Q|^2 + 1


3
決定論的有限オートマトンのカウント
DFAのカウントに関して質問があります。 与えられた Σ = {0, 1}入力文字列、状態を設定してQ = {1...n}、どのように私が構築できるのDFAの総数を見つけるだろうか? これは組み合わせの問題だと思いますが、何を掛ければよいのかよくわかりません。 ありがとう。

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