Nghiên cứu Trí tuệ nhân tạo
Trang 1
LỜI MỞ ĐẦU
Nghiên cứu Trí tuệ nhân tạo(AI-Artificical Intelligence) nhằm tìm hiểu những yếu tố về trí tệu.Không giống với các ngành khoa học lien quan đến tri tuệ như Triết Học và Tâm Lý Học, AI nhằm tạo ra các thực thể thông minh giúp ích cho chúng ta.Một phần không thể thiếu được của Trí tuệ nhân tạo là việc dung các máy tính để thử nghiệm các lý thuyết về trí tuệ.Những kĩ thuật và hình thức được tìm hiểu trong Trí tuệ nhân tạo luôn thể hiện sự quan hệ gắn bó giữa máy tính với những lý thuyết của nó
CHƯƠNG 1:TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO1.1 Lịch sử hình thành và phát triển của trí tuệ nhân tạo
Trước đây mỗi khi nói đến Trí tuệ nhân tạo người ta thường quan tâm đến việc tạo ra cá máy tính có khả năng “suy nghĩ” như con người.Mặc dù các mô hình tương tự các máy tính thông minh đã được đưa ra từ nhiều năm trước nhưng chỉ từ khi Alan Turing công bố những kết quả quan trọng đầu tiên thì người ta mới bắt đầu thực sự ngiên cứu về trí tuệ nhân tạo một cách nghiêm túc.Phát hiện của Turing cho rằng chương trình có thể được lưu trữ trong bộ nhớ rùi sau đó có thể thực hiện trên các phép toán cơ bản trên các bit 0 va 1.Việc lưu trữ chương trình trong máy cho phép thay đổi các chức năng của nó một cách nhanh chóng và dễ dàng bằng cách thông qua việc nạp vào một chương trình mới vào bộ nhớ,tức là làm cho máy tính có khả năng “suy nghĩ”.
Các chương trình thông minh được công bố đó là:
Năm 1956:Chưong trình giải toán tổng quát đã đươc xuất hiện
Năm 1958:Chương trình chứng minh định lý hình học cũng được khám phá Nhưng phải đến những năm 1960 thì lĩnh vực này mới thực sự phát triển với nhiều công trình được công bố như:
Năm 1960:Ngôn ngữ LISP.
Năm 1961:Chương trình giải các bài toán đại số sơ cấp Năm 1963:Chương trình chơi cờ vua.
Năm 1964:Chương trình tính tích phân.
Năm 1966:Chương trình phân tích và học nói.
Năm 1968:Chương trình điều khiển Robot theo phương án mắt và tay Năm 1972:Ngôn ngữ Prolog
Từ những năm 1969 đến năm 1999 nhiều chương trình được xây dựng trên các hệ cơ sở tri thức.Các lĩnh vực trí tuệ đã đi vào đời sống từ những năm 1980 đến nay.
Trang 21.2 Định nghĩa trí tuệ nhân tạo
* Trí tuệ nhân tạo(AI-Artificial Intelligence) có thể được được định nghĩa như một ngành của khoa học máy tính liên quan đến việc tự động hoá các hành vi thông minh.AI là một bộ phận của khoa học máy tính nên nó phải đặt trên nguyên lý lý thuyết và được áp dụng trong lĩnh vực này.Những nguyên lý này bao gồm các cấu trúc dữ liệu đùn trong biểu diễn tri thức,các thuật toán cần thiết để áp dụng các tri thức đó,cùng các ngôn ngữ và kĩ thuật lập trình dung cho việc cài đặt chúng.
*Một số định nghĩa khác về trí tuệ nhân tạo điển hình khác là: -Hệ thống mà biết suy nghĩ như con người.
-Hệ thống mà biết hành động như con người
Để hệ thống mà biết suy nghĩ và hành động như con người thì hệ thống đó phải đươc trang bị các công cụ như lý giải tri tự động,tri thức.
Thông thường,cách giải quyết vấn đề của con người thưồng được thông qua 4 thao tác cơ bản:
-Xác định tập hợp của các đích.
-Thu thập các sự kiện và luật suy diễn -Cơ chế tập trung.
-Bộ máy suy diễn.
Như vậy ,trí tuệ máy là khả năng giải quyết các vấn đề: -Hành động giống như con người.
-Suy nghĩ giống như con người -Học giống như con người.
-Xử lý thông tin giống như con người.
-Hành động và xử lí thông tin logic và chính xác.
1.3 Các thành phần cơ bản của trí tuệ nhân tạo
Có 2 thành phần cơ bản của trí tuệ nhân tạo là biểu diễn tri thức và tìm kiếm tri thức trong miền biểu diễn.Biểu diễn tri thức chú ý đến vấn đề nắm bắt theo một cách ngôn ngữ hình thức,tức là một dạng thích hợp để máy tính vận hành,phạm vi tri thức đầy đủ mà hành vi thông minh đòi hỏi.Trong khi Tìm kiếm là kĩ thuật giải quyết vấn đề theo cách khảo sát vấn đề có hệ thống một không gian “ trạng thái bài toán ”,tức là các giai đoạn tuần tự và có chọn lựa trong quá trình giải quyết vấn đề.
Để biểu diễn tri thức của bài toán nhờ các phương pháp biểu diễn tri thức như:
-phưong pháp biểu diễn nhờ luật.
-phương pháp biểu diễn nhờ mạng ngữ nghĩa -phương pháp biểu diễn nhờ Frame.
-phương pháp biểu diễn nhờ logic vị từ.
Trang 3Sau khi tri thức của bài toán đã được biểu diễn,kỹ thuật bài toán trong lĩnh vực trí tuệ nhân tạo là các phương pháp tìm kiếm trong miền đặc trưng tri thức về bài toán đó.
1.3.1 Các phương pháp biểu diễn tri thức.
1.3.1.1Phương pháp biểu diễn nhờ logic vị từ.
Logic mệnh đề cho phép ta biểu diễn các sự kiện.Mỗi kí hiệu logic mệnh đề được minh hoạ như là một sự kiện trong thế giới thực,sử dụng các kết nối logic ta có thể tạo ra các câu phức hợp biểu diễn các sự kiện mang tính phức tạp hơn.Như vậy,khả năng biểu diễn của logic mệnh đề chỉ giới hạn trong phạm vi thế giới của sự kiện.
Thế giới hiện thực bao gồm các đối tượng.Mỗi đối tượng có những tính
chất riêng để phân biệt với các đối tượng khác.Các đối tượng lại có quan hệ
với nhau.Các mối quan hệ rất đa dạng và phong phú.Xét logic vị từ cấp một là mở rộng của logic mệnh đề:nó cho phép ta mô tả thế giới với các đối tượng,các thuộc tính của đối tượng và mối quan hệ giuũa các đối tượng Nó sử dụng các biến đối tượng để chỉ các đối tượng trong một miền đối tượng nào dó Để mô tả các thuộc tính của đối tượng,các quan hệ giữa các đối
tượng thì trong logic vị từ người ta dưa vào các vị từ.
Ngoài các kết nối logic như trong logic mệnh đề,logic vị từ cấp một còn sử
Mỗi hàm là hàm của cua n biến(n≥1).Chẳng hạn hàm cos,sin là hàm một biến,hàm distance là hàm của ba biến.
Các kí hiệu kết nối logic:∧(hội),∨(tuyển),=>(kéo theo),(tương đương) Các kí hiệu lượng tử:∀(với mọi),∃(tồn tại).
Các kí hiệu ngăn cách:dấu phẩy,dấu mở hoặc dấu đóng ngoặc.
Các hạng thức :các hạng thức là các biểu thức mô tả các đối tượng.các
hạng thức được xây dựng đệ quy như sau: -Các kí hiệu hằng và kí hiệu biến là hạng thức.
-Nếu các t1,t2,t3,…tn là n hạng thực và f là một kí hiệu hàm n biến thì (f1 1
Trang 4,f2,f3,…,fn) là hạng thức.Một hạng thức không chứa biến được gọi là một
hạng thức cụ thể.
Các công thức phân tử:Biểu diễn các tính chất của đối tượng,hoặc các
quan hệ giữa các đối tượng bởi ccá công thức phân tử(câu đơn) Các công thức phân tử được xác định đệ quy như sau:
-các kí hiệu vị từ không biến là các công thức phân tử.
-nếu t1,t2,…,tn là n hạng thức và P là logic vị từ của n biến thì P(t1,t2,…,tn) là công thức phân tử.
Các công thức :từ các công thức phân tử,sử dụng các kết nối logic và các
lượng tử thì xây dựng nên các công thức(các câu) Các công thức được xác định đệ quy như sau : -Các công thức phân tử là các công thức
Nếu G và H là các công thức thì biểu thức(G∧H),(G∨H),(G=>H),(G<=>H)
là công thức.
-Nếu G là công thức và x là biến thì các biểu thức(∀ xG ),(∃ xG) là công thức.
Các công thức không phải là công thức phân tử sẽ được gọi là câu phức đơn.các công thức không chứa biến được gọi là các công thức cụ thể.Khi viết các công thức ta sẽ loại bỏ di các dấu ngoặc không cần thiết,chẳng hạn như các dấu ngoặc ngoài cùng.
Lượng tử phổ dụng cho phép mô tả tính chất của cả một đối tượng mà không cần phải liệt kê ra tất cả các đối tượng trong lớp.
Lượng từ tồn tại cho phép tạo ra các câu nói đến một đối tượng nào đó trong một lớp đối tưọng mà nó có một tính chất hoặc thoả mãn một quan hệ nào đó.Chẳng hạn bằng cach sử dụng các câu đơn Student(x) (x la sinh viên) và Inside(x,300) (x ở trong phòng 300),ta có thể biểu diễn câu ’’c ó một sinh viên ở trong phòng 300’’ bởi biểu thức ∃x(Student(x)∧Inside(x,300).
Một công thức là công thức phân tử hoặc phủ định của công thức phân tử
được gọi là literal.
b.Ngữ nghĩa
Cũng như logic mệnh đề,nói đến ngữ nghĩa là nói đến ý nghĩa của các công thức trong một thế giới hiện thực nào đó mà sẽ được gọi là một minh hoạ Để xác định một minh hoạ,trước hết cần xác định một miền đối tượng(nó bao gồm tât cả các đối tượng trong thế giới hiện thực mà ta quan tâm).
-Ngữ nghĩa của một câu đơn :Trong một minh hoạ các kí hiệu vị từ sẽ được gắn với một thuộc tính hoặc một quan hệ cụ thể nào đó.Khi đó mỗi công thức phân tử(không chứa biến)sẽ chỉ định một sự kiện cụ thể.Sự kiện này có thể đúng(Trure)hoặc sai(False).
-Ngữ nghĩa của các câu phức hợp :Khi đã xác định được ngữ nghĩa của các câu đơn ta có thể xác định được ngữ nghĩa của câu phức hợ(được tạo thành
Trang 5từ các câu đơn bằng cách liên kết các câu đơn bởi các kết nối logic) như trong logic mệnh đề.
-Ngữ nghĩa của các câu chứa lượng tử :
ngữ nghĩa của các câu ∧xG ,trong đó G là một công thức nào đó được xác
định như là ngữ nghĩa của một công thức là hội của tất cả các công thức nhận được từ công thức G bằng cách thay x bởi một đối tượng trong miền đối tượng.
Công thưc G chỉ đúng nếu và chỉ nếu mọi công thức nhận được từ G bằng cách thay x bằng một đối tượng trong miền đối tượng đều đúng.
Ngữ nghĩa của công thức ∀xG được xác định như là ngữ nghĩa của công thức là tuyển của tất cả các công thức nhận được từ G bằng cách thay tất cả các giá trị x bởi một đối tượng trong miền đối tượng.
Như vậy công thưc∀xG là đúng nếu và chỉ nếu mọi công thức nhận được từ G bằng cách thay x bởi một đối tưọng trong miền đối tượng đều đúng,tức là G là đúng cho tất cả các đối tượng x trong miền đối tượng.
1.3.1.2 Phương pháp biểu diễn nhờ luật và lâp luận
Với một cơ sở tri thức gồm các câu trong logic vị từ cấp một ta có thể chưng minh công thức có là hệ quả của logic của cơ sở tri thức hay không bằng phương pháp chứng minh bác bỏ và thủ tục phân giải.
Tuy nhiên thủ tục này có độ phức tạp lớn và đòi hỏi một chiến lược giải một cách thich hợp.vì thế mà các nhà nghiên cúư cố gắng tìm các tập con của logic vị từ cấp một sao cho chúng đủ khả năng biểu diên cơ sở tri thức trong nhiều lĩnh vực và có thể đua ra các thủ tục suy diễn có hiệu quả.các tập con nay của logic vị từ cấp một sẽ xác định các ngôn ngữ biểu diên tri thức đặc biệt.
Nếu chỉ sử dụng các luật nếu-thì,ta không thể biểu diên được mọi điều trong logic vị từ cấp một.tuy nhiên,với các luật nếu-thì ta có thể biểu diễn được một khối lượng lớn tri thức trong nhiều lĩnh vực khác nhau và có thể thực hiện các thủ tục suy diễn có hiệu quả.
-Biểu diễn tri thức nhờ luật sinh :
Ngôn ngữ bao gồm các nếu-thi (ì-then)còn gọi là các luật sản xuất hay luật sinh,là ngôn ngữ phổ biến nhất để biểu diễn tri thức.các câu Hor n có dạng : P1∧…∧PN=>Q
Trong đó các Pi(i=1,2,…,n) và Q là các câu phần tử Các câu Horn còn được viết dưới dạng:
nếu P1 và P2… và Pn thì Q
Các Pi (i=1,2,…,n) gọi là các điều kiện.Q được gọi là kết luận của luật Các luật có các ưu điểm sau đây:
-Mỗi luật nếu –thì mô tả một phần nhỏ tương đối độc lập của tri thức.
Trang 6-Có thể them và cơ sở tri thức các luật mới,hoặc loại bỏ một số luật cũ mà không ảnh hưởng nhiều tới các luật khác.
-Các hệ tri thức với cơ sở tri thức gồm các luật nếu-thì có khả năng đưa ra lời giải thích cho các quyết định của hệ.
Các luật nếu –thì là dạng biểu diễn tự nhiên của tri thức.Băng cách sử dụng các luật nêu-thì có thể biểu diễn được một lượng lớn tri thức của con người về tự nhiên,về xã hội.,…
Ví dụ như:
-Một luật về chuẩn đoấn bệnh: Nếu
1.bệnh nhân ho lâu ngày ,và
2.bệnh nhân thường sốt vào buổi chiều Thì bệnh nhân có khả năng bị bệnh lao -Một luật về dự báo thời tiết
Nếu 1.trời nhiều mây,và 2.có gió
Thì trời sẽ mưa.
Trong nhiều áp dụng cơ sở của hệ cần được đua vào các luật mà phần kết của luật là một hành động hệ cần thực hiện.gọi các luật này la luật hành
Hành động trong các luật hành động có thể là them vào một sự kiện mới,có thể loại bỏ một sự kiện đã có trong bộ nhớ làm việc;hành động cũng có thể là một động nào đó mà robot cần thực hiện.
Người ta phân biệt 2 dạng hệ,các hệ dựa trên luật sử dụng lập luận tiến và phần kết luận của các luật xác định các khẳng định mới thì được gọi là các hệ diễn dịch.các hệ dựa trên luật mà phần kết luận của các luật xác định các hành động cần thực hiện được gọi là hệ hành động dựa trên luật.
Trong các hệ diễn dịch ta xem mọi luật đều sinh ra các khăng định mới “có giá tri” như nhau;tức làtức là ta không xem khăng định do luật này sinh ra là tốt hơn khăng định do luật khác sinh ra.do đó trong các hệ diễn dịch,khi mà điều kiện được thoả mãn ta có thể sinh ra khẳg định mới.
Trong các hành động ,khi có nhiều hơn một luật có thể được sinh ra chúng ta chỉ muốn thực hiện một trong các hành đọng có thể.Do đó trong các hệ
Trang 7hành động chúng ta càn có chiến lược giải quyết va chạm để quyết định cho luật nào được sinh ra trong số các luật có thể được sinh ra.Một số chiến lược giải quyết va chạm:
-Sắp xếp các luật theo thứ tự ưu tiên.Trong các luật có thể sinh ra luật nào có mức ưu tiên cao nhất thì sẽ được thực hiện.
-Sắp xếp dữ liệu:các sự kiện trong bộ nhớ làm việc được sắp xếp theo thứ tự ưu tiên.Luật nào mà ccá điều kiện của nó được làm thoả mãn bởi các điều kiện có mức ưu tiên cao sẽ được thực hiện trứoc.
-Các luật được phân thành nhóm:trong mỗi nhóm luật được chỉ ra các điều kiện để áp dụng các luật của nhóm.Các luật này lien quan đến nội dung của bộ nhớ làm việc.
-Sử dụng các siêu luật: Đó là các luật mà phần điều kiện của nó liên quan đến nội dung của các luật và nội dung của bộ nhớ làm việc,còn phần kết luận của nó chỉ ra các luật có thể áp dụng hoặc có thể bị cấm áp dụng.Các siêu luật sẽ điều khiển sự cho phép của các luật được sinh ra.
Việc sử dụng chiến lược giải quyết va chạm nào phụ thuộc vào từng áp dụng.Tuỳ theo mục dích thiết kế của hệ mà ta lựa chọn chiến lược giải quyết cho phù hợp.
1.3.1.3 Phương pháp biểu diễn bằ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 dễ hiểu nhất.Phương pháp biểu diễn dựa trên đồ thị,trong đó đỉnh là các đối tượng(hay khái niệm) còn các cung là các mối quan hệ giữa các đối tượng(hoăc khái niệm )đó Ví dụ như:giữa các đối tượng và khái niệm :chích,chim,tổ,cánh,hót có các quan hệ như sau:
Chich
Là Biết
Làm có
1.3.1.4 Phương pháp biểu diễn bằng Frame(Khung)
Khung là phương pháp biểu diễn tri thức có cấu trúc dữ liệu chứa tất cả tri thức liên quan đến một đối tượng cụ thể nào đó.Khung có quan hệ chặt chẽ đến khái niệm hướng đối tượng Khung thường được dùng để biểu diễn những tri thức ’’chuẩn ’’ hoặc những tri thức dựa trên kinh nghiệm hoặc các diểm đã được hiểu biết cặn kẽ.
Trang 8Cấu trúc của khung gôm 2 thành phần cơ bản ‘‘Slot’’ và ‘‘Facet’’.Slot là một thuộc tính đặc tả đối tượng Một Slot có thể chứa nhiều Facet.Các Facet đôi khi con được gọi là các Slot con.
cấu trúc tổng quát của một khung(Frame) dữ liệu được mô tả như sau : Các slot trong mỗi frame chứa các thong tin như sau: -Thông tin nhận dạng frame
-Thông tin quan hệ của frame này với các frame khác -Các thành phần mô tả của frame.
-Thông tin thủ tục.
-Thông tin mặc định frame -Thông tin đề xuất mới
Biểu diễn tri thức nhờ frame cung cấp ý tưởng lập trình hướng đối tượng trong ngôn ngữ lập trinh Prolog hoặc các ngôn ngữ lập trình khác như C+ +và Visual Basic.
Frame cho phép truy cập các thành phần của Frame đó là các Slot và cho phép hưởng quyền thừa kế giữa Frame dữ liệu này với Frame dữ liệu khác.
1.3.2 các chiên lược tìm kiếm tri thức
1.3.2.1 Không gian bài toán
Tri thức của bài toán có thể đươc chia ra thành 3 tri thức cơ bản đó là tri thức mô tả ,tri thức thủ tục va tri thức điều khiển.
-Tri thức mô tả:là loại tri thức mô tả những gì mà được biết về bài toán.Loại tri thức này bao gồm các sự kiện,các quan hệ và các tính chất của bài toán -Tri thức thủ tục:la loại tri thức mô tả cách giải quyết bài toán.Loại tri thức này bao gồm luật suy diễn hợp lệ,chiến lược tìm kiếm và giải thuật tìm kiếm -Tri thức điều khiển:là loại tri thức được xem như là luật chủ chốt điều khiển quá trình lý giải để dẫn đến kết luận.
Không gian bài toán có thể được biểu diễn bằng không gian trạng thái đó là một biểu diễn bằng đồ thị định hướng gồm 4 thành phần như sau:
S : trạng thía ban đầu của bài toán (dữ liệu ban đầu) G : tập các trạng thái đích của bài toán(dữ liệu đích).
N : Tập các trạng thái được phát sinh từ trạng thái ban đầu đến trạng thái đích.
Trang 9A : Tập các trạng thái chuyển tiếp đó là các cung lien kết giữa các nút của đồ thị nhờ thong qua các luật áp dụng của bài toán.
Luật áp dụng là luật mà vế điều kiện của nó hợp với trạng thái hiện có để vế kết luận của nó phát sinh ra các trạng thái mới.
1.3.2.2Một số giải thuật tìm kiếm.
a.Giải thuật tìm kiếm theo chiều rộng (Breadth-Fist-search).
Đây là giải thuật tìm kiếm mức theo mức của cây.Giải thuật bắt đầu từ nút gốc của cây tìm kiếm qua tất cả các nút ở các nút kế tiếp,nếu nó chưa tìm thấy đích thì tiếp tục tìm kiếm ở các mức sâu hơn,cứ như thế cho đến khi nó tìm thây nút đích thì dừng thủ tục tìm kiếm và thiết lập lời giải bắt đầu từ nút gốc thông qua các nút lien kết đến nút đích.
Giải thuật tìm kiếm theo chiều rộng được trang bị bằng 2 danh sách mở Open và đóng Closed,trong đó danh sách Open chứa các trạng thái đang chờ được duyệt và danh sách Closed chứa các trạng thái đã được duyệt qua.Giải thuật được mô tả như sau:
- Loại bỏ nút đầu tiên từ danh sách Open và gọi nút này là X If X=đich Then trả về thành công.
Else begin
- Phát sinh các con của X dung các luật áp dụng hợp với X; - Đặt X vào danh sách Closed.
- Loại bỏ tất cả các con của X đã có mặt trên Open hoặc Closed.
-Đặt các con của X chưa có măt trên Open hoặc Closed Vào cuối danh sách Open;
End ; End; End.
b.Giải thuật tìm kiếm theo chiều sâu(Depth Fist Search)
Giải thuật tìm kiếm theo chiều sâu là giải thuật tìm kiếm nhánh theo nhánh của cây.Giải thuật bắt đầu từ nút gốc tìm kiếm đến các nút con,cháu của gốc,nếu giải thuật tìm thấy đích thì dừng thủ tục tìm kiếm và thiết lập lời giải từ nút gốc thong qua các nút liên kết đếnnút đích;mặt khác nếu giải thuật tìm kiếm thấy đường cụt thì nó lùi về tìm kiếm nút anh em.
Trang 10Giải thuật này cũng được trang bị bằng 2 danh sách mở Open và đóng Closed Nó được mô tả như sau:
-Phát sinh các con cua X dung các luật áp dụng với X -Đặt X vào danh sách Closed;
-Loại bỏ các con của X đã có mặ trên Open hoặc Closed; -Đặt các con của X chưa có mặt trên Open hoặc Closed vào đầu danh sách Open.
End; End; End.
c.Tìm kiếm Heuristic
-Tri thức điều khiển bài toán còn được gọi là Heuristic.Heuristic là luật chủ chốt điều khiển thuật toán tìm kiếm bám đường có các trạng thái tốt nhất để đạt đến đích.Heuristic có thể được thể hiện dưới dạng luật hoặc dưới dạng hàm số.Nếu nó được thể hiện dưới dạng hàm thì được gọi là hàm heuristic ,nếu ở dạng luật thì nó được gọi làluật heuristic.
Heuristic còn được gọi là tri thức nông cạn của bài toán vì nó chỉ doán bắt trạng thái tốt nhất ở bước tiếp theo trong quá trình giải quyết vấn đề.Do đó đôi khi Heuristic không đảm bảo tìm thấy lời giải tốt nhất của bài toán.
Nếu ta định nghĩa h(n) là hàm heuristic tại trạng thái n thì h(n) là một ước lượngtính từ trạng thái n đến trạng thái đích của bài toán.Trạng thái nào có heuristic nhỏ nhất thì đó là trạng thái tốt nhất được chọn để tiếp diễn quá trình tìm kiếm.
-Nếu trạng thái n không dẫn đến đường cụt thì heuristic của nó là h(n)
-Nếu trạng thái n dẫn đến đường cụt thì heuristic của nó là h(n)=∞
-nếu trạng thái n dẫn đến trạng thái đích của bài toán thì heuristic của nó là h(n)=0.
-Giải thuật tìm kiếm tốt nhất(Best-Fist-search)
Một trong các giải thuật tìm kiếm sử dụng heuristic đó là giải thuật tìm kiếm tốt nhất.Giải thuật được trang bị băng 2 danh sách mở Open và đóng
Trang 11Closed.Giải thuật bắt đầu với nút gốc của cây,khai triển các thừa kế của gốc nhờ thong qua các luật ứng dụng, ước lượngheuristic cho tất cả các nút con của gốc,chọn nút co heuristic nhỏ nhât để viếng thăm và bỏ tất cả các nút còn lại.Thủ tục này được lập lại cho tất cả các nút viếng thăm cho đến khi ào trạng thái đích của bài toán được tìm thấy.cách tìm kiếm này tạo ra một đường lien kết bám theo các trạng thái có thong tin heuristic nhỏ nhất để đạt
* Khai triển các kế thừa của X thông qua các luật ứng dụng cho mỗi kế thừa của X thực hiện một trong các trường hợp sau:
Case:thừa kế chưa xuất hiện trên danh sách Open hoặc Closed - Ước lượng heuristic cho thừa kế.
- Đặt thừa kế vào danh sách Open.
Case:Thừa kế đã có mặt trên danh sách Open - Uớc lượng heuristic cho thừa kế.
- Nếu trạng thái mới xuất hiện là tốt hơn trạng thái cũ đã có mặt trên Open thì loại bỏ trạng thái cũ ra khỏi danh sách Open;mặt khác giữ lại trạng thái cũ ở danh sách Open và lloại bỏ trạng thái mới xuất hiện.
Case:Thừa kế đã có mặt trên danh sách Closed -Ước lượng heuristic cho thừa kế.
-Nếu trạng thái mới xuất hiện là tốt hơn trạng thái đã có mặt sẵn trên Closed thì loại bỏ trạng thái cũ khỏi danh sách Closed và đặt mới vào danh sách Open;mặt khác giữ lại trạng thái cũ ở danh sách Closed và loại bỏ trạng thái mới xuất hiện.
End;
+Đặt X vào danh sách Closed.
+Sắp xếp các trạng thái trong danh sách Open theo thứ tự đầu danh sách đến cuối danh sách tương ứng với trạng thái tốt nhất đến trạng thái xấu nhất End.
Trang 12c.Hàm đánh giá heuristic
Gỉa sử quá trình tìm kiếm với thong tin heuristic trên không gian bài toán có hai hoặc nhiều trạng thái xuất hiện có cùng heuristic,trong trường hợp này,trạng thái nào là gần gốc nhất của cây đó là trạng thía tốt nhất.
Để đánh giá đầy đủ thong tin heuristic cho trường hợp này thì một hàm đánh giá heuristic được thiết lập gồm 2 thành phần:
f(n)=h(n)+g(n)
trong đó h(n)là hàm heuristic tại mỗi trạng thía n và g(n) là hàm chi phí đo từ trạng thía gốc của cây đến nút trạng thái n.
Vì vậy quá trinh tìm kiếm trạng thái nào có f(n) nhỏ nhất thì đó là trạng thái tốt nhất được chọn để tiếp diễn quá trình tìm kiếm.
1.4 Giới thiệu về ngôn ngữ lập PROLOG1.4.1cấu trúc chương trình:
Ngôn ngữ PROLOG là ngôn ngữ lập trình trên cơ sở toán học logic được thiết lập để giải quyết các vấn đề trong lĩnh vực Trí tệu nhân tạo.Cấu trúc cơ bản của ngôn ngữ lập trình Prolog được mô tả như sau:
+domains:là vùng để khai báo miền dữ liệu không chuẩn trong các predicate.các miền dữ liệu ushort,short,integer,long,ulong,real,string,symbol +predicate:là vùng để khai báo các predicates,nó phải có tên riêng và các đối số vào của nó.Theo qui ước,tên của predicate phải có chuỗi là chữ cái in thương và đối số của nó là chữ in hoa nếu nó là biến.