4.2 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
4.2.1 Tự đánh giá:
Ưu điểm:
- Giải quyết trong AI, kết hợp hệ mờ, neural và máy học
- Các bữa ăn được chọn sắp xếp đã đảm bảo được về giá thành, không có các
món kỵ nhau trong bữa, có độ dùng lại thấp
- Chương trình có khả năng sao lưu và khôi phục dữ liệu, nên ta có thể khôi phục
lại dữ liệu và sử dụng lại chương trình khi bị hư.
- Chương trình đã được chạy xếp lịch cho nhiều tháng và kết quả các bữa ăn thu
được vẫn đảm bảo tỉ lệ, thành phần dinh dưỡng trong mỗi bữa.
Khuyết điểm:
- Thiếu dữ liệu mẫu
- Vì thời gian ngắn nên chưa đủ thử nghiệm trên nhiều chỗ khác nhau
101 trang |
Chia sẻ: builinh123 | Lượt xem: 2049 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
với nhãn = các giá
trị thông thường hầu hết của Target_attribute trong Examples.
• Ngược lại
Begin
- A Å thuộc tính từ Attributes mà là tốt nhất* khi phân loại Examples
- Thuộc tính quyết định cho RootÅA
- For (mỗi giá trị có thể vi của A)
- Thêm nhánh dưới Root, tương ứng vi
- Với Examplesvi là tập con của Examples mà có giá trị vi
Nếu Examples rỗng : Thì bên dưới nhánh mới thêm vào
nốt lá với nhãn = các giá trị thông thường hầu hết của
Target_attribute trong Examples
Ngược lại bên dưới nhánh mới thêm vào cây con
ID3(Examplesvi, Target_attribute, Attributes – {A})
End
• Return Root
*Thuộc tính tốt nhất là thuộc tính mà mức độ thông tin cao nhất
Ví dụ: Giả sử có kết quả danh sách các bữa ăn sử dụng hay không sử dụng
trong môt khoảng thời gian.
Bữa Món Mặn Món Canh Tr.Miệng Trạng thái
1 A B C Có chọn
2 A B F Chưa chọn
3 A E F Có chọn
4 A E C Có chọn
5 D B C Chưa chọn
6 D B F Chưa chọn
7 D E C Có chọn
8 D E F Có chọn
• R = {“Có chọn” ,”Chưa chọn}
• P = tập hợp 8 bữa quan sát được
• 4 thuộc tính : Món Canh, Món Mặn, Tr.Miệng
Quinlan: Với mỗi thuộc tính dẫn xuất A còn có thể sử dụng để phân hoạch, tính :
• VA(j) = ( T(j , r1), T(j , r2) , , T(j , rn) )
• T(j, ri) = (tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất A là j và
có giá trị thuộc tính mục tiêu là ri ) / ( tổng số phần tử trong phân hoạch có giá trị thuộc
tính dẫn xuất A là j )
Trong đó r1, r2, , rn là các giá trị của thuộc tính mục tiêu
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
56
Như vậy nếu một thuộc tính A có thể nhận một trong 5 giá trị khác nhau thì nó sẽ
có 5 vector đặc trưng.
Một vector VA(j ) được gọi là vector đơn vị nếu nó chỉ có duy nhất một thành phần
có giá trị 1 và những thành phần khác có giá trị 0.
Thuộc tính được chọn để phân hoạch là thuộc tính có nhiều vector đơn vị nhất.
Trở lại ví dụ, lúc ban đầu (chưa phân hoạch):
VMặn(A) = (T(A,Có Chọn), T(A, Chưa chọn))
Số món mặn A là: 4
Số món mặn A đã chọn là: 3
Số món mặn A chưa chọn là : 1
Do đó : VMặn(A) = (3/4, 1/4)
Tương tự:
VMặn(D) = (2/4 , 2/4) = (0.5 , 0.5)
VCanh(B) = (1/4 , 3/4)
VCanh(E) = (4/4 , 0/4) = (1,0) (vector đơn vị)
VTr.Miệng(C) = (3/4 , 1/4)
VTr.Miệng(F) = (2/4 , 2/4)
Như vậy thuộc tính Món Canh có số vector đơn vị nhiều nhất nên sẽ được
chọn để phân hoạch.
Phân hoạch theo Món Canh (PB) tập dữ liệu còn lại là:
Bữa Món Mặn Tr.Miệng Trạng thái
1 A C Có chọn
2 A F Chưa chọn
5 D C Chưa chọn
6 D F Chưa chọn
Phân hoạch PB còn chứa những bữa “chưa chọn” và “có chọn”. Tiếp tục phân hoạch tập
này. Tính vector đặc trưng tương ứng với các thuộc tính còn lại
VMặn(A) = (1/2 , 1/2) = (1 , 1)
VMặn(D) = (0/2 , 2/2) = (0 , 1) (vector đơn vị)
VTr.Miệng(C) = (1/2 , 1/2) = (1,1)
VTr.Miệng (F) = (0/2 , 2/2) = (0, 1)
Hai thuộc tính “Món Mặn” và “Tr.Miệng” đều có 1 vector đơn vị. Ta có thể phân hoạch
một trong hai thuộc tính. Ta sẽ chọn thuộc tính “Món Mặn” để phân hoạch (PA)
Bữa Tr.Miệng Trạng thái
1 C Có chọn
2 F Chưa chọn
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
57
Cây định danh cuối cùng:
Biến đổi cây thành luật :
- If (Món canh = E) then (Trạng Thái = Có chọn)
- If (Món canh = B) and (Món Mặn = D) then (Kết quả = Chưa chọn)
- .
Từ các luật được thiết lập, ta thấy nếu bữa ăn có Món canh là B, Món Mặn D và Tráng
miệng là F thi chắc chắn không được chọn trong khoảng thời gian khảo sát, bộ lọc máy
học sẽ xóa những bữa ăn có ba món này trong tổ hợp.
2.3 Khái quát mạng neural
2.3.1 Não và neural sinh học
Não là tổ chức vật chất cao cấp, có cấu tạo vô cùng phức tạp, dày đặc các
mối liên kết giữa các nơron nhưng xử lý thông tin rất linh hoạt trong một môi
trường bất định.
Trong bộ não có khoảng 1011 – 1012 neural và mỗi neural có thể liên kết với
1014 neural khác qua các khớp nối. Những kích hoạt hoặc ức chế này được truyền
qua trục neural (axon) đến các neural khác.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
58
Sự khác biệt cơ bản giữa tính toán của não và tính toán theo thuật toán,
chương trình với sự trợ giúp của máy tính là:
+ Quá trình tính toán được tiến hành song song và phân tán trên
nhiều neural gần như đồng thời.
+ Tính toán thực chất là quá trình học, chứ không phải theo sơ đồ
định sẵn từ trước.
2.3.2. Mạng neural nhân tạo
2.3.2.1 Neural nhân tạo
Một neural nhân tạo phản ánh các tính chất cơ bản của neural sinh
học. Đầu vào của neural nhân tạo gồm n tín hiệu xi ( i = 1,2,,n). Đầu ra là
tín hiệu y. Trạng thái bên trong của neural được xác định qua bộ tổng các
đầu vào có trọng số wi ( i = 1,2,..n). Đầu ra y của neural được xác định qua
hàm phi tuyến f nào đó.
Như vậy mô hình định lượng của neural nhân tạo như sau:
y(t) = f(∑
=
n
i 1
wixi(t) - θ )
Ở đây net = ∑
=
n
i 1
wixi(t) = I(t) là tín hiệu tổng hợp đầu vào,
wi : các trọng số đặc trưng cho tính liên kết của các khớp
θ : ngưỡng kích hoạt neural
n : số tín hiệu đầu vào
f : hàm kích hoạt
Đầu ra : out = y(t) = f(net)
Có thể xem neural là một hàm phi tuyến nhiều đầu vào, một đầu ra.
Các neural có thể liên kết với nhau tạo thành mạng neural nhân tạo.
Synapse kích hoạt
Synapse ức chế
Dendrite
soma
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
59
2.3.2.2 Phương thức làm việc của mạng neural
Có thể chia làm hai giai đoạn:[1]
+ Tự tái tạo lại (reproduction)
+ Và giai đoạn học (learning phase)
Ở một mạng neural có cấu trúc bền vững, có nghĩa là vector hàm
trọng lượng đầu vào, khâu tạo đáp ứng và khâu tạo tín hiệu đầu ra đều cố
định không bị thay đổi về mặt cấu trúc cũng như tham số, thì mạng có một
quá trình truyền đạt xác định chắc chắn, tĩnh hoặc động phụ thuộc vào cấu
tạo của các neural trong mạng. Ở đầu vào của mạng xuất hiện thông tin thì
tại đầu ra cũng xuất hiện một đáp ứng tương ứng. Đối với mạng neural có
quá trình truyền đạt tĩnh, đáp ứng đầu ra xuất hiện ngay sau khi đầu vào
nhận được thông tin, còn đối với mạng neural có quá trình truyền đạt động
thì phải sau một thời gian quá độ ở đầu ra của mạng neural mới xuất hiện
đáp ứng. Xuất phát từ quan điểm mọi đáp ứng của neural đều tiền định tự
nhiên, có nghĩa là khi xuất hiện các kích thích ở đầu vào của mạng ở các
thời điểm khác nhau, các giá trị như nhau thì đáp ứng ở đầu ra ở các thời
điểm tương ứng cũng hoàn toàn giống nhau. Quá trình làm việc như vậy của
một mạng neural được gọi là quá trình tái diễn lại (reproduction phase). Khi
có thông tin ở đầu vào, mạng lưu giữ thông tin đó và dựa trên các tri thức
của mình đưa ra đáp ứng ở đầu ra phù hợp với lượng thông tin thu được từ
đầu vào.
Mạng neural khi mới hình thành còn chưa có tri thức, tri thức của
mạng hình thành dần sau một quá trình học. Mạng neural được dạy bằng
cách đưa vào đầu vào những kích thích và mạng hình thành những đáp ứng
tương ứng, những đáp ứng phù hợp với từng loại kích thích sẽ được lưu trữ,
giai đoạn này được gọi là giai đoạn học của mạng. Khi đã hình thành tri
thức, mạng có thể giải quyết các vấn đề cụ thể một cách đúng đắn. Đó có
thể là những vấn đề ứng dụng rất khác nhau, được giải quyết chủ yếu dựa
trên sự tổ chức hợp nhất giữa các thông tin đầu vào của mạng và đáp ứng
đầu ra.
Nhiệm vụ tổng quát của một mạng neural là lưu trữ động các thông
tin. Dạng thông tin lưu giữ đó chính là quan hệ giữa các thông tin đầu vào
của mạng và các đáp ứng đầu ra tương ứng, để khi có một kích thích bất kỳ
tác động vào mạng, mạng có khả năng suy diễn và đưa ra một đáp ứng phù
hợp. Đó chính là chức năng nhận dạng theo mẫu của mạng neural. Để thực
hiện chức năng này, mạng neural đóng vai trò như một bộ phận tổ chức các
nhóm thông tin đầu vào và tương ứng với mỗi nhóm là một đáp ứng đầu ra
phù hợp. Như vậy một nhóm bao gồm một loại thông tin đầu vào và một
đáp ứng ra. Các nhóm có thể được hình thành trong quá trình học và cũng
có thể hình thành không trong quá trình học.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
60
2.3.3 Kết hợp hệ mờ và mạng neural
2.3.3.1 So sánh bộ điều khiển mờ và mạng neural
STT Tính chất Mạng neural Bộ điều khiển mờ
1 Thể hiện tri thức (hình
thức của tri thức)
Thông qua trọng số, được
thể hiện ẩn trong mạng
Được thể hiện ngay tại
luật hợp thành
2 Nguồn của tri thức Từ các mẫu học Từ kinh nghiệm chuyên
gia
3 Xử lý thông tin không
chắc chắn
Định lượng Định tính và đinh
lượng
4 Lưu giữ tri thức Trong neural và trọng số
của từng đường ghép nối
nerual
Trong luật hợp thành
và hàm thuộc
5 Khả năng cập nhật và
nâng cao tri thức
Thông qua quá trình học Không có
5 Tính nhạy cảm với các
thay đổi của mô hình
Thấp Cao
Bảng 2-28.So sánh mạng neural và bộ điều khiển mờ
Từ mong muốn có được ưu điểm của cả nguyên lý mờ và mạng neural trong
một bộ điều khiển, người ta đã ghép chung bộ điều khiển mờ với mạng neural
thành bộ điều khiển mờ - neural (và nerual – mờ).
2.3.3.1 Kết hợp mờ và neural
2.3.3.1.1 Biểu diễn luật If – Then theo các cấu trúc mạng neural
Khối luật trong hệ SISO
Ri : If x là Ai Then y là Bi
Với Ai,Bi là các tập mờ, i= 1,n
Mỗi luật của khối trên có thể chuyển thành một mẫu dữ liệu cho mạng
neural bằng cách lấy phần If làm đầu vào, phần Then làm đầu ra của mạng, từ đo
chuyển khối luật thành tập dữ liệu :
((Ai,Bi)...(Ai,Bi))
Tương tự với khối MISO, chuyển khối luật
Ri :If x là Ai And y là Bi Then z là Ci
Với Ai, Bi, Ci là các tập mờ, i=1,..n, thành tập dữ liệu
((Ai,Bi),Ci), 1 ≤ i ≤ n
Với hệ MIMO, khối luật
Ri : If x là Ai And y là Bi Then r là Ci And s là Di
Với Ai, Bi, Ci, Di là các tập mờ, I = 1,..n
Được chuyển thành:
((Ai, Bi) ,(Ci, Di) , 1 ≤ i ≤ n
2.3.1.1.2 Phương pháp Umano – Ezawa
-Đặt [α1,α2] chứa miền xác định của biến ngôn ngữ đầu vào (Miền xác định
của Ai
-Đặt [β1,β2] chứa miền xác định của biến ngôn ngữ đầu ra (Miền xác định
của Bi)
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
61
-Với M,N nguyên dương, M ≥ 2 và N ≥ 2 đặt
xj = α1 + (j – 1)(α2 - α1)/(N – 1)
yi = β1 + (i – 1)(β2 - β1)/(M – 1)
với 1 ≤ i ≤ M và 1 ≤ j ≤ N.
-Rời rạc tập mờ thành các căp vào – ra :
{(Ai(x1), , Ai(xN)),(Bi(y1), ,Bi(yM))}, với 1 ≤ i ≤ n
-Định nghĩa kí hiệu
aij = Ai(xj), bij = Bi(yj)
Thì mạng neural mờ sẽ chuyển thành mạng neural rõ với N đầu vào và M
đầu ra
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
62
Chương 3
XÂY DỰNG THUẬT GIẢI
3.1 Quy định chế độ dinh dưỡng trẻ em.
3.2 Nguyên tắc và các bước xây dựng thực đơn ở trường mầm non
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 cho hệ mờ bằng kỹ thuật máy học
3.5 Neural Network kết hợp hệ mờ phát sinh luật và điều chỉnh trọng số
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
63
3.1 Quy định chế độ dinh dưỡng trẻ em.
Dinh dưỡng hợp lí: là khẩu phần ăn hằng ngày phải đủ về số lượng và cân đối về chất
lượng[14].
- Cân đối giữa các chất sinh năng lượng: đạm (protein), béo (lipit) , đường (gluxit).
- Cân đối giữa thức ăn có nguồn gốc động vật và thực vật.
Mỗi bữa ăn hằng ngày của trẻ cần đảm bảo đủ bốn nhóm thức ăn cơ bản :
- Nhóm lương thực (cung cấp năng lượng chủ yếu): gạo, mì, ngô, khoai.
- Nhóm thức ăn :
o Động vật (cung cấp đạm động vật): thịt, cá, trứng, tôm, cua.
o Thực vật (cung cấp đạm thực vật): đậu phụng, đậu tương.
- Nhóm dầu ăn, mỡ (cung cấp chất béo là nguồn cung cấp năng lượng quan trọng)
- Nhóm rau xanh, quả chín (cung cấp vitamin và khoáng chất)
o Rau: lá, củ , quả
o Quả: chuối, cam , xoài, đu đủ
Nhu cầu dinh dưỡng (nhu cầu năng lượng):
- Đơn vị tính:
o Kilocalo (Kcal)
o Jun : 1Kcal = 4.184 Kjun
- Thức ăn cung cấp năng lượng cho cơ thể dưới dạng protein, lipit, gluxit
o 1 gam protein cung cấp 4 Kcal
o 1 gam lipit cung cấp 9 Kcal
o 1 gam gluxit cung cấp 4 Kcal
- Tỉ lệ cân đối giữa các chất sinh năng lượng:
o NL do Protein cung cấp: 12 – 15 %
Nguồn gốc động vật: 50%
Nguồn gốc thực vật: 50%
o NL do Lipit cung cấp: 15 – 20 %
Nguồn gốc động vật: 50%
Nguồn gốc thực vật: 50%
o NL do Gluxit cung cấp: 66 – 75 %
- Trẻ em:
o Nhóm nhà trẻ (từ 1 – 3 tuổi) : 1300 Kcal /ngày
o Nhóm mẫu giáo (từ 4 – 6 tuổi) : 1600 Kcal /ngày
3.2 Nguyên tắc và các bước xây dựng thực đơn ở trường mầm
non.
3.2.1 Nguyên tắc:
- Đảm bảo cho khẩu phần đủ về năng lượng và các chất dinh dưỡng[13]
o Cả ngày:
Lứa tuổi nhà trẻ: 1100 – 1500 Kcal/ngày
Lứa tuổi mẫu giáo: 1500 – 1700 Kcal/ngày
o Ở nhà trẻ - mẫu giáo:
Lứa tuổi nhà trẻ: 660 – 1050 Kcal/ngày
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
64
Lứa tuổi mẫu giáo: 750 – 1020 Kcal/ngày
- Đảm bảo tỉ lệ cân đối giữa các chất sinh năng lượng. Cân đối tỉ lệ đạm động vật và
thực vật, mỡ động vật và dầu thực vật, cân đối các loại vitamin và chất khoáng
(canxi và phốtpho).
- Đảm bảo khẩu phần của trẻ ở trường:
o Lứa tuổi nhà trẻ : chiếm 60-70% khẩu phần cả ngày
o Lứa tuổi mẫu giáo : chiếm 50-60% khẩu phần cả ngày
o Trong đó tỉ lệ:
Bữa trưa = 30-35%
Bữa chiều = 25-30%
Bữa phụ = ½ bữa chính
- Thực đơn được xây dựng theo từng ngày, tuần, tháng và theo mùa để dễ điều hòa
thực phẩm.
- Xây dựng thực đơn cho nhiều ngày cần thay đổi món ăn cho trẻ đỡ chán và đảm
bảo đủ các chất dinh dưỡng
- Thay đổi thực đơn không chỉ đơn thuần thay đổi thực phẩm mà cần thay đổi dạng
chế biến trong cùng một loại thực phẩm (luộc, kho, xào, rán, hấp ...).
- Trong cùng một ngày nên sử dụng thực phẩm giống nhau cho các chế độ ăn để tiện
cho tiếp phẩm đi chợ.
- Có thực đơn của bữa chính , bữa phụ phù hợp với mức đóng góp.
3.2.2 Các bước xây dựng thực đơn ở trường mầm non
Vì chương trình cần xây dựng chỉ thực hiện xây dựng chế độ dinh dưỡng cho bữa ăn
trưa nên các giá trị về dinh dưỡng cần được điều chỉnh lại cho phù hợp. Đồng thời, do tại
trường mầm non có hai khối lớp: khối cơm nhà trẻ và khối cơm mẫu giáo, do vậy chúng ta
cần tính toán và xây dựng chế độ dinh dưỡng hợp lí cho cả hai khối lớp này.
3.2.2.1 Lứa tuổi nhà trẻ
Lượng calo một ngày: 1300 Kcal/ngày.
Đặt: Calo* là lượng calo hợp lý cho bữa trưa tại trường mầm non
Đặt: Calo là lượng calo cho phép cho bữa trưa tại trường mầm non
Khi đó :
Lượng calo hợp lý trong bữa ăn trưa tại trường mầm non:
- Tại trường bữa trưa chiếm : 30-35% khẩu phần cả ngày
(Bữa trưa + Bữa chiều + Bữa phụ = 60% - 70% cả ngày)
- Lượng calo ứng với bữa trưa:
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
65
455*390
100
351300*
100
301300
≤≤⇔
∗≤≤∗
Calo
Calo
- Vậy lượng calo hợp lí cho bữa ăn trưa tại trường mầm non là:
455*390 ≤≤ Calo
- Vì hệ thống của chúng ta sử dụng bộ điều khiển mờ nên chúng ta cần có một
không gian nền X là tập các giá trị lượng calo cho phép theo từng lứa tuổi. Do
vậy, để xây dựng hệ thống hiệu quả, chúng ta sẽ sử dụng khoảng Calo cho
phép theo [13].
Từ đó ta tính được:
- Lượng calo cho phép đối với lứa tuổi nhà trẻ là:
o Mốc 1100: 3851330 ≤≤ Calo
o Mốc 1500: 5252450 ≤≤ Calo
o Do đó, lượng calo cho phép:
525330 ≤≤ Calo
Tóm lại :
- Lượng calo cho phép: 525330 ≤≤ Calo
- Lượng calo hợp lí: 455390 ≤≤ ∗Calo
3.2.2.2 Lứa tuổi mẫu giáo
Lượng calo trong một ngày: 1600 Kcal/ngày
Đặt: Calo* là lượng calo hợp lý cho bữa trưa tại trường mầm non
Đặt: Calo là lượng calo cho phép cho bữa trưa tại trường mầm non
Lượng calo cho bữa ăn trưa tại trường mầm non :
- Tại trường bữa trưa chiếm: 35 - 40% khẩu phần cả ngày
(Bữa trưa + Bữa phụ = 50% - 60% cả ngày)
- Lượng calo cho bữa trưa:
640*560
100
401600*
100
351600
≤≤⇔
∗≤≤∗
Calo
Calo
- Vậy lượng calo hợp lí cho bữa ăn trưa tại trường mầm non là:
640*560 ≤≤ Calo
- Tương tự như trên, vì hệ thống của chúng ta sử dụng logic mờ nên chúng ta
cần có một không gian nền X là tập các giá trị lượng calo cho phép theo từng
lứa tuổi. Do vậy, để xây dựng hệ thống hiệu quả, chúng ta sẽ sử dụng khoảng
Calo cho phép theo [14].
Từ đó ta tính được:
- Lượng calo cho phép đối với lứa 3-6 tuổi là:
o Mốc 1500: 6001525 ≤≤ Calo
o Mốc 1700: 6802595 ≤≤ Calo
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
66
o Lượng calo cho phép:
680525 ≤≤ Calo
Tóm lại :
- Lượng calo cho phép: 680525 ≤≤ Calo
- Lượng calo hợp lí: 640*560 ≤≤ Calo
3.3 Xây dựng tập mờ và hàm thành viên.
3.3.1 Xác định các factor & xây dựng tập mờ:
Trước khi hệ thống hoạt động, dữ liệu vào của hệ thống bao gồm (tính tổng của cả
một bữa ăn trưa):
- Tổng lượng calori. (đơn vị : Kcal)
- Tổng lượng protein động vật (đơn vị : gam)
- Tổng lượng protein thực vật (đơn vị : gam)
- Tổng lượng lipit động vật (đơn vị : gam)
- Tổng lượng lipit thực vật (đơn vị : gam)
- Tổng lượng gluxit (đơn vị : gam)
- Chi phí của cả bữa ăn (đơn vị : VND)
- Tổng độ dùng lại
Công thức tính một số đại lượng sử dụng trong hệ thống mờ:
Theo [13]:
1 gam Protein cung cấp 4 Kcal
1 gam Lipit cung cấp 9 Kcal
1 gam Gluxit cung cấp 4 Kcal
Năng lượng trong thực phẩm chủ yếu (gần như toàn bộ) được cung cấp bởi 3 đại
lượng này. Do đó, ta có:
4* Tổng lượng Protein + 9* Tổng lượng Lipit + 4* Tổng lượng Gluxit = Tổng
lượng Calori
Mặt khác, cũng theo [13] cơ cấu năng lượng khuyến nghị của P : L : G là 12% - 15%
: 15% - 20% : 66% - 75%
Do đó, ta cần chuyển các đại lượng Tổng Protein, Tổng Lipit, Tổng Gluxit thành các
đại lượng tỉ lệ Protein, tỉ lệ Lipit, tỉ lệ Gluxit như sau:
1. Tỉ lệ protein:
CalorieTong
ThucVatoteinKLuongDongVatoteinKLuongoteinTL 4)PrPr(Pr ×+=
2. Tỉ lệ lipit:
CalorieTong
ThucVatLipitKLuongDongVatLipitKLuongTLLipit 9)( ×+=
3. Tỉ lệ Gluxit:
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
67
CalorieTong
GluxitLuongTLGluxit 4×=
Ngoài ra, chúng ta cần tính thêm giá trị của hai đại lượng:
4. Chi phí của một bữa ăn:
Chi phí bữa ăn trưa = ∑ chi phí các nguyên liệu thành phần
5. Tổng độ dùng lại: Độ dùng lại của một bữa ăn được tính dựa trên độ dùng
lại của các món ăn tổ hợp nên bữa ăn đó. Trong khi đó, độ dùng lại của món
ăn lại được tính dựa vào ngày cuối cùng đã sử dụng món đó. Một món ăn có
ngày dùng cuối cùng càng xa (trải qua một thời gian dài không sử dụng) thì
độ dùng lại của món ăn càng nhỏ, tức tỉ lệ chọn món ăn càng cao. Dựa vào
tính chất này, chúng ta sẽ xây dựng một hàm số cho đại lượng độ dùng lại. Ở
đây, việc xây dựng hàm số biểu diễn cho đại lượng độ dùng lại cần thỏa mãn
một số yêu cầu sau đây:
- Đảm bảo các bữa ăn thỏa mãn các yêu cầu về dưỡng chất, giá tiền... sẽ
được chọn vào một thời điểm nào đó.
- Đảm bảo chương trình xây dựng thực đơn sao cho các món ăn được thay
đổi liên tục giúp cho trẻ không cảm thấy nhàm chán.
- Không giảm quá nhanh tạo điều kiện cho các bữa ăn không thỏa mãn yêu
cầu được chọn sử dụng. Bằng thực nghiệm, qua quá trình chọn hàm, chúng
ta chọn ra được hàm cần tìm: đó là hàm giảm 1/n, trong đó n chính là
khoảng thời gian giữa hai lần sử dụng.
Do vậy độ dùng lại được tính theo công thức:
Gọi ĐDL là độ dùng lại của một món ăn.
Gọi SNDL là số ngày cách nhau giữa ngày cuối cùng được dùng và ngày
xếp lịch:
SNDL = Ngày xếp lịch – Ngày dùng lại
Khi đó , độ dùng lại của một món ăn được tính như sau:
ĐDL =
SNDL
1
Tổng độ dùng lại của cả bữa ăn:
ĐDL của bữa ăn trưa = ∑ ĐDL của từng món ăn/số món ăn
Hệ thống cần xây dựng gồm các factor sau:
Lượng Calo: có ba tập mờ.
- Lượng calo thấp (Calori.Thap)
- Lượng calo trung bình (Calori.TrungBinh)
- Lượng calo cao (Calori.Cao)
Tỉ lệ Protein: Có ba tập mờ
- Tỉ lệ protein thấp (Protein.Thap)
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
68
- Tỉ lệ protein vừa (Protein.Vua)
- Tỉ lệ protein cao (Protein.Cao)
Tỉ lệ Lipit: Có ba tập mờ
- Tỉ lệ lipit thấp (Lipit.Thap)
- Tỉ lệ lipit vừa (Lipit.Vua)
- Tỉ lệ lipit cao (Lipit.Cao)
Tỉ lệ Gluxit: Có ba tập mờ
- Tỉ lệ gluxit thấp (Gluxit.Thap)
- Tỉ lệ gluxit vừa (Gluxit.Vua)
- Tỉ lệ gluxit cao (Gluxit.Cao)
Chi phí của bữa ăn trưa: Có ba tập mờ
- Giá tiền thấp (Tien.Thap)
- Giá tiền vừa (Tien.Vua)
- Giá tiền cao (Tien.Cao)
Tổng độ dùng lại: Có ba tập mờ
- Độ dùng lại thấp (DDL.Thap)
- Độ dùng lại trung bình (DDL.TrungBinh)
- Độ dùng lại cao (DDL.Cao)
Nếu xây dựng bộ điều khiển mờ theo phương pháp cổ điển ta cần sử dụng rất nhiều
luật. Chẳng hạn, đối với bài toán của chúng ta, nếu xây dựng theo phương pháp cổ
điển cần đến 72936 = luật . Do đó, để giảm bớt chi phí tính toán cũng như giảm
thiểu số luật, chúng ta sẽ xây dựng bộ điều khiển mờ phân tán: phân nhóm factor và
xây dựng bộ điều khiển mờ cho từng nhóm factor. Tiêu chí phân nhóm factor là
mối liên hệ giữa các factor. Ở đây chúng ta có thể phân các factor thành ba nhóm:
một nhóm factor có quan hệ dinh dưỡng với nhau (nhóm factor có mối quan hệ
không thay đổi theo thời gian), nhóm còn lại là nhóm các factor có mối quan hệ
thay đổi theo thời gian (thay đổi giá tiền, thay đổi ngày dùng lại ... ) . Do đó, cần có
thêm một factor trung gian để liên kết hai nhóm factor này với nhau (Factor Tỉ lệ
Dinh Dưỡng):
Factor Tỉ lệ Dinh Dưỡng: gồm 5 tập mờ:
- Tỉ lệ dinh dưỡng rất thấp (TLDD.RatThap)
- Tỉ lệ dinh dưỡng thấp (TLDD.Thap)
- Tỉ lệ dinh dưỡng trung bình (TLDD.TrungBinh)
- Tỉ lệ dinh dưỡng cao (TLDD.Cao)
- Tỉ lệ dinh dưỡng rất cao (TLDD.RatCao)
Với việc xây dựng thêm factor trung gian, số luật trong cả hai bộ điều khiển fuzzy
giảm đi đáng kể, chỉ còn lại: 126 luật.
Do hệ thống xây dựng cần đáp ứng cho cả hai khối nhà trẻ và mẫu giáo , do đó
chúng ta cần xây dựng hai bộ điều khiển mờ thích ứng với từng nhóm tuổi.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
69
3.3.2 Xây dựng các hàm thành viên
Hiện nay, trong quá trình xếp lịch ăn tại trường mầm non tồn tại 2 chuẩn cơ cấu
năng lượng
- Chuẩn một : Tỉ lệ P:L:G = 12% - 15% : 15% - 20% : 66% - 75%
- Chuẩn hai : Tỉ lệ P:L:G = 14% : 26% : 60%
Đồng thời, lượng gạo (cung cấp lượng lớn calo trong bữa ăn) đối với nhóm tuổi nhà
trẻ và nhóm tuổi mầm non cách nhau khá xa, do vậy chúng ta cần xây dựng bộ điều
khiển mờ sao cho đáp ứng được từng nhu cầu của từng nhóm tuổi và hỗ trợ cả hai
chuẩn nói trên.
Để thực hiện được điều này, chúng ta xây dựng hai hàm thành viên cho factor
“lượng calo” và hai nhóm factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit”.
Factor “lượng calo”:
Đối với nhà trẻ:
Hình 3-1: Factor “lượng calo” đối với nhóm nhà trẻ
Đối với nhóm mẫu giáo :
Hình 3-2: Factor lượng calo đối với nhóm mẫu giáo
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
70
Các factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit” áp dụng cho chuẩn một :
Factor “tỉ lệ protein”:
Hình 3-3: Factor “tỉ lệ protein” đối với chuẩn một
Factor “tỉ lệ lipit”:
Hình 3-4: Factor “tỉ lệ lipit” đối với chuẩn một
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
71
Factor “tỉ lệ gluxit”:
Hình 3-5: Factor “tỉ lệ gluxit” đối với chuẩn một
Các factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit” áp dụng cho chuẩn hai :
Factor “tỉ lệ protein” :
Hình 3-6: Factor “tỉ lệ protein” đối với chuẩn hai
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
72
Factor “tỉ lệ lipit”:
Hình 3-7: Factor “tỉ lệ lipit” đối với chuẩn hai
Factor “tỉ lệ gluxit” :
Hình 3-8: Factor “tỉ lệ gluxit” đối với chuẩn hai
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
73
Sau đây là mô hình bộ điều khiển mờ thứ nhất :
Hình 3-9: Mô hình bộ điều khiển mờ thứ nhất
Sử dụng đầu ra của bộ điều khiển mờ thứ nhất làm dữ liệu đầu vào của bộ điều
khiển mờ thứ hai :
Hình 3-10: Mô hình bộ điều khiển mờ thứ hai
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
74
Trong đó, các factor “tỉ lệ dinh dưỡng”, “giá tiền” và “độ dùng lại” là :
Factor “tỉ lệ dinh dưỡng” :
Hình 3-11: Factor “tỉ lệ dinh dưỡng”
Factor “giá tiền” :
Hình 3-12: Factor “giá tiền”
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
75
Factor “độ dùng lại” :
Hình 3-13:Factor “độ dùng lại”
Sau khi xây dựng xong hai bộ điều khiển mờ, chúng ta tiếp tục xây dựng mạng
neural cho phép hiệu chỉnh lại trọng số luật của hai bộ điều khiển mờ.
Sau quá trình hiệu chỉnh bằng dữ liệu mẫu, chúng ta thu được bộ điều khiển mờ với
kết quả sắp xếp phù hợp, chính xác hơn.
Sau khi đã xây dựng và hiệu chỉnh bộ điều khiển mờ, chúng ta xây dựng giải thuật
để tạo bộ lọc nhằm giảm thiểu dữ liệu qua bộ điều khiển mờ.
Cách xây dựng mạng neural và bộ lọc tiếp tục được trình bày ở phần tiếp theo
3.4 Xây dựng bộ lọc cho fuzzy bằng kỹ thuật máy học.
Như đã đề cập ở phần trước, chúng ta có thể sử dụng một bộ lọc để giảm bớt tính
toán cho bộ điều khiển mờ. Nếu chúng ta chỉ sử dụng bộ điều khiển mờ, chúng ta cần đánh
giá hết tất cả các ứng cử viên (bữa ăn) và chọn ra ứng cử viên tốt nhất. Như thế, hệ thống
sẽ phải đánh giá cả những ứng cử viên tồi, hay những ứng cử viên không có khả năng được
chọn. Điều này sẽ làm tăng các xử lý không cần thiết và làm giảm chất lượng của hệ thống.
Để giảm tải cho bộ điều khiển mờ và tăng tốc độ xử lý chung của toàn hệ thống,
chúng ta sẽ sử dụng một bộ lọc. Bộ lọc này có nhiệm vụ lọc tất cả các ứng viên chắc chắn
không được chọn hay các ứng cử viên có khả năng được chọn là rất thấp. Điều này có vẻ
làm tăng yêu cầu xử lý vì chúng ta phải áp dụng bộ lọc cho từng ứng viên. Tuy nhiên, yêu
cầu xử lý chung của toàn hệ thống sẽ giảm đi đáng kể. Chúng ta có thể lấy ví dụ như sau,
chẳng hạn một bữa ăn chỉ có ba món (canh, mặn, và tráng miệng), và mỗi loại có n món,
như vậy chúng ta sẽ có tất cả 3n ứng viên (hay bữa ăn). Khi đó, việc đánh giá tất cả các
ứng cử viên yêu cầu áp dụng tất cả các luật mờ cho từng ứng viên. Thông thường số luật
mờ trong một hệ thống là lớn, đặc biệt trong hệ thống sắp xếp món ăn này, do có rất nhiều
điều kiện nên có rất nhiều luật mờ. Mặc dù chúng ta đã có những cải tiến khi xây dựng bộ
điều khiển mờ phân tán là giảm đi đáng kể số lượng luật, nhưng do việc sử dụng bộ điều
khiển mờ thường xuyên trong quá trình xếp lịch nên tổng số phép xử lý của hệ thống sẽ rất
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
76
lớn. Mặt khác, trong số 3n ứng viên chắc chắn có những ứng viên không bao giờ được
chọn, chẳng hạn các bữa có các món kỵ nhau, thực phẩm chế biến kỵ nhau, giá tiền quá
cao, tỉ lệ dinh dưỡng không phù hợp. Khi sử dụng bộ lọc, thường số luật trong bộ lọc sẽ ít
hơn so với số luật trong hệ thống mờ vì bộ lọc chỉ xác nhận thông tin được chọn hay không
được chọn của các ứng viên. Các ứng viên sẽ được bộ lọc đánh giá trước, sau đó, các ứng
viên “đạt tiêu chuẩn” sẽ tiếp tục được đánh giá trong hệ thống mờ để chọn ra ứng viên tốt
nhất. Bộ lọc sử dụng trong hệ thống chỉ được gọi thực hiện khi có sự tổ hợp bữa ăn từ các
món ăn nên tổng số phép xử lý dành cho bộ lọc so với bộ điều khiển mờ là không đáng kể.
Do đó, mặc dù cần thêm các tính toán cho bộ lọc nhưng yêu cầu tính toán chung của cả hệ
thống sẽ giảm.
Việc xây dựng bộ lọc cũng tương tự việc xây dựng các luật mờ. Chúng ta có thể sử
dụng tri thức của các chuyên gia trong lĩnh vực tương ứng (trong trường hợp này là các
chuyên gia dinh dưỡng) để xác định các luật của bộ lọc. Cách thứ hai là chúng ta sử dụng
dữ liệu mẫu để xác nhận các mẫu không xuất hiện hay các ứng viên không bao giờ được
chọn. Từ các mẫu đó, chúng ta xây dựng nên các luật cho bộ lọc. Trong cách thứ hai, việc
thiếu dữ liệu hay dữ liệu không đầy dủ sẽ ảnh hưởng rất lớn đến việc xác định các luật của
bộ lọc. Khi xác định sai luật, bộ lọc có thể bỏ qua cả những ứng viên tốt nhất và cũng có
thể xác nhận các ứng viên tồi nhất. Chính vì vậy, dữ liệu học cho việc xác định các luật của
bộ lọc là rất quan trọng.
Phần lớn các luật trong bộ lọc có dạng “Nếu X là A thì bữa ăn (ứng viên) không
thỏa”. Trong bộ lọc cũng có thể có các luật gồm hai, ba, thành phần như “Nếu X là A, Y
là B, thì ứng viên không thỏa”. Các luật có một thành phần sẽ có tầm ảnh hưởng rộng
hơn các luật có hai thành phần. Số lượng thành phần càng lớn thì độ chi tiết của luật càng
tăng. Chính vì vậy, chúng ta cần kiểm tra xem có luật nào bao (chứa) luật nào không trong
quá trình xác định luật. Điều này sẽ làm giảm số luật cũng như yêu cầu tính toán.
Đối với bài toán xếp lịch ăn trưa, chúng ta sẽ tiến hành xây dựng bộ lọc từ các dữ
liệu mẫu sử dụng thuật toán quy nạp cây quyết định ID3.
Có hai hướng tiếp cận cho việc xây dựng cây quyết định :
- Hướng thứ nhất : Xây dựng cây quyết định dựa trên các đặc trưng : món mặn,
món canh, món tráng miệng .
o Ưu điểm : Với CSDL đã có , kết quả thực hiện lọc chính xác sau khi tạo
được cây quyết định
o Khuyết điểm :
Khi thêm mới một món ăn vào CSDL , độ chính xác của quá
trình lọc giảm dần, đến một lúc nào đó bộ lọc trở nên mất tác
dụng.
Số luật tạo được lớn.
o Khắc phục: Cần thực hiện việc học lại nếu có thêm một món ăn vào
CSDL
- Hướng thứ hai : Xây dựng cây quyết định dựa trên các đặc trưng : tỉ lệ dinh
dưỡng, độ dùng lại và giá tiền.
o Ưu điểm :
số luật tạo được ít hơn hướng tiếp cận thứ nhất
Khi thêm mới dữ liệu, quá trình lọc vẫn giữ được tính ổn định,
tuy có giảm nhưng mức độ ảnh hưởng không cao
o Khuyết điểm :
Đối với CSDL hiện tại, việc lọc vẫn nhận những giá trị dư thừa,
không chính xác như khi tiếp cận theo hướng thứ nhất
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
77
Đối với bài toán của chúng ta, việc thêm một món ăn hay xóa một món ăn ra khỏi
CSDL diễn ra thường xuyên, do vậy chúng ta sẽ xây dựng cây quyết định theo
hướng tiếp cận thứ hai. Hơn nữa, đối với khuyết điểm của hướng tiếp cận thứ hai
này, do chúng ta chỉ lọc bớt dữ liệu giảm tải cho bộ điều khiển mờ nên việc nhận
thêm vào những giá trị dư thừa vẫn không làm giảm chất lượng của quá trình sắp
lịch.
Bộ lọc được xây dựng thành ba thành phần:
• Bộ lọc tĩnh: sử dụng các nguyên tắc về dinh dưỡng do Vụ Mầm Non quy
định (lượng calo, cơ cấu năng lượng đối với protein, lipit và gluxit) để xây
dựng. Các nguyên tắc này là các luật tĩnh và có giá trị tĩnh.
• Bộ lọc động : sử dụng các yếu tố: món ăn kỵ nhau, thực phẩm kỵ nhau, giá
tiền, khoảng thời gian không sử dụng món ăn hay thực phẩm Các yếu tố
này là các luật tĩnh nhưng có giá trị thay đổi theo thời gian hoặc theo kinh
nghiệm của người sử dụng.
• Bộ lọc sử dụng kỹ thuật máy học : sử dụng dữ liệu mẫu là các bữa ăn trưa
đã được sử dụng tại các trường mầm non trong những năm gần đây và sử
dụng thuật toán quy nạp cây quyết định ID3 để thực hiện việc học xây dựng
cây tạo nên bộ lọc.
Do có các luật tĩnh nên việc xây dựng bộ lọc tĩnh và bộ lọc động khá đơn giản. Ở
đây, chúng ta tập trung vào việc xây dựng bộ lọc động sử dụng kỹ thuật máy học.
Theo hướng tiếp cận thứ hai mà chúng ta đã tìm hiểu ở trên, các đặc trưng của
chúng ta là: tỉ lệ dinh dưỡng, độ dùng lại, giá tiền. Do tiêu chí lọc mà chúng ta đã
đưa ra: lọc loại bỏ tất cả các bữa ăn không bao giờ được sử dụng. Do đó, nhiệm vụ
của bộ lọc là cần tìm ra được danh sách các bữa ăn không bao giờ được sử dụng đó.
Ở đây, một bữa ăn có dùng được hiểu là tồn tại một độ dùng lại nào đó sao cho bữa
ăn được chọn. Từ đó, một bữa ăn không dùng nghĩa là, với mọi giá trị của độ dùng
lại bữa ăn vẫn không được chọn. Do vậy, yếu tố độ dùng lại không được xem là đặc
trưng của bộ lọc. Điều này có nghĩa là bộ lọc của chúng ta sẽ có hai đặc trưng, đó là
: tỉ lệ dinh dưỡng và giá tiền.
Với dữ liệu đầu vào : tỉ lệ dinh dưỡng, giá tiền, ta thực hiện việc chia khoảng cho
các đặc trưng này. Nguyên nhân phải thực hiện việc chia khoảng: Ở đây, các đặc
trưng của chúng ta đều là số thực. Giả sử chúng ta có luật: “Nếu giá trị của A là
50.5 thì kết luật: không chọn”. Bây giờ, ta có một giá trị khác của A là 50.6, vậy kết
luận là gì ? (không thể kết luận được); nếu không chia khoảng thì ứng với từng giá
trị ta phải có luật tương ứng. Do các giá trị ở đây là giá trị thực nằm trong một miền
liên tục nên chúng ta không thể có đủ số luật.
Bằng thực nghiệm, chúng ta thu được các khoảng chia như sau :
Đối với đặc trưng tỉ lệ dinh dưỡng:
Khoảng chia Miền giá trị
1 0 - 5
2 5 - 10
3 10 - 15
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
78
4 15 - 20
5 20 - 25
6 25 - 30
7 30 - 35
8 35 - 40
9 40 - 45
10 45 - 50
11 50 - 55
12 55 - 60
13 60 - 65
14 65 - 70
15 70 - 75
16 75 - 80
17 80 - 85
18 85 - 90
19 90 - 95
20 95 - 100
Đối với đặc trưng giá tiền
Khoảng chia Miền giá trị
1 0 - 500
2 500 - 1000
3 1000 - 1500
4 1500 - 2000
5 2000 - 2500
6 2500 - 3000
7 3000 - 3500
8 3500 - 4000
9 4000 - 4500
10 4500 - 5000
11 5000 - 5500
12 5500 - 6000
13 6000 - 6500
14 6500 - 7000
15 7000 - 7500
16 7500 - 8000
17 8000 - 8500
18 8500 - 9000
19 9000 - 9500
20 9500 - 10000
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
79
Ứng với bài toán xếp lịch, ta có hai đặc trưng: tỉ lệ dinh dưỡng và giá tiền.
Giả sử đặt: tỉ lệ dinh dưỡng là đặc trưng thứ nhất
giá tiền là đặc trưng thứ hai.
Bước thứ nhất trong quá trình xây dựng bộ lọc là phân khoảng giá trị của các đặc
trưng của từng bộ dữ liệu mẫu.
Hình 3-14: Phân khoảng giá trị mẫu
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
80
Bước thứ hai: Sau khi chia các khoảng cho các đặc trưng, chúng ta sử dụng dữ liệu
mẫu để học và tạo cây quyết định sử dụng thuật toán ID3
Hình 3-15: Sử dụng dữ liệu mẫu để xây dựng cây quyết định
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
81
Bước thứ ba : Sau quá trình sử dụng dữ liệu mẫu để xây dựng cây quyết định. Ở
bước này, với một bộ dữ liệu bất kì, ta có thể sử dụng cây để quyết định có chọn
mẫu đó hay không.
Hình 3-16: Sử dụng cây quyết định để lọc dữ liệu
3.5 Neural Network kết hợp hệ mờ phát sinh luật và điều
chỉnh trọng số.
Giới thiệu
Vấn đề chính của một hệ thống mờ là xác định được tập luật tối ưu. Nếu có tập luật
tốt, hệ thống sẽ hoạt động tốt hơn. Ngược lại, tập luật không tốt sẽ làm giảm đáng kể chất
lượng của hệ thống và hệ thống sẽ hoạt động kém hiệu quả.
Trong một hệ thống mờ, thông thường có nhiều luật trong tập luật được sử dụng để
giải quyết vấn đề. Trong tập luật, có thể có một vài luật mâu thuẫn hay thậm chí phủ nhận
hoàn toàn các luật khác. Trong hệ thống được xây dựng bởi các chuyên gia, mâu thuẫn
giữa các luật sẽ được các chuyên gia điều chỉnh. Còn với hệ thống mờ thích ứng, tiến trình
điều chỉnh các luật sẽ được tự động hóa bằng cách sử dụng mạng neural hay thuật toán học
tựa neural.
Để hiểu được cách hoạt động của quá trình điều chỉnh luật của hệ thống mờ thích
ứng, trước hết chúng ta cấn tìm hiểu mạng neural về cách vận hành cũng như quá trình học
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
82
của nó. Mạng neural là một tập hợp gồm các nút và các cạnh nối. Các nút thường được
chia thành ba lớp là lớp nhập, (các) lớp ẩn và lớp xuất. Các cạnh nối có trọng số xác định
ảnh hưởng của một nút lên nút liên kết với nó. Giá trị nhập được cho vào ở lớp nhập.
Thông thường, số nút của lớp nhập bằng với số thành phần của biến (giá trị) nhập. Từng
thành phần sẽ được chuyển đến các nút trong lớp ẩn có cạnh nối tương ứng. Tầm ảnh
hưởng của từng thành phần đối với nút ẩn được xác định bằng trọng số của cạnh nối. Tại
mỗi nút ẩn, trọng ngưỡng của nút ẩn sẽ được cộng với các giá trị được chuyển đến từ các
nút nhập (đã nhân với trọng cạnh nối). Đây là tổng trọng hóa của nút ẩn. Sau đó, hàm
logistic sẽ được áp dụng trên tổng trọng hóa này để xác định đầu ra của nút ẩn. Đầu ra của
mỗi nút ẩn sẽ được chuyển cho các nút ẩn (nếu có lớp ẩn khác) hoặc các nút xuất có cạnh
nối tương ứng. Tại các nút xuất này, trọng ngưỡng của nút xuất cộng với các giá trị của các
nút ẩn (đã nhân với trọng số của cạnh nối) để tạo thành tổng trọng hóa của nút xuất. Hàm
logistic lại được sử dụng để xác định đầu ra cho nút xuất này. Thông thường, số nút xuất
của mạng do bài toán quy định. Chẳng hạn nếu mạng dùng để nhận dạng chữ số thì thường
có 10 nút xuất tương ứng với 10 chữ số, còn nếu dùng để nhận dạng chữ cái thì thường có
26 nút. Giá trị của từng nút xuất có thể chỉ là giá trị 0 hoặc 1 hoặc cũng là các giá trị thực
nằm giữa 0 và 1. Điều này phụ thuộc vào từng bài toán và người cài đặt.
Chính do cấu trúc của nó mà mạng neural có thể xấp xỉ bất kỳ hàm nào, miễn là nó
có đủ số neural cần thiết. Để có thể xấp xỉ một hàm, mạng cần phải được học hay được
huấn luyện. Việc học thực chất là việc cập nhật lại các trọng ngưỡng tại các nút ẩn và các
nút xuất và cập nhật các trọng số của các cung nối. Trong cài đặt, người ta thường sử dụng
phương pháp học có giám sát để luyện mạng. Trong phương pháp này, dữ liệu học sẽ được
đưa vào mạng. Sau khi đi qua mạng, một kết xuất tương ứng sẽ được nhận ở đầu ra và một
“thầy giáo” sẽ thông báo khi có một lỗi xảy ra. Lỗi ở đây là kết xuất nhận được không
đúng với kết xuất đúng của dữ liệu nhập. Lỗi này sẽ được lan truyền ngược lại trong mạng
(từ nút xuất đến nút nhập) và các trọng số sẽ được cập nhập lại. Quá trình này được thực
hiện nhiều lần cho đến khi mạng đạt được tỉ lệ cho phép.
Trong phần này chúng ta chỉ tìm hiểu cơ bản về mạng neural chứ không đi sâu vào
nên nhiều vấn đề quan trọng không được bàn ở đây. Chúng ta chỉ cần hiểu cơ chế hoạt
động và quá trình học của mạng neural để có thể hiểu được cách thức học đối với hệ thống
mờ.
Vậy, tại sao chúng ta phải cho hệ thống mờ học để sinh ra luật? Chúng ta không thể
tự tạo ra luật? Như trên đã đề cập, các chuyên gia có thể tạo ra luật và điều chỉnh nó để hệ
thống hoạt động tốt hơn. Còn đối với các kỹ sư, không phải là chuyên gia trong lĩnh vực
nào đó, khó có thể tự nghĩ ra luật và cũng khó tối ưu luật để tăng chất lượng của hệ thống.
Chính vì vậy, khi xây dựng hệ thống mờ, các kỹ sư thường cho hệ thống học để tạo ra và
tối ưu các luật đó dựa vào dữ liệu. Ngoài ra, có nhiều trường hợp kiến thức của chuyên gia
cũng không thể giúp được gì. Ví dụ máy điều hòa không khí. Mỗi người nghĩ tương tự
nhau nhưng không giống nhau khi nói nhiệt độ là “ấm”, “lạnh” hay “thích hợp”. Ngay
chính một người thì những từ này không phải lúc nào cũng mang ý nghĩa giống nhau tại
các thời điểm khác nhau trong ngày hay trong các mùa khác nhau. Chính vì vậy, mỗi người
sử dụng sẽ tạo ra dữ liệu để hệ thống học và như thế hệ thống mới có thể đáp ứng đúng yêu
cầu hay hệ thống mới có chất lượng. Sau này, khi yêu cầu thay đổi thì hệ thống chỉ cần học
lại và vẫn có thể được sử dụng.
Hướng giải quyết
Thuộc tính nổi bật của một luật mờ là dạng hình học đơn giản của nó như là một
“mảnh” (patch) (có thể tưởng tượng “mảnh” này như sau: giả sử có luật “Nếu x = A thì y =
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
83
B”, trong không gian trạng thái XxY, “mảnh” là hình chữ nhật bị giới hạn có cạnh theo
trục X là A và cạnh theo trục Y là B) hoặc tập con mờ trong không gian trạng thái của hệ
thống. Người dùng thường tập trung vào hình dạng của các tập mờ vô hướng (như từ 1,6m-
1,7m là cao) tạo thành một luật và bỏ qua hình dạng của luật. Nhưng hình dạng của các tập
mờ lại quyết định cấu trúc và hình dạng của luật. Cấu trúc luật này xác định làm thế nào hệ
thống mờ có thể ánh xạ dữ liệu nhập thành dữ liệu xuất.
Các luật rõ là các luật có dạng đơn giản nhất. Chúng định nghĩa các hộp trong
không gian trạng thái nhập-xuất. Các hộp này thuộc về số ít các luật có thể chuyển sang
các tập vô hướng. Hầu hết các “mảnh” luật không thể chuyển sang các tập mờ vô hướng.
Vì vậy, trong hầu hết các trường hợp, chúng ta không thể ánh xạ một vector trong không
gian p-chiều vào trong hệ thống mờ có giá trị vô hướng.
Một luật có dạng ellipse (ellipsoidal rule) có hình dạng của một quả trứng. Luật
dạng ellipse có thể xem như một độ đo tình trạng không chắc chắn hoặc là một vùng thống
kê.
Phần này sẽ tìm hiểu chi tiết hệ thống mờ với các luật dạng ellipse. Học không
giám sát xác định dạng và điều chỉnh tập luật đầu tiên của các luật dạng ellipse thông qua
phương pháp học cạnh tranh. Sau đó, học có giám sát sẽ tối ưu tập luật đó.
Một luật mờ có thể có dạng ellipse trong không gian trạng thái nhập-xuất của một
hệ thống. Khi đó, hệ thống xấp xỉ một hàm bằng cách bao đồ thị của hàm đó bằng các
“mảnh” luật. Hệ thống sẽ lấy trung bình các “mảnh” luật gối lên nhau. Cá luật mờ tốt nhất
là các luật có thể phủ được các đầu mút và các phần lồi của hàm. Các hệ thống neural hoặc
gom nhóm thống kê có thể xấp xỉ các luật mờ chưa biết từ dữ liệu học. Sau đó, các hệ
thống neural có thể điều chỉnh các luật cũ cũng như có thể thêm các luật mới vào tập luật
để tăng tính chính xác trong việc xấp xỉ hàm.
Chúng ta sử dụng một hệ thống nơron lai, kết hợp giữa học có giám sát và học
không có giám sát để tìm và điều chỉnh các luật có dạng ellipse.Học cạnh tranh không
giám sát sẽ tìm các nhóm thống kê thứ nhất và thứ hai trong dữ liệu học. Ma trận thống kê
của mỗi nhóm sẽ cho một luật dạng ellipse ở tâm vector hoặc ở giữa nhóm dữ liệu. Hệ
thống nơron có giám sát sẽ học theo phương pháp giảm gradient. Nó sẽ cực tiểu hóa lỗi của
việc xấp xỉ hàm. Trong hệ thống lai, học không giám sát sẽ khởi tạo việc giảm gradient. Hệ
thống lai sẽ xấp xỉ hàm với độ chính xác cao hơn các hệ thống chỉ dùng học không giám
sát hoặc học có giám sát.
Đối với bài toán của chúng ta, chúng ta cần phải xác định ứng cử viên tốt nhất
trong tất cả các ứng cử viên. Cụ thể, chúng ta cần xác định một bữa ăn (bao gồm các món)
thỏa các điều kiện về dinh dưỡng (như đạm, chất béo,) và các điều kiện khác như ngày
ăn gần nhất, giá thành,
Nếu chúng ta có dữ liệu, chúng ta có thể áp dụng phương pháp mạng học không
giám sát để xác định các luật. Nhưng nếu ta không có dữ liệu, chúng ta có thể nhờ chuyên
gia xác định tập luật ban đầu. Từ tập luật ban đầu, chúng ta có thể xác định được các tham
số của các luật ellipse (có thể coi chúng là các luật ellipse) để dựa vào đó xác định kết xuất
của hệ thống.
Chuyển sang giai đoạn học có giám sát, chúng ta sử dụng các tham số đã xác định
trong bước trên để điều chỉnh các luật đã có. Như đã nói, chúng ta cần xác định mẫu tốt
nhất nên hệ thống không thể học trên một mẫu được mà phải học trên nhiều mẫu cùng một
lúc. Vì nếu chúng ta chỉ học trên một mẫu, chúng ta không thể xác định được mẫu tốt nhất.
Chúng ta có thể đánh giá thông qua cho điểm nhưng việc cho điểm từng mẫu là vô cùng
khó khăn vì có quá nhiều điều kiện. Nói tóm lại, hệ thống sẽ được học trên một tập mẫu đã
được sắp xếp. Hệ thống sẽ sắp xếp lại tập mẫu này dựa trên tập luật mà nó đang có hiện
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
84
thời và sau đó so sánh với thứ tự đúng. Hệ thống sẽ căn cứ vào số lỗi sắp xếp sai để cập
nhật các tham số. Chúng ta có thể tăng cường lỗi sai bằng cách tăng hình phạt khi khoảng
cách giữa vị trí đúng và vị trí hệ thống sắp xếp tăng. Cách này sẽ nhanh chóng đưa các mẫu
về gần với vị trí đúng của nó nhưng nó không có nhiều tác dụng trên các tập mà hệ thống
đã xếp gần đúng. Chúng ta cũng có thể cho hệ thống học với các tập mẫu đã sắp khác
nhau. Điều này có thể làm tăng chất lượng của hệ thống.
Sau khi học, chúng ta có thể vừa sử dụng, vừa kiểm tra chất lượng của hệ thống
được xây dựng.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
85
Chương 4
CÀI ĐẶT VÀ ĐÁNH GIÁ
4.1 Cài đặt
4.1.1 Phân tích – Thiết kế
4.1.1.1 Cấu trúc chương trình
4.1.1.2 Giao diện, chức năng chính của chương trình
4.1.2 Mô hình
4.1.2.1 Phân tích ERD
4.1.2.2 Mô hình DFD
4.1.2.3 Mô hình ràng buộc dữ liệu
4.2 Đánh giá và hướng phát triển
4.2.1 Tự đánh giá
4.2.2 Hướng phát triển
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
86
4.1 Cài đặt
4.1.1 Phân tích – Thiết kế
4.1.1.1 Cấu trúc chương trình:
Chương trình gồm có bảy phần chính:
• Sắp lịch: sắp xếp các bữa ăn trưa một cách tự động sao cho đảm bảo
đủ lượng dinh dưỡng cho các bé ở trường mầm non.
• Hiển thị danh sách các món ăn của một bữa: cho phép xem chi tiết
thông tin của từng món ăn sẽ dùng trong một bữa đã được xếp.
• Quản lý món ăn: cho phép thêm, xóa, sửa một món ăn bất kỳ( ngoại
trừ món cơm không được xóa).
• Quản lý nguyên liệu món ăn: cho phép thêm, xóa, sửa một nguyên
liệu bất kỳ( ngoại trừ ngyên liệu gạo không được xóa).
• Lập báo cáo: cho biết chi tiết về những nguyên liệu phải mua đối với
một bữa ăn trưa và gía tiền của bữa đó.
• Tra cứu: tra cứu các món ăn, nguyên liệu, đồng thời cung cấp thêm
một số thông tin cần thiết về dinh dưỡng-sức khỏe.
• Quản lý hệ thống: cung cấp một số chức năng cần thiết giúp cho
việc quản lý chương trình tốt hơn.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
87
4.1.1.2 Giao diện, chức năng chính của chương trình:
H
ìn
h
4-
1:
G
ia
o
di
ện
c
hí
nh
c
ủa
c
hư
ơn
g
trì
nh
.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
88
H
ìn
h
4-
2:
S
ắp
lị
ch
ă
n
trư
a
tro
ng
m
ột
tu
ần
.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
89
H
ìn
h
4
-3
: s
ắp
lị
ch
ă
n
trư
a
tro
ng
m
ột
th
án
g.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
90
H
ìn
h
4-
4:
H
iể
n
th
ị c
ác
d
an
h
sá
ch
c
ác
m
ón
ă
n
tro
ng
m
ột
n
gà
y.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
91
H
ìn
h
4-
5:
H
iể
n
th
ị d
an
h
sá
ch
c
ác
m
ón
ă
n
tro
ng
m
ột
tu
ần
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
92
H
ìn
h
4-
6:
H
iể
n
th
ị d
an
h
sá
ch
c
ác
m
ón
ă
n
tro
ng
m
ột
th
án
g.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
93
Hình 4-7: báo cáo chi tiết của một bữa ăn trưa trong ngày.
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
94
4.1.2 Mô hình
4.1.2.1 Phân tích ERD.
Hình 4-8: Mô hình ERD
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
95
4.1.2.2 Mô hình DFD.
Mức 0 :
Hình 4-9: Mô hình DFD
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
96
Mức 1: Chi tiết ô xử lý 1.0 (Xếp lịch)
Hình 4-10: Chi tiết ô xử lý “xếp lịch”
Mức 1 : Chi tiết ô xử lý 3.0 (Cập nhật món ăn)
Hình 4-11: Chi tiết ô xử lý “cập nhật món ăn”
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
97
Mức 1 : Chi tiết ô xử lý 4.0 (cập nhật nguyên liệu)
Hình 4.12: Chi tiết ô xử lý “cập nhật nguyên liệu”
Mức 1 : Chi tiết ô xử lý 5.0 ( In ấn , báo cáo)
Hình 4-13: Chi tiết ô xử lý “in ấn, báo cao”
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
98
Mức 1 : Chi tiết ô xử lý 6.0 (Tra cứu)
Hình 4-14: Chi tiết ô xử ly “tra cứu”
Mức 1 : Chi tiết ô xử lý 8.0 (Quản lý hệ thống)
Hình 4-15: Chi tiết ô xử lý “quản lý hệ thống”
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
99
4.1.2.3 Mô hình ràng buộc dữ liệu.
Hình 4-16: Mô hình ràng buộc dữ liệu
4.2 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
4.2.1 Tự đánh giá:
Ưu điểm:
- Giải quyết trong AI, kết hợp hệ mờ, neural và máy học
- Các bữa ăn được chọn sắp xếp đã đảm bảo được về giá thành, không có các
món kỵ nhau trong bữa, có độ dùng lại thấp
- Chương trình có khả năng sao lưu và khôi phục dữ liệu, nên ta có thể khôi phục
lại dữ liệu và sử dụng lại chương trình khi bị hư.
- Chương trình đã được chạy xếp lịch cho nhiều tháng và kết quả các bữa ăn thu
được vẫn đảm bảo tỉ lệ, thành phần dinh dưỡng trong mỗi bữa.
Khuyết điểm:
- Thiếu dữ liệu mẫu
- Vì thời gian ngắn nên chưa đủ thử nghiệm trên nhiều chỗ khác nhau
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
100
4.2.2 Hướng phát triển
Từ mô hình này có thể phát triển xây dựng chế độ dinh dưỡng không những cho
cho trẻ em mà cho cả người lớn ở những nơi công cộng (như công ty, bệnh viện,), cho
người bệnh, những người ăn kiêng,
Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM
101
TÀI LIỆU THAM KHẢO
[1] Bùi Công Cường, Nguyễn Doãn Phước , “Hệ mờ, mạng neural và ứng dụng”, NXB
KH&KT , 2001.
[2] C. Elkan et al., “Fuzzy Logic Symposium", IEEE Expert, August 1994.
[3] G. Klir, B. Yuan, Fuzzy sets and fuzzy logic, Prentice Hall, NJ, 1995.
[4] V. Kreinovich, G. C. Mouzouris, H. T. Nguyen, “Fuzzy rule based modeling
as a universal approximation tool", In: H. T. Nguyen, M. Sugeno (eds.), Fuzzy Systems: Modeling
and Control, Kluwer, Boston, MA, 1998, pp. 135 - 195.
[5] JunYan, Michael Ryan, James Power, “Using fuzzy logic”, Prentice Hall , 1994
[6] Bart Kosko, “Fuzzy Engineering”, Prentice Hall, 1997
[7] H. T. Nguyen, V. Kreinovich, “Methodology of fuzzy control: an introduction",
In: H. T. Nguyen and M. Sugeno (eds.), Fuzzy Systems: Modeling and Control,
Kluwer, Boston, MA, 1998, pp. 19 - 62.
[8] H. T. Nguyen, E. A.Walker, First course in fuzzy logic, CRC Press, Boca Raton,
FL, 1999.
[9] Nguyễn Như Phong, “Lý thuyết mờ và ứng dụng”, NXB KH&KT, 2005
[10] M. H. Smith, V. Kreinovich. “Optimal strategy of switching reasoning methods
in fuzzy control", In: H. T. Nguyen, M. Sugeno, R. Tong, R. Yager (eds.),
Theoretical aspects of fuzzy control, J. Wiley, N.Y., 1995, pp. 117 - 146.
[11] Feijun Song, “Cell state fuzzy logic controller automatic design and optimization
for high other systems”, Florida Atlantic University , 1999
[12] Th.S Phạm Thế Bảo, “Chuyên đề các hệ thống học: học với cây quyết định”, khoa
CNTT, Đại học khoa học tự nhiên, 2006
[13] Chương trình chăm sóc giáo dục trẻ theo lứa tuổi do Bộ Giáo Dục và Đào tạo ban hành
năm học 1994 – 1995
[14] Bảng nhu cầu dinh dưỡng khuyến nghị cho người Việt Nam, NXB Y học, Viện dinh
dưỡng- Bộ Y tế, 2003
Các file đính kèm theo tài liệu này:
- xay_dung_che_do_dinh_duong_tai_truong_mam_non_bang_logic_mo_ket_hop_mang_neural_va_may_hoc_2309.pdf