模糊邏輯

模糊邏輯是處理部分真實概念的布林運算擴展。經典邏輯堅持所有事物(陳述)都可以用二元項(0或1,黑或白,是或否)來表達,而模糊邏輯用真實度替代了布林真值。這些陳述表示實際上接近於日常人們的問題和語意陳述,因為「真實」和結果在多數時候是部分(非二元)的和/或不精確的(不準確的,不清晰的,模糊的)。

真實度經常混淆於概率。但是它們在概念上是不一樣的;模糊真值表示在模糊定義的集合中的成員歸屬關係,而不是某事件或條件的可能度(likelihood)。要展示這種區別,考慮下列情節:Bob在有兩個毗鄰的房間的屋子中:廚房和餐廳。在很多情況下,Bob的狀態是在事物「在廚房中」的集合內是完全明確的:他要麼「在廚房中」要麼「不在廚房中」。但Bob站在門口的時候怎麼辦呢?它可被認為是「部分的在廚房中」。量化這個部分陳述產生了一個模糊集合成員關係。比如,只有他的小腳趾在餐廳,我們可以說Bob是0.01「在廚房中」。只要Bob站在了門口,就沒有事件(如拋硬幣)能解決他完全的「在廚房中」或「不在廚房中」。模糊集合是基於集合的模糊定義而不是隨機性。

模糊邏輯允許在包含0和1的它們之間集合成員關係值,同於黑和白之間的灰色,在它的語言形式中,有不精確的概念如"稍微"、"相當"和"非常"。特別是,它允許在集合中的部分成員關係。它有關於模糊集合可能性理論。它是1965年盧菲特·澤德教授在加州大學伯克利分校介入的。

模糊邏輯儘管被廣泛接受卻是有爭議的:它被某些控制工程師出於有效性和其他原因,和一些堅持概率論不確定性的唯一嚴格描述的統計學家所拒絕。批評者認為它不是普通集合論的超集,因為成員函數是依據常規集合而定義的。

應用

模糊邏輯可以用於控制家用電器比如洗衣機(它感知裝載量和清潔劑濃度並據此調整它們的洗滌周期)和空調

基本的應用可以特徵化為連續變量的子範圍(subranges),形狀常常是三角形或梯形。例如,防鎖剎車的溫度測量可以有正確控制剎車所需要的定義特定溫度範圍的多個獨立的成員關係函數(歸屬函數 / Membership function)。每個函數映射相同的溫度到在0至1範圍內的一個真值且為非凹函數(non-concave functions,否則可能在某部分溫度越高卻被歸類為越冷)。接着這些真值可以用於確定應當怎樣控制剎車。

 

在這個圖象中,是映射溫度範圍的函數。在這個刻度上的一個點有三個"真值"—分別對應着三個真值函數。對於展示的特定的溫度,這三個真值可以被解釋為把溫度描述為,"相當冷", "有些暖"和"不太熱"。

通常情況會採用梯形,但在作模糊迴歸分析時則會選用三角形的歸屬函數。

怎樣應用模糊邏輯

模糊邏輯通常使用IF/THEN規則,或構造等價的東西比如模糊關聯矩陣

規則通常表達為如下形式:

IF模糊变量IS模糊集合THEN动作

例如,一個非常簡單的使用風扇的溫度調節器:

IF温度IS非常冷 THEN停止风扇
IF温度IS冷THEN减速风扇
IF温度IS正常THEN保持现有水平
IF温度IS热THEN加速风扇

注意沒有"ELSE"。所有規則都被求值,因為溫度在不同程度上可以同時是"冷"和"正常"。

在模糊邏輯中存在着布林運算的AND、OR和NOT 運算符,它們通常定義為最小、最大和求補;在以這種方式定義它們的時候,它們叫做Zadeh運算符,因為它們是在Zadeh最初論文中首次定義的。對於模糊變量x和y:

NOT x = (1 - truth(x))
x AND y = minimum(truth(x),truth(y))
x OR y = maximum(truth(x),truth(y))

還可以應用叫做hedges的更貼近自然語言其他的運算符。一般性的副詞如"非常"或"有點"能使用數學公式修改集合的內涵。

在應用中,編程語言ProLog由於有架設被演繹邏輯問訊的"規則"的數據庫設施而很適合實現模糊邏輯。這種編程叫做邏輯編程。

其他例子

  • 如果一個人的高度是1.8米,把他考慮為高:
IF male IS true AND height >= 1.8 THEN is_tall IS true
IF male IS true AND height >= 1.8 THEN is_short IS false
  • 但上述的定義卻是不現實的。因此,在模糊規則下,在高和矮之間不做明顯的區分:
IF height >= medium male THEN is_short IS agree somehow
IF height >= medium male THEN is_tall IS not agree somehow

在模糊的情況下,沒有像1.8米這樣的高度,只有模糊值,比如下列賦值:

dwarf male = [0, 1.3] m
small male = (1.3, 1.5]
medium male = (1.5, 1.8]
tall male = (1.8, 2.0]
giant male > 2.0 m

對於結論,也不只是兩個值,而是五個:

agree not = 0
agree little = 1
agree somehow = 2
agree alot = 3
agree fully = 4

在二值或"脆弱"的情況下,高度為1.79米的一個人可能被認為是矮。如果另一個人的高度是1.8米或2.25米,這些人才被當作是高。

另外,我們在前提中不能放置:

IF male >= agree somehow AND ...

因為性別經常被認為是二值信息。所以不像身高這麼複雜。這個脆弱的例子故意的區別於模糊的例子。

參考文獻

書目

參見

外部連結