知的制御システム
第2週目
安信誠二
筑波大学 大学院
システム情報工学研究科
ファジィ理論とは
「少し」とか「若い」と言った人間が扱う,言葉の意味や状態の認識・評価における主 観的な「あいまいさ」をコンピュータで取り扱う手段
ザデー(Zadeh)教授(米国カルフォルニア大)が、1965年に提唱 ファジィシステムは,「あいまいさ」を含む人間の知識を持つ
Fuzzyとは、「けばのような,けば立った、ぼやけた」を意味する形容詞
「ファジィ集合」を直訳すれば,「けばけばな集合」や「ぼかした集合」
従来の2値論理の集合を、クリスプ集合と呼ぶ このFuzzyの発音の片かな記述は:
日本ファジィ学会等では、「ファジィ」
電気学会や新聞等では、「ファジー」
中国では、「曖昧模糊」から「模糊集合」と呼ぶ
ファジィ集合は、人間が主観的に捉え言葉で表現している概念をその情報量に応じ て大雑把・大局的に定量化し,コンピュータで扱おうとする概念
→ ファジィ情報処理は,人間の大局的な状況認識や,目的評価に関する知識(ファ ジィ知識)をコンピュータで実現
ファジィ理論は近似的な補間や内挿を行う近似処理技術でもある
あいまいな知識について
(1)蓋然(確率)性:起こって見るまで不確か
「今日地震が起きる.」「サイコロを振って1の目が出る.」
(2)多義性:解釈がいく通りかある不確か
「ハシをつくる.」→「箸を作る.」「橋を造る.」
(3)不正確性:雑音や誤りの混入により不確か
・道路脇や電車内での会話 ・伝送エラー
(4)不完全性:情報の欠落,不足により不確か
「100万円を預金したら利子はいくらか?」
(5)曖昧性:言葉の意味や定義のあいまいさにより不確か
「中級向けコース」「20才から40才程度の方」「胡椒を少々」
「金利が低い」「体温が高い(熱がある)」 → ファジィ集合
(6)その他
・いいかげんな不確かさ:同じ状況でも答えが違う
ファジィ制御の概念
ファジィ推論[無限値論理]
1.もし,車間距離が小さく,走行速度が大きいならば,
ブレーキを強く.
2.もし,車間距離が大きく,走行速度が小さいならば,
ブレーキを弱く.
1 0 μ
速度100Km/h 0
大きい
100m 0
1 0 μ
距離
小さい
μ
強く
10 0
1
0 ブレーキ力
100m 0
1 0 μ
距離
大きい
100Km/h 0
1 0 μ
速度
小さい 1
0
μ 弱く
0 10
ブレーキ力
μ 0 10 1 0
ブレーキ力 非ファジィ化 ブレーキ力5.2 車間距離 走行速度
[ブレーキ操作]
前の車にぶつからないように,ブレーキをかける.
車間距離
走行速度
時間→
10
0
ブレーキ力
・ファジィ判断
→滑らか
・人間的演算
・少ないルール
知的制御システム 課題1
(1)「水温が中位」 のファジィ集合を定義し、それを実 現する関数 tempM を作成せよ。
(2)x=0℃、10℃、20℃、・・・、100℃のメンバー シップ値を求めよ。
(3)「水温が高い」 のファジィ集合を定義し、それを実 現する関数 tempM を作成せよ。
(4)上記2つのファジィ集合の論理積
「水温が中位かつ高い」のファジィ集合を求めよ。
(5)(4)の代表値を求めよ。
(6) 62.0 ℃に対する、 「水温が中位」 、 「水温が中
位かつ高い」の度合いを求めよ。
ファジィ集合は言葉のあいまいさを定量化
暑い 1
0 0 10 20 30 40
寒い 快適
室温℃
15.0℃
14.9℃
15.0≦x≦25.0
(a)従来集合
(b)ファジィ集合 1.0
0.0 0 10 20 30 40
寒い 暑い
室温℃
μM(x) 快適
室温が快適(M)のファジィ表現
M = 0.25/0+0.5/10+1.0/20+0.5/30+0.25/40 (2.1) 5
= Σ μM(xi)/xi (2.2) i=1
= ∫ μM(x)/x (2.3) v
ファジィ集合の記述関数
1.0
0.0
0 10 20 30 40
寒い 快適 暑い
室温℃
0.5
室温が快適
∫μ快適(室温)/室温 1.0 : 16.0≦x≦24.0
0.5 : 10.0≦x≦30.0 0.25: 0.0≦x≦40.0
(1)最大に適合する区間: 1.0
(2)普通に適合する区間: 0.5
(3)少しは適合する区間: 0.25
左下がり関数(S関数)
右下がり関数(Z関数)
凸(富士)型関数(Π関数)
S型メンバシップ関数
(a) S1 ( x , as )
as X
1.0
0.0 0.5
(d) S3( x,as,bs,cs) ( ただし,bs < 0 ) cs as 1.0
0.0 0.5
|bs|
as+bs X
(e)S3(x,as,bs,cs) ( ただし,0<bs ) cs
0.25 1.0
0.0 0.5
as bs 2 bs
as-bs
as-3bs X
(b) S2(x,as ,bs ) ( ただし,bs < 0 ) (c) S2 ( x , as , bs ) ( ただし,0 < bs ) as
1.0
0.0 0.5
|bs|
as+bs X
bs 1.0
0.0 0.5
as 0.25
2 bs
as-bs
as-3bs X
Z型メンバシップ関数
(a) Z1 ( x , az ) 1.0
0.0 0.5
az X
(b) Z2(x,az,bz ) (ただし,bz < 0 )
1.0
0.0 0.5
az bz
0.25
2 bz
az+bz az+3bz
az 1.0
0.0 0.5
|bz|
az-bz X
az cz 1.0
0.0 0.5
|bz|
az-bz X
(d) Z3(x,az,bz,cz) (ただし,bz < 0 )
X
1.0
0.0 0.5
az bz
0.25
2 bz
az+bz az+3bz
cz X
(e) Z3(x,az,bz,cz) (ただし,0 < bz ) (c) Z2(x,az,bz ) (ただし,0 < bz )
π型メンバシップ関数
1.0
0.0 0.5
as=az X
(a) π11 ( x , as, az ) (ただし,as=az )
1.0
0.0 0.5
as az X
(b) π11 ( x , as, az ) (ただし,as < az )
(c) π22 ( x , as , az , bs, bz )
(ただし,as=az, bs < 0 , bz < 0 ) 1.0
0.0 0.5
as=az
|bs| |bz|
az-bz X as+bs
(d) π22 ( x , as , az , bs, bz )
(ただし,as<az, bs < 0 , bz < 0 ) 1.0
0.0 0.5
|bs| |bz|
as az
as+bs az-bz X
(e) π22 ( x , as , az , bs, bz )
(ただし,as=az, bs < 0 , 0<bz) as=az
1.0
0.0 0.5
|bs| bz
as+bs az+bz
0.25
az+3bzX 2 bz
(f) π33 ( x , as , az , bs, bz,cs,cz ) (ただし,as<az, bs < 0 , 0<bz)
as 1.0
0.0 0.5
|bs| bz
as+bs az+bz
0.25
az+3bzX 2 bz
cs az cz
列挙型・ベクトル型メンバシップ関数
列挙型メンバシップ関数
x1 x2 x3 x4 x5 xM-1 xM
y1
y2
y3
y4 y5
yM-1
yM 0.0
1.0
X
μ(x)={x: y1/x1 + y2/x2 + ・・・ + yM/xM }ベクトル型メンバシップ関数
0.0
1.0
X
Δx = xN-x0N
x0 xN
g0
g1
g2
g3 g4
gN-1
ΔxgN
μ(x)= [x : x0 , xN ,N ]< g0, g2, ・・・, gN >ファジィ集合のS,Z,π関数による表現
1.0
0.0
0 10 20 30 40
寒い 快適 暑い
bs bz
as az
0.5
室温℃
μ快適(x)={ x: 0.25/0 +0.5/10 +1.0/20 +0.5/30 +0.25/40}
=[x : 0 , 40 ,4 ]< 0.25, 0.5, 1.0, 0.5, 0.25 >
S,Z,π型関数を用いて
(1)最大満足(グレード値=1.0)区間 : [15,25]
(2)ほぼ満足(グレード値=0.5)区間 :[10,30]
(3)適合(グレード値=0.25)区間 :[ 0,40]
μ快適(x)= π(x, as, az, bs, bz)
= π(x, 15, 25, 5, 5)
μ寒い(x)= Z(x, az, bs)= Z(x, 10, 5)
μ暑い(x)= S(x, as, bz)= S(x, 30, 5)
ファジィ集合の各種表現
三角型ファジィ集合の表現
1.0
0.0
0 10 20 30 40寒い 暑い
10 10
0.5
室温℃
快適
全体集合(x0,xN)に依存した「快適」の表現
室温℃
1.0
0.0 X0 a=(x0+XN)/2 XN
快適
0.5 b
b= XN-X0 b 4
1.0
0.0
0 1015
20 307.5 7.5
0.5
室温℃
快適
全体集合を「0℃,30℃」とした「快適」の表現
ファジィ関数記述上の注意事項
(1)全体集合の変化範囲
・各状態量や評価量の変動範囲や平均値を基準
(入力データをA/D変換幅)
・平均値x,標準偏差σを計算
定義域:(xー2σ,x+2σ)区間
メンバシップ関数を平均値xや標準偏差σで記述
・定義域を変更 → 意味合いを変更
(2)ファジィ集合の順序関係
1.0
0.0 0 10 20 30 40
快適 暑い
bs1 bs2
0.5
言葉の意味の逆転例
室温℃ファジィ集合の例
「水温が中位」:
M = ∫ μM(x)/x
μM(x) = π(x, 35, 45, -25, -25 )
={ x: 0.3/0+0.5/10+0.7/20+0.9/30+1.0/40
+0.9/50+0.7/60 +0.5/70 +0.3/80 +0.1/90 +0.0/100}
「水温が高い」:
H = ∫ μH(x)/x
μH(x) = π(x, 80, 90, -12.5, -10 )
={ x:0.0/0+0.0/10 +0.0/20 +0.0/30+0.0/40
+0.0/50+0.1/60 +0.6/70 +1.0/80 +1.0/90 +0.5/100}
水温の全体集合:[水温]=[x:0,100,10]
μM(x)=[水温]<0.3,0.5,0.7,0.9,1.0,0.9,0.7,0.5,0.3,0.1,0.0>
μH(x)=[水温]<0.0,0.0,0.0,0.0,0.0,0.0,0.1,0.6,1.0,1.0,0.5>
水温が高い 水温が中位
0 1.0
0.0 20 40 60 80 100
μM(x)
ファジィ積和
ファジィ論理和・論理積
水温℃
水温が中位 and 水温が高い μM∩H(x)
水温が高い 水温が中位
0 1.0
0.0 20 40 60 80 100
μM(x) μH(x)
水温℃
μH(x) μM∪H(x)
水温が中位 or 水温が高い
水温が高い 水温が中位
0 1.0
0.0 20 40 60 80 100
μM(x)
(a) 論理和 (b) 論理積
ファジィ代数和・代数積
μM田H(x) 水温が中位 or 水温が高い
水温が高い 水温が中位
1.0
0.0
水温℃
μH(x)
0 20 40 60 80 100
μM(x)
水温が中位 and 水温が高い μM・H(x)
水温が高い 水温が中位
0 1.0
20 40
0.0 60 80 100
μM(x)
水温℃
μH(x)
(a)代数和 (b)代数積
水温が高い 水温が中位
0 1.0
0.0
20 40 60 80 100
μM(x)
水温℃
μH(x)
(a)限界和
μM H(x) 水温が中位 or 水温が高い
○
+
水温が高い 水温が中位
1.0
0.0 0 20 40 60 80 100
μM(x)
水温℃
μH(x)
(b)限界積 水温が中位 and 水温が高い
μM H(x)○・
ファジィ限界和・限界積
ファジィ補演算
水温が中位
0 1.0
0.0
20 40 60 80 100
μM(x)
水温℃
1.0-μM(x)
水温が中位でない
ファジィ修飾演算
ファジィ修飾演算(べき乗)
非常に適切 やや適切
適切
0 20 40
1.0
0.0 60 80 100
μN(70)=0.5μN1/2(70)=0.71 μN2(70)=0.25 水温℃
ファジィ修飾演算(先鋭化)
ファジィ修飾演算(傾き修飾)
非常に適切
やや適切 適切
0 20 40
1.0
0.0 60 80 100
|2bs|
|bs|
|bs/2|
0.5
水温℃
水温℃
as 1.0
0.00 20 40 60 80 100
|bs|
|bs/2|
as-|bs/2|
適切 ほぼ適切
0.5
非ファジィ化演算
非ファジィ化演算(重み付き重心法)
代表値=48.2
0 1.0
0.0
20 40 60 80 100
水温℃
非ファジィ化演算(αカット要素平均法)
(a)αを1.0とした場合 (b)αを0.5とした場合
0 20 40
1.0
0.0
60 80 100
α=1.0
代表値=45.0
水温℃
代表値=50.0
0 20 40
1.0
0.0
60 80 100
α=0.5
水温℃
( ) ( )
i N i
N i
x x
u x
m
= å m
å g
exfuzmin.m
point_n=21;min_temp = 0; max_temp = 100; % universe is [min_temp, max_temp]
% n点の等間隔ベクトルの作成
temp = linspace( min_temp, max_temp, point_n )';
% define fuzzy set
% /---k Temp_Middle
% /25 25k
% +---/ k---
% 0 35 45 100 deg as = 35; az=45; bs=-25; bz=-25;
Temp_Middle = min( min(max(0,1-(temp-as)/(2*bs)), ...
max(0,1-(az-temp)/(2*bz)) ),1);
% /---k Temp_High
% /12.5 10k
% +---/ k---
% 0 80 90 100 deg as = 80; az=90; bs=-12.5; bz=-10;
Temp_High = min( min(max(0,1-(temp-as)/(2*bs)), ...
max(0,1-(az-temp)/(2*bz)) ),1);
% define fuzzy set sigma
% c2 = 50; sigma2 = 10 ;
% Temp_M = exp(-((temp-c2)/sigma2).^2/2); % fuzzy set B
% min( Tenp_High , B )
Temp_HandM = min (Temp_High, Temp_Middle );
c_Temp_HandM= sum(temp'*Temp_HandM) / sum(Temp_HandM);
disp('代表値 ΣXi*μ(Xi)/Σμ(Xi)') c_Temp_HandM
% ploting figure(1);
plot(temp,Temp_High,'y--', ...
temp,Temp_Middle,'m:',temp,Temp_HandM,'c');
axis([-inf inf 0 1.2]); xlabel('Temp(deg)');
Matlabによる図面の作成
% 以下をmファイル ex1a.m として保存し実行。(直接実行でも良いが。)temp=[0, 25, 50, 75, 100];
Temp_High=[ 0.4, 0.6, 0.8, 1.0, 0.7];
figure(2);
plot(temp,Temp_High, 'b--');
axis([0, 100, 0, 1.2]);
xlabel('Temp(deg)');
grid;
title(' Matlab図のタイトル');
・ bitmap ファイル( <Alt>+<PrtSc> でクリップボードへ、それを、
word ,ppt へ貼り付け <Ctrl>+c 。)
拡張メタファイル= EPS ファイル
・ Figure の [ 編集 ][ コピーオプション ] で情報保持とし、
・ [ 編集 ][Figure のコピー ] で , 拡張メ タファイルをクリップボードへ。
・ ppt で編集 >>illustrator などへ
EPS として、 TeX 論文に使用可能。
(画面上で適度に縮尺しする。軸名称など、編集 できる。)
0.2 0.4 0.6 0.8 1
Matlab図のタイトル