phục vụ cho biểu diễn tri thức thực tế và các thuật giải dùng để xử lý các tri thức đãdược biểu diễn, các chuyên đề được giảng dạy trong môn học này bởi PGS.TS ĐỗVăn Nhơn đã cung cấp hàn
Trang 1chương trình đã được ấn định sẵn qua các dòng lệnh của chương trình dựa trên mộtthuật giải đã định sẵn Trong các hệ cơ sở tri thức, có hai chức năng tách biệt nhau,trường hợp đơn giản có hai khối: khối tri thức hay còn được gọi là cơ sở tri thức vàkhối điều khiển hay còn được gọi là động cơ suy diễn Với các hệ thống phức tạp,bản thân động cơ suy diễn cũng có thể là một hệ cơ sở tri thức chứa các siêu tri thức(tri thức về cách sử dụng tri thức khác).
Việc tách biệt tri thức khỏi các cơ chế điều khiển giúp ta dễ dàng thêm vào cáctri thức mới trong tiến trình phát triển một hệ thống Đây là điểm tương tự của động
cơ suy diễn trong một hệ cơ sở tri thức và não bộ con người (điều khiển xử lý), làkhông đổi cho dù hành vi của cá nhân có thay đổi theo kinh nghiệm và kiến thứcmới nhận được
Việc sử dụng các mô hình tri thức trong giải quyết các bài toán thực tế giúpcho các giải và lời giải gần với cách suy nghĩ tự nhiên của con người; phục vụ tốtcho nhu cầu giảng dạy và học tập các tri thức mới của người sử dụng
Trang 2phục vụ cho biểu diễn tri thức thực tế và các thuật giải dùng để xử lý các tri thức đãdược biểu diễn, các chuyên đề được giảng dạy trong môn học này bởi PGS.TS ĐỗVăn Nhơn đã cung cấp hành trang vững chắc cũng như kiến thức nền tảng và nângcao để cho tôi và các bạn trong lớp CH08 có khả năng học tốt những chuyên đề tiếptheo; và đó cũng là hành trang trong quá trình nghiên cứu và giải quyết các bài toánthực tế sau này.
Với những định hướng và gợi mở về những hướng đi mới, hỗ trợ tài liệu và ýtưởng, tôi xin gửi lời cảm ơn chân thành đến thầy Đỗ Văn Nhơn
Ngoài ra cũng xin gởi lời cảm ơn đến gia đình, bạn bè - những người đã luôn
hỗ trợ, động viên tôi trong suốt thời gian thực hiện đề tài
TP Hồ Chí Minh, tháng 03 năm 2014 Người thực hiện
Nguyễn Ngọc Hoàng
Trang 3Lời cảm ơn
Mục lục
Trang 4Chương 1: GIỚI THIỆU ĐỀ TÀI
Bài toán người đưa thư là một bài toán thuộc lớp NP-Hard nhưng lại có nhữngứng dụng rất thiết thực trong đời sống Do đó việc nghiên cứu giải quyết bài toán tốt
có thể giúp ứng dụng vào thực tiễn, nâng cao khả năng sản suất
Bên cạnh đó, giải thuật di truyền là một giải thuật meta-heuristic mạnh, địnhhướng giải quyết cho các bài toán khó, đặt biệt là các bài toán tìm kiếm trên mộtkhông gian lớn thì giải thuật di truyền thường cho kết quả tốt hơn so với các thuậtgiải khác
Do đó việc áp dụng giải thuật di truyền để giải bài toán người đưa thư là mộthướng đi rất có triển vọng và đáng được nghiên cứu
Từ những nhu cầu thực tế của xã hội và mong muốn tìm hiểu, nắm bắt côngnghệ mới, đóng góp một phần công sức đưa công nghệ vào cuộc sống thực tiễn,đồng thời với những kiến thức được học về cách thức chuyển một bài toán thực tếthành bài toán có thể giải trên máy tính; những kiến thức về meta-heuristic, tác giảquyết định chọn đề tài: “Giải bài toán người đưa thư bằng giải thuật di truyền”
• Nghiên cứu bài toán người đưa thư trên khía cạnh giải quyết vấn đề
• Tìm hiểu về giải thuật di truyền – một giải thuật meta – heuristic dùng đểgiải các bài toán thuộc lớp bài toán khó
• Áp dụng giải thuật di truyền như một phương pháp để giải bài toán ngườiđưa thư
• Cài đặt thử nghiệm giải thuật di truyền để giải bài toán người đưa thư
• Kết luận và đề xuất
Trang 5Chương 2: TỔNG QUAN VỀ TRI THỨC VÀ BIỂU DIỄN TRI
THỨC
2.1 TRI THỨC
Tri thức là sự hiểu biết về một lĩnh vực nào đó Một số dạng tri thức được biếtđến là:
Trang 6• Tri thức thủ tục – procedured knowledge: Mô tả cách thức giải quyết mộtvấn đề Loại tri thức này đưa ra giải pháp để thực hiện một công việc nào đó.Các dạng tri thức thủ tục tiêu biểu là các luật, chiến lược, lịch trình và thủtục.
• Tri thức khai báo – declared knowledge: Cho biết một vấn đề được thấy như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áckhẳng định logic đúng hoặc sai Tri thức khai báo cũng có thể là một danhsách các khẳng định nhằm mô tả đầy đủ hơn về đối tượng hay một khái niệmnào đó
• Siêu tri thức – metaknowledge: Mô tả tri thức về tri thức Loại tri thức nàygiú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ộtvấn đề Các chuyên gia sử dụng tri thức này để điều chỉnh hiệu quả giảiquyế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 caohơn
• Tri thức heuristic – heuristic knowledge: Mô tả các “mẹo” để dẫn dắt tiếntrình lập luận Tri thức heuristic còn gọi là tri thức nông cạn do không đảmbả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ườngdùng các tri thức khoa học như sự kiện, luật, … sau đó chuyển chúng thànhcá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 – structured knowledge: 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ủachuyên gia, bao gồm khái niệm, khái niệm con và các đối tượng; diễn tả chứcnăng và mối liên hệ giữa các tri thức dựa theo cấu trúc xác định
Ngoài các dạng tri thức được đề cập ở trên, người ta còn phân tri thức thành 2loại:
Trang 7• Tri thức tường minh – explicit knowledge: Diễn đạt bằng ngôn ngữ hìnhthức, dễ trao đổi giữa các cá nhân Có thể biểu diễn bằng các công thức khoahọc, các thủ tục tường minh, hoặc nhiều cách khác Bao gồm thông tin, dữliệu, sách báo, văn bản, tài liệu đã được hệ thống bằng nhiều phương tiện Trithức tường minh được đặc trưng bởi các cách tiếp cận lý thuyết, các cách giảiquyết vấn đề, tài liệu, cơ sở dữ liệu, cơ sở tri thức.
• Tri thức ngầm – tacit knowledge: Có được và ẩn chứa trong kinh nghiệm củatừng cá nhân, mang tính chủ quan, bao gồm những hiểu biết riêng thấu đáo,trực giác, linh cảm, kỹ năng, Khó trao đổi hoặc chia sẻ với người khác.Chỉ có thể học được từ người khác nhờ quan hê gần gũi trong một khoảngthời gian nào đó Tri thức ngầm liên quan đến nhận thức như niềm tin, quanniệm, trực giác, mô hình ẩn dụ, … và kỹ thuật như các ngón nghề (craft), các
bí quyết (know-how)
Biểu diễn tri thức (Kowledge Representation) là phương pháp cho phép mãhóa tri thức trong cơ sở tri thức của hệ thống
Biểu diễn tri thức là một vấn đề được quan tâm trong cả khoa học nhận thứclẫn trí tuệ nhân tạo Trong khoa học nhận thức, người ta quan tâm đến cách thức lưutrữ và xử lý thông tin Còn trong trí tuệ nhân tạo, mục tiêu chính là lưu trữ tri thứcsao cho các chương trình có thể xử lý chúng và đạt được sự thông minh như conngười Các nhà nghiên cứu trí tuệ nhân tạo đã mượn các lý thuyết về biểu diễnthông tin từ khoa học nhận thức
2.2.1 Bộ ba Đối tượng – Thuộc tính – Giá trị (Object-Attribute-Value)
Trang 82.2.2 Mạng ngữ nghĩa (Semantic Networks)
2.2.3 Khung (Frames)
2.2.4 Logic
Các phương pháp biểu diễn tri thức trên đây đều có những ưu và nhược điểmnhất định Mỗi phương pháp chỉ biểu diễn được một khía cạnh của tri thức trong khitri thức cần được biểu diễn trong các hệ ứng dụng rất đa dạng và thường bao gồmcác khái niệm từ đơn giản đến có cấu trúc phức tạp, các hệ thức tính toán với những
Trang 9qui luật nhất định, các liên hệ đa dạng bao gồm cả định tính lẫn định lượng, các luậtdẫn và các heuristic, v.v
Một cách tiếp cận khác được sử dụng là kết hợp các phương pháp biểu diễn trithức đã có với những phát triển nhất định để tạo ra một số mô hình biểu diễn trithức mới với phạm vi tri thức bao gồm nhiều dạng kiến thức đa dạng hơn, và nhưthế các mô hình biểu diễn tri thức này có thể được sử dụng như là cơ sở và là công
cụ cho việc thiết kế cơ sở tri thức, bộ phận suy luận giải toán tự động cũng như thiết
kế phần giaodiện của chương trình
2.2.5 Mô hình một đối tượng tính toán (C-Object)
Mô hình này được đề xuất bởi Đỗ Văn Nhơn trong công trình luận án tiến sĩ
toán học: “Xây dựng hệ tính toán thông minh: Xây dựng và phát triển các mô hình
biểu diễn tri thức cho các hệ giải toán tự động”.
Một C-Object có thể được mô hình hóa bởi một bộ:
(Attrs, F, Facts, Rules)
trong đó:
• Attrs là tập hợp các thuộc tính của đối tượng
• F là tập hợp các quan hệ suy diễn tính toán
• Facts là tập hợp các tính chất hay các sự kiện vốn có của đối tượng
• Rules là tập hợp các luật suy diễn trên các sự kiện liên quan đến các thuộctính cũng như liên quan đến bản thân đối tượng
Ví dụ: Đối tượng (C-Object) “TAM_GIAC” được biểu diễn theo mô hình trêngồm có:
• Attrs = { GocA, GocB, GocC, a, b, c, ha, hb, hc, ma, mb, mc, pa, pb, pc, S,
p, R, r, ra, rb, rc }
• F = { GocA + GocB + GocC = Pi, a*sin(GocB) = b*sin(GocA), a^2 = b^2 +c^2 - 2*b*c*cos(GocA), }
• Facts = {}
Trang 10• Rules = { {GocA = GocB}⇒ {a = b}, {a = b} ⇒ {GocA = GocB}, {a^2 =b^2+c^2}⇒{GocA=pi/2}, {GocA=pi/2} ⇒ {a^2 = b^2+c^2, b ⊥ c}, }Khảo sát các bài toán suy diễn và tính toán trên một C-Object và xây dựng cácthuật giải thích hợp sẽ là cơ sở cho việc thiết kế các hệ hỗ trợ giải toán kết hợp với
sự tra cứu kiến thức và học kiến thức Tuy nhiên, mỗi loại C-Object khi xét riêngbiệt chỉ thể hiện được một phần tri thức có tính chất cục bộ trong ứng dụng trongkhi kiến thức của con người về một lĩnh vực hay một phạm vi kiến thức nào đóthường bao gồm các khái niệm và các loại đối tượng khác nhau với những mối quan
hệ hữu cơ
2.2.6 Mô hình cơ sở tri thức các đối tượng tính toán (COKB)
Mô hình này được đề xuất bởi Đỗ Văn Nhơn trong công trình luận án tiến sĩ
toán học: “Xây dựng hệ tính toán thông minh: Xây dựng và phát triển các mô hình
biểu diễn tri thức cho các hệ giải toán tự động”.
Trong mô hình này, ngoài những quan hệ tính toán còn có nhiều luật khác trêncác loại sự kiện khác nhau Ở đây không phải chỉ có các loại sự kiện tính toán đượcquan tâm khảo sát mà ta còn đề cập đến những sự kiện quan hệ khác trên các thuộctính và trên các đối tượng Mô hình mạng các C-Object tổng quát sẽ cho ta mộtphương pháp biểu diễn các dạng bài toán tổng quát trong hệ cơ sở tri thức các C-Object, làm cơ sở cho việc thiết kế các môđun giải toán và trợ giúp giải toán trongcáchệ giải toán thông minh
Trang 11Chương 3: MÔ HÌNH HỆ LUẬT DẪN
3.1 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ànhmộ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ậtdẫ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 conngườ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 Ynghĩ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ãyxem 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˚C -> bật chế độ làm ấm
• Luật 2: nếu nhiệt độ > 20˚C -> tắt chế độ làm ấm
Khi nhiệt độ trong phòng nhỏ hơn 20˚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˚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ộtmá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ànluậ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 đượcthoả 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ệncủa nó sẽ được thoả, và vòng quay lại được lặp lại
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….”
Trang 12Ví 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,
a: cạnh a của tam giác
b: cạnh b của tam giác
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?
Trang 13• 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ụ: Trong ví dụ trên 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:
B1: Ghi nhận các sự kiện giải thiết và mục tiêu của bài toán
B2: Khởi tạo lời giải là rỗng
B3: Kiểm tra mục tiêu If mục tiêu đáp ứng then goto B8
B4: Nếu mục tiêu chưa nằm trong know tìm luật có thể phát sinh sự kiệnmới
B5: If không tìm được luật then dừng không tìm được lời giải
B6: If B4 thành công then 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
B8: Tìm được lời giải trong danh sách luật solution
• 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ếmcác sự kiện đã "sinh" ra sự kiện này Ví dụ: Trong ví dụ trên nếu ban đầu ta cần tìm
C Ta 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ự 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:
B1: Giả sử mục tiêu đúng
B2: Phát sinh các mục tiêu con
B3: Kiểm tra các mục tiêu con If mục tiêu đáp ứng then goto B8
B4: Tìm luật có thể phát sinh sự kiện mới
B5: If không tìm được luật then dừng không tìm được lời giải
B6: If B4 thành công then 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
Trang 14B7: Goto B4
B8: Tìm được lời giải trong danh sách luật solution
3.5 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âuthuẫ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ốngnhữ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ộtthao tác khó (vì giữa các tri thức thường có quan hệ không tường minh), nhưngtrong 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ư:
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
Trang 15Cơ 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ươngtrì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ênluật sinh cũng như gặp khó khăn khi suy luận trên luật sinh.
Trang 16Chương 4: ỨNG DỤNG MÔ HÌNH HỆ LUẬT DẪN GIẢI BÀI
TOÁN TAM GIÁC
4.1.1 Các đối tượng, sự kiện trong tam giác
Hình 4.1: Các thông tin đối tượng tam giác
Ta có các đối tượng trong tam giác cần xét:
• A: Số đo góc đối diện cạnh a
• B: Số đo góc đối diện cạnh b
• C: Số đo góc đối diện cạnh c
Trang 17• hb: độ dài đường cao tương ứng với cạnh b
• hc: độ dài đường cao tương ứng với cạnh c
• S: diện tích của tam giác
• p: nửa chu vi
4.1.2 Các công thức trong tam giác
A + B + C = Π