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 c
Trang 1LỜ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
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
Trang 2TRƯỜ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
Trang 3LỜ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
Trang 4MỤ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
Trang 5DANH 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
Trang 6MỞ ĐẦ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#
Trang 7- Ứ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
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
Trang 8Phươ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#
Trang 9CHƯƠ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
Trang 10tri 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
Trang 11+ 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
Trang 12họ, 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 đó
Trang 131.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 độ < 200C -> bật chế độ làm ấm
Luật 2: nếu nhiệt độ > 200C -> tắt chế độ làm ấm
Khi nhiệt độ trong phòng nhỏ hơn 200C, 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 200C, 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
Trang 14b 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 = r1: {A, B} {C= pi – A – B}}
{A, B} => {C = 180 - A - B}
…
End
Trang 15d 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ự
Trang 16kiệ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ư:
Trang 17Một luật là thừa nếu có thể suy ra từ luật khác ví dụ A B, B C, A
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 = {x1, x2, …,xn} là một tập các biến có giá trị đơn giản (hoặc giá trị
Trang 18không có cấu trúc) và F = {f1, f2, …., fm} 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)
c
f4:
sinC
c sinA
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 = [f1, f2, , fk] là một danh sách chứa các quan hệ trong F, ký hiệu S(A) = fk(fk-
Trang 191( (f2(f1(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 = [f1, f2, , fk] đượ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
(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
Trang 204 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 = [f1, f2, , fk] của bài toán H G trên mạng tính toán (M, F)
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ố
Trang 21biế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 f1, f2, , fn là một lời giải tốt cho bài toán H G Đặt: A0 = H, Ai = f1, f2, , fn(H), với mọi i=1, ,m Khi đó có một dãy B0, B1, , Bn-1, Bn, thỏa các điều kiện sau đây:
(1) Bn = G
(2) Bi Ai , với mọi i=0,1, ,n
(3) Với mọi i=1, ,n, [fi] là lời giải của bài toán Bi-1 Bi nhưng không phải là lời giải của bài toán B Bi, trong đó B là một tập con thật sự tùy ý của Bi-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
Trang 22nhằ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
Trang 23CHƯƠ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
Trang 24luậ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
A1∨ ∨A2… Ai trong đó Ai 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
Trang 25hợ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
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
Trang 26rằng nếu P sai và Q đúng hoặc P sai và Q sai thì “P kéo theo Q” là sai Do đó, trong trường hợp P sai thì “P kéo theo Q” là đúng dù Q là đúng hay Q là sai
Việc xác định ngữ nghĩa của một câu (P ∨ Q) ∧ S trong minh họa được tiến hành như sau: đầu tiên ta xác định giá trị chân lý của P ∨ Q và S, sau đó
sử dụng bảng chân lý của ∧ để xác định giá trị (P ∨ Q) ∧ S Một công thức được gọi là vững chắc (valid) nếu nó đúng trong mọi minh họa Chẳng hạn câu P ∨ P là vững chắc (luôn bằng 1: True)
Một công thức được gọi là vững chắc (valid) nếu nó đúng trong mọi minh họa Chẳng hạn câu P ∨ P là vững chắc (luôn bằng 1: True)
Một công thức được gọi là không thoả được, nếu nó là sai trong mọi minh họa Chẳng hạn công thức P ∧ P (luôn bằng 0: False)
Bằng cách lập bảng chân lý (phương pháp bảng chân lý) có thể xác định được một công thức có thoả được hay không Trong bảng này, mỗi biến mệnh đề đứng đầu một cột, công thức cần kiểm tra đứng đầu một cột, mỗi dòng tương ứng với một minh họa
Cần lưu ý rằng, một công thức chứa n biến, thì số các minh họa của nó
là 2n, tức là bảng chân lý có 2n dòng Như vậy việc kiểm tra một công thức
có thoả được hay không bằng phương pháp bảng chân lý, đòi hỏi thời gian
mũ Cook (1971) đã chứng minh rằng, vấn đề kiểm tra một công thức trong logic mệnh đề có thoả được hay không là vấn đề NP-đầy đủ
Sẽ nói rằng một tập công thức G = {G1, G2 , Gm} là vững chắc (thoả được, không thoả được) nếu hội của chúng G1∧G2 ∧Gm là vững chắc (thoả được, không thoả được) Một mô hình của tập công thức G là mô hình của công thức G1∧G2 ∧Gm
2.2 Biểu diễn tri thức bằng luật sản xuất (luật sinh)
2.2.1 Khái niệm
Phương pháp biểu diễn tri thức bằng luật sinh được phát minh bởi Newell và Simon trong lúc hai ông đang cố gắng xây dựng một hệ giải bài toán tổng quát Đây là một kiểu biểu diễn tri thức có cấu trúc Ý tưởng cơ bản
Trang 27là tri thức có thể được cấu trúc bằng một cặp điều kiện – hành động "NẾU
điều kiện xảy ra THÌ hành động sẽ được thi hành" Chẳng hạn, “NẾU đèn giao thông là đỏ THÌ bạn không được đi thẳng”, “NẾU máy tính đã mở mà không khởi động được THÌ kiểm tra nguồn điện”, …
Ngày nay, các luật sinh đã trở nên phổ biến và được áp dụng rộng rãi trong nhiều hệ thống trí tuệ nhân tạo khác nhau Luật sinh có thể là một công
cụ mô tả để giải quyết các vấn đề thực tế thay cho các kiểu phân tích vấn đề truyền thống Trong trường hợp này, các luật được dùng như là những chỉ dẫn (tuy có thể không hoàn chỉnh) nhưng rất hữu ích để trợ giúp cho các quyết định trong quá trình tìm kiếm, từ đó làm giảm không gian tìm kiếm Một ví dụ khác là luật sinh có thể được dùng để bắt chước hành vi của những chuyên gia Theo cách này, luật sinh không chỉ đơn thuần là một kiểu biểu diễn tri thức trong máy tính mà là một kiểu biễu diễn các hành vi của con người
Một cách tổng quát luật sinh có dạng như sau:
P1 ∧ P2 ∧ ∧ Pn → Q Tùy vào các vấn đề đang quan tâm mà luật sinh có những ngữ nghĩa hay cấu tạo khác nhau
Trong logic vị từ: P1, P2, , Pn, Q là những biểu thức logic
Trong ngôn ngữ lập trình, mỗi một luật sinh là một câu lệnh
IF (P1 AND P2 AND AND Pn) THEN Q
Trong lý thuyết hiểu ngôn ngữ tự nhiên, mỗi luật sinh là một phép dịch:
Trang 282.2.2 Cơ chế suy luận trên các luật sinh
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
Sự kiện ban đầu: H, K
Ví dụ:
Tập các sự kiện
+ Ổ cứng là "hỏng" hay "hoạt động bình thường"
Trang 29+ Không sử dụng được máy tính
+ Điện vào máy tính "có" hay "không"
OR
Hình 2.1: Đồ thị AND/OR
Không sử dụng được máy tính
Ổ cứng “hỏng” Cáp màn hình “lỏng”
Tình trạng đèn màn hình
“tắt”
Trang 30Như vậy là để xác định được nguyên nhân gây ra hỏng hóc là do ổ cứng hỏng hay cáp màn hình lỏng, hệ thống phải lần lượt đi vào các nhánh để kiểm tra các điều kiện như điện vào máy "có", âm thanh ổ cứng "không"… Tại một bước, nếu giá trị cần xác định không thể được suy ra từ bất kỳ một luật nào,
hệ thống sẽ yêu cầu người dùng trực tiếp nhập vào Chẳng hạn như để biết
máy tính có điện không, hệ thống sẽ hiện ra màn hình câu hỏi "Bạn kiểm tra
xem có điện vào máy tính không (kiểm tra đèn nguồn)? (C/K)" Để thực hiện
được cơ chế suy luận lùi, người ta thường sử dụng ngăn xếp (để ghi nhận lại những nhánh chưa kiểm tra)
2.2.3 Vấn đề 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, vẫn
có một số thuật toán đơn giản để loại bỏ các vấn đề này
Quy tắc rút gọn: Có thể loại bỏ những sự kiện bên vế phải nếu những
sự kiện đó đã xuất hiện bên vế trái Nếu sau khi rút gọn mà vế phải trở thành rỗng thì luật đó là luật hiển nhiên Có thể loại bỏ các luật hiển nhiên ra khỏi tri thức
Trang 312.2.5 Rút gọn bên trái
Xét các luật:
(L1) A, B → C (L2) A → X (L3) X → C
Rõ ràng là luật A, B → C có thể được thay thế bằng luật A → C mà
không làm ảnh hưởng đến các kết luận trong mọi trường hợp Sự kiện B trong
luật là dư thừa và có thể được loại bỏ khỏi luật dẫn trên
Với quy tắc này, ta có thể loại bỏ hoàn toàn các luật có phép nối HOẶC
Các luật có phép nối này thường làm cho thao tác xử lý trở nên phức tạp
2.2.7 Luật thừa
Một luật dẫn A → B được gọi là thừa nếu có thể suy ra luật này từ
những luật còn lại
Ví dụ: Trong tập các luật gồm {A →B, B →C, A → C} thì luật thứ 3
là luật thừa vì nó có thể được suy ra từ 2 luật còn lại
2.2.8 Thuật toán tối ưu tập luật dẫn
Thuật toán này sẽ tối ưu hóa tập luật đã cho bằng cách loại đi các luật
có phép nối HOẶC, các luật hiển nhiên hoặc các luật thừa Thuật toán bao gồm 4 bước chính:
Bước 1: Rút gọn vế phải
Với mỗi luật r trong R
Với mỗi sự kiện A thuộc vế phải (r)
Nếu A thuộc vế trái (r) thì Loại A ra khỏi vế phải của R
Nếu vế phải (r) rỗng thì loại bỏ r ra khỏi hệ luật dẫn: R = R – {r}
Bước 2: Phân rã các luật
Với mỗi luật r: X1∨X2 ∨… ∨ Xn → Y trong R