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

形式言語、文法、オートマトン理論に関する質問

4
有限オートマトンを正規表現に変換する方法は?
正規表現を同じ言語を受け入れる(最小限の)NFAに変換することは、Thompsonのアルゴリズムなどの標準アルゴリズムを使用すると簡単です。しかし、他の方向はより面倒であるように思われ、結果の表現が面倒な場合があります。 NFAを同等の正規表現に変換するためのアルゴリズムは何ですか?時間の複雑さや結果のサイズに関して利点はありますか? これは参考質問になるはずです。メソッドの一般的な説明と重要な例を含めてください。

5
言語がコンテキストフリーではないことを証明するにはどうすればよいですか?
コンテキストフリー言語のクラスについて学びました。コンテキストフリーの文法とプッシュダウンオートマトンの両方が特徴であるため、特定の言語がコンテキストフリーであることを簡単に示すことができます。CFLCFL\mathrm{CFL} しかし、どのように反対を見せますか?私のTAは、そうするためには、すべての文法(またはオートマトン)に対して、手元の言語を記述できないことを示さなければならないことを固く主張しています。これは大きなタスクのようです! ポンピング補題について読んだことがありますが、本当に複雑に見えます。

10
言語が規則的でないことを証明する方法は?
通常の言語のクラスについて学びました。正規表現、有限オートマトン、左線形文法のいずれか1つの概念が特徴であるため、特定の言語が正規であることを簡単に示すことができます。R E GREG\mathrm{REG} しかし、どのように反対を見せますか?私のTAは、そうするためには、すべての正規表現(またはすべての有限オートマトン、またはすべての左線形文法)に対して、手元の言語を記述できないことを示さなければならないことを固く主張しています。これは大きなタスクのようです! ポンピング補題について読んだことがありますが、本当に複雑に見えます。 これは、通常の証明方法と応用例を集めた参考質問であることを意図しています。コンテキストフリー言語に関する同じ質問については、こちらをご覧ください。

1
LL文法とLR文法の言語理論的比較
LR(k)パーサーはLL(k)パーサーよりも強力であるとよく言われます。これらの声明はほとんどの場合あいまいです。特に、固定またはすべてのkの和集合のクラスを比較する必要がありますか?では、状況はどうですか?特に、LL(*)がどのように適合するかに興味があります。kkkkkk 私の知る限り、LLパーサーとLRパーサーが受け入れるそれぞれの文法セットは直交しているため、それぞれの文法セットによって生成される言語について話しましょう。ましょによって解析することができる文法によって生成される言語のクラス示すLのR (K )パーサ、および他のクラスの類似します。LR(k)LR(k)LR(k)LR(k)LR(k)LR(k) 次の関係に興味があります。 LL(k)⊆?LR(k)LL(k)⊆?LR(k)LL(k) \overset{?}{\subseteq} LR(k) ⋃∞i=1LL(k)⊆?⋃∞i=1LR(k)⋃i=1∞LL(k)⊆?⋃i=1∞LR(k)\bigcup_{i=1}^{\infty} LL(k) \overset{?}{\subseteq} \bigcup_{i=1}^{\infty} LR(k) ⋃∞i=1LL(k)=?LL(∗)⋃i=1∞LL(k)=?LL(∗)\bigcup_{i=1}^{\infty} LL(k) \overset{?}{=} LL(*) LL(∗)∘?⋃∞i=1LR(k)LL(∗)∘?⋃i=1∞LR(k)LL(*) \overset{?}{\circ} \bigcup_{i=1}^{\infty} LR(k) これらのいくつかはおそらく簡単です。私の目標は、「完全な」比較を収集することです。参考文献を歓迎します。

8
言語が正規であることを証明する方法は?
言語が正規ではないことを証明する方法はたくさんありますが、一部の言語が正規であることを証明するにはどうすればよいですか? たとえば、が規則的であると指定された場合、次のも規則的であることをどのように証明できますか?L ′LLLL′L′L' L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}L′:={w∈L:uv=w for u∈Σ∗∖L and v∈Σ+}\qquad \displaystyle L' := \{w \in L: uv = w \text{ for } u \in \Sigma^* \setminus L \text{ and } v \in \Sigma^+ \} これを証明するために非決定的な有限オートマトンを描画できますか?

2
最小ヒープ(または他のエキゾチックな)ステートマシンの機能の決定
min-heapオートマトンの定義に関する説明については、この投稿の最後を参照してください。 ステートマシンで使用する情報を格納するためにさまざまなデータ構造を使用することを想像できます。たとえば、プッシュダウンオートマトンは情報をスタックに格納し、チューリングマシンはテープを使用します。キューを使用するステートマシン、および2つの複数のスタックまたはテープを使用するステートマシンは、チューリングマシンと同等のパワーを発揮することが示されています。 最小ヒープマシンを想像してください。次の例外を除き、プッシュダウンオートマトンとまったく同じように機能します。 ヒープに最後に追加したものを調べる代わりに、現在ヒープ上にある最小の要素(マシンごとに定義された順序付け)だけを見ることができます。 ヒープに最後に追加したものを削除する代わりに、現在ヒープにある最小の要素(マシンごとに定義された順序)の1つのみを削除します。 要素をヒープの最上部に追加する代わりに、要素をヒープに追加することしかできません。その位置は、ヒープ内の他の要素に従って決定されます(順序はマシンごとに定義されます)。 このマシンは、単にヒープを使用しないことで、すべての通常の言語を受け入れることができます。また、言語受け入れることができる{anbn∈{a,b}∗∣n≥0}{anbn∈{a,b}∗∣n≥0}\displaystyle \{a^{n}b^{n} \in \{a, b\}^{*} \mid n \ge 0\}追加することによって、「ヒープ秒、および削除が読み取るとき」ヒープからステップBのを。他のさまざまなコンテキストフリー言語を受け入れることができます。しかし、それは、例えば、受け入れることができない{ wは∈ { 、B } * | W = W R }aaaaaabbb{w∈{a,b}∗∣w=wR}{w∈{a,b}∗∣w=wR}\displaystyle \{w \in \{a, b\}^{*} \mid w = w^{R}\}(証拠なしで記載)。編集:またはそれができますか?私はそれができるとは思いませんが、私は以前に驚いていました。そして、私が...をよくし続けるという私の仮定が驚いたままであると確信しています。 状況依存言語またはチューリング完全言語を受け入れることができますか? より一般的には、この方向でどのような研究が行われていますか?もしあれば、どんな結果がありますか?また、他の種類のエキゾチックなステートマシンにも興味があります。おそらく、ストレージに他のデータ構造を使用したり、アクセスに関するさまざまな種類の制限(たとえば、LBAがTMを制限する方法)になります。参考文献を歓迎します。この質問が無知を示している場合は、事前に謝罪します。 正式な定義: この資料を参照する質問でさらに議論を明確にするために、ここで最小ヒープオートマトンのより詳細な定義をいくつか提供します。 タイプ1の非決定的最小ヒープオートマトンを7タプルとして定義します。ここで...(Q,q0,A,Σ,Γ,Z0,δ)(Q,q0,A,Σ,Γ,Z0,δ)(Q, q_0, A, \Sigma, \Gamma, Z_0, \delta) は有限の空でない状態のセットです。QQQ 初期状態です。q0∈Qq0∈Qq_0 \in Q 受理状態の集合です。A⊆QA⊆QA …

1
{xy ∣ | x | = | y |、x≠y}はコンテキストフリーです
コンテキストフリーと思われる言語に関する次の質問に出くわしたことを覚えていますが、事実の証拠を見つけることができませんでした。おそらく質問を思い出したでしょうか? とにかく、ここに質問があります: 言語はコンテキストに依存しません。L = { x y∣ | x | = | y| 、x≠ y}L={バツy∣|バツ|=|y|、バツ≠y}L = \{xy \mid |x| = |y|, x\neq y\}

1
アルゴリズム、言語、問題の違いは何ですか?
このサイトでは、人々はしばしば「アルゴリズム」と「問題」を混乱させるために他の人を修正するようです。これらの違いは何ですか?アルゴリズムを検討し、問題を検討する時期を知るにはどうすればよいですか?そして、これらは形式言語理論における言語の概念とどのように関係していますか?

2
本質的に曖昧で決定論的なコンテキストフリー言語はありますか?
決定論的プッシュダウンオートマトンで受け入れられる場合にのみ、コンテキストフリー言語を決定論的と呼び、そうでない場合は非決定的と呼びます。 言語を生成するすべての文脈自由文法が曖昧であり、それ以外では曖昧でない場合にのみ、本質的に曖昧な文脈自由言語を呼び出しましょう。 決定論的で明確な言語の例は次の言語です。 非決定的で明確な言語の例は次の言語です。 { W ∈ { 、B } * | w = w R }{ anbn∈ { a 、b }∗| N≥0}{anbn∈{a、b}∗|n≥0}\{a^{n}b^{n} \in \{a, b\}^{*} | n \ge 0\}{ W ∈ { 、B }∗| w= wR}{w∈{a、b}∗|w=wR}\{w \in \{a, b\}^{*} | w = w^{R}\} ウィキペディアから、本質的に曖昧なコンテキストフリー言語の例は、コンテキストフリー言語の以下の結合であり、これもコンテキストフリーでなければなりません: L = { anbmcmdn∈ { …

9
状況依存(タイプ1)言語の重要性は何ですか?
Chomsky Hierarchyでは、タイプ3言語は外部メモリのない状態マシン(すなわち、有限オートマトン)によって認識され、タイプ2は単一スタックの状態マシン(すなわち、プッシュダウンオートマトン)およびタイプ0によって認識されます。2つのスタックを持つステートマシン(または、チューリングマシンの場合と同じように、テープ)、Type 1言語はこの図にどのように適合しますか?また、言語がタイプ0だけでなくタイプ1であると判断することにはどのような利点がありますか?

2
通常の言語が「通常」と呼ばれるのはなぜですか?
Michael Sipserによる計算理論入門の最初の章を終えたところで、有限オートマトンの基本について説明しています。 彼は、通常の言語を、有限オートマトンで記述できるものとして定義しています。しかし、私は彼が通常言語が「通常」と呼ばれる理由を説明する場所を見つけることができませんでした。この文脈における「通常」という用語の起源は何ですか? 注:私は初心者なので、簡単な言葉で説明してみてください!

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

1
与えられた長さの通常の言語の単語数の漸近
通常の言語場合、をの長さ単語数とします。ジョーダン正準形(の一部のDFAの注釈なし遷移行列に適用)を使用すると、十分に大きい、 ここで、は複素多項式で、は複素「固有値」です。(小さい、という形式の追加の項があり。ここで、および場合、はですC N(L )L N L N C N(L )= kのΣを iは= 1つの P I(N )λをN I、P I λ I N CとK [ N = K ] [ N = K ] 1 N = k 0LLLcn(L )cn(L)c_n(L)LLLnnnLLLnnncn(L )= ∑i = 1kP私(n )λn私、cn(L)=∑i=1kPi(n)λin, c_n(L) = \sum_{i=1}^k P_i(n) \lambda_i^n, P私PiP_iλ私λi\lambda_innnCk[ n …

6
要素の繰り返しなしでペアのセットから組み合わせを生成する
ペアのセットがあります。各ペアの形式は(x、y)で、x、yは範囲の整数に属します[0,n)。 したがって、nが4の場合、次のペアがあります。 (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 私はすでにペアを持っています。次に、n/2整数が繰り返されないようにペアを使用して組み合わせを作成する必要があります(つまり、各整数は最終的な組み合わせで少なくとも1回出現します)。理解を深めるための正しい組み合わせと間違った組み合わせの例を次に示します 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] ペアができたら、可能性のあるすべての組み合わせを生成する方法を誰かが提案できますか?

2
言語がコンテキストフリーであることを証明する方法は?
あります多くの技術言語であることを証明するためではない文脈自由は、しかし、どのように私は言語があることを証明んです文脈自由? これを証明するためのテクニックは何ですか?明らかに、1つの方法は、言語の文脈自由文法を示すことです。特定の言語の文脈自由文法を見つけるための体系的な手法はありますか? 通常の言語では、そこにある 体系的な方法正規文法/有限状態オートマトンを導出するには:例えば、マイヒル-ネローデの定理は、1つの方法を提供します。コンテキストフリー言語に対応する技術はありますか? ここでの私の動機は、(願わくば)与えられた言語が文脈自由であることを証明しようとするとき、しばしば役立つテクニックのリストを含む参照質問を構築することです。この特別なケースである多くの質問がここにあるので、この種の問題に直面したときに使用できる一般的なアプローチまたは一般的なテクニックを文書化できればいいでしょう。

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