luận văn, khóa luận, chuyên đề, đề tài, báo cáo,
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN -------------o0o------------- Đề Tài: BIỂU DIỄN TRI THỨC SỬ DỤNG LOGIC VỊ TỪ VÀ XÂY DỰNG HỆ CHUYÊN GIA NHẬN BIẾT CÁC BIỂN BÁO CẤM TRONG HỆ THỐNG GIAO THÔNG ĐƯỜNG BỘ Giáo viên hướng dẫn: PGS.TS.Phan Huy Khánh Nhóm sinh viên: Phan Quang Tùng Nguyễn Mạnh Hùng Nguyễn Văn Sang Lớp: CH11(Nhóm 15) Đà Nẵng,tháng 04/2010 Đà Nẵng, Tháng 04/2010 MỤC LỤC MỤC LỤC 2 2 MỞ ĐẦU 1 PHẦN 1: CƠ SỞ LÝ THUYẾT .3 .I Giới thiệu hệ chuyên gia .3 .I.1. Hệ chuyên gia là gì? 3 .I.2. Thông tin, dữ liệu và tri thức .4 .I.3. Các phương pháp biểu diễn tri thức 7 .II Biểu diễn tri thức nhờ logic vị từ bậc một .7 .II.1. Cú pháp của ngôn ngữ vị từ bậc một 7 .II.2. Phép hợp giải 8 .II.2.1. Dạng chuẩn trước của một công thức chỉnh 8 .II.2.2. Chuyển qua dạng mệnh đề của công thức chỉnh 9 PHẦN 2: PHẦN BÀI TẬP .11 “Xây dựng hệ chuyên gia nhận biết các biển báo cấm trong hệ thống biển báo giao thông đường bộ” .11 .I Mục đích .11 Hiện nay vấn đề an toàn giao thông là mối quan tâm hàng của mọi đối tượng tham gia giao thông. Nhưng không phải ai cũng am hiểu luật cũng như tất cả các biển báo. Vì thế nhóm chúng em muốn mượn môn học này để xây dựng nên hệ chuyên gia nhận biết các biển báo cấm trong giao thông đường bộ. Hi vọng rằng với ứng dụng này sẽ phần nào giúp mọi người có thể hiểu rõ hơn về các biển báo khi tham gia giao thông .11 .II Xây dựng các vị từ .12 .III Demo chương trình 14 KẾT LUẬN 16 TÀI LIỆU THAM KHẢO 17 Tiểu luận môn học Công Nghệ Tri Thức MỞ ĐẦU Công nghệ tri thức (Knowledge engineering), một bộ môn của tin học có tính chất công nghệ, trong đó đối tượng thông tin được xử lí là các tri thức trong một lĩnh vực chuyên môn nào đó và quá trình xử lí bằng máy tính nhằm giải quyết những bài toán phức tạp thông thường đòi hỏi một trình độ cao về trí tuệ chuyên gia trong lĩnh vực đó. Những vấn đề trung tâm của CNTT là tìm các phương pháp biểu diễn tri thức trong các chuyên ngành bằng các công cụ toán học; phát triển các phương pháp lựa chọn và thu thập tri thức, các cơ chế lập luận trên các thông tin tri thức và việc thực hiện các phương pháp đó trên máy tính. CNTT được phát triển mạnh trong những năm gần đây, là một nội dung chủ yếu của tin học hiện đại. Một loại sản phẩm tiêu biểu của CNTT là các hệ chuyên gia, đó là các hệ chương trình máy tính thực hiện một số chức năng của chuyên gia trong các hoạt động trí tuệ. Đã có một số hệ chuyên gia được ứng dụng trong thực tế như các hệ trợ giúp xác định công thức cấu trúc của các hợp chất hữu cơ phức tạp, hệ chẩn đoán bệnh trong y tế, hệ trợ giúp xác định thành phần địa chất, hệ trợ giúp quyết định trong quản lí kinh doanh,…mà đặc biệt là Ngành trí tuệ nhân tạo đã có những bước tiến đáng kể, nhưng một trí tuệ nhân tạo thực sự vẫn chỉ có trong những bộ phim khoa học giả tưởng. Vậy thì tại sao chúng ta vẫn nghiên cứu về trí tuệ nhân tạo? Điều này cũng tương tự như ước mơ chế tạo vàng của các nhà giả kim thuật thời Trung Cổ, tuy chưa thành công nhưng chính quá trình nghiên cứu đã làm sáng tỏ nhiều vấn đề. Mặc dù mục tiêu tối thượng của ngành TTNT là xây dựng một chiếc máy có năng lực tư duy tương tự như con người nhưng khả năng hiện tại của tất cả các sản phẩm TTNT vẫn còn rất khiêm tốn so với mục tiêu đã đề ra. Tuy vậy, ngành khoa học mới mẻ này vẫn đang tiến bộ mỗi ngày và đang tỏ ra ngày càng hữu dụng trong một số công việc đòi hỏi trí thông minh của con người. Mục tiêu của ngành khoa học trí tuệ nhân tạo tạo ra những chiếc máy tính có khả năng nhận thức, suy luận và phản ứng. Nhận thức được hiểu là khả năng quan sát, học hỏi, hiểu biết cũng như những kinh nghiệm về thế giới xung quanh. Quá trình Nhóm 15 1 Tiểu luận môn học Công Nghệ Tri Thức nhận thức giúp con người có tri thức. Suy luận là khả năng vận dụng những tri thức sẵn có để phản ứng với những tình huống hay những vấn đề - bài toán gặp phải trong cuộc sống. Nhận thức và suy luận để từ đó đưa ra những phản ứng thích hợp là ba hành vi có thể nói là đặc trưng cho trí tuệ của con người. (Dĩ nhiên còn một yếu tố nữa là tình cảm. Nhưng chúng ta sẽ không đề cập đến ở đây!). Do đó, cũng không có gì ngạc nhiên khi muốn tạo ra một chiếc máy tính thông minh, ta cần phải trang bị cho nó những khả năng này. Cả ba khả năng này đều cần đến một yếu tố cơ bản là tri thức. Xây dựng trí tuệ nhân tạo là tìm cách biểu diễn tri thức, tìm cách vận dụng tri thức để giải quyết vấn đề và tìm cách bổ sung tri thức bằng cách "phát hiện" tri thức từ các thông tin sẵn có (máy học). Tuy nhiên, trong phạm vi có hạn của đề tài này, nhóm chúng tôi chỉ đề cập đến một vấn đề nhỏ của biểu diễn tri thức (Knowledge representation) là trình bày biểu diễn tri thức sử dụng logic vị từ. Nhóm 15 2 Tiểu luận môn học Công Nghệ Tri Thức PHẦN 1: CƠ SỞ LÝ THUYẾT .I Giới thiệu hệ chuyên gia .I.1. Hệ chuyên gia là gì? Theo E. Feigenbaum: “Hệ chuyên gia (Expert System) là một chương trình máy tính thông minh sử dụng tri thức (knowledge) và các thủ tục suy luận (inference procedures) để giải những bài toán tương đối khó khăn đòi hỏi những chuyên gia mới có thể giải quyết được.” Hệ chuyên gia là một hệ thống tin học có thể mô phỏng năng lực quyết đoán và hành động của một chuyên gia. Hệ chuyên gia sử dụng các tri thức của các chuyên gia để giải quyết các vấn đề thuộc mọi lĩnh vực. Tri thức trong hệ chuyên gia phản ánh sự tinh thông được tích từ sách vở, tạp chí, từ các chuyên gia hay các nhà bác học Một hệ chuyên gia bao gồm ba thành phần chính là cơ sở tri thức (knowledge base), máy suy diễn hay môtơ suy diễn (inference engine) và hệ thống giao tiếp với người sử dụng (user interface). Cơ sở tri thức chứa các tri thức để từ đó máy suy diễn tạo ra câu trả lời cho người sử dụng qua hệ thống giao tiếp. Mỗi hệ chuyên gia chỉ đặc trưng cho một lĩnh vực vấn đề nào đó, như y học, tài chính, khoa học hay công nghệ, … mà không phải cho bất cứ một lĩnh vực vấn đề nào. Một hệ chuyên gia kiểu mẫu bao gồm bảy thành phần cơ bản sau: Hình 1: Các thành phần cơ bản trong một hệ chuyên gia - Cơ sở tri thức: Gồm các phần tử tri thức, thông thường được gọi là luật, được tổ chức như một cơ sở dữ liệu. Nhóm 15 3 Cơ sở tri thức các luật Khả năng giải thích Giao diện người dùng Khả năng thu nhận tri thức Bộ nhớ làm việc Máy suy diễn Lịch công việc Tiểu luận môn học Công Nghệ Tri Thức - Máy suy diễn: Công cụ tao ra sự suy luận bằng cách quyết định xem những luật nào sẽ làm thoả mãn các sự kiện, các đối tượng, chọn ưu tiên các luật thoả mãn, thực hiện các luật có tính ưu tiên cao nhất. - Lịch công việc: Danh sách các luật ưu tiên do máy suy diễn tạo ra thoả mãn các sự kiện, các đối tượng có mặt trong bộ nhớ làm việc. - Bộ nhớ làm việc: Cơ sở dữ liệu toàn cục chứa các sự kiện phục vụ cho các luật. - Khả năng giải thích: Giải nghĩa cách lập luận của hệ thống cho người sử dụng. - Khả năng thu nhận tri thức: Cho phép người sử dụng bổ sung tri thức vào các kệ thống một cách tự động thay vì tiếp nhận tri thức bằng cách mã hoá tri thức một cách tường minh. - Giao diện người dùng: Là nơi người sử dụng và hệ chuyên gia trao đổi với nhau. .I.2. Thông tin, dữ liệu và tri thức Tri thức là một khái niệm rất trừu tượng. Do đó, chúng ta sẽ không cố gắng đưa ra một định nghĩa hình thức chính xác ở đây. Thay vào đó, chúng ta hãy cùng nhau cảm nhận khái niệm "tri thức" bằng cách so sánh nó với hai khái niệm khác là thông tin và dữ liệu. Nhà bác học nổi tiếng Karan Sing đã từng nói rằng "Chúng ta đang ngập chìm trong biển thông tin nhưng lại đang khát tri thức". Câu nói này làm nổi bật sự khác biệt về lượng lẫn về chất giữa hai khái niệm thông tin và tri thức. Trong ngữ cảnh của ngành khoa học máy tính, người ta quan niệm rằng dữ liệu là các con số, chữ cái, hình ảnh, âm thanh . mà máy tính có thể tiếp nhận và xử lý. Bản thân dữ liệu thường không có ý nghĩa đối với con người. Còn thông tin là tất cả những gì mà con người có thể cảm nhận được một cách trực tiếp thông qua các giác quan của mình (khứu giác, vị giác, thính giác, xúc giác, thị giác và giác quan thứ 6) hoặc gián tiếp thông qua các phương tiện kỹ thuật như tivi, radio, cassette, . Thông tin đối với con người luôn có một ý nghĩa nhất định nào đó. Với phương tiện máy tính (mà cụ thể là các thiết bị đầu ra), con người sẽ tiếp thu được một phần dữ liệu có ý nghĩa đối với mình. Nếu so về lượng, dữ liệu thường nhiều hơn thông tin. Cũng có thể quan niệm thông tin là quan hệ giữa các dữ liệu. Các dữ liệu được sắp xếp theo một thứ tự hoặc được tập hợp lại theo một quan hệ nào đó sẽ chứa đựng Nhóm 15 4 Tiểu luận môn học Công Nghệ Tri Thức thông tin. Nếu những quan hệ này được chỉ ra một cách rõ ràng thì đó là các tri thức. Chẳng hạn : + Trong toán học : Bản thân từng con số riêng lẻ như 1, 1, 3, 5, 2, 7, 11, . là các dữ liệu. Tuy nhiên, khi đặt chúng lại với nhau theo trật tự như dưới đây thì giữa chúng đã bắt đầu có một mối liên hệ Dữ liệu : 1, 1, 2, 3, 5, 8, 13, 21, 34, Mối liên hệ này có thể được biểu diễn bằng công thức sau : Un = Un -1 + Un -2 . Công thức nêu trên chính là tri thức. + Trong vật lý : Bản sau đây cho chúng ta biết số đo về điện trở (R), điện thế (U) và cường độ dòng điện (I) trong một mạch điện. I U R 5 10 2 2.5 20 8 4 12 3 7.3 14.6 2 Bản thân những con số trong các cột của bản trên không có mấy ý nghĩa nếu ta tách rời chúng ta. Nhưng khi đặt kế nhau, chúng đã cho thấy có một sự liên hệ nào đó. Và mối liên hệ này có thể được diễn tả bằng công thức đơn giản sau : Công thức này là tri thức. + Trong cuộc sống hàng ngày : Hằng ngày, người nông dân vẫn quan sát thấy các hiện tượng nắng, mưa, râm và chuồn chuồn bay. Rất nhiều lần quan sát, họ đã có nhận xét như sau : Chuồn chuồn bay thấp thì mưa, bay cao thì nắng, bay vừa thì râm. Nhóm 15 5 Tiểu luận môn học Công Nghệ Tri Thức Lời nhận xét trên là tri thức. Có quan điểm trên cho rằng chỉ những mối liên hệ tường minh (có thể chứng minh được) giữa các dữ liệu mới được xem là tri thức. Còn những mối quan hệ không tường minh thì không được công nhận. Ở đây, ta cũng có thể quan niệm rằng, mọi mối liên hệ giữa các dữ liệu đều có thể được xem là tri thức, bởi vì, những mối liên hệ này thực sự tồn tại. Điểm khác biệt là chúng ta chưa phát hiện ra nó mà thôi. Rõ ràng rằng "dù sao thì trái đất cũng vẫn xoay quanh mặt trời" dù tri thức này có được Galilê phát hiện ra hay không! Như vậy, so với dữ liệu thì tri thức có số lượng ít hơn rất nhiều. Thuật ngữ ít ở đây không chỉ đơn giản là một dấu nhỏ hơn bình thường mà là sự kết tinh hoặc cô đọng lại. Hãy hình dung dữ liệu như là những điểm trên mặt phẳng còn tri thức chính là phương trình của đường cong nối tất cả những điểm này lại. Chỉ cần một phương trình đường cong ta có thể biểu diễn được vô số điểm!. Cũng vậy, chúng ta cần có những kinh nghiệm, nhận xét từ hàng đống số liệu thống kê, nếu không, chúng ta sẽ ngập chìm trong biển thông tin như nhà bác học Karan Sing đã cảnh báo!. Người ta thường phân loại tri thức ra làm các dạng như sau : +Tri thức sự kiện : là các khẳng định về một sự kiện, khái niệm nào đó (trong một phạm vi xác định). Các định luật vật lý, toán học, . thường được xếp vào loại này. (Chẳng hạn : mặt trời mọc ở hướng đông, tam giác đều có 3 góc 60 0 , .) + Tri thức thủ tục : thường dùng để diễn tả phương pháp, các bước cần tiến hành, tr nh từ hay ngắn gọn là cách giải quyết một vấn đề. Thuật toán, thuật giải là một� dạng của tri thức thủ tục. +Tri thức mô tả : cho biết một đối tượng, sự kiện, vấn đề, khái niệm, . được thấy, cảm nhận, cấu tạo như thế nào (một cái bàn thường có 4 chân, con người có 2 tay, 2 mắt, .) Nhóm 15 6 Tiểu luận môn học Công Nghệ Tri Thức +Tri thức Heuristic : là một dạng tri thức cảm tính. Các tri thức thuộc loại này thường có dạng ước lượng, phỏng đoán và thường được hình thành thông qua kinh nghiệm. Trên thực tế, rất hiếm có một trí tuệ mà không cần đến tri thức (liệu có thể có một đại kiện tướng cờ vua mà không biết đánh cờ hoặc không biết các thế cờ quan trọng không?). Tuy tri thức không quyết định sự thông minh (người biết nhiều định lý toán hơn chưa chắc đã giải toán giỏi hơn!) nhưng nó là một yếu tố cơ bản cấu thành trí thông minh. Chính vì vậy, muốn xây dựng một trí thông minh nhân tạo, ta cần phải có yếu tố cơ bản này. Từ đây đặt ra vấn đề đầu tiên là các phương pháp đưa tri thức vào máy tính được gọi là biểu diễn tri thức - Knowledge representation .I.3. Các phương pháp biểu diễn tri thức Tri thức của một hệ chuyên gia có thể được biểu diễn theo nhiều cách khác nhau: - Biểu diễn tri thức bởi các luật sản xuất. - Biểu diễn tri thức nhờ mệnh đề logic. - Biểu diễn tri thức nhờ mạng ngữ nghĩa. - Biểu diễn tri thức nhờ ngôn ngữ nhân tạo. Ngoài ra, người ta còn sử dụng cách biểu diễn tri thức nhờ các sự kiện không chắc chắn, nhờ bộ ba: đối tượng, thuộc tính và giá trị (O-A-V: Object Attribute Value), nhờ khung (frame), …Tuỳ theo từng hệ chuyên gia, người ta có thể sử dụng một cách đồng thời cả nhiều cách. Và ở đây, chúng ta chỉ đề cập cụ thể đến việc biểu diễn tri thức nhờ mệnh đề logic. .II Biểu diễn tri thức nhờ logic vị từ bậc một .II.1. Cú pháp của ngôn ngữ vị từ bậc một Trong ngôn ngữ vị từ bậc một, bằng cách sử dụng một bảng ký hiệu đặc biệt, người ta đưa vào các khái niệm hạng (term), nguyên tử (atom), trực kiện (literal) và công thức chỉnh (wff: well formed formula) để xây dựng các biểu thức đúng. Bảng ký hiệu: gồm các dấu phân cách, các hằng (có dạng chuỗi sử dụng các chữ cái in thường), các biến (có dạng chuỗi sử dụng chữ cái in hoa), các vị từ, các hàm, các phép nối logic và các dấu lượng tử. Hạng: hạng được tạo thành từ hai luật sau: + Các hằng và các biến là các hạng. + Nếu f là một hàm có bậc n ≥ 1 và nếu t 1 , …, t n đều là các hạng thì hàm f(t 1, …, t n ) cũng là một hạng bậc n. Nguyên tử: nguyên tử được cấu tạo từ hai luật: + Các mệnh đề (vị từ bậc 0) là các nguyên tử. Nhóm 15 7 Tiểu luận môn học Công Nghệ Tri Thức + Nếu P là một vị từ bậc n ≥ 1 và nếu t 1 , …, t n đều là các hạng thì P(t 1, …, t n ) cũng là một nguyên tử. Công thức chỉnh: công thức chỉnh được tạo thành từ ba luật: + Các nguyên tử là công thức chỉnh. + Nếu P và Q là các công thức chỉnh thì ¬P, P ∧ Q, P ∨ Q, P → Q, P ↔ Q cũng là các công thức chỉnh được tạo thành từ các phép nối logic giữa P và Q. + Nếu P là một công thức chỉnh và X là một viến, thì (∃X) G và (∀X) G cũng là các công thức chỉnh. .II.2. Phép hợp giải Phép hợp giải là một luật suy diễn áp dụng vào một tập hợp các công thức chỉnh hay một tập hợp các mệnh đề đã cho. .II.2.1. Dạng chuẩn trước của một công thức chỉnh Dạng chuẩn trước (prenex normal form) của một công thức chỉnh đã cho được suy ra bởi áp dụng liên tiếp bốn phép biến đổi sau đây: a. Loại bỏ các phép nối → và ↔ : sử dụng các luật tương đương: (G→H) và ((¬G) ∨ H) (G↔H) và ((G→H) ∧ (H→G)) b. Ghép các phép nối ¬ với các nguyên tử liên quan: sử dụng các luật tương đương: (¬(¬G))và G (¬(G ∨ H)) và ((¬G) ∧ (¬H)) (¬(G ∧ H)) và ((¬G) ∨ (¬H)) ¬((∃X)P(X)) và (∀X)(¬P(X)) ¬((∀X)P(X)) và (∃X)(¬P(X)) c. Phân biệt các biến: Dùng luật tương đương để tác động dấu lượng tử lên một biến sơ khởi: (∀X)P(X) và ((∀Y)P(Y)) (∃X)P(X) và (∃Y)P(Y) Chú ý: Các phép biến đổi a, b, c dẫn công thức chỉnh đã cho thành một công thức chỉnh mới tương đương. d. Dịch chuyển các dấu lượng tử: Khi dịch chuyển các dấu lượng tử trong công thức chỉnh, ta nhận được một công thức chỉnh mới tương đương. Bởi vì sau bước c, không còn sự xung đột giữa các nhãn biến được lượng tử hóa. Sau bốn bước biến đổi, ta nhận được công thức có dạng chuẩn trước tương đương với công thức chỉnh đã cho. Nhóm 15 8