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

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

2
文脈自由でない補語を伴う文脈自由言語の例
文脈自由言語は補完の下で閉じられていません。講義では、同じ引数が与えられているここでWikipediaのための: A={anbncm; m,n∈N0}andB={ambncn; m,n∈N0},A={anbncm; m,n∈ℕ0}andB={ambncn; m,n∈ℕ0},A = \{\mathtt a^n \mathtt b^n \mathtt c^m;~m, n ∈ ℕ_0\}\quad\text{and}\quad B = \{\mathtt a^m \mathtt b^n \mathtt c^n;~m, n ∈ ℕ_0\}, 両方のAAA及びBBB文脈自由であるが、それらの交点A∩BA∩BA ∩ Bありません。文脈自由言語は労働組合の下で閉鎖されているので、補完の下で閉鎖することもできません。 しかし、これだけのショーの3つの言語の1というAAA、BBB、及びA¯¯¯¯∪B¯¯¯¯A¯∪B¯\overline A \cup \overline B非文脈自由補完と文脈自由言語であるが、そのためにこれらの一つは、これは真実ではありません。それは何ですか? また、おそらくバイナリアルファベットを超えた、コンテキストフリーでない補完機能を備えたコンテキストフリー言語の最小限かつエレガントな例はありますか?

1
言語が正規かどうかをテストするアルゴリズム
言語が正規かどうかをテストするためのアルゴリズム/体系的な手順はありますか? 換言すれば、代数形式で指定された言語与えられる(のようなものを考えるL={anbn:n∈N}L={anbn:n∈N}L=\{a^n b^n : n \in \mathbb{N}\})、言語が正規であるかどうかをテストします。学生がすべての宿題を手助けするWebサービスを作成していると想像してください。ユーザーが言語を指定すると、Webサービスは「通常」、「通常ではない」、または「わからない」で応答します。(Webサービスに「わからない」とできるだけ頻繁に回答しないようにしてください。)これを自動化する良い方法はありますか?これは扱いやすいですか?それは決定可能ですか(つまり、「わからない」と答える必要がないことを保証することは可能ですか)?この問題を解決するための合理的に効率的なアルゴリズムはあり、実際に発生する可能性のある多くの/ほとんどの言語に対して「わからない」以外の回答を提供できるでしょうか? 言語が規則的でないことを証明する古典的な方法は、ポンピングレンマです。ただし、ある時点では(たとえば、ポンプする単語を選択するために)手動での洞察が必要となるため、これをアルゴリズムに変換できるかどうかは不明です。 言語が正規であることを証明する古典的な方法は、Myhill–Nerodeの定理を使用して有限状態オートマトンを導出することです。これは有望なアプローチのように見えますが、代数形式で言語に対して基本的な操作を実行する機能が必要です。代数形式の言語で、必要になる可能性のあるすべての操作を象徴的に実行する体系的な方法があるかどうかは、私にはわかりません。 この質問を適切に配置するには、ユーザーが言語を指定する方法を決定する必要があります。私は提案を受け入れていますが、私はこのようなことを考えています: L={E:S}L={E:S}L = \{E : S\} ここで、は単語式、Sは長さ変数に対する線形不等式のシステムであり、次のように定義されています。EEESSS 各ワード表現です。(これらは、Σ ∗の任意の単語をとることができる変数を表します。)x,y,z,…x,y,z,…x,y,z,\dotsΣ∗Σ∗\Sigma^* それぞれワード表現です。(ここで、x rは文字列xの逆を表します。)xr,yr,zr,…xr,yr,zr,…x^r,y^r,z^r,\dotsxrxrx^rxxx それぞれ、B 、Cは、...ワード表現です。(暗黙的に、Σ = { 、B 、C 、... }、そう、B 、C 、...、基礎となるアルファベットで単一のシンボルを表します。)a,b,c,…a,b,c,…a,b,c,\dotsΣ={a,b,c,…}Σ={a,b,c,…}\Sigma=\{a,b,c,\dots\}a,b,c,…a,b,c,…a,b,c,\dots 各η、B η、C ηは、...場合、単語表現であるηは、可変長のです。aη,bη,cη,…aη,bη,cη,…a^\eta,b^\eta,c^\eta,\dotsηη\eta 単語式の連結は単語式です。 各長可変です。(これらは任意の自然数を取ることができる変数を表します。)m,n,p,q,…m,n,p,q,…m,n,p,q,\dots それぞれ x | 、| y | 、| z | 、…は長さ変数です。(これらは対応する単語の長さを表します。)|x|,|y|,|z|,…|x|,|y|,|z|,…|x|,|y|,|z|,\dots これは、教科書の演習で見られる多くのケースを処理するのに十分広いようです。もちろん、より適切な提案があれば、代数形式で言語を指定する他のテキストによる方法で置き換えることができます。

4
スターフリー言語と通常の言語
以来、私は、思っていた*は、星のない言語そのものであるスター自由言語ではない通常の言語がありますか?例を挙げていただけますか?a∗a∗a^* (wikipdiaから)ローソンはスターフリー言語を次のように定義しています: 正規表現は、アルファベットの文字、空のセット記号、すべてのブール演算子(補完を含む)、および連結であるがクリーネスターではない正規表現で記述できる場合、スターフリーと呼ばれます。 これはa∗a∗a^*がスターフリーであることの証明です。 ∅∅\emptyset星フリーで⟹⟹\Longrightarrow Σ∗=∅¯Σ∗=∅¯\Sigma^*=\bar{\emptyset}星フリーです⟹⟹\Longrightarrow 場合はA⊆ΣA⊆ΣA\subseteq\Sigmaその後、Σ∗AΣ∗Σ∗AΣ∗\Sigma^*A\Sigma^*スターフリーです⟹⟹\Longrightarrow 場合はA⊆ΣA⊆ΣA\subseteq\Sigmaその後、A∗=Σ∗(Σ∖A)Σ∗¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯A∗=Σ∗(Σ∖A)Σ∗¯A^*=\overline{\Sigma^*(\Sigma \setminus A)\Sigma^*}ですスターフリー 最後の行では、我々は持っているA∗=Σ∗(Σ∖A)Σ∗¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯A∗=Σ∗(Σ∖A)Σ∗¯A^*=\overline{\Sigma^*(\Sigma \setminus A)\Sigma^*}フォームではない任意の単語ので、A∗A∗A^*の文字が含まΣ∖AΣ∖A\Sigma \setminus Aその逆と副を。

2
文脈自由文法によって生成された言語を見つける
これはドラゴンブックからの質問です(私は翻訳ミスをお詫びします。英語版は手元にありません): この文法によって生成される言語は何ですか? S→ a Sb S∣ b SS∣ ϵS→aSbS∣bSaS∣ϵS \rightarrow a S b S \mid b S a S \mid \epsilon ここで何をするべきかわかりません。言語に関する本の定義はこれを述べています(そしてそれはほとんど章の中でそれです): 言語は、任意の解析ツリーで生成できるすべての単語のセットです。 したがって、この文法から「任意」の解析ツリーを作成する場合は、最初の2つのルールだけを使用して、再帰的に構築を続けることができます。少し検索したところ、すべてのルールを1回使用する必要があるという印象を受けましたが、よくわかりません。誰かがこの種の問題を解決するためのいくつかのヒントを提供することができればそれは非常に役に立ちます。

3
循環シフト下で文脈自由言語がクローズされていることの簡単な証明
サイクリックシフト (別名回転又は抱合言語の)ように定義される{ Y 、X | のX 、Y ∈ L }。ウィキペディア(およびここ)によると、文脈自由言語はこの操作のもとで閉鎖されており、大芝とMaslovの論文を参照しています。この事実の簡単な証拠はありますか?LLL{ yx ∣ x y∈ L }{yx∣xy∈L}\{ yx \mid xy \in L \} 通常の言語の場合、この形式では、「通常の言語がサイクル演算子の下で閉じられていることを証明する」という形でクロージャーが説明されます。

1
絞り込みタイプの推測
職場では、動的言語に関する型情報を推論する必要があります。次のように、ステートメントのシーケンスをネストされたlet式に書き換えます。 return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 一般的なタイプ情報から始めて、より具体的なタイプを推測しようとしているので、自然な選択は絞り込みタイプです。たとえば、条件演算子は、trueブランチとfalseブランチの型の和集合を返します。単純なケースでは、非常にうまく機能します。 ただし、次のタイプを推測しようとしたときに、思わぬ障害に遭遇しました。 function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

3
重複するサイクルを持つNFAを正規表現に変換する方法は?
私が正しく理解すれば、NFAには正規表現と同じ表現力があります。多くの場合、NFAから同等の正規表現を読み取るのは簡単です。サイクルを星に変換したり、ジャンクションを代替として変換したりします。しかし、この場合何をすべきか: [ ソース ] オーバーラップするサイクルにより、このオートマトンが何を受け入れるか(正規表現に関して)がわかりにくくなります。トリックはありますか?

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

5
言語の規則性について十分かつ必要な条件
次の説明のうち、正しいものはどれですか。 言語の規則性に関する十分で必要な条件は存在しますが、まだ発見されていません。 言語の規則性について十分かつ必要な条件はありません。 補題のポンピングは、言語の非規則性のために必要な条件です。 補題のポンピングは、言語の非規則性にとって十分な条件です。 #(4)は正しい、#(3)はfalseであることを知っています。「このステートメントの逆は真ではありません。これらの条件を満たす言語はまだ非正規である可能性があります」ですが、(1)と(2)?

4
実装なしでプログラミング言語を指定できますか?
実装が存在しない可能性のあるプログラミング言語を指定することは理論的に可能ですか?プログラミング言語は、関数を定義する方法です。実装とは、特定の入力でプログラムに対応する関数の出力への特定の入力で、その言語で特定のプログラムを実行するメソッドを意味します。 そのような言語の最小要件は何ですか?


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

4
DFAで受け入れられない通常の言語は最大で3つの州しかありません
州が3つしかないDFAで受け入れられない通常の言語について説明してください。 私はこれからどこから始めればいいのか本当にわからず、誰かが私にいくつかのヒントやアドバイスを与えることができるかどうか疑問に思いました。ポンピングレンマは、言語が規則的でないことを証明するために使用できることを理解していますが、この場合、それは通常の言語である必要があります。誰かが何か考えを持っている場合、それはいただければ幸いです。

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