ところが、このルールベース推論には問題があります。
まず、上記の10個のルールのいずれにもひっかからない場合、コンピュータは推論結果を導くことができません。
さらに、厄介なことは、2つのルールが相反する結果となる場合です。
例えば、以下のようなケースです。
しかし、ファジィ推論のすごいところは、たったこの10個のルールだけをつかって、どんな状況にあっても、きちんと推論結果を出してくる、という点にあります。
これが「メンバーシップ関数」と、「ファジィ数」という、コロンブスの卵の発想にあります。
このメンバーシップ関数の入力は、0以上無限大までの整数が入力できますので、ルールを追加する必要はありません。また、ファジィ推論の最終結果はファジィ数として出力されます。
ふざけてんのか?と思われる方もいるかもしれませんが、これは全く真面目な話で、ファジィ推論の結果は、常にファジィ数(例:ご意見を伺う=0.7,相手にしない=0.3)という形で出力されます。
もっとも、ファジィ数のままでは、使いものになりませんので、一般的には、ファジィ数を構成する値の中で一番大きいものを選ぶのが普通です(このケースでは、「ご意見を伺う」となる)。
複数のメンバーシップ関数と、ファジィルールを組み合わせる方法としては、多くのケースで、min-max簡略ファジィ推論法というものが使われています。プログラミングはちょっと面倒ですが、理屈は単純ですので、興味のある方は、こちらを御参照ください。
Copyright © ITmedia, Inc. All Rights Reserved.