You are on page 1of 15

ข้อ 1.

จากข้อมูลในตาราง
Training Data จงออกแบบสร้าง
ระบบฟั ซซีโดยใช้วิธีของ
Mamdani
โดยคำานวณค่าพารามิเตอร์และหา
กฎฟั ซซีจากข้อมูลที่ให้ และ สเกต
ภาพกราฟของกฎ และ
membership functions ที่ได้
(30 คะแนน)

วิธีทำำ
ขั้นตอนที่ 1 : นำำข้อมูลมำทำำ
scatter plot เพื่อวิเครำะห์ลักษณะ

ของข้อมูล

1
ค่ำสูงสุด ค่ำตำ่ำสุด และ ค่ำเฉลี่ย ของข้อมูลทั้งหมด ในแต่ละมิติ

Min Max Mean


X1 1.7 6.2 4.23
X2 0.7 5 2.03
Y 1 3 2
กลุ่มที่ 1
Rec# X1 X2 Y Min Max Mean
1 2.0 2.0 1 X1 1.7 2.1 1.93
2 2.1 1.5 1 X2 0.7 2.0 1.4
3 1.7 0.7 1 Y 1 1 1

กลุ่มที่ 2
Rec# X1 X2 Y Min Max Mean
1 5.5 5.0 2 X1 4.8 5.5 5.16
2 5.2 2.6 2 X2 2.5 5.0 3.36
3 4.8 2.5 2 Y 2 2 2

กลุ่มที่ 3
Rec# X1 X2 Y Min Max Mean
1 6.2 1.3 3 X1 5.3 6.2 5.6
2 5.3 1.7 3 X2 1.0 1.7 1.33
3 5.3 1.0 3 Y 3 3 3

ใช้ Trapezoidal Membership function สำำหรับ มิติที่ 1 และ มิติท่ี 2


0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d

2. กำรออกแบบฟั ซซีเซ็ต (Linguistic Terms) ในแต่ละ Attribute

Attribute 1(x1) แบ่งเป็ น 2 ฟั ซซีเซ็ต {Low1 , High1}


x = 1.7:6.2
aLow1 = 1.7 bLow1 = 1.7
cLow1 = 1.93 dLow1 = 5.6
Low1 = trapmf(x, [aLow1, bLow1, cLow1, dLow1])

2
aHigh1 = 1.93 bHigh1 = 5.6
cHigh1 = 6.2 dHigh1 = 6.2
High1 = trapmf(x, [aHigh1, bHigh1, cHigh1, dHigh1])

plot(x, [Low1’ High1’]’)

ภำพของฟั ซซีเซ็ต ของ Attribute X1

Attribute 2(x2) แบ่งเป็ น 2 ฟั ซซีเซ็ต {Low1 , High1}


y = 0.7:5
aLow2 = 0.7 bLow2 = 0.7
cLow2 = 1.33 dLow2 = 3.36
Low2 = trapmf(y, [aLow2, bLow2, cLow2, dLow2])

aHigh2 = 1.33 bHigh2 = 3.36


cHigh2 = 5 dHigh2 = 5
High2 = trapmf(y, [aHigh2, bHigh2, cHigh2, dHigh2])

plot(y, [Low2’ High2’]’)

ภำพของฟั ซซีเซ็ต ของ


Attribute X2

3
สำำหรับ output y ใช้ triangle membership function เป็ น 3 ฟั ซซีเซ็ต ตำมจำำนวนกลุ่ม
ข้อมูลใน Training data
Attribute y(y) แบ่งเป็ น 3 ฟั ซซีเซ็ต {Low4 , Medium4 , High4}
z = 0:5
aLow4 = 0 bLow4 = 1 cLow4 = 2
Low4 = trimf(z, [aLow4, bLow4, cLow4])

aMedium4 = 1 bMedium4 = 2 cMedium4 = 3


Medium4 = trimf(z, [aMedium4, bMedium4, cMedium4])

aHigh4 = 2 bHigh4 = 3 cHigh4 = 4


High4 = trimf(z, [aHigh4, bHigh4, cHigh4, dHigh4])

plot(y, [Low4’ Medium4’ High4’]’)

ภำพของฟั ซซีเซ็ต ของ Attribute y

4
ขั้นตอนที่ 2 ทำำกำรเทียบข้อมูลฝึ กให้เป็ นพจน์ภำษำในเทอมของฟั ซซีเซ็ตที่ได้

Rec X1 X2 Y
1 High1 Low2 High4
2 Low1 Low2 Low4
3 High1 High2 Medium4
5 High1 Low2 High4
6 High1 High2 Medium4
7 High1 High2 Medium4
8 Low1 Low2 Low4
9 Low1 Low2 High4
10 Low1 Low2 Low4
กำำหนดให้ y มีค่ำเป็ น Low4 เมื่อ y มีค่ำเป็ น 1
กำำหนดให้ y มีค่ำเป็ น Medium4 เมื่อ y มีค่ำเป็ น 2
กำำหนดให้ y มีค่ำเป็ น High4 เมื่อ y มีค่ำเป็ น 3
จำกข้อมูลฝึ ก

กำำหนดให้ x1 มีค่ำเป็ น Low1 เมื่อ x1 มีค่ำตำ่ำกว่ำ 3.75 ; 3.75 คือ จุดตัดที่ได้จำกกรำฟ


นั่นเอง
กำำหนดให้ x1 มีค่ำเป็ น High1 เมื่อ x1 มีค่ำสูงกว่ำ 3.75

กำำหนดให้ x2 มีค่ำเป็ น Low2 เมื่อ x2 มีค่ำตำ่ำกว่ำ 2.4


กำำหนดให้ x2 มีค่ำเป็ น High2 เมื่อ x2 มีค่ำสูงกว่ำ 2.4

5
ตัดแถวที่ซ้ ำำ ทำำกำรนั บ และ รวมกฎ
Rec X1 X2 Y Count
1 High1 Low2 High4 3
2 Low1 Low2 Low4 3
3 High1 High2 Medium4 3

เขียนเป็ นกฎเชิงภำษำ ได้ดังนี้


Rule 1 : If x1 is High1 and x2 is Low2 then class is High4
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม= 3/3 เท่ำกับ 1)
Rule 2 : If x1 is Low1 and x2 is Low2 then class is Low4
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม= 3/3 เท่ำกับ 1)
Rule 3 : If x1 is High1 and x2 is High2 then class is Medium4
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม= 3/3 เท่ำกับ 1)

เมื่อนำำไป plot เป็ นระบบกรำฟ ของกฎ และ membership function ได้ภำพดังนี้

ข้อ 2. จงใช้ระบบฟั ซซีจากข้อ 1. เพื่อแสดงการคำานวณหาค่า


output y ของข้อมูลในตาราง Operating Data
แสดงวิธีหำโดยละเอียด
Operating Data
Rec# X1 X2 Y
11 5. 0.
9 5
ตอบ y = 0

6
วิธีทำำ
คำำนวณหำค่ำ output y จำกระบบฟั ซซี เมื่อ input เป็ น [5.9 0.5]
ขั้นตอนที่ 1 อ่ำนข้อมูล x = [5.9 0.5] ได้ x1 = 5.9 และ x2 = 0.5
ขั้นตอนที่ 2 หำค่ำฟั ซซี output จำกกฎแต่ละข้อ
Rule 1 : If x1 is High1 and x2 is Low2 then class is High4
ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน High1(x1,a,b,c,d)
aHigh1 = 1.93 bHigh1 = 5.6
cHigh1 = 6.2 dHigh1 = 6.2
High1 = trapmf(5.9, [1.93, 5.6, 6.2, 6.2])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c  ได้ว่ำ 5.6 <= 5.9 < 6.2
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี High1 = 1 สำำหรับ x1
ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน Low2(x1,a,b,c,d)
aLow2 = 0.7 bLow2 = 0.7
cLow2 = 1.33 dLow2 = 3.36
Low2 = trapmf(0.5, [0.7, 0.7, 1.33, 3.36])

0 x<a  ได้ว่ำ 0.5 < 0.7


(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี Low2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 1 = min (High1 , Low2) = min (1,0) คำำตอบคือ 0 ครับ
ภำพของ output y คือ High4

7
Rule 2 : If x1 is Low1 and x2 is Low2 then class is Low4
ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน Low1(x1,a,b,c,d)
aLow1 = 1.7 bLow1 = 1.7
cLow1 = 1.93 dLow1 = 5.6
Low1 = trapmf(5.9, [1.7, 1.7, 1.93, 5.6])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d  ได้ว่ำ 5.9 >= 5.6

ตอบ ได้ค่ำฟั ซซี Low1 = 0 สำำหรับ x1


ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน Low2(x1,a,b,c,d)
aLow2 = 0.7 bLow2 = 0.7
cLow2 = 1.33 dLow2 = 3.36
Low2 = trapmf(0.5, [0.7, 0.7, 1.33, 3.36])
0 x<a  ได้ว่ำ 0.5 < 0.7
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี Low2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 2 = min (Low1 , Low2) = min (0,0) คำำตอบคือ 0 ครับ
ภำพของ output y คือ Low4

Rule 3 : If x1 is High1 and x2 is High2 then class is Medium4


ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน High1(x1,a,b,c,d)

8
aHigh1 = 1.93 bHigh1 = 5.6
cHigh1 = 6.2 dHigh1 = 6.2
High1 = trapmf(5.9, [1.93, 5.6, 6.2, 6.2])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c  ได้ว่ำ 5.6 <= 5.9 < 6.2
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี High1 = 1 สำำหรับ x1
ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน High2(x1,a,b,c,d)
aHigh2 = 1.33 bHigh2 = 3.36
cHigh2 = 5 dHigh2 = 5
High2 = trapmf(0.5, [1.33, 3.36, 5, 5])
0 x<a  ได้ว่ำ 0.5 <= 1.33
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี High2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 3 = min (High1 , High2) = min (1,0) คำำตอบคือ 0 ครับ

ภำพของ output y คือ Medium4

9
ขั้นตอนที่ 3 รวมฟั ซซีเอำท์พุตแต่ละข้อ

ขั้นตอนที่ 4 หำค่ำ y* ได้จำกกำรทำำ Defuzzification โดยใช้วิธีถ่วงนำ้ำหนั กศูนย์กลำง


y* = (0*3) + (0*1) + (0*2) / (0 + 0 + 0)
y* = 0

ข้อ 3. จากข้อมูลในคาราง Training Data ในข้อ 2. จงออกแบบ


การสร้างระบบฟั ซซี โดยใช้วิธีของ Takagi-Sugeno-Kang โดย
คำานวณค่าพารามิเตอร์ และ หากฎฟั ซซีจากข้อมูลที่ให้ และให้ส
เก็ตภาพกราฟของกฎ และ membership functions ที่ได้

วิธท
ี ำำ
ระบบฟั ซซี TSK จะได้กฎในส่วนของ IF เหมือน Mamdani แตกต่ำงกันตรง
Then ใช้ output เป็ นค่ำคงที่

ตำรำงกฎของระบบฟั ซซี TSK


Rec X1 X2 Y Count

10
1 High1 Low2 3 3
2 Low1 Low2 1 3
3 High1 High2 2 3

เขียนเป็ นกฎเชิงภำษำ ได้ดังนี้


Rule 1 : If x1 is High1 and x2 is Low2 then class is 3
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม เท่ำกับ 1)
Rule 2 : If x1 is Low1 and x2 is Low2 then class is 1
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม เท่ำกับ 1)
Rule 3 : If x1 is High1 and x2 is High2 then class is 2
(นั บควำมถี/่ จำำนวนข้อมูลใน Class ในกลุ่ม เท่ำกับ 1)

เมื่อนำำไป plot เป็ นระบบกรำฟ ของกฎ และ membership function ได้ภำพดังนี้

ข้อ 4. จงใช้ระบบฟั ซซีจากข้อ 3. เพื่อแสดงวิธีคำานวณหาค่า


เอาต์พุต y ของข้อมูลในตาราง Operating Data ของข้อ 2. แสดง
วิธีหา โดยละเอียด
Operating Data
Rec# X1 X2 Y
11 5. 0.
9 5
ตอบ y =

11
วิธีทำำ
คำำนวณหำค่ำ output y จำกระบบฟั ซซี เมื่อ input เป็ น [5.9 0.5]
ขั้นตอนที่ 1 อ่ำนข้อมูล x = [5.9 0.5] ได้ x1 = 5.9 และ x2 = 0.5
ขั้นตอนที่ 2 หำค่ำฟั ซซี output จำกกฎแต่ละข้อ
Rule 1 : If x1 is High1 and x2 is Low2 then y is 3
ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน High1(x1,a,b,c,d)
aHigh1 = 1.93 bHigh1 = 5.6
cHigh1 = 6.2 dHigh1 = 6.2
High1 = trapmf(5.9, [1.93, 5.6, 6.2, 6.2])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c  ได้ว่ำ 5.6 <= 5.9 < 6.2
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี High1 = 1 สำำหรับ x1
ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน Low2(x1,a,b,c,d)
aLow2 = 0.7 bLow2 = 0.7
cLow2 = 1.33 dLow2 = 3.36
Low2 = trapmf(0.5, [0.7, 0.7, 1.33, 3.36])

0 x<a  ได้ว่ำ 0.5 < 0.7


(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี Low2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 1 = min (High1 , Low2) = min (1,0) คำำตอบคือ 0 ครับ
ภำพของ output y คือ 3

Rule 2 : If x1 is Low1 and x2 is Low2 then y is 1


ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน Low1(x1,a,b,c,d)

12
aLow1 = 1.7 bLow1 = 1.7
cLow1 = 1.93 dLow1 = 5.6
Low1 = trapmf(5.9, [1.7, 1.7, 1.93, 5.6])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d  ได้ว่ำ 5.9 >= 5.6

ตอบ ได้ค่ำฟั ซซี Low1 = 0 สำำหรับ x1


ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน Low2(x1,a,b,c,d)
aLow2 = 0.7 bLow2 = 0.7
cLow2 = 1.33 dLow2 = 3.36
Low2 = trapmf(0.5, [0.7, 0.7, 1.33, 3.36])
0 x<a  ได้ว่ำ 0.5 < 0.7
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี Low2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 2 = min (Low1 , Low2) = min (0,0) คำำตอบคือ 0 ครับ
ภำพของ output y คือ 1

Rule 3 : If x1 is High1 and x2 is High2 then y is 2


ค่ำฟั ซซีในมิติท่ี 1 แทนค่ำ x1 เป็ น 5.9 ในฟั งก์ชัน High1(x1,a,b,c,d)
aHigh1 = 1.93 bHigh1 = 5.6
cHigh1 = 6.2 dHigh1 = 6.2
High1 = trapmf(5.9, [1.93, 5.6, 6.2, 6.2])
0 x<a
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c  ได้ว่ำ 5.6 <= 5.9 < 6.2
(d-x)/(d-c) c<=x<d
0 x>=d

13
ตอบ ได้ค่ำฟั ซซี High1 = 1 สำำหรับ x1
ค่ำฟั ซซีในมิติท่ี 2 แทนค่ำ x2 เป็ น 0.5 ในฟั งก์ชัน High2(x1,a,b,c,d)
aHigh2 = 1.33 bHigh2 = 3.36
cHigh2 = 5 dHigh2 = 5
High2 = trapmf(0.5, [1.33, 3.36, 5, 5])
0 x<a  ได้ว่ำ 0.5 <= 1.33
(x-a)/(b-a) a<= x < b
trapmf (x:a,b,c,d) = 1 b<=x<c
(d-x)/(d-c) c<=x<d
0 x>=d
ตอบ ได้ค่ำฟั ซซี High2 = 0 สำำหรับ x2
ดังนั้ น อัลฟ่ ำ 3 = min (High1 , High2) = min (1,0) คำำตอบคือ 0 ครับ

ภำพของ output y คือ Medium4

ขั้นตอนที่ 3 รวมฟั ซซีเอำท์พุตแต่ละข้อ

ขั้นตอนที่ 4 หำค่ำ y* ได้จำกกำรทำำ Defuzzification โดยใช้วิธีถ่วงนำ้ำหนั กศูนย์กลำง


y* = (0*3) + (0*1) + (0*2) / (0 + 0 + 0)
y* = 0

14
15

You might also like