Pythonでのファジィロジックの実装 – Pythonで始めるプログラミング

Pythonでのファジィロジックの実装 – Pythonで始めるプログラミング

Pythonは多くの目的で使用される非常に柔軟なプログラミング言語です。ファジィロジックは、通常の真偽値ロジックを拡張し、曖昧さや不確実性を扱うためのものです。

ファジィロジックとは?

ファジィロジックは、クラシカルな二値ロジック(真か偽か)の代わりに、多くの度合い(0から1までの範囲)で曖昧な状態を扱う方法です。

ファジィロジックの基本概念

  • メンバーシップ関数
  • ルール
  • 推論エンジン
Pythonでの基本的な実装

次に、Pythonを使用して簡単なファジィロジックの実装を説明します。さらに詳しい参考資料(外部リンク)も参照してください。

import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl

# 入力変数と出力変数の設定
quality = ctrl.Antecedent(np.arange(0, 11, 1), 'quality')
service = ctrl.Antecedent(np.arange(0, 11, 1), 'service')
tip = ctrl.Consequent(np.arange(0, 26, 1), 'tip')

# メンバーシップ関数の自動生成
quality.automf(3)
service.automf(3)

# 出力メンバーシップ関数設定
tip['low'] = fuzz.trimf(tip.universe, [0, 0, 13])
tip['medium'] = fuzz.trimf(tip.universe, [0, 13, 25])
tip['high'] = fuzz.trimf(tip.universe, [13, 25, 25])

# ルールの設定
rule1 = ctrl.Rule(quality['poor'] | service['poor'], tip['low'])
rule2 = ctrl.Rule(service['average'], tip['medium'])
rule3 = ctrl.Rule(service['good'] | quality['good'], tip['high'])

# 制御システムの設定
tipping_ctrl = ctrl.ControlSystem([rule1, rule2, rule3])
tipping = ctrl.ControlSystemSimulation(tipping_ctrl)

# シミュレーションを実行
tipping.input['quality'] = 6.5
tipping.input['service'] = 9.8

# 結果の計算
tipping.compute()

# 出力結果
print(tipping.output['tip'])
まとめ

Pythonでのファジィロジックの実装は、非常に直感的かつ強力です。ただし、複雑なファジィシステムには深い理解が必要です。公式ドキュメント(外部リンク)も確認してください。

コメントを残す