Vậy trong khuôn khổ khóa luận thạc sĩ, học viên chọn đề tài: Thiết kế và cài đặt lớp tập mờ và ứng dụng trong các hệ thống mờ Đối tượng và phạm vi nghiên cứu Luận văn tập trung vào hai n
Trang 1ĐẠI HỌC THÁI NGUY ÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC THẠC SĨ THI T K VÀ CÀI Đ T L P T P M Ế Ế Ặ Ớ Ậ Ờ
VÀ NG D NG TRONG CÁC H TH NG M Ứ Ụ Ệ Ố Ờ
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01 Giáo viên hướng dẫn: PGS TSKH Nguyễn Xuân Huy Học viên: Triệu Thị Thu Hằng
Lớp: Cao học K13B
Trang 2LỜI CẢM ƠN
Tôi xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc đến PGS TSKH
Nguyễn Xuân Huy - người đã tận tình hướng dẫn và giúp đỡ tôi trong suốt quá trình học tập, nghiên cứu và hoàn thành luận văn Xin cảm ơn các thầy, cô giáo
trong và ngoài trường đã cung cấp kiến thức và tạo điều kiện thuận lợi cho quátrình học tập và rèn luyện của bản thân tôi
Tôi cũng xin được bày tỏ lòng biết ơn chân thành đến Ban Giám Hiệu, cácthầy giáo, cô giáo Phòng Sau đại học Trường Đại học Công Nghệ Thông Tin &Truyền Thông, Đại học Thái Nguyên, các thầy giáo, cô giáo Viện Công NghệThông Tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã giảng dạy và tạomọi điều kiện cho tôi được học tập và làm việc trong môi trường nghiên cứu vàtriển khai khoa học − công nghệ tại Viện để hoàn thành luận văn này
Xin cảm ơn gia đình, bạn bè đã hết lòng giúp đỡ, khích lệ, động viên tôi đểtôi có thể thu được được những kết quả bước đầu của luận văn
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu.Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ Nếu không đúng, tôixin hoàn toàn chịu trách nhiệm
Học viên
Triệu Thị Thu Hằng
Số hóa bởi Trung tâm Học liệu – ĐHTN
Trang 4MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
CÁC KÍ HIỆU vi
CÁC TOÁN TỬ OVERLOAD TRONG LỚP TẬP MỜ vii
MỞ ĐẦU 1
CHƯƠNG 1 KHÁI NIỆM VỀ TẬP HỢP VÀ TẬP HỢP MỜ 4
1.1 Tập hợp 4
1.1.1 Khái niệm về tập hợp 4
1.1.2 Mô tả tập hợp 4
1.1.3 Trật tự các tập hợp 5
1.2 Các phép toán trên tập hợp 5
1.2.1 Phép hợp 5
1.2.2 Phép giao 6
1.2.3 Phép trừ 6
1.2.4 Biểu đồ Venn 6
1.2.5 Các tính chất của các phép toán tập hợp 7
1.2.6 Biểu diễn tập hợp 8
1.3 Tập mờ 12
1.3.1 Độ thuộc và tập mờ 12
1.3.2 Thể hiện độ thuộc 13
1.3.3 Trật tự trên các tập mờ 14
1.4 Các phép toán trên tập mờ 14
1.4.1 Yêu cầu 14
1.4.2 Các hàm min, max và bù 1 14
1.4.3 Minh họa 15
1.4.4 Phép hợp hai tập mờ 16
1.4.5 Phép giao hai tập mờ 17
1.4.6 Phép bù 17
Trang 51.4.7 Ngưỡng và toán tử cắt 19
1.4.8 Các tính chất của các phép toán trên tập mờ 20
CHƯƠNG 2 THIẾT KẾ VÀ CÀI ĐẶT LỚP TẬP MỜ 22
2.1 Thiết kế hướng đối tượng 22
2.2 Thiết kế lớp tập nền UniSet 22
2.2.1 Các trường dữ liệu 22
2.2.2 Các phương thức 22
2.3 Thiết kế lớp tập mờ FSet 27
2.3.1 Đặt vấn đề 27
2.3.2 Các trường dữ liệu 27
2.3.3 Các phương thức 28
2 4 Các thuật toán cơ bản 43
2.4.1 Dạng thức thuật toán 43
2.4.2 Thuật toán hợp hai tập mờ 46
2.4.3 Thuật toán giao hai tập mờ 47
2.4.4 Thuật toán bù một tập mờ 47
2.4.5 Thuật toán Cut một tập mờ 48
2.4.6 Thuật toán CutToSet một tập mờ 49
2.4.7 Các thuật toán so sánh hai tập mờ 50
CHƯƠNG 3 CÁC BÀI TOÁN ỨNG DỤNG 52
3.1 Đặt vấn đề 52
3.2 Trại bò 52
3.2.1 Phát biểu bài toán 52
3.2.2 Thuật toán và tổ chức dữ liệu 53
3.2.3 Chương trình 54
3.2.4 Dữ liệu 54
3.2.5 Kết quả thực hiện 54
3.3 Thực đơn hàng không 54
3.3.1 Phát biểu bài toán 54
Trang 63.3.2 Thuật toán 55
3.3.3 Chương trình 56
3.3.4 Dữ liệu 56
3.3.5 Kết quả thực hiện 56
3.4 Xử lý lỗi hệ thống 57
3.4.1 Phát biểu bài toán 57
3.4.2 Thuật toán 57
3.4.3 Chương trình 58
3.4.4 Dữ liệu 58
3.4.5 Kết quả thực hiện 58
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
TÀI LIỆU THAM KHẢO 66
Trang 7min(a,b) max(a,b)
∃
∀
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 8CÁC TOÁN TỬ OVERLOAD TRONG LỚP TẬP MỜ
KÍ HIỆU
S[a]
X < Y X<=Y
Trang 9MỞ ĐẦU
Lý do chọn đề tài
Như đã biết, trong những suy luận đời thường cũng như các suy luận khoahọc, logic toán học đóng một vai trò quan trọng
Ngày nay, xã hội càng phát triển thì nhu cầu con người ngày càng cao Do
đó, sự tiến bộ của khoa học cũng cao Suy luận logic mệnh đề cổ điển với hai giátrị đúng (1), sai (0) đã không giải quyết được hết các bài toán phức tạp nảy sinhtrong thực tế [1], [3], [5]
Ví dụ
Quần áo như thế nào được gọi là dầy, là mỏng để máy giặt biết được mà
có chế độ tự động giặt và sấy khô cho hợp lý ?
Hai nhân viên tại hai quốc gia có cùng một mức lương, vậy mà nhân viên
ở quốc gia này thì được gọi là lương cao, quốc gia kia thì gọi là lương trung bình,tạm đủ sống Tại sao vậy ?
Làm thế nào để chuẩn bị hợp khẩu vị nhất một bữa ăn trên máy bay vớiyêu cầu đa dạng của hành khách ?
Giải quyết được những câu hỏi nêu trên có thể mang lại lợi ích cho nhiềucông ty, nhiều tổ chức
Những bài toán như vậy xuất hiện ngày một nhiều trong các lĩnh vực điềukhiển tối ưu, nhận dạng hệ thống, quản lý kinh tế và xã hội Đó là những bài
toán ra quyết định với các dữ liệu không đầy đủ, hoặc không được định nghĩa
một cách rõ ràng, tường minh (trong điều kiện thiếu thông tin chẳng hạn)
Một cách tiếp cận mới đã mang lại nhiều kết quả thực tiễn và đang được cácnhà khoa học tiếp tục phát triển đó là cách tiếp cận của lý thuyết tập mờ (Fuzzy settheory), do Lotfi Zadeh trường đại học California, Mỹ đề xuất vào năm 1965 [5]
Công trình này đã khai sinh một ngành khoa học mới là lý thuyết tập mờ và đã nhanh
chóng được các nhà nghiên cứu công nghệ mới chấp nhận ý tưởng Một số kết quảbước đầu và hướng nghiên cứu tiếp theo đã góp phần tạo nên những sản phẩm côngnghiệp đang được tiêu thụ trên thị trường Lý thuyết tập mờ ngày càng
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 10phong phú và hoàn chỉnh, đã tạo ra một nền móng toán học vững chắc để pháttriển logic mờ (Fuzzy logic) Có thể nói logic mờ là nền tảng để xây dựng các hệ
mờ thực tiễn, ví dụ trong công nghiệp sản xuất xi măng, sản xuất điện năng, các
hệ chuyên gia trong y học giúp chuẩn đoán và điều trị bệnh, các hệ chuyên giatrong xử lý tiếng nói, nhận dạng hình ảnh, [1, 2, 4] Công cụ chủ chốt của logic
mờ là tiền đề hóa và lập luận xấp xỉ với phép suy diễn mờ [1, 2] Nền tảng cơ sởcủa logic mờ là lý thuyết tập mờ
Vậy trong khuôn khổ khóa luận thạc sĩ, học viên chọn đề tài:
Thiết kế và cài đặt lớp tập mờ và ứng dụng trong các hệ thống mờ
Đối tượng và phạm vi nghiên cứu
Luận văn tập trung vào hai nhóm đối tượng sau đây:
- Lý thuyết tập mờ và các phép toán trên tập mờ [2], [5];
- Ứng dụng: cài đặt và thử nghiệm một số bài toán vận dụng tập mờ trong các hệ thống kinh tế và xã hội [1], [3], [4]
Hướng nghiên cứu của đề tài
Nghiên cứu lý thuyết liên quan đến đề tài: Lý thuyết tập mờ, đối sánh tập
mờ với tập rõ kinh điển, các phép toán truyền thống và các phép toán mở rộngtrên tập mờ
Cài đặt thử nghiệm lớp tập mờ như một kiểu dữ liệu với các phép toán trên tập mờ Vận dụng lớp này để giải một số bài toán ứng dụng thực tiễn
Những nội dung nghiên cứu chính
Luận văn tập trung vào các nội dung sau đây:
Về lý thuyết chủ yếu tìm hiểu, tổng hợp các khái niệm cơ sở về lý thuyếttập mờ, đối sánh với lý thuyết tập hợp kinh điển
Về hàm lượng Tin học, luận văn thiết kế và cài đặt hai lớp dữ liệu như haikiểu dữ liệu mới là UniSet và Fset để xử lý các tập nền và tập mờ liên kết với tậpnền đó Học viên cố gắng lựa chọn ký pháp tiện lợi cho việc triển khai các chươngtrình ứng dụng và phát triển thêm một số hàm tiện ích để thu được các kiểu dữ liệu
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 11linh hoạt hơn và có thể vận dụng để giải các bài toán đa dạng liên quan đến tập mờ.
Phương pháp nghiên cứu:
Trong luận văn học viên dự kiến sử dụng các phương pháp nghiên cứu chínhsau:
-Phương pháp nghiên cứu lý thuyết: Tổng hợp tài liệu, hệ thống các kiến thức, tìm hiểu các khái niệm, thuật toán sử dụng trong đề tài
-Các phương pháp hình thức dùng trong mô tả tập rõ, tập mờ, các phép toán và các tính chất, mô tả các thuật toán
-Các phương pháp và kỹ thuật lập trình hướng đối tượng
-Phương pháp đối sánh
-Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia
-Tổ chức thử nghiệm và xử lí kết quả
Ý nghĩa khoa học và thực tiễn của đề tài
Việc nghiên cứu đề tài có thể đóng góp thêm một vài chức năng thuộcphạm vi lập trình huớng đối tượng, giúp cho người sử dụng có một công cụ xử lýtập mờ một cách hữu hiệu, theo một quan điểm nhất quán
Xây dựng một lược đồ vận dụng tập mờ để giải các ứng dụng thực tiễn trongmột số lĩnh vực kinh tế như chăn nuôi, phát hiện sự cố hệ thống, điều tra sở thích
Số hóa bởi Trung tâm Học liệu – ĐHTN
Trang 12CHƯƠNG 1: KHÁI NIỆM VỀ TẬP HỢP VÀ TẬP HỢP MỜ
1.1 Tập hợp
1.1.1 Khái niệm về tập hợp
Tập hợp là khái niệm cơ sở của toán học [1, 2, 5] Mô tả một tập hợp T đồng nhất với việc liệt kê các phần tử của tập đó Kí hiệu x ∈ T cho biết x là một phần tử của tập hợp T Thí dụ
T={1,3,5,7}
cho biết tập T gồm bốn số tự nhiên là 1, 3, 5 và 7 Khi đó ta
có 3 ∈ T: 3 là phần tử của tập T
2 ∉ T: 2 không phải là phần tử của tập T
Trong toán học thường sử dụng các tập hợp sau đây:
Tập rỗng, kí hiệu, ∅ là tập không có phần tử nào: #∅ = 0
Tập ABC nói trên có 26 phần tử, #ABC = 26.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 13Nếu X là một tập và a là một phần tử thì ta kí hiệu X[a] là hàm cho ra giá
trị 1 (true) nếu a ∈ X; ngược lại, hàm cho ra giá trị 0 (false)
Hai tập X và Y được gọi là khác nhau nếu có một phần tử thuộc tập này
mà không thuộc tập kia
X ≠ Y ⇔ ∃ e ∈ X ⇒ e ∉ Y Tập X được gọi là tập con của tập Y, X ⊆ Y nếu mọi phần tử của X đều thuộc tập Y.
X ⊆ Y ⇔ ∀ e ∈ X ⇒ e ∈ Y Tập X được gọi là tập con đúng hay tập con thực sự của tập Y, X ⊂ Y nếu
Xkhác Y và mọi phần tử của X đều thuộc tập Y.
X ⊂ Y ⇔ X ≠ Y, ∀ e ∈ X ⇒ e ∈ Y Hai tập X và Y được gọi là bằng nhau nếu tập này là tập con của tập kia và
Trang 14bù của một tập hợp là phần ngoài của tập hợp nhưng nằm trong tập nền
Trang 15U là tập các lượng mưa tính theo milimet, bao gồm các mức từ 0 mm (không
mưa) đến 500 mm (lượng mưa tối đa); S là các vùng mưa nhiều (ngập sâu) gồm các mức từ 100 mm đến 200 mm; K là các vùng mưa khá nặng gồm các mức từ 80
Các phép toán và các toán tử trên tập hợp có các tính chất sau đây [2, 5]
Với mọi tập con X, Y, Z của tập nền U ta có:
Tính chất giao hoán
X∪Y=Y∪X
X∩Y=Y∩X Tính chất kết hợp
(X∪ Y)∪Z =X ∪ (Y∪ Z)
(X∩ Y)∩Z =X ∩ (Y∩ Z)Nhờ tính chất giao hoán và kết hợp ta có thể vận dụng qui tắc sau khi tính toán các biểu thức tập hợp chỉ chứa các phép hợp hoặc chỉ chứa các phép giao:
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 16Qui tắc
Trong biểu thức tập hợp chỉ chứa các phép hợp (giao) ta
có thể thực hiện phép toán theo trật tự tùy ý.
Tính chất phân phối
(X∪ Y)∩Z =(X ∩ Z) ∪ (Y∩Z) (X∩ Y)∪Z =(X ∪Z) ∩ (Y∪Z) Luật De Morgan
(X ∪ Y)’ = X’ ∩ Y’ (Bù của hợp bằng giao các bù) (X ∩ Y)’ = X’ ∪ Y’ (Bù của giao bằng hợp các bù)
Ngoài ra, trật tự (bao hàm) của các tập hợp thỏa các tính chất sau đây:
Tính chất bắc cầu
X ⊆ Y và Y ⊆ Z ⇒ X ⊆ Z Tính chất tựa bắc cầu
X⊆Y ⇒ X∪Z ⊆Y∪Z
1.2.6 Biểu diễn tập hợp
Trong tin học, các tập hợp được mô tả như là những tập con của một tập
nền U cho trước Tập nền U trước hết cần được được mô tả tường minh như một
kiểu dữ liệu
Thí dụ, trong ngôn ngữ lập trình Pascal có kiểu dữ liệu set Khai báo
var x: set of char;
cấp phát một biến x thuộc kiểu tập con của tập nền U gồm 256 kí tự của bộ mã
ASCII với mã số từ 0 đến 255
Trong ngôn ngữ lập trình C++ có kiểu enum cho phép khai báo tập hợpbằng phương thức liệt kê các phần tử và có thể chỉ định mã số của các phần tử.Thí dụ,
Khai báo
Trang 17enum Colors { DARKBLUE = 1, DARKGREEN, DARKTEAL, DARKRED, DARKPINK, DARKYELLOW, GRAY, DARKGRAY, BLUE, GREEN, TEAL, RED, PINK, YELLOW, WHITE };
mô tả tập Colors gồm các màu trên màn hình, trong đó qui ước màu đầu tiên là DARKBLUE mang mã số 1 Như vậy các màu tiếp theo sẽ có mã số lần lượt là
hiển thị
Trang 18Có hai loại tổ chức dữ liệu dùng cho biểu diễn tập là danh sách tuyến tính
và dãy bit (0/1)
Biểu diễn tập bằng danh sách tuyến tính
Mỗi phần tử của danh sách gồm hai trường data và
ptr data 'a'ptr 1234Trường data chứa giá trị của phần tử trong tập, trường ptr chứa con trỏ đếnphần tử tiếp theo Thí dụ, tập X = {'a', 'b', 'd''} sẽ được biểu diễn như sau:
X → ('a')→('b')→('d')●
Kí hiệu ● cho biết điểm kết thúc danh sách (với con trỏ NULL)
Biểu diễn tập bằng dãy bit
Dạng biểu diễn thứ hai đòi hỏi phải cho trước tập nền Khi đó mỗi tập concủa tập vũ trụ sẽ được biểu diễn bằng dãy bit 0/1
Riêng tập nền được biểu diễn bằng một mảng động name, trong đó phần
tử thứ i chính là tên của phần tử trong tập nền Thí dụ, tập nền U gồm các mặthàng trong một cửa hàng văn phòng phẩm có thể được biểu diễn như sau:
index Name
Khi đó, mỗi lượt khách hàng mua văn phòng phẩm sẽ sinh ra một giao tácdưới dạng một vector bít 0/1, trong đó 1 cho biết khách mua loại hàng tương ứng,
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 190 − không mua Thí dụ dưới đây cho biết ba giao tác ứng với ba khách hàng X, Y
và Z,
index Name X Y Z
Ta có
X = {Vở, Tẩy, Cặp}, ứng với biểu diễn 101100
Y = {Vở, Bút, Cặp}, ứng với biểu diễn 110100
Z = {Bút, Tẩy, Cặp, Kẹp giấy}, ứng với biểu diễn 011101
Dạng biểu diễn này cho phép cài đặt các phép toán tập hợp nhanh chóng.Khi cần hiển thị cụ thể chương trình sẽ tham chiếu đến các name của từng phần
trong đó ~ là phép toán lật bit, đổi bít 0 thành 1 và ngược lại
Q3 Cho biết các mặt hàng X và Y cùng không mua?
Giải
V = (X ∪ Y)’ = ~(101100 or 110100) = ~(111100)
= 000011 = {Balo, Kẹp giấy}
Trang 201.3 Tập mờ
1.3.1 Độ thuộc và tập mờ
Để phân biệt tập mờ với tập hợp ta tạm qui ước gọi tập hợp kinh điển theo
mô tả trong các mục trên là tập rõ.
Với tập rõ khi viết x ∈ T ta biết chính xác x là một phần tử trong tập T Với tập mờ, kí hiệu x ∈ T được thay bằng (x: m) ∈ T cho biết x là phần tử của tập T với
độ tin cậy là m Tùy theo ngữ nghĩa của từng ứng dụng mà người ta gán cho thuật
ngữ độ tin cậy ý nghĩa nhất định Thuật ngữ thường dùng nhất là độ thuộc.
Giống như tập rõ, khái niệm tập mờ được xây dựng trên tập nền U cho
trước
Thí dụ, tập nền 4 môn học tự nhiên trong trường trung học cơ
sở U = { Toán, Lý, Hóa, Sinh }
Tập nền là tập rõ với ý nghĩa là hoàn toàn được xác định trước
Giả sử một học sinh là em An phát biểu rằng:
• Em rất thích Toán,
• Em thích Lý,
• Em không thích Hóa,
• Em thấy môn Sinh là bình thường
Chúng ta có thể lượng hóa sở thích của em An bằng các giá trị sau đây:
• Rất thích = 100
• Không thích = 0
Thích = 80
Bình thường = 50
Khi đó ta có dãy giá trị thể hiện sở thích của em An đối với các môn học là:
An = {Toán: 100, Lý: 80, Hóa: 0, Sinh: 50}
Nếu hiểu 100, 80, 0, 50 là các độ thuộc thì tập An nói trên được lí giải như
sau:
An là tập các môn học mà An thích, trong đó
• Toán chắc chắn là phần tử của An: Toán ∈ An
Trang 21• Lý gần như chắc chắn là phần tử trong An: Lý ∈ An với mức độ 80 (%)
• Hóa chắc chắn không phải là phần tử của An: Hóa ∉ An
Sinh: có lẽ là phần tử của An: Sinh ∈ An với mức độ 50 (%)
Ta thấy, nếu dùng các thuật ngữ “chắc chắn”, “có lẽ”, “gần như” thì khó
có thể diễn đạt được mức độ thích hay độ thuộc, do đó người ta cần lượng hóacác thuật ngữ trên
Việc lượng hóa độ thuộc của mỗi phần tử trong tập hợp được thể hiện qua
một hàm, gọi là hàm thuộc, µ gán cho mỗi phần tử trong tập rõ một giá trị trongkhoảng 0 1 cho biết phần tử này thuộc tập hợp đang xét với mức độ bao nhiêu
Như vậy, mỗi tập mờ M là một ánh xạ
µM : U → [0;1]
Với trường hợp của em An, ta có
• An rất thích Toán, µAn(Toán) = 100%
• An thích Lý, µAn(Lý) = 80%
• An không thích Hóa, µAn(Hóa) = 0%
• Với môn Sinh thì An cho rằng bình thường, µAn(Sinh) = 50%
Độ thuộc nói chung được biểu diễn qua một số thực trong khoảng [0;1].Trong luận văn, độ thuộc luôn luôn được thể hiện dưới dạng phần trăm (%) Vớiqui ước này ta có thể biểu diễn tập mờ An như sau:
An = {Toán: 100, Lý: 80, Hóa: 0, Sinh: 50}
Như vậy hàm thành viên µ trong tập An gán cho mỗi phần tử của tập nềnmột giá trị trong khoảng [0;1]
1.3.2 Thể hiện độ thuộc
Ta quy định biểu diễn tập mờ vời hàm thuộc (hoặc hàm thành viên) cho giá trị
trong khoảng 0 đến 100 (%) Theo qui định đó, tùy theo ngữ cảnh, ta có thể chọnmột trong ba cách biểu diễn sau đây:
(1) An = {Toán: 100%, Lý: 80%, Hóa: 0%, Sinh: 50%},
(2) An = {Toán: 100, Lý: 80, Hóa: 0, Sinh: 50},
(3) An = {100, 80, 9, 50}
Trang 22Luận văn thường sử dụng phương thức thứ hai.
Như vậy, có thể hiểu tập mờ X cho biết độ thuộc, hay độ chắc chắn của các phần tử của tập nền U trong tập mờ X.
Tùy theo các ứng dụng cụ thể ta có thể gán các ngữ nghĩa khác nhau chohàm thành viên µ
Cho trước tập vũ trụ U Ta định nghĩa tập mờ X như một ánh xạ µ X từ tập
vũ trụ vào đoạn đoạn [0;1] Ta hiểu đoạn [0;1] là tập các số thực r: 0.0 ≤ r ≤ 1.0
1.4 Các phép toán trên tập mờ
1.4.1 Yêu cầu
Cần định nghĩa các các phép toán trên tập mờ đáp ứng được chí it hai tiêuchí sau đây:
(T1) Ngữ nghĩa hợp lí để có thể ứng dụng trong thực tiễn
(T2) Bao hàm được các phép toán và nhiều tính chất quan trọng nhất củatập rõ, vì tập rõ là trường hợp riêng của tập mờ khi các hàm thuộc chỉ nhận mộttrong hai giá trị là 0 (0%, không thuộc) hoặc 1 (100%, thuộc)
1.4.2 Các hàm min, max và bù 1
Trước hết ta định nghiã các hàm sau đây với các giá trị thực a, b:
Hàm min
Trang 23min(a,b) cho giá trị nhỏ nhất trong hai giá trị a và b.
Hàm bù đôi khi được gọi là hàm bù 1 theo nghĩa “bù cho đủ 1”.
Ta xét một số tính chất quan trọng của ba hàm min, max và bù nói trên
Các tính chất của các hàm min, max và bù 1
∀a, b, c ∈ R
TC2 max(a, 0) = a, max(a, 1) = 1
TC3 min(min(a, b), c) = min(a, min(b, c)) = min(min(a, c), b)
TC4 max(max(a, b), c) = max(a, max(b, c)) = max(max(a, c), b)
TC5 1’ = 0, 0’ = 1
Ta cũng mở rộng định nghĩa min, max và bù trên không gian các hàm µ: U
[0;1] thể hiện độ thuộc như sau:
µZ = min(µX,µY)⇔ ∀e∈[0;1]:µZ (e)= min(µX (e),µY (e))
µZ = max(µX,µY)⇔ ∀e∈[0;1]:µZ (e)= max(µX (e),µY (e))
Trang 24Ý kiến của các chuyên gia được ghi trên phiếu thẩm định dưới dạng điểm
từ 0 đến 100, trong đó mục X có điểm 0 được hiểu là không có lỗi ở nguyên nhân
X, X:100 là chắc chắn có lỗi ở nguyên nhân X
Giả sử ta thu được ba phiếu thẩm định A, B và C như sau:
A = {CPU: 100, ROM: 80, CP: 0, CON: 50}
B = {CPU: 30, ROM: 50, CP: 100, CON: 60}
C = {CPU: 80, ROM: 70, CP: 100, CON: 50}
Trong thí dụ này, điểm của mỗi chuyên gia được hiểu là độ thuộc và ý
kiến của mỗi chuyên gia được xem là một tập mờ trên tập nền Độ thuộc đượcbiểu diễn theo tỉ lệ phần trăm (%)
U = {CPU, ROM, CP, CON}
A ∪ B = {CPU: 100, ROM: 80, CP: 100, CON: 60}
Kết quả này có ý nghĩa sau đây: Nếu tôn trọng cả hai ý kiến của hai
chuyên gia A và B thì ta phải kiểm tra các nguyên nhân theo trình tự sau đây:
1. Kiểm tra CPU
2. Kiểm tra trình điều khiển CP
3. Kiểm tra ROM
Trang 254 Kiểm tra bộ tản nhiệt CON
Khi X và Y là hai tập rõ ta có µX (e) = µ Y (e) = 0|1 (nhận một trong 2 trị 0
hoặc 1) do đó max(µX (e), µ Y (e)) = 1 khi và chỉ khi µ X (e) = 1 hoặc µ Y (e) = 1 Điều kiện này lại tương đương với điều kiện e ∈ X hoặc e ∈ Y.
X ∪ Y = {e | e ∈ U, µX (e) = 1 hoặc µ Y (e) = 1} = {e | e ∈ X hoặc e ∈ Y}
Vậy, hợp của hai tập rõ là trường hợp riêng của hợp của hai tập mờ
A ∩ B = {CPU: 30, ROM: 50, CP: 0, CON: 50}
Kết quả này có ý nghĩa sau đây: Chắc chắn nhất là hai chuyên gia A và Bđều thống nhất ý kiến chung về hai nguyên nhân ROM và CON rủi ro ở mức độtrung bình
Khi X và Y là hai tập rõ ta có µ X (e) = µ Y (e) = 0|1 (nhận một trong 2 trị 0
hoặc 1) do đó min(µX (e), µ Y (e)) = 1 khi và chỉ khi µ X (e) = 1 và µ Y (e) = 1 Điều kiện này lại tương đương với điều kiện e ∈ X và e ∈ Y.
X∪ Y = {e | e ∈ U, µX (e) = 1 và µY (e) = 1} = {e | e ∈ X và e ∈ Y}
Vậy, giao của hai tập rõ là trường hợp riêng của giao của hai tập mờ
1.4.6 Phép bù
Cho tập nền U và tập mờ trên U
Trang 26A’ = {CPU: 0, ROM: 20, CP: 100, CON: 50}
Tập mờ A’ cho ta biết quan điểm của chuyên gia A về mức độ an toàn của các nguyên nhân, cụ thể là:
CPU: chắc chắn không an toàn
ROM: độ an toàn hơi thấp (dưới ngưỡng 50%)
CP: hoàn toàn an toàn
CON: có thể không an toàn
Tóm lại, phép bù của tập X mang ngữ nghĩa đối lập với ngữ nghĩa của X Khi X là tập rõ ta có ∀e ∈ U: µ X (e) = 0|1 do đó 1 − µ X (e) = 1|0 Khi đó
X’ = {e | e ∈ U , µX (e) = 0} = {e | e ∉ U}
Vậy phần bù của tập rõ là trường hợp riêng của phần bù của tập mờ Trong lí thuyết tập mờ còn một số đề xuất về cách chọn các hàm min, max
và phép bù cho các phép trên các tập mờ
Trang 27B và C sẽ được chỉnh lại theo ngưỡng n như sau:
A1 = Cut(A, µA > 60, µA , 0) = {CPU: 100, ROM: 80, CP: 0, CON: 0}B1 = Cut(B, µB > 60, µB , 0) = {CPU: 0, ROM: 0, CP: 100, CON: 0}C1 = Cut(C, µC > 60, µC , 0) = {CPU: 80, ROM: 70, CP: 100, CON: 0}
Trang 28Xác định các thành phần cần kiểm định nếu cả ba chuyên gia đều thống nhất nguyên nhân sinh lỗi với ngưỡng n ≥ 30%?
Ta có
Ý kiến của ba chuyên gia
A = {CPU: 100, ROM: 80, CP: 0, CON: 50}
B = {CPU: 30, ROM: 50, CP: 100, CON: 60}
C = {CPU: 80, ROM: 70, CP: 100, CON: 50}
Sau khi lọc với ngưỡng n > 30 (%)
A2 = CutToSet(A, µA > 30) = {CPU, ROM, CON}
B2 = CutToSet(B, µB > 30) = {CPU, ROM, CP , CON}
C2 = CutToSet(C, µC m > 30) = {CPU, ROM, CP, CON}
ABC2 = A2 ∩ B2 ∩ C2 = {CPU, ROM, CON}
Như vậy, các thành phần cần kiểm định là CPU, ROM và CON
1.4.8 Các tính chất của các phép toán trên tập mờ
Với các hàm min, max và bù đã cho, các phép toán và các toán tử trên tập
mờ có các tính chất tương tự như trong tập (rõ) kinh điển, cụ thể là [2, 5]
Với mọi tập mờ X, Y, X trên tập nền U ta có các tính chất sau đây:
Tính chất giao hoán
X∪Y=Y∪X
X∩Y=Y∩X Tính chất kết hợp
(X∪ Y)∪Z =X ∪ (Y∪ Z)
(X∩ Y)∩Z =X ∩ (Y∩ Z)Nhờ tính chất giao hoán và kết hợp ta có thể vận dụng qui tắc sau khi tính toán các biểu thức tập hợp chỉ chứa các phép hợp hoặc chỉ chứa các phép giao:
Qui tắc
Trong biểu thức tập hợp chỉ chứa các phép hợp (giao) ta
có thể thực hiện phép toán theo trật tự tùy ý.
Trang 29Tính chất phân phối
(X∪ Y)∩Z =(X ∩ Z) ∪ (Y∩Z) (X∩ Y)∪Z =(X ∪Z) ∩ (Y∪Z) Luật De Morgan
(X ∪ Y)’ = X’ ∩ Y’ (Bù của hợp bằng giao các bù) (X ∩ Y)’ = X’ ∪ Y’ (Bù của giao bằng hợp các bù)
Ngoài ra, trật tự (bao hàm) của các tập mờ thỏa các tính chất sau đây:
Tính chất bắc cầu
X ⊆ Y và Y ⊆ Z ⇒ X ⊆ Z Tính chất tựa bắc cầu
X⊆Y ⇒ X∪Z ⊆Y∪Z
Trang 30CHƯƠNG 2: THIẾT KẾ VÀ CÀI ĐẶT LỚP TẬP MỜ
2.1 Thiết kế hướng đối tượng
Theo tiếp cận hướng đối tượng ta có thể thiết kế và cài đặt một kiểu dữliệu mới Luận văn sẽ tập trung thiết kế hai kiểu dữ liệu phục vụ cho các chươngtrình xử lý các tập mờ là
• Kiểu UniSet dùng để quản lí các tập nền
Trường Size ghi nhận kích thước (số phần tử hoặc lực lượng) của tập nền.
Trường Name lưu trữ các tên của các phần tử trong tập nền
Trang 31Hủy tử (destructor)
Cú pháp
~UniSet();
Ngữ nghĩa
Xóa và thu hồi vùng nhớ đã cấp phát cho tập nền
Cấp phát vùng chứa tên phần tử của tập nền
Giải phóng vùng nhớ chứa size phần tử cho tập nền
Xuất lực lượng của tập nền
Trang 32SetNames cho phép nạp m tên của m phần tử cho tập nền.
C++ có chức năng cài đặt một hàm với danh sách tham biến động theo
nghĩa số lượng tham biến có thể tùy đặt tại mỗi lần gọi hàm
Thí dụ,
MonHoc.SetNames(4, "Toan","Ly", "Hoa", "Sinh");
Nạp 4 tên, lần lượt là "Toan","Ly", "Hoa", "Sinh" cho tập nền MonHoc;
Xuất tên phần tử của tập nền
Hiển thị / hoặc ghi tập nền ra file
< là phương thức bạn, tức là phương thức ngoại vi, được gá vào lớpUniSet
Trang 33Thí dụ
Chương trình DemoUniset.cpp thực hiện các thao tác sau đây:
1. Khai báo tập nền u với 3 phần tử
2. Hiển thị lực lượng của u
3. Đặt lại lực lượng (kích thước) của u là 5
4. Hiển thị lại lực lượng của u
5. Nạp lần lượt 5 phần tử “ca”, “cua”, “tom”, “bo”, “da dieu” vào u
6. Hiển thị tập nền u
7. Mở file “Tapnen.dem” rồi ghi tập nền u vào file
Như vậy, ta thu được tập nền u = {“ca”, “cua”, “tom”, “bo”, “da dieu”}
/*************************************************** DemoUniset.cpp
cout << "\n I Size of u: " << u.GetSize();
/ Nap lan luot 5 phan tu cho tap
Trang 34u.SetName(5,"da dieu");
// Hien thi tap nen
cout << "\n Tap nen: " << u;
ofstream f("TapNen.dem"); // Mo file
Trang 35Nội dung file “Tapnen.dem”
Khai báo
template <UniSet & U>
Cho biết lớp tập mờ FSet được tham chiếu trên lớp tập nền UniSet U Trước khi khởi tạo tập mờ cần khởi tạo tập nền vì mọi tập mờ trên tâọ nền
U đều được tham chiếu đến tập nền U duy nhất
2.3.2 Các trường dữ liệu
Lớp tập mờ FSet có một trường dữliệu duy nhất:
int * Val; // membership value
Trường Val chứa độ thuộc của các phần tử trong tập mờ Val nhận giá trịnguyên trong khoảng 0 (%) đến 100 (%) Giả sử x là tập mờ trên tập nền U, khi
đó x[e] sẽ là độ thuộc của các phần tử e∈ U trong x x[e] = 0 cho biết e khôngthuộc tập mờ x, ngược lại, x[e] = 100 cho biết e chắc chắn là phần tử của tập mờ
x, ngoài ra x[e] có thể nhận một trong các giá trị trong khoảng 0 100
Một tập mờ được xem là rõ khi và chỉ khi mọi phần tử của nó chỉ nhận
đúng một trong hai giá trị 0 hoặc 100.
Trang 36inline void Copy(const FSet<U> & y); inline
void operator =(const FSet<U> & f);
Ngữ nghĩa
Copy nội dung của tập mờ y sang tập mờ chủ thể Sau khi copy, Hai tập
mờ, y và chủ thể có cùng nội dung nhưng được đặt trong hai vùng nhớ khác nhau
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trang 37và được coi là độc lập theo nghĩa mọi sự thay đổi của tập này không ảnh hưởngđến tập khác và ngược lại.
Xuất nội dung của tập mờ
Cho ra kích thước của tập mờ, chính là số phần tử của tập nền
Hiển thị danh sách tên các phần tử của tập mờ
Trang 38Truy cập phần tử của tập mờ
Cú pháp
int & operator[](int id);
Ngữ nghĩa
Toán tử x[i] truy cập phần tử thứ i trong tập mờ x
Gán độ thuộc 0 cho toàn tập mờ
Cú pháp
void Reset();
Ngữ nghĩa
Gán độ thuộc 0 cho mọi phần tử của tập mờ
Gán độ thuộc 0 cho một phần tử của tập mờ
Cú pháp
bool Reset(int id);
Ngữ nghĩa
Gán độ thuộc 0 cho phần tử thứ id của tập mờ
Nếu id nằm ngoài giới hạn, id < 1 hoặc id > Size, thì phép gán không được thực hiện và hàm cho ra giá trị false; ngược lại, hàm cho ra giá trị true
Gán độ thuộc 100 cho toàn tập mờ
Cú pháp
void Set();
Ngữ nghĩa
Gán độ thuộc 100 cho mọi phần tử của tập mờ
Gán độ thuộc 100 cho một phần tử của tập mờ
Cú pháp
bool Set(int id);
Ngữ nghĩa
Gán độ thuộc 100 cho phần tử thứ id của tập mờ
Nếu id nằm ngoài giới hạn, id < 1 hoặc id > Size, thì phép gán không đượcthực hiện và hàm cho ra giá trị false; ngược lại, hàm cho ra giá trị true
Trang 39Nạp trị
Cú pháp
a) bool Set(int id, int m);
b) inline bool Ins(int id, int m);
c) Gán độ thuộc m cho phần tử thứ id của tập mờ x Nếu id nằm ngoài giới hạn, id < 1 hoặc id > Size thì hệ thống báo lỗi và dừng chương trình
Các hàm a, b và c là tương đương về giá trị
d) Gán lần lượt n độ thuộc cho n phần tử của tập mờ chủ thể bắt đầu từphần tử thứ 1 đến phần tử thứ n Hàm Inss là hàm với danh sách tham biến động, tức là có số lượng tham trị tùy đặt vào thời điểm gọi hàm Thí dụ,
Trang 40Các toán tử cắt theo ngưỡng
Z = X.CutToSet(int t);
sẽ cho ta tập rõ z = {µZ (e) = (µ X (e) < t) ? 0 : 100 | e ∈ U }
StrongCutToFSet