LỜI NÓI ĐẦUTrong khoa học trí tuệ nhân tạo, mô hình phương pháp biểu diễn tri thức là một bướcngoặc quan trọng trong việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia.. Một trong
Trang 1LỜI NÓI ĐẦU
Trong khoa học trí tuệ nhân tạo, mô hình phương pháp biểu diễn tri thức là một bướcngoặc quan trọng trong việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia Ngày nay,
có nhiều phương pháp biểu diễn tri thức đã được đề xuất và ứng dụng Tri thức là một hệchuyên gia được biểu diễn theo nhiều phương pháp khác nhau Tùy theo hệ chuyên giangười ta sử dụng một hoặc đồng thời cả nhiều phương pháp Mục tiêu chính biểu diễn trithức trong máy tính là phục vụ cho việc thu nhận tri thức vào máy tính, truy xuất tri thức
và thực hiện các phép suy luận dựa trên những tri thức đã lưu trữ
Biểu diễn tri thức được ứng dụng nhiều trong các bài toán thực tế, nó có đến hàngtrăm giải thuật Một trong những phương pháp biểu diễn tri thức được áp dụng rộng rái làbiểu diễn tri thức dựa trên các luật dẫn, trong đó có tìm kiếm heuristics Trong bài tiểu luậnnày em xin trình bày sơ lược về các phương pháp biểu diễn tri thức và ứng dụng giải thuậtA* có sử dụng tìm kiếm Heuristics để giải quyết bài toán ghép tranh
Em xin gửi lời lời cảm ơn chân thành đến Khoa Công Nghệ Phần Mềm, Khoa Mạng
Máy Tính, trường Đại học Công Nghệ Thông Tin và các quí Thầy Cô đặc biệt là PGS.TS
Đỗ Văn Nhơn đã tận tình giảng dạy, giúp đỡ để người viết hiểu thêm và hoàn thành tiểu
luận này
Mặc dù đã rất nỗ lực, cố gắng nhưng kiến thức còn hạn chế nên bài viết không thểbao quát hết những kiến thức đã học, mục đích chủ yếu tiểu luận này là để giới thiệu giảithuật A* có sử dụng tìm kiếm Heuristics và áp dụng vào bài toán ghép tranh
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Trang 3
MỤC LỤC
LỜI NÓI ĐẦU 1
MỤC LỤC 2
Ph n 1 TRI TH C VÀ CÁC PHầ Ứ ƯƠNG PHÁP BI U DI N TRI TH CỂ Ễ Ứ 4
1.1 Khái ni m tri th cệ ứ 4
1.2 Khái ni m v bi u di n tri th cệ ề ể ễ ứ 4
1.3 M t s ph ng pháp bi u di n tri th cộ ố ươ ể ễ ứ 5
1.3.1 Bi u di n tri th c s d ng h lu t d nể ễ ứ ử ụ ệ ậ ẫ 5
1.3.1.1 C ch suy lu n trên các lu t sinhơ ế ậ ậ 6
1.3.1.2 u và nh c đi m c a bi u di n tri th c b ng lu tƯ ượ ể ủ ể ễ ứ ằ ậ 6
1.3.2 Bi u di n tri th c s d ng m ng ng ngh aể ễ ứ ử ụ ạ ữ ĩ 7
1.3.3 Bi u di n tri th c b ng Frameể ễ ứ ằ 8
1.3.4 Bi u di n tri th c b ng Scriptể ễ ứ ằ 8
Ph n 2 CHI N Lầ Ế ƯỢC TÌM KI M HEURISTICSẾ 10
2.1 Khái ni m Heuristicsệ 10
2.2 Heuristics dùng đ làm gì?ể 10
2.3 Đặc tính thu t gi i Heuristicsậ ả 11
2.4 Nguyên lý thu t gi i Heuristicsậ ả 11
2.4.1 Nguyên lý vét c n thông minh:ạ 11
2.4.2 Nguyên lý tham lam (Greedy) 11
2.4.3 Nguyên lý th tứ ự 12
2.4.4 Hàm Heuristic 13
2.5 Các ph ng pháp tìm ki m Heuristicsươ ế 13
2.5.1 C u trúc chung c a bài toán tìm ki mấ ủ ế 13
2.5.2 Các ph ng pháp tìm ki m Heuristicsươ ế 14
Ph n 3 GI I THU T A* VÀ BÀI TOÁN GHÉP TRANHầ Ả Ậ 15
3.1 Hàm đánh giá và ph ng pháp đánh giá trong chi n l c tìm ki m Heuristicsươ ế ượ ế 15
3.1.1 Hàm đánh giá 15
3.1.2 Các ph ng pháp đánh giá trong chi n l c tìm ki m Heuristicsươ ế ượ ế 18
3.2 Gi i thi u thu t gi i A*ớ ệ ậ ả 18
3.3 Bài toán ghép tranh 19
3.4 Cài đ t thu t toánặ ậ 21
3.4.1 Giao di n ch ng trìnhệ ươ 21
3.4.2 Xây d ng hàm đánh giáự 22
3.4.3 Xây d ng gi i thu t A*ự ả ậ 23
23
TÀI LIỆU THAM KHẢO 24
Trang 4Phần 1 TRI THỨC VÀ CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI
THỨC
Tri thức không có định nghĩa chính xác bởi tri thức là một khái niệm trừu tượng Tuynhiên vì phải tập hợp và xử lý được “tri thức” bằng máy tính nên ta cố gắng đưa ra địnhnghĩa về tri thức càng hình thức càng tốt
Khái niệm: Tri thức là sự hiểu biết về một lĩnh vực của vấn đề
Lĩnh vực: Miền chủ đề được chú trọng
Tri thức: Thường bao gồm các khái niệm, các loại sự kiện, các luật
Ví dụ:
o Kiến thức về y học và khả năng chuẩn đoán bệnh là tri thức
o Biết một tam giác có các yếu tố nào cùng với các công thức liên quan giữacác yếu tố là tri thức
o Biết các dạng cấu trúc dữ liệu thường dùng trong lập trình cùng với các thuậttoán xử lý cơ bản trên các cấu trúc là tri thức
Các dạng tri thức:
• Tri thức mô tả: các khái niệm, các đối tượng cơ bản
• Tri thức cấu trúc: các khái niệm cấu trúc, các quan hệ, các đối tượng phức hợp,
• Tri thức thủ tục: các luật dẫn, các thủ tục xử lý, các chiến lược, …
• Tri thức meta: tri thức về các dạng tri thức khác và cách sử dụng chúng
Biểu diễn tri thức (Knowledge Representation) là sự diễn đạt và thể hiện của tri thứcdưới những dạng thích hợp để có thể tổ chức một hệ cơ sở tri thức của hệ thống
Trong tin học biểu diển tri thức là một phương pháp mã hóa tri thức sao cho máy tính
có thể xử lí được chúng Cũng như dữ liệu có nhiều cách khác nhau để biểu diễn tri thứctrong máy tính Tuy nhiên ta phải chọn một phương pháp nào phù hợp để đưa lên máytính
Các công cụ cho việc biểu diễn tri thức đơn giản như:
Trang 5+ Các cấu trúc dữ liệu cơ bản: Dãy danh sách, tập hợp, mẫu…
+ Các cấu trúc dữ liệu trừu tượng: ngăn xếp, hàng đợi
+ Các mô hình toán học: đồ thị, cây…
+ Các mô hình đối tượng
1.3.1 Biểu diễn tri thức sử dụng hệ luật dẫn
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ểubiểu diễn tri thức có cấu trúc Ý tưởng cơ bản là 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ácvấ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ácluậ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
Trang 6F = { f1, f2, fn}(2) Tập các quy tắc R (Rules) áp dụng trên các sự kiện dạng như sau :
f1∧ f2∧ ∧ fi → qTrong đó, các fi , q đều thuộc F
1.3.1.1 Cơ chế suy luận trên các luật sinh
1.3.1.1.1 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
1.3.1.1.2 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, ta tìm kiếm các sựkiện đã "sinh" ra sự kiện này Một ví dụ thường gặp trong thực tế là xuất phát từ các tình trạng của máy tính, chẩn đoán xem máy tính đã bị hỏng hóc ở đâu
• Không sử dụng được máy tính
Điện vào máy tính "có" hay "không"
1.3.1.2 Ưu và nhược điểm của biểu diễn tri thức bằng luật
1.3.1.2.1 Ưu điểm:
Biểu diễn tri thức bằng luật đặc biệt hữu hiệu trong những tình huống hệ thống cầnđưa ra những hành động dựa vào những sự kiện có thể quan sát được Nó có những ưuđiểm chính yếu sau đây :
Trang 7• 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
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 sinhcũng như gặp khó khăn khi suy luận trên luật sinh
1.3.2 Biểu diễn tri thức sử dụng mạng ngữ nghĩa
Mạng ngữ nghĩa là một phương pháp biểu diễn tri thức đầu tiên và cũng là phươngpháp dễ hiểu nhất đối với chúng ta Phương pháp này sẽ biểu diễn tri thức dưới dạng một
đồ thị, trong đó đỉnh là các đối tượng (khái niệm) còn các cung cho biết mối quan hệ giữacác đối tượng (khái niệm) này
Mạng ngữ nghĩa (semantic network) có dạng đồ thị gồm các nút và các cung, trongđó:
• Các nút thể hiện các khái niệm, các đối tượng
• Các cung thễ hiện các quan hệ giữa các đối tượng
Dựa trên mạng ngữ nghĩa ta nhận biết tri thức một cách trực quan giúp thiết kế các
xử lý như: thêm/ bớt các khái niệm hay các đối tượng, tìm kiếm thông tin
Trang 8Nhận xét: Mô hình khá trừu tượng và khái quát, trong áp dụng phải phát triển các mô hìnhtri thức cụ thể hơn.
1.3.3 Biểu diễn tri thức bằng Frame
Frame là một cấu trúc dữ liệu chứa đựng tất cả những tri thức liên quan đến một
đối tượng cụ thể nào đó Frames có liên hệ chặt chẽ đến khái niệm hướng đối tượng (thực
ra frame là nguồn gốc của lập tŕnh hướng đối tượng) Ngược lại với các phương pháp biểudiễn tri thức đã được đề cập đến, frame "đóng gói" toàn bộ một đối tượng, tình huống hoặc
cả một vấn đề phức tạp thành một thực thể duy nhất có cấu trúc Một frame bao hàm trong
nó một khối lượng tương đối lớn tri thức về một đối tượng, sự kiện, vị trí, tình huống hoặcnhững yếu tố khác Do đó, frame có thể giúp ta mô tả khá chi tiết một đối tượng
Dưới một khía cạnh nào đó, người ta có thể xem phương pháp biểu diễn tri thứcbằng frame chính là nguồn gốc của ngôn ngữ lập trình hướng đối tượng Ý tưởng của
phương pháp này là "thay vì bắt người dùng sử dụng các công cụ phụ như dao mở để đồ hộp, ngày nay các hãng sản xuất đồ hộp thường gắn kèm các nắp mở đồ hộp ngay bên trên vỏ lon Như vậy, người dùng sẽ không bao giờ phải lo lắng đến việc tìm một thiết bị
để mở đồ hộp nữa!" Cũng vậy, ý tưởng chính của frame (hay của phương pháp lập trình
hướng đối tượng) là khi biểu diễn một tri thức, ta sẽ "gắn kèm" những thao tác thường gặp
trên tri thức này Chẳng hạn như khi mô tả khái niệm về hình chữ nhật, ta sẽ gắn kèm cách tính chu vi, diện tích.
1.3.4 Biểu diễn tri thức bằng Script
Script là một cách biểu diễn tri thức tương tự như frame nhưng thay vì đặc tả mộtđối tượng, nó mô tả một chuỗi các sự kiện Để mô tả chuỗi sự kiện, script sử dụng một dãycác slot chứa thông tin về các con người, đối tượng và hành động liên quan đến sự kiện đó
Tuy cấu trúc của các script là rất khác nhau tùy theo bài toán, nhưng nhìn chungmột script thường bao gồm các thành phần sau :
• Điều kiện vào (entry condition): mô tả những tình huống hoặc điều kiện cầnđược thỏa mãn trước khi các sự kiện trong script có thể diễn ra
• Role (đóng vai): là những con người có liên quan trong script
Trang 9• Prop (tác tố): là tất cả những đối tượng được sử dụng trong các chuỗi sự kiện
sẽ diễn ra
• Scene(Tình huống): là chuỗi sự kiện thực sự diễn ra
• Result (Kết quả): trạng thái của các Role sau khi script đã thi hành xong
• Track (phiên bản): mô tả một biến thể (hoặc trường hợp đặc biệt) có thể xảy
ra trong đoạn script
Script rất hữu dụng trong việc dự đoán điều gì sẽ xảy đến trong những tình huống xácđịnh Thậm chí trong những tình huống chưa diễn ra, script còn cho phép máy tính dựđoán được việc gì sẽ xảy ra và xảy ra đối với ai và vào thời điểm nào Nếu máy tính kíchhoạt một script, người dùng có thể đặt câu hỏi và hệ thống có thể suy ra được những câutrả lời chính xác mà không cần người dùng cung cấp thêm nhiều thông tin (trong một sốtrường hợp có thể không cần thêm thông tin) Do đó, cũng giống như frame, script là mộtdạng biểu diễn tri thức tương đối hữu dụng vì nó cho phép ta mô tả chính xác những tìnhhuống "chuẩn" mà con người vẫn thực hiện mỗi ngày hoặc đã nắm bắt chính xác
Trang 10Phần 2 CHIẾN LƯỢC TÌM KIẾM HEURISTICS
George Polya định nghĩa Heuristic là “sự nghiên cứu về các phương pháp và cácqui tắc trong việc khám phá và phát minh” (Polya 1945) Nghĩa này có thể xuất phát từ gốc
Hy Lạp của động từ eurisco nghĩa là “tôi phát hiện” Khi Archimedes nhảy ra khỏi bồntắm và chộp lấy chiếc mũ miện bằng vàng, ông ta đã la lên “Eureka!” có nghĩa “Tôi đã tìmthấy nó!” Trong tìm kiếm không gian trạng thái, Heuristic là các luật dùng để chọn nhữngnhánh nào có nhiều khả năng nhất dẫn đến một giải pháp chấp nhận được
Thuật ngữ Heuristic được Feigenbaum Feldman định nghĩa như sau: “Heuristic là các quitắc, phương pháp, chiến lược, mẹo giải hay phương cách nào đó nhằm làm giảm khốilượng tìm kiếm lời giải trong không gian bài toán cực lớn”
Một số khác lại sử dụng thuật ngữ “Heuristic” để ám chỉ các cách thức giải quyếtbài toán nhưng không thể định hình thành giải thuật (Newell, Shaw, Simon năm 1963)
Heuristic chỉ là một phỏng đoán chứa các thông tin về bước tiếp theo sẽ được chọndùng trong việc giải quyết một vấn đề Nó thường dựa vào kinh nghiệm hoặc trực giác Vìcác Heuristic sử dụng những thông tin hạn chế nên chúng ít khi có khả năng đoán trướcchính xác cách hành xử của không gian trạng thái ở những giai đoạn xa hơn Heuristic cóthể dẫn đến một thuật toán tìm kiếm chỉ đạt được giải pháp gần tối ưu hoặc hoàn toànkhông tìm được bất kỳ giải pháp nào
Là một ước lượng về khả năng dẫn đến lời giải
Là những tri thức được rút tỉa từ những kinh nghiệm, “trực giác” của con người Cóthể là những tri thức “đúng” hay “sai”
Là những meta knowledge và “thường đúng”
Trong những bài toán tìm kiếm trên không gian trạng thái, có 2 trường hợp cần đếnheuristic:
• Vấn đề có thể không có nghiệm chính xác do các mệnh đề không phát biểuchặt chẽ hay thiếu dữ liệu để khẳng định kết quả
Trang 11• Vấn đề có nghiệm chính xác nhưng phí tổn tính toán để tìm ra nghiệm là quálớn (hệ quả của việc bùng nỗ tổ hợp).
• Tìm lời giải tốt
• Thời gian giải chấp nhận được
• Thuật giải tự nhiên gần gũi với cách suy nghĩ và hành động của con người
2.4.1 Nguyên lý vét cạn thông minh:
Trong một bài toán tìm kiếm nào đó, khi không gian tìm kiếm lớn, ta thường tìm cách giớihạn lại không gian tìm kiếm hoặc thực hiện một kiểu dò tìm đặc biệt dựa vào đặc thù củabài toán để nhanh chóng tìm ra mục tiêu
2.4.2 Nguyên lý tham lam (Greedy)
Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của bài toán để làm tiêu chuẩn chọn lựa hànhđộng cho phạm vi cục bộ của từng bước (hay từng giai đoạn) trong quá trình tìm kiếm lờigiải
Bài toán:
• Hãy tìm một hành trình cho một người giao hàng đi qua n điểm khác nhau
• Mỗi điểm đi qua một lần và trở về điểm xuất phát
• Sao cho tổng chiều dài đoạn đường cần đi là ngắn nhất
• Giả sử rằng có con đường nối trực tiếp giữa hai điểm bất kỳ
Đồ thị của bài toán:
Trang 12Lời giải cho Greedy:
Hãy đưa ra một phương án phân công hoàn thành 6 công việc trên sớm nhất
Một lời giải không tốt:
Cách giải tối ưu:
• Sắp xếp các công việc theo thứ tự giảm dần về thời gian
• Lần lượt sắp xếp các việc theo thứ tự đó vào máy còn nhiều thời gian nhất
Trang 132.4.4 Hàm Heuristic
Trong việc xây dựng các thuật giải Heuristic, người ta thường dùng các hàmHeuristic Đó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạng thái hiện tại củabài toán tại mỗi bước giải Nhờ giá trị này, ta có thể chọn được cách hành động tương đốihợp lý trong từng bước của thuật giải
2.5.1 Cấu trúc chung của bài toán tìm kiếm
Để tiện lợi cho việc trình bày, ta hãy dành chút thời gian để làm rõ hơn "đối tượng"quan tâm của chúng ta trong mục này Một cách chung nhất, nhiều vấn đề-bài toán phứctạp đều có dạng "tìm đường đi trong đồ thị" hay nói một cách hình thức hơn là "xuất phát
từ một đỉnh của một đồ thị, tìm đường đi hiệu quả nhất đến một đỉnh nào đó" Một phátbiểu khác thường gặp của dạng bài toán này là :
Cho trước hai trạng thái T0 và TG hãy xây dựng chuỗi trạng thái T0, T1, T2, ,