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

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

2
この言語が文脈自由でないことをどのように証明できますか?
次の言語があります { 0私1j2k| 0 ≤ I ≤ J ≤ K }{0i1j2k∣0≤i≤j≤k}\qquad \{0^i 1^j 2^k \mid 0 \leq i \leq j \leq k\} 私はどのチョムスキー言語クラスに適合するかを決定しようとしています。文脈依存の文法を使用してそれがどのように作成されるかを確認できるので、少なくとも文脈依存であることがわかります。文脈自由文法では作成できないようですが、それを証明するのに問題があります。 がすべての単語の3番目の部分(2つのsのすべてを含むセクション)に配置されている場合、フォークポンピングレンマを通過するようです。vとxを必要なだけポンプでき、言語のままです。私が間違っている場合、なぜ私が正しい場合でも、この言語は文脈自由ではないと思うので、なぜそれを証明できますか?u v w x yuvwxyuvwxy222vvvバツxx

1
コンテキストフリー言語の無限の結合は常にコンテキストフリーですか?
してみましょう、L 2、L 3、...一般的なアルファベットの上に定義さデFiがあり、それぞれが文脈自由言語のFi回線有限シーケンス、であることΣ。してみましょうLはのFiの中に無限の労働組合もL 1、L 2、L 3、... ; すなわち、L = L 1 ∪ L 2 ∪ L 3 ∪ ...。L1L1L_1L2L2L_2L3L3L_3……\dotsΣΣΣLLLL1L1L_1L2L2L_2L3L3L_3……\dots L = L1∪ L2∪ L3∪ …L=L1∪L2∪L3∪…L = L_1 \cup L_2 \cup L_3 \cup \dots が文脈自由言語であるということは常に当てはまりますか?LLL

1
決定論的な文脈自由言語のためのポンプの補題?
通常の言語のポンピングレンマは、特定の言語が通常ではないことを証明するために使用できます。また、文脈自由言語のポンピングレンマ(オグデンの補題とともに)を使用して、特定の言語がコンテキストフリーでないことを証明できます。 決定論的な文脈自由言語のためのポンプレンマはありますか?つまり、言語がDCFLではないことを示すために使用できるポンピングレンマに類似したレンマはありますか?言語がDCFLではないことを示すために私が知っているほとんどすべての証明手法は本当に複雑であり、もっと簡単な手法があることを望んでいたので、私は興味があります。


2
無理数を含む言語はCFLではありません
教科書でハードなエクササイズをしているのですが、どうすればいいのか分かりません。ここに問題があります。我々は言語があるとL={aibj:i≤jγ,i≥0,j≥1}L={aibj:i≤jγ,i≥0,j≥1}L = \{a^ib^j: i \leq j \gamma, i\geq 0, j\geq 1\}γγ\gammaいくつかの無理数です。LLLが文脈自由言語ではないことをどのように証明しますか? γγ\gammaが合理的である場合、その言語を受け入れる文法を構築するのはかなり簡単です。しかし、γγ\gammaは不合理なので、どうすればいいかわかりません。ここでは、ポンピングレンマが機能するようには見えません。おそらく、この言語には半線形のパリキイメージが付属していないように直感的に見えるため、パリキの定理はここで機能します。 この演習は、第4章の演習25、Jeffrey Shallitによる「形式言語とオートマトン理論の第2コース」からのものです。 私は本当にどんな助け、または正しい方向への微調整に感謝します。ありがとうございました!

1
Earley Parserは、DFAのLevenshtein Automata Algoのようなファジーパーサーにできますか?
DFAと実行時に入力された単語のLevenshtein Automataを実行して、あいまいな解析を実行する方法があります(タイプミスがある場合でも文字列を受け入れます)。Earleyパーサーでも同様のことができますか?アルゴリズムを理解するのは難しいと思います。この質問に答えることは言うまでもありません。

2
言語のLR(1)オートマトンは、対応するLR(0)オートマトンよりどのくらい大きくできますか?
LR(0)パーサーでは、各状態はLR(0)アイテムのコレクションで構成されます。LR(0)アイテムは、位置で注釈が付けられたプロダクションです。LR(1)パーサーでは、各状態はLR(1)アイテムのコレクションで構成されます。これは、位置と先読み文字で注釈が付けられたプロダクションです。 LR(1)オートマトンの状態が与えられると、各LR(1)アイテムから先読みトークンを削除することによって形成される構成セットは、LR(0)オートマトンのいくつかの状態に対応する構成セットを生成することが知られています。その意味で、LR(1)オートマトンとLR(0)オートマトンの主な違いは、LR(1)オートマトンにはLR(0)オートマトンの状態のコピーが多く、それぞれに先読みが付いていることです。情報。このため、特定のCFGのLR(1)オートマトンは、通常、そのCFGの対応するLR(0)パーサーよりも大きくなります。 私の質問は、LR(1)オートマトンをどれだけ大きくできるかです。ある場合は文法のアルファベットの明確な終端記号は、その後、原則的に、我々は、少なくとも一回のサブセットあたりLR(0)オートマトンの各状態を複製する必要があるかもしれません 1(LRにつながる潜在的に、明確な終端記号)オリジナルのLR(0)オートマトンより倍大きいオートマトン。LR(0)オートマトンの個々のアイテムがそれぞれ異なるLR(0)アイテムのセットで構成されている場合、さらに大きなブローアップが得られる可能性があります。n 2 nんnnんnn2ん2n2^n とはいえ、LR(1)オートマトンが対応するLR(0)オートマトンより大幅に大きい文法のファミリーを構築する方法を見つけることができないようです。私が試したすべてのことで、サイズはわずかに大きくなりました(通常は2〜4倍程度)が、大きな爆発につながるパターンを見つけることができないようです。 LR(1)オートマトンが対応するLR(0)オートマトンより指数関数的に大きい、文脈自由文法の既知のファミリーはありますか?それとも、最悪の場合、実際には指数関数的な爆発が起こらないことがわかっていますか? ありがとう!

3
文法
缶誰かが私に制作しようとバックトラックと理由を再帰下降構文解析啓発とS → A(この順番では)文法によって形成された言語認識していないS → A S Aを| A。S→aSaS→aSaS \rightarrow aSaS→aaS→aaS \rightarrow aaS→aSa | aaS→aSa | aaS \rightarrow aSa\ |\ aa 言語からの単語を解析するだけのようです。{a2n | n≥1}{a2n | n≥1}\{a^{2^n}\ |\ n \ge 1 \} たとえば、このABNFパーサージェネレーターをプロダクションルールとともに使用して、そのようなパーサーを生成しましたがS = "a" S "a" / "aa"、パーサーはを認識しませんaaaaaa。 パースツリーの左端からのノードの連結が7で始まるまでは、プロダクションを使用し、その後、ツリーが見えるまでプロダクションS → a aを選択して、パースツリーを上に移動することを期待します。このような:S→aSaS→aSaS \rightarrow aSaaS→aaS→aaS \rightarrow aa S / | \ a …

1
基本言語とクロージャプロパティのセットからすべての文脈自由言語を構築しますか?
正規表現を見る1つの方法は、次の事実の建設的な証明としてです。小さな言語のセットから始めて、小さな固定された一連のクロージャープロパティを介してそれらを組み合わせることにより、正規言語を構築することが可能です。具体的には、空の言語、空の文字列を含む言語、およびすべての1文字の文字列の言語から始める場合、ユニオン、連結、およびKleeneスターを使用して、すべての可能な通常の言語を組み立てることができます。 すべてのコンテキストフリー言語のみを生成するために使用できる基本言語とクロージャープロパティのセットはありますか?(明確にするために、私はすべてのCFLに正規表現を記述できるかどうかを尋ねていませんが、不可能であることを知っています。代わりに、CFLの正規表現のようなフレームワークを設計する方法があるかどうか疑問に思っています。同じ基本原則。)

1
シフト解決解析-質問
私は最近、タイトルで言及されている解析手法を説明する論文に出くわしました。残念ながら、上記の論文で使用されている用語は、私の理解をいくらか超えているため、構築アルゴリズムをより直感的に把握するように努めています。私は成功したと思います(このプレゼンテーションはah-haモーメントのソースでした)が、このテクニックに慣れている人またはそこに含まれる用語のどちらかからの正しさの検証は非常にありがたいです。 ソリューションに対する私の見方を説明し(それが正しい場合は、この手法を理解しようとしている他の人々の助けになると思います)、後で追加の質問をします。:何の誤解がありません確実にするために、私は次の標準表記法を使用するつもりだ、B 、Cを、。。。∈ T、A 、B 、C 、。。。∈ N、、と、紙のようにはルール番号を示しますA 、B 、C 、。。。∈ Ta,b,c,...∈Ta, b, c, ... \in TA 、B 、C、。。。∈ NA,B,C,...∈NA, B, C, ... \in Nα 、β 、γ 、。。。∈ { N ∪ T } * A I → ω I。。。バツ、Y、Z∈ N∪ T...X,Y,Z∈N∪T... X, Y, Z \in N \cup Tα 、β、γ、。。。∈ { …

1
文字列とCFGが与えられた場合、文字列の後に続くことができる文字(CFGの定型形式)は?
してみましょう、端末とのセットでNいくつかの文脈自由文法の非終端記号の集合G。ΣΣ\SigmaNNNGGG 私は文字列持っていると言うように、X 、A Y ∈ S(G )xは、yは∈ (Σ ∪ N )*およびS(Gは)のsentential形態であるG。a∈(Σ∪N)+a∈(Σ∪N)+a \in (\Sigma \cup N)^+xay∈S(G)xay∈S(G)x a y \in \mathcal{S}(G)x,y∈(Σ∪N)∗x,y∈(Σ∪N)∗x,y\in (\Sigma \cup N)^*S(G)S(G)\mathcal{S}(G)GGG 与えられた、Iセットを決定したいC = { B | W BをZ ∈ S(G )、B ∈ Σ ∪ N }を。GGGC= { b ∣ w a b z∈ S(G )、B ∈ Σ ∪ N}C={b∣wabz∈S(G),b∈Σ∪N}C …

5
アフィン関数の値の言語
書き込みn¯n¯\bar nの小数展開のためnnn(なし有力で0)。ましょうとbが付き整数、可能> 0。倍数の小数展開の言語を検討プラス定数を:aaabbba>0a>0a > 0aaa M={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯∣x∈N}M={ax+b¯∣x∈N}M = \{ \overline{a\,x+b} \mid x\in\mathbb{N} \} あるMMM、通常の?コンテキストフリー? (アフィン関数のグラフの言語と対比) これは良い宿題の質問になると思います。ヒントやヒントから始めて、質問の解決方法だけでなく、使用するテクニックの決定方法も説明する回答をいただければ幸いです。

1
| w |でwsする方法 = | s | そしてw s sはコンテキストフリーであるが、w#sはそうではない?
分離記号が2つの言語を区別しているのはなぜですか(その場合)。##\# 言いましょう: L={ws:|w|=|s|w,s∈{0,1}∗,w≠s}L={ws:|w|=|s|w,s∈{0,1}∗,w≠s}L=\{ws : |w|=|s|\, w,s\in \{0,1\}^{*}, w \neq s \} L#={w#s:|w|=|s|w,s∈{0,1}∗,w≠s}L#={w#s:|w|=|s|w,s∈{0,1}∗,w≠s}L_{\#}=\{w\#s : |w|=|s|\, w,s\in \{0,1\}^{*}, w \neq s \} ここに証明とをとして表す文法がありますLLLCFLCFLCFL そして、証明を追加するイムの下:L#∉CFLL#∉CFLL_{\#} \notin CFL 記号は、本当に違いを生みますか?もしそうなら、それはなぜですか?そうでない場合、どちらの証明が間違っているのですか?##\# その証明:L#∉CFLL#∉CFLL_{\#} \notin CFL その矛盾の方法によって想定。みましょうする励起一定である 文脈自由言語のためのポンピング補題により保証。単語を考慮します ここで、なのでです。以降 、ポンピング補題によると、ような 表現が存在します、、および各。L∈CFLL∈CFLL ∈ CFLp>0p>0p > 0LLLs=0m1p#0p1ms=0m1p#0p1ms = 0^{m}1^{p}\#0^{p}1^{m}m=p!+pm=p!+pm=p!+ps∈Ls∈Ls ∈ L|s|>p|s|>p|s| > ps=uvxyzs=uvxyzs = uvxyz|vy|>0|vy|>0|vy| > 0|vxy|≤p|vxy|≤p|vxy| ≤ puvjxyjz∈Luvjxyjz∈Luv^{j}xy^{j} z …

2
「最短一致」以外の「ぶら下がりelse」問題の別の解決策はありますか?
以下の文脈自由文法のプレゼント「ぶら下がりelse」タイプのあいまいさ(と想像を意味し、の略と命令またはブロックのいくつかの他の種類の略): たとえば、はまたはとして解析できます(これは、この文法の最も単純/最短のあいまいな単語です)。b c Saaaif expr thenbbbelseccc aacbc(a(acbc))(a(ac)bc)S→aSbS|aS|cS→aSbS|aS|c \begin{aligned} S &\rightarrow aSbS \;|\; aS \;|\; c\\ \end{aligned} aacbcaacbcaacbc(a(acbc))(a(acbc))(a(acbc))(a(ac)bc)(a(ac)bc)(a(ac)bc) この「ぶら下がりelse」曖昧軍「他」(解決するために、「標準」方法「IF-THEN」(最も近い/最も内側とペアに)ステートメントを)。これは次のようにして実現できます。 この文法は明確です。上記の例では、解析をます。a Sbbbaaa(a(acbc))ST→aTbS|aS|c→aTbT|cS→aTbS|aS|cT→aTbT|c \begin{aligned} S &\rightarrow aTbS \;|\; aS \;|\; c\\ T &\rightarrow aTbT \;|\; c\\ \end{aligned} (a(acbc))(a(acbc))(a(acbc)) 質問:aacbcの解析を強制するあいまいさを解決する別の自然な方法はありますか?言い換えると、私は上記の2つと同じ言語を生成する、明確で、aacbcを(a(ac)bc)として解析する文法を探しています。a a c b c a a c b c (a (a c )b c …

1
無限のルールを許可するCFGはどれほど強力ですか?
最近、文脈自由文法に無数のルールを許可するとどうなるのだろうと思っていました。明らかに、我々はルールの任意のそのような無限のセットを許可したい場合は、すべての言語一部アルファベット上Σは CFGによって記述することができたG = ({ S } 、Σ 、R 、S )とR = { S → W | W ∈ L }。しかし、Rを文脈自由文法によって作成できるようなルールのセットに制限するとどうなるでしょうか。LLLΣΣ\SigmaG=({S},Σ,R,S)G=({S},Σ,R,S)G = (\{S\},\Sigma,R,S)R={S→w∣w∈L}R={S→w∣w∈L}R = \{S \rightarrow w \mid w \in L \}RRR その目的のために、非終端記号の集合所与と端子Σ、私たちはの要素としてルールをしない表示できN × (N ∪ Σ )*が、アルファベットの上に文字列としてR (N 、Σ ) = N ∪ Σ ∪ { → }。ここで私の質問は、無限ルールCFGをタプルG = (N …

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