ファジィ連想行列は、ファジィ論理のルールを表形式で表現します。これらのルールは通常、2つの変数を入力として取り、2次元行列にきれいにマッピングされますが、理論的には任意の次元数の行列も可能です。ニューロファジィシステムの観点からは、この数学的行列はパーセプトロンの重みを格納するため、「ファジィ連想メモリ」と呼ばれます。[1]
アプリケーション
ゲームAIプログラミングの文脈では、ファジー連想行列はノンプレイヤーキャラクターのルール開発に役立ちます。[2]例えば、ある専門家がビデオゲームのモンスターのファジーロジックルールを作成するという任務を負っているとします。構築中のゲームでは、エンティティはヒットポイント(HP)と火力(FP)という2つの変数を持ちます。
| HP/FP | HPが非常に低い | HPが低い | 中HP | 高いHP | 非常に高いHP |
|---|---|---|---|---|---|
| 非常に弱いFP | 後退! | 後退! | 守る | 守る | 守る |
| 弱いFP | 後退! | 守る | 守る | 攻撃 | 攻撃 |
| 中FP | 後退! | 守る | 攻撃 | 攻撃 | 全力攻撃! |
| 高FP | 後退! | 守る | 攻撃 | 攻撃 | 全力攻撃! |
| 非常に高いFP | 守る | 攻撃 | 攻撃 | 全力攻撃! | 全力攻撃! |
これは次のように翻訳されます:
モンスターのHPが非常に低く、モンスターのFPが非常に弱い場合、撤退する モンスターのHPが低HPかつモンスターのFPが超弱い場合、撤退する モンスターHPが中HPでモンスターFPがVeryWeakFPの場合、防御する
「非常に低い」と「低い」の区別が曖昧であるため、複数のルールが同時に発動する可能性があり、実際にそうすることがよくあります。「非常に低い」という表現が「低い」という表現よりも大きい場合、「非常に低い」というルールはより強い応答を生成します。プログラムは発動するすべてのルールを評価し、適切な非ファジー化手法を用いて実際の応答を生成します。
このシステムの実装には、マトリックス形式か明示的なIF/THEN形式のいずれかが使用できます。マトリックス形式を使用するとシステムを視覚化しやすくなりますが、1つのルールに対して3つ目の変数を追加することができないため、柔軟性が低くなります。
ルールセットを特定する
マトリックスには固有のパターンはありません。ルールはあたかも作られたかのようで、実際そうでした。これはファジー論理全般の長所であると同時に短所でもあります。特定の状況に対処するための正確なルールや公式を見つけることは、多くの場合非現実的、あるいは不可能です。十分に複雑なゲームの場合、数学者でさえシステムを研究して数学的に正確なルールを導き出すことはできないでしょう。しかし、この短所はファジー論理自体に固有のものではなく、状況の現実に内在するものです。このシステムの長所は、たとえルールの1つが間違っていても、たとえ大きく間違っていたとしても、他の正しいルールが同様に機能し、その誤りを補う可能性があることです。
これは、ファジーシステムが杜撰であるべきだという意味ではありません。システムによっては、杜撰であっても問題ない場合もありますが、パフォーマンスは低くなります。ルールは比較的恣意的ですが、慎重に選択する必要があります。可能であれば、専門家がルールを決定し、ルールセットとルールは徹底的にテストされ、必要に応じて改良されるべきです。この点において、ファジーシステムはエキスパートシステムに似ています。(ファジー論理は、多くの真のエキスパートシステムでも使用されています。)
参考文献
- ^ ベッグ、レザウル(2006年2月28日)『運動科学のための計算知能:ニューラルネットワークとその他の新技術』アイデアグループ社(IGI)160頁~ISBN 978-1-59140-838-3。
- ^ Mat Buckland (2005). 例によるゲームAIプログラミング. Jones & Bartlett Learning. pp. 431–. ISBN 978-1-55622-078-4。