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

通常の言語と個々の言語のクラスのプロパティに関する質問。


4
なぜ正規表現に順列がないのですか?(通常の言語でこれができるように見えても)
問題 正規表現で順列を取得する簡単な方法はありません。 順列:数または文字の種類を変更せずに、単語 ( "aabc")を別の順序に取得する。w=x1…xnw=バツ1…バツんw=x_1…x_n 正規表現:正規表現。 確認のため: 「繰り返しのない正規表現順列」答えは、これがより単純であると仮定して、正規表現の代わりにJavaScriptコードを作成します。 「特定のテキスト内の特定の単語のすべての順列を見つける方法」 –答えは正規表現も使用していません。 「すべての{1、2、3、4}を繰り返しなしで照合するための正規表現」 –答えは正規表現を使用しますが、適応可能でも単純でもありません。 この答えはさらに、「正規表現はあなたが望んでいることを実行できません。文字列から順列を生成することはできません」と主張します。 私が探しているソリューションの種類 それは次のような形式でなければなりません: »aabc«(またはその他の開始括弧と終了括弧を使用できます) (aabc)!((abc)に似ていますが、最後に別の記号が付いています) [aabc]!([abc] +に似ていますが、最後に別の記号が付いています) これらのソリューションの利点 彼らです: 簡単 適応可能 再利用可能 これが存在する理由 正規表現は、通常の言語の文法を記述する方法です。彼らはあらゆる種類の通常の言語であるための全力を持っています。 通常の言語は順列に対して十分強力であるとしましょう(以下の証明)–これを表現する簡単な方法がないのはなぜですか? だから私の質問は: (なぜ)私の証拠は間違っていますか? それが正しい場合:順列を表現する簡単な方法がないのはなぜですか? の証拠 正規表現は、正規言語の文法に注意する1つの方法です。通常の言語の文法を記述できます。 通常の言語(アルファベット内の文字数が有限)を説明する別の方法は、(状態の数が有限の)非決定的オートマトンです。 文字数に制限があるため、このオートマトンを作成できます(例:正式:下記を参照) 「abbc」の順列を受け入れる文法: (上の数字を求めてください、おそらく誰かがこの部分をより見栄えよくする方法を知っています) s->ah¹ s->bh² s->ch³ h¹->bh¹¹ h¹->ch¹² h²->ah¹¹(タイプミスなし!同等) h²->bh²² h²->ch²³ h³->ah¹² h³->bh²³ h¹¹-> bc h¹¹-> cb …

3
2つの正規表現操作だけでは表現できない通常の言語
すべての正規言語は正規表現で表現できると思っていました(言語が正規の場合は正規表現で表現できます)が、そのためには3つの正規操作(連結、結合、スター)がすべて必要であると言われました保持する。 たとえば、共用体と連結の正規表現操作(3つのうち2つ)しか使用できない場合、これら2つだけでは説明できない通常の言語があると言われました。 Kleeneスターとユニオンだけで同じです。これのいくつかの例は何ですか?

4
正規ではない正規言語の連合
私はその質問に出くわしました: 「2つの正規言語の例を挙げましょう。それらの和集合は正規言語を出力しません。」 通常の言語は組合のもとで閉鎖されていると思うので、これは私にとってかなり衝撃的です。つまり、2つの標準言語を使用してそれらを結合する場合は、標準言語を取得する必要があります。 そして、私はその証拠を理解していると思う:私の言葉では、言語が規則的であれば、それらを認識するオートマトンが存在する。すべての状態(結合)を取得し、エントリポイントに新しい状態を追加し、イプシロンを使用して新しい状態の遷移関数を変更した場合、問題ありません。また、すべての州などからのパスが存在することを示します。 どこが間違っているのか、あるいは質問にアプローチする別の方法を教えてください。 質問の出典、演習4、フランス語。 また、交差点でも同じ質問がされます。

2
書き込み保護された入力を備えたシングルテープチューリングマシンは、正規言語のみを認識します
問題は次のとおりです。 入力文字列を含むテープの部分に書き込むことができないシングルテープチューリングマシンは、通常の言語のみを認識することを証明します。 私の考えは、この特定のTMがDFAと同等であることを証明することです。 このTMを使用してDFAをシミュレートするのは非常に簡単です。 ただし、このDFAを使用してTMをシミュレートする場合、問題が発生します。TM遷移場合、DFAはテープを右に読み取り、同じ状態遷移を行うことにより、確実にシミュレートできます。δ(q,a)=(q′,a,R)δ(q,a)=(q′,a,R)\delta(q,a)=(q',a,R) 以下のために、私はDFAだけ左に読み込み、店舗へのスタックか何かを持っていないため、左の動きをシミュレートするために、このDFAやNFAを使用する方法を見つけ出すことはできません。δ(q,a)=(q′,a,L)δ(q,a)=(q′,a,L)\delta(q,a)=(q',a,L) 別の方法を検討すべきですか?誰か私にいくつかのヒントを教えてもらえますか?ありがとう。

2
セイ、L⊆{0}∗L \subseteq \{0\}^*。それでは、L∗L^*が規則的であることをどのように証明できますか? LLが規則的であれば、もちろんL∗L^*も規則的です。場合はLL有限である、定期的にして再度あるL∗L^*規則的です。また、私はために、ということに気づいたL={0p∣p is a prime}L = \{0^p \mid p \text{ is a prime}\}、LL定期的ではない、L⊆{0}∗L \subseteq \{0\}^*およびL∗L^*規則的です。 しかし、{ 0 } ∗のサブセットに対してこれをどのように表示するのでしょうか?LL{0}∗\{0\}^*

3
NFAが別のNFAのサブセットを受け入れるかどうかの効率的なテストはありますか?
したがって、正規言語が正規言語サブセットであるかどうかのテストは決定可能です。両方をDFAに変換し、計算してから、この言語が空かどうかをテストできるからです。RRRSSSR∩S¯R∩S¯R \cap \bar{S} ただし、これにはDFAへの変換が必要であるため、DFA、ひいてはテストアルゴリズムが、入力NFAの状態の数に関して指数関数的になる可能性があります。 多項式時間でこれを行う既知の方法はありますか?一般に、この問題はCo-NPが完全であることが証明されていますか? では受け入れられるがでは受け入れられない単語は多項式証明者になるため、問題はCo-NPにあることに注意してください。RRRSSSR⊈SR⊈SR \not \subseteq S 編集:これは、そのような単語が状態の数で多項式になるという保証がないため、正しくありません。

7
であるならば、通常の
場合A 2がA2A^2規則的である、ということにはないAはAA、正規のですか? 証明に関する私の試み: はい、矛盾のために、AAAが正規でないと仮定します。次いで、2 = A ⋅ A。A2=A⋅AA^2 = A \cdot A 2つの非正規言語の連結は正規ではないため、A 2A2A^2を正規にすることはできません。これは私たちの仮定と矛盾しています。だから、AはAA規則的です。したがって、A 2A2A^2が正規の場合、AAAは正規です。 証明は正しいですか? これをA 3A3A^3、A 4A4A^4などに一般化できますか?また、A ∗A∗A^*が正規の場合、Aは正規であるAA必要はありませんか? 例:A = { 1 2 iが | iが≥ 0 }A={12i∣i≥0}A=\lbrace 1^{2^i} \mid i \geq 0\rbrace規則的ではないが、A *がA∗A^*規則的です。

2
正規言語と非正規言語の交差と結合
してみましょう、規則的でL 1 ∩ L 2の正規、L 2規則的ではありません。ことを示し、L 1 ∪ LをL1L1L_1L1∩L2L1∩L2L_1 \cap L_2L2L2L_2、正規ではないか、反例を与えます。L1∪L2L1∪L2L_1 \cup L_2 私はこれを試してみました:を見。これは定期的です。私はこのために、有限オートマトンを構築することができる:L 1は規則的であり、L 2 ∩ L 1が規則的であるのでためのすべてのパス(有限量)を削除L 1 ∩ L 2のパスの有限量からL 1。そのため、この全体に使用できるパスの数には限りがあります。このことはL 2から切り離されていますが、L 1 ∖ (LL1∖(L2∩L1)L1∖(L2∩L1)L_1 \setminus (L_2 \cap L_1)L1L1L_1L2∩L1L2∩L1L_2 \cap L_1L1∩L2L1∩L2L_1 \cap L_2L1L1L_1L2L2L_2L1∖(L1∩L2)L1∖(L1∩L2)L_1 \setminus (L_1 \cap L_2)(通常)およびL2L2L_2(規則的ではない)が正規ではありませんか?

2
すべてのコンテキストフリー言語と通常言語は効率的に決定可能ですか?
この図に出くわしたのは、コンテキストフリー言語と通常言語が効率的な問題の(適切な)サブセット(おそらく)であることを示しています。効率的な問題は決定可能なすべての問題のサブセットであることを完全に理解しています。なぜなら、それらを解決することはできますが、非常に長い時間がかかる可能性があるからです。PP\mathrm{P} コンテキストフリー言語と標準言語がすべて効率的に決定できるのはなぜですか?それらを解決するのに時間がかからないということですか?

1
クロージャプロパティを使用して、の補数が規則的でないことを証明してください
の補数が、閉包プロパティを使用して規則的でないことを証明したいと思います。{0n1n∣n≥0}{0n1n∣n≥0}\{0^n1^n \mid n \geq{} 0\} ポンピングレンマを使用してが通常の言語ではないことを証明できることを理解しています。また、通常の言語は補完操作の下で閉じられていることも理解しています。しかし、それはまた、非正規言語の補語も非正規であることを意味しますか?{0n1n∣n≥0}{0n1n∣n≥0}\{0^n1^n \mid n \geq{} 0\}

3
なぜ正規表現は共用体、連結、スター演算で定義されているのですか?
定期expresssionは再帰的に定義されます いくつかのために、A ∈ Σは、正規表現ですaaaa∈Σa∈Σa \in \Sigma は正規表現です。εε\varepsilon は正規表現です。∅∅\emptyset ここで、 R 1及び R 2は、正規表現では、正規表現であります(R1∪R2)(R1∪R2)(R_1 \cup R_2)R1R1R_1R2R2R_2 ここで、 R 1及び R 2は、正規表現では、正規表現であります(R1∘R2)(R1∘R2)(R_1 \circ R_2)R1R1R_1R2R2R_2 ここで、 R 1は正規表現であり、正規表現です。(R1)∗(R1)∗(R_1)^*R1R1R_1 この定義は、64ページの シプサー、マイケル。計算理論入門、第3版。Cengage Learning、2012年。 さて、以下の質問です。 定義にintersection、complementまたはreverse操作が含まれていないのはなぜですか? 我々は4番目の項目を変更する場合は、私たちはそれぞれの正規言語のために、すなわち、同等の定義を得るのですか、修正正規表現とその逆はありますか?R1∩ R2R1∩R2R_1 \cap R_2 この定義が完全かつ明確に定義されていることを知っていますが、他の同等の明確に定義された完全な定義よりもなぜ好ましいのですか?

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その逆と副を。


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