Luận văn Thạc sĩ: Thiết kế và Cài đặt Lớp Tập Mờ ứng dụng trong Hệ Thống Mờ

Luận văn thạc sĩ nghiên cứu thiết kế và cài đặt lớp tập mờ và ứng dụng trong các hệ thống mờ, khảo sát thực trạng, phân tích nguyên nhân, đề xuất giải pháp cải thiện thực tiễn.

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ
83
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

CÁC TOÁN TỬ OVERLOAD TRONG LỚP TẬP MỜ

MỞ ĐẦU

1. CHƯƠNG 1: KHÁI NIỆM VỀ TẬP HỢP VÀ TẬP HỢP MỜ

1.1. Khái niệm về tập hợp

1.2. Mô tả tập hợp

1.3. Trật tự các tập hợp

1.4. Các phép toán trên tập hợp

1.5. Các tính chất của các phép toán tập hợp

1.6. Biểu diễn tập hợp

1.7. Độ thuộc và tập mờ

1.8. Thể hiện độ thuộc

1.9. Trật tự trên các tập mờ

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

1.10.1. Các hàm min, max và bù

1.10.2. Phép hợp hai tập mờ

1.10.3. Phép giao hai tập mờ

1.11. Ngưỡng và toán tử cắt

1.12. Các tính chất của các phép toán trên tập mờ

2. 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

2.2. Thiết kế lớp tập nền UniSet

2.2.1. Các trường dữ liệu

2.2.2. Các phương thức

2.3. Thiết kế lớp tập mờ FSet

2.3.1. Các trường dữ liệu

2.3.2. Các phương thức

2.4. Các thuật toán cơ bản

2.4.1. Dạng thức thuật toán

2.4.2. Thuật toán hợp hai tập mờ

2.4.3. Thuật toán giao hai tập mờ

2.4.4. Thuật toán bù một tập mờ

2.4.5. Thuật toán Cut một tập mờ

2.4.6. Thuật toán CutToSet một tập mờ

2.5. Các thuật toán so sánh hai tập mờ

3. CHƯƠNG 3: CÁC BÀI TOÁN ỨNG DỤNG

3.1. Phát biểu bài toán

3.2. Thuật toán và tổ chức dữ liệu

3.3. Chương trình

3.4. Kết quả thực hiện

3.5. Thực đơn hàng không

3.5.1. Phát biểu bài toán

3.5.2. Chương trình

3.5.3. Kết quả thực hiện

3.6. Xử lý lỗi hệ thống

3.6.1. Phát biểu bài toán

3.6.2. Chương trình

3.6.3. Kết quả thực hiện

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tìm hiểu chung về Thiết kế Cài đặt Lớp Tập Mờ

Trong bối cảnh xã hội ngày càng phát triển, nhu cầu của con người ngày càng cao, đòi hỏi sự tiến bộ vượt bậc của khoa học. Suy luận logic mệnh đề cổ điển với hai giá trị đúng (1), sai (0) đã không còn đủ khả năng giải quyết các bài toán phức tạp phát sinh trong thực tế. Ví dụ, làm thế nào để máy giặt có thể tự động điều chỉnh chế độ giặt và sấy khô phù hợp với độ dày mỏng của quần áo? Tại sao hai nhân viên ở hai quốc gia khác nhau với cùng một mức lương lại có đánh giá khác nhau về mức sống? Hay làm thế nào để chuẩn bị một bữa ăn trên máy bay hợp khẩu vị nhất với yêu cầu đa dạng của hành khách? Giải quyết những câu hỏi này có thể mang lại lợi ích lớn cho nhiều công ty và tổ chức. Những bài toán như vậy ngày càng xuất hiện nhiều hơn 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. Chúng là những bài toán ra quyết định với dữ liệu không đầy đủ hoặc không được định nghĩa rõ ràng, đặc biệt trong điều kiện thiếu thông tin. 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 đề xuất vào năm 1965. Công trình này đã khai sinh một ngành khoa học mới và nhanh chóng được các nhà nghiên cứu công nghệ mới chấp nhận. 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 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. 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ờ. Nền tảng cơ sở của logic mờlý thuyết tập mờ.

1.1. Tổng quan về Logic mờ và Ứng dụng Hệ thống Mờ

Logic mờ là một hình thức của logic nhiều giá trị, trong đó các giá trị chân lý của các biến có thể là bất kỳ số thực nào trong khoảng từ 0 đến 1. Nó được sử dụng để xử lý các khái niệm mơ hồ và không chính xác, và nó được áp dụng rộng rãi trong các lĩnh vực như điều khiển mờ, nhận dạng hệ thống, và trí tuệ nhân tạo. Hệ thống mờ là một hệ thống sử dụng logic mờ để đưa ra quyết định. Chúng có thể được sử dụng để điều khiển các hệ thống vật lý, đưa ra dự đoán, hoặc chẩn đoán các vấn đề. Ứng dụng thực tế của hệ thống mờ rất đa dạng, từ điều khiển tự động trong các thiết bị gia dụng đến việc mô hình hóa mờ trong các hệ thống tài chính. Sự linh hoạt và khả năng xử lý thông tin không chắc chắn giúp hệ thống mờ trở thành một công cụ mạnh mẽ trong nhiều lĩnh vực.

1.2. Vai trò của Lớp Tập Mờ trong Hệ thống Điều khiển Mờ

Trong một hệ thống điều khiển mờ, lớp tập mờ đóng vai trò trung tâm trong việc biểu diễn và xử lý thông tin đầu vào. Lớp tập mờ định nghĩa các hàm thuộc (membership function), xác định mức độ mà một giá trị đầu vào thuộc về một tập mờ. Các tập mờ này đại diện cho các trạng thái hoặc điều kiện khác nhau của hệ thống, ví dụ như "nhiệt độ cao", "áp suất trung bình", hoặc "tốc độ chậm". Quá trình xử lý thông tin trong hệ thống mờ bao gồm các bước: mờ hóa (fuzzification), suy luận mờ (fuzzy inference), và giải mờ (defuzzification). Lớp tập mờ giúp chuyển đổi các giá trị đầu vào sắc nét thành các giá trị mờ, cho phép hệ thống suy luận dựa trên các quy tắc mờ (fuzzy rules) và đưa ra các quyết định điều khiển phù hợp.

II. Thách thức Vấn đề trong Thiết kế Lớp Tập Mờ Hiệu Quả

Việc thiết kế lớp tập mờ không phải lúc nào cũng đơn giản và dễ dàng. Một trong những thách thức lớn nhất là xác định các hàm thuộc phù hợp cho các tập mờ. Hình dạng và phạm vi của các hàm thuộc ảnh hưởng trực tiếp đến hiệu suất của hệ thống mờ. Việc lựa chọn các hàm thuộc không phù hợp có thể dẫn đến kết quả suy luận không chính xác hoặc hệ thống hoạt động không ổn định. Bên cạnh đó, việc xác định số lượng tập mờ cần thiết để biểu diễn một biến đầu vào cũng là một vấn đề quan trọng. Số lượng tập mờ quá ít có thể không đủ để mô tả chi tiết sự biến thiên của biến đầu vào, trong khi số lượng tập mờ quá nhiều có thể làm tăng độ phức tạp của hệ thống và gây khó khăn cho việc tinh chỉnh các quy tắc mờ. Ngoài ra, việc đảm bảo tính nhất quán và khả năng giải thích của các quy tắc mờ cũng là một thách thức không nhỏ. Các quy tắc mờ cần phải được thiết kế sao cho chúng phản ánh đúng hành vi của hệ thống và dễ dàng được hiểu bởi người vận hành.

2.1. Các yếu tố cần xem xét khi lựa chọn Hàm Thuộc Membership Function

Khi lựa chọn hàm thuộc cho lớp tập mờ, cần xem xét một số yếu tố quan trọng. Đầu tiên, cần xác định loại hàm thuộc phù hợp với bản chất của biến đầu vào. Các loại hàm thuộc phổ biến bao gồm hàm tam giác, hàm hình thang, hàm Gauss, và hàm sigmoid. Mỗi loại hàm thuộc có những ưu điểm và nhược điểm riêng, và việc lựa chọn phụ thuộc vào đặc điểm của dữ liệu và yêu cầu của ứng dụng. Thứ hai, cần xác định các tham số của hàm thuộc, chẳng hạn như vị trí, độ rộng, và hình dạng. Các tham số này cần được điều chỉnh sao cho hàm thuộc bao phủ đầy đủ phạm vi của biến đầu vào và phân bố hợp lý các giá trị mờ. Cuối cùng, cần đánh giá hiệu suất của hệ thống mờ với các hàm thuộc khác nhau và lựa chọn các hàm thuộc mang lại kết quả tốt nhất.

2.2. Tối ưu hóa số lượng Tập Mờ để Cải thiện hiệu năng hệ thống

Để tối ưu hóa số lượng tập mờ, có thể sử dụng một số phương pháp. Một phương pháp đơn giản là bắt đầu với một số lượng tập mờ nhỏ và tăng dần số lượng cho đến khi hiệu suất của hệ thống không còn cải thiện đáng kể. Một phương pháp khác là sử dụng các thuật toán clustering để phân nhóm dữ liệu và xác định số lượng tập mờ dựa trên số lượng cluster tìm được. Ngoài ra, có thể sử dụng các kỹ thuật học máy để tự động điều chỉnh số lượng tập mờ và các tham số của hàm thuộc dựa trên dữ liệu huấn luyện.

III. Phương pháp Thiết kế Lớp Tập Mờ Hướng Đối tượng và Cài đặt

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 xử lý các tập mờ là Kiểu UniSet dùng để quản lí các tập nền.FSet dùng để quản lí các tập mờ. Lớp tập mờ Fset được tham chiếu trên lớp tập nền UniSet. Như đã trình bày trong Chương 1: mọi tập mờ được xem là một thể hiện của tập nền với hàm thuộc cho trước. 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. 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).

3.1. Cài đặt lớp UniSet Quản lý Tập Nền trong C

Lớp 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. Thí dụ, Với tập nền 4 môn học, MonHoc = {Toan, Ly, Hoa, Sinh} thì hai trường dữ liệu của tập nền sẽ là:Size = 4;Name[1] = “Toan”; Name[2] = “Ly”; Name[3] = “Hoa”; Name[4] = “Sinh”;. Lớp này cung cấp các phương thức khởi tạo, hủy, cấp phát vùng nhớ, thay đổi kích thước, nạp tên phần tử, xuất tên phần tử và hiển thị tập nền.

3.2. Thiết kế FSet Lớp Tập Mờ Kế thừa UniSet

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. 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. 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.

3.3. Xây dựng các Toán tử và Hàm cho Phép toán trên Tập Mờ

Hàm copy và Toán tử copy (gán): 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 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 đến tập khác và ngược lại. Toán tử x[i] truy cập phần tử thứ i trong tập mờ x. Các toán tử cắt theo ngưỡng CutToFSet.CutToSet.StrongCutToFSet.StrongCutToSet.CutToSet01.StrongCutToSet01. Có sáu toán tử so sánh giữa hai tập mờ:hai tập mờ x và y bằng nhau .hai tập mờ x và y khác nhau.tập mờ x nhỏ thua (nằm trong) tập mờ y.tập mờ x nhỏ thua hoặc bằng tập mờ y.tập mờ x lớn hơn (bao) tập mờ y.tập mờ x bao hoặc bằng tập mờ y. Toán tử hợp, giao, phần bù.

IV. Ứng dụng Lớp Tập Mờ Bài Toán Thực Tế và Giải Pháp

Việc ứng dụng lớp tập mờ vào giải quyết các bài toán thực tế mang lại nhiều lợi ích, đặc biệt trong các lĩnh vực mà dữ liệu không chắc chắn hoặc không đầy đủ. Hệ thống mờ có khả năng xử lý thông tin mơ hồ và đưa ra các quyết định dựa trên các quy tắc mờ, giúp cải thiện hiệu suất và độ tin cậy của hệ thống. Ví dụ, trong lĩnh vực điều khiển tự động, hệ thống mờ được sử dụng để điều khiển nhiệt độ, áp suất, tốc độ, và các thông số khác của các thiết bị và quy trình công nghiệp. Trong lĩnh vực nhận dạng hệ thống, hệ thống mờ được sử dụng để phân loại và nhận dạng các đối tượng dựa trên các đặc trưng mờ của chúng. Trong lĩnh vực quản lý kinh tế và xã hội, hệ thống mờ được sử dụng để dự báo, đánh giá rủi ro, và ra quyết định trong các tình huống phức tạp.

4.1. Ứng dụng Điều khiển Mờ Điều khiển Thiết bị và Quy trình Tự động

Ứng dụng điều khiển tự động là một trong những lĩnh vực ứng dụng thành công nhất của hệ thống mờ. Hệ thống mờ có thể được sử dụng để điều khiển các thiết bị gia dụng như máy giặt, máy điều hòa, và lò vi sóng, cũng như các quy trình công nghiệp phức tạp như sản xuất xi măng, sản xuất điện năng, và xử lý nước thải. Ưu điểm của hệ thống điều khiển mờ là khả năng xử lý thông tin không chắc chắn, khả năng thích ứng với các điều kiện thay đổi, và khả năng được điều chỉnh dễ dàng để đáp ứng các yêu cầu khác nhau.

4.2. Ứng dụng Hệ Thống Mờ Ra quyết định trong môi trường Kinh tế

Trong lĩnh vực kinh tế, hệ thống mờ có thể được sử dụng để hỗ trợ ra quyết định trong các tình huống phức tạp và không chắc chắn. Ví dụ, hệ thống mờ có thể được sử dụng để dự báo doanh thu, đánh giá rủi ro tín dụng, và quản lý chuỗi cung ứng. Hệ thống mờ giúp các nhà quản lý đưa ra các quyết định tốt hơn dựa trên các thông tin không đầy đủ và không chính xác, và chúng có thể được điều chỉnh để phản ánh các thay đổi trong môi trường kinh tế.

V. Kết luận Hướng Phát triển về Thiết kế Cài đặt Lớp Tập Mờ

Trong khuôn khổ luận văn, đã trình bày về Thiết kế và cài đặt lớp tập mờ và ứng dụng trong các hệ thống mờ. 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. 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.

5.1. Những đóng góp chính và hạn chế trong luận văn

Luận văn này đã cung cấp một cái nhìn tổng quan về lý thuyết tập mờlớp tập mờ, đồng thời trình bày một phương pháp thiết kế và cài đặt lớp tập mờ bằng ngôn ngữ C++. Các ứng dụng thực tế đã được trình bày để minh họa tính hữu ích của lớp tập mờ trong việc giải quyết các bài toán thực tế. Tuy nhiên, luận văn vẫn còn một số hạn chế, chẳng hạn như phạm vi ứng dụng còn hạn chế, và chưa đề cập đến các phương pháp tối ưu hóa hệ thống mờ.

5.2. Các hướng nghiên cứu tiềm năng trong Tương lai

Trong tương lai, có thể tiếp tục nghiên cứu và phát triển các phương pháp thiết kế và cài đặt lớp tập mờ hiệu quả hơn, cũng như mở rộng phạm vi ứng dụng của hệ thống mờ trong các lĩnh vực khác nhau. Cần nghiên cứu và phát triển các phương pháp tối ưu hóa hệ thống mờ để cải thiện hiệu suất và độ tin cậy của hệ thống. Đồng thời, cần nghiên cứu và tích hợp hệ thống mờ với các công nghệ khác như mạng nơ-ron, thuật toán di truyền, và học sâu để tạo ra các hệ thống thông minh hơn và linh hoạt hơn.

02/10/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: KHÁI NIỆM VỀ TẬP HỢP VÀ TẬP HỢP MỜ 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 các số tự nhiên, ℕ = {0, 1, …, }. Tập các số tự nhiên dương, ℕ+ = {1, …, }. Tập các số nguyên, ℤ = {…, 2, 1, 0, 1, 2, …, }.

Tập các số nguyên dương, ℤ+ = ℕ+ = {1, 2, …, }. Tập các số hữu tỷ ℚ. Tập các số thực ℝ.2 Mô tả tập hợp Thông thường, để mô tả tập hợp người ta phát biểu các tính chất của các phần tử của tập đó. Thí dụ, ABC = {‘A’, … ,’Z’} là tập các chữ cái IN HOA trong bảng chữ cái tiếng Latin.

L = {2k+1 | k  ℕ} tập các số tự nhiên lẻ, L = {1, 3, …} Các đặc trưng của tập hợp Số phần tử trong tập T được gọi là lực lượng của tập T và thường được kí hiệu là |T|, ||T||, hoặc #T. Trong tài liệu này sử dụng kí hiêu #T. 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.vn download by : skknchat@gmail.com 5 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). Thí dụ ABC[‘Y’] = 1; ABC[‘?’] = 0; ABC[‘y’] = 0; Các tập có vô hạn phần tử được gọi là tập vô hạn. Các tập hợp số trong toán học, ℕ, ℤ, ℚ, ℝ là những tập vô hạn.3 Trật tự các tập hợp 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 X khá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à ngược lại.2 Các phép toán trên tập hợp Cho tập U gọi là tập vũ trụ hoặc tập nền. Ta xét các tập con của U. Trên các tập con X, Y, Z, … của U ta định nghĩa các phép toán sau đây [2, 4, 5].1 Phép hợp Hợp của hai tập X và Y cho ta tập chứa đồng thời các phần tử của X và của Y, X  Y = { e | e  X và e  Y } Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn download by : skknchat@gmail.2 Phép giao Giao của hai tập X và Y cho ta tập chứa các phần tử thuộc đồng thời X và Y, XY={e|eX eY} 1.3 Phép trừ Hiệu của hai tập X và Y cho ta tập chứa các phần tử của X và không thuộc Y, X  Y = { e | e  X và e  Y } Tập X’ = U  X được gọi là phần bù của tập X (đối với tập nền U).4 Biểu đồ Venn Biểu đồ Venn là một trong những công cụ trực quan biểu diễn các phép toán tập hợp.

Mỗi tập hợp được biểu diễn dưới dạng một hình tròn. Riêng tập nền được biểu diễn mhư một hình chữ nhật. Các phần tử thuộc tập hợp nào thì nằm trọn trong hình tròn tương ứng. Giao của hai tập hợp được biểu diễn như phần chung của hai hình tròn.

Hợp của hai tập hợp là toàn bộ phàn chung và phần riêng của chúng. Phần bù 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. LX R Y Z X X Y Z = X  Y, L = X  Y, R = Y  X XY UX X X Y XY X’ Các phép toán tập hợp Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn download by : skknchat@gmail.com 7 Thí dụ Xét các tập sau đây U = {x  ℕ | x ≤ 500}, S = {x  U | 100 ≤ x ≤ 200}, K = {x  U | 80 ≤ x ≤ 120}. Ngữ nghĩa U 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 mm đến 120 mm.5 Các tính chất của các phép toán tập hợp 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.vn download by : skknchat@gmail.com 8 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) 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.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ợ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 Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn download by : skknchat@gmail.com 9 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, 3, … Khai báo trên thiết lập một kiểu dữ liệu tên là Colors như là một đoạn của kiểu nguyên, trong trường hợp này, Colors chứa các trị nguyên từ 1 đến 15.

Sau, đó ta có thể khai báo một biến thuộc kiểu Colors, thí dụ, #include <iostream> #include <windows.h> using namespace std; enum Colors { DARKBLUE = 1, DARKGREEN, DARKTEAL, DARKRED, DARKPINK, DARKYELLOW, GRAY, DARKGRAY, BLUE, GREEN, TEAL, RED, PINK, YELLOW, WHITE }; main() { Colors c; c = RED; cout << c; //---------------------------- cout << "\n T H E E N D."; return 0; } enum Colors { DARKBLUE = 1, DARKGREEN, DARKTEAL, DARKRED, DARKPINK, DARKYELLOW, GRAY, DARKGRAY, BLUE, GREEN, TEAL, RED, PINK, YELLOW, WHITE }; hiển thị Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn download by : skknchat@gmail.com 10 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: index 1 2 3 4 5 6 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, Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn download by : skknchat@gmail.com 11 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 và Z, index 1 2 3 4 5 6 Name Vở Bút Tẩy Cặp Balo Kẹp giấy X 1 0 1 1 0 0 Y 1 1 0 1 0 0 Z 0 1 1 1 0 1 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 tử trong tập vũ trụ. Cho biết các mặt hàng cả ba người cùng mua? Giải M = X  Y  Z = 101100 and 110100 and 011101 = 000100 = {Cặp} Q2. Cho biết các mặt hàng X không mua? Giải K = X’ = U  X = ~101100 = 010011 = {Bút, Balo, Kẹp giấy} trong đó ~ là phép toán lật bit, đổi bít 0 thành 1 và ngược lại. Cho biết các mặt hàng X và Y cùng không mua?

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ