タグ付けされた質問 「context-free」

(同等に)文脈自由文法によって記述された、または(非決定的)プッシュダウンオートマトンによって受け入れられた言語のセットに関する質問。

4
ポンプレンマの長さ制限はどこから来るのですか?
言語について LLL ポンピング長さ ppp、および文字列 s∈Ls∈Ls\in L、ポンピング補題は次のとおりです。 通常版:|s|≥p|s|≥p|s| \geq p、その後 sss 次のように書くことができます xyzxyzxyz、以下の条件を満たす: |y|≥1|y|≥1|y|\geq 1 |xy|≤p|xy|≤p|xy|\leq p ∀i≥0:xyiz∈L∀i≥0:xyiz∈L \forall i\geq 0: xy^iz\in L コンテキストフリーバージョン:|s|≥p|s|≥p|s| \geq p、その後 sss 次のように書くことができます uvxyzuvxyzuvxyz、以下の条件を満たす: |vy|≥1|vy|≥1|vy|\geq 1 |vxy|≤p|vxy|≤p|vxy|\leq p ∀i≥0:uvixyiz∈L∀i≥0:uvixyiz∈L \forall i\geq 0: uv^ixy^iz\in L 私の質問はこれです。誰かが規則性(文脈自由性)が上記の1番目と2番目の条件をどのように暗示するかについて簡潔で明確な説明を与えることができますか?ポンピングの長さは、(有限の)プロパティ(それぞれ、有限数の状態または有限のプロダクションルールのプロパティ)によって決定されます。3番目のプロパティは、状態(プロダクションルール)が任意に何度もスキップまたは繰り返されることを保証しますが、最初のそして2番目の条件は発生しますか?彼らはどのように正当化されますか?

1
PEGをBNFに変換
解析式文法(PEG)は明確であり、表面的にはBNFに類似した構文を持っていますが、3つの重要な違いがあります。 順序付き選択演算子e1 / e2 / e3。 と述語&。 not演算子!。 少し質問があります: PEGによって認識される言語はすべて文脈自由ですか? (1)の答えが「いいえ」の場合、明確な文法のみを生成することが保証された表現力のある文法形式はありますか?特に、ドロップ&し!てコンテキストフリーの文法のみを生成するでしょうか? すべてのPEGがコンテキストフリーである場合、アルゴリズムを介して同等の BNF に変換できますか? コンテキストは、Chomsky–Schützenberger列挙定理を使用して、PEGライブラリの生成関数を計算したいということです。これには、BNFに類似した標準形式での文法の仕様が必要と思われます。

1
コンテキストフリー言語は、「拡張機能なし」にするために閉じられていません
言語について LLL、定義: NE(L )= { X ∈ L :Xは で任意の文字列の適切な接頭辞ではない L }NE(L)={x∈L:x is not the proper prefix of any string in L} NE(L) = \{x \in L : x \text{ is not the proper prefix of any string in } L\} この操作では、文脈自由言語が閉じられていないことを示しようとしています。私は長い間、反例、つまり言語を見つけるのに苦労してきましたLLL そのような LLL コンテキストフリーですが NE(L )NE(L)NE(L)はコンテキストフリーではなく、何も考え出されていません。調べる言語についてのアイデアやヒントをいただければ幸いです。 編集:ほとんどの文脈自由言語では、どちらかが NE(L )= …

1
これらは、CF以外の補完を持つCF言語の証明に対する有効な反例ですか?
誰かが、文脈自由でない言語の例に、文脈自由でない補完物を求めました。 最初の答えは言う: 言語 L1={ww∣w∈{a,b}∗}L1={ww∣w∈{a,b}∗}L_1= \{ww \mid w \in \{a,b\}^*\}は文脈自由ではありません(ポンピングレンマを使用して表示できるため、ここを参照してください)。その補集合はコンテキストフリーです(ここに示すように)。L2={a,b}∗∖L1L2={a,b}∗∖L1L_2 = \{a,b\}^* \setminus L_1 たぶん実際にはこれは真実かもしれませんが、上記の情報を考えると、これがそのような言語の有効な例であると私は確信していません。私は以前にがCFではないことを証明したので、それを受け入れることに問題はありません。ただし、CFGと与えられた証明は間違っています。私は本当に単純な反例を示すことができます:文字列。明らかにの形式ではないのでです。ただし、は、説明されているCFGを使用して構築することはできません。LLLL2L2L_2s=aaabaas=aaabaas=aaabaas∈L2s∈L2s \in L_2wwwwwwsssL2L2L_2 証明:文字列長さが偶数であるため、文字列はまたはの形式ではありません。したがって、それはまたはの形式である必要がありますが、ストリングの両方の半分の中央に同じ文字()があるため、これは不可能です。したがって、は矛盾します。sssAAABBBABABABBABABAaaas∉L2s∉L2s \notin L_2 2番目の答えは言う: ウィキペディアで見られる例:put、。PDAを定義することで、とがコンテキストフリーであることが簡単にわかります。あなたはそれらが決定論的文脈自由言語であることに気づくことができます、それは補完の下で閉じられたクラスです。したがって、は、文脈自由ではない補語持つ文脈自由言語です。A={anbncm}A={anbncm}A=\{a^n b^n c^m\}B={ambncn}B={ambncn}B=\{a^m b^n c^n\}A¯¯¯¯A¯\overline{A}B¯¯¯¯B¯\overline{B}A¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline{A} \cup \overline{B}A∩B={anbncn}A∩B={anbncn}A \cap B=\{a^n b^n c^n\} これは反証するのがさらに簡単です。確かに、決定論的な文脈自由言語は補完の下で閉じられていますが、それらは結合の下で閉じられていません。したがって、言語は必ずしも文脈自由ではありません。A¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline{A} \cup \overline{B} 私は現在、まだTheory of Computingを受講しているので、何か問題が発生したか、明らかな真実を見落とした可能性があります。誰かが私の主張を否定できますか?そうでない場合は、CF以外の補完機能を備えたCF言語の有効な例を提供できますか?

1
対応する言語クラスがCFLを含み、モデル内の非決定性を許可しない(無効にする)オートマトンモデルの最小クラス
以下からのコメント、興味深い質問がポップアップ。CFLのクラス(PDAによって認識される言語)は、非決定性の下では明らかに閉じられていません。つまり、これは、決定論的PDAは非決定論的PDAと同等ではないということです。 ただし、すべてのCFLは決定可能であり、この場合、決定論的TMのパワーは非決定論的TMと同等です。 さて、これは大きなギャップです-非決定論の下で閉じられるCFLの「上」の最小の言語は何ですか?

2
パリフの定理:CFLの「含む」通常言語?
パリクの定理に関するウィキペディアの記事の最初の文は次のように述べています。 「理論的なコンピューターサイエンスにおけるパリクの定理は、順序に関係なく、文脈自由言語での終端記号の相対的な出現回数のみを見た場合、その言語は通常の言語と区別がつかないと述べています。」 この文を理解するのに問題があります。単項CFLは、有限数の算術シーケンスの結合として説明できることを理解しています。これは、いくつかのCFLモーフィズムを適用すると、たとえば、とを一部のとすべてのとにマッピングすることを意味しますか、次に、は単項正規言語ですか?誰かがこれについて詳しく説明できますか?hhhLLL⟶ Aa⟶aa \longrightarrow aC ⟶ εc⟶εc \longrightarrow \epsilon∈ Σa∈Σa \in \SigmaC ∈ Σc∈Σc \in \Sigmac ≠ ac≠ac \neq ah (L )h(L)h(L)

1
Lがコンテキストフリーである場合、FH(L)はコンテキストフリーである必要がありますか?
定義し。換言すれば、偶数長さの文字列の最初の半分の集合である。これを踏まえて、がコンテキストフリーである場合、はコンテキストフリーである必要がありますか?FH(L)={x∈Σ∗:∃y∈Σ∗ with |x|=|y| such that xy∈L}FH(L)={x∈Σ∗:∃y∈Σ∗ with |x|=|y| such that xy∈L}FH(L) = \{x \in \Sigma^* : \exists y \in \Sigma^* \text{ with } |x| = |y| \text{ such that } xy \in L\}FH(L)FH(L)FH(L)LLLLLLFH(L)FH(L)FH(L) これが証明の私の試みです: 以来、 CFLで、非決定PDA認識が存在する、、入力アルファベットであり、スタックではアルファベット、はスタックの初期コンテンツを表すシンボルです。PDA構築からと、:、次のように定義されてLLLLLLM=(Q,Σ,Γ,δ,q0,Z0,F)M=(Q,Σ,Γ,δ,q0,Z0,F)M = (Q, \Sigma, \Gamma, \delta, q_0, Z_0, F)ΣΣ\SigmaΓΓ\GammaZ0Z0Z_0M′M′M'MMMM′=(Q′,Σ,Γ,δ′,q′0,Z0,F′)M′=(Q′,Σ,Γ,δ′,q0′,Z0,F′)M' = (Q', \Sigma, \Gamma, \delta', q_0', …

2
一緒に、文脈自由言語のあらゆる生成を呼び出す最小長の文字列のセットを生成する
問題(tl; dr) 文脈自由文法を考えると、、取る文字列のセットを見つける、それが少なくとも一度持つすべての生産を通じてを。GGGGGG どのように、そしてどのくらい速くそれを行うことができますか? バックグラウンド 私はパーサーがYacc + Antlrのようなツールで実装されているコンパイラーに取り組んでいます。ほとんどのパーサーコードを作成しましたが、文法のすべてのプロダクションを少なくとも1回呼び出すオブジェクト言語のコードを生成して、パーサーにフィードして問題がないことを確認したいと思います。 。 良いテストのために、私が本当に欲しいのは、特定のプロダクションが「テスト中」である1つの短いテストファイルです。したがって、各プロダクションルールについて、パーサーを取得する最小限の文字列を生成します。テスト中のプロダクションから一連の端末への状態の開始 可能な解決策 グラフ理論を使用したエレガントなソリューションがあると思いますが、それが何かはよくわかりません。ダイクストラのアルゴリズムを使用して適切な構造を通る最短パスを検索したいのですが、文字列はパスではなくツリー構造の文脈自由文法によって解析されると思います。そのため、どうすればよいかわかりません。 。 それをネットワークフローの問題として提起するための巧妙な方法があるのではないかと思います。次のようなもの:すべてのシンボル(終端と非終端)の頂点とすべての生成の頂点を持つグラフを取り上げます。非ターミナルにプロダクションがある場合、非ターミナルからプロダクションに有向エッジを追加します。プロダクションがシンボルを生成する場合、プロダクションからシンボルに有向エッジを追加します。容量ソースを追加し、開始シンボルに対応する頂点にアタッチします。無限の容量のシンクを追加して、各端子に取り付けます。ccc 非終端が容量アーク内にある場合、非終端から容量各生成物に弧を追加します。プロダクションに容量インアークがあり、アウトアークからターミナルがある場合、プロダクションから各非ターミナルにキャパシティアークを追加します。kkkkkkkkknnnknkn\frac k n 次に、ネットワーク上でいくつかの最大フローアルゴリズムを実行し、プロダクションを開始シンボルから端末まで「トリクルダウン」させます。最終的には、フローがソースから出てくるはずであり、ヒットしたすべての端末をゼロ以外のフローで結果文字列として返すことができます。次に、実行ごとに時間の複雑さのようなものになります。ここで、は文法内の終端と非終端の数の合計です-悪くありません。cccO(n3)O(n3)O(n^3)nnn ただし、このグラフがどのように見えるかはまだわかりません。無限である必要があると思います。無限のフローネットワークの最大フローを見つけることができるかどうかはわかりません。それを過ぎると、プロダクションを「削除」する方法がわからないので、テストを実行するたびに新しいプロダクションを取得することが保証されます。 私はグーグルで検索して何も見つかりませんでした。この問題に対する素晴らしい解決策はありますか?

1
C言語の構文はCFGによって完全に定義されていますか?
質問はそれだけで十分だと思います。C言語の構文は、コンテキストフリーの文法によって完全に定義されていますか、それとも、解析中に非コンテキストフリーの定義を必要とする可能性のある言語構成体がありますか? 非CFL構成の例として、使用前の変数の宣言を考えました。しかし、コンパイラ(Aho Ullman Sethi)では、C言語は名前に基づいて識別子を区別しないと述べられています。すべての識別子は、字句解析器によって「id」としてトークン化されます。CがCFGによって完全に定義されていない場合、誰でもCの非CFL構成の例を挙げていただけますか?

1
DPDAが偶数長の回文の言語を受け入れないことを証明する
偶数長の回文、つまりの言語 が決定的なプッシュダウンオートマトンによって受け入れられましたか?L={wwR∣w∈{0,1}∗}L={wwR∣w∈{0,1}∗}L=\left\{ ww^R \mid w\in \left\lbrace 0,1 \right\}^* \right\} 文脈自由言語が決定論的PDAによって受け入れられないことを証明する一般的な方法はありますか?レンマをポンピングするようなものですか?

2
{a ^ ib ^ jの文脈自由文法| i、j≥0; i≠2j}
誰かがこれを助けることができます: L={aibj∣i,j≥0 and i≠2j}L={aibj∣i,j≥0 and i≠2j}L=\{a^ib^j \mid i,j \ge 0 \text{ and } i \ne 2j\} この言語の文法を書こうとしているのですか?これを行う方法がわかりません。私はこれを試しました: S→aaAb∣aAA→aA∣aS→aaAb∣aAA→aA∣aS \rightarrow aaAb \mid aA \\ A \rightarrow aA \mid a


2
言語の固有のあいまいさ
一連のオプションの中から、本質的にあいまいな言語を選択するように求める質問をしました。 L1= {aんbメートルcメートルdん|M 、N ≥ 1 } ∪ {aんbんcメートルdメートル|M 、N ≥ 1 }L1={anbmcmdn|m,n≥1}∪{anbncmdm|m,n≥1}L_1 = \{a^nb^mc^md^n \;|\; m,n \geq 1\}\cup \{a^nb^nc^md^m \;|\; m,n \geq 1\} a n dandand L2= {aんbメートルcメートル|M 、N ≥ 1 } ∪ {aんbんcメートル|M 、N ≥ 1 }L2={anbmcm|m,n≥1}∪{anbncm|m,n≥1}L_2 = \{a^nb^mc^m \;|\; m,n \geq 1\}\cup \{a^nb^nc^m \;|\; m,n \geq 1\} …

1
単純な文法と通常の文法の関係
ピーターリンツによって書かれた「形式言語とオートマトン入門」を読んでいて、最初の5つの章を読んだ後、互いに非常に似ている単純で規則的な(特に正しい線形)文法の問題に直面します。 これらの間にはどのような関係がありますか?違いはなんですか?(明らかにスタックを使用せずに)単純な文法の(非決定的)有限オートマトンを作成できますか?

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

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