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
Trang 1i
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ĐẠI HỌC THÁI NGUY ÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Lớp: Cao học K13B
Trang 2Tôi cũng xin được bày tỏ lòng biết ơn chân thành đến Ban Giám Hiệu, các thầ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ạo mọ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 3iii
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
L Ờ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ôi xin hoàn toàn chịu trách nhiệm
H ọc viên
Tri ệu Thị Thu Hằng
Trang 4iv
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
M Ụ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 5v
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.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 6vi
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
3.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 9Ngà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 sinh trong thực tế [1], [3], [5]
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ới yê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ều cô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ều khiể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ác nhà 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 set theory), 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ông nghiệp đang được tiêu thụ trên thị trường Lý thuyết tập mờ ngày càng
Trang 102
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phong phú và hoàn chỉnh, đã tạo ra một nền móng toán học vững chắc để phát triể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 gia trong
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ộng trê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ết tậ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ư hai kiể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ập nề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ương trì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
Trang 113
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
linh 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ính sau:
- 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ộc phạ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 trong mộ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
Trang 124
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠ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
Trang 135
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Nế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)
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
X khác Y và mọi phần tử của X đều thuộc tập Y
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
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:
Trang 168
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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 ý
Tính ch ất phân phối
(X Y) Z = (X Z) (Y Z) (X Y) Z = (X Z) (Y Z)
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ợp bằ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 179
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
enum 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à 2,
hiển thị
Trang 1810
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Có 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 1234 Trường data chứa giá trị của phần tử trong tập, trường ptr chứa con trỏ đến phầ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 con củ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ặt hàng trong một cửa hàng văn phòng phẩm có thể được biểu diễn như sau:
Name Vở Bút Tẩy Cặp Balo Kẹp giấy
Khi đó, mỗi lượt khách hàng mua văn phòng phẩm sẽ sinh ra một giao tác dướ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,
Trang 1911
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
0 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
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 tử trong tập vũ trụ
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 2012
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.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 2113
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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óa cá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ị trong khoả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ới qui ướ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ền mộ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ọn mộ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 2214
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Luậ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 cho hà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ạ Xtừ 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
X Y X Y và e U: X (e) ≤ Y (e)
Tập mờ X được gọi là tập con của tập mờ Y, X Y nếu X = Y hoặc X Y
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êu chí 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ủa tậ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ột trong 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 2315
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
min(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))
Z = ’X e [0;1]: Z (e)= ’ X (e)
Khi độ thuộc đựơc thể hiện theo tỷ lệ phần trăm tức là nhận các giá trị nguyên trong đoạn 0 100 các hàm nói trên được hiểu theo kiến tạo tương ứng
Ta có tập nền U = {CPU, ROM, CP, CON}
Trang 2416
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Ý 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 được biể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 2517
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
4 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 27trong đó kí pháp (d) ? a : b cho ra giá trị a nếu điều kiện d được thỏa; ngược
lại cho ra giá trị b
Điều kiện d có thể là một biểu thức logic, thí dụ
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 2820
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Xá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:
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 2921
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Tính ch ất phân phối
(X Y) Z = (X Z) (Y Z) (X Y) Z = (X Z) (Y Z)
Trang 3022
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠ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ương trình
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 31Xó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ớp UniSet
Trang 3325
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Thí 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 nen
u.SetName(1,"ca");
u.SetName(2,"cua");
u.SetName(3,"tom");
Trang 3426
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
u.SetName(4,"bo");
u.SetName(5,"da dieu");
// Hien thi tap nen
cout << "\n Tap nen: " << u;
ofstream f("TapNen.dem"); // Mo file
Trang 3527
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
N ộ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ông thuộ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
Trang 3729
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
và đượ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
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 38Toá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 được thực hiện và hàm cho ra giá trị false; ngược lại, hàm cho ra giá trị true
Trang 3931
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
N ạ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
Trang 4032
S ố hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Cá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