PDAが認識する言語を推測する方法を見つけようとしています。たとえば、次のPDAを取る。私は私のデルタ(遷移)が何であるかを理解するための遷移図を作ることができますが、そこから失われています。これは宿題ではなく、本の例です。相続人は、問題と遷移表:私が正しく表記を読んでいる場合PDAが認識する言語を理解する方法
答えて
、それはLが、一度ループを行うことによって得る言語であることののL *、のように見えますのみ。ループを回るには、 "c"、いくつかの "a"、同じ数の "b"、別の "c"が表示されます。したがって、L = ca^nb^ncであり、このPDAの言語は(ca^nb^nc)*です。
もちろん、これをチェックして、私が間違っているかどうか教えてください。私はこれを理解しようと思っていたので、私が踏み込んだプロセスをより良く説明することもできます。
EDIT:どこから^ nb^nが得られるかを説明します。
スタックはスタック最下部のシンボルZで始まります。したがって最初は、スタックZ - (1、Z)の状態1にあります。次に、cを見て、状態2に遷移し、$をスタックにプッシュします。私たちは(2、$ Z)に入っています。それで、行の中のn個のインスタンスを見てみましょう。毎回新しいcをスタックに追加して状態2に戻ります。したがって、ここでは設定(2、c^n $ Z)です。たとえば、bのインスタンスを見てみましょう。状態3に遷移し、スタックからcを取り除く。私たちの構成は(3、c ^(n-1)$ Zです)。スタックの上に$を戻すまで、bのインスタンスを参照する必要があります。したがって、状態3では、(n-1)個のbのインスタンスを見ることができ、それぞれのインスタンスがスタックからポップされることになります。 bのこれらのインスタンスを見た後、構成(3、$ Z)になります。最後に、cと$の別のインスタンスがスタックの上にあることがわかります。最初のコンフィグレーションでは(1、Z)、スタックをポップして状態1に戻ります。
(a^n)(b^n)は、状態2の 'a'と同じくらい多くのcのインスタンスをスタックに配置し、状態2と3のスタックから削除します。 bのインスタンスを見ると、スタックからcのインスタンスが3個多くなる。長さを表すためのnの選択は完全に任意です...スタックの最上部にある$を確認してから戻ることができれば、aとbのインスタンスの数が同じでなければならないことを示すためにのみ使用されます受け入れ状態。
yup!それは正解です。私はcを読んだ後、ある数のaを、次にbの数を、次にcを読んだのですが、なぜそれはa^nとb^nですか? – jfisk
- 1. 多言語国のデフォルト言語を確認する方法
- 2. Bluemix言語識別で英語が認識されない
- 3. C#音声認識エラー - 文法の言語が音声認識装置の言語と一致しません
- 4. 単語認識カスタム言語[例: Elvish]
- 5. 数値データを認識するための自然言語処理
- 6. 自然言語の識別を解除
- 7. PDAで受け入れられる言語
- 8. 言語混合の理解
- 9. IOSの認識言語を変更するには?
- 10. Androidでオフライン音声認識言語を自動ダウンロードする
- 11. アルファベット順にTuring認識可能な言語を列挙する
- 12. Xtext:インデント認識言語のコンテンツアシスト
- 13. 他の言語の音声認識
- 14. 言語学習音声認識ツール
- 15. プログラムや言語のドキュメントをよりよく理解する方法
- 16. 言語理解は - 呼び出しが以下のエラーコードで失敗している分析(言語理解)
- 17. C言語のポインタ宣言を理解するための助けが必要
- 18. この言語を識別する
- 19. Androidで表示される言語を確認する方法
- 20. 汎用宣言型の認識方法
- 21. Google Playで認識する言語を指定する方法はありますか?
- 22. BotBuilder - FormFlow - 確認オプション言語を変更する方法
- 23. Googleの音声認識ネットワークのエラーを解決する方法
- 24. Javaで複数の言語を処理する方法は?
- 25. 受け入れ言語のフォールバックを処理する方法は?
- 26. PHP言語で配列を処理する方法
- 27. ドキュメントアプリケーションで多言語を処理する最良の方法
- 28. C言語のpthreadの物理IDを取得する方法
- 29. ダイアログ内の自然言語を理解する
- 30. 誰でもこの言語を認識できますか?
遷移表記の意味は... b、c - > eはどういう意味ですか?私は別の表記に慣れています。 – Patrick87