Luận văn Xây dựng chế độ dinh dưỡng tại trường mầm non bằng logic mờ kết hợp mạng neural và máy học

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH  
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN  
KHOA TOÁN – TIN HỌC  
BỘ MÔN ỨNG DỤNG TIN HỌC  
Digitally signed by Pham The Bao  
DN: CN = Pham The Bao, C = VN  
Reason: I am the author of this  
document  
Date: 2006.08.03 15:38:13 +07'00'  
Pham The  
Bao  
XÂY DỰNG CHẾ ĐỘ DINH DƯỠNG  
TẠI TRƯỜNG MẦM NON BẰNG  
LOGIC MỜ KẾT HỢP MẠNG  
NEURAL VÀ MÁY HỌC  
Giáo viên hướng dẫn : Thạc sĩ Phạm Thế Bảo.  
Sinh viên thực hiện :  
1. Phạm Thị Xuân Viên  
2. Đặng Trần Vũ  
3. Bùi Thanh Xuân  
0211303  
0211313  
0211316  
TP.Hồ Chí Minh, Tháng 7/2006  
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
.......................................................................................................................................................................................................  
Tp. Hồ Chí Minh, ngày ...... tháng ...... năm 2006  
Giáo viên hướng dẫn  
Th.S. Phạm Thế Bảo  
2
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
LỜI CẢM ƠN  
Chúng em xin bày tỏ lòng biết ơn sâu sắc đến Th.S Phạm Thế Bảo, dù rất bận rộn  
nhưng thầy luôn quan tâm và tận tình hướng dẫn cho chúng em trong suốt quá trình thực  
hiện luận văn ; thầy đã giúp đỡ chúng em rất nhiều trong quá trình học tập và gợi mở cho  
chúng em đến với đề tài này.  
Chúng em chân thành cảm ơn thầy Phạm Thi Vương và thầy Nguyễn Hiền Lương,  
các thầy đã giúp đỡ chúng em rất nhiều trong quá trình thực hiện đề tài và cung cấp cho  
chúng em nhiều tài liệu tham khảo có giá trị để chúng em thực hiện tốt khóa luận này.  
Xin chân thành cám ơn quý Thầy Cô trong khoa Toán – Tin học đã tận tình giảng  
dạy, trang bị cho chúng em những kiến thức quý báu trong suốt quá trình học tập và thực  
hiện đề tài.  
Cuối cùng xin chân thành cám ơn anh Phan Phúc Doãn và các bạn cùng lớp đã có  
những ý kiến đóng góp bổ ích giúp chúng em hoàn thành luận văn..  
Tp Hồ Chí Minh, ngày 10/7/2006  
3
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
MỤC LỤC  
Trang  
Lời Cảm Ơn  
Mục Lục  
Danh Mục Bảng Biểu, Hình Ảnh  
Bảng Ký Hiệu Các Chữ Viết Tắt  
3
4
5
6
Chương 1 TỔNG QUAN  
1.1 Đặt vấn đề ………………………………………………………………  
1.2 Các hướng giải quyết trong AI …………………………………………  
1.3 Lý do sử dụng FL …………………………….…………………………  
1.4 Kết hợp FL với các kỹ thuật AI khác ………………..…………………..  
9
9
18  
19  
Chương 2 CƠ SỞ LÝ THUYẾT  
2.1 Logic mờ  
2.1.1 Tập mờ ……………………………………………………………. 22  
2.1.2 Hàm thành viên …………………………………………………… 24  
2.1.3 Toán tử tập mờ ……………………………………………….  
28  
2.1.4 Luật mờ …………………………………………………………… 40  
2.1.5 Hệ thống vào/ra…………………………………………………… 42  
2.1.6 Mô hình suy luận mờ ……………………………………………… 44  
2.1.7 Khử mờ ……………………………………………………………. 48  
2.1.8 Hệ thống mờ - bộ điều khiển mờ …………………………………… 49  
2.1.9 Cách lựa chọn logic mờ cho từng hệ thống xây dựng …………… 52  
2.2 Khái quát về máy học……….……………………………….………………. 54  
2.3 Khái quát về mạng neural..……………………………………… ……………..57  
Chương 3 XÂY DỰNG THUẬT GIẢI  
3.1 Quy định chế độ dinh dưỡng trẻ em ……………………………………….  
63  
3.2 Nguyên tắc và các bước xây dựng thực đơn ở trường mầm non…………… 63  
3.3 Xây dựng tập mờ và hàm thành viên…….….……………………………..  
3.4 Xây dựng bộ lọc mờ bằng kỹ thuật máy học …………………………….  
3.5 Mạng neural kết hợp hệ mờ phát sinh luật  
66  
75  
và điều chỉnh trọng số…………………………………………..…………  
81  
Chương 4 CÀI ĐẶT VÀ ĐÁNH GIÁ  
4.1 Cài đặt ……………………………………………………………………….  
4.1.1 Phân tích – Thiết kế……………………………………………….. 86  
4.1.2 Mô hình……………………………………………………………. 94  
4. 2 Đánh giá và hướng phát triển ………………………………………….…… 99  
Tài liệu tham khảo  
101  
4
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
DANH MỤC BẢNG BIỂU, HÌNH ẢNH  
Trang  
18  
22  
Hình 1-1 . Các bước giải quyết một vấn đề  
Hình 2-1 . Hệ thống mờ và nền tảng kiến thức liên quan  
Hình 2-2 . Ví dụ minh họa đồ thị hàm thành viên  
Hình 2-3 . Đường biểu diễn của hàm đặc trưng và hàm thành viên của tập  
những người cao  
Hình 2-4 . Hàm S tăng  
Hình 2-5 . Hàm dạng chuông  
Hình 2-6 . Sử dụng toán tử hội mờ  
Hình 2-7 . Sử dụng toán tử giao mờ  
24  
25  
26  
26  
28  
28  
29  
32  
33  
34  
34  
35  
36  
37  
37  
38  
39  
42  
43  
Hình 2-8 . Toán tử bù mờ  
Hình 2-9 . Các toán tử AND và OR  
Hình 2-10 . Bốn toán tử t-norm chuẩn  
Hình 2-11 . Ví dụ về bốn toán tử t-norm chuẩn.  
Hình 2-12 . Toán tử t-norm Nilpotent Minimum  
Hình 2-13 . Toán tử t-norm thuộc họ Frank  
Hình 2-14 . Toán tử t-norm thuộc Họ Hamacher  
Hình 2-15 . Toán tử t-norm thuộc Họ Schweizer-Sklar  
Hình 2-16 . Toán tử t-norm thuộc Họ Yager  
Hình 2-17 . Bốn toán tử t-conorm S chuẩn  
Hình 2-18 . Ví dụ về bốn toán tử t-conorm chuẩn  
Hình 2-19 . Phân nhóm các bộ điều khiển theo số tín hiệu vào ra  
Hình 2-20 . Luật hợp thành là bộ não của điều khiển mờ  
Hình 2-21 . Hàm thành viên cho biến ngôn ngữ đầu vào có giá trị  
small, medium và large  
Hình 2-22 . Hàm thành viên cho biến đầu ra có giá trị small, medium và large  
Hình 2-23 . Hàm thành viên cho “Small” , “Medium” và “Large”  
Hình 2-24 . Cấu trúc của hệ thống mờ chuẩn  
Hình 2-25 . Cấu trúc của bộ xử lý mờ kết hợp khâu giải mờ và khử mờ  
Hình 2-26 . Cấu trúc của một bộ điều khiển mờ  
Hình 2-27 . Bộ điều khiển mờ cổ điển (Hình a)  
và bộ điều khiển mờ phân tán (Hình b)  
Bảng 2-28 . So sánh mạng neural và bộ điều khiển mờ  
Hình 3-1. Factor “lượng calo” đối với nhóm nhà trẻ  
Hình 3-2. Factor lượng calo đối với nhóm mẫu giáo  
Hình 3-3. Factor “tỉ lệ protein” đối với chuẩn một  
Hình 3-4. Factor “tỉ lệ lipit” đối với chuẩn một  
Hình 3-5. Factor “tỉ lệ gluxit” đối với chuẩn một  
Hình 3-6. Factor “tỉ lệ protein” đối với chuẩn hai  
Hình 3-7. Factor “tỉ lệ lipit” đối với chuẩn hai  
Hình 3-8. Factor “tỉ lệ gluxit” đối với chuẩn hai  
Hình 3-9. Mô hình bộ điều khiển mờ thứ nhất  
Hình 3-10 Mô hình bộ điều khiển mờ thứ hai  
Hình 3-11. Factor “tỉ lệ dinh dưỡng”  
45  
45  
47  
49  
50  
50  
51  
60  
69  
69  
70  
70  
71  
71  
72  
72  
73  
73  
74  
74  
Hình 3-12. Factor “giá tiền”  
5
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Hình 3-13. Factor “độ dùng lại”  
Hình 3-14. Phân khoảng giá trị mẫu  
75  
79  
80  
81  
87  
88  
89  
90  
91  
92  
93  
94  
95  
96  
96  
97  
97  
98  
98  
99  
Hình 3-15. Sử dụng dữ liệu mẫu để xây dựng cây quyết định  
Hình 3-16. Sử dụng cây quyết định để lọc dữ liệu  
Hình 4-1. Giao diện chính của chương trình.  
Hình 4-2. Sắp lịch ăn trưa trong một tuần.  
Hình 4-3. Sắp lịch ăn trưa trong một tháng.  
Hình 4-4. Hiển thị các danh sách các món ăn trong một ngày.  
Hình 4-5. Hiển thị danh sách các món ăn trong một tuần  
Hình 4-6. Hiển thị danh sách các món ăn trong một tháng.  
Hình 4-7. Báo cáo chi tiết của một bữa ăn trưa trong ngày.  
Hình 4-8. Mô hình ERD  
Hình 4-9. Mô hình DFD  
Hình 4-10. Chi tiết ô xử lý “xếp lịch”  
Hình 4-11. Chi tiết ô xử lý “cập nhật món ăn”  
Hình 4.12. Chi tiết ô xử lý “cập nhật nguyên liệu”  
Hình 4-13. Chi tiết ô xử lý “in ấn, báo cao”  
Hình 4-14. Chi tiết ô xử ly “tra cứu”  
Hình 4-15. Chi tiết ô xử lý “quản lý hệ thống”  
Hình 4-16. Mô hình ràng buộc dữ liệu  
6
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
BẢNG KÍ HIỆU CÁC CHỮ VIẾT TẮT  
FL  
MF  
χ
Fuzzy Logic  
Member function  
Logic mờ  
Hàm thành viên  
Hàm đặc trưng  
µ
Hàm thành viên  
X
Không gian nền  
A,B,…  
x,y,…  
AI  
Các tập mờ  
các biến ngôn ngữ  
Trí tuệ nhân tạo  
Artificial Intelligence  
The third in a series  
of identification  
ID3  
Thuật toán cây quyết đinh ID3  
ERD  
Entity Relationship  
Diagrams  
Mô hình thực thể quan hệ  
DFD  
ANFIS  
Data Flow Diagrams  
Adaptive Network Based  
Fuzzy Inference System  
Multi Input – Multi Output  
Single Input – Single Output Bộ điều khiển mờ  
Multi Input – Single Output Bộ điều khiển mờ  
Tagagi – Sugeno  
Mean Of Maximum  
Center Of Area  
Sơ đồ luồng dữ liệu  
Hệ mờ thích nghi  
MIMO  
SISO  
MISO  
TS  
MOM  
COA  
Bộ điều khiển mờ  
Mô hình suy luận mờ  
Phương pháp khử mờ điểm cực đại  
Phương pháp khử mờ điểm trọng tâm  
7
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Chương 1  
TỔNG QUAN  
1.1 Đặt vấn đề  
1.2 Các hướng giải quyết trong AI  
1.2.1. Các phương pháp tìm kiếm  
1.2.1.1. Các phương pháp tìm kiếm cổ điển  
1.2.1.2. Các phương pháp tìm kiếm trên đồ thị  
1.2.2. Thuật toán di truyền  
1.2.3. Mạng neural  
1.2.4. Khai khoáng dữ liệu  
1.2.5. Máy học  
1.2.6. Logic mờ  
1.3 Lý do sử dụng FL  
1.4 Kết hợp FL với các kỹ thuật AI khác  
8
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
1.1.Đặt vấn đề  
Hiện nay tại các trường mầm non, xây dựng khẩu phần ăn cho các bé chủ yếu được  
thực hiện bằng tay (thủ công), việc này thường mất thời gian và độ đa dạng của các bữa ăn  
là thấp hoặc không đảm bảo về chế độ dinh dưỡng. Chỉ ở vài trường qui mô lớn thì có  
thêm sự hỗ trợ của một số hệ thống bán tự động hoặc tự động.  
Trong nước hiện có phần mềm Babyfood do công ty Đạt An thực hiện, và phần mềm  
Nutrikids đang được khuyến khích sử dụng, trợ giúp việc sắp xếp bữa ăn cho các bé, tuy  
nhiên các hệ thống này không thực hiện hoàn toàn tự động mà vẫn phải thông qua khâu xử  
lý bằng tay của con người. Hệ thống Nutrikids của Công ty cổ phần mạng trực tuyến Việt  
Sin có thêm hệ thống thiết lập dưỡng chất , thiết lập các bữa ăn ngẫu nhiên từ các món ăn  
có trong cơ sở dữ liệu phong phú, nhưng không chú trọng đến vấn đề món ăn đó đã được  
sử dụng khi nào, hay các món ăn có kỵ nhau, một số thiết lập về dinh dưỡng không thể  
thay đổi, không dùng các kỹ thuật AI và việc sắp xếp khẩu phần ăn tại trường mầm non  
vẫn do người sắp xếp lịch ăn tại trường thực hiện thủ công lại. Giá của bộ phần mềm  
Nutrikids của Việt Sin là 990.000VNĐ  
Nước ngoài thì có phần mềm tự động Nutrikids, nhưng có giá khá cao: bốn module,  
mỗi module có giá khoảng 250-300USD, và được xây dựng trên nền tảng chế độ dinh  
dưỡng của trẻ phương Tây nên không phù hợp.  
Trong khi đó vấn đề tin học hoá ở các trường mầm non đang được mở rộng và  
khuyến khích phát triển, từ chương trình dạy học cho tới dinh dưỡng của trẻ. Do đó việc  
phát triển một hệ thống dinh dưỡng tự động mới, phù hợp cho các trường mầm non trong  
nước là cần thiết và khả thi.  
Đề tài được thực hiện với một số mục đích sau:  
•
Sắp tự động lịch ăn trưa cho trẻ mầm non trong một tháng với lượng dinh  
dưỡng phù hợp trong từng ngày, có độ dùng lại thấp, không có các món ăn  
kỵ nhau.  
•
Hỗ trợ nhà trường trong việc tính toán lại những thay đổi của khẩu phần ăn  
có liên quan (chẳng hạn, nếu giá cả thay đổi thì việc tính toán lại giá của  
từng khẩu phần ăn liên quan và cơ chế cho phép điều chỉnh quá trình sắp  
xếp là hết sức cần thiết)  
•
•
Giúp cho người quản lý dễ dàng in ra bảng chi tiết nguyên liệu (kèm theo  
giá cả ) cho bộ phận nấu ăn, cũng như kiểm tra, lập báo cáo hàng tuần ,  
hàng tháng.  
Giúp tra cứu bảng dinh dưỡng các chất, xem cách thức chế biến món ăn…  
1.2 Các hướng giải quyết trong AI  
1.2.1 Các phương pháp tìm kiếm:  
1.2.1.1 Các phương pháp tìm kiếm cổ điển  
Trong phương pháp này, chúng ta chọn một khẩu phần ăn, sau đó  
tiến hành so sánh khẩu phần này với các khẩu phần còn lại. Nếu khẩu phần  
nào đó tốt hơn, tức là khẩu phần mới đáp ứng tốt hơn với các điều kiện như  
9
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
điều kiện về calo, về tỉ lệ cân bằng các chất dinh dưỡng … đồng thời thỏa  
các điều kiện biên và/hoặc có chi phí nhỏ hơn,…thì chúng ta sẽ thay thế  
khẩu phần ban đầu bằng khẩu phần mới và quá trình sẽ lặp lại cho đến khi  
chúng ta duyệt qua toàn bộ không gian tìm kiếm.  
Chúng ta cần xác định trước không gian tìm kiếm, tức là không gian  
khẩu phần ăn. Đồng thời chúng ta cũng phải xác định được các tiêu chí hay  
các quy tắc cho phép so sánh, đối chiếu để có thể xác định được khẩu phần  
nào tốt hơn khẩu phần nào.  
Ưu điểm:  
Nếu xác định được các tiêu chí so sánh tốt, phương pháp này sẽ cho  
kết quả tối ưu nhất có trong không gian các khẩu phần ăn.  
Hạn chế:  
Việc tìm kiếm trên không gian khẩu phần ăn sẽ gây ra hiện tượng  
bùng nổ tổ hợp. Ví dụ, nếu chúng ta chỉ dùng ba món trong một khẩu phần  
ăn thì không gian mẫu sẽ bao gồm n3 mẫu với n là số món trong cùng một  
loại (canh, mặn, tráng miệng). Ví dụ, mỗi loại có 5 món ăn, khi đó không  
gian mẫu chúng ta có sẽ là 53 = 125; nếu mỗi loại tăng thêm một món ăn,  
không gian mẫu sẽ trở thành 63 = 226 . Rõ ràng, khi n lớn, việc tìm kiếm sẽ  
rất tốn kém. Nếu một khẩu phần không chỉ có ba món mà có thể dao động  
từ ba đến năm món thì việc tìm kiếm sẽ càng khó khăn hơn.  
Việc xác định các tiêu chí đánh giá để xác định một khẩu phần ăn tốt  
hơn một khẩu phần khác hay không là một vấn đề lớn. Mỗi món ăn bao  
gồm rất nhiều thành phần nên một khẩu phần ăn cũng sẽ có rất nhiều thành  
phần. Các khẩu phần ăn lại phải thỏa mãn nhiều điều kiện khác nhau về  
dinh dưỡng (calo, chất đạm, …), về tỉ lệ cân bằng giữa các chất, về giá cả,  
về độ ưa thích... Do vậy, việc xác định một khẩu phần thỏa mãn tất cả điều  
kiện tốt hơn khẩu phần khác là không dễ dàng. Việc so sánh sẽ càng trở nên  
phức tạp và nhiều khi không thể thực hiện được nếu các điều kiện này đan  
xen nhau, trái ngược lẫn nhau.  
Việc có nhiều điều kiện làm tăng chi phí thực hiện so sánh và tăng  
thời gian tìm kiếm.  
1.2.1.2 Các phương pháp tìm kiếm trên đồ thị  
Chúng ta có thể xây dựng cây trạng thái từ các món ăn. Các cây  
được xây dựng trên các tiêu chí định trước như các món trong một nút (hoặc  
trong các nút có nối với nhau) không được kỵ nhau (điều kiện biên) hay  
lượng calo phải nằm trong khoảng nào đó (điều kiện dinh dưỡng). Ngoài ra,  
chúng ta có thể áp dụng một số luật để cây không cao quá như giới hạn số  
calo, giới hạn số món ăn…  
Ưu điểm:  
Việc xây dựng cây tốt sẽ làm giảm đáng kể kích thước của không  
gian tìm kiếm. Hạn chế việc bùng nổ tổ hợp và loại bỏ các khẩu phần không  
thỏa các điều kiện nào đó. Điều này làm cho việc tìm kiếm trên cây sẽ thực  
hiện nhanh hơn rất nhiều so với các phương pháp tìm kiếm cổ điển. Việc  
10  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
xây dựng cây chỉ cần thực hiện một lần và sau này nếu có thêm một món  
mới chúng ta chỉ cần cập nhật lại cây mà không phải xây dựng lại từ đầu.  
Khuyết điểm:  
Tương tự việc xác định tiêu chí so sánh trong các phương pháp tìm  
kiếm cổ điển, việc xác định tiêu chí để xây dựng cây cũng rất khó khăn vì  
có nhiều điều kiện dinh dưỡng và điều kiện biên. Ngoài ra, các cây chỉ có  
thể cho kết quả đúng (tức là thỏa các điều kiện) chứ ít khi xác định được các  
kết quả tối ưu.  
Việc xây dựng cây (phụ thuộc vào các tiêu chí xây dựng cây) nếu  
thực hiện không tốt sẽ ảnh hưởng lớn đến các thuật toán áp dụng sau này.  
Chất lượng cây sẽ quyết định chất lượng của chương trình.  
Nếu cây lớn, thời gian tìm kiếm sẽ lâu hơn và sẽ xảy trường hợp một  
số khẩu phần hoặc món ăn sẽ không bao giờ được sử dụng  
1.2.2 Thuật toán di truyền  
Ý tưởng chính của thuật toán này xuất phát từ thế giới tự nhiên, các sinh vật  
sinh trưởng và phát triển. Đến một giai đoạn nào đó, chúng thực hiện giao phối và  
sinh sản. Quá trình giao phối và sinh sản luôn xuất hiện hai hiện tượng là di truyền và  
biến dị. Hiện tượng di truyền cho phép thế hệ sau tốt (có khả năng thích nghi) giống  
thế hệ trước (tức là chí ít cũng không làm xấu đi khả năng thích nghi của loài). Còn  
hiện tượng biến dị sẽ tạo ra các cá thể có khả năng mới. Nếu khả năng mới là tốt hơn  
(tức khả năng thích nghi của cá thể đó cao hơn) thì nó sẽ được truyền lại cho các cá  
thể khác ở thế hệ sau. Nếu khả năng mới là xấu hơn (tức khả năng thích nghi kém  
hơn) thì khả năng truyền lại cho các cá thể của sau sẽ ít hơn (chứ không phải là  
không có). Và dần dần, trong quá trình chọn lọc tự nhiên, các đặc tính hạn chế khả  
năng thích nghi của loài sẽ được loại bỏ hoặc thay thế bằng các đặc tính mới tốt hơn.  
Tương tự, thuật toán di truyền coi các mẫu hay các khẩu phần ăn trong bài  
toán của chúng ta là các nhiễm sắc thể, các nhiễm sắc thể sẽ được lai ghép với nhau  
để tạo ra các nhiễm sắc thể mới, đồng thời một số gen trong quá trình lai ghép bị đột  
biến cũng tạo thành các nhiễm sắc thể mới. Cuối cùng quá trình chọn lọc tự nhiên sẽ  
loại bỏ các nhiễm sắc thể có khả năng thích nghi kém ra khỏi quần thể.  
Biểu diễn các khẩu phần dưới dạng các nhiễm sắc thể  
Việc biểu diễn các khẩu phần dưới dạng các nhiễm sắc thể ảnh hưởng lớn đến  
việc cài đặt các phép toán như lai ghép hay đột biến. Trong thuật toán di truyền,  
chúng ta có thể biểu diễn các nhiễm sắc thể như một chuỗi nhị phân gồm n bit. Trong  
bài toán xếp lịch các bữa ăn trưa, trong mỗi loại (canh, mặn, tráng miệng), chúng ta  
biểu diễn mỗi món ăn là một chuỗi nhị phân gồm n bit, với n là số bit ít nhất có thể  
dùng để biểu diễn được tất cả món ăn. Ví dụ, giả sử có mười món canh, chúng ta xác  
định n theo công thức n ≥ log2 10 ≈ 3.3, suy ra n=4. Tương tự, có hai mươi món mặn  
thì chúng ta cần n=5 bit; có năm món tráng miệng, cần ba bit để biểu diễn. Cần chú ý  
là số món trong mỗi loại có thể khác nhau nên số bit dùng cho mỗi loại có thể không  
giống nhau.  
Sau khi xác định số bit cần để biểu diễn các món cho mỗi loại, chúng ta đặt  
các chuỗi bit cạnh nhau theo thứ tự xác định trước để biểu diễn các nhiễm sắc thể.  
Chẳng hạn, chúng ta đặt các chuỗi theo thứ tự canh, mặn và tráng miệng. Lấy lại ví  
11  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
dụ trên, chúng ta biểu diễn một nhiễm sắc thể như sau aaaabbbbbccc với các bit a  
dành cho món canh, b dành cho mặn và c cho tráng miệng.  
Ngoài cách biểu diễn bằng chuỗi nhị phân, chúng ta cũng có thể biểu diễn các  
khẩu phần ăn như một chuỗi n số nguyên, với n là số loại món ăn. Trong bài toán của  
chúng ta, n có giá trị là 3. Trong mỗi loại, chúng ta gán cho mỗi món ăn một số duy  
nhất, và thông thường các số được gán là các số nguyên dương và cách nhau 1 đơn  
vị. Tiếp tục ví dụ trên, chúng ta gán mười món canh các giá trị từ 0 đến 9, hai mươi  
món mặn các giá trị từ 0 đến 19, và 0 đến 4 cho các món tráng miệng. Và chúng ta  
cũng đặt các số cạnh nhau theo thứ tự xác định trước để biểu diễn nhiễm sắc thể.  
Theo ví dụ trên, nhiễm sắc thể có dạng như sau abc với a là số gán cho món canh, b  
cho món mặn và c cho tráng miệng.  
Lai ghép  
Lai ghép là phép toán thực hiện lai ghép hai nhiễm sắc thể (hay hai khẩu phần  
ăn) với nhau để tạo ra các nhiễm sắc thể (khẩu phần ăn) mới tốt hơn hay có khả năng  
thích nghi cao hơn (đáp ứng tốt hơn với các điều kiện). Với một xác xuất lai k cho  
trước, chúng ta tiến hành chọn các cặp nhiễm sắc thể (khẩu phần) và thực hiện lai  
ghép. Tùy thuộc vào việc biểu diễn các nhiễm sắc thể (hay khẩu phần) mà chúng ta  
có các phép lai khác nhau.  
Ví dụ: tiếp tục với ví dụ ban đầu, giả sử chúng ta có hai nhiễm sắc thể:  
aaaabbbbbccc và eeeeggggghhh. Chúng ta tiến hành lai ghép. Giả sử vị trí lai ghép  
được xác định là vị trí thứ sáu từ trái qua, sau khi lai ghép, chúng ta được hai nhiễm  
sắc thể mới là aaaabgggghhh và eeeegbbbbccc.  
Một vấn đề cần quan tâm trong phép lai là chúng ta cần kiểm tra các chuỗi  
biểu diễn các nhiễm sắc thể có hợp lệ hay không. Chẳng hạn, chúng ta chỉ gán các số  
từ 0 đến 9 cho các món canh, sau khi thực hiện phép lai, số biểu diễn món canh trong  
nhiễm sắc thể có thể có giá trị lớn hơn 9. Nếu xảy ra trường hợp đó, chúng ta cần  
thực hiện điều chỉnh cho phù hợp.  
Đột biến  
Đột biến cũng là một phép toán quan trọng trong thuật toán di truyền. Tùy  
vào việc biểu diễn nhiễm sắc thể mà chúng ta có các cài đặt khác nhau cho phép toán  
này. Tương tự như lai ghép, phép đột biến cũng căn cứ vào xác xuất đột biến để xác  
định nhiễm sắc thể nào đột biến. Phép toán này cũng nhằm tạo ra nhiễm sắc thể có độ  
thích nghi cao hơn.  
Ví dụ, giả sử nhiễm sắc thể 001110001001 được chọn để tiến hành đột biến  
và vị trí đột biến được xác định là bit đầu tiên tính từ trái. Sau khi đột biến, chúng ta  
thu được nhiễm sắc thể 10110001001.  
Trong ví dụ trên, ta thấy chuỗi bit biểu diễn món canh 1011 có giá trị là 11,  
nên chuỗi này không có món tương ứng với nó. Chính vì vậy chúng ta cũng cần có cơ  
chế kiểm tra và xử lý các trường hợp không hợp lệ.  
Chọn lọc  
Quá trình chọn lọc là quá trình chọn những nhiễm sắc thể (khẩu phần) có khả  
năng thích nghi cao và loại bỏ các nhiễm sắc thể (khẩu phần) có độ thích nghi thấp  
hơn. Tương tự như hai phép toán trên, việc cài đặt phép toán này cũng phụ thuộc vào  
cách biểu diễn các nhiễm sắc thể. Phép toán này thực hiện ước lượng khả năng thích  
nghi của các cá thể trong quần thể thông qua một hàm đánh giá. Các cá thể có độ  
12  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
thích nghi cao nhất sẽ được giữ lại và một chu kỳ hay một thế hệ mới sẽ ra đời. Thế  
hệ mới này cũng trải qua qua trình chọn lọc tự nhiên và cứ thế cho đến khi chúng ta  
thu được các cá thể (nhiễm sắc thể) tối ưu hay có khả năng thích nghi cao nhất.  
Hàm đánh giá  
Hàm được sử dụng để ước lượng độ thích nghi của các nhiễm sắc thể hay  
được dùng để đánh giá các khẩu phần ăn xem khẩu phần nào tốt hơn khẩu phần nào.  
Chúng ta phải xác định các tiêu chí để đánh giá. Thường hàm này trả về một giá trị số  
cho biết “độ tốt” của một khẩu phần ăn.  
Tỉ lệ lai  
Tỉ lệ lai thể hiện kỳ vọng về số cá thể trong quần thể sẽ được chọn để lai với  
nhau. Tỉ lệ lai thường dùng là 33%  
Tỉ lệ đột biến  
Tỉ lệ đột biến thể hiện kỳ vọng về số cá thể trong quần thể sẽ tạo ra đột biến  
trong quá trình sinh sản. Tỉ lệ đột biến thường dùng là 0.01% (Các tỉ lệ này có được  
trong thực nghiệm và tự nhiên)  
Số cá thể trong quần thể hay số khẩu phần ăn trong một tập các khẩu phần  
Số lượng cá thể (khẩu phần) trong quần thể (tạp các khẩu phần) sẽ được duy  
trì từ thế hệ này sang thế hệ khác. Số lượng cá thể (khẩu phần) càng nhiều thì việc xử  
lý càng tốn kém. Số lượng cá thể (khẩu phần) ít thì việc xác định nhiễm sắc thể (khẩu  
phần) tối ưu có thể cần nhiều chu kỳ (thế hệ) hơn mới có thể xác định được  
Số thế hệ  
Số lần sinh sản của một quần thể  
Ưu điểm  
Rõ ràng, với bài toán xác định khẩu phần, thuật toán di truyền cho phép hạn  
chế hay thu nhỏ không gian tìm kiếm. Thuật toán chỉ tập trung vào những vùng  
không gian mà khả năng xuất hiện món ăn “tốt”, tức là thỏa mãn tốt các điều kiện, là  
nhiều nhất. Phép lai ghép cho phép tiến gần đến khẩu phần tốt hơn và phép đột biến  
sẽ chuyển việc tìm kiếm đến vùng không gian khác có nhiều khả năng chứa khẩu  
phần “tốt” khác.  
Thông qua hàm đánh giá, chúng ta có thể biết được khẩu phần nào tốt nhất  
trong các khẩu phần có được mà không phải trực tiếp so sánh chúng với nhau. Điều  
này có thể làm giảm tính phức tạp của việc so sánh hay chọn lựa giữa các khẩu phần  
Thuật toán luôn đảm bảo sẽ tìm được khẩu phần tốt, nhưng không phải là tối  
ưu, sau số thế hệ được xác định trước. Nếu số thế hệ đủ lớn (đồng nghĩa với thời gian  
thực hiện lâu hơn), chúng ta có thể nhận được các khẩu phần gần tối ưu.  
Khuyết điểm  
Tuy thuật toán luôn cho ra khẩu phần “tốt” nhưng không đảm bảo đó là khẩu  
phần tối ưu. Độ “tốt” của khẩu phần phụ thuộc vào số thế hệ và số cá thể trong quần  
thể (số khẩu phần trong tập các khẩu phần) cũng như việc biểu diễn các nhiễm sắc  
thể (khẩu phần).  
13  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Việc biểu diễn các khẩu phần trong trong thuật toán di truyền thường có định  
dạng cố định. Chính vì vậy chúng ta không thể có đồng thời các khẩu phần có ba  
món và khẩu phần có bốn món trong cùng một thuật toán di truyền. Điều này hạn chế  
khả năng của chương trình vì chỉ cho phép số lượng món cố định, trong khi thực tế  
có thể thay đổi tùy theo các điều kiện khác nhau. Ngoài ra, việc thay đổi cách biểu  
diễn có thể dẫn đến việc phải viết lại toàn bộ chương trình. Điều này làm hạn chế khả  
năng mở rộng của chương trình.  
Thời gian thực hiện của thuật toán cũng là một vấn đề. Tuy so với các phương  
pháp tìm kiếm thì thuật toán di truyền thực hiện nhanh hơn, nhưng nếu phải trải qua  
rất nhiều thế hệ mới xác định được khẩu phần ăn “tốt” thì sẽ rất tốn kém.  
Việc xây dựng hàm đánh giá cũng phải được quan tâm. Làm thế nào để xây  
dựng các tiêu chí đánh giá, tiêu chí nào là quan trọng và tiêu chí nào ít quan trọng  
hơn,… Các tiêu chí sẽ ảnh hưởng rất lớn đến thuật toán vì nó quyết định các vùng mà  
thuật toán cần tập trung tìm kiếm. Chỉ cần đánh giá sai các tiêu chí, thuật toán có thể  
không cho kết quả tốt mà ngược lại, có thể cho các kết quả không thể chấp nhận  
được, thuật toán có thể rơi về cục bộ địa phương mà không rơi về điểm tối ưu. Việc  
xây dựng tiêu chí sẽ rất khó khăn vì các khẩu phần ăn có nhiều ràng buộc về dinh  
dưỡng hay các điều kiện biên.  
1.2.3 Mạng neural  
Mạng neural được dùng để phân loại hoặc đánh giá và lựa chọn một khẩu  
phần trong các khẩu phần ứng viên. Mạng có cấu tạo chung bao gồm một hoặc nhiều  
nút nhập, một hoặc nhiều nút xuất, không có hoặc có nhiều lớp ẩn, mỗi lớp ẩn có thể  
có một hoặc nhiều nút ẩn. Các nút nhập có các cung nối với các nút ẩn và có thể có  
các cung nối trực tiếp với các nút xuất, các cung này được gán trọng số thể hiện ảnh  
hưởng của một nút nhập với một nút ẩn hoặc nút xuất. Các nút thuộc lớp ẩn có thể  
nối với các nút ẩn khác (trong lớp ẩn sau, trước hoặc trong cùng lớp ẩn) hoặc nối với  
các nút xuất. Các cung này cũng được gán trọng số thể hiện ảnh hưởng của nút ẩn với  
các nút nối với nó. Các nút xuất có thể có các cung nối với các nút ẩn và các cung  
này cũng được gán trọng số. Ngoài ra, bản thân các nút ẩn và các nút xuất cũng có  
một trọng riêng gọi là trọng ngưỡng. Giá trị này xác định ảnh hưởng của một nút đối  
với đầu ra của nút đó.  
Các mạng luôn có hai trang thái là học và ánh xạ. Ở trạng thái học, các mạng  
sẽ sử dụng dữ liệu đầu vào được cung cấp để cập nhật các trọng sao cho thể hiện mặt  
lỗi tốt nhất (tức là lỗi trên mẫu học là thấp nhất có thể). Tuy nhiên, trong quá trình  
học cần tránh hiện tượng qua khớp xảy ra. Hiện tượng quá khớp là hiện tượng mạng  
hoạt động tốt trên dữ liệu học nhưng không tốt trên dữ liệu khác (không phải dữ liệu  
học). Trạng thái ánh xạ là trạng thái mà mạng sử dụng các trọng số được cập nhật  
trong quá trình học cho các mẫu mới để đưa ra các quyết định tương ứng.  
Ưu điểm  
Nếu được thiết kế tốt và có nhiều dữ liệu, thì sau quá trình luyện, mạng có thể  
được sử dụng để xác định kết quả tốt nhất mà nó tìm được. Các mạng có chất lượng  
thường cho kết quả đúng khoảng trên dưới 95%.  
Khuyết điểm  
14  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Khuyết điểm đầu tiên là mạng cần có dữ liệu để học hay luyện mạng. Càng  
nhiều dữ liệu, chất lượng của mạng càng cao. Tuy nhiên, trong bài toán xác định  
khẩu phần ăn, chúng ta không có dữ liệu để học. Điều này có thể khẳng định ngay là  
mạng nơron không thích hợp với bài toán này.  
Chính vì tránh tình trạng quá khớp nên chất lượng của mạng không bao giờ  
đạt được 100%. Chính vì vậy, mạng chỉ cho ra kết qua tốt nhất có thể trong giới hạn  
của nó chứ không thể cho ra giá trị tối ưu của bài toán.  
Việc xác định số nút ẩn hay số lớp ẩn cũng là vấn đề cần được quan tâm. Hiện  
tại, chưa có công thức cụ thể nào để xác định số lớp cũng như số nút ẩn mỗi lớp.  
Chúng ta chỉ có thể biết được điều này dựa vào phương pháp thử sai. Điều này sẽ gây  
tốn kém trong quá trình xây dựng mạng.  
Việc xác định tất cả tổ hợp có thể có giữa các món ăn có thể là một công việc  
đơn giản. Tuy nhiên, việc cho tất cả các tổ hợp đó vào mạng để nhận kết quả có thể là  
việc làm hết sức lãng phí vì vấn đề bùng nổ tổ hợp. Chúng ta có thể dừng quá trình  
này khi xác định được một khẩu phần thích hợp hoặc một khẩu phần đủ tốt. Nhưng  
điều này lại dẫn đến hệ quả là các khẩu phần xác định được lại không đảm bảo là  
khẩu phần tốt nhất.  
1.2.4 Khai khoáng dữ liệu  
Khai khoáng dữ liệu là kỹ thuật được dùng để rút trích tri thức từ các tập dữ  
liệu lớn một cách tự động. Các tri thức được rút trích thường là các tri thức mới, chưa  
biết. Hơn nữa, các tri thức mới phải thỏa mãn các yêu cầu hợp lệ, mới lạ, có ích và có  
thể hiểu được  
Chúng ta có kiểu dữ liệu ở đây là các chuỗi ký tự, giá trị số, các bit nhị  
phân,… được lưu trữ trên bộ nhớ ngoài. Thông tin là dữ liệu ở mức cao, đã được tinh  
chế và làm gọn để biểu thị đặc điểm của thông tin. Tri thức là thông tin tích hợp, thể  
hiện mối quan hệ giữa các dữ liệu hay các thông tin với nhau. Ta có thể hiểu tri thức  
là dữ liệu trừu tượng và được khái quát hóa ở mức cao.  
Ưu điểm  
Vì các kỹ thuật dùng trong khai khoáng dữ liệu đều dựa vào dữ liệu sẵn có để  
rút trích các tri thức nên các tri thức này thường rất có giá trị. Chẳng hạn, chúng ta  
muốn khẩu phần ăn có món mặn là A và món canh là B, và chúng ta không biết chọn  
món tráng miệng như thế nào cho hợp thì các tri thức rút trích được có thể cho chúng  
ta biết món tráng miệng nào là tốt nhất.  
Dựa vào các tri thức mới, chúng ta có thể xác định các món thường ăn chung  
với nhau (điều này sẽ có thể đảm bảo được các ràng buộc và chúng ta không phải mất  
công đi xác định lại chúng). Sau khi có được danh sách này, chúng ta có thể luân  
phiên thay thế các khẩu phần này.  
15  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Chính vì chỉ dựa vào dữ liệu cho trước nên các kỹ thuật này hoạt động rất  
hiệu quả, có thể xác định được khẩu phần ăn tối ưu ngay lập tức.  
Khuyết điểm  
Khuyết điểm đầu tiên phải nhắc đến là dữ liệu. Tất cả các kỹ thuật dùng trong  
khai khoáng dữ liệu đều cần dữ liệu và điều này chắc chắn không thể có trong bài  
toán của chúng ta. Do vậy, các kỹ thuật này không thể áp dụng được.  
Kế đến, các kỹ thuật này chỉ rút ra được các thông tin về các món ăn như món  
nào thường ăn chung với món nào hay món nào thì không ăn với món nào. Dựa vào  
các thông tin này chúng ta cũng có thể xác định khẩu phần ăn tương ứng. Tuy nhiên,  
các kỹ thuật này không thể mở rộng hay tạo ra các khẩu phần mới. Điều này sẽ dẫn  
đến việc trùng lặp nếu dữ liệu không đủ lớn.  
Việc mở rộng là khó khăn vì các tri thức rút trích được phụ thuộc hoàn toàn  
vào dữ liệu. Nếu muốn có các tri thức mới, cần cung cấp các dữ liệu mới và phải tiến  
hành lại để rút trích các tri thức mới.  
1.2.5. Máy học  
Phương pháp này mô hình hóa các hệ thống tự tổ chức, tự ổn định, tự hoàn  
thiện. Đặc trưng cơ bản của các hệ thống này là lượng tri thức bắt đầu từ con số 0 và  
tăng dần qua các thử ngiệm. Phương pháp này bao trùm phương pháp mạng neural và  
khai khoáng dữ liệu.  
Học có giám sát: quá trình học có tín hiệu hướng dẫn vào ra chính xác của  
thầy giáo, dữ liệu học vào ra của hệ thống phải được thiết lập trước. Sau quá  
trình học hệ thống sẽ tìm ra một luật thích hợp để thực hiện tốt công việc dự  
báo ngõ ra được kết hợp với ngõ vào mới của hệ thống.  
Ưu điểm: trong phương pháp này, hệ thống tự động suy luận để tạo ra kết  
quả tương ứng. Thông thường chỉ sau một vài bước lặp hệ thống có thể xác  
định được kết quả. Kết quả này thường là tối ưu vì các luật dùng trong hệ  
thống là do các chuyên gia trong lĩnh vực tương ứng tạo ra. Hệ thống này lý  
tưởng nếu chúng ta am hiểu lĩnh vực mà hệ thống được cài đặt và chúng ta có  
thể đưa ra được các luật suy diễn.  
Khuyết điểm: các luật là khuyết điểm chính của hệ thống. Làm thế nào xác  
định được các luật tối ưu hay đủ tốt để hệ thống có thể hoạt động tốt như  
mong muốn. Điều này chỉ có thể kiểm nghiệm qua quá trình kiểm thử và tiếp  
tục theo dõi trong quá trình hoạt động của hệ thống. Điều này dường như là  
không thể bởi vì với chương trình xác định khẩu phần ăn, chúng ta không thể  
liên tục theo dõi kết quả của hệ thống để có những chỉnh sửa kịp thời. Hơn  
nữa, điều đó quá tốn kém so với hệ thống của chúng ta.  
Việc tạo luật trong để xác định khẩu phần ăn tối ưu khó có thể thực  
hiện được các điều kiện. Việc xác định các luật đủ bao trùm các điều kiện là  
một công việc khó khăn và phức tạp.  
Vấn đề nữa cần đề cập là dữ liệu đầu vào. Càng nhiều dữ liệu đầu vào,  
hệ thống hoạt động càng kém hiệu quả. Việc bùng nổ dữ liệu có thể xảy ra  
nếu chúng ta bổ sung dữ liệu sau mỗi lần áp dụng luật vào lại dữ liệu cũ.  
16  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Chính vì vậy, khi áp dụng phương pháp này chúng ta cần chú ý đến vấn đề  
bùng nổ dữ liệu.  
Học không giám sát: còn được gọi là thể loại tự học, với thể loại học này,  
quá trình học không có sự trợ giúp bất kỳ thông tin hướng dẫn nào của thầy  
giáo, chỉ có dữ liệu đầu vào, hệ thống tự khám phá ra một luật thích nghi để  
tìm đầu ra được kết hợp với đầu vào mới từ tập các mẫu dữ liệu học đầu vào  
mong muốn.  
Ưu điểm: phương pháp này đơn giản hơn các phương pháp khác, nó chỉ cho  
biết một mẩu (khẩu phần) có thỏa điều kiện hay không. Chúng ta chỉ cần cho  
hệ thống học các mẫu (khẩu phần) positive, tức là các khẩu phần đã được  
chấp nhận. Sau nó, hệ thống có thể được dùng để xác định một khẩu phần có  
thể được chấp nhận hay không. Chúng ta có xem hệ thống này như một hàm  
nhiều biến, giá trị của hàm có thể dương hoặc âm tùy thuộc vào giá trị đầu  
vào.  
Khuyết điểm: chính vì tính đơn giản mà phương pháp này không cho kết quả  
tối ưu, hơn nữa chất lượng của hệ thống cũng không được đảm bảo. Ngoài ra,  
phương pháp này cũng cần dữ liệu để học nên phương pháp này không thể sử  
dụng trong bài toán xác định khẩu phần ăn.  
1.2.6 Logic mờ  
Trong thực tế, các thông tin mà chúng ta nhận được thường là các thông tin  
không rõ ràng hoặc không đầy đủ. Các phương pháp nêu trên không thể xử lý các  
thông tin dạng này. Các phương pháp trên hầu hết yêu cầu thông tin phải rõ ràng và  
đầy đủ. Tuy một số phương pháp khoáng phá dữ liệu có thể chấp nhận các dữ liệu  
không đầy đủ nhưng giá trị của các thuộc tính là giá trị rõ ràng, không nhập nhằng.  
Do vậy, chúng ta chỉ có thể sử dụng logic mờ để xử lý các thông tin không rõ ràng.  
Các thông tin trước khi được xử lý sẽ được mờ hóa. Sau đó, thông tin được  
mờ hóa sẽ được áp dụng các luật của hệ thống để cho ra kết quả mờ. Các luật này  
được xây dựng khi xây dựng hệ thống và các tham số cũng được điều chỉnh để thích  
hợp các thông tin mà hệ thống xử lý. Sau khi có kết quả mờ, kết quả này lại được giải  
mờ và chúng ta thu được kết quả mong muốn.  
Trong bài toán xác định khẩu phần ăn, các dữ liệu đầu vào của hệ thống là  
không chính xác hay không rõ ràng. Mỗi món ăn bao gồm nhiều thành phần như  
calo, đạm, chất béo,…Mỗi khẩu phần lại có nhiều món ăn, do đó cũng có nhiều thành  
phần. Giá trị các thành phần này thường không chính xác do quá trình chế biến món  
ăn và chúng thường dao động trong một khoảng cho trước. Ngoài ra, các điều kiện về  
dinh dưỡng cũng như các điều kiện biên cũng không rõ ràng. Chẳng hạn chúng ta có  
thể chấp nhận một khẩu phần ăn nếu lượng đạm của nó nằm trong một khoảng cho  
phép (được xác định trước). Hoặc khoảng thời gian giữa hai lần sử dụng liên tiếp của  
một món ăn càng lâu càng tốt. Các thông tin đó đều không rõ ràng. Chính vì vậy, việc  
sử dụng logic mờ trong bài toán này là hoàn toàn tự nhiên. Các giá trị mờ sẽ được  
đánh giá bằng hệ thống mờ và kết quả đầu ra sau khi được giải mờ sẽ cho ta biết  
“chất lượng” của khẩu phần ăn tương ứng. Các khẩu phần ứng viên sẽ lần lượt được  
đánh giá và khẩu phần được đánh cao nhất sẽ được chọn.  
Các luật sử dụng trong hệ thống mờ được xây dựng dựa trên các điều kiện  
(điều kiện dinh dưỡng cũng như điều kiện biên) và các thông tin mờ như khoảng giá  
17  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
trị của chất đạm mà một khẩu phần ăn phải có,…Các thông tin này đều sẵn có nên  
việc xây dựng luật sẽ đơn giản hơn vì chúng ta có cơ sở để xây dựng luật. Cũng chính  
vì có cơ sở nên chúng ta có thể đánh giá các luật được xây dựng tốt hay không. Vì  
chúng ta có thể đánh giá sát các điều kiện đối với một khẩu phần ăn nên chúng ta có  
thể nhận được một khẩu phần ăn tối ưu. Đây là lý do quan trọng trong việc chọn lựa  
phương pháp sử dụng trong bài toán xác định khẩu phần ăn.  
Tuy nhiên, khi xây dựng hệ thống, chúng ta sẽ gặp phải vấn đề kết hợp các luật  
lại với nhau. Chúng ta không thể sử dụng các luật riêng rẽ để đánh giá khẩu phần ăn  
vì các thông số của một khẩu phần ăn đều liên quan mật thiết với nhau. Ngoài ra,  
chúng ta cũng phải gán các trọng số cho từng luật vì không phải luật nào cũng quan  
trọng như nhau. Chẳng hạn khẩu phần có chứa hai món ăn kỵ nhau sẽ được đánh giá  
khác như thế nào với khẩu phần có lượng đạm thừa. Điều này làm nảy sinh vấn đề  
xây dựng bộ trọng số cho các luật.  
Việc xây dựng trọng số có thể tham khảo ý kiến của chuyên gia và cũng có  
thể dùng phương pháp thử sai hoặc kết hợp cả hai. Việc kết hợp các luật lại với nhau  
cũng không quá khó khăn vì lý thuyết mờ đã xây dựng được các mô hình kết hợp.  
Vấn đề là chúng ta phải xác định được mô hình nào phù hợp với bài toán của chúng  
ta.  
1.3 Lý do sử dụng Logic mờ  
Trong mục trên, chúng ta đã tham khảo sơ lược một số kỹ thuật trong lĩnh vực AI  
có thể áp dụng cho bài toán , đã nêu lên một số ưu khuyết điểm của từng kỹ thuật, và qua  
đó phần nào nói lên được vì sao lại sử dụng logic mờ cho bài toán của chúng ta. Trong mục  
này chúng ta sẽ thảo luận chi tiết hơn về lý do sử dụng logic mờ.  
Thông thường, các bài toán được giải quyết theo kiểu:  
Hình 1-1 . Các bước giải quyết một vấn đề.  
Tất cả các thao tác xử lý chính là ánh xạ từ những dữ liệu thu thập được để đưa ra  
một kết quả tương ứng với những dữ liệu đầu vào đó. Chúng ta sử dụng một hộp đen  
(Black Box) để thực hiện việc ánh xạ này. Như vậy thì trong hộp đen của chúng ta sẽ chứa  
những gì? Như mục trên đã trình bày, có rất nhiều thứ có thể đặt vào trong hộp đen này:  
Hệ thống mờ, hệ thống tuyến tính, hệ chuyên gia, mạng neural nhân tạo, phương trình vi  
phân, các phép toán nội suy … Tuy có nhiều cách có thể làm cho hộp đen hoạt động,  
nhưng cuối cùng việc sử dụng FL vẫn là cách tối ưu nhất. Lotfi Zadeh - cha đẻ của lý  
thuyết tập mờ, đã từng nhận xét: “Trong hầu hết các trường hợp, bạn có thể xây dựng một  
hệ thống phức tạp mà không cần phải sử dụng FL, tuy nhiên việc sử dụng FL sẽ nhanh hơn  
và chi phí rẻ hơn”.  
18  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Sau đây là một số nhận xét chung về FL:  
™ Logic mờ là một khái niệm rất dễ hiểu: Những khái niệm toán học đằng sau  
các suy luận mờ rất đơn giản. Điều đó làm cho hệ mờ đẹp “tự nhiên” khi  
người đọc tiếp cận với nó, đồng thời người đọc có khả năng đào sâu vào  
những kiến thức về hệ mờ mà không gặp phải những vấn đề quá phức tạp  
như trong các nhánh khác của lĩnh vực trí tuệ nhân tạo.  
™ Logic mờ mềm dẻo và linh hoạt.  
™ Logic mờ chấp nhận dữ liệu mơ hồ, không chính xác: Nếu quan sát kỹ bạn  
sẽ thấy rằng, mọi thứ đều không thực sự đúng và chính xác 100% , bất kì  
vấn đề nảy sinh trong thực tế đều chỉ mang giá trị tương đối cho dù bạn có  
thực hiện và kiểm tra nó cẩn thận đến chừng nào. Suy luận mờ đưa sự hiểu  
biết không đầy đủ này vào ngay trong quá trình xử lý mà không cần phải  
đợi cho đến khi có đầy đủ mọi thông tin về vấn đề cần xử lý.  
™ Logic mờ có thể mô hình hóa các hàm phi tuyến với độ phức tạp bất kì: Bạn  
có thể tạo ra một hệ thống mờ thỏa mãn tập dữ liệu vào – ra bất kì. Hệ  
thống này có thể thực hiện dễ dàng bằng cách sử dụng kỹ thuật thích nghi  
giống như ANFIS  
™ Logic mờ có thể được xây dựng dựa trên sự từng trải của các chuyên gia:  
Trái ngược với mạng neural nhân tạo (mạng này sử dụng một số lượng lớn  
dữ liệu cho trước để học và sau đó được sử dụng để đưa ra kết quả sau quá  
trình học của mình), logic mờ cho phép bạn xây dựng hệ thống dựa vào sự  
từng trải của các chuyên gia am hiểu hệ thống mà bạn xây dựng.  
™ Logic mờ có thể được sử dụng xen kẽ với các kỹ thuật truyền thống: Các hệ  
thống mờ không thay thế hoàn toàn các phương pháp điều khiển truyền  
thống. Trong nhiều trường hợp, logic mờ còn nâng cao và đơn giản hóa các  
thao tác điều khiển truyền thống này.  
™ Logic mờ dựa vào ngôn ngữ tự nhiên: Cơ sở của logic mờ chính là các giao  
tiếp, suy luận của con người về sự vật hiện tượng trong thế giới thực. Chính  
vì lẽ đó mà có nhiều cách phát biểu khác nhau trong logic mờ.  
Phát biểu sau cùng có lẽ là ý quan trọng nhất mà chúng ta nên thảo luận thêm.  
Ngôn ngữ tự nhiên được chúng ta sử dụng hằng ngày, đã được định hình và hoàn thiện qua  
quá trình hàng ngàn năm lịch sử của xã hội loài người. Các câu văn viết bằng ngôn ngữ đời  
thường có giá trị truyền thông rất lớn. Chúng ta ít khi ý thức được điều này, bởi vì nó là  
ngôn ngữ đời thường, chúng ta vẫn sử dụng hằng ngày. Chính vì logic mờ được xây dựng  
trên ngôn ngữ đời thường đã làm cho việc sử dụng logic mờ trở nên rất dễ dàng và thuận  
tiện.  
1.4 Kết hợp FL với các kỹ thuật AI khác  
Việc sử dụng một phương pháp độc lập thường cho một kết quả giới hạn bởi mỗi  
phương pháp đều có điểm mạnh và điểm yếu riêng của chúng. Hơn nữa các thông tin được  
yêu cầu xử lý thường không tối ưu cho một phương pháp, hay nói cách khác là chúng ta có  
thể áp dụng nhiều phương pháp khác nhau để xử lý các thông tin đó. Chính vì vậy, người  
ta thường kết hợp các phương pháp lại với nhau để tận dụng các ưu điểm của mỗi phương  
pháp. Các phương pháp bổ sung cho nhau để nâng cao chất lượng của quá trình xử lý  
thông tin.  
19  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Một vài ví dụ về việc kết hợp các phương pháp:  
• Mạng nơron + logic mờ: kết hợp này thường được sử dụng trong các hệ thống  
nhận dạng như nhận chữ viết, nhận dạng vân tay,…  
• Thuật giải di truyền + logic mờ: kết hợp này thường được sử dụng trong các  
hệ thống điều khiển tự động trong công nghiệp hay các công việc đầu tư, tiếp  
thị trong lĩnh vực thương mại…  
Như phần trước đã đề cập, việc sử dụng logic mờ là hoàn toàn tự nhiên và có cơ sở.  
Tuy nhiên, vì hệ thống phải đánh giá tất cả các khẩu phần ứng viên để chọn được khẩu  
phần tốt nhất nên chi phí sẽ cao nếu có nhiều khẩu phần ứng viên. Chính vì vậy, nếu chúng  
ta có thể giảm được số ứng viên đầu vào, chúng ta có thể tăng đáng kể hiệu quả của hệ  
thống.  
Chúng ta có thể sử dụng logic mờ kết hợp với phương pháp máy học – học có giám  
sát. Sử dụng các luật của máy học chúng ta có thể loại bỏ các khẩu phần không hợp lệ hoặc  
khả năng được chọn là rất thấp như khẩu phần có các món kỵ nhau, có cơ cấu năng lượng  
không phù hợp, vượt quá mức giá tiền cho phép, không được sử dụng trong một thời gian  
rất lâu,.… Điều này sẽ làm giảm đáng kể số lượng mẫu mà hệ thống cần đánh giá. Kết quả  
là chi phí cho việc đánh giá sẽ giảm xuống nhưng khẩu phần ăn được chọn sẽ vẫn tối ưu.  
Đây là phương pháp lý tưởng cho bài toán của chúng ta: hệ thống xây dựng được tạo  
thành từ ba bộ phận:  
• Thành phần máy học: đóng vai trò là bộ lọc dữ liệu, nhằm tăng tốc độ xử lý của bộ  
điều khiển mờ, bằng cách giảm số lượng dữ liệu vào bộ điều khiển mờ.Thành phần  
này gồm  
o Bộ lọc tĩnh: loại bỏ các khẩu phần có cơ cấu năng lượng không phù hợp với  
chuẩn dinh dưỡng. Vì cơ cấu năng lượng trong thực phẩm không thay đổi  
theo thời gian nên bộ lọc sẽ có các luật tĩnh cũng như các giá trị điều kiện là  
tĩnh.  
o Bộ lọc động: loại bỏ các khẩu phần có các món ăn kỵ nhau, có giá vượt xa  
mức cho phép,… Vì các giá trị này có thể thay đổi theo thời gian hay theo  
kinh nghiệm của người sử dụng nên bộ lọc sẽ có các luật tĩnh và các giá trị  
điều kiện động.  
o Bộ lọc sử dụng kỹ thuật máy học: Xây dựng cây quyết định cho phép tự  
phát sinh luật loại bỏ các dữ liệu dư thừa  
• Thành phần bộ điều khiển mờ: sẽ bao gồm hai bộ mờ  
o Bộ mờ thứ nhất: sẽ phân tích các khẩu phần ăn sau khi đã được lọc bớt dữ  
liệu qua 2 bộ lọc (bộ lọc tĩnh và bộ lọc động) để đưa ra tỉ lệ chọn cho các  
khẩu phần dựa trên cơ cấu năng lượng  
o Bộ mờ thứ hai: Dữ liệu sau khi qua bộ lọc máy học được phân tích bởi bộ  
điều khiển mờ thứ hai dựa trên tỉ lệ chọn theo cơ cấu năng lượng (được tính  
bởi bộ mờ thứ nhất) kết hợp với các điều kiện giá tiền ở mức cho phép, độ  
dùng lại thấp để đưa ra tỉ lệ chọn cuối cùng của các khẩu phần.  
• Thành phần mạng neural nhân tạo: Điều chỉnh trọng số cho bộ luật mờ, dựa trên  
các mẫu hoặc kiến thức của chuyên gia.  
Trong 3 thành phần xây dựng, bộ phận chủ yếu của hệ thống là các bộ mờ, hai thành  
phần còn lại chỉ đóng vai trò hỗ trợ nhằm tối ưu hoạt động của bộ điều khiển mờ :  
• Thành phần mạng neural: tối ưu độ chính xác của bộ điều khiển mờ  
• Thành phần bộ lọc: tối ưu tốc độ thực hiện của bộ điều khiển mờ  
20  
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM  
Tải về để xem bản đầy đủ
pdf 101 trang yennguyen 20500 Free
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Xây dựng chế độ dinh dưỡng tại trường mầm non bằng logic mờ kết hợp mạng neural và máy học", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfluan_van_xay_dung_che_do_dinh_duong_tai_truong_mam_non_bang.pdf