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

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

1
初期状態/受け入れ状態が異なる2つのDFAが受け入れる言語の違いは何ですか?
最近、Math SE について質問しました。まだ応答がありません。この質問はその質問に関連していますが、コンピュータサイエンスに関する技術的な詳細です。 2つのDFAが与えられた場合およびB = (Q 、Σ 、δ 、q 2、F 2)ここで、状態のセット、入力アルファベット、およびAの遷移関数とBは同じで、初期状態と最終(受け入れ)状態が異なる場合があります。してみましょうL 1およびL 2は、言語が受け入れられるAとA=(Q,Σ,δ,q1,F1)A=(Q,Σ,δ,q1,F1)A = (Q, \Sigma, \delta, q_1, F_1)B=(Q,Σ,δ,q2,F2)B=(Q,Σ,δ,q2,F2)B = (Q, \Sigma, \delta, q_2, F_2)AAABBBL1L1L_1L2L2L_2AAAそれぞれ B。BBB 4つのケースがあります。 および F 1 = F 2。q1=q2q1=q2q_1 = q_2F1=F2F1=F2F_1 = F_2 および F 1 = F 2。q1≠q2q1≠q2q_1 \neq q_2F1=F2F1=F2F_1 = F_2 および F 1 …

3
される
私は数週間前に計算試験の理論を受験しましたが、これは問題の1つでした。 言語仮定L={(anbm)r∣n,m,r≥0}L={(anbm)r∣n,m,r≥0}L=\{(a^nb^m)^r \mid n,m,r\ge 0\} Lは定期的ですか?はいの場合、正規表現またはオートマトンを提供します。 試験後に簡単に彼に答えたところ、それは本当に規則的であるように見えます(式は単純と彼は言ったと思います)。しかし、それがなぜなのか理解できないようです。私がそれを見る方法、それはこのようにa n b m r回連結します:(a∗b∗)∗(a∗b∗)∗(a^*b^*)^*anbmanbma^nb^m 、anbmanbmanbm...anbmanbmanbmanbmanbm...anbmanbma^nb^ma^nb^ma^nb^m...a^nb^ma^nb^m これは、オートマトンが毎回nとmを呼び出す方法がないため、規則的ではありません。ここで私はどこに問題がありますか? 編集:私は再び教授と話しました、彼はそれが間違いだったと認めました。言語は確かに規則的ではありません。

1
算術式の文法変換
Theodore Norvell(1999)による再帰的降下による式の解析の記事で、著者は算術式の次の文法から始めます。 E --> E "+" E | E "-" E | "-" E | E "*" E | E "/" E | E "^" E | "(" E ")" | v これはあいまいで左再帰的であるため、かなり悪いです。したがって、彼は左の再帰をそこから削除することから始め、その結果は次のようになります。 E --> P {B P} P --> v | "(" E ")" | U P B --> …

3
言語が規則的であると直感的に感じる方法
言語与えられた場合、この言語は規則的でないと、プロダクションルールを調べずに直接どのように言えますか?L = { aんbんcん}L={anbncn} L= \{a^n b^n c^n\} ポンピングレンマを使用することもできますが、これは通常の文法ではないと文法を見ているだけの人もいます。どのようにして可能ですか?

1
その証拠
私は次の問題であなたの助けを使いたいです: 。ことを示す Lを∉ R E ∪ C O RL={⟨M⟩∣L(M) is context-free}L={⟨M⟩∣L(M) is context-free}L=\{⟨M⟩ ∣ L(M) \mbox{ is context-free} \}。L∉RE∪CoREL∉RE∪CoREL \notin RE \cup CoRE 私はそれを証明するために知っている、言語を見つけるために十分であるLを"ようにL " ∉ R Eとからの減少があることを示すL "にLは(L " ≤ M LL∉REL∉REL\notin REL′L′L'L′∉REL′∉REL'\notin REL′L′L'LLL 。(L′≤ML)(L′≤ML)(L'\leq _M L) 私はすでに、彼らはしていないことを知っている言語を考え始め、と私は知っているH 、LのT * = { ⟨ M ⟩ | Mの すべての入力のための停止 } …

3
場合は
次の演習を解くのに行き詰まっています。 主張その場合文脈自由であり、、次いで、規則的である(つまり、正しい商)は文脈自由です。R L / R = { W | ∃ X ∈ RLLLRRRL/R={w∣∃x∈Rs.twx∈L}L/R={w∣∃x∈Rs.twx∈L}L / R = \{ w \mid \exists x \in R \;\text{s.t}\; wx \in L\} を受け入れるPDAとを受け入れるDFAが存在する必要があることを知っています。現在、これらのオートマトンを、適切な商を受け入れるPDAに組み合わせようとしています。それを構築できれば、がコンテキストフリーであることを証明しました。しかし、私はこのPDAの構築に行き詰まっています。R L / RLLLRRRL / RL/RL/R これは私がそれをどこまで作ったかです: 結合されたPDAでは、状態は別個のオートマトンの状態のデカルト積です。また、エッジはDFAのエッジですが、将来Lの元のPDAの最終状態に到達できるのはエッジのみです。しかし、それを正式に書き留める方法がわかりません。

4
右と左の連想積が同じ単語
HopcroftとUllmanの本を使用して、非決定論的オートマトンの研究を始めました。私は非常に興味深いと思う問題に行き詰まっています。 次の表に従って乗算することにより、左から右に評価したときに右から左に評価したときに同じ値を持つすべての文字列を受け入れる非決定的有限オートマトンを提供します。 ×abcaacbbaacccba×abcaaacbcabcbca\qquad \displaystyle\begin{array}{c|ccc} \times & a & b & c \\ \hline a & a & a & c \\ b & c & a & b \\ c & b & c &a \end{array} 私たちは、文字列の持っているのであれば、 左から右への製品です(\回B)\回C = A \倍のC = Cと 右から左に製品がある= A \回(B \倍のC) \回b = a(a …

1
現代の正規表現の表現力
私は最近、主に単語のグループを特別なプロパティと照合する正規表現の課題を提案するWebサイトについて友人と話し合いました。彼は||||||||、数|が素数であるような文字列に一致する正規表現を探していました。そのような言語は、通常であれば、補題をポンプの翻訳が素数のためにあるという事実与えますので、私はすぐにそれが今まで動作しません彼に言われた十分な大きさ、それが存在するのk ≤ pがあるようP + N kは、すべての主要ですN ≥ - 1、よく、これは全くケースしにくい(素数の配分、そのような未知の自明とプロパティを破砕、...)pppk≤pk≤pk \leq pp+nkp+nkp + nkn≥−1n≥−1n \geq -1 しかし、誰かが解決策に付属している:一致しない(||+?)\1+ キャプチャグループに一致するように、この表現しようとする(つまりすることができ||、|||、||||などの上の出現箇所)のn ≥ 2回。一致する場合、文字列で表される数はkで割り切れるので、素数ではありません。それ以外の場合です。k≥2k≥2k \geq 2|n≥2n≥2n \geq 2kkk そして、グループ化と後方参照により、正規表現が理論的な意味で...正規表現よりも実際にはるかに表現力豊かになることが明らかになったので、私は愚かに感じました。今では、実際の正規表現を実行するときに私が知らなかったルックアラウンドやその他の演算子も追加されました。 ウィキペディアによると、文脈自由文法によって生成された言語よりもさらに表現力があります。だからここに私の質問があります: 現代の正規表現エンジンを使用して、(文脈自由文法から生成された)代数言語を表現できますか より一般的な説明、または現代の正規表現で説明できる言語の種類の複雑さの少なくとも上限はありますか? より実用的には、その背後に深刻な理論がありますか、それとも有限オートマトンに基づく実際の正規表現の最初のブロックに実装可能と思われるたびに新しい機能を追加するだけですか? 「モダンな正規表現」は質問が具体的ではないことを知っていますが、少なくとも後方参照を使用することを意味します。もちろん、この「現代の正規表現」言語に対する特定の制限を想定している部分的な回答者がいる場合は、遠慮なく投稿してください。

2
無限の正規言語を2つの互いに素な無限の正規言語に分割する
無限の正規言語与えられた場合、を2つの互いに素な無限の正規言語L_1、L_2に分割できることをどのように証明できますか?つまり、L_1 \ cup L_2 = L、L_1 \ cap L_2 = \ varnothingであり、L_1とL_2は両方とも無限であり規則的です。LLLLLLLL 1 ∪ L 2 = L L 1 ∩ L 2 = ∅ L 1 L 2L1,L2L1,L2L_1, L_2L1∪L2=LL1∪L2=LL_1 \cup L_2 = LL1∩L2=∅L1∩L2=∅L_1 \cap L_2 = \varnothingL1L1L_1L2L2L_2 これまでのところ、私は考えました: \ begin {gather} L_1&= \ {xy ^ nz \ mid \ …

1
操作の下で言語が「効果的に閉じられている」とはどういう意味ですか?
私はいくつかの正式な言語理論の論文を読んでいて、理解できない用語に出くわしました。 このペーパーでは、セットが「交差点で効果的に閉じている」またはその他の操作について言及することがよくあります。ここで「効果的に」とはどういう意味ですか?これは通常の閉鎖とどう違うのですか? 参考までに、これらの記事は次のとおりです。 M.デイリーとI.マッキヤン。ウイルス遺伝子圧縮の正式なモデリング。International Journal of Foundations of Computer Science、16(3):453–469、2005年。

1
LSTMのトレーニングの直感的な説明(ゲート/ピープホールを忘れた場合)?
私はCSの学部生です(ただし、AIについてはよく知りませんが、AIについてのコースを受講していません。最近までNNについてはまったく何もしていませんでした)。AIで学校のプロジェクトをやろうとしているので、ニューラルネットワークで強化学習を使用した(文脈自由言語およびおそらく文脈依存言語のサブセットの)文法誘導。私は以前に成功したアプローチを最初に研究してそれらを微調整できるかどうかを確認し始めましたが、今私は長期短期記憶による教師あり学習を使用してアプローチを理解しようとしています。私は「忘れる学習:LSTMによる継続的予測」を読んでいます。。私ものぞき穴に関する論文を読んでいますが、それはさらに複雑に思われ、単純なことを最初に試みています。私は、メモリセルとネットワークトポロジがどのように機能するかを正しく理解していると思います。現時点では取得できないのは、トレーニングアルゴリズムです。だから私は尋ねるいくつかの質問があります: 異なる入力はどの程度正確に区別されますか?どうやらネットワークは各入力の後にリセットされず、異なる入力を区切る特別な記号はありません。ネットワークは、入力の終わりと次の始まりがどこであるかについての手掛かりなしに、文字列の連続ストリームを受信するだけですか? 入力と対応するターゲット出力の間のタイムラグはどれくらいですか?確かにある程度のタイムラグが必要であるため、ネットワークは、処理するのに十分な時間がない入力からターゲット出力を取得するようにトレーニングすることはできません。使用されたのがReberの文法ではなく、より多くの情報を格納および取得する必要がある可能性のあるより複雑なものである場合、情報にアクセスするために必要な時間は、入力によって異なり、おそらく予測できないものです。トレーニングを行うためのタイムラグを決定している間。 トレーニングアルゴリズムのより直感的な説明はありますか?すべての複雑な数式の背後で何が行われているのかを理解するのは難しいと思います。後で強化学習アルゴリズムに微調整する必要があるため、理解する必要があります。 また、このペーパーでは、ノイズの多いトレーニングデータについては何も触れられていません。ネットワークが非常にノイズの多いテストデータを処理できることを他の場所で読んだことがあります。LSTMが、トレーニングデータが不要な情報で破損/上書きされる可能性がある状況を処理できるかどうかを知っていますか?

2
無限の文字列に「通常」の類似物はありますか?
配列検討。それは例えば、方法で、 "通常の"と思われるのは2 = (1 、2 、3 、4 、... )ではありません。s1= (1 、0 、1 、0 、... )s1=(1,0,1,0,…)s_1 = (1, 0, 1, 0,\dots)s2= (1 、2 、3 、4 、... )s2=(1,2,3,4,…)s_2 = (1, 2, 3, 4,\dots) しかし、この直感をどのように形式化するかはわかりません。は通常の言語であり、s 1はある意味でこの言語の文字列の制限であるという点で私に​​飛びつきます。L = { (0 1 )ん}L={(01)n}L =\{(0 1)^n\}s1s1s_1 これらの無限の文字列を検討するための用語はありますか?私たちは、ポンピング補題に何かの類似を持っていますか、それによって我々はそのような「無限の定期的な」文字列の形式であることを述べることができるとのx、yの、Zの有限?x y∞zxy∞zx y^ {\infty}zバツxxyyyzzz

5
有限状態オートマトン:最終状態
私たちのプログラミング言語の概念コースでは、最終状態が有限状態図の別の状態につながることは問題ないと私たちの講師は主張しました。 しかし、これは根本的に矛盾した概念のようです。定義により、最終状態は遷移を終了する状態です。つまり、最終状態に到達すると、他に何もする必要がなくなります。 それでも、彼はこのようなスライドを提示しました。最終状態は2つの円で表されています... B、D、E、およびHが明らかにそうでない場合に、最終状態になることができるのはなぜですか。

2
2進数で書かれた平方数は通常の言語ですか?
バイナリ形式(1、100、1001、...)で記述されたすべての平方数(1、4、9、16、...)が通常の言語であるかどうかを判断しようとして問題が発生しています。 これらの数値の一般的なパターンを見つけるためにいくつかの試みを行った後、正方形番号n2n2n^2場合、n2mod4n2mod4n^2 mod 4は0または1に等しいため、4つの状態のDFAグラフを描画して、この言語を認識します。しかし、どうやら、私が描いたDFAは、実際には問題の平方数言語のスーパーセットを認識しています。ここで行き詰まっています。 誰もがこの問題についていくつかの手がかりを与えることができますか?通常の言語ではない場合、どうすれば証明できますか? 私はまた、この種の質問に将来どのように最善の方法でアプローチすべきかを知ることにも非常に興味があります。多くの場合、オートマトンがすでに見たもの(ようなaibiaibia^i b^i)を追跡しなければならないという直感がある場合、オートマトンが計算するために必要な未確定の状態があり、したがって有限ではありません。または定期的。次に、Pumping補題を使用して、それが規則的でないことを証明できます。ただし、この言語がまだ一般的であるかどうかはわかりません。そのため、次に何をすればよいのか本当にわかりません。 ありがとう!

1
正式な言語を使用して数学表記を研究できますか?
質問:最適な表記法の研究にそれをどのように適用するかを論じる正式言語またはプログラミング言語理論の紹介テキストはありますか? 特に、スタック言語、解析ツリー、インデックスとは何か、そして特定のタイプの表記法が指数関数的な冗長性につながる時期を予測する方法に興味があります。 数学の専攻として私が学んだ唯一のコンピュータサイエンスは、アルゴリズムとグラフ理論、および複雑さの理論とブール関数の非常に控えめな中級者でした。したがって、これを論じている唯一の本が入門書ではない場合、指数表記の爆発を論じているそのような本と、私の質問に直接取り組む本を準備する入門書をリストした回答の両方に感謝します。 コンテキスト:この質問は、主にPhysics.SEへの回答に触発されており、次のように述べています。 括弧はスタック言語(Chomskyの分類では文脈自由文法)によって解析されるので、括弧はスタックを使用して解析できないため、テンソルインデックスの縮約を再現する括弧表記がないことを(厳密に)証明するのは非常に簡単です。グラフ。括弧は構文解析ツリーを生成し、グラフ内には常に指数関数的に多くの最大ツリーがあるため、表記には指数関数的な冗長性があります。 残りの回答では、「指数表記の爆発」の他の例について、たとえば計算生物学のペトリネットを使用して説明します。 たとえば、ここで言及されているように、関数と引数に適用される関数が明確に区別されていない場合、数学表記が解析しにくい他の例もあります。この関数は、引数になり、引数は、たとえば、関数となる場合には特に混乱になることができ、ここで。

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