ファジイ推論のプログラム例

test 規則ファイル名 推論ファイル名 出力ファイル名   // C/C++,C#,VB の場合
Java Test 規則ファイル名 推論ファイル名 出力ファイル名   // Java の場合
PHP test.php 規則ファイル名 推論ファイル名 出力ファイル名   // PHP の場合
Ruby test.rb 規則ファイル名 推論ファイル名 出力ファイル名   // Ruby の場合
py -3 test.py 規則ファイル名 推論ファイル名 出力ファイル名   // Python の場合		
などと入力してやれば実行できます.出力ファイル名は,結果を出力するファイルの名前です.また,規則ファイル名は,規則等を記述したファイルの名前であり,たとえば以下のような形式で作成します.なお,JavaScript に関しては,ここをクリックして表示された画面においてデータを設定し,「実行」ボタンをクリックすれば画面上で実行可能です.「規則ファイル」,「推論ファイル」というテキストエリアに表示されているデータの意味に関しては,以下に説明する内容と同じですが,結果は,「推論結果」と示されたテキストエリアに出力されます.
推論方法 0 規則の数 3 変数の数 1 積分の分割数 100
規則1
 変数1 1 中心と幅 1.0 1.0
 右辺(中心と幅) 1.0 15.0
規則2
 変数1 1 中心と幅 2.0 1.0
 右辺(中心と幅) 11.0 15.0
規則3
 変数1 1 中心と幅 3.0 1.0
 右辺(中心と幅) 21.0 15.0		
  日本語で記述した部分(「推論方法」,「規則の数」等)は,次に続くデータの説明ですのでどのように修正しても構いませんが,削除したり,または,複数の文(間に半角のスペースを入れる)にするようなことはしないでください.上のデータは,次に示す 3 つの規則を表現したものであり,また,各データの意味はそれ以降に示す通りです.

   if xがおよそ1 then yはおよそ1
   if xがおよそ2 then yはおよそ11
   if xがおよそ3 then yはおよそ21

推論方法

=0 : AND, OR  AND 演算と OR 演算を利用
=1 : *, OR  AND 演算の代わりに乗算を利用
=2 : *, +  OR 演算の代わりに加算を利用

規則の数

  規則の数を入力します

変数の数

  変数の数を入力します

積分の分割数

  推論値を求めるため,メンバーシップ関数の数値積分を行います.その際の分割数を入力します.

規則1

  次の「規則2」までのデータを規則の数だけ繰り返して入力します.

変数1 1 中心と幅 1.0 1.0

  この例では,変数の数が 1 であるため,1 行だけですが,一般的には,この行のデータを変数の数だけ入力します.「変数1」の次の数字は,この規則で対応する変数を使用するか否かを指定するためのものです.0 の場合は使用しない(「中心と幅」以降のデータは入力しないでください),また,1 の場合は使用することを意味しています.使用する場合は,メンバーシップ関数の形を決めるため,「中心と幅」以降のデータが必要となります.このプログラムでは,三角型のメンバーシップ関数だけを扱っています.「中心と幅」に続く 2 つのデータは,三角形の中心の位置と,底辺の半分の長さを意味しています.

右辺(中心と幅) 1.0 15.0

  規則の右辺のメンバーシップ関数の形を指定します.

  推論ファイルは,推論値を得たい x の値を指定するためのファイルであり,以下のような形式で作成します.
変数の数 1 データ数 21
変数1 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0		
  各データの意味は以下の通りです.

変数の数

  変数の数を入力します.規則ファイルで指定した値と一致する必要があります.

データ数

  各変数に与えるデータ数を入力します.

変数1 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0

  推論結果を得たいデータを入力します.1 つの変数に対するデータが複数行になっても構いません.変数の数だけこのデータが必要になります.

  以上のデータを準備して実行すると,推論データに対応した推論結果がファイルに出力されます.