1. Trang chủ
  2. » Luận Văn - Báo Cáo

fl app nhật minh

303 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Logic mờ và ứng dụng
Tác giả Trần Văn Lăng
Người hướng dẫn PGS.TS. Trần Văn Lăng
Chuyên ngành Computer Science
Định dạng
Số trang 303
Dung lượng 5,17 MB

Nội dung

in Computer Science• Trong đời soDng, khi con người trao đoUi với nhau thông qua ngôn ngữ tự nhiên.. in Computer Science• Có theU download tại: ‣ grenoble-alpes.fr/L.A... in Co

Trang 1

PGS.TS Trần Văn Lăng

Logic mờ và ứng dụng

Fuzzy Logic and its Applications

1

Trang 2

A.Prof in Computer Science

Trang 3

A.Prof in Computer Science

Trang 4

A.Prof in Computer Science

Trang 5

A.Prof in Computer Science

Trang 6

A.Prof in Computer Science

Trang 7

A.Prof in Computer Science

7

L.A Zadeh, Fuzzy sets, Information and Control, Volume 8, Issue 3, 1965, Pages

338-353, ISSN 0019-9958, https://doi.org/10.1016/S0019-9958(65)90241-X

(https://www.sciencedirect.com/science/article/pii/S001999586590241X)

Trang 8

A.Prof in Computer Science

Trang 9

A.Prof in Computer Science

‣ 1970: First Application of Fuzzy Logic in Control Engineering (Europe)

‣ 1975: Introduction of Fuzzy Logic in Japan

‣ 1980: Empirical Verioication of Fuzzy Logic in Europe

9

Trang 10

A.Prof in Computer Science

Trang 11

A.Prof in Computer Science

Ứng dụng minh họa

11

Trang 12

A.Prof in Computer Science

Trang 13

A.Prof in Computer Science

Trang 14

A.Prof in Computer Science

A

A = {(x, μA(x))/x ∈ X} A = { μAx / (x) x ∈ X}

14

Trang 15

A.Prof in Computer Science

Trang 16

A.Prof in Computer Science

Trang 17

A.Prof in Computer Science

Trang 18

A.Prof in Computer Science

Trang 19

A.Prof in Computer Science

Trang 20

A.Prof in Computer Science

Trang 21

A.Prof in Computer Science

Trang 22

A.Prof in Computer Science

Trang 23

A.Prof in Computer Science

Trang 24

A.Prof in Computer Science

Trang 25

A.Prof in Computer Science

Trang 26

A.Prof in Computer Science

n

26

Trang 27

A.Prof in Computer Science

n i=1 wi

27

Trang 28

A.Prof in Computer Science

Trang 29

A.Prof in Computer Science

Trang 30

A.Prof in Computer Science

Trang 31

A.Prof in Computer Science

Trang 32

A.Prof in Computer Science

Trang 33

A.Prof in Computer Science

Trang 34

A.Prof in Computer Science

Trang 35

A.Prof in Computer Science

• Chı́nh vı̀ vậy, các phép toán AND, OR, NOT là ca_n thieDt trong trường hợp này

35

Trang 36

A.Prof in Computer Science

Định nghĩa 2: Cho 2 tập mờ trên cùng không gian ne_n với hàm thuộc

tương ứng là Khi đó tập mờ có hàm thuộc là:

Định nghĩa 3: Cho 2 tập mờ trên cùng không gian ne_n với hàm thuộc

tương ứng là Khi đó tập mờ có hàm thuộc là:

Trang 37

A.Prof in Computer Science

Trang 38

A.Prof in Computer Science

Trang 39

A.Prof in Computer Science

Định nghĩa 5: Cho 2 tập mờ trên cùng không gian ne_n với hàm thuộc

tương ứng là Hai tập mờ được gọi là bagng nhau, ký hiệu

Trang 40

A.Prof in Computer Science

Trang 41

A.Prof in Computer Science

Trang 42

A.Prof in Computer Science

Trang 43

A.Prof in Computer Science

Trang 44

A.Prof in Computer Science

Trang 45

A.Prof in Computer Science

0 (1,5) , 0 (14,5) , 0 (25,5) , 0.5 (40,5) , 0.5 (60,5) , 0.5 (100,5) ,

0 (1,10) ,

0 (14,10) ,

0 (25,10) , 0.5 (40,10) ,

1 (60,10) ,

1 (100,10) }

45

Trang 46

A.Prof in Computer Science

Trang 47

A.Prof in Computer Science

Trang 48

A.Prof in Computer Science

• Từ đây có theU chọn giải pháp toDt khi tiêm cả 2 vaccine cho người trẻ là:

• Tập mờ trên không gian ne_n có độ thuộc như sau:

A = {1/x1,1/x2,0.8/x3,0/x4} B = {1/y1,1/y2,0.8/y3,0.5/y4,0.6/y5,0/y6}

Trang 49

A.Prof in Computer Science

Trang 50

A.Prof in Computer Science

Trang 51

A.Prof in Computer Science

Trang 52

A.Prof in Computer Science

• ĐeU thuận lợi, các gói thư viện toDi

thieUu ca_n có cho học pha_n đó là:

• Numpy đeU sử dụng các công cụ

của toán học tı́nh toán, đại soD tuyeDn tı́nh

Trang 53

A.Prof in Computer Science

Trang 54

A.Prof in Computer Science

• Trước tiên ca_n include các thư viện sử dụng

54

import numpy as np import matplotlib.pyplot as plt

Sau đó tạo các mảng một chie_u cho 2 tập hợp X và A.

X = np.array( [30,50,75,90,100,125,150,200] )

A = np.array( [0,0,0,0.1,0.5,0.8,1,1] )

• ĐeU hı̀nh dung, có theU trực quan hoá thông qua các hàm của Matplotlib

Trang 55

A.Prof in Computer Science

plt.figure( figsize=(12,6) )

plt.title( "ĐỒ THỊ BIỂU DIỄN HÀM THUỘC CỦA TẬP MỜ" )

plt.plot( X,A,label="Tập mờ A = " + r"$\{\frac{0}{30},\frac{0}{50},\frac{0}{75},\frac{0.1}{90},

plt.xlabel( "Không gian nền X = " + str(X) )

plt.ylabel( "Mức độ phụ thuộc: " + r"$\mu_A(x)$" )

plt.legend( loc="best" )

plt.show()

Trang 56

A.Prof in Computer Science

Trang 57

plt.title( "ĐỒ THỊ BIỂU DIỄN HÀM THUỘC CỦA TẬP MỜ" )

plt.plot( X,A,label="Tập mờ A = " + r"$\{\frac{0}{30},\frac{0}{50},\frac{0}{75},

plt.xlabel( "Không gian nền X = " + str(X) )

plt.ylabel( "Mức độ phụ thuộc: " + r"$\mu_A(x)$" )

plt.legend( loc="best" )

plt.show()

57

Lưu ý ragng, Jupyter tạo ra tập tin có tên là name.ipynb, khi ca_n chuyeUn sang tập tin name.py dùng lệnh

jupyter nbconvert to script name.ipynb

Trang 58

A.Prof in Computer Science

Trang 59

A.Prof in Computer Science 59

Trang 60

A.Prof in Computer Science

Trang 61

A.Prof in Computer Science

Trang 62

A.Prof in Computer Science

Một số hàm thành viên trong skfuzzy

• ƠŠ pha_n trước xây dựng hàm thành viên trên cơ sở mảng dữ liệu là các giá

trị thuộc Khi dùng Scikit-Fuzzy, cũng có những hàm thành viên đã được tạo saŒn dưới dạng API có trong thư viện đeU sử dụng

Trang 63

A.Prof in Computer Science

Trang 64

A.Prof in Computer Science

KeDt quả tập mờ C được trực quan hoá như hı̀nh

64

Trang 65

A.Prof in Computer Science

• Tương tự như vậy, có hàm thành viên hı̀nh dạng chữ , chữ trên cùng

zmf(X, a, b) pimf(X, a, b, c, d)

65

Trang 66

A.Prof in Computer Science

độ của 3 đı̉nh tam giác; trimf(x, [a, b, c]) trapmf(X, [d, e, f, g] là hoành độ của 4 đı̉nh tạo nên hı̀nh thang a, b, c

d, e, f, g

66

Trang 67

A.Prof in Computer Science

Trang 68

A.Prof in Computer Science

• Hàm hı̀nh quả chuông và phân phoDi Gauss

68

Trang 69

A.Prof in Computer Science

• Cha€ng hạn, cho tập các soD nguyên Cho bieDt các cặp có

giá trị khác nhau trong tập này mà X = {1,2,3,4,5} Khi đó ta có tập các cặp (a, b)

{(1,2), (1,3), (1,4), (1,5), (2,4)}

69

Trang 70

A.Prof in Computer Science

• Rõ ràng đây chı́nh là các pha_n tử trong tı́ch Descartes

• Ký hiệu là đeU chı̉ X có quan hệ với Y

• Từ đây có theU coi là một ánh xạ đeU bieDn các pha_n tử thành

Trang 71

A.Prof in Computer Science

Ví dụ 6

là một quan hệ 2 ngôi giữa X và Y

• Như vậy, thay vı̀ tı́ch có đa_y đủ 12 pha_n tử, thı̀ tập con của này

Trang 72

A.Prof in Computer Science

Trang 73

A.Prof in Computer Science

b

c d

Trang 74

A.Prof in Computer Science

Trang 75

A.Prof in Computer Science

Trang 76

A.Prof in Computer Science

Trang 77

A.Prof in Computer Science

Ví dụ 7

• Cho không gian ne_n là các quoDc gia và

là 3 loại vaccine ve_ Wuhan Coronavirus

• Gọi là quan hệ theU hiện mức độ quan tâm của người dân trong 4 quoDc gia

trong ve_ các vaccine trong như sau:

X = {VI, EN, NE, CN}

Y = {PF, AZ, SI}

PF AZ SI VI

EN NE CN

1 0.9 0

1 0.7 0.1 0.8 0.4 1

77

Trang 78

A.Prof in Computer Science

Ví dụ 8

Cho X là sân bay của các thành phoD lớn X={Ca_n Thơ (VCA), Sài Gòn (SGN),

Đà Lạt (DLI), Nha Trang (CXR), Đà NaŒng (DAD), HueD (HUI), Hà Nội (HAN),

Hải Phòng (HPH)} Giả sử việc có máy bay trong một tua_n (7 ngày) giữa các thành phoD như sau:

Trang 79

A.Prof in Computer Science

Trang 80

A.Prof in Computer Science

1 0.57 0 0.29 0.57 0 0.71 0.14 0.57 1 0.71 0.57 1 0.43 1 0.57

Trang 81

A.Prof in Computer Science

• Từ đây chúng ta có theU rút ra quan hệ những sân bay thường xuyên có

các chuyeDn bay qua lại với nhau là ma trận: ℜ

1 0.57 0 0.29 0.57 0 0.71 0.14 0.57 1 0.71 0.57 1 0.43 1 0.57

Trang 82

A.Prof in Computer Science

μℜ1∩ℜ2(x, y) = min {μℜ1(x, y), μℜ2(x, y)}, ∀(x, y) ∈ X × Y

μℜ1∪ℜ2(x, y) = max {μℜ1(x, y), μℜ2(x, y)}, ∀(x, y) ∈ X × Y

μ¬ℜ1(x, y) = μℜ1(x, y) = 1 − μℜ1(x, y), ∀(x, y) ∈ X × Y

82

Trang 83

A.Prof in Computer Science

ℜ2 =

1 0.8 0 0.9 1 0

1 0.7 0.1 0.8 0.6 0.8

83

Trang 84

A.Prof in Computer Science

Trang 85

A.Prof in Computer Science

Ví dụ 9

Cho quan hệ mờ giữa ngôn ngữ sử dụng và quoDc

gia , là quan hệ giữa quoDc gia và loại đo_ng tie_n

Trang 86

A.Prof in Computer Science

• Quan hệ liên keDt giữa ngôn ngữ sử dụng, quoDc gia và loại đo_ng tie_n như bản

sau:

86

Trang 87

A.Prof in Computer Science

9 Phép hợp thành mờ

Định nghĩa 10: Cho 3 tập tham chieDu với 2 quan hệ mờ có hàm

thuộc là và , phép hợp thành mờ của 2 quan hệ này là

Trang 88

A.Prof in Computer Science

Trang 89

A.Prof in Computer Science

Ảnh của tập mờ

Định nghĩa 12: Cho tập mờ trên không gian ne_n và một ánh xạ

AŠnh của qua ánh xạ là , hay theo ký hiệu

Trang 90

A.Prof in Computer Science

Ví dụ 10

• Ta có qua ánh xạ là

• Xét tập trên không gian ne_n , với

Trang 91

A.Prof in Computer Science

Trang 92

A.Prof in Computer Science

Trang 93

A.Prof in Computer Science

Trang 94

A.Prof in Computer Science

0 0.1 0.2 0.8 1

94

Trang 95

A.Prof in Computer Science

B = fz.maxmin_composition( A,R )

Trang 96

A.Prof in Computer Science

Trang 97

A.Prof in Computer Science

Trang 98

A.Prof in Computer Science

• Tı́nh toán cụ theU hơn

μ B (y1) = max { min{μ A (x1), μ(x1, y1)}, min{μ A (x2), μ(x2, y1)}, min{μ A (x3), μ(x3, y1)}}

= max { min{0.2,0.7}, min{0.8,0.5}, min{1,0.2}}

= max {0.2,0.5,0.2}

= 0.5

μ B (y2) = max { min{μ A (x1), μ(x1, y2)}, min{μ A (x2), μ(x2, y2)}, min{μ A (x3), μ(x3, y2)}}

= max { min{0.2,1}, min{0.8,0.9}, min{1,0.6}}

= max {0.2,0.8,0.6}

= 0.8

98

Trang 99

A.Prof in Computer Science

• Vậy

μ B (y3) = max { min{μ A (x1), μ(x1, y3)}, min{μ A (x2), μ(x2, y3)}, min{μ A (x3), μ(x3, y3)}}

= max { min{0.2,0.4}, min{0.8,0.6}, min{1,0.3}}

= max {0.2,0.6,0.3}

= 0.6

B = A ∘ ℜ = {0.5/y1,0.8/y2,0.6/y3}

99

Trang 100

A.Prof in Computer Science

A ∘ ℜ = B

100

Trang 101

A.Prof in Computer Science

• Ta có

Vậy tập mờ B là (0.6/y1, 0.6/y2, 0.5/y3 )

b1 = max { min{0.2,0.1}, min{0.4,0.6}, min{0.6,0.8}, min{1.0,0.0}}

Trang 102

A.Prof in Computer Science

Ví dụ 14

Cho tập ne_n X = {x1, x2, x3, x4, x5}, Y = {y1, y2, y3, y4, y5}, tập mờ A = {0/x1, 0.5/

x2, 1/x3, 0.5/x4, 0/x5}, B = {0/y1, 0.6/y2, 1/y3, 0.6/y4, 0/y5}

Trang 103

A.Prof in Computer Science

• Các pha_n tử của ma trận quan hệ mờ nhận giá trị như sau:

B′ = {0/y1,0.5/y2,0.5/y3,0.5/y4,0/y5}

103

Trang 104

A.Prof in Computer Science

R1 = fz.relation_min( A1,B1 ) R2 = fz.relation_min( A2,B2 ) R3 = fz.relation_min( A3,B3 )

w1, w2, w3 = 1, 3, 2

R = (w1*R1 + w2*R2 + w3*R3)/(w1 + w2 + w3)

• Như vı́ dụ sau

Trang 105

A.Prof in Computer Science

Trang 106

A.Prof in Computer Science

• Thực hiện các phép toán AND, OR trên 2 tập này bagng cách:

106

Trang 107

A.Prof in Computer Science

Trang 108

A.Prof in Computer Science

• Nguyên tacc của đie_u khieUn mờ như hı̀nh

108

• Còn bên trong hệ thoDng mờ

Trang 109

A.Prof in Computer Science

• Mà chı̉ ca_n tuân thủ theo những bước như cho mọi bài toán

109

Trang 110

A.Prof in Computer Science

• Đó là: xác định các bieDn đa_u vào và đa_u ra của bộ đie_u khieUn đeU mờ hoá, xây

dựng các tập mờ TieDp theo là dùng các luật hay quy tacc đie_u khieUn được xây dựng theo thuật ngữ của ngôn ngữ tự nhiên; ro_i cuoDi cùng là giải mờ đeU tı̀m

ra giá trị rõ

• Sơ đo_ của một hệ thoDng đie_u khieUn mờ như hı̀nh

110

Trang 111

A.Prof in Computer Science

Luật mờ

• Việc suy diefn mờ dựa trên các luật mờ là vaDn đe_ quan trọng

Cha€ng hạn, với quy tacc suy diễn khẳng định trong lập luận coU đieUn:

, trong đó:

‣ Luật hoặc tri thức: (có nghı̃a là chân lý)

‣ Cùng sự kiện có thật: (nghı̃a là đúng)

Trang 112

A.Prof in Computer Science

• Khi có sự kiện mờ xác định bởi tập mờ trên không gian

ne_n X và với luật mờ thı̀ có keDt luận mờ với là tập

Trang 113

A.Prof in Computer Science

Trang 114

A.Prof in Computer Science

Trang 115

A.Prof in Computer Science

Trang 116

A.Prof in Computer Science

Trang 117

A.Prof in Computer Science

Trang 118

A.Prof in Computer Science

• Bước đa_u tiên đeU giải quyeDt, là thực hiện các công việc mờ:

‣ Xây dựng các tập mờ:

- BaUn ı́t , baUn vừa , baUn nhie_u

- Da_u mở ı́t ( ), da_u mở vừa phải ( ), da_u mở nhie_u ( )

- Thời gian giặt raDt nhanh (very fast) , nhanh , thời gian trung bı̀nh

, lâu , raDt lâu (very long)

Trang 119

A.Prof in Computer Science

plt.plot( X, Dm, label = "Trung bình" )

plt.plot( X, Dl, label = "Bẩn nhiều" )

plt.xlabel("Không gian nền X" + r"$\in [0,100]$")

plt.legend(loc="best")

plt.show()

Trang 120

A.Prof in Computer Science 120

plt.title( "CÁC TẬP MỜ VỀ LƯỢNG DẦU MỠ" )

plt.plot( Y, Gs, label = "Dầu mở ít" )

plt.plot( Y, Gm, label = "Dầu mở vừa phải" )

plt.plot( Y, Gl, label = "Dầu mở nhiều" )

plt.xlabel( "Khộng gian nền $Y \in [1,100]$" )

plt.legend( loc="best" )

plt.show()

• Tương tự như độ baUn, các hàm thành viên ve_ lượng da_u mở bám vào áo

qua_n có theU nội suy đeU hı̀nh dùng, hoặc sử dụng khi có dữ liệu dày đặc

Trang 121

A.Prof in Computer Science 121

plt.title( "CÁC TẬP MỜ VỀ THỜI GIAN GIẶT" )

plt.plot( Z, Tf, label = "Rất nhanh" )

plt.plot( Z, Ts, label = "Nhanh" )

plt.plot( Z, Tm, label = "trung bình" )

plt.plot( Z, Tl, label = "Lâu" )

plt.plot( Z, Tv, label = "Rất lâu" )

plt.xlabel( "Khộng gian nền $Z \in [0,60]$" )

plt.legend( loc="best" )

plt.show()

• Tương tự như vậy cho các tập mờ ve_

thời gian:

Trang 122

A.Prof in Computer Science

Trang 123

A.Prof in Computer Science

Trang 124

A.Prof in Computer Science

Trang 125

A.Prof in Computer Science

Trang 126

A.Prof in Computer Science

Trang 127

A.Prof in Computer Science

Trang 128

A.Prof in Computer Science

Trang 129

A.Prof in Computer Science

Trang 130

A.Prof in Computer Science

Trang 131

A.Prof in Computer Science

Trang 132

A.Prof in Computer Science

Trang 133

A.Prof in Computer Science 133

Trang 134

A.Prof in Computer Science

return (t - 20)/10

def MuM(t):

if 0 <= t and t <= 10:

return t/10 elif 10 <= t and t <= 20:

return 1 elif 20 <= t and t <= 30:

Trang 135

A.Prof in Computer Science 135

Tg = np.linspace( 0,30 )

L = [MuL(t) for t in Tg]

M = [MuM(t) for t in Tg]

S = [MuS(t) for t in Tg]

Trang 136

A.Prof in Computer Science

TieDp theo, ca_n các luật mờ theo quy tacc "nước trên bồn hết nhiều thì bơm

lâu"

(R1): NeDu bo_n còn đa_y ( ) và dưới beU đa_y ( ) thı̀ bơm ı́t (S)

‣ (R2): NeDu bo_n còn đa_y ( ) và dưới beU còn vừa ( ) thı̀ bơm ı́t (S)

(R3): NeDu bo_n còn đa_y ( ) và dưới beU đã ga_n cạn ( ) thı̀ bơm ı́t (S)

(R4): NeDu bo_n đã ga_n heDt ( ) và dưới beU đa_y ( ) thı̀ bơm lâu (L)

‣ (R5): NeDu bo_n đã ga_n heDt ( ) và dưới beU còn vừa( ) thı̀ bơm vừa (M)

(R6): NeDu bo_n đã ga_n heDt ( ) và dưới beU ga_n cạn ( ) thı̀ bơm ı́t (S)

Trang 137

A.Prof in Computer Science

• VaDn đe_ đặt ra: khi bo_n còn và beU có , thı̀ máy bơm hoạt động với thời

Trang 138

A.Prof in Computer Science

• Hiện thực bagng Python cho các trọng soD này

138

• Từ đây, cũng dựa trên các luật mờ đeU có hàm thuộc ve_ thời gian bơm nước

x0, y0 = 1.2, 5 w1 = min( MuTf(y0),MuCf(x0)) w2 = min( MuTf(y0),MuCm(x0)) w3 = min( MuTf(y0),MuCe(x0)) w4 = min( MuTe(y0),MuCf(x0)) w5 = min( MuTe(y0),MuCm(x0)) w6 = min( MuTe(y0),MuCe(x0))

def T(t):

return w1*MuS(t) + w2*MuS(t) + w3*MuS(t) + w4*MuL(t) + w5*MuM(t) + w6*MuS(t)

Trang 139

A.Prof in Computer Science

Trang 140

A.Prof in Computer Science

Trang 142

A.Prof in Computer Science

Trang 143

A.Prof in Computer Science

Trang 144

A.Prof in Computer Science

Trang 145

A.Prof in Computer Science

Trang 146

A.Prof in Computer Science

G = ctrl.Antecedent( Y,"Lượng dầu mở" )

T = ctrl.Consequent( Z,"Thời gian giặt" )

Trang 147

A.Prof in Computer Science

### Các tập mờ

D["Bẩn ít"] = fz.trimf( D.universe,[0,0,50] )

D["Trung bình"] = fz.trimf( D.universe,[0,50,100] )

D["Bẩn nhiều"] = fz.trimf( D.universe,[50,100,100] )

G["Dầu mở ít"] = fz.trimf( G.universe,[0,0,50] )

G["Dầu mở vừa phải"] = fz.trimf( G.universe,[0,50,100] ) G["Dầu mở nhiều"] = fz.trimf( G.universe,[50,100,100] )

T["Rất nhanh"] = fz.trapmf( T.universe,[0,0,4,18] )

T["Nhanh"] = fz.trimf( T.universe,[4,18,32] )

T["Trung bình"] = fz.trimf( T.universe,[18,32,46] )

T["Lâu"] = fz.trimf( T.universe,[32,46,60] )

T["Rất lâu"] = fz.trimf( T.universe,[46,60,60] )

• Các tập mờ tương ứng (Bước 3)

Ngày đăng: 01/07/2024, 00:21

w