簡単な文字列書き換えプロダクションシステムの例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/11/13 07:18 UTC 版)
「プロダクションシステム」の記事における「簡単な文字列書き換えプロダクションシステムの例」の解説
文字列を逆転させるプロダクションルールの例を以下に示す。ここで、文字列はアルファベットから構成され、"$" や "*" は含まれない(これらは、マーカー記号として使用)。 P1: $$ -> *P2: *$ -> *P3: *x -> x*P4: * -> null & haltP5: $xy -> y$xP6: null -> $ この例では、プロダクションルールは上記リストに書かれた順に評価され選択される。各ルールについて、文字列は左から右に条件部にマッチするパターンがないか照合される。マッチした場合、マッチした部分文字列がプロダクションルールのアクション部で置き換えられる。このプロダクションシステムで x と y は「変数」であり、入力文字列の任意のアルファベットとマッチする。置換(文字列の逆転)が完了すると P1 によってマッチングが再開される。 文字列 "ABC" に上記プロダクションルールを適用して書き換えを行う様子を以下に示す。 $ABC (P6)B$AC (P5)BC$A (P5)$BC$A (P6)C$B$A (P5)$C$B$A (P6)$$C$B$A (P6)*C$B$A (P1)C*$B$A (P3)C*B$A (P2)CB*$A (P3)CB*A (P2)CBA* (P3)CBA (P4) このような単純なシステムでは、プロダクションルールの順序が重要である。制御構造がないため、プロダクションシステムの設計は困難となることが多い。もちろんプロダクションシステムのモデルで、推論エンジンやワーキングメモリに制御構造を導入することは可能である。
※この「簡単な文字列書き換えプロダクションシステムの例」の解説は、「プロダクションシステム」の解説の一部です。
「簡単な文字列書き換えプロダクションシステムの例」を含む「プロダクションシステム」の記事については、「プロダクションシステム」の概要を参照ください。
- 簡単な文字列書き換えプロダクションシステムの例のページへのリンク