前件部接続子を指定する
- 更新日2023-02-21
- 4分で読める
ルールベースを作成するときに前件部が複数ある場合は、集計されたルール前件部の真理値の計算方法を決める前件部接続子を指定する必要があります。
言語変数は言語要素に部分的な度合いのメンバーシップをもつことができるので、従来の二値論理のブール演算子は使用できません。それに代わり、PID/ファジー論理VIは、以下の前件部接続子を使用します。
AND(最小)
μA*B = min(μA, μB)
AND(積)
μA*B = (μA, μB)
OR(最大)
μA + B = max(μA, μB)
OR(確率的)
A + B = ((A + B) - (AB))
上の定義はブール論理で使用される論理演算子と一致していることに注目してください。真理値表は、同等の結果を出すために従来の演算子を使用します。
AND(最小)前件部接続子は、前件部のうち度合いが最小のメンバーシップを集計されたルール前件部の真理値として使用するように指定し、AND(積)は前件部のメンバーシップ度合いの積を使用するように指定します。OR(最大)前件部接続子は、前件部のメンバーシップの最大の度合いを使用することを指定します。OR(確率的)前件部接続子は、前件部のメンバーシップの度合いの確率的合計を使用することを指定します。
自動車操作ファジーシステムの前件部接続子
自動車操縦ファジーシステムの入力値に対して、以下のルールが呼び出されると仮定します。
| (1) | IF 自動車の位置 x is 中央 (メンバーシップの度合い = 0.8) |
AND(最小) | 自動車の方向β is 左上 (メンバーシップの度合い = 1.0) = 0.8 |
| THEN ステアリング角度φ is 負に小さく | |||
| (2) | IF 自動車の位置 x is 右中央 (メンバーシップの度合い = 0.1) |
AND(最小) | 自動車の方向β is 左上 (メンバーシップの度合い = 1.0) = 0.1 |
| THEN ステアリング角度φ is 負に中程度 | |||
各ルールでAND(最小)前件部接続子が使用されていることに注目してください。ルール1では、自動車の位置 xは言語要素中央に0.8のメンバーシップ度合いをもっており、自動車の方向βは言語要素左上に1.0のメンバーシップ度合いをもっています。前件部接続子がAND(最小)なので、このファジーシステムのファジーコントローラは、前件部のうち最小のメンバーシップ度合い0.8を集計されたルール前件部の真理値として使用します。同様に、ルール2の最小のメンバーシップ度合いは0.1です。このため、ファジーコントローラは集計されたルール前件部の真理値として0.1を使用します。集計されたルール前件部の真理値は、ルールの真理の度合いと同じです。
これら2つのルールが所与の入力値セットに対して呼び出される唯一のルールの場合、ハンドル角度φ出力言語変数のその他の言語要素は0です。以下に各言語要素の最終的な真理値を示します。
| 負に大きく 負に中程度 負に小さく ゼロ 正に小さく 正に中程度 正に大きく |
の度合いは の度合いは の度合いは の度合いは の度合いは の度合いは の度合いは |
0.0 0.1 0.8 0.0 0.0 0.0 0.0 |
ルールに複数の後件部がある場合、ファジーコントローラは集計されたルール後件部を評価する必要があります。PID/ファジー論理VIでファジーコントローラを実装する場合、ファジーコントローラは、常に度合いが最大のメンバーシップだけを考慮します。