智慧型控制 Intelligent Control

Sugeno 型模糊推論

Sugeno 型(Takagi–Sugeno–Kang,1985)的規則前件和 Mamdani 一樣,但結論是輸入的函數,而不是模糊集合。典型的規則是

$$\text{若 輸入}_1 = x \text{ 且 輸入}_2 = y,\ \text{則 輸出 } z = ax + by + c$$ xy輸入歸屬函數F1​(x)輸入歸屬函數F2​(y)AND(min)輸出z = ax + by + cw:規則的激發強度z:規則的輸出值

每條規則的輸出 \(z_i\) 以它的激發強度 \(w_i\) 加權。例如 AND 規則(輸入 1 = \(x\)、輸入 2 = \(y\))的激發強度為 \(w_i = \text{AndMethod}\big(F_1(x), F_2(y)\big)\),\(F_{1,2}\) 為兩個輸入的歸屬函數。整個系統的輸出是所有規則輸出的加權平均:

$$z = \frac{\sum_{i=1}^{N} w_i\,z_i}{\sum_{i=1}^{N} w_i}$$

不必像 Mamdani 那樣對整個輸出集合積分求重心,計算量小得多,也容易用最佳化或學習的方法調整參數(例如類神經模糊系統 ANFIS),所以常用於控制器與建模。

▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(第 7 節 tippersg.fis),可以直接在瀏覽器執行、修改參數。⬇ 下載 Fuzzy_toolbox.ipynb

小費問題的 Sugeno 版 Sugeno Tipper

以課程附檔 tippersg.fis(零階:小費少 = 5、普通 = 15、多 = 25)實際計算服務 = 3、食物 = 8:

服務差0.135食物難吃0.000OR(max)w = 0.135z = 5(少)若 服務 是 差 或 食物 是 難吃 → 小費 少服務好0.411(不使用此輸入)w = 0.411z = 15(普通)若 服務 是 好 → 小費 普通服務優0.000食物好吃0.500OR(max)w = 0.500z = 25(多)若 服務 是 優 或 食物 是 好吃 → 小費 多加權平均:z = (0.135×5 + 0.411×15 + 0.500×25) / (0.135 + 0.411 + 0.500)= 18.48%服務 = 3食物 = 8小費(0~30%)
編註:原講義的 Sugeno 流程圖取自 Matlab 工具箱手冊,得到 16.3%;依課程附檔 tippersg.fis 實算為 18.48%。兩者差異同 Mamdani 頁的編註:手冊圖是示意圖,不是用這個檔案算出來的。

在 Mamdani 頁的互動推論切到「Sugeno」可以比較兩者:同樣的規則與激發強度,只差在結論與解模糊化的方式。原講義附檔:InvertCart.zip(倒單擺台車的 Sugeno 模糊控制,見倒單擺 FIS)。

原圖對照(取自 Matlab 工具箱手冊)
原圖
原圖
原圖