Tải bản đầy đủ (.doc) (30 trang)

SỬ DỤNG LOGIC MỜ ĐỂ XẤP XỈ HÀM 2 BIẾN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (615.88 KB, 30 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
------------

BÀI TẬP LỚN MÔN HỌC
MỘT SỐ PHƯƠNG PHÁP TÍNH TOÁN MỀM
ĐỀ TÀI: SỬ DỤNG LOGIC MỜ ĐỂ XẤP XỈ HÀM 2 BIẾN

Giáo viên hướng dẫn: T.S Nguyễn Bá Nghiễn
Nhóm sinh viên thực hiện: Nhóm 3

Lớp: ĐH KHMT1_K7
THÀNH VIÊN TRONG NHÓM:
1. PHAN TIẾN HƯỞNG: 0741060043
2. NGHIÊM XUÂN HẢI: 0741060042
3. ĐÀO VĂN THUYÊN:0741060092
4. NGUYỄN ĐỒNG THỊNH:0741060070
5.HOÀNG MINH PHÚC:0741060033

Năm 2015
1


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ô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 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 sử 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ư hệ dự báo, nhận dạng, robot, 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 hòa nhiệt độ, 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 hoạch đượ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.

2


Chúng em xin trân thành cảm ơn T.S Nguyễn Bá Nghiễn đã giúp đỡ chúng em
thực hiện đề tài : Sử dụng logic mờ để xấp xỉ hàm 2 biến.
Trong quá trình làm bài không tránh được sai sót, nhóm 3rất mong thầy và các
bạn đóng góp ý kiến để bài làm của chúng em được tốt hơn.

3


MỤC LỤC

MỤC LỤC.............................................................................................................4

A, CƠ SỞ LÝ THUYẾT.........................................................................6
I, Logic mờ............................................................................................................6
1, Giới thiệu.......................................................................................................6
2, Tập mờ...........................................................................................................7
II, Thiết kế hệ thống mờ......................................................................................10
1, Các yếu tố xây dựng mô hình logic mờ.......................................................10
2, Quy trình hoạt động của logic mờ...............................................................11
3, Phương pháp xây dựng mô hình..................................................................12
4, Các phương pháp giải mờ............................................................................13
5, Công cụ thực hiên logic mờ.........................................................................15

B, ÁP DỤNG LOGIC MỜ VÀO CÀI ĐẶT ỨNG DỤNG ĐIỀU
KHIỂN TỐC ĐỘ XE Ô TÔ.................................................................17
I, Mục tiêu và thiết kế..........................................................................................17
1, Mục tiêu.......................................................................................................17
2, Thiết kế ứng dụng........................................................................................17
II, Phân tích thuật toán xây dựng điều khiển mờ cho xe ô tô..............................18
1, Xây dựng các biến ngôn ngữ.......................................................................18
2, Xây dựng hàm phụ thuộc.............................................................................18
3, Xây dựng và tối ưu các luật mờ...................................................................21
4


III, Cài đặt ứng dụng minh họa............................................................................22
1, Chương trình minh họa bằng C#.................................................................22
2, Chạy chương trình.......................................................................................28

5



A, CƠ SỞ LÝ THUYẾT
I, Logic mờ
1, Giới thiệu
Logic mờ được được công bố lần đầu tiên tại Mỹ năm 1965 do giáo sư Lotfi
Zadeh.Kể từ đó, logic mờ có nhiều sự phát triển qua các chặng đường sau: phát
minh ở Mỹ,áp dụng ở châu Âu vào được đưa vào các sản phẩm thương mại ở Nhật
Bản.
Ứng dụng đầu tiên của logic mờ vào công nghiệp được thực hiện ở châu
Âu,Khoảng năm 1970. Được áp dụng vào các lĩnh vực khác nhau nhưng vẫn chưa
được chấp nhận rộng rãi trong công nghiệp
Kể từ năm 1980, logic mờ đạt được nhiều thành công trong ứng dụng đưa ra
quyết định và phân tích dữ liệu ở châu Âu.
Ở Nhật Bản, một trong những ứng dụng logic mờ tại đây là nhà máy xử lý
nước Fuji Electric vào năm 1983, hệ thống xe điện ngầm của Hitachi vào năm
1987.Có nhiều lý do để giải thích cho vì sao logic mờ lại được ưu chuộng. Thứ
nhất, các kỹ sư Nhật Bản thường bắt đầu từ những thuật toán đơn giản,sau đó mới
đi sâu vào vấn đề. Điều này phù hợp với việc logic mờ cho phép tạo nhanh các bản
mẫu rồi tiến tới tối ưu. Thứ hai, các hệ dùng logic mờ đơn giản và dễ hiểu. Sự
“thông minh”của hệ không nằm trong các hệ phương trình vi phân hay mã nguồn.
Logic mờ cung cấp cho họ một phương tiện rất minh bạch để thiết kế hệ thống.
Đến nay, có khoảng 200 sản phẩm bán trên thị trường và vô số ứng dụng
trong điều khiển quá trình – tự động hóa dùng logic mờ. Logic mờ có thể giải
6


quyết các vấn đề mà điều khiển kinh điển không làm được. Có khoảng 350 bằng
phát minh về logic mờ. Ngoài ra, logic mờ cũng được dùng để tối ưu nhiều quá
trình hóa học và sinh học.

2, Tập mờ
2.1, Định nghĩa tập mờ
Các tập mờ hay tập hợp mờ (Fuzzy Set) là một mở rộng của lý thuyết tập
hợp cổ điển và được dùng trong logic mờ. Trong lý thuyết tập hợp cổ điển, quan hệ
thành viên của các phần tử trong một tập hợp được đánh giá theo kiểu nhị phân
theo một điều kiện rõ ràng – một phần tử hoặc thuộc hoặc không thuộc về tập hợp.
Ngược lại, lý thuyết tập mờ cho phép đánh giá từ từ về quan hệ thành viên giữa
một phần tử và một tập hợp, quan hệ này dược mô tả bằng một hàm liên
thuộc(membership function ) -> [0,1].
Tập hợp mờ là tập hợp mà mỗi thành phần là một bộ số ( x , µ( x ) ).
Các tập mờ được coi là một mở rộng của lý thuyết tập hợp cổ điển là vì với một
universe (Không gian tham chiếu hay không gian nền)nhất định, một hàm liên tục
có thể giữ vai trò của một hàm đặc trưng (indicator function) ánh xạ mỗi phần tử
tới một giá trị 0 hoặc 1 như trong khái niệm cổ điển.
Những tập mờ thường gặp đồ thị của hàm độ thuộc (membership function)
có hình dạng là hình tam giác hoặc hình thang mà người ta thường gọi vắn tắt là
“tập mờ hình tam giác” hoặc “tập mờ hình thang” như hình vẽ dưới đây:

7


Hình 1: Ba tập mờ chỉ trạng thái nhiệt độ Cold (lạnh), Warm (ấm) và Hot
(nóng) đều có dạng hình thang.
Theo như hình vẽ ta thấy trục nhiệt độ Warm (ấm) đều cắt cả trục nhiệt độ
Cold (lạnh) và Hot (nóng). Khi cắt trục nhiệt độ Cold tại điểm ta thấy là tương đối
lạnh. Ta có thể coi là hơi ấm hoặc tương đối lạnh.
Ngày nay,tập mờ và logic mờ được ứng dụng nhiều trong khoa học kỹ thuật
đặc biệt là trong điều kiện tự động trong hệ giúp quyết định trong tính toán hiệu
năng cao … Ví dụ: Trong máy giặt có ghi Fuzzy Logic Controller như chúng ta đã
gặp, máy có thể đo được độ bẩn, chất liệu và trong lượng đồ cần giặt từ đó ấn định

mức độ bột giặt và số nước cần dùng và các chức năng cần vận hành để giặt.
2.2, Các thông số đặc trưng cho tập mờ
Các thông số đặc trưng cho tập mờ là độ cao, miền xác định và miền tin cậy.

Hình 2: Độ cao,miền xác định, miền tin cậy của tập mờ.
+ Độ cao của tập mờ B(định nghĩa trên cơ sở M) là giá trị lớn nhất trong các
giá trị của hàm liên tục.
+ Miền xác địnhcủa tập mờ B(định nghĩa trên cơ sở M) được ký hiệu bởi S
là tập con của M có giá trị hàm liên thuộc khác không.

8


+ Miền tin cậy của tập mờ B(định nghĩa trên cơ sở M) được ký hiệu bởi
T,là tập con có giá trị hàm liên thuộc bằng 1.
2.3, Quan hệ mờ
Quan hệ mờ 2 ngôi R(X,Y) xác định bởi tập mờ R trong tích đề các XxY.
Trong trường hợp X và Y hữu hạn,R có thể được biểu diễn bởi ma trận với các giá
trị chỉ mức độ quan hệ của các cặp (x,y).
+ Phép đảo: của quan hệ mờ R (X,Y) là R-1(Y,X) cho bởi:
R-1(y,x) = R(x,y)
+ Phép kết nối: các quan hệ mờ P(X,Y ) và Q(X,Z) cho ta quan hệ mờ
R (X,Z) được định nghĩa bởi:
R(x,z) = [PoQ](x,z)
=max {min P(x,y), Q(y,z) | y ꞓ Y}
2.4, Logic mờ
+ Khái niêm:
Logic mờ (Fuzzy Logic) được phát triển từ lý thuyết tập mờ để thực hiện
lập luận một cách xấp xỉ thay vì lập luận chính xác theo logic vị từ cổ điển. Người
ta hay nhầm lẫn giữa mức độ với xác suất. Tuy nhiên, hai khái niệm này khác

nhau hoàn toàn, độ đúng đắn của logic mờ biểu diễn độ liên thuộc với các tập
được định nghĩa không rõ ràng chứ không phải khả năng xảy ra một biến cố hay
điều kiện nào đó.
+ Biến ngôn ngữ:
Biến ngôn ngữ là phần chủ đạo trong các hệ thống dùng logic mờ. Ở đây,
các thành phần ngôn ngữ mô tả cùng một ngữ cảnh được kết hợp lại.
+ 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 vũ trụ U nào đó thoải mãn tính chất P.
9


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.
+ Luật mờ:
Một luật mờ là biểu thức If – Then được phát biểu ở dạng ngôn ngữ tự nhiên
thể hiện sự phụ thuộc nhân quả giữa các biến.
Ví dụ: If nhiệt độ là lạnh và giá dầu rẻ Then sưởi ấm nhiều.

II, Thiết kế hệ thống mờ
1, Các yếu tố xây dựng mô hình logic mờ.

Quá trình mã hóa

Dữ liệu rõ
(Input)

Dữ liệu mờ

BỘ XỬ LÝ LOGIC MỜ


Dữ liệu mờ
(Input)

QUÁ TRÌNH GIẢI MÃ

(Output)

Dữ liệu đầu ra
(Output)

Hình 3: Cấu trúc và quy trình hoạt động của mô hình

10


2, Quy trình hoạt động của logic mờ
Mờ hóa

Thiết bị hợp

Giải mờ

thành

Luật điều khiển

11



+Khâu mờ hóa: thực hiện biến đổi các giá trị đầu vào thành một miền giá trị mờ
với hàm thuộc và biến ngôn ngữ tương ứng.
+Khâu thiết bị hợp thành: biến đổi các giá trị mờ của biến ngôn ngữ đầu vào
thành các giá trị mờ của biến ngôn ngữ đầu ra dựa trên các luật hợp thành đã xây
dựng.
+Khâu giải mờ: biến đổi các giá trị mờ của biến ngôn ngữ đầu vào thành các giá
trị mờ của biến ngôn ngữ đầu ra dựa trên các luật hợp thành đã xây dựng.
3, Phương pháp xây dựng mô hình
Trong hệ thống Logic mờ,có nhiều mô hình phục vụ cho việc xây dựng hệ
Logic mờ,sau đây ta sẽ tìm hiểu hai mô hình và ứng dụng của nó.
+Mô hình tam giác:

0

5

10

15

20

Hình 5: Mô hình tam giác trong việc xác định tốc độ
Ví dụ như biết “Tốc độ” bao gồm 3 giá trị ngôn ngữ là “Nhanh”, “Chậm” và
“Trung bình” tuy nhiên với một tốc độ thực tế là 50km/h thì tùy vào hoàn cảnh ta
có thể cho là nhanh, chậm hay là trung bình. Như với tốc độ của một người đua xe
là chậm nhưng đối với trường hợp khác thì lại coi là trung bình hoặc nhanh. Như
vậy có nghĩa là đối với mô hình tam giác tại từng “hoàn cảnh” sẽ lại có một sự
đánh giá khác nhau hay nói cách khác thì độ “mờ” biến thiên nhanh hơn.


12


+Mô hình hình thang:
Nếu như mô hình tam giác là mô hình Logic mờ được sử dụng trong trường
hợp mà giá trị của các biến ngôn ngữ được xác định một cách nhạy cảm và độ mờ
biến thiên nhanh thì mô hình thang lại mang tính chất gần với Logic Boolean và
nó có độ biến thiên mờ tương đối thấp.

Hình 6:Mô hình hình thang trong việc xác định nhiệt độ
Theo như hình vẽ trên ta thấy khoảng nhiệt độ lạnh kéo dài hơn và độ dài của đỉnh
hình thang,trong khoảng nhiệt độ này hệ thống giữ cố định việc coi nhiệt độ là
lạnh, sự biến thiên (mờ hóa) chỉ xảy ra ở các cạnh bên (Không vuông góc) của
hình thang. Theo ví dụ: thì khoảng lạnh ở khoảng 20 độ có sự mềm dẻo trong
khoảng lạnh hay ấm.
4, Các phương pháp giải mờ
+Phương pháp cực đại:

13


Hình 7:Phương pháp giải mờ cực đại
Phương pháp này tìm giá trị rõ y’ = y1 hay y’ = y2 thông qua giá trị mờ cực
đại H. Ứng với miền đạt giá trị cực đại H, ta có khoảng G=[y1,y2]. Bất cứ giá trị y’
ꞓ G đều có thể là giá trị rõ cần tìm sau khi giải mờ.
Khi có nhiều giá trị rõ y’ ꞓ G đều đạt giá trị cực đại tại H, ta có thể xem xét
để lấy y’ theo một trong các nguyên lý phụ:
Nguyên lý trung bình y’ theo công thức:
y’
Nguyên lý cận trái.

Nguyên lý cận phải.
+Phương pháp điểm trọng tâm:
Công thức để tính được giá trị y’ được cung cấp như sau:

y’=
Với S là miền xác định của tập mờ B’

Hình 8: Phương pháp điểm trọng tâm

14


Tùy theo nhu cầu mà hệ điều khiển nên áp dụng phương pháp giải mờ thích
hợp để tìm được giá trị rõ.

5, Công cụ thực hiên logic mờ
Việc thiết kế hệ điều khiển mờ có thể thực hiện bằng phương pháp khác
nhau như là thiết kế hệ mềm hoặc thiết kế hệ cứng. Mỗi phương pháp có những
ưu nhược điểm riêng,thiết kế hệ cứng cho phép người thiết kế đánh giá được các
luật mờ một cách nhanh chóng nhưng việc thiết kế theo cách này thường tốn kém.
Thiết kế hệ mềm là cách tốt nhất để xây dựng nên một hệ điều khiển mờ, bằng
cách sử dụng các phần lập trình có sẵn và có thể mô phỏng hệ thống.
Thiết kế hệ mềm có thế sử dụng các phần mềm chuyên nghiệp như
Matlab,FuzzyTech,Winfact,.. Việc này cho phép nhanh chóng xây dựng được một
hệ mờ. Nhưng trở ngại lớn nhất là về kinh tế.Việc thiết kế hệ mềm có thể sử dụng
các ngôn ngữ lập trình như C++,C# …
Trước khi định lựa chọn ngôn ngữ lập trình để giải quyết bài toán logic
mờ,chúng ta cần nắm được những nhiệm vụ cần giải quyết:
- Cài đặt cấu trúc dữ liệu mô tả tập mờ và các phép toán trên tập mờ.
- Cài đặt cấu trúc dữ liệu mô tả tập các luật suy diễn và các thao tác xử lý

liên quan
- Cài đặt và vận hành Motor suy diễn.
- Ghép nối máy tính với cácthiết bị điều khiển
- Các thao tác thông dụng như lưu trữ công việc,kết xuất dữ liệu.
Ngôn ngữ được lựa chọn trong bài tập lớn này là ngôn ngữ lập trình C#
vì các lý do sau:
- Quản lý mã nguồn tốt.
- Thư viện cài đặt cấu trúc dữ liệu và giải thuật cơ bản được cung cấp đầy
đủ, sử dụng tiện lợi
15


- Microsoft Visual Studio 2010 (Microsoft Visual C#) thuận tiện trong việc
cài đặt và thiết kế, tiết kiệm chi phí …
III, Một số ứng dụng của Logic mờ
Logic mờ có thể điều khiển các thiết bị gia dụng như máy giặt (cảm
nhận kích thước mật độ của bột giặt,lượng nước và điều chỉnh các chu kỳ
-

giặt theo đó ).
Nhiệt độ của tủ lạnh
Máy điều hòa nhiệt độ.
Thang máy
Camera
Nồi cơm điện
Trí tuệ nhân tạo trong game
Nhận dạng mẫu trong cảm nhận từ xa (Remote Sensing)
Các bộ lọc ngôn ngữ tại các bản tin, diễn đàn(message Board) và phòng

chat để lọc bỏ các đoạn văn bản khiếm nhã …

- Xử lý ảnh số như phát hiện biên,điểm nhiễu …
- Các hệ thống con của ô tô và các phương tiện lưu thông khác,chẳng hạn
hệ thống con như ABS và quản lý hơi
- Phần mềm MASSIVE sử dụng trong điện ảnh giúp diễn ra các đội quân
lớn,tạo các chuyển động một cách ngẫu nhiên vào có thứ tự

16


B, ÁP DỤNG LOGIC MỜ VÀO CÀI ĐẶT ỨNG DỤNG ĐIỀU
KHIỂN TỐC ĐỘ XE Ô TÔ
I, Mục tiêu và thiết kế
1, Mục tiêu
Ngày nay nhiều trang bị được nhúng vào trong logic mờ để cho việc sử dụng
nó dễ hơn, tiện lợi hơn.Và ứng dụng quan trọng được nhúng logic mờ vào đó là
ứng dụng điều khiển tốc độ xe ô tô.
2, Thiết kế ứng dụng
Hệ thống điều khiển mờ được thiết kế gồm :
- Giá trị đầu vào gồm: Nhiệt độ không khí (Temperature) và độ bao phủ
-

(Cloud Cover)
Bộ mờ hóa
Các luật điều khiển tốc độ xe
Bộ suy diễn
Bộ giải mờ
Giá trị đầu ra (tốc độ của xe ô tô)

Hình 9: Thiết kế hệ thống điều khiển mờ
17



II, Phân tích thuật toán xây dựng điều khiển mờ cho xe ô tô
1, Xây dựng các biến ngôn ngữ
Với biến ngôn ngữ Temperature(Nhiệt độ) ta có tập mờ sau:
Temperature : {Freezing , Cool, Warm, Hot}
Với biến ngôn ngữ Cover (Độ bao phủ ) ta có tập mờ sau:
Cover : {Sunny , Partly Cloudy, Overcast }
Với biến ngôn ngữ Speed (Tốc độ) ta có tập mờ sau:
Speed :{Fast , Slow}
2, Xây dựng hàm phụ thuộc
+Các loại hàm phụ thuộc:

Hình 10: Các dạng hàm phụ thuộc phổ biến
18


+Các hàm phụ thuộc của Temperature

+Hàm phụ thuộc Cover
19


+Hàm phụ thuộc Speed

20


+Xác định các luật mờ
Ma trân luật:

cover Tem
Sunny
Partly Cloud
Overcast

Freezing
Slow
Slow
Slow

Cool
Fast
Slow
Slow

Warm
Fast
Fast
Slow

Hot
Fast
Fast
Slow

3, Xây dựng và tối ưu các luật mờ
Ta có các luật như sau:
(R1) if Temperature is Freezing Then Speed is Slow
Freezing (Temperature )Slow (Speed )
21



(R2) If Cover is Sunny and Temperature is Cool Then Speed is Fast
Sunny(Cover)^ Cool(Temperature )Fast(Speed )
(R3)If Cover is Sunny and Temperature is Warm Then Speed is Fast
Sunny(Cover)^Warm(Temperature )Fast(Speed )
(R4)If Cover is Sunny and Temperature is Hot Then Speed is Fast
Sunny(Cover)^Hot(Temperature )Fast(Speed )
(R5)If Cover is Partly Cloudy and Temperature is Cool Then Speed is Slow
Partly Cloud(Cover)^Cool(Temperature )Slow(Speed )
(R6)If Cover is Partly Cloudy and Temperature is Warm Then Speed is Fast
Partly Cloudy(Cover)^Warm(Temperature )Fast(Speed )
(R7)If Cover is Partly Cloudy and Temperature is Hot Then Speed is Fast
Partly Cloudy(Cover)^Hot(Temperature )Fast(Speed )
(R8)If Cover is Overcast Then Speed is Slow
Overcast(Cover)Slow (Speed )
III, Cài đặt ứng dụng minh họa
1, Chương trình minh họa bằng C#
+Hàm phụ thuộc:
classHamphuthuoc
{
publicdouble Freezing(double a)
{
double x;
if (a < 30)
x = 1;
elseif (a >= 50)
x = 0;
else
x = (50 - a) / 20;

return x;
}
22


publicdouble Cool(double a)
{
double x=0;
if (a < 30)
x = 0;
if (a >= 70)
x = 0;
if (a >= 50 && a <= 70)
x = (70 - a) / 20;
if(a>=30 && a<50)
x = (a - 30) / 20;
return x;
}
publicdouble Warm(double a)
{
double x=0;
if (a < 50)
x = 0;
if (a >= 90)
x = 0;
if (a > 50 &&a<70)
x = (a-50) / 20;
if (a > 70 && a < 90)
x = (90-a) /20;
return x;

}
publicdouble Hot(double a)
{
double x;
if (a < 70)
x = 0;
elseif (a >= 90)
x = 1;
else
x = (a-70)/20;
return x;
}
publicdouble Sunny(double a)
23


{
double x;
if (a < 20)
x = 1;
elseif (a >= 40)
x = 0;
else
x = (40-a)/ 20;
return x;
}
publicdouble Partly(double a)
{
double x;
if (a <= 20)

x = 0;
elseif (a >= 80)
x = 0;
elseif (a > 20 && a < 50)
x = (a - 20)/ 30;
else
x = (80 - a)/30;
return x;
}
publicdouble Overcast(double a)
{
double x;
if (a < 60)
x = 0;
elseif (a >= 80)
x = 1;
else
x = (a-60)/20;
return x;
}
}
}
+Quá trình tính:
24


classQuatrinhtinh
{
publicstaticdouble cool;
publicstaticdouble freezing;

publicstaticdouble hot;
publicstaticdouble warm;
publicstaticdouble sunny;
publicstaticdouble partly;
publicstaticdouble overcast;
Hamphuthuoc ham = newHamphuthuoc();
publicdouble Tinhtocdo(double temperature, double cover)
{
double x;
cool = ham.Cool(temperature);
freezing = ham.Freezing(temperature);
hot = ham.Hot(temperature);
warm = ham.Warm(temperature);
sunny = ham.Sunny(cover);
partly = ham.Partly(cover);
overcast = ham.Overcast(cover);
//Chon phuong phap suy dien ma Mandami
//Toan tu suy dien max min
//Su dung phep hop thanh max min
//Su dung 4 luat da duoc xay dung san do bai nay quan trọng trong khâu giải mờ
double s1 = freezing; //rule1
double f2 = min(sunny, cool);//rule2
double f3 = min(sunny, warm);//rule3
double f4 = min(sunny, hot);//rule4
double s5 = min(partly, cool);//rule5
double f6 = min(partly,warm);//rule6
double f7 = min(partly, hot);//rule7
double s8 = overcast;//rule8
double fast = max(f6, max(f2,max(f4,max(f7,f3))));
double slow = max(s1, max(s5, s8));

x = (slow * 25 + fast * 75) / (slow + fast);
return x;
}
publicdouble max(double x,double y) {
if (x > y)
return x;
25


×