タグ付けされた質問 「fl.formal-languages」

形式言語、文法、オートマトン理論

11
有限オートマトンを研究した後に達成することになっている啓発とは何ですか?
私は計算理論を楽しみのために改訂してきましたが、この質問はしばらくの間私に悩まされてきました(学部生でオートマタ理論を学んだとき、それを考えたことはありませんでした)。それでは、「なぜ」決定論的および非決定論的有限オートマトン(DFA / NFA)を正確に研究するのでしょうか?だから、独り言の後、私が思いついたいくつかの答えがありますが、それでも「aha」の瞬間への全体的な貢献を見ることはできません: 彼らが何であるかを研究するために、すなわち制限 どうして? それらは理論計算の基本モデルであり、他のより有能な計算モデルの基礎を築くためです。 それらを「基本」にするものは何ですか?ストレージと状態の遷移が1ビットしかないのですか? さて、それで何?このすべてが計算可能性の質問に答えるためにどのように貢献しますか?チューリングマシンはこれを非常によく理解しているようで、PDA、DFA / NFA /正規表現などの計算の「より少ない」モデルがあります。しかし、FAがわからない場合は、FAに何が欠けているのでしょうか。 だから私はある程度「わかった」が、この質問に自分で答えることはできないのだろうか?「なぜD / N-FAを勉強するのか」をどのように説明しますか?彼らが答えようとしている質問は何ですか?それはどのように役立ち、なぜオートマタ理論で最初に教えられるのですか? PS:さまざまな辞書式アプリケーションと、そのように実装できるパターンマッチャーを知っています。ただし、実際に何に使用できるかを知りたくはありませんが、計算理論の研究の頂点にある使用/発明/設計の理由は何でしたか。歴史的に言えば、これで何が始まったのか、そして「aha」の理解は何につながるのでしょうか?オートマタ理論の勉強を始めたばかりのCS学生に彼らの重要性を説明する場合、どうしましたか?

5
チョムスキー階層は古くなっていますか?
Chomsky(–Schützenberger)階層は、理論的なコンピューターサイエンスの教科書で使用されていますが、完全なComplexity Zoo Diagramと比較して、明らかに形式言語(REG、CFL、CSL、RE)のごく一部しかカバーしていません。階層は現在の研究でもう役割を果たしていますか?私はここcstheory.stackexchangeでチョムスキーに少しだけの参照を見つけ、中に複雑動物園の名前チョムスキーとSchützenbergerは一切言及されていません。 現在の研究は、正式な文法以外の記述の他の手段に焦点を合わせていますか?私は、表現力の異なる形式言語を記述する実用的な方法を探していましたが、コンテキストセンシティブ言語(GCSL)と目に見えるプッシュダウン言語(VPL)の両方に出会いました。Chomsky階層を更新してそれらを含めるべきではありませんか?または、複雑なクラスの完全なセットから特定の階層を選択する必要はありませんか?私が理解している限り、チョムスキー階層のギャップに収まる言語のみを選択しようとしました。 REG(= Chomsky 3)⊊VPL⊊DCFL⊊CFL(= Chomsky 2)⊊GCSL⊊CSL(= Chomsky 1)⊊R⊊RE 自然言語処理には実用的な関連性があるように見えますが、「マイルドな文脈依存言語」と「インデックス付き言語」(CFLとCSLの間)がどこに収まるのかはまだわかりません(しかし、実用的な関連性はあまり面白くないです)理論的研究;-)。さらに、GCSL⊊P⊂NP⊂PSPACEおよびCSL⊊PSPACE⊊Rに言及して、有名なクラスPおよびNPとの関係を示すことができます。 私はGCSLとVPLで見つけました: ロバートマクノートン:チョムスキー階層への挿入?で:宝石は永遠に、Arto Salomaaの名誉における理論的コンピューターサイエンスへの貢献。S. 204-212、1999 http://en.wikipedia.org/wiki/Nested_word#References(VPL) また、VPL、DCLF、GCSL、およびインデックス化された文法も扱っている正式な文法に関する最新の教科書を知っていれば幸いです。実用的なアプリケーションへのポインタが望ましいです。

10
実際のコンピューターの状態の数は限られているので、チューリングマシンの実際のコンピューターとの関連性はどうですか?
実際のコンピューターのメモリは限られており、状態の数は限られています。したがって、それらは本質的に有限オートマトンです。理論的なコンピューター科学者がコンピューターの研究にチューリングマシン(および他の同等のモデル)を使用するのはなぜですか?実際のコンピューターに関して、これらの非常に強力なモデルを研究するポイントは何ですか?有限オートマトンモデルでは不十分なのはなぜですか?

4
最小正規表現を見つけることはNP完全問題ですか?
次の問題を考えています:特定の文字列セット(たとえば、有効な電子メールアドレス)に一致し、他の文字列(無効な電子メールアドレス)に一致しない正規表現を見つけたい。 正規表現によって、明確に定義された有限状態マシンを意味すると仮定します。正確な用語についてはよくわかりませんが、許可された表現のクラスについては同意しましょう。 式を手動で作成するのではなく、肯定的な例と否定的な例のセットを与えたいと思います。 次に、+の1に一致し、-の1を拒否し、明確に定義された意味で最小の式(オートマトンの状態の数?)を作成する必要があります。 私の質問は: この問題は考慮されましたか、より具体的な方法でどのように定義でき、効率的に解決できますか?多項式時間で解決できますか?NPは完全ですか、どうにか近似できますか?どのクラスの式に対して機能しますか?このトピックについて説明している教科書、記事などへのポインタをいただければ幸いです。 これは何らかの形でコルモゴロフの複雑さに関連していますか? これは何らかの形で学習に関連していますか?正規表現が私の例と一致している場合、それが最小限であるために、まだ見られない例の一般化力について何か言うことができますか?これにはどのような最小性の基準がより適していますか?どちらがより効率的でしょうか?これには機械学習とのつながりがありますか?繰り返しますが、どんなポインターでも役に立ちます... 厄介な質問でごめんなさい...これを理解するために私を正しい方向に向けてください。ありがとう!

14
オートマトン理論はどれほど実用的ですか?
理論的なコンピューターサイエンスに関連するトピックには、常に応用方法があります。しかし、教科書や学部課程では、通常、オートマトン理論が重要なトピックである理由と、実際に応用できるかどうかを説明していません。したがって、学部生はオートマトン理論の重要性を理解するのに苦労し、もはや実用的ではないと考えるかもしれません。 オートマトン理論は実際にはまだ有用ですか? 学部のCSカリキュラムの一部であるべきですか?

6
正規表現は
コンピュータサイエンスのバックグラウンドを持つ人でさえ、正規表現とは何かを尋ねると、その答えは、有限状態オートマトンの範囲内にあるという制約を超える可能性があります。 たとえば、「正規表現」 /^1?$|^(11+?)\1+$/ 著名なPerlパーソナリティAbigail(および2002年以降のPerlのテストスイートの一部)によって作成された複合単項数のみを受け入れるマシンについて説明していますが、Peter Linzの第3版の正式な言語とオートマトンの演習4.5(b)では読者が使用しますそれを証明するポンピング補題 L = { an:n i s n o t a p r i m e n u m b e r } L={an:n is not a prime number}\mathcal{L} = \left\{ a^n : n\ \mathrm{is\ not\ a\ prime\ number} \right\} 通常の言語ではありません。 区別が重要なコンテキストでは、厳密に強力な表現を何と呼ぶべきでしょうか?


1
Eilenbergの非有理オートマトンと言語の合理的な階層—それは今どこにありますか?
サミュエル・アイレンバーグは、彼の非常に影響力のある本「オートマタ、言語、機械」(巻A、B)の序文で、「非合理現象の階層(合理的階層と呼ばれる)...合理的なセットはこの階層の最下部にあります。上に移動すると、「代数現象」に遭遇し、「チョムスキーの文脈自由文法と文脈自由言語、およびいくつかの関連トピック」につながります。 しかし、EilenbergはボリュームCを発行しませんでした。最初のいくつかの章(http://www-igm.univ-mlv.fr/~berstel/EilenbergVolumeC.html)には、スクラッチアウト、疑問符、サイドノート、ギャップ。しかし、それらは、文法に対する有名なべき級数アプローチの始まりをはるかに超えて明らかにしません。 だから、私の実際の質問-エイレンバーグが念頭に置いていたものを再構築するために、同じ線に沿って仕事を知っている人はいますか?そうでない場合、どの資料が彼のアイデアに最も近いと思われますか? サイトhttp://x-machines.net/は、Eilenbergの主要な革新の1つであるx-machinesについてですが、Eilenbergが約束したように理論​​をさらに発展させるのではなく、主にx-machinesのアプリケーションを扱っています。 また、ボリュームCで大きな進歩を遂げる前にアイレンバーグが停止した理由を誰もが知っていますか?これは70年代後半で、1998年まで生きましたが、B巻の後に数学を発表したようには見えませんでした。 (math.stackexchangeで尋ねられた同じ質問-https : //math.stackexchange.com/questions/105091/eilenbergs-rational-hiererchy-of-nonrational-automata-languages- これがクロスポストと見なされる場合は謝罪します。)

2
Is {
言語は{ }コンテキストフリーかどうか?aibjck | i≠j,i≠k,j≠kaibjck | i≠j,i≠k,j≠ka^{i}b^{j}c^{k} ~|~ i \neq j, i \neq k, j \neq k 私は、i、j、kの関係について異なる条件でこの質問のほぼすべてのバリエーションに遭遇しましたが、これには遭遇していないことに気付きました。 私の推測では、それはコンテキストフリーではありませんが、証拠はありますか?

4
正規表現を効率的に照合できる「小さな」マシンはありますか?
正規表現は、正規表現に比例するサイズの非決定性有限オートマトン、または潜在的に指数関数的に大きい決定性FAによって認識できることはよく知られています。さらに、文字列sssと正規表現と、NFAは比例してメンバーシップをテストできます、およびDFAは比例してメンバーシップをテストできます。NFAのスローダウンは、本質的にオートマトンが存在する可能性のある状態のセットを追跡する必要があるという事実から生じます。DFAの指数関数的な爆発は、その状態が、 NFA。rrr|s|⋅|r||s|⋅|r||s| \cdot |r||s||s||s| より強力なマシンの使用を許可する場合、正規表現を効率的に(つまり、よりも良い時間で、よりも良いスペースで)認識できますか有限オートマトンよりも (たとえば、プッシュダウンオートマトンまたはカウンターマシンを使用して通常の言語を認識することで簡潔さが向上しますか?)O(|r|⋅|s|)O(|r|⋅|s|)O(|r| \cdot |s|)O(2|r|)O(2|r|)O(2^{|r|})

3
DFAから正規表現に移行する既知のアルゴリズム
DFA から開始し、L (A)= L (r )のような正規表現rを構築する「より良い」(どのような意味で説明する)アルゴリズムがあるのか​​疑問に思っていましたHopcroft and Ullman(1979)による本。そこでは、集合R k i jを使用して、kよりも大きい番号の状態を経由せずに状態q iからq jに DFAを取る文字列のセットを表します。この構造は、明らかに正確で非常に便利ですが、かなり技術的です。AA\mathcal{A}rrrL(A)=L(r)L(A)=L(r)L(\mathcal{A})=L(r)RkijRijkR_{ij}^kqiqiq_iqjqjq_jkkk 私は代数オートマトン理論についてのモノグラフを書いているので、あまりにも多くの技術的詳細で聴衆の注意をそらしたくはありません(少なくとも、表示したい結果とは無関係な詳細では)。完全を期すためのDFAと正規表現の等価性の証明。記録のために、私はGlushkovオートマトンを使用して、正規表現からDFAに移行しています。それは遷移よりも直感的であるように見えました。εε\varepsilon DFAから正規表現に移行することが知られている他のアルゴリズムは何ですか?効率よりも単純さ(この場合は「より良い」)を重視していますが、それは要件ではありません。 よろしくお願いします!

2
与えられた2つの文字列を受け入れるDFAはいくつですか?
整数とアルファベット修正します。定義上のすべての有限状態オートマトンの集合体であることを我々が検討している状態1を開始するとの状態のすべてのDFA(単に接続されていない、最小限の、または非縮退もの)。したがって、。Σ = { 0 、1 } D F A (N )NnnnΣ={0,1}Σ={0,1}\Sigma=\{0,1\}DFA(n)DFA(n)DFA(n)nnn|DFA(n)|=n2n2n|DFA(n)|=n2n2n|DFA(n)| = n^{2n}2^n ここで、2つの文字列を検討しをと両方を受け入れる要素の数として定義します。 K (X 、Y )D F A (N )x,y∈Σ∗x,y∈Σ∗x,y\in\Sigma^*K(x,y)K(x,y)K(x,y)DFA(n)DFA(n)DFA(n) yxxxyyy 質問:計算の複雑さは何ですか?K(x,y)K(x,y)K(x,y) この質問は、機械学習に影響を及ぼします。 編集:この質問に恩恵があるので、私は定式化でもう少し正確であると思います。以下のために、聞かせての集合体である上で定義されたとおり、オートマトン。以下のため、定義でオートマトンの数であることが受け入れるの両方と。質問:は時間で計算できますか?D F A (N )N 2 、N 2 、N X 、Y ∈ { 0 、1 } * K N(X 、Y )D F A (N )n≥1n≥1n\ge1DFA(n)DFA(n)DFA(n)n2n2nn2n2nn^{2n}2^nx,y∈{0,1}∗x,y∈{0,1}∗x,y\in\{0,1\}^*Kn(x,y)Kn(x,y)K_n(x,y)DFA(n)DFA(n)DFA(n) …

4
最も強力な種類のパーサーは何ですか?
サイドプロジェクトとして、Pythonを使用して言語を書いています。私はPlyと呼ばれるフレックス/バイソンクローンを使用することから始めましたが、そのスタイルの文法で表現できる力の限界に近づいており、インピーダンスミスマッチのために言語をハッキングすることに興味はありません。ツール。したがって、自分で書くことに嫌気はありません。 それでは、最も強力なパーサーのタイプは何ですか?論文への引用(および入門記事)も歓迎します。 (「パワフル」が正確に定義されていないことは知っていますが、少しパワフルになって、答えがどこに行くか見てみましょう)

2
NFAの普遍性の条件
非決定性有限オートマトンおよび関数ます。さらに、を定義します。A=(Q,Σ,δ,q0,F)A=(Q,Σ,δ,q0,F)A = (Q, \Sigma, \delta, q_0, F)f(n)f(n)f(n)Σ≤k=⋃i≤kΣiΣ≤k=⋃i≤kΣi\Sigma^{\leq k} = \bigcup_{i \leq k} \Sigma^i 次のステートメントを分析してみましょう。 もしは、。Σ≤f(|Q|)⊆L(A)Σ≤f(|Q|)⊆L(A)\Sigma^{\leq f(|Q|)} \subseteq L(A)L(A)=Σ∗L(A)=Σ∗L(A) = \Sigma^* f(n)=2n+1f(n)=2n+1f(n) = 2^n+1場合、それが真であることを示すのは簡単です。したがって、オートマトンが長さまでのすべての単語を生成する場合、生成します。2| Q |+ 12|Q|+12^{|Q|}+1Σ∗Σ∗\Sigma^* しかし、が多項式である場合、それはまだ保持されますか?fff そうでない場合、特定の多項式に対するNFA構築は、stますか?AAApppΣ≤ P (| Q |)⊆ L (A )⊊ Σ∗Σ≤p(|Q|)⊆L(A)⊊Σ∗\Sigma^{\leq p(|Q|)} \subseteq L(A) \subsetneq \Sigma^*

1
大きさの木の平均身長で正規木言語はあるの
本TATAのように、通常のツリー言語を定義します:これは、非決定論的有限ツリーオートマトン(第1章)で受け入れられるツリーのセット、または同様に、通常のツリー文法(第2章)で生成されるツリーのセットです。どちらの形式も、よく知られている文字列の類似物とよく似ています。 大きさの木の平均身長で正規木言語はあるのでもないΘ (nは)もΘ (√nnnΘ (n )Θ(n)\Theta(n)?Θ (n−−√)Θ(n)\Theta(\sqrt{n}) 明らかに、ツリーの高さがそのサイズで線形であるようなツリー言語があります。そして本の中で分析組み合わせ論サイズの二分木という例が示され平均身長持つ2 √nnn。上記の本の命題VII.16(p.537)を正しく理解すれば、平均高さがΘ( √2個のπn−−−√2πn2\sqrt{ \pi n}、つまり、ツリー言語がいくつかの追加条件を満たしている単純な種類のツリーでもあるもの。Θ (n−−√)Θ(n)\Theta(\sqrt{n}) だから、平均的な高さが異なる通常のツリー言語があるのか​​、それとも通常のツリー言語の真の二分法があるのか​​と思っていました。 注:この質問はComputer Scienceで以前に質問されましたが、3か月以上回答されていません。質問が古すぎて移行できないため、また質問にまだ関心があるため、ここに再投稿したいと思います。元の投稿へのリンクはこちらです。

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