Toan RR 2

Màu nền
Font chữ
Font size
Chiều cao dòng

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG

CHUYÊN ĐỀ

PHƯƠNG PHÁP TOÁN TRONG TIN HỌC

KHÓA LUẬN

LOGIC MỜ, SỐ MỜ VÀ HỆ MỜ

GIẢNG VIÊN HƯỚNG DẪN

GS,TSKH. HOÀNG KIẾM

HỌC VIÊN THỰC HIỆN

ĐỖ NGỌC ANH CH0301002

BÙI TRẦN QUANG VŨ CH0301088

2005

Lời nói đầu

Con người giao tiếp bằng ngôn ngữ tự nhiên, mà bản chất của ngôn ngữ tự nhiên là mơ hồ và không chính xác. Tuy vậy, trong hầu hết tình huống, con người vẫn hiểu những điều mà người khác muốn nói với mình. Khả năng hiểu và sử dụng đúng ngôn ngữ tự nhiên, thực chất là hiểu và xử lý đúng thông tin không chính xác chứa trong đó, có thể coi là thước đo mức độ hiểu biết, thông minh của con người. Con người cũng luôn mơ ước máy tính, người bạn, người giúp việc đắc lực của mình, ngày càng thông minh và hiểu biết hơn. Vì vậy, nhu cầu làm cho máy tính hiểu và xử lý được những thông tin không chính xác, xấp xỉ, áng chừng là một nhu cầu bức thiết.

Logic mờ ra đời đã cung cấp một công cụ hữu hiệu để nghiên cứu và xây dựng các hệ thống có khả năng xử lý thông tin không chính xác. Nhờ có logic mờ mà con người xây dựng được những hệ điều khiển có tính linh động rất cao. Chúng có thể hoạt động tốt ngay trong điều kiện có nhiều nhiễu hoặc những tình huống chưa được học trước. Nhờ có logic mờ mà con người xây dựng được những hệ chuyên gia có khả năng suy luận như những chuyên gia hàng đầu và có khả năng tự hoàn thiện thông qua việc thu nhận tri thức mới.

Ngày nay logic mờ có phạm vi ứng dụng rộng rãi trên thế giới, từ những hệ thống cao cấp phức tạp như những hệ dự báo, nhận dạng, robos, vệ tinh, du thuyền, máy bay,... đến những đồ dùng hằng ngày như máy giặt, máy điều hoà không khí, máy chụp hình tự động,... Những trung tâm lớn về lý thuyết cũng như ứng dụng của logic mờ hiện nay là Mỹ, Nhật, và Châu Âu.

Ở Việt Nam, việc nghiên cứu về lý thuyết cũng như ứng dụng của logic mờ đã có lịch sử gần hai thập kỷ và đã thu được những thành tựu to lớn. Tuy vậy vẫn cần thiết phải phát triển hơn nữa cả về chiều sâu lẫn chiều rộng.

Bài thu hoạch này của nhóm học viên Đỗ Ngọc Anh và Bùi Trần Quang Vũ là kết quả tìm hiểu về logic mờ, phương pháp xây dựng một hệ điều khiển mờ điển hình và minh hoạ lý thuyết bằng một hệ mờ đơn giản để điều khiển máy giặt tự động.

Chúng em xin chân thành cảm ơn GS.TSKH Hoàng Kiếm, giảng viên môn học Phương pháp toán trong tin học, đã truyền đạt những kiến thức quý báu về công nghệ tri thức và đặc biệt là về logic mờ, giúp cho chúng em viết bài thu hoạch này. Xin chân thành cảm ơn ban cố vấn học tập và ban quản trị Chương trình đào tạo thạc sĩ Công nghệ thông tin qua mạng của Đại Học Quốc Gia Thành phố Hồ Chí Minh đã tạo điều kiện về tài liệu tham khảo.

Mục lục

Lời nói đầu 2

Mục lục 3

CHƯƠNG I. LOGIC MỜ 5

TẬP MỜ 5

Khái niệm tập mờ 5

Các dạng hàm thuộc tiêu biểu 6

Nhóm hàm đơn điệu 6

Nhóm hàm hình chuông 6

Các khái niệm liên quan 7

Các phép toán trên tập mờ 7

Các phép toán mở rộng 8

SỐ MỜ 10

Định nghĩa 11

Các phép toán 11

Nguyên lý suy rộng của Zadeh 11

LOGIC MỜ 12

Biến ngôn ngữ 12

Mệnh đề mờ 13

Các phép toán mệnh đề mờ 13

Phép toán kéo theo mờ - luật if-then mờ thông dụng 13

Luật modus-ponens tổng quát 14

CHƯƠNG II. HỆ MỜ 16

KIẾN TRÚC CỦA HỆ MỜ TỔNG QUÁT 16

CƠ SỞ LUẬT MỜ 17

BỘ SUY DIỄN MỜ 17

Trường hợp một đầu vào và một luật 18

Trường hợp hai đầu vào và một luật 18

Trường hợp nhiều đầu vào và nhiều luật 19

BỘ MỜ HOÁ 19

Mờ hoá đơn trị 19

Mờ hoá Gaus 19

Mờ hoá tam giác 19

BỘ GIẢI MỜ 20

Phương pháp lấy max 20

Phương pháp lấy trọng tâm 20

Phương pháp lấy trung bình tâm 20

HỆ MỜ LÀ MỘT HỆ XẤP XỈ VẠN NĂNG 20

SO SÁNH HỆ MỜ VỚI MẠNG NƠRON 21

GIỚI THIỆU MỘT SỐ HỆ MỜ TRONG THỰC TẾ 22

CHƯƠNG III. PHƯƠNG PHÁP THIẾT KẾ HỆ ĐIỀU KHIỂN MỜ TỪ TẬP DỮ LIỆU VÀO VÀ RA 24

ĐẶT VẤN ĐỀ 24

THIẾT KẾ HỆ ĐIỀU KIỆN MỜ BẰNG BẢNG DỮ LIỆU VÀO 24

CHƯƠNG IV. MINH HOẠ HỆ MỜ: HỆ ĐIỀU KHIỂN MÁY BƠM NƯỚC TỰ ĐỘNG 26

CHƯƠNG TRÌNH MINH HOẠ HỆ MỜ ĐIỀU KHIỂN MÁY GIẶT 29

Các biến ngôn ngữ 29

Các giá trị ngôn ngữ 30

Các luật mờ 30

Hướng dẫn sử dụng chương trình 30

Kết quả chạy chương trình 34

Thuật ngữ 40

Tài liệu tham khảo 41

CHƯƠNG I. LOGIC MỜ

TẬP MỜ

Khái niệm tập mờ

Một tập hợp trong một không gian nào đó, theo khái niệm cổ điển sẽ chia không gian thành 2 phần rõ ràng. Một phần tử bất kỳ trong không gian sẽ thuộc hoặc không thuộc vào tập đã cho. Tập hợp như vậy còn được gọi là tập rõ. Lý thuyết tập hợp cổ điển là nền tảng cho nhiều ngành khoa học, chứng tỏ vai trò quan trọng của mình. Nhưng những yêu cầu phát sinh trong khoa học cũng như cuộc sống đã cho thấy rằng lý thuyết tập hợp cổ điển cần phải được mở rộng.

Ta xét tập hợp những người trẻ. Ta thấy rằng người dưới 26 tuổi thì rõ ràng là trẻ và người trên 60 tuổi thì rõ ràng là không trẻ. Nhưng những người có tuổi từ 26 đến 60 thì có thuộc tập hợp những người trẻ hay không? Nếu áp dụng khái niệm tập hợp cổ điển thì ta phải định ra một ranh giới rõ ràng và mang tính chất áp đặt chẳng hạn là 45 để xác định tập hợp những người trẻ. Và trong thực tế thì có một ranh giới mờ để ngăn cách những người trẻ và những người không trẻ đó là những người trung niên. Như vậy, những người trung niên là những người có một "độ trẻ" nào đó. Nếu coi "độ trẻ" của người dưới 26 tuổi là hoàn toàn đúng tức là có giá trị là 1 và coi "độ trẻ" của người trên 60 tuổi là hoàn toàn sai tức là có giá trị là 0, thì "độ trẻ" của người trung niên sẽ có giá trị p nào đó thoả 0 < p < 1.

Như vậy nhu cầu mở rộng khái niệm tập hợp và lý thuyết tập hợp là hoàn toàn tự nhiên. Các công trình nghiên cứu về lý thuyết tập mờ và logic mờ đã được L.Zadeh công bố đầu tiên năm 1965, và sau đó liên tục phát triển mạnh mẽ.

Định nghĩa: Cho không gian nền U, tập A U được gọi là tập mờ nếu A được xác định bởi hàm :X->[0,1].

được gọi là hàm thuộc, hàm liên thuộc hay hàm thành viên (membership function)

Với x X thì (x) được gọi là mức độ thuộc của x vào A.

Như vậy ta có thể coi tập rõ là một trường hợp đặc biệt của tập mờ, trong đó hàm thuộc chỉ nhận 2 giá trị 0 và 1.

Ký hiệu tập mờ, ta có các dạng ký hiệu sau:

 Liệt kê phần tử: giả sử U={a,b,c,d} ta co thể xác định một tập mờ A=

 A =

 A = trong trường hợp U là không gian rời rạc

 A = trong trường hợp U là không gian liên tục

Lưu ý là các ký hiệu và không phải là các phép tính tổng hay tích phân, mà chỉ là ký hiệu biểu thị tập hợp mờ.

Ví dụ. Tập mờ A là tập "số gần 2" xác định bởi hàm thuộc ta có thể ký hiệu: A = hoặc A =

Các dạng hàm thuộc tiêu biểu

Theo lý thuyết thì hàm thuộc có thể là một hàm bất kỳ thoả :X->[0,1]. Nhưng trong thực tế thì có các dạng hàm thuộc sau đây là quan trọng và có tính ứng dụng cao hơn cả.

Nhóm hàm đơn điệu

Nhóm này gồm đơn điệu tăng và đơn điệu giảm. Ví dụ tập hợp người già có hàm thuộc đơn điệu tăng theo tuổi trong khi đó tập hợp người trẻ có hàm thuộc đơn điệu giảm theo tuổi. Ta xét thêm ví dụ minh hoạ sau: Cho tập vũ trụ E = Tốc độ = đơn vị là km/h. Xét tập mờ F=Tốc độ nhanh xác định bởi hàm thuộc như đồ thị

Như vậy tốc độ dưới 20km/h được coi là không nhanh. Tốc độ càng cao thì độ thuộc của nó vào tập F càng cao. Khi tốc độ là 100km/h trở lên thì độ thuộc là 1.

Nhóm hàm hình chuông

Nhóm hàm này có đồ thị dạng hình chuông, bao gồm dạng hàm tam giác, hàm hình thang, gauss.

Xét ví dụ cũng với tập vũ trụ E ở trên, xét tập mờ F=Tốc độ trung bình xác định bởi hàm thuộc

Các khái niệm liên quan

Giả sử A là tập mờ trên vũ trụ U, có hàm thuộc thì ta có các khái niệm sau:

 Giá đỡ của A, ký hiệu supp(A) là một tập rõ bao gồm tất cả các phần tử x U sao cho (x) > 0

 Nhân của A là một tập rõ bao gồm tất cả các phần tử x U sao cho (x) = 1

 Biên của A là một tập rõ bao gồm tất cả các phần tử x U sao cho 0 < (x) < 1

 Độ cao của A, ký hiệu height(A) là cận trên đúng của (x). height(A)=

 Tập mờ A được gọi là tập mờ chuẩn tắc (normal fuzzy set) nếu height(A)=1. Tức là tập mờ chuẩn tắc có nhân khác rỗng.

Các phép toán trên tập mờ

Giả sử A và B là các tập mờ trên vũ trụ U thì ta có các định nghĩa sau:

Quan hệ bao hàm

A được gọi là bằng B khi và chỉ khi x U, (x) = (x) .

A được gọi là tập con của B, ký hiệu A B khi và chỉ khi x U, (x) (x)

Phần bù

Phần bù mờ của tập mờ A là tập mờ với hàm thuộc được xác định bởi:

(x) = 1 - (x) (1)

Hợp

Hợp của tập mờ A và tập mờ B là tập mờ A B với hàm thuộc được xác định bởi:

(x) = max( (x), (x)) (2)

Giao

Giao của tập mờ A và tập mờ B là tập mờ A B với hàm thuộc được xác định bởi:

(x) = min( (x), (x)) (3)

Tích đề các

Giả sử , , ..., là các tập mờ trên các vũ trụ , , ..., tương ứng. Tích đề-các của , , ..., là tập mờ = ... trên không gian tích ... với hàm thuộc được xác định bởi:

( , , ..., ) = min( ( ), ( ), ..., ( ))

, , ..., (4)

Phép chiếu

Giả sử là tập mờ trên không gian tích . Hình chiếu của trên là tập mờ với hàm thuộc được xác định bởi:

(x) = (x, y) (5)

Định nghĩa trên có thể mở rộng cho trường hợp không gian tích n chiều

Mở rộng hình trụ

Giả sử là tập mờ trên vũ trụ . Mở rộng hình trụ của trên không gian tích là tập mờ với hàm thuộc được xác định bởi:

(x, y) = (x) (6)

Các phép toán mở rộng

Ngoài các phép toán chuẩn: phần bù, hợp, giao được đề cập ở trên còn có nhiều cách mở rộng phép toán trên tập mờ khác có tính tổng quát hóa cao hơn.

Phần bù mờ

Giả sử xét hàm C:[0,1] -> [0,1] cho bởi công thức C(a) = 1 - a, a [0,1]. Khi đó hàm thuộc của phần bù chuẩn trở thành (x) = C( (x)). Nếu tổng quát hoá tính chất của hàm C thì ta sẽ có tổng quát hoá định nghĩa của phần bù mờ. Từ đó ta có định nghĩa:

Phần bù mờ của tập mờ A là tập mờ với hàm thuộc được xác định bởi (x) = C( (x)), trong đó C là một hàm số thoả các điều kiện sau:

i. Tiên đề C1 (điều kiện biên): C(0) = 1, C(1) = 0

ii. Tiên đề C2 (đơn điệu giảm): a, b [0,1]. Nếu a < b thì C(a) C(b)

Hàm C thoả các điều kiện trên được gọi là hàm phần bù.

Ta thấy rằng hàm thuộc của phần bù chuẩn là một hàm đặc biệt trong họ các hàm phần bù.

Ví dụ:

Hàm phần bù Sugeno C(a) = trong đó là tham số thoả > -1. Hàm bù chuẩn là trường hợp đặc biệt của hàm Sugeno khi = 0.

Hàm phần bù Yager C(a) = trong đó w là tham số thoả w > 0. Hàm bù chuẩn là trường hợp đặc biệt của hàm Yager khi w = 1.

Hợp mờ - các phép toán S-norm

Phép toán max trong công thức hàm hợp mờ chuẩn có thể được tổng quát hoá thành các hàm S-norm:

Một hàm số S: [0,1]x[0,1] -> [0,1] được gọi là một S-norm nếu thoả các điều kiện sau:

i. Tiên đề S1 (điều kiện biên): S(0,a) = a, a [0,1]

ii. Tiên đề S2 (giao hoán): S(a,b) = S(b,a), a,b [0,1]

iii. Tiên đề S3 (kết hợp): S(S(a,b),c) = S(a,S(b,c)), a,b,c [0,1]

iv. Tiên đề S4 (đơn điệu tăng): Nếu a b và c d thì S(a,c) S(b,d), a,b,c,d [0,1]

S-norm còn được gọi là co-norm hoặc T-đối chuẩn.

Hợp của tập mờ A và tập mờ B là tập mờ A B với hàm thuộc được xác định bởi:

(x) = S( (x), (x))

trong đó S là một S-norm

Ngoài hàm max, ta có một số hàm S-norm quan trọng sau đây:

 Tổng Drastic :

 Tổng chặn:

 Tổng đại số:

 Phép hợp Yager:

Trong đó w là tham số thoả w > 0

Giao mờ - các phép toán T-norm

Ta có định nghĩa hàm T-norm là tổng quát hoá của hàm min:

Một hàm số T: [0,1]x[0,1] -> [0,1] được gọi là một T-norm nếu thoả các điều kiện:

i. Tiên đề T1 (điều kiện biên): T(1,a) = a, a [0,1]

ii. Tiên đề T2 (giao hoán): T(a,b) = T(b,a), a,b [0,1]

iii. Tiên đề T3 (kết hợp): T(T(a,b),c) = T(a,T(b,c)), a,b,c [0,1]

iv. Tiên đề T4 (đơn điệu tăng): Nếu a b và c d thì T(a,c) T(b,d), a,b,c,d [0,1]

T-norm còn được gọi là T-chuẩn hoặc chuẩn tam giác.

Giao của tập mờ A và tập mờ B là tập mờ A B với hàm thuộc được xác định như sau:

(x) = T( (x), (x))

Trong đó T là một T-norm.

Ngoài hàm min, ta có một số hàm T-norm quan trọng sau đây:

 Tích Drastic:

 Tích chặn:

 Tích đại số:

 Phép giao Yager:

Trong đó w là tham số thoả w>0

Định lý: Với mọi T-norm bất kỳ T và S-norm bất kỳ S ta có:

a b T(a,b) min(a,b) max(a,b) S(a,b) a b

Tích đề-các mờ

Tích đề-các của tập mờ , , ..., trên các vũ trụ , , ..., tương ứng là tập mờ = ... trên không gian tích ... với hàm thuộc được xác định như sau:

( , , ..., ) = (x) T (x) T ... T (x)

, , ...,

Trong đó T là một T-norm bất kỳ.

Ta thấy đây là định nghĩa mở rộng cho tích đề-các chuẩn khi thay thế hàm min bằng một T-norm bất kỳ.

Quan hệ mờ

Cho U và V là các vũ trụ. Khi đó một quan hệ mờ hai ngôi R giữa U và V là một tập mờ trong tích đề-các UxV. Như vậy ta có thể xác định hàm thuộc cho quan hệ mờ theo cách tính hàm thuộc cho tích đề-các mờ.

Khi U = V ta nói R là quan hệ trên U.

Tổng quát một quan hệ mờ R giữa các tập , , ..., là tập mờ = ... trên không gian tích ... . Trong đó , i = 1..n

Hợp của các quan hệ mờ

Hợp của quan hệ mờ R từ U đến V và quan hệ mờ Z từ V đến W là quan hệ mờ RoZ từ U đến W có hàm thuộc xác định bởi

(u,w) = T( (u,v), (v,w))

Trong T là một T-norm bất kỳ.

Các hàm thuộc quan trọng sau được dùng rộng rãi để xác định hợp của các quan hệ mờ :

 Hàm hợp max-min:

(u,w) = min( (u,v), (v,w))

 Hàm hợp max-tích (hay max-prod):

(u,w) = (u,v) . (v,w)

SỐ MỜ

Một lớp tập mờ quan trọng có nhiều ứng dụng thực tế là số mờ

Định nghĩa

Tập mờ M trên đương thẳng thực R là tập số mờ nếu:

a) M là chuẩn hoá, tức là có điểm x sao cho M(x) = 1

b) Ứng với mỗi a R, tập mức {x: M(x) } là đoạn đóng

Người ta thường dùng các số mờ tam giác, hình thang và dạng Gauss

Các phép toán

a) Cộng:

[a,b] + [d,e] = [a+d, b+e]

b) Trừ:

[a,b] - [d,e] = [a-e, b-d]

c) Nhân:

[a,b] * [d,e] = [min(ad,ae, bd, be), max(ad,ae, bd, be)]

d) Chia:

[a,b] / [d,e] = [min(a/d,a/e, b/d, b/e), max(a/d,a/e, b/d, b/e)]

Nguyên lý suy rộng của Zadeh

Để làm việc với các hệ thống có nhiều biến vào, nguyên lý suy rộng của Zadeh là rất quan trọng

Định nghĩa: Cho Ai là tập mờ với các hàm thuộc Ai trên không gian nền Xi, (i=1..n). Khi đó tích A1xA2x..An là tập mờ trên X=X1xX2x..Xn với hàm thuộc:

A(x)=min{ Ai(xi); i=1..n} Trong đó x=(x1,x2,..xn)

Giả sử mỗi biến đầu vào xi lấy giá trị là Ai(i=1..n). Hàm f:X->Y chuyển các giá trị đầu vào là Ai thành giá trị đầu ra B. Khi đó B là tập mờ trên Y với hàm thuộc xác định bởi:

B(x)=max{min( Ai(xi)); i=1..n : x f (y)} nếu f (y)

B(x)=0 nếu f (y) =

Trong đó f (y) = {x X : f(x)=y}

Ta có thể áp dụng nguyên lý suy rộng cho định nghĩa suy rộng của phép cộng như một hàm 2 biến mờ. Tương tự cho các phép toán trừ, nhân, chia.

Từ các phép toán cơ bản người ta xây dựng nên số học mờ. Có nhiều cách xây dựng một số học mờ. Sau đây là số học mờ dựa trên khái niêm -cuts (lát cắt alpha). -cuts của số mờ là khoảng đóng thực với mọi 0< <=1

Các tính chất số học mờ dựa trên khoảng đóng:

Gọi A=[a1,a2], B=[b1,b2], C=[c1, c2], O=[0,0], 1=[1,1] ta có:

1. A+B=B+A; A.B=B.A

2. (A+B)+C=A+(B+C); (A.B).C=A.(B.C)

3. A=O+A=A+O; A=1.A=A.1

4. A.(B+C) A.B+A.C

5. Nếu b.c >= 0 b B, c C thì A.(B.C)=A.B+A.C

6. O A-A; 1 A/A

7. Nếu A E và B F thì:

a. A+B E+F

b. A-B E-F

c. A.B E.F

d. A/B E/F

LOGIC MỜ

Biến ngôn ngữ

Ta xét một biến nhận giá trị trong một miền giá trị nào đó , chẳng hạn "nhiệt độ" có thể nhận giá trị số là 1 C, 2 C,... là các giá trị chính xác. Khi đó, với một giá trị cụ thể gán vào biến sẽ giúp chúng ta xác định được tính chất, quy mô của biến. Ngoài ra chúng ta còn biết được những thông tin khác liên quan đến biến đó. Ví dụ chúng ta hiểu là không nên chạm tay trần vào vật có "nhiệt độ" là 80 C trở lên. Nhưng trong thực tế thì chúng ta thường nói "không nên chạm vào vật có nhiệt độ cao" chứ ít khi nói "không nên chạm vào vật có nhiệt độ là 80 C trở lên". Thực tế là lời khuyên đầu thì có ích hơn bởi vì nếu nhận được lời khuyên sau thì ta dễ bị ngộ nhận là có thể chạm tay vào vật có nhiệt độ là 79 C trong khi đó vật có nhiệt độ 80 C trở lên thì không. Nhưng vấn đề đặt ra là nếu nghe theo lời khuyên đầu thì ta có thể xác định rõ là nhiệt độ bằng bao nhiêu thì có thể chạm tay vào? Câu trả lời là tuỳ vào ý kiến của từng người. Với nhiệt độ là 60 C thì có người cho là cao trong khi người khác thì không. Tuy các ý kiến là khác nhau nhưng có một điều chắc chắn là khi giá trị của biến nhiệt độ càng tăng thì càng dễ dàng được chấp nhận là "cao". Như vậy nếu xét hàm nhận biến nhiệt độ và trả về tỷ lệ ý kiến đồng ý là "cao" thì sẽ là hàm thuộc của tập mờ "nhiệt độ cao" trên vũ trụ "nhiệt độ"

Biến nhiệt độ có thể nhận giá trị "cao" là một giá trị của ngôn ngữ tự nhiên nên nó được gọi là một biến ngôn ngữ (linguistic variable)

Khái niệm biến ngôn ngữ đã được Zadeh đưa ra năm 1973 như sau:

 Một biến ngôn ngữ được xác định bởi bộ (x, T, U, M) trong đó:

 x là tên biến. Ví dụ "nhiệt độ", "tốc độ", "độ ẩm",...

 T là tập các từ là các giá trị ngôn ngữ tự nhiên mà x có thể nhận. Ví dụ x là "tốc độ" thì T có thể là {"chậm", "trung bình", "nhanh"}

 U là miền các giá trị vật lý mà x có thể nhận Ví dụ x là "tốc độ" thì U có thể là {0km/h,1km/h, ...150km/h}

 M là luật ngữ nghĩa, ứng mỗi từ trong T với một tập mờ At trong U

Từ định nghĩa trên chúng ta có thể nói rằng biến ngôn ngữ là biến có thể nhận giá trị là các tập mờ trên một vũ trụ nào đó.

Mệnh đề mờ

Trong logic cổ điển (logic vị từ cấp một), một mệnh đề phân tử P(x) là một phát biểu có dạng "x là P" trong đó x là một đối tượng trong một vũ trụ U nào đó thoả tính chất P. Ví dụ "x là số chẵn" thì U là tập các số nguyên và P là tính chất chia hết cho 2. Như vậy ta có thể đồng nhất một mệnh đề phân tử "x là P" với một tập (rõ) A = x U | P(x) .

Từ đó ta có:

P(x) = (x)

Trong đó là hàm đặc trưng của tập A ( x A  (x) = 1). Giá trị chân lý của P(x) chỉ nhận một trong hai giá trị 1 và 0 (true và false) tương ứng với sự kiện x thuộc A hoặc không

Trong trường hợp P là một tính chất mờ chẳng hạn như "số lớn" thì ta sẽ có một mệnh đề logic mờ phân tử. Khi đó tập hợp các phần tử trong vũ trụ U thoả P là một tập mờ B có hàm thuộc sao cho:

P(x) = (x)

Lúc này P(x) có thể nhận các giá trị tuỳ ý trong [0,1]. Và ta thấy có thể đồng nhất các hàm thuộc với các mệnh đề logic mờ.

Các phép toán mệnh đề mờ

Trong logic cổ điển, từ các mệnh đề phân tử và các phép toán (AND), (OR), (NOT) ta có thể lập nên các mệnh đề phức. Ta có:

P(x) = 1 - P(x)

P(x) Q(y) = min(P(x), Q(y))

P(x) Q(y)=max(P(x), Q(y))

P(x)=>Q(y) = P(x) Q(y) = max(1-P(x), Q(y))

P(x)=>Q(y) = P(x) (P(x) Q(y)) = max(1-P(x), min(P(x), Q(y)))

Như vậy, ta sẽ có mở rộng một cách tự nhiên từ logic cổ điển sang logic mờ với quy tắc tổng quát hoá dùng hàm bù mờ cho phép phủ định, hàm T-norm cho phép giao và S-norm cho phép hợp. Sự mở rộng này dựa trên sự tương quan giữa mệnh đề logic mờ với hàm mờ và các phép toán trên tập mờ. Ta có:

(x) = C( (x))

(x) (y) = T( (x), (y))

(x) (y) = S( (x), (y))

(x) => (y) = S(C( (x)), (y)) (1)

(x) => (y) = S( C( (x)), T( (x), (y)) ) (2)

Trong đó C là hàm bù mờ (hay phủ định mờ), T là hàm T-norm, S là hàm S-norm. Các hàm này đã trình bày trong phần phép toán trên tập mờ.

Phép toán kéo theo mờ - luật if-then mờ thông dụng

Các phép toán kéo theo có vai trò quan trọng trong logic mờ. Chúng tạo nên các luật mờ để thực hiện các phép suy diễn trong tất cả các hệ mờ. Do một mệnh đề mờ tương ứng với một tập mờ nên ta có thể dùng hàm thuộc thay cho các mệnh đề.

Sau đây là một số phép kéo theo quan trọng được sử dụng rộng rãi:

Phép kéo theo Dienes - Rescher

Nếu áp dụng công thức (1) với S-norm max và C là hàm bù chuẩn cho ta có phép kéo theo Dienes - Rescher

(x) => (y) = max(1- (x), (y))

Phép kéo theo Lukasiewicz

Nếu áp dụng công thức (1) với S-norm là hàm hợp Yager với w=1 và C là hàm bù chuẩn cho ta có phép kéo theo Lukasiewicz:

(x) => (y) = min(1, 1- (x)+ (y))

Phép kéo theo Zadeh

Nếu áp dụng công thức (2) với S-norm là max, T-norm min hoặc tích và C là hàm bù chuẩn cho ta có phép kéo theo Zadeh:

(x) => (y) = max( 1- (x), min( (x), (y))) (a)

(x) => (y) = max( 1- (x), (x). (y)) (b)

Kéo theo Mamdani

Ta có thể coi mệnh đề (x) => (y) xác định một quan hệ 2 ngôi R UxV. Trong đó U là không gian nền của x (vũ trụ chứa x), V là không gian nền của y (vũ trụ chứa y). Khi đó giá trị chân lý của mệnh đề (x) => (y) là giá trị hàm thuộc của cặp (x,y) vào R. Theo công thức xác định hàm thuộc của quan hệ mờ ta có

(x) => (y) = T( (x), (y))

Trong đó T là một T-norm. Khi chọn T là min hoặc tích ta có các phép kéo theo Mamdani:

(x) => (y) = min( (x), (y)) (a)

(x) => (y) = (x). (y) (b)

Luật modus-ponens tổng quát

Tương tự logic cổ điển, trong logic mờ cũng có luật modus-ponens như sau:

GT1 (luật) : if "x là A" then "y là B"

GT2 (sự kiện) : "x là A'"

--------------------------------------------------------

KL : "y là B'"

Trong đó A, B, A', B' là các biến ngôn ngữ (có nghĩa là các tập mờ).

Công thức tính kết luận của luật modus-ponens như sau:

(y) = T( (x,y), (x)) (*)

Trong đó T là một hàm T-norm và R là quan hệ hai ngôi xác định bởi phép kéo theo. Cách tính (x,y), chính là cách tính giá trị chân lý của phép kéo theo trình bày ở phần trước. Như vậy tuỳ theo cách chọn cách tính luật kéo theo khác nhau mà ta có cách tính kết quả của luật modus-ponens khác nhau.

Ví dụ: Giả sử quan hệ giữa nhiệt độ và áp suất cho bởi luật sau:

Nếu nhiệt độ là cao thì áp suất là lớn.

Nhiệt độ nhận các giá trị trong U = {30, 35, 40, 45}

Ap suất nhận các giá trị trong V = {50,55,60,65}

Ta có các tập mờ xác định bởi các biến ngôn ngữ nhiệt độ và áp suất như sau:

A = "nhiệt độ cao" =

B = "áp suất lớn" =

Áp dụng luật kéo theo Mamdani tích ta có quan hệ mờ sau (giá trị dòng i, cột j là giá trị hàm thuộc của cặp nhiệt độ i và áp suất j vào quan hệ)

R=

Bây giờ, giả sử ta biết sự kiện "nhiệt độ là trung bình" và

A' = "nhiệt độ trung bình" =

Áp dụng công thức (*) ta suy ra B' =

CHƯƠNG II. HỆ MỜ

KIẾN TRÚC CỦA HỆ MỜ TỔNG QUÁT

Một hệ mờ tiêu biểu có kiến trúc như hình vẽ

Thành phần trung tâm của hệ mờ là cơ sở luật mờ (fuzzy rule base). Cơ sở luật mờ bao gồm các luật mờ if-then biểu diễn tri thức của chuyên gia trong lĩnh vực nào đó. Trong trường hợp một hệ điều khiển mờ cụ thể thì cơ sở luật mờ chính là tri thức và kinh nghiệm của các chuyên gia trong việc điều khiển khi chưa áp dụng hệ mờ.

Thành phần quan trọng kế tiếp là bộ suy diễn mờ (fuzzy inference engine). Nhiệm vụ của bộ phận này là kết hợp các luật trong cơ sởluật mờ,áp dụng vào tập mờ đầu vào theo các phương pháp suy diễn mờ để xác định tập mờ đầu ra.

Dữ liệu đầu vào của hệ điều khiển mờ là các tín hiệu do các bộ phận cảm biến môi trường cung cấp sau khi đã số hoá nên có tính chất rõ (khái niệm rõ ở đây có nghĩa là các tín hiệu đó không phải là các tập mờ, chứ không có nghĩa là các tín hiệu không có nhiễu). Vì vậy cần phải có bộ mờ hoá (fuzzier) để chuyển các dữ liệu số đầu vào thành các tập mờ để bộ suy diễn mờ có thể thao tác được.

Dữ liệu đầu ra của bộ suy diễn mờ ở dạng các tập mờ sẽ được bộ giải mờ (defuzzier) chuyển thành tín hiệu số trước khi truyền đến các cơ quan chấp hành như tay máy, công tắc, van điều khiển,...

Do các dữ liệu đầu vào và đầu ra được số hoá nên ta chỉ cần xem xét các hệ mờ làm việc với các biến số. Trường hợp tổng quát, hệ mờ nhận một vector n chiều ở đầu vào và cho ra một vector m chiều ở đầu ra. Hệ mờ như thế được gọi là hệ mờ nhiều đầu vào - nhiều đầu ra (MIMO). Nếu m bằng 1, ta có hệ hệ mờ nhiều đầu vào - một đầu ra (MISO). Một hệ mờ nhiều đầu vào - nhiều đầu ra có thể phân tích thành nhiều hệ nhiều đầu vào - một đầu ra. Do đó ta chỉ cần tìm hiểu kỹ về hệ mờ nhiều đầu vào - một đầu ra với các biến số. Khi chỉ nói về hệ mờ nhiều - một thì ta sẽ ngầm hiểu là một hệ mờ nhiều đầu vào - một đầu ra với các biến số

Ký hiệu , trong đó là miền xác định của các biến vào i, i=1..n và V là miền giá trị của biến ra y, ta có mô hình hệ mờ nhiều đầu vào - một đầu ra như hình vẽ

Các mục kế tiếp sẽ mô tả kỹ hơn về các bộ phận chức năng của hệ mờ.

CƠ SỞ LUẬT MỜ

Cơ sở luật mờ của hệ mờ n đầu vào - một đầu ra gồm m luật if-then mờ có dạng:

If "x1 là Ak1" và "x2 là Ak2" và ... và "xn là Akn" then "y là Bk" , k=1..m (1)

Trong đó k là chỉ số của luật (luật thứ k trong tập luật), xi là các biến đầu vào, Aki là các tập mờ trên Ui (i=1..n), y là biến đầu ra và Bk là tập mờ trên V (k=1..m)

Các luật mờ dạng (1) được gọi là các luật if-then mờ chuẩn tắc. Các luật mờ không chuẩn tắc có thể biến đổi để đưa về dạng chuẩn tắc tương đương.

Có nhiều phương pháp để xác định các luật mờ để đưa vào cơ sở luật mờ. Các phương pháp thông dụng là nhờ các chuyên gia trong lĩnh vực áp dụng, hoặc từ quan sát, thực nghiệm thống kê để có được các tập dữ liệu mẫu đầu vào và ra tương ứng, từ đó dùng các kỹ thuật khai mỏ dữ liệu để rút ra các luật.

BỘ SUY DIỄN MỜ

Chúng ta sẽ nghiên cứu phương pháp thiết kế bộ suy diễn trong trường hợp cơ sở luật mờ gồm m luật if-then mờ chuẩn tắc, nhiều đầu vào và một đầu ra (MISO).

Các luật if-then có thể được áp dụng bằng các công thức tổng quát như đã trình bày trong chương logic mờ nhưng trong thực tế thì thường được tính bằng công thức Mamdani max-min hoặc max-tích (max-prod) . Chúng ta sẽ xem xét kỹ kiến trúc bộ suy diễn mờ sử dụng phương pháp suy diễn max-min. Khi chuyển qua phương pháp suy diễn max-tích thì chỉ cần thay min bằng phép nhân trong các công thức.

Cho A, A', B lần lượt là các tập mờ trên vũ trụ X, X, Y. Luật if A then B được thể hiện như một quan hệ mờ R=A B trên X Y. Khi đó tập mờ B' suy ra từ A' được xác định bởi:

(y) = max {min [ (x), (x,y)]} (*)

Trường hợp một đầu vào và một luật

Ta có (y) = {min [ (x), (x,y)]}

= {min [ (x), (x), (y)]}

= min { (min [ (x), (x)]), (y)}

= min { (x), (y)}

= min { h , (y)}

Trong đó h là độ cao của tập mờ A' A

Trường hợp hai đầu vào và một luật

Đây là trường hợp luật được phát biểu "Nếu x là A và y là B thì z là C".

Luật: Nếu x là A và y là B thì z là C

Sự kiện: x là A' và y là B'

-------------------------------

Kết luận: z là C'

Luật mờ với điều kiện có 2 mệnh đề như trên có thể biểu diễn ở dạng AxB => C. Suy luận tương tự trường hợp một đầu vào và một luật ta có:

(z) = min { h , (z)}

Mà A' x B' A x B = (A' A) x (B' B) nên h = min { , }

Vậy (z) = min { , , (z)}

Suy rộng ra cho trường hợp nhiều đầu vào Ai, i=1..n và một luật

Luật: Nếu x1 là A1 và x2 là A2 và... và xn là An thì z là C

Sự kiện: x1 là A1' và x2 là A2' và... và xn là An'

-------------------------------

Kết luận: z là C'

(z) = min { ( ), (z)}

Minh họa:

Trường hợp nhiều đầu vào và nhiều luật

Trong trường hợp nhiều đầu vào và nhiều luật, ta tính kết quả đầu ra cho từng luật sau đó kết quả của hệ sẽ là các phép giao hoặc hợp các kết quả riêng đó tùy theo bản chất của hệ là hội hay tuyển các luật.

Nếu trong một luật có dạng "Nếu x là A hoặc y là B thì z là C" ta tách thành 2 luật riêng biệt "Nếu x là A thì z là C" và "Nếu y là B thì z là C" để tính.

BỘ MỜ HOÁ

Mờ hoá là quá trình biến đổi một vector x=(x1,x2,...,xn) U thành một tập mờ A' trên U. A' sẽ là đầu vào cho bộ suy diễn mờ. Mờ hoá phải thoả các tiêu chuẩn sau:

 Điểm dữ liệu x phải có độ thuộc cao vào A'

 Vector x thu nhận từ môi trường ngoài có thể sai lệch do nhiễu nên A' phải phản ánh được tính gần đúng của dữ liệu thực

 Hiệu quả tính toán: đơn giản cho các tính toán trong bộ suy diễn.

Sau đây là một số phương pháp mờ hoá thông dụng

Mờ hoá đơn trị

Mỗi điểm dữ liệu x được xem như một tập mờ đơn trị tức là tập mờ A có hàm thuộc xác định như sau:

(u)=

Mờ hoá Gaus

Mỗi giá trị xi được biểu diễn thành một số mờ A'i. Tập A' là tích đề-các của các A'i

( ) =

Mờ hoá tam giác

Mỗi giá trị xi được biểu diễn thành một số mờ A'i. Tập A' là tích đề-các của các A'i

( ) =

BỘ GIẢI MỜ

Giải mờ (hay còn gọi là khử mờ) là quá trình xác định một điểm y từ một tập mờ trên B' trên V. (B' là đầu ra của bộ suy diễn mờ ). Giải mờ phải thoả các tiêu chuẩn sau:

 Điểm y là đại diện tốt nhất cho B'. Trực quan y là điểm có độ thuộc cao nhất vào B' và ở trung tâm tập giá đỡ của B'.

 Hiệu quả tính toán nhanh

 Tính liên tục. Khi B' thay đổi ít thì y cũng thay đổi ít

Sau đây là một số phương pháp giải mờ thông dụng

Phương pháp lấy max

Phương pháp này chọn y là điểm có độ thuộc cao nhất vào B'

Xác định tập rõ H=

Sau đó có thể chọn y trong H như sau:

 y bất kỳ

 y là điểm cực biên (lớn nhất hoặc nhỏ nhất)

 y là trung điểm của H

Phương pháp lấy trọng tâm

Phương pháp này chọn y là điểm trọng tâm của tập B'

y =

Phương pháp lấy trung bình tâm

Vì B' thường là hợp hoặc giao của m tập mờ thành phần do vậy ta có thể tính gần đúng giá trị y là bình quân có trọng số của tâm m tập mờ thành phần. Giả sử x và h là tâm và độ cao của tập mờ thành phần B' ta có:

y =

Phương pháp này được ứng dụng nhiều nhất vì kết quả đầu ra y có xét đến ảnh hưởng của tất cả các luật tương tự như phương pháp trọng tâm nhưng độ phức tạp tính toán ít hơn.

HỆ MỜ LÀ MỘT HỆ XẤP XỈ VẠN NĂNG

Các hệ mờ đã được ứng dụng thành công trong rất nhiều lĩnh vực, đặc biệt là trong điều khiển các quá trình công nghiệp và trong hệ chuyên gia. Một câu hỏi đặt ra là tại sao hệ mờ lại có phạm vi ứng dụng rộng lớn và hiệu quả như thế? Một cách trực quan chúng ta có thể giải thích rằng đó là vì các hệ mờ có thể sử dụng tri thức của các chuyên gia được phát biểu trong ngôn ngữ tự nhiên nên có bản chất mờ. Lý do nữa là vì các số liệu thu nhận được từ môi trường là xấp xỉ, không chính xác nên cũng có bản chất mờ.

Về mặt lý thuyết, định lý quan trọng sau đây đã được chứng minh, đó là nền tảng vững chắc cho hệ mờ nhiều đầu vào - một đầu ra (MISO). Mà hệ mờ nhiều đầu vào - một đầu ra có thể coi như đơn vị cấu thành của hệ mờ nhiều đầu vào - nhiều đầu ra (MIMO).

Một hệ mờ nhiều đầu vào - một đầu ra xác định một hàm thực n biến y = F(x), ứng với mỗi vector đầu vào với giá trị đầu ra . Ta gọi là F là số hàm đặc trưng của hệ mờ này.

Định lý: Giả sử U là tập compact trong , , f là hàm f: U -> V. Nếu f liên tục thì tồn tại một hệ mờ sao cho hàm F đặc trưng của nó xấp xỉ f với độ chính xác tuỳ ý cho trước. Tức là

Chứng minh định lý trên có thể tham khảo trong các sách sau:

 Lee C. S. G. and Lin C. T., Neural Fuzzy Systems, A neuro - Fuzzy Synergism to Intelligent System, Prentice - Hall, 1996

 Wang L. X. A course in Fuzzy Systems and Control, Prentice - Hall, 1997

SO SÁNH HỆ MỜ VỚI MẠNG NƠRON

Hệ mờ và mạng nơron (neural network) đều là các hệ xấp xỉ vạn năng và đều là những hệ mô phỏng hoạt động của não người. Nhưng trong khi mạng nơron mô phỏng kiến trúc sinh lý của não thì hệ mờ lại mô phỏng cơ chế tâm lý của não. Cụ thể hơn, mạng nơron mô phỏng các tế bào thần kinh và mạng lưới cộng tác giữa chúng. Trong khi đó hệ mờ lại mô phỏng cơ chế suy luận xấp xỉ, áng chừng của não dựa vào các luật mờ nếu-thì. Điều thú vị là cả hai cách tiếp cận này đều thu được những kết quả to lớn và chúng bổ trợ cho nhau, giúp xây dựng những hệ thống thông minh có kiến trúc lai phức tạp ngày càng mạnh.

Hình vẽ dưới đây tóm lược sự so sánh giữa mạng nơron và hệ mờ

GIỚI THIỆU MỘT SỐ HỆ MỜ TRONG THỰC TẾ

Ứng dụng của logic mờ trong thực tế rất phong phú và đa dạng. Chúng ta có thể phân chia các ứng dụng thành các dạng chính sau đây:

1. Các hệ điều khiển

2. Các hệ chuyên gia

3. Các hệ nhận dạng

4. Các hệ mô phỏng, giả lập

5. Các hệ chẩn đoán trong y tế (là một dạng hệ chuyên gia đặc biệt)

Sau đây là một số hệ thống ứng dụng logic mờ thành công trên thế giới và trong nước:

ABVB

Là hệ chuyên gia chẩn đoán phụ khoa. Suy diễn dựa trên logic mờ và dữ liệu được biểu diễn là các số mờ và biến ngôn ngữ

CADIAG-2

Là hệ chuyên gia chẩn đoán y khoa tổng quát. Kết hợp thống kê dữ liệu và logic mờ.

CLINAID

Là hệ cơ sở tri thức cho chẩn đoán và đơn thuốc. Hệ dùng luật xấp xỉ kết hợp lý thuyết tập mờ

DIABETO-III

Là hệ chuyên gia chẩn đoán và điều trị bệnh tiểu đường.

MILORD

Là hệ chuyên gia chẩn đoán y khoa tổng quát. Hệ cho phép biểu diễn tri thức không chắc chắn định nghĩa bởi chuyên gia.

NEUMONIA

Là hệ chuyên gia chẩn đoán và điều trị bệnh viêm phổi. Hệ này là ứng dụng cụ thể của MILORD

CHƯƠNG III. PHƯƠNG PHÁP THIẾT KẾ HỆ ĐIỀU KHIỂN MỜ TỪ TẬP DỮ LIỆU VÀO VÀ RA

ĐẶT VẤN ĐỀ

Một hệ thống điều kiện mờ có mục đích mô phỏng suy nghĩ của con người khi điều khiển một đối tượng nào đó. Nhìn chung, hiểu biết của con người gồm 2 loại: hiểu biết rõ (conscious knowledge) và hiểu biết chưa rõ (subconscious knowledge). Hiểu biết rõ là hiểu biết có thể diễn đạt bằng ngôn ngữ, công thức, thuật toán,... Đó chính là tri giác. Còn hiểu biết chưa rõ là hiểu biết mà con người biết cách áp dụng, thực hiện đúng nhưng không diễn đạt chính xác được. Chẳng hạn kiến thức xử lý bóng của một cầu thủ giỏi. Anh ta hầu như không thể giải thích được là với một đường bóng khó, làm thế nào để đưa bóng vào lưới mặc dù đó là điều mà anh ta thực hiện thường xuyên. Hiểu biết chưa rõ thường được tích lũy từ kinh nghiệm và bản chất là cảm giác. Để đưa được kiến thức hiểu biết chưa rõ vào hệ điều khiển mờ thì ta cần phải lượng hóa các điều kiện đầu vào và đầu ra tạo thành các tập dữ liệu vào-ra. Sau đó thiết kế hệ thống dựa trên cơ sở tập dữ liệu đó. Đây cũng là một trong những phương pháp thu nhận tri thức từ dữ liệu thô.

Có nhiều phương pháp xác định hệ điều kiện mờ từ tập dữ liệu vào-ra nhưng chúng ta chỉ tìm hiểu phương pháp lập bảng dữ liệu vào

THIẾT KẾ HỆ ĐIỀU KIỆN MỜ BẰNG BẢNG DỮ LIỆU VÀO

Giả sử ta có tập các cặp dữ liệu vào-ra (xi, yi) i=1..N.

Trong đó xi [a1, b1] x ... x [ak, bk] và yi [c1,c2] R

Các bước để xây dựng một hệ điều kiện mờ như sau:

Bước 1: Xác định tất cả các biến vào và ra

Bước 2: Xác định miền giá trị biến vào và ra và các hàm thuộc của chúng

- Phân chia miền giá trị của các biến sao cho có ý nghĩa và phù hợp thực tế. Mỗi miền sẽ được đại diện bởi một tập mờ.

- Với mỗi tập mờ ở trên, xác định hàm thuộc của chúng. Các hàm dạng tam giác và hình thang thường được chọn

Bước 3: Xác định các luật mờ

- Xét từng cặp dữ liệu vào-ra để tạo ra từng luật riêng biệt. Với mỗi cặp dữ liệu vào-ra (x,y) ta cho rằng có một luật A=>B nếu (x) là giá trị lớn nhất trong các giá trị hàm thuộc của các tập mờ đầu vào đối với x và (y) là giá trị lớn nhất trong các giá trị hàm thuộc của các tập mờ đầu ra đối với y.

- Xác định trọng số của từng luật. Nếu có 2 luật mâu thuẫn thì chọn luật có trọng số cao hơn

- Các luật đã chọn được đưa vào bảng luật. Ví dụ: bảng luật của một hệ điều kiện máy bơm nước

H.Đầy H.Lưng H.Cạn

N.Cao 0 B.Vừa B.Lâu

N.Vừa 0 B.Vừa B.HơiLâu

N.Ít 0 0 0

Bước 4: Chọn phương pháp suy diễn

Để tính hàm thuộc đầu ra thì có nhiều phương pháp như đã trình bày ở chương logic mờ, nhưng vì lý do dễ cài đặt và tốc độ tính toán nhanh nên phương pháp max-min, max-prod, sum-min, sum-prod thường được chọn.

Bước 5: Chọn phương pháp giải mờ

Phương pháp trọng tâm hoặc trung bình tâm thường được chọn vì lý do dễ cài đặt và tốc độ tính toán nhanh.

Bước 6: Tối ưu hóa hệ luật và thử nghiệm mô hình

Hệ thống được cho chạy thử và so sánh với các kết quả có được bởi chuyên gia. Nếu kết quả chưa phù hợp thì cần hiệu chỉnh các hàm thuộc và các luật cũng như phương pháp suy diễn và giải mờ

CHƯƠNG IV. MINH HOẠ HỆ MỜ: HỆ ĐIỀU KHIỂN MÁY BƠM NƯỚC TỰ ĐỘNG

Để minh họa cho lý thuyết logic mờ và hệ điều kiện mờ, chúng ta sẽ cùng xem xét một hệ điều khiển mờ để điều khiển máy bơm nước tự động. Đây là ví dụ minh họa hệ thống mờ trong Giáo trình "Công nghệ tri thức và ứng dụng" của GS.TSKH Hoàng Kiếm.

Vấn đề: Điều khiển máy bơm tự động bơm nước từ giếng vào hồ. Thời gian bơm sẽ được hệ thống tự động tính toán căn cứ trên mực nước của giếng và hồ. Mô hình bài toán như hình vẽ:

Bước 1: Xác định biến ngôn ngữ

Với biến ngôn ngữ Hồ (mực nước hồ) có các tập mờ hồ đầy (H.Đầy), hồ lưng (H.Lưng) và hồ cạn (H.Cạn)

Với biến ngôn ngữ Giếng (mực nước giếng) có các tập mờ nước cao (N.Cao), nước vừa (N.Vừa) và nước ít (N.Ít)

Với biến ngôn ngữ Bơm (thời gian bơm) có các tập mờ bơm lâu (B.Lâu), bơm hơi lâu (B.Hơi Lâu) và bơm vừa (B.Vừa)

Bảng quan hệ giữa các biến ngôn ngữ:

H.Đầy H.Lưng H.Cạn

N.Cao 0 B.Vừa B.Lâu

N.Vừa 0 B.Vừa B.HơiLâu

N.Ít 0 0 0

Bước 2: Xác định hàm thuộc của các biến ngôn ngữ

Hàm thuộc của Hồ nước:

H.Đầy(x) = x/2 0 <= x <= 2

H.Lưng(x) =

H.Cạn(x) = 1- x/2 0 <= x <= 2

Hàm thuộc của Giếng:

N.Cao(y) = y/10 0 <= y <= 10

N.Vừa(y) =

N.Ít(y) = 1- y/10 0 <= y <= 10

Hàm thuộc của kết luận (Bơm) cho từng luật:

B.Vừa(z) =

B.Lâu(z) = z/30 0 <= z <= 30

B.HơiLâu(z) =

Trong đó:

x là mực nước hồ (m) (0 <= x <= 2)

y là mực nước giếng (m) (0 <= y <= 10)

z là thời gian bơm (phút) (0 <= z <= 30)

Bước 3: Xác định các luật mờ

 Luật 1 (r1): if x is H.Lưng and y is N.Cao then z is B.Vừa

 Luật 2 (r3): if x is H.Cạn and y is N.Cao then z is B.Lâu

 Luật 3 (r3): if x is H.Lưng and y is N.Vừa then z is B.Vừa

 Luật 4 (r4): if x is H.Cạn and y is N.Vừa then z is B.HơiLâu

Bước 4: Chọn phương pháp suy diễn mờ và giải mờ

Với một cặp giá trị đầu vào (x,y) ta tính trọng số của từng luật đối với (x,y). Trọng số của luật r chính là độ thuộc của giá trị đầu vào (x,y) đối với giả thiết của r. Từ đó ta tính được giá trị đầu ra cho bởi r. Giá trị đầu ra của hệ là tổng hợp của đầu ra của tất cả các luật trong hệ. Đó chính là tập mờ đầu ra. Giải mờ ta có giá trị rõ đầu ra và đó là giá trị tín hiệu điều khiển của hệ mờ.

Ví dụ giá trị đầu vào là x=1 (mực nước hồ) và y=3 (mực nước giếng)

Tính các trọng số của các luật: ký hiệu wi là trọng số của luật ri

H.Lưng(x) = 1 và N.Cao(y) = 3/10 = 0.3 => w1 = min(1, 0.3) = 0.3

H.Cạn(x) = 0.5 và N.Cao(y) = 3/10 = 0.3 => w2 = min(0.5, 0.3) = 0.3

H.Lưng(x) = 1 và N.Vừa(y) = 3/5 = 0.6 => w3 = min(1, 0.6) = 0.6

H.Cạn(x) = 0.5 và N.Vừa(y) = 3/5 = 0.6 => w4 = min(0.5, 0.6) = 0.5

Hàm thuộc của kết luận:

(z) =

= w1.B.Vừa(z) + w2.B.Lâu(z) + w3.B.Vừa(z)+ w4.B.HơiLâu(z)

= 0.3.B.Vừa(z) + 0.3.B.Lâu(z) + 0.6.B.Vừa(z)+ 0.5.B.HơiLâu(z)

= 0.9.B.Vừa(z) + 0.3.B.Lâu(z) + 0.5.B.HơiLâu(z)

=

=

Giải mờ:

F =

=

F =

= + +

= + +

= 450.833

= + +

= + +

= 26.75

Vậy deffuzzy(z) = 450.833 / 26.75 = 16.8536

Vậy với mực nước trong hồ là 1m và giếng là 3m thì cần bơm 16.845=16 phút 51 giây

CHƯƠNG TRÌNH MINH HOẠ HỆ MỜ ĐIỀU KHIỂN MÁY GIẶT

Chương trình này mô phỏng hệ mờ điều khiển máy giặt theo các luật cơ bản sau:

a) Quần áo càng nhiều thì càng cần nhiều bột giặt và máy chạy càng lâu

b) Quần áo càng bẩn thì càng cần nhiều bột giặt và máy chạy càng lâu

Mô hình hoá bài toán theo các yếu tố dưới đây:

Các biến ngôn ngữ

Có 4 biến ngôn ngữ:

1. khối lượng quần áo

2. độ bẩn

3. thời gian chạy máy

4. khối lượng bột giặt

Các giá trị ngôn ngữ

1. khối lượng quần áo 0-6kg (ít, vừa, khá nhiều, nhiều)

2. độ bẩn 0-1 (ít, vừa, khá nhiều, nhiều)

3. thời gian chạy máy 0-120' (ít, vừa, khá lâu, lâu)

4. khối lượng bột giặt 0-1kg (ít, vừa, khá nhiều, nhiều)

Các luật mờ

Để biểu diễn luật dạng "If A and B then C and D" ta tách thành 2 luật là

"If A and B then C" và "If A and B then D" theo nguyên lý phân rã hệ MIMO thành MISO

Biểu diễn các luât trong file dữ liệu theo quy ước giá trị ngôn ngữ cuối cùng chính là kết luận của luật:

# Fuzzy washer rule base

rule_1=klqa_it; doban_it; tgcm_it

rule_2=klqa_it; doban_it; botgiat_it

rule_3=klqa_it; doban_vua; tgcm_it

rule_4=klqa_it; doban_vua; botgiat_it

rule_5=klqa_it; doban_nhieu; tgcm_vua

rule_6=klqa_it; doban_nhieu; botgiat_vua

rule_7=klqa_vua; doban_it; tgcm_it

rule_8=klqa_vua; doban_it; botgiat_it

rule_9=klqa_vua; doban_vua; tgcm_vua

rule_10=klqa_vua; doban_vua; botgiat_vua

rule_11=klqa_vua; doban_nhieu; tgcm_lau

rule_12=klqa_vua; doban_nhieu; botgiat_nhieu

rule_13=klqa_nhieu; doban_it; tgcm_vua

rule_14=klqa_nhieu; doban_it; botgiat_vua

rule_15=klqa_nhieu; doban_vua; tgcm_lau

rule_16=klqa_nhieu; doban_vua; botgiat_nhieu

rule_17=klqa_nhieu; doban_nhieu; tgcm_lau

rule_18=klqa_nhieu; doban_nhieu; botgiat_nhieu

Hướng dẫn sử dụng chương trình

Chương trình viết bằng Java 1.4

Để chạy chương trình, cần thực hiện các bước sau:

a) copy toàn bộ thư mục MathInIT trong CD vào đĩa cứng, giả sử là thư mục C:\MathInIT

b) nhắp đúp file C:\MathInIT\run.bat để khởi động chương trình. Ta sẽ thấy màn hình chính xuất hiện như sau:

c) chọn menu File/Open hoặc kích nút Open để chọn file dữ liệu mô hình máy giặt (file chứa khai báo các biến ngôn ngữ và các luật mờ)

d) Chọn tab Input để nhập giá trị các biến vào (khối lượng quần áo và độ bẩn) sau đó nhấn nút "Compute" để tính giá trị đầu ra

e) Chọn tab Solve để xem lời giải

f) Chọn tab Graph để xem biểu đồ của các hàm thuộc của các biến ngôn ngữ đã được khai báo trong file mô hình

Kết quả chạy chương trình

Dưới đây là kết quả chạy file FuzzyWasher1.fw

**********************************************

Linguistic variables:

------------------------------

Linguistic Variable: klqa

Fuzzy set: klqa_it

Membership function:

1.0 - 0.33333(x) if 0.0 <= x <= 3.0

0.0 if 3.0 <= x <= 6.0

Fuzzy set: klqa_vua

Membership function:

0.33333(x) if 0.0 <= x <= 3.0

2.0 - 0.33333(x) if 3.0 <= x <= 6.0

Fuzzy set: klqa_nhieu

Membership function:

0.0 if 0.0 <= x <= 3.0

-1.0 + 0.33333(x) if 3.0 <= x <= 6.0

------------------------------

Linguistic Variable: doban

Fuzzy set: doban_it

Membership function:

1.0 - 2.0(y) if 0.0 <= y <= 0.5

0.0 if 0.5 <= y <= 1.0

Fuzzy set: doban_vua

Membership function:

2.0(y) if 0.0 <= y <= 0.5

2.0 - 2.0(y) if 0.5 <= y <= 1.0

Fuzzy set: doban_nhieu

Membership function:

0.0 if 0.0 <= y <= 0.5

-1.0 + 2.0(y) if 0.5 <= y <= 1.0

------------------------------

Linguistic Variable: tgcm

Fuzzy set: tgcm_it

Membership function:

1.0 - 0.025(z) if 0.0 <= z <= 40.0

0.0 if 40.0 <= z <= 120.0

Fuzzy set: tgcm_vua

Membership function:

0.025(z) if 0.0 <= z <= 40.0

1.5 - 0.0125(z) if 40.0 <= z <= 120.0

Fuzzy set: tgcm_lau

Membership function:

0.0 if 0.0 <= z <= 40.0

-0.5 + 0.0125(z) if 40.0 <= z <= 120.0

------------------------------

Linguistic Variable: botgiat

Fuzzy set: botgiat_it

Membership function:

1.0 - 0.01(t) if 0.0 <= t <= 100.0

0.0 if 100.0 <= t <= 200.0

Fuzzy set: botgiat_vua

Membership function:

0.01(t) if 0.0 <= t <= 100.0

2.0 - 0.01(t) if 100.0 <= t <= 200.0

Fuzzy set: botgiat_nhieu

Membership function:

0.0 if 0.0 <= t <= 100.0

-1.0 + 0.01(t) if 100.0 <= t <= 200.0

**********************************************

Computing tgcm...

Fuzzy rule base:

Fuzzy rule: rule_1

IF klqa_it AND klqa_it THEN tgcm_it

Fuzzy rule: rule_3

IF klqa_it AND klqa_it THEN tgcm_vua

Fuzzy rule: rule_5

IF klqa_it AND klqa_it THEN tgcm_vua

Fuzzy rule: rule_7

IF klqa_vua AND klqa_vua THEN tgcm_vua

Fuzzy rule: rule_9

IF klqa_vua AND klqa_vua THEN tgcm_vua

Fuzzy rule: rule_11

IF klqa_vua AND klqa_vua THEN tgcm_lau

Fuzzy rule: rule_13

IF klqa_nhieu AND klqa_nhieu THEN tgcm_vua

Fuzzy rule: rule_15

IF klqa_nhieu AND klqa_nhieu THEN tgcm_lau

Fuzzy rule: rule_17

IF klqa_nhieu AND klqa_nhieu THEN tgcm_lau

**********************************************

Input values:

klqa = 1.3

doban = 0.4

**********************************************

Weight of rules:

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_it = 0.19999999999999996

Min(0.5666709999999999, 0.19999999999999996) = 0.19999999999999996

Weight of rule rule_1 = 0.19999999999999996

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_vua = 0.8

Min(0.5666709999999999, 0.8) = 0.5666709999999999

Weight of rule rule_3 = 0.5666709999999999

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_nhieu = 0.0

Min(0.5666709999999999, 0.0) = 0.0

Weight of rule rule_5 = 0.0

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_it = 0.19999999999999996

Min(0.433329, 0.19999999999999996) = 0.19999999999999996

Weight of rule rule_7 = 0.19999999999999996

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_vua = 0.8

Min(0.433329, 0.8) = 0.433329

Weight of rule rule_9 = 0.433329

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_nhieu = 0.0

Min(0.433329, 0.0) = 0.0

Weight of rule rule_11 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_it = 0.19999999999999996

Min(0.0, 0.19999999999999996) = 0.0

Weight of rule rule_13 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_vua = 0.8

Min(0.0, 0.8) = 0.0

Weight of rule rule_15 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_nhieu = 0.0

Min(0.0, 0.0) = 0.0

Weight of rule rule_17 = 0.0

**********************************************

Membership function of the output MC(z):

MC(z) =

0.19999999999999996 + 0.025(z) if 0.0 <= z <= 40.0

1.7999999999999998 - 0.015(z) if 40.0 <= z <= 120.0

Primitive function of MC(z):

F MC(z) =

0.19999999999999996(z) + 0.0125(z)^2 if 0.0 <= z <= 40.0

1.7999999999999998(z) - 0.0075(z)^2 if 40.0 <= z <= 120.0

Integral of MC(z) in domain [0.0, 120.0]:

S(MC(z)) = F MC(z) [0.0, 120.0] = 75.99999999999997

Compute z*MC(z):

z*MC(z) =

0.19999999999999996(z) + 0.025(z)^2 if 0.0 <= z <= 40.0

1.7999999999999998(z) - 0.015(z)^2 if 40.0 <= z <= 120.0

Primitive function of z*MC(z):

F z*MC(z) =

0.09999999999999998(z)^2 + 0.008333333333333333(z)^3 if 0.0 <= z <= 40.0

0.8999999999999999(z)^2 - 0.0050(z)^3 if 40.0 <= z <= 120.0

Integral of z*MC(z) in domain [0.0, 120.0]:

S(z*MC(z)) = F z*MC(z) [0.0, 120.0] = 3893.3333333333317

Defuzzy(z) = S(z*MC(z))/S(MC(z)) = 3893.3333333333317/75.99999999999997 = 51.228070175438596

------------------------------

Output:

tgcm = 51.228070175438596

**********************************************

**********************************************

Computing botgiat...

Fuzzy rule base:

Fuzzy rule: rule_2

IF klqa_it AND klqa_it THEN botgiat_it

Fuzzy rule: rule_4

IF klqa_it AND klqa_it THEN botgiat_vua

Fuzzy rule: rule_6

IF klqa_it AND klqa_it THEN botgiat_vua

Fuzzy rule: rule_8

IF klqa_vua AND klqa_vua THEN botgiat_vua

Fuzzy rule: rule_10

IF klqa_vua AND klqa_vua THEN botgiat_vua

Fuzzy rule: rule_12

IF klqa_vua AND klqa_vua THEN botgiat_nhieu

Fuzzy rule: rule_14

IF klqa_nhieu AND klqa_nhieu THEN botgiat_vua

Fuzzy rule: rule_16

IF klqa_nhieu AND klqa_nhieu THEN botgiat_nhieu

Fuzzy rule: rule_18

IF klqa_nhieu AND klqa_nhieu THEN botgiat_nhieu

**********************************************

Input values:

klqa = 1.3

doban = 0.4

**********************************************

Weight of rules:

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_it = 0.19999999999999996

Min(0.5666709999999999, 0.19999999999999996) = 0.19999999999999996

Weight of rule rule_2 = 0.19999999999999996

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_vua = 0.8

Min(0.5666709999999999, 0.8) = 0.5666709999999999

Weight of rule rule_4 = 0.5666709999999999

------------------------------

Membership value of klqa_it = 0.5666709999999999

Membership value of doban_nhieu = 0.0

Min(0.5666709999999999, 0.0) = 0.0

Weight of rule rule_6 = 0.0

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_it = 0.19999999999999996

Min(0.433329, 0.19999999999999996) = 0.19999999999999996

Weight of rule rule_8 = 0.19999999999999996

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_vua = 0.8

Min(0.433329, 0.8) = 0.433329

Weight of rule rule_10 = 0.433329

------------------------------

Membership value of klqa_vua = 0.433329

Membership value of doban_nhieu = 0.0

Min(0.433329, 0.0) = 0.0

Weight of rule rule_12 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_it = 0.19999999999999996

Min(0.0, 0.19999999999999996) = 0.0

Weight of rule rule_14 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_vua = 0.8

Min(0.0, 0.8) = 0.0

Weight of rule rule_16 = 0.0

------------------------------

Membership value of klqa_nhieu = 0.0

Membership value of doban_nhieu = 0.0

Min(0.0, 0.0) = 0.0

Weight of rule rule_18 = 0.0

**********************************************

Membership function of the output MC(t):

MC(t) =

0.19999999999999996 + 0.009999999999999998(t) if 0.0 <= t <= 100.0

2.4 - 0.011999999999999999(t) if 100.0 <= t <= 200.0

Primitive function of MC(t):

F MC(t) =

0.19999999999999996(t) + 0.004999999999999999(t)^2 if 0.0 <= t <= 100.0

2.4(t) - 0.005999999999999999(t)^2 if 100.0 <= t <= 200.0

Integral of MC(t) in domain [0.0, 200.0]:

S(MC(t)) = F MC(t) [0.0, 200.0] = 130.0

Compute t*MC(t):

t*MC(t) =

0.19999999999999996(t) + 0.009999999999999998(t)^2 if 0.0 <= t <= 100.0

2.4(t) - 0.011999999999999999(t)^2 if 100.0 <= t <= 200.0

Primitive function of t*MC(t):

F t*MC(t) =

0.09999999999999998(t)^2 + 0.0033333333333333327(t)^3 if 0.0 <= t <= 100.0

1.2(t)^2 - 0.003999999999999999(t)^3 if 100.0 <= t <= 200.0

Integral of t*MC(t) in domain [0.0, 200.0]:

S(t*MC(t)) = F t*MC(t) [0.0, 200.0] = 12333.33333333334

Defuzzy(t) = S(t*MC(t))/S(MC(t)) = 12333.33333333334/130.0 = 94.87179487179492

------------------------------

Output:

botgiat = 94.87179487179492

**********************************************

**********************************************

CONCLUSION:

If the input values are:

klqa = 1.3 kg

doban = 0.4

then the output values are:

tgcm = 51.23 '

botgiat = 94.87 g

Thuật ngữ

approximate reasoning suy luận xấp xỉ

center of gravity trọng tâm

Confidence độ tin cậy

Conjuntive phép hội

Core nhân của tập mờ, là tập rõ gồm các

phần tử có giá trị hàm thuộc = 1

crisp set tập rõ

defineable set tập có thể xác định

Defuzzier bộ giải mờ

Disjunctive phép tuyển

elementary set tập cơ bản, tập cơ sở, vũ trụ trong đó tập mờ được định nghĩa

Fuzzier bộ mờ hoá

fuzzy inference engine bộ suy diễn mờ

fuzzy logic logic mờ

fuzzy rule base cơ sở luật mờ

fuzzy set tập mờ

max-min phương pháp tính luật modus-ponens mờ dùng

T-norm min và S-norm max

max-prod phương pháp tính luật modus-ponens mờ dùng

T-norm tích và S-norm max

membership function hàm thuộc, hàm thành viên

MIMO(Multi Input Multi Output) hệ mờ nhiều đầu vào và nhiều đầu ra

MISO(Multi Input Single Output) hệ mờ nhiều đầu vào và một đầu ra

precise set tập chính xác

product fuzzy conjunction giao mờ tích

rule aggregation kết hợp luật

SISO(Single Input Single Output) hệ mờ một đầu vào và một đầu ra

S-norm S-chuẩn hay T-đối chuẩn, là hàm tổng quát

hóa từ hàm max

Support giá của tập mờ, là tập rõ gồm các phần tử

có giá trị hàm thuộc > 0

T-norm T-chuẩn, là hàm tổng quát hóa từ hàm min

weighted sum tổng có trọng số

Tài liệu tham khảo

[1] GS, TSKH. Hoàng Kiếm, giáo trình Phương pháp toán trong tin học, ĐHQG Tp. HCM 2005

[2] GS, TSKH. Hoàng Kiếm, giáo trình Công nghệ tri thức và ứng dụng, ĐHQG Tp. HCM 2004

[1] PGS, TS. Nguyễn Trọng Thuần, Điều khiển logic & ứng dụng, Tập 1, NXB Khoa Học và Kỹ Thuật, 2000

[2] Nguyễn Hoàng Phương, Nadipuram R. Prasad, Lê Linh Phong, Nhập môn trí tuệ tính toán, NXB Khoa Học và Kỹ Thuật, 2002

[3] Nguyễn Hoàng Phương, Bùi Công Cường, Nguyễn Doãn Phước, Phan Xuân Minh, Chu Văn Hỷ, Hệ mờ và ứng dụng, NXB Khoa Học và Kỹ Thuật, 1998

[4] Bùi Công Cường, Nguyễn Doãn Phước, Hệ mờ, mạng nơron và ứng dụng, NXB Khoa Học và Kỹ Thuật, 2001

[5] TS. Đinh Mạnh Tường, Trí tuệ nhân tạo, NXB Khoa Học và Kỹ Thuật, 2002

[6] Đỗ Trung Tuấn, Hệ chuyên gia, NXB Giáo Dục, 1999

Bạn đang đọc truyện trên: Truyen2U.Pro

#hoangnam