Tải bản đầy đủ (.pdf) (63 trang)

Sử dụng mạng ngữ nghĩa trong bài toán điều chế chất hóa học cân bằng phản ứng hóa học

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




LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy
giáo PGS. TS. Bùi Thế Hồng đã trực tiếp hướng dẫn và chỉ bảo tận tình cho
em hoàn thành khóa luận này.
Em cũng xin chân thành cảm ơn các thầy, cô giáo trong khoa Công
nghệ Thông tin, cũng như các thầy cô giáo trong trường đã giảng dạy và giúp
đỡ em trong các năm học vừa qua. Chính các thầy, cô giáo đã xây dựng cho
chúng em những kiến thức nền tảng và kiến thức chuyên môn để em có thể
hoàn thành khóa luận tốt nghiệp và chuẩn bị cho những công việc của mình
sau này.
Cuối cùng em xin bày tỏ lòng biết ơn tới gia đình và bạn bè đã giúp đỡ
động viên em rất nhiều trong suốt quá trình học tập để em có thể thực hiện tốt
khóa luận này.
Do kiến thức và thời gian còn hạn chế nên khóa luận không tránh khỏi
những thiếu sót. Kính mong nhận được sự đóng góp ý kiến của các thầy cô và
các bạn để khóa luận được hoàn thiện hơn.
Hà Nội, tháng 05 năm 2015
Sinh viên


Đoàn Trung Đức








TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN
*************


ĐOÀN TRUNG ĐỨC



SỬ DỤNG MẠNG NGỮ NGHĨA TRONG
BÀI TOÁN ĐIỀU CHẾ CHẤT HÓA HỌC
CÂN BẰNG PHẢN ỨNG HÓA HỌC


KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Khoa học máy tính








HÀ NỘI – 2015
































TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN
*************



ĐOÀN TRUNG ĐỨC



SỬ DỤNG MẠNG NGỮ NGHĨA TRONG
BÀI TOÁN ĐIỀU CHẾ CHẤT HÓA HỌC
CÂN BẰNG PHẢN ỨNG HÓA HỌC


KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Khoa học máy tính


Người hướng dẫn khoa học
PGS. TS. BÙI THẾ HỒNG





HÀ NỘI – 2015



LỜI CAM ĐOAN

Tên em là: ĐOÀN TRUNG ĐỨC
Sinh viên lớp: K37 – CNTT, khoa Công nghệ Thông tin, trường Đại học Sư
phạm Hà Nội 2.

Em xin cam đoan:
1. Đề tài: “Sử dụng mạng ngữ nghĩa trong bài toán điều chế chất hóa học
– cân bằng phản ứng hóa học” là nghiên cứu của riêng em, dưới sự
hướng dẫn của thầy giáo PGS. TS. Bùi Thế Hồng.
2. Khóa luận hoàn toàn không sao chép của tác giả nào khác.
Nếu sai em xin hoàn toàn chịu trách nhiệm.
Hà Nội, tháng 05 năm 2014
Người cam đoan


Đoàn Trung Đức















MỤC LỤC

MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC 4

1.1. Khái niệm tri thức 4
1.2. Cấu trúc hệ giải toán dựa trên tri thức 5
1.3. Khái niệm biểu diễn tri thức 6
1.4. Một số mô hình biểu diễn tri thức 8
1.5. Các phương pháp biểu diễn tri thức 17
CHƯƠNG 2: CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC 18
2.1. Phương pháp biểu diễn tri thức bằng Logic mệnh đề 18
2.2. Biểu diễn tri thức bằng luật sản xuất (luật sinh) 21
2.3. Biểu diễn nhờ bộ ba liên hợp OAV 28
2.4. Biểu diễn tri thức bằng FRAME 29
2.5. Biểu diễn tri thức nhờ mạng ngữ nghĩa 36
CHƯƠNG 3: ỨNG DỤNG MẠNG NGỮ NGHĨA TRONG BÀI TOÁN
ĐIỀU CHẾ CHẤT HOÁ HỌC – CÂN BẰNG PHẢN ỨNG HOÁ HỌC 48
3.1. Phát biểu bài toán 48
3.2. Xây dựng chương trình 49
3.2.1. Sử dụng mạng ngữ nghĩa để giải bài toán 49
3.2.2. Mạng ngữ nghĩa sử dụng mảng 2 chiều 50
3.2.3. Mạng ngữ nghĩa sử dụng mảng 1 chiều 52
3.2.4. Thiết kế chương trình 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 58



DANH MỤC HÌNH

Hình 1.1. Cấu trúc của hệ giải toán thông minh 5
Hình 2.1. Đồ thị AND/OR 24
Hình 2.2. Mô tả đối tượng trong bộ ba liên hợp 28
Hình 2.3. Frame mô tả xe hơi 31

Hình 2.4. Cấu trúc phân cấp của các loại hình hình học cơ bản 32
Hình 2.5. Hình tròn 32
Hình 2.6. Hình chữ nhật 33
Hình 2.7. Hình thoi 33
Hình 2.8. Hình vuông k và vòng tròn nội tiếp c 34
Hình 2.9. Đồ thị biểu diễn mối quan hệ trực quan 36
Hình 2.10. Sử dụng mạng ngữ nghĩa xử lý ngôn ngữ tự nhiên 39
Hình 2.11. Đồ thị thể hiện tri thức “sẻ là một loài chim có cánh và biết bay” 39
Hình 2.12. Đồ thị thể hiện “chim là một loài động vật đẻ trứng” và “cánh cụt
là loài chim biết lặn” 40
Hình 3.1. Form màn hình điều chế chất hóa học 53
Hình 3.2. Form màn hình cân bằng phản ứng hóa học (Phản ứng oxi hóa –
khử) 54
Hình 3.3. Form điều chế chất FeSO4 54
Hình 3.4. Form cân bằng phản ứng hóa học 55
Hình 3.5. Form phản ứng có chất hóa học là tổ hợp của 2 chất khử 55

1

MỞ ĐẦU
1. Lý do chọn đề tài
Vai trò của của công nghệ thông tin trong thời buổi công nghiệp hoá,
hiện đại hoá đất nước là không thể phủ nhận, tuy nhiên việc ứng dụng công
nghệ thông tin vào những lĩnh vực và ứng dụng như thế nào để có thể khai
thác hết được thế mạnh của ngành công nghệ thông tin luôn là một câu hỏi
lớn. Việc ứng dụng tri thức nhân loại vào trong ngành công nghệ thông tin để
góp phần đưa ra những lời giải cho nhiều vấn đề khó và các tri thức có thể
được xây dựng thành một hệ thống hoàn chỉnh để ứng dụng trong nhiều
ngành khác nhau dưới sự hỗ trợ của công nghệ thông tin. Việc chuyển đổi tri
thức thành các hệ thống vẫn đang được thực hiện, những tri thức đó đã và

đang được ứng dụng rộng rãi trong quá trình phát triển của xã hội.
Nâng cao chất lượng giảng dạy bộ môn Hóa học là một trong nhiệm vụ
hàng đầu của mỗi giáo viên đứng lớp. Kết quả giảng dạy của mỗi giáo viên
luôn ảnh hưởng đến chất lượng, kết quả giáo dục của nhà trường. Do đó cần
phải có các giải pháp để nâng cao chất lượng giảng dạy bộ môn Hóa học. Vì
vậy, việc áp dụng công nghệ thông tin vào giảng dạy là vô cùng cần thiết.
Mạng ngữ nghĩa là một dạng công cụ dùng để biểu diễn tri thức với
những tính chất của loại công cụ này mạng ngữ nghĩa thích hợp cho việc biểu
diễn những tri thức ở dạng dự đoán tính toán dựa trên những cở sở thông tin
cố định. Chính vì vậy em đã chọn đề tài “Sử dụng mạng ngữ nghĩa trong bài
toán điều chế chất hóa học – cân bằng phản ứng hóa học” để làm khóa luận
tốt nghiệp của mình.
2. Mục đích nghiên cứu
- Xây dựng chương trình điều chế chất hóa học, cân bằng phản ứng hóa
học sử dụng mạng ngữ nghĩa.
3. Nhiệm vụ nghiên cứu
- Xây dựng chương trình điều chế chất hóa học và cân bằng phản ứng
hóa học trên môi trường Visual studio 2010, ngôn ngữ C#.
2

- Ứng dụng mạng ngữ nghĩa vào bài toán điều chế chất hóa học – cân
bằng phản ứng hóa học trong bộ môn Hóa học trường THPT.
4. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Giải bài toán điều chế chất hóa học – cân bằng phản ứng hóa học sử
dụng mạng ngữ nghĩa.
Phạm vi nghiên cứu:
- Nghiên cứu các phương pháp biểu diễn tri thức.
- Ứng dụng các phương pháp biểu diễn tri thức vào giáo dục.
5. Ý nghĩa khoa học và thực tiễn của đề tài

Ý nghĩa khoa học:
- Ứng dụng công nghệ thông tin vào trong lĩnh vực giáo dục, y tế đã
không còn quá xa lạ với chúng ta trong thời đại ngày nay. Việc ứng dụng
mạng ngữ nghĩa vào trong bài toán điều chế chất hóa học – cân bằng phản
ứng hóa học sẽ chứng minh thêm tính đúng đắn của các phương pháp biểu
diễn tri thức.
Ý nghĩa thực tiễn:
- Chương trình nếu thành công và được ứng dụng sẽ góp phần không
nhỏ vào cách giảng dạy bộ môn Hóa học trong trường THPT.
- Ứng dụng công nghệ thông tin vào công tác giảng dạy sẽ tạo cho bài
giảng trở nên sáng tạo, mới mẻ. Người học sẽ cảm thấy hứng thú, dễ tiếp thu,
đáp ứng yêu cầu về lưu trữ dữ liệu, tiết kiệm được thời gian và chi phí cho
công việc.
6. Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận:
Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây
dựng cơ sở lý thuyết của khóa luận và các biện pháp cần thiết để giải quyết
các vấn đề của khóa luận.

3

Phương pháp chuyên gia:
Tham khảo ý kiến của các chuyên gia để có thể thiết kế chương trình
phù hợp với yêu cầu thực tiễn. Nội dung xử lý nhanh đáp ứng được yêu cầu
ngày càng cao của người sử dụng.
Phương pháp thực nghiệm:
Thông qua quan sát thực tế, yêu cầu của cơ sở, những lý luận được
nghiên cứu và kết quả đạt được qua những phương pháp trên.
7. Cấu trúc khóa luận
Cấu trúc khóa luận ngoài phần lời cảm ơn, mở đầu, kết luận và hướng

phát triển, tài liệu tham khảo, khóa luận có những nội dung sau:
Chương 1: Tổng quan về biểu diễn tri thức – Chương này trình bày cho các
bạn biết khái niệm tri thức, biểu diễn tri thức, một số mô hình biểu diễn tri
thức và các phương pháp biểu diễn tri thức.
Chương 2: Các phương pháp biểu diễn tri thức – Chương này khóa luận trình
bài các phương pháp biểu diễn tri thức. Nêu rõ ưu điểm, nhược điểm, cơ chế,
ứng dụng và ví dụ minh họa.
Chương 3: Ứng dụng mạng ngữ nghĩa trong bài toán điều chế chất hóa học –
cân bằng phản ứng hóa học – Chương này viết và xây dựng ứng dụng của
mạng ngữ nghĩa trong bài toán điều chế chất hóa học – cân bằng phản ứng
hóa học bằng ngôn ngữ C#.









4

CHƯƠNG 1
.
TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC

1.1. Khái niệm tri thức
Tri thức là sự hiểu biết bằng lý thuyết hay thực tế về một chủ đề hay
lĩnh vực. Tri thức là tổng của những cái đang biết hiện nay, tri thức là sức
mạnh. Những người có tri thức tốt là những chuyên gia.

Trong ngữ cảnh của khoa học máy tính “dữ liệu là nguyên liệu thô để
xử lý” là các con số, chữ cái, hình ảnh, âm thanh Thông tin là tất cả những
gì con người có thể cảm nhận qua các giác quan (chính xác, xem khái niệm
Entropy là độ đo thông tin, độ đo về các tin tức mới đối với người nào đó).
Nếu so về số lượng (dữ liệu nhiều hơn thông tin; thông tin nhiều hơn tri thức).
Có thể mô tả chúng theo dạng hình chóp.
Người ta phân loại tri thức thành các dạng sau:
Tri thức thủ tục: Tri thức thủ tục là tri thức mô tả cách giải quyết một
vấn đề, quy trình xử lý các công việc, lịch trình tiến hành các thao tác Các
dạng tri thức thủ tục thường dùng là các luật, chiến lược, lịch trình.
Ví dụ: IF xe máy không khởi động được
THEN đầu tiên kiểm tra bugi
Tri thức khai báo: Cho biết một vấn đề được thấy thế nào. Loại tri thức
này bao gồm các phát biểu đơn giản, dưới dạng các khẳng định logic đúng
hoặc sai. Tri thức khai báo cũng có thể là một danh sách các khẳng định nhằm
mô tả đầy đủ hơn về đối tượng hay một khái niệm nào đó.
Siêu tri thức mô tả tri thức về tri thức: Loại tri thức này giúp lựa chọn
tri thức thích hợp nhất trong số các tri thức khi giải quyết một vấn đề. Các
chuyên gia sử dụng tri thức này để điều chỉnh hiệu quả giải quyết vấn đề bằng
cách hướng các lập luận về miền tri thức có khả năng hơn cả.
Tri thức Heuristic: Mô tả các “mẹo” để đẫn dắt tiến trình lập luận. Tri
thức Heuristic còn được gọi là “tri thức nông cạn” do không đảm bảo hoàn
toàn chính xác về kết quả giải quyết vấn đề. Các chuyên gia thường dùng các
5

tri thức khoa học như sự kiện, luật, Sau đó chuyển chúng thành các tri thức
Heuristic để thuận tiện hơn trong việc giải quyết một số bài toán.
Tri thức có cấu trúc: Mô tả tri thức theo cấu trúc. Loại tri thức này mô
tả mô hình tổng quan hệ thống theo quan điểm của hệ chuyên gia, bao gồm
khái niệm, khái niệm con và các đối tượng diễn tả chức năng và mối liên hệ

giữa các tri thức dựa theo cấu trúc.
1.2. Cấu trúc hệ giải toán dựa trên tri thức








Hình 1.1. Cấu trúc của hệ giải toán thông minh

Các thành phần chính của hệ thống trong việc giải toán tổng quát trong
một miền tri thức:
- Bộ suy diễn tri thức

(Knowledge Base): Đây là trái tim của hệ thống,
trong đó chứa các kiến thức cần thiết trong việc giải các bài toán.
- Bộ suy diễn hay mô tả suy diễn: Bộ suy diễn áp dụng kiến thức được
lưu trữ trong cơ sở tri thức để giải quyết hay tìm lời giải cho bài toán đặt ra.
Sự tách biệt của bộ suy diễn và một cơ sở tri thức là sự tách biệt quan
trọng.
Sự tách biệt: tính độc lập tương đối giữa các cơ sở tri thức và bộ suy
diễn. Cần có sự tách biệt này vì:
+ Việc biểu diễn tri thức được thực hiện một cách tự nhiên hơn, gần gũi
hơn với quan niệm của con người.
+ Các nhà thiết kế sẽ tập trung vào việc nắm bắt và tổ chức cơ sở tri
thức hơn là phải đi vào những chi tiết cài đặt trên máy tính.
Bộ suy diễn
Người sử dụng

Hiệu chỉnh cơ sở
tri thức



Giao

diện
Cơ sở tri thức
Hệ thống con
giải thích
6

+ Giúp tăng cường tính mô-đun hóa của phần cơ sở tri thức, bộ suy
diễn và bộ phận cập nhật, hiệu chỉnh kiến thức. Sự bổ sung hay loại bỏ một
phần kiến thức sẽ không gây ra các hiệu ứng lề các thành phần cho hệ thống.
+ Cho phép cùng một chiến lược điều khiển và giao tiếp có thể được sử
dụng cho nhiều hệ thống khác nhau.
+ Sự tách biệt của kiến thức giải bài toán và bộ suy diễn còn giúp ta có thể
thử nghiệm nhiều chiến lượt điều khiển khác nhau trên cùng một cơ sở tri thức.
1.3. Khái niệm biểu diễn tri thức
Biểu diễn tri thức của con người với sự giúp đỡ của máy tính là một
trong những lĩnh vực đã được nghiên cứu rất lâu của khoa học máy tính nhằm
mục đích biểu diễn các kiến thức của con người thành một dạng mà máy tính
có thể hiểu được. Đã có nhiều tiếp cận khác nhau về vấn đề này nhưng gặp
thất bại trong quá khứ có thể vì đã không tập trung vào cái quan trọng nhất đó
là cách mà tri thức con người được biểu diễn theo ngôn ngữ tự nhiên.
Các mô hình để phần nào có thể biểu diển tri thức con người dựa trên
ngôn ngữ tự nhiên lần lượt được đưa ra để giúp con người có thể đưa ra các tri
thức của họ theo cách tự nhiên sao cho máy tính có thể hiểu được. Các mô

hình này đã được nghiên cứu bởi nhiều nhóm chuyên gia và nhiều mô hình lần
lượt ra đời mặc dù không phải mô hình nào cũng đủ mạnh để có thể tạo ra ứng
dựng thực tế có thể biểu diển được các tri thức trên nhiều lĩnh vực khác nhau
.
1.3.1. Tầm quan trọng của biểu diễn tri thức lên máy tính
Sống trong một thế giới mà máy tính ngày càng trở nên phổ biến hơn.
Số lượng người phải làm việc với máy tính trong cuộc sống hàng ngày đã gia
tăng một cách đáng kể trong thập kỷ qua. Sẽ không phải quá nếu nói rằng
chúng ta không còn xa thời điểm mà hầu như tất cả mọi người đều phụ thuộc
vào máy tính trong cả ngày và đêm.
Tuy nhiên số lượng người được đào tạo về khoa học máy tính lại không
theo kịp với đà phát triển. Tỷ lệ người có trình độ về khoa học máy tính chỉ
chiếm tỷ lệ rất thấp trên dân số có việc làm. Nghĩa là trong khi càng ngày
càng nhiều người phải làm việc với máy tính trong cuộc sống hàng ngày của
7

họ, tỷ lệ người có trình độ cao trong khoa học máy tính lại duy trì với mức rất
thấp. Kết quả là càng ngày càng nhiều người không có đủ kiến thức cụ thể cần
thiết trong lĩnh vực khoa học máy tính để có thể giao tiếp được với máy tính.
Tình trạng này làm tăng lên sự cần thiết của việc liên lạc với máy tính
theo cách dễ dàng và trực quan nhất mà không cần phải yêu cầu kiến thức
chuyên sâu từ người dùng. Tuy nhiên trên thực tế con người và máy tính dùng
các loại ngôn ngữ hoàn toàn khác biệt đó là một trong những trở ngại lớn nhất
trong việc giao tiếp giữa con người với máy tính. Máy tính sử dụng các ngôn
ngữ hình thức như ngôn ngữ lập trình hay ngôn ngữ logic trong khi con người
thể hiện họ bằng ngôn ngữ tự nhiên.
Giải pháp đơn giản nhất cho vấn đề này là viết các chương trình máy
tính sao cho chúng có khả năng xử lý ngôn ngữ tự nhiên sao cho hợp lý nhất.
Mặc dù đã có nhiều thành công bước đầu trong lĩnh vực nghiên cứu này, việc
xử lý ngôn ngữ tự nhiên trở thành một vấn đề vô cùng khó khăn. Từ những cố

gắng đầu tiên, một lượng lớn các nghiên cứu đã trực tiếp làm việc trên vấn đề
này trong vài thập kỷ trở lại đây. Mặc dù thực tế là có những tiến triển trên
một số khía cạnh, máy tính vẫn thất bại trong việc xử lý ngôn ngữ tự nhiên
một cách tổng quát và đáng tin cậy nhất.
Trong khi máy tính thất bại trong việc hiểu ngôn ngữ tự nhiên, thì con
người được biết là gặp rất nhiều khó khăn trong việc học ngôn ngữ hình thức.
Ví dụ rất nhiều người sử dụng web thất bại trong việc dùng chính xác các toán
tử vô cùng đơn giản trong các công cụ tìm kiếm. Ngoài ra việc sử dụng các
ngôn ngữ logic cũng gặp rất nhiều khó khăn.
Nhìn chung, kết quả hiển nhiên là con người và máy tính có thể giao
tiếp nhau nhưng không thể dùng ngôn ngữ của hai bên. Một số mô hình đã ra
đời để giải quyết vấn đề này trên một số khía cạnh nhất định đó là có thể phần
nào biểu diễn những tri thức quý giá của con người lên máy tính và có thể tự
phân tích được dựa vào những tri thức đó.

8

1.4. Một số mô hình biểu diễn tri thức
1.4.1. Hệ luật dẫn
a. Khái niệm
Hệ luật dẫn bao gồm một tập hợp các quy tắc nếu - thì hợp với nhau tạo
thành một mô hình xử lý thông tin cho một số công việc liên quan đến biểu
diễn tri thức. Hệ luật dẫn có một số thuộc tính đặc biệt làm cho nó có tính phù
hợp cao để có thể mô hình được tri thức. Từ mô hình ban đầu chỉ dùng để giải
quyết vấn đề, hệ luật dẫn đã phát triển lên trở thành một hình thức có thể mô
hình các tri thức của con người và các khía cạnh trong máy học.
Hệ luật dẫn là một mô hình xử lý tri thức, bao gồm một tập hợp các quy
tắc (được gọi là luật dẫn). Mỗi luật gồm hai phần: phần điều kiện và phần
hành động. Ý nghĩa của luật này là khi điều kiện đúng, thì một hành động sẽ
được thực thi. Hãy xem xét một ví dụ đơn giản sau đây với hai luật dẫn để mô

tả hành vi của một hệ thống làm ấm.
Luật 1: nếu nhiệt độ < 20
0
C -> bật chế độ làm ấm.
Luật 2: nếu nhiệt độ > 20
0
C -> tắt chế độ làm ấm.
Khi nhiệt độ trong phòng nhỏ hơn 20
0
C, phần điều kiện của luật 1
đúng, vì thế máy điều hoà nhiệt độ thực hiện hành động cụ thể theo luật vào
bật chế độ làm ấm. Khi nhiệt độ trên 20
0
C, luật 2 tương tự sẽ được thực thi và
tắt chế độ làm ấm. Cùng với nhau, hai nguyên tắc này xác định một quá trình
mô tả hành vi của một máy điều hoà nhiệt độ.
Một hệ luật dẫn cho mô hình tri thức có nhiều hơn hai luật, thậm chí cả
ngàn luật. Hệ thống hoạt động theo kiểu chu kỳ. Trước hết một luật có các
điều kiện được thoả sẽ được xác định, khi đó luật này sẽ được thực thi.
Thường hành động này sẽ thay đổi trạng thái hiện tại sang trạng thái khác do đó
một luật khác với điều kiện của nó sẽ được thoả và vòng quay lại được lặp lại.



9

b. Mô hình biểu diễn tri thức của hệ luật dẫn
Mô hình biểu diễn tri thức của hệ luật dẫn gồm có hai thành phần chính
(Facts, Rules). Trong đó Facts bao gồm các phát biểu chỉ các sự kiện hay các
tác vụ nào đó, còn Rules gồm các luật dẫn có dạng “if…then….”

Ví dụ: Một phần cơ sở tri thức của tam giác
- Các yếu tố của tam giác ví dụ cạnh a, b, c; góc A, B, C, chu vi p,
diện tích S, đường cao ha, hb, hc….
Đưa vào Facts = {a, b, c, A, B, C, p, S, ha, hb, hc, …}
- Các luật sinh ví dụ: nếu có góc A, góc B thì có góc C, …
Đưa vào Rules = r
1
: {A, B}  {C= pi – A – B}}
c. Tổ chức lưu trữ
Khi tiến hành lưu trữ tuỳ theo cấu trúc của Facts mà ta có thể sử dụng
các cấu trúc dữ liệu phổ biến như struct, frames, classes,…
Ví dụ:
Một tổ chức lưu trữ hệ thống sẽ lưu hai tập tin dạng text có cấu
trúc: Fact.txt và Rule.txt. Trong đó cấu trúc của mỗi tập tin như sau:
Fact.txt
Begin
a: cạnh a của tam giác
b: cạnh b của tam giác

End
Rule.txt
Begin
{A, B} => {C = 180 - A - B}

End


10

d. Cơ chế suy luận trên luật dẫn

Với một hệ luật dẫn K = {Facts, Rules} cho trước. Giả sử ta có một tập
sự kiện GT đã xác định, ta xét một tập sự kiện mục tiêu KL. Có thể suy ra
được KL từ tập GT không, và nếu được thì KL được suy ra từ các luật sinh
nào?
Suy diễn tiến:
Là quá trình suy luận xuất phát từ một số sự kiện ban đầu, xác định các
sự kiện có thể được sinh ra từ sự kiện này.
Ví dụ: Về tổ chức lưu trữ nếu ban đầu ta có các sự kiện A, B. Ta có thể
suy ra C nhờ luật R1
Thuật giải suy diễn tiến:
Bước 1: Ghi nhận các sự kiện giải thiết và mục tiêu của bài toán
Bước 2: Khởi tạo lời giải là rỗng
Bước 3: Kiểm tra mục tiêu nếu mục tiêu đáp ứng thì đến Bước 8
Bước 4: Nếu mục tiêu chưa nằm trong know tìm luật có thể phát
sinh sự kiện mới
Bước 5: Nếu không tìm được luật thì dừng không tìm được lời giải
Bước 6: Nếu Bước 4 thành công thì ghi nhận thông tin về luật vào
lời giải và sự kiện mới vào giả thiết được phát sinh từ các luật.
Bước 7: Đến Bước 4
Bước 8: Tìm được lời giải trong danh sách luật solution (solution là
dãy các luật sẽ áp dụng).
Suy diễn lùi:
Là quá trình suy luận ngược xuất phát từ một số sự kiện ban đầu, tìm
kiếm các sự kiện đã "sinh" ra sự kiện này.
Ví dụ: Trong ví dụ về thuật giải suy diễn tiến nếu ban đầu ta cần tìm C
thì xem trong các luật sinh ra C để tìm sự kiện nào đã có trong đề bài. Nếu tìm
được thì kết thúc còn không tìm được thì lại truy ngược lên đối với các sự
11

kiện đã sinh ra C. Ở đây nhờ luật R1 ta tìm ra được sự kiện A, B mà đề bài đã

cho trước.
Thuật giải suy diễn lùi:
Bước 1: Giả sử mục tiêu đúng
Bước 2: Phát sinh các mục tiêu con
Bước 3: Kiểm tra các mục tiêu con nếu mục tiêu đáp ứng thì đến
Bước 8
Bước 4: Tìm luật có thể phát sinh sự kiện mới
Bước 5: Nếu không tìm được luật thì dừng không tìm được lời giải
Bước 6: Nếu Bước 4 thành công thì ghi nhận thông tin về luật vào
lời giải và sự kiện mới vào giả thiết được phát sinh từ các luật.
Bước 7: Đến Bước 4
Bước 8: Tìm được lời giải trong danh sách luật solution (solution là
dãy các luật sẽ áp dụng)
e. Tối ưu luật
Tập các luật trong một cơ sở tri thức rất có khả năng thừa, trùng lặp
hoặc mâu thuẫn. Dĩ nhiên là hệ thống có thể đổ lỗi cho người dùng về việc
đưa vào hệ thống những tri thức như vậy. Tuy việc tối ưu một cơ sở tri thức
về mặt tổng quát là một thao tác khó (vì giữa các tri thức thường có quan hệ
không tường minh), nhưng trong giới hạn cơ sở tri thức dưới dạng luật, ta vẫn
có một số thuật toán đơn giản để loại bỏ các vấn đề này như:
Rút gọn vế phải:
A  B  A  C sẽ trở thành A  B  C
Rút gọn vế trái:
(L1) A, B  C (L2) A  X (L3) X  C sẽ trở thành A  C do đó L1
bị dư thừa có thể loại bỏ
Phân rã và kết hợp luật:
A  B  C sẽ trở thành A  C, B  C
Luật thừa:
12


Một luật là thừa nếu có thể suy ra từ luật khác ví dụ A  B, B  C, A
 C thì luật thứ 3 bị thừa.
f. Ưu và khuyết điểm của hệ luật dẫn
- Ưu điểm:
Các luật rất dễ hiểu nên có thể dễ dàng dùng để trao đổi với
người dùng (vì nó là một trong những dạng tự nhiên của ngôn ngữ).
Có thể dễ dàng xây dựng được cơ chế suy luận và giải thích từ
các luật.
Việc hiệu chỉnh và bảo trì hệ thống là tương đối dễ dàng.
Có thể cải tiến dễ dàng để tích hợp các luật mờ.
Các luật thường ít phụ thuộc vào nhau.
- Nhược điểm:
Các tri thức phức tạp đôi lúc đòi hỏi quá nhiều (hàng ngàn) luật
sinh. Điều này sẽ làm nảy sinh nhiều vấn đề liên quan đến tốc độ lẫn
quản trị hệ thống.
Thống kê cho thấy, người xây dựng hệ thống trí tuệ nhân tạo
thích sử dụng luật sinh hơn tất cả phương pháp khác (dễ hiểu, dễ cài
đặt) nên họ thường tìm mọi cách để biểu diễn tri thức bằng luật sinh
cho dù có phương pháp khác thích hợp hơn. Đây là nhược điểm mang
tính chủ quan của con người.
Cơ sở tri thức luật sinh lớn sẽ làm giới hạn khả năng tìm kiếm
của chương trình điều khiển. Nhiều hệ thống gặp khó khăn trong việc
đánh giá các hệ dựa trên luật sinh cũng như gặp khó khăn khi suy luận
trên luật sinh.
1.4.2. Mạng suy diễn tính toán
a. Khái niệm
Một mạng tính toán với các biến giá trị đơn giản là một cặp (M,F) trong
đó M = {x
1
, x

2
, …,x
n
} là một tập các biến có giá trị đơn giản (hoặc giá trị
13

không có cấu trúc) và F = {f
1
, f
2
, …., f
m
} là tập các quan hệ tính toán giữa các
biến trọng tập M. Mỗi quan hệ tính toán f  F có dạng như sau:
+ Một phương trình với một số biến trong M hoặc
+ Một quy tắc suy luận: u(f)  v(f), với u(f)  M, v(f)  M, và có một
công thức tương ứng để xác định (hoặc tính toán) các biến trong v(f) từ u(f).
Ta có M(f) = u(f)  v(f).
Ví dụ: Tam giác ABC có thể được biểu diễn bởi mạng tính toán như sau
M = {a, b, c, A, B, C, R, S, p} và F = { f
1
: A + B + C = 180
f
2
:
sinB
b
sinA
a



f
3
:
sinB
b
sinC
c

f
4
:
sinC
c
sinA
a


f
5
: p = (a+b+c) /2 f
6
: S = a.h
a
/ 2
f
7
: S = b.h
b
/ 2 f

8
: S = c.h
c
/ 2
f
9
: S = a.b.sinC / 2 v.v }
b. Bài toán trên mạng tính toán
Cho một mạng tính toán (M, F). Vấn đề phổ biến nhất phát sinh từ các
ứng dụng thực tế là tìm ra một giải pháp xác định được tập H  M từ tập
G ⊆ M. Vấn đề này được viết dưới dạng H  G, H là giả thuyết và G là mục
tiêu của vấn đề. Để giải quyết vấn đề cần phải trả lời hai câu hỏi sau:
Q1: Vấn đề có thể được giải quyết dựa trên tri thức K = (M, F)
Q2: Làm thế nào để đạt được mục tiêu G từ giả thuyết H dựa trên tri
thức K = (M, F) trong trường hợp vấn đề có thể được giải quyết.
Ví dụ: Trong tập tri thức K = (M, F) của ví dụ trên giả sử ta có H = {a =
5, b = 4, A = pi/2} tìm giải pháp cho G = {S, R}
Định nghĩa:
Cho một mạng tính toán K = (M, F)
(i) Cho mỗi A  M và f

F, ta ký hiệu f(A) = A  M(f) là tập thu
được từ A bằng cách áp dụng f, cho S = [f
1
, f
2
, , f
k
] là một danh
sách chứa các quan hệ trong F, ký hiệu S(A) = f

k
(f
k
-
14

1( (f
2
(f
1
(A)) )) được dùng để biểu hiện một tập hợp các biến
lấy được từ A bằng cách áp dụng các quan hệ f.
(ii) Danh sách S = [f
1
, f
2
, , f
k
] được gọi là một giải pháp của vấn đề
H  G nếu G  S(H). Giải pháp S được gọi là giải pháp tốt nhất
nếu không có một danh sách con S’ của S sao cho S’ cũng là giải
pháp của vấn đề. Vấn đề được xem là có thể giải quyết được nếu
nó có một giải pháp.
Định nghĩa:
Cho một mạng tính toán K = (M, F)
Cho A là tập con của M. Có thể dễ dàng xác định tồn tại một tập duy
nhất
A
 M sao cho bài toán A 
A

giải được; tập
A
được gọi là bao đóng
của A.
c. Thuật toán
Định lý 1:
Cho một mạng tính toán K = (M, F). Các dòng sau đây tương đương
nhau
(i) Bài toán H  G giải được.
(ii)
H
 G
(iii) Tồn tại một danh sách các quan hệ S sao cho S(H)  G
Thuật toán: Tìm một lời giải cho bài toán H  G
1. Solution  empty; // Solution là dãy các quan hệ sẽ áp dụng
2. if G  H then
begin
Solution_found  true; // biến Solution_found = true khi bài
toán là // giải được
goto 4;
end
else
Solution_found  false;
15

3. Repeat
Hold  H;
Chọn ra một f  F chưa xem xét;
while not Solution_found and (chọn được f) do
begin

if (áp dụng f từ H tạo ra một facts mới)
then
begin
H  H  M(f);
Solution  Solution  f;
end;
if G  H then
Solution_found  true;
Chọn ra một f  F chưa xem xét;
end;  while 
Until Solution_found or (H = Hold);
4. if not Solution_found then
Bài toán không có lời giải;
else
Solution là một lời giải;
Thuật toán: Tìm lời giải tốt nhất từ một lời giải S = [f
1
, f
2
, , f
k
] của
bài toán H  G trên mạng tính toán (M, F).
1. D  f
1
, f
2
, , f
m
;

2. for i = m downto 1 do
if D \ f
i
 là một lời giải then
D  D \ f
i
;
3. D là một lời giải tốt.
Trên mạng tính toán K = (M,F). Có nhiều trường hợp bài toán H  G
có một lời giải S mà trong đó có nhiều quan hệ dẫn tới việc tính toán một số
16

biến thừa. Do đó, cần xác định các biến thật sự cần thiết trong mỗi bước trong
quá trình giải quyết bài toán. Định lý sau đây cho thấy làm cách nào để phân
tích một lời giải để xác định ra các biến cần thiết để tính toán trong từng
bước.
Định lý 2: Cho một mạng tính toán K = (M, F). Gọi f
1
, f
2
, , f
n
 là
một lời giải tốt cho bài toán H  G. Đặt: A
0
= H, A
i
= f
1
, f

2
, , f
n
(H), với
mọi i=1, ,m. Khi đó có một dãy B
0
, B
1
, , B
n
-1, B
n
, thỏa các điều kiện sau
đây:
(1) B
n
= G.
(2) B
i
 A
i
, với mọi i=0,1, ,n.
(3) Với mọi i=1, ,n, [f
i
] là lời giải của bài toán B
i
-1  B
i
nhưng
không phải là lời giải của bài toán B  B

i
, trong đó B là một tập con thật sự
tùy ý của B
i
-1.
Cho một mạng tính toán K = (M, F). Các dòng sau đây tương đương
nhau
(iv) Bài toán H  G giải được.
(v)
H
 G
(vi) Tồn tại một danh sách các quan hệ S sao cho S(H)  G
d. Ưu và khuyết điểm của mạng tính toán
- Ưu điểm:
Giải được hầu hết các bài toán GT  KL nếu như đáp ứng đầy đủ các
giả thiết cần thiết.
Thuật toán đơn giản dễ cài đặt cho nên việc bảo trì hệ thống tương đối
đơn giản.
Có thể xây dựng hệ thống suy luận và giải thích một cách rõ ràng và dễ
hiểu.
- Khuyết điểm:
Do hệ thống chỉ bao gồm 1 cặp (M, F) để biểu diễn tri thức nên khi gặp
phải những bài toán phức tạp thì có thể xảy ra việc lưu trữ khó khăn và nhập
17

nhằng khi quản lý. Đồng thời việc xây dựng lại thuật toán là một việc tương
đối khó khăn  phải bảo trì lại toàn bộ hệ thống.
Đối với các bài toán mà sử dụng nhiều các đối tượng tính toán bài toán
trở nên phức tạp, việc giải quyết bài toán bằng mạng tính toán trở nên khó
khăn cho người lập trình.

1.5. Các phương pháp biểu diễn tri thức
- Biểu diễn tri thức bằng Logic mệnh đề
- Biểu diễn tri thức bằng luật sản xuất (luật sinh)
- Biểu diễn tri thức nhờ bộ ba liên hợp OAV
- Biểu diễn tri thức bằng FRAME
- Biểu diễn tri thức nhờ mạng ngữ nghĩa
Các phương pháp biểu diễn tri thức khác
- Phương pháp mô tả tri thức bằng kịch bản (Script)
- Phương pháp mô tả tri thức bằng mặt (Face)
- Phương pháp mô tả tri thức bằng bảng đen (Blackboard)
- Phương pháp mô tả tri thức theo thủ tục






18

CHƯƠNG 2. CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC
2.1. Phương pháp biểu diễn tri thức bằng Logic mệnh đề
Định nghĩa: Logic mệnh đề là công cụ toán logic, các mệnh đề được mã
hoá (gán) cho một biến, hoặc hằng còn các biểu thức là sự liên kết có nghĩa
giữa các biến hằng với một số toán tử nhất định.
Mệnh đề “Nếu trời mưa (A) thì đất ướt (B)” được mô tả: A→B
Tri thức được mô tả dưới dạng các mệnh đề trong “ngôn ngữ biểu diễn
tri thức”. Mỗi câu có thể xem như sự mã hóa một sự hiểu biết về thế giới
thực. Ngôn ngữ biểu diễn tri thức (cũng như mọi ngôn ngữ hình thức khác)
gồm hai thành phần cơ bản là cú pháp và ngữ nghĩa.
Cú pháp của một ngôn ngữ bao gồm các ký hiệu và các quy tắc liên kết

các ký hiệu (các luật cú pháp) để tạo thành các câu (công thức) trong ngôn
ngữ. Các câu ở đây là biểu diễn ngoài, cần phân biệt với biểu diễn bên trong
máy tính. Các câu sẽ được chuyển thành các cấu trúc dữ liệu thích hợp được
cài đặt trong một vùng nhớ nào đó của máy tính, đó là biểu diễn bên trong.
Bản thân các câu chưa chứa đựng một nội dung nào cả, chưa mang một ý
nghĩa nào cả.
Ngữ nghĩa của ngôn ngữ cho phép xác định ý nghĩa của các câu trong
một miền nào đó của thế giới hiện thực. Chẳng hạn, trong ngôn ngữ các biểu
thức số học, dãy ký hiệu (x+y)*z là một câu viết đúng cú pháp. Ngữ nghĩa của
ngôn ngữ này cho phép hiểu rằng, nếu x, y, z, ứng với các số nguyên, ký hiệu
“+” ứng với phép toán cộng, còn “*” ứng với phép chia, thì biểu thức (x+y)*z
biểu diễn quá trình tính toán: lấy số nguyên x cộng với số nguyên y, kết quả
được nhân với số nguyên z.
Ngoài hai thành phần cú pháp và ngữ nghĩa, ngôn ngữ biểu diễn tri thức
cần được cung cấp cơ chế suy diễn. Một luật suy diễn (rule of inference) cho
phép suy ra một công thức từ một tập nào đó các công thức. Chẳng hạn, trong
logic mệnh đề, luật modus ponens cho phép từ hai công thức A và A=>B suy
ra công thức B. Sẽ hiểu lập luận hoặc suy diễn là một quá trình áp dụng các
19

luật suy diễn để từ các tri thức trong cơ sở tri thức và các sự kiện nhận được
các tri thức mới. Như vậy xác định:
Ngôn ngữ biểu diễn tri thức = Cú pháp + Ngữ nghĩa + Cơ chế suy diễn.
Một ngôn ngữ biểu diễn tri thức tốt cần có khả năng biểu diễn rộng, tức
là mô tả được mọi điều mà chúng ta muốn. Nó cần hiệu quả để đi tới các kết
luận; thủ tục suy diễn đòi hỏi ít thời gian tính toán và không gian nhớ. Mong
muốn ngôn ngữ biểu diễn tri thức gần với ngôn ngữ tự nhiên.
Cú pháp của logic mệnh đề rất đơn giản. Nó cho phép xây dựng các
công thức. Cú pháp của logic mệnh đề gồm tập các ký hiệu và tập các luật xây
dựng công thức.

- Các ký hiệu:
Hai hằng logic: True và False.
Các ký hiệu mệnh đề (còn được gọi là các biến mệnh đề): P, Q,
Các phép kết nối logic: ∧, ∨, →, ⇒, ⇔.
Các dấu mở ngoặc (“và đóng ngoặc”).
- Các quy tắc xây dựng các công thức:
Các biến mệnh đề là công thức. Nếu A và B là công thức thì:
(A∧B) (đọc “A hội B” hoặc “A và B”)
(A∨B) (đọc “A tuyển B” hoặc “A hoặc B”) (∨A) (đọc “phủ định A”)
(A⇒B) (đọc “A kéo theo B”hoặc “nếu A thì B”) (A⇔B) (đọc “A và B
kéo theo nhau”) là các công thức.
Để ngắn gọn, bỏ đi các cặp dấu ngoặc khi không cần thiết. Ví dụ, thay
cho ((A∨B)∧C), viết (A∨B)∧C. Các công thức là các ký hiệu mệnh đề sẽ
được gọi là các câu đơn hoặc câu phân tử. Các công thức không phải là câu
đơn sẽ được gọi là câu phức hợp. Nếu P là ký hiệu mệnh đề thì P và ∨ P được
gọi là literal, P là literal dương, còn ∨ P là literal âm. Câu phức hợp có dạng
A
1
∨ ∨A
2
… A
i
trong đó A
i
là các literal sẽ được gọi là câu tuyển (clause).
Ngữ nghĩa của logic mệnh đề cho phép xác định ý nghĩa của các công
thức trong thế giới hiện thực nào đó. Điều đó được thực hiện bằng cách kết
20

hợp mỗi ký hiệu mệnh đề với sự kiện nào đó trong thế giới hiện thực. Chẳng

hạn, ký hiệu mệnh đề P có thể ứng với sự kiện “Paris là thủ đô nước Pháp”
hoặc bất kỳ một sự kiện nào khác. Bất kỳ một sự kết hợp các kí hiệu mệnh đề
với các sự kiện trong thế giới thực được gọi là một minh họa (interpretation).
Chẳng hạn minh họa của kí hiệu mệnh đề P có thể là một sự kiện (mệnh đề)
“Paris là thủ đô nước Pháp”. Một sự kiện chỉ có thể đúng hoặc sai. Chẳng
hạn, sự kiện “Paris là thủ đô nước Pháp” là đúng, còn sự kiện “Số Pi là số hữu
tỉ” là sai.
Một cách chính xác hơn, hiểu một minh họa là một cách gán cho mỗi
ký hiệu mệnh đề một giá trị chân lý True hoặc False. Trong một minh họa,
nếu kí hiệu mệnh đề P được gán giá trị chân lý True/False (P: True/ P: False)
thì ta nói mệnh đề P đúng/sai trong minh họa đó. Trong một minh họa, ý
nghĩa của các câu phức hợp được xác định bởi ý nghĩa của các kết nối logic.
Xác định ý nghĩa của các kết nối logic trong bảng chân lý.
Bảng 2.1: Bảng chân lý của các kết nối logic
P Q P
P
∧ Q
P
∨ Q

P => Q PQ
False
False
True
True
False
True
True
True
True

True
False
False
False
False
False
True
False
True
True
True
True
True
False
True
True
False
False
True

Ý nghĩa của các kết nối logic ∧, ∨ và l được xác định như ý nghĩa của
các từ “và”,“hoặc là” và “phủ định” trong ngôn ngữ tự nhiên. Cần giải thích
thêm về ý nghĩa của phép kéo theo P ⇒ Q (P kéo theo Q). Ở đây: P là giả
thiết, Q là kết luận. Khi P là đúng và Q là đúng thì câu “P kéo theo Q” là
đúng, còn khi P là đúng Q là sai thì câu “P kéo theo Q” là sai. Nhưng nếu P
sai và Q đúng, hoặc P sai Q sai thì “P kéo theo Q” là đúng hay sai? Nếu xuất
phát từ giả thiết sai, thì không khẳng định gì về kết luận. Không có lý do để nói

×