ウィキペディアのCSGの例に間違いはありますか?


8

文脈依存文法に関するウィキペディアの記事に示されている例について、私は混乱しています。

https://en.wikipedia.org/wiki/Context-sensitive_grammar

Disclamer:ウィキペディアの記事の説明セクションをすでに変更しているため、現在の記事の状態は、この質問で説明しているものとは異なります。元のバージョンはこちら:https : //en.wikipedia.org/w/index.php?title=Context-sensitive_grammar&oldid=747616366

次の文法は、開始記号Sを使用して、標準の非コンテキストフリー言語{anbncn:n≥1}を生成します。

  1. S→abc
  2. S→a SB c
  3. c B→WB
  4. WB→WX
  5. WX→BX
  6. BX→B c
  7. b B→bb

彼らはこの文法 文脈依存である直接主張していませんが、次の文はそれを文脈依存であると見なしていることを暗示しています

ルール3から6は、各cBからBcへの連続的な交換を可能にします(ルールcB→BcはスキームαAβ→αγβに適合しないため、4つのルールが必要です)

したがって、彼らは文脈依存文法規則の標準的な形に訴えます:αAβ→αγβ、文法全体が文脈依存であることを意味します。

私が混乱しているのはルール#3で、これはスキームαAβ→αγβに適合しないようです。ここではターミナルを一部と見なし、変数をスキームのと見なします。は空です。これは、が同じ場所()に保存される必要があるため、が生成できないことを意味します。cαBAβcBWBccBc

私は何かを見逃したのですか、またはこの文法が実際に誤ってここに配置されたのですか(実際の状況依存ではないため)。


1
私はあなたが正しいと思います。
EmilJeřábek16年

@EmilJeřábekウィキの記事の該当するセクションに同時に変更を加えたようです。適切なバージョンの文法を導入しました
Andrey Lebedev

残念ながら、あなたの文法は間違っています。en.wikipedia.org/wiki/…を参照してください。
EmilJeřábek16年

@EmilJeřábek申し訳ありませんが、新しい記事バージョンに配置した私の文法(9ルールの文法)の何が問題になっていますか?どんなルールが間違っているのか指摘していただけませんか?
Andrey Lebedev 2016年

@EmilJeřábekああ、この文法は "aaa bb cccc"も生成できるということですか?
Andrey Lebedev 2016年

回答:


9

私が間違っていない場合は、より簡単なCS文法が可能です。ここにあります:

  1. SABSc
  2. SAbc
  3. BAXA
  4. XAXY
  5. XYAY
  6. AYAB
  7. Aa
  8. Bbbb

文字列派生はaaabbbccc

1ABSc1ABABScc2ABABAbccc3AXABAbccc4AXYBAbccc5AAYBAbccc6AABBAbccc36AABABbccc36AAABBbccc7...aaaBBbccc8aaaBbbccc8aaabbbccc


3

実際、何人かの視聴者が元の文法が間違っていたことに同意した。@EmilJeřábekが気づいたように、この問題についての議論はすでにここにありました:https : //en.wikipedia.org/wiki/Talk :Context-sensitive_grammar#Wrong_grammar_for_language

したがって、7ルールの文法(上記で質問していた)も、以前ここにあり、他の言語の記事にある9ルールの文法も、どちらも正しくないようです。この9ルールの文法:

  1. S→BC
  2. S→SBC
  3. CB→WB
  4. WB→WC
  5. WC→BC
  6. a B→ab
  7. b B→bb
  8. b C→bc
  9. c C→cc

aaa bb cccc」という形式の単語を生成する可能性があるため、これは誤った例です。これは、式適合しません。anbncn

したがって、この文法を次のように拡張して、ルール3〜5を4つのルールに置き換えることをお勧めします。

  1. S→BC
  2. S→SBC
  3. CB→CZ
  4. CZ→WZ
  5. WZ→WC
  6. WC→BC
  7. a B→ab
  8. b B→bb
  9. b C→bc
  10. c C→cc

ルール3〜6は、CBをWBに、次にWCをBCに置き換える際の問題を回避するのに役立ちます。

編集:@EmilJeřábekが再び示唆したように、ルール#7と#8は1つのルール簡略化できますBb

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