Kiến thức là mối quan tâm trước tiên của con người. Người ta luôn luôn tìm kiếm thêm kiến thức, sử dụng nó và làm phong phú thêm thế giới xung quanh. Con người đã có nhiều công cụ mở rộng kiến thức, trong đó máy tính là cái đáng kể nhất. Máy tính có thể xử lý nhanh chóng và chính xác các dữ liệu. Ngày nay nó không chỉ lưu trữ, tìm kiếm và xử lý các dữ liệu mà nó còn giữ vai trò ra các quyết định. Trong thời gian ngắn, công nghệ đã đưa con người từ việc xử lý dữ liệu, qua việc xử lý thông tin, đến việc xử lý tri thức. Một lĩnh vực nghiên cứu đóng góp vào công việc này là Trí tuệ nhân tạo. Sự phát triển mạnh mẽ cả về mặt nghiên cứu và ứng dụng các thành tựu Trí tuệ nhân tạo đã đem lại hy vọng cho các nhà tin học. Sự xuất hiện ngày càng nhiều sản phẩm sử dụng kỹ thuật Trí tuệ nhân tạo trong cuộc sống hàng ngày và trong công nghiệp đã tạo nên một cục diện mới. Hơn nữa, các thành công đạt được còn tạo ra những tiền đề cơ bản cho sự thành công của các dự án xây dựng các hệ thống thông minh ứng dụng rộng rãi trong thực tiễn. Trong một số lĩnh vực đặc biệt, Trí tuệ nhân tạo của máy tính đã vượt qua khả năng trí tuệ của con người. Trong khi đó, với một số bài toán con người giải quyết khá đơn giản thì đối với máy tính để làm được việc đó đòi hỏi phải có những họat động trí tuệ ở trình độ cao. Cốt lõi của mọi họat động trí tuệ diễn ra trong máy tính và bộ não con người là sự vận dụng linh hoạt các kỹ thuật giải quyết vấn đề. Trong các lĩnh vực Trí tuệ nhân tạo, chúng ta thường xuyên phải đối đầu với vấn đề tìm kiếm và suy diễn. Đặc biệt trong lập kế hoạch và học máy tìm kiếm đóng vai trò quan trọng. Hiểu được tầm quan trọng đó nên em đã lựa chọn nghiên cứu đề tài “Các chiến lược tìm kiếm và suy diễn”. Bản luận văn nghiên cứu các nội dung chính sau. Chương 1. Tổng quan về Trí tuệ nhân tạo. Chương 2. Không gian bài toán.Các chiến lược tìm kiếm và suy diễn. Chương 3. Các phương pháp biểu diễn tri thức. Chương 4. Ứng dụng trí tuệ nhân tạo: xây dựng chương trình Robot tìm vàng. Song với khả năng, kiến thức còn hạn chế và thời gian không cho phép, đề tài của em không thể tránh khỏi những thiếu sót. Em rất mong được sự đóng góp ý kiến, ủng hộ của thầy cô giáo và các bạn để bản luận văn của em được hoàn thiện hơn. Một lần nữa em xin chân thành cảm ơn sâu sắc đến các thầy cô giáo trong khoa Toán Tin, đặc biệt là thầy giáo Lê Đắc Nhường đã giúp đỡ em hoàn thành bản luận văn này.
Trang 1Lêi nãi ®Çu
Kiến thức là mối quan tâm trước tiên của con người Người ta luôn luôn tìm kiếm thêm kiến thức, sử dụng nó và làm phong phú thêm thế giới xung quanh Con người đã có nhiều công cụ mở rộng kiến thức, trong đó máy tính là cái đáng kể nhất Máy tính có thể xử lý nhanh chóng và chính xác các dữ liệu Ngày nay nó không chỉ lưu trữ, tìm kiếm và xử lý các dữ liệu mà nó còn giữ vai trò ra các quyết định Trong thời gian ngắn, công nghệ đã đưa con người từ việc xử lý dữ liệu, qua việc xử lý thông tin, đến việc xử lý tri thức Một lĩnh vực nghiên cứu đóng góp vào công việc này là Trí tuệ nhân tạo
Sự phát triển mạnh mẽ cả về mặt nghiên cứu và ứng dụng các thành tựu Trí tuệ nhân tạo đã đem lại hy vọng cho các nhà tin học Sự xuất hiện ngày càng nhiều sản phẩm sử dụng kỹ thuật Trí tuệ nhân tạo trong cuộc sống hàng ngày và trong công nghiệp đã tạo nên một cục diện mới Hơn nữa, các thành công đạt được còn tạo ra những tiền đề cơ bản cho sự thành công của các dự án xây dựng các hệ thống thông minh ứng dụng rộng rãi trong thực tiễn
Trong một số lĩnh vực đặc biệt, Trí tuệ nhân tạo của máy tính đã vượt qua khả năng trí tuệ của con người Trong khi đó, với một số bài toán con người giải quyết khá đơn giản thì đối với máy tính để làm được việc đó đòi hỏi phải có những họat động trí tuệ ở trình độ cao Cốt lõi của mọi họat động trí tuệ diễn ra trong máy tính
và bộ não con người là sự vận dụng linh hoạt các kỹ thuật giải quyết vấn đề
Trong các lĩnh vực Trí tuệ nhân tạo, chúng ta thường xuyên phải đối đầu với vấn đề tìm kiếm và suy diễn Đặc biệt trong lập kế hoạch và học máy tìm kiếm đóng vai trò quan trọng
Trang 2Hiểu được tầm quan trọng đó nên em đã lựa chọn nghiên cứu đề tài “Các chiến lược tìm kiếm và suy diễn” Bản luận văn nghiên cứu các nội dung chính sau.
Chương 1 Tổng quan về Trí tuệ nhân tạo
Chương 2 Không gian bài toán.Các chiến lược tìm kiếm và suy diễn
Chương 3 Các phương pháp biểu diễn tri thức
Chương 4 Ứng dụng trí tuệ nhân tạo: xây dựng chương trình Robot tìm vàng.Song với khả năng, kiến thức còn hạn chế và thời gian không cho phép, đề tài của em không thể tránh khỏi những thiếu sót Em rất mong được sự đóng góp ý kiến, ủng hộ của thầy cô giáo và các bạn để bản luận văn của em được hoàn thiện hơn
Một lần nữa em xin chân thành cảm ơn sâu sắc đến các thầy cô giáo trong khoa Toán Tin, đặc biệt là thầy giáo Lê Đắc Nhường đã giúp đỡ em hoàn thành bản luận văn này
Hải Phòng ngày 15 tháng 5 năm 2007
Sinh viên: Nguyễn Thị Thanh Thương
Trang 3CHƯƠNG 1 TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO
1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO
Nhiều dạng hoạt động của con người trong thực tiễn, từ những tính tốn trong các nghiên cứu khoa học - kỹ thuật, đến những họat động ít nhiều mang tính đơn giản như giải đáp câu đố, chơi cờ, sửa chữa máy mĩc, đều địi hỏi sự tham gia của trí tuệ Máy tính trở thành cơng cụ đắc lực ngày càng trợ giúp con người trong những cơng việc xử lý thơng tin, khơng những vậy máy tính cịn cĩ khả năng giải quyết được các nhiệm vụ ở mức độ trí tuệ ngày càng cao Theo một nghĩa nào đĩ, máy tính đã được trang bị Trí tuệ nhân tạo
Lĩnh vực của Trí tuệ nhân tạo nhằm vào việc hiểu các thực thể thơng minh Do
đĩ một trong các lý do để nghiên cứu là học về bản thân con người, hiểu cách suy
lý của con người Một lý do khác để nghiên cứu Trí tuệ nhân tạo là nhằm vào việc chế tạo các cỗ máy thơng minh hỗ trợ con người thơng qua nhiệm vụ ra quyết định
Từ trước đến nay, Trí tuệ nhân tạo đã cho nhiều kết quả và cho dù tương lai người
ta chưa biết nĩ ra sao, nhưng chắc chắn rằng máy tính với trí tuệ như con người sẽ tác động mạnh đến cuộc sống và văn minh của con người
1.1.1 Khái niệm
Trí tuệ nhân tạo (Artificial Intelligence) là một lĩnh vực của khoa học máy tính, nghiên cứu sự thiết kế các tác nhân thơng minh (“Computational intelligence is the study of the design of intelligent agents”) Các áp dụng của Trí tuệ nhân tạo rất đa
dạng và phong phú, hiện nay đã cĩ nhiều hệ thơng minh ra đời: hệ chuyên gia, các điều khiển tự động, các Robot, các hệ dịch tự động các ngơn ngữ tự nhiên, các hệ nhận dạng, các chương trình chơi cờ,…Kỹ thuật của Trí tuệ nhân tạo đã được sử dụng trong việc xây dựng các hệ mềm nhằm tạo ra các hệ mềm mang yếu tố thơng minh, linh hoạt và tiện dụng
Trang 41.1.2 Lịch sử phát triển trí tuệ nhân tạo
Thuật ngữ Trí tuệ nhân tạo được John McCarthy đưa ra trong hội thảo ở Dartmouth vào mùa hè 1956 Trong hội thảo này có mặt các tên tuổi nổi tiếng như Marvin Minsky, Claude Shannon, Nathaniel Rochester, Arthur Samuel, Allen Newell và Herbert Simon Trước hội thảo này, từ năm 1952 Arthur Samuel đã viết chương trình chơi cờ Samuel đã bác bỏ tư tưởng cho rằng máy tính chỉ có thể làm được cái mà người ta bảo nó làm, vì chương trình của Samuel có thể học để chơi tốt hơn người viết ra nó Đến hội thảo này, Allen Newell và Herbert Simon cũng đã viết chương trình lập luận với tên gọi “The logic theorist” Chương trình của các ông có khả năng chứng minh hầu hết các định lý trong chương 2 cuốn “Principia Mathematics” của Russell và Whitehead Trong hội thảo ở Dartmouth, các nhà
nghiên cứu đã thảo luận và vạch ra phương hướng nghiên cứu của lĩnh vực Trí tuệ
nhân tạo Vì vậy, hội thảo ở Dartmouth, mùa hè 1956 được xem là thời điểm ra đời
thực sự của lĩnh vực nghiên cứu Trí tuệ nhân tạo
Theo các mốc phát triển, người ta thấy Trí tuệ nhân tạo được sinh ra từ những năm 50 với các sự kiện sau:
- Người đi đầu trong Trí tuệ nhân tạo là Turing với các thí nghiệm về các hành
vi thông minh
- Tháng 8/1956 John McCarty, M.Minsky, A.Newell, Shannon, Simon…đưa ra
khái niệm “Trí tuệ nhân tạo”
- Chương trình đầu tiên về Trí tuệ nhân tạo có nguồn gốc từ lý thuyết logic, từ các trò chơi cờ,
- Xuất hiện ngôn ngữ lập trình LISP (List Processing), phù hợp với các nhu
cầu xử lý đặc trưng của Trí tuệ nhân tạo
Tuy vậy Trí tuệ nhân tạo chỉ đi vào hoạt động thực sự từ những năm 60, khi có nhiều đề án về Trí tuệ nhân tạo, có các nghiên cứu về may rủi, về hệ thống giải bài
toán GPS (General Problem Solving).
Trang 5Việc khai thác và ứng dụng các kết quả của Trí tuệ nhân tạo bắt đầu từ những năm 70 Các kết quả đáng kể của Trí tuệ nhân tạo thuộc các mảng nghiên cứu ứng dụng sau:
- Thể hiện tri thức và suy lý
- Hệ chuyên gia
- Hiểu ngôn ngữ tự nhiên
- Người máy (Robot) thông minh, phát triển ở mức độ cao.
Những năm 80 được coi là thời gian thâm nhập của Trí tuệ nhân tạo vào các ngành kinh tế quốc dân Trong những năm này người ta tiến hành các thực nghiệm
và đạt được các nghiên cứu lý thuyết quan trọng
Những năm 90 người ta thực hiện:
- Cài đặt Trí tuệ nhân tạo, hay gọi là cài đặt thành phần thông minh trong các
hệ thống thông tin
- Làm rõ hơn các thành phần của ngành khoa học về Trí tuệ nhân tạo,
- Tiến hành các nghiên cứu mới, đặc biệt là các nghiên cứu về cơ chế suy lý,
về Trí tuệ nhân tạo phân tán, về các mô hình tương tác
1.1.3 Các kỹ thuật phát triển trí tuệ nhân tạo
Có nhiều kỹ thuật nghiên cứu, phát triển ngành khoa học Trí tuệ nhân tạo Tuy vậy, các kỹ thuật Trí tuệ nhân tạo thường khá phức tạp khi cài đặt cụ thể, lý do là các kỹ thuật này thiên về xử lý các ký hiệu tượng trưng và đòi hỏi phải sử dụng những tri thức chuyên môn thuộc nhiều lĩnh vực khác nhau
Do vậy, các kỹ thuật Trí tuệ nhân tạo hướng tới khai thác những tri thức về lĩnh vực đang quan tâm được mã hoá trong máy sao cho đạt được mức độ tổng quát; dễ hiểu, dễ diễn đạt thông qua ngôn ngữ chuyên môn gần gũi với ngôn ngữ tự nhiên;
dễ sửa đổi, hiệu chỉnh, dễ sử dụng, khai thác nhằm thu hẹp các khả năng cần xét để
đi tới lời giải cuối cùng
Trang 6Các kỹ thuật Trí tuệ nhân tạo cơ bản bao gồm :
- Lý thuyết giải bài toán và suy diễn thông minh: Lý thuyết giải bài toán
cho phép viết các chương trình giải câu đố, chơi các trò chơi thông qua các suy luận mang tính người; các hệ thống chứng minh định lý Ngoài ra các hệ thống hỏi đáp thông minh còn cho phép lưu trữ và xử lý khối lượng lớn các thông tin
- Lý thuyết tìm kiếm may rủi: Lý thuyết này bao gồm các phương pháp và
kỹ thuật tìm kiếm với sự hỗ trợ của thông tin phụ để giải bài toán một cách
có hiệu quả
- Các ngôn ngữ về Trí tuệ nhân tạo: Để xử lý các tri thức người ta không
chỉ sử dụng các ngôn ngữ lập trình dùng cho các xử lý dữ liệu số, mà cần có ngôn ngữ khác Các ngôn ngữ chuyên dụng này cho phép lưu trữ và xử lý thông tin ký hiệu Một số ngôn ngữ được nhiều người biết đến là IPL.V, LISP, PROLOG
- Lý thuyết thể hiện tri thức và hệ chuyên gia: Trí tuệ nhân tạo là khoa học
về thể hiện và sử dụng tri thức Mạng ngữ nghĩa, lược đồ, logic vị từ, khung
là các phương pháp thể hiện tri thức thông dụng Việc gắn liền cách thể hiện
và sử dụng tri thức là cơ sở hình thành hệ chuyên gia
- Lý thuyết nhận dạng và xử lý tiếng nói: Giai đoạn phát triển đầu của Trí
tuệ nhân tạo gắn với lý thuyết nhận dạng Các phương pháp nhận dạng chính gồm: nhận dạng hình học, nhận dạng dùng tâm lý học, nhận dạng theo phương pháp hàm thế, dùng máy nhận dạng ứng dụng của phương pháp này trong việc nhận dạng chữ viết, âm thanh
- Người máy: Cuối những năm 70, người máy trong công nghiệp đã đạt được
nhiều tiến bộ Người máy có bộ phận cảm nhận và các cơ chế hoạt động được nối ghép theo sự điều khiển thông minh Khoa học về cơ học và Trí tuệ nhân tạo được tích hợp trong khoa học người máy
Trang 7- Tâm lý học xử lý thông tin: Các kết quả nghiên cứu của tâm lý học giúp Trí
tuệ nhân tạo xây dựng các cơ chế trả lời theo hành vi, có ý thức; nó giúp cho việc thực hiện các suy diễn mang tính người
- Ngoài ra, xử lý danh sách, kỹ thuật đệ quy, kỹ thuật quay lui và xử lý cú pháp hình thức là những kỹ thuật cơ bản của tin học truyền thống có liên
quan trực tiếp đến Trí tuệ nhân tạo
1.1.4 Những đặc trưng của Trí tuệ nhân tạo
Trí tuệ nhân tạo có những đặc trưng sau:
- Trí tuệ nhân tạo xử lý thông tin theo trật tự ký hiệu Các thông tin gồm khái
niệm, luật, các đối tượng… dùng cho suy lý
- Khái niệm cơ bản trong Trí tuệ nhân tạo là sự thể hiện, suy lý, nhận biết việc
học và hệ thống cơ sở tri thức
- Phương pháp may rủi hay được dùng trong Trí tuệ nhân tạo, nó cho phép
giải hai lớp bài toán khó: Thứ nhất là giải những bài toán chưa có thuật toán như bài toán về nhận biết, ra quyết định, về khái niệm hoá Thứ hai là giải các bài toán đã có thuật toán giải nhưng độ phức tạp lớn như bài toán chơi cờ
- Trí tuệ nhân tạo xét đến những thông tin không đầy đủ, không chính xác, có
vẻ mâu thuẫn Những thông tin có vẻ mâu thuẫn thường thấy trong y học, trong quản lý xí nghiệp…
- Quá trình tương tác người - máy gắn liền với các hoạt động tự nhận biết là hướng nghiên cứu quan trọng trong Trí tuệ nhân tạo
- Trí tuệ nhân tạo liên quan đến nhiều lĩnh vực như các kỹ thuật mới, logic học, khoa học nhận biết, ngôn ngữ học, khoa học về tổ chức, thần kinh học Trí tuệ nhân tạo còn nằm trong các lĩnh vực nghiên cứu nâng cao, đề án nghiên cứu quan trọng
1.1.5 Trí tuệ nhân tạo trong công nghệ nhận thức
Trang 8Suy Diễn
Dữ liệu
Sự kiện
Kết quả Diễn giải
Khi so sánh các phần mềm xử lý dữ liệu cổ điển như dữ liệu số, văn bản… với các phần mềm xử lý cả dữ liệu lẫn tri thức, người ta nhận thấy giữa hai cách xử lý này có những điểm khác nhau:
Tin học cổ điển đưa dữ liệu vào chương trình và thu nhận kết quả Chương trình trong trường hợp này được coi như là một hộp đen thực hiện các chức năng xử lý
dữ liệu theo thuật toán
Hình 1.1 Xử Lý dữ liệu trong tin học cổ điển
Với trí tuệ nhân tạo, các thông tin được nhập vào phần xử lý gồm dữ liệu, các sự kiện và các thông tin may rủi Phần xử lý dữ liệu trong mô hình tin học cổ điển được phát triển, cho phép xử lý các tri thức như mô tơ suy diễn trong hệ chuyên gia Các kết quả của hệ thống trí tuệ nhân tạo là các diễn giải, kết luận
Hình 1.2 Xử lý dữ liệu và tri thức trong trí tuệ nhân tạo
1.1.6 Thể hiện tri thức và các dạng tri thức
Trước khi xử lý các tri thức việc xác định các dạng thể hiện của tri thức là rất quan trọng Việc mô tả dữ liệu và tri thức phù hợp sẽ tạo điều kiện thuận lợi cho các thao tác xử lý
Một vài dạng thể hiện tri thức:
- Tri thức được thể hiện thông qua các đối tượng và sự kiện trên các đối tượng
- Các sự kiện dùng thể hiện tri thức Các sự kiện có thể mang yếu tố thời gian, tạo nên một chuỗi các sự kiện tuần tự
Thuật Toán
Trang 9- Thể hiện thơng tin qua các suy diễn Chẳng hạn sử dụng các luật suy diễn các sự kiện.
- Thể hiện tri thức thơng qua cách sử dụng tri thức, như cách thực hiện hành động Loại thể hiện này liên quan đến ngơn ngữ học
- Thể hiện tri thức và thơng tin về tri thức đĩ
Người ta thường phân loại tri thức ra làm các dạng như sau:
1.2 CÁC THÀNH PHẦN CƠ BẢN CỦA TRÍ TUỆ NHÂN TẠO
Hai thành phần cơ bản trong bất kỳ một hệ thống Trí tuệ nhân tạo là:
− Các phương pháp biểu diễn vấn đề, các phương pháp biểu diễn tri thức
− Các phương pháp tìm kiếm trong khơng gian bài tốn, các chiến lược suy diễnViệc lựa chọn một phương pháp biểu diễn tri thức sẽ quyết định phương pháp giải quyết vấn đề tương ứng cĩ thể áp dụng vì hai thành phần của hệ thống Trí tuệ nhân tạo tương hỗ với nhau rất chặt chẽ Chẳng hạn, nếu tri thức được biểu diễn
dưới dạng các cơng thức của logic vị từ, khi đĩ phương pháp hợp giải (resolution) của Robinson khá phù hợp và thường được dùng để suy diễn Ngược lại, nếu
phương pháp biểu diễn tri thức là mạng ngữ nghĩa thì tất nhiên là các tủ tục tìm kiếm sẽ hiệu quả hơn
Mặc dù các phương pháp biểu diễn tri thức sử dụng cú pháp chặt chẽ thường rất hiệu quả cho việc biểu diễn và điều khiển quá trình suy diễn, nhưng chúng lại
Trang 10khơng đủ mạnh để khắc phục bùng nổ tổ hợp khi giải những bài tốn khĩ Trong trường hợp đĩ, các thủ tục tìm kiếm heuristic dựa trên các tri thức đặc tả nảy sinh từ chính bản thân cấu trúc của bài tốn trở nên rất cần thiết.
Cĩ thể phân chia các hệ thống Trí tuệ nhân tạo như sau:
1 Các hệ tìm kiếm thơng tin, các hệ thống hỏi đáp thơng minh cho phép hội thoại giữa những người sử dụng khơng chuyên tin với cơ sở tri thức và cơ sở
dữ liệu thơng qua ngơn ngữ chuyên ngành gần với ngơn ngữ tự nhiên
2 Các hệ thống suy diễn – tính tốn, cho phép giải quyết những bài tốn phức tạp dựa trên các mơ hình tốn học và tri thức chuyên gia
3 Các hệ chuyên gia, cho phép sử dụng các tri thức chuyên gia trong các lĩnh vực chuyên sâu
1.3 MỘT SỐ VẤN ĐỀ QUAN TÂM VỀ TRÍ TUỆ NHÂN TẠO
Những vấn đề chung
Khoa học Trí tuệ nhân tạo liên quan đến cảm giác, tri giác và cả quá trình tư duy thơng qua các hành vi, giao tiếp Nĩ cĩ các định hướng nghiên cứu, ứng dụng sau: 1- Tìm và nghiên cứu các thủ tục giúp con người tiến hành các hoạt động sáng tạo Cơng việc sáng tạo được thực hiện trên mơ hình theo cấu trúc, chức năng và sử dụng cơng nghệ thơng tin
2- Dùng ngơn ngữ tự nhiên Trước hết là ngơn ngữ được dùng để thể hiện tri thức, tiếp thu và chuyển hố sang dạng cĩ thể xử lý được
3- Hình thức hố các khía cạnh, các hành vi liên quan đến Trí tuệ nhân tạo Do vậy cĩ thể xây dựng các bài tốn mang tính người và thơng minh
Các hoạt động lớn trong Trí tuệ nhân tạo bao gồm: chứng minh định lý, xử lý ngơn ngữ tự nhiên, hiểu tiếng nĩi, phân tích ảnh và hình, người máy và hệ chuyên gia Về cài đặt hệ thống, khuynh hướng hiện tại của Trí tuệ nhân tạo là cài đặt các
hệ Trí tuệ nhân tạo trong các hệ thống khác, đặc biệt là trong các hệ thống tin học
Trang 11Những vấn đề chưa được giải quyết trong Trí tuệ nhân tạo
Những thành tựu nghiên cứu và ứng dụng các kỹ thuật Trí tuệ nhân tạo đã khẳng định tính thực tiễn của các dự án xây dựng máy tính có khả năng suy nghĩ
Tuy vậy trong một số phạm vi, máy tính còn thua xa so với hoạt động của hệ thần kinh con người:
- Sự khác nhau trong hoạt động giữa máy tính và bộ não con người, điều này thể hiện ưu thế của máy tính so với bộ não người vì khả năng tính toán rất lớn (nhất là trong các chương trình xử lý dữ liệu lớn)
- Xử lý song song: mặc dù công nghệ điện tử hiện đại cho phép xây dựng các
bộ đa xử lý, song máy tính không thể hoạt động song song như bộ não con người được
- Khả năng diễn giải: con người có thể xem xét cùng một vấn đề theo những
phương pháp khác nhau, từ đó diễn giải theo cách dễ hiểu nhất Ngược lại,
sự linh hoạt này không thể mô phỏng được trong các hệ thống Trí tuệ nhân tạo
- Lôgic rời rạc và tính liên tục: một thách đố lớn với các hệ thống Trí tuệ
nhân tạo là khả năng kết hợp các phương pháp xử lý thông tin trong môi trường liên tục với các thao tác xử lý thông tin rời rạc
- Khả năng học: mặc dù hiện nay máy tính có nhiều tính năng cao nhưng
cũng không thể mô phỏng được hoàn toàn khả năng học giống bộ não con người
- Khả năng tự tổ chức: cho tới nay, người ta chưa thể tạo lập được các hệ
thống Trí tuệ nhân tạo có khả năng tự tổ chức, tự điều khiển hoạt động của
nó để thích nghi với môi trường
Trang 12Những vấn đề đặt ra trong tương lai của Trí tuệ nhân tạo.
Trong tương lai, những nghiên cứu và ứng dụng của Trí tuệ nhân tạo tập trung vào các vấn đề lớn sau:
Nghiên cứu và thử nghiệm các mạng Neuron, các hệ thống Trí tuệ nhân tạo mô
phỏng chức năng hoạt động của bộ não với các khả năng học, tự tổ chức, tự thích nghi, tổng quát hoá, xử lý song song, có khả năng diễn giải, xử lý thông tin liên tục
và rời rạc
Nghiên cứu và tạo lập các hệ thống có giao tiếp thân thiện giữa người và máy trên cơ sở nghiên cứu nhận thức máy, thu thập và xử lý tri thức, xử lý thông tin hình ảnh, tiếng nói
Nghiên cứu các phương pháp biểu diễn tri thức và các phương pháp suy diễn thông minh, các phương pháp giải quyết vấn đề đối với những bài toán phụ thuộc không gian, thời gian
Ngày nay, thế giới đang chuyển mình trong những nghiên cứu về Trí tuệ nhân tạo Chắc chắn rằng máy tính với trí tuệ như con người sẽ tác động mạnh đến cuộc sống
xã hội
Trang 13CHƯƠNG 2 BIỂU DIỄN KHÔNG GIAN TRẠNG THÁI CÁC CHIẾN LƯỢC TÌM KIẾM VÀ SUY DIỄN
2.1 KHÔNG GIAN BÀI TOÁN
2.1.1 Biểu diễn vấn đề trong khơng gian trạng thái
Dễ thấy rằng phương pháp trực tiếp nhất để tìm kiếm lời giải trong bài tốn trị chơi 15 số, 8 số… là thử những cách đi khác nhau cho đến khi nhận được trạng thái đích Thực chất của cách làm này gắn liền với chiến lược tìm kiếm thử và sai
Cĩ thể diễn đạt quá trình tìm kiếm này như sau: xuất phát từ trạng thái ban đầu xây dựng tất cả các trạng thái cĩ thể, sau đĩ xây dựng trạng thái tiếp theo, cứ tiếp tục như vậy cho tới khi nhận được trạng thái đích
Để diễn đạt phương pháp tìm kiếm như vậy người ta đưa ra một phương pháp
biểu diễn vấn đề phù hợp là đưa vào các khái niệm trạng thái (State) và tốn tử (Operator)
Phương pháp giải quyết vấn đề dựa trên khái niệm trạng thái và tốn tử được gọi
là cách tiếp cận giải quyết vấn đề nhờ khơng gian trạng thái
Muốn biểu diễn một vấn đề trong khơng gian trạng thái ta cần xác định các yếu
tố sau:
- Dạng mơ tả trạng thái và một tập hợp K tất cả các trạng thái cĩ thể cĩ của bài tốn
- Một tập hợp các tốn tử R hoặc các luật sản xuất Trong đĩ mỗi tốn tử mơ
tả một hành động hoặc một phép biến đổi cĩ thể đưa một trạng thái tới một trạng thái khác Tập hợp tất cả các trạng thái cĩ thể đạt tới từ một trạng thái ban đầu bằng cách áp dụng một dãy tốn tử lập thành khơng gian trạng thái của vấn đề
Trang 14+ Ta sẽ ký hiệu không gian trạng thái là U, trạng thái ban đầu là uo (uo∈ U) Mỗi toán tử Ri có thể xem như là một ánh xạ R: U → U Nói chung R là ánh xạ không xác định khắp nơi trên U
- Trạng thái ban đầu uo
- Một tập hợp T các trạng thái kết thúc (trạng thái đích) T là tập con của không gian U
Khi biểu diễn một vấn đề thông qua các trạng thái và các toán tử thì việc tìm nghiệm của bài toán được quy về việc tìm đường đi từ trạng thái ban đầu đến trạng thái đích
Không gian trạng thái là tập tất cả các trạng thái có thể có và tập các toán tử của bài toán
Không gian trạng thái là một bộ bốn, ký hiệu: U= (K, uo, T, R) Trong đó,
K: tập tất cả các trạng thái có thể có của bài toán
uo: trạng thái đầu
T: tập các trạng thái đích
R: tập các toán tử
Một cách biểu diễn trực quan đối với không gian trạng thái và toán tử là sử dụng
đồ thị định hướng Trong đồ thị này các đỉnh tương ứng với các trạng thái còn các cung tương ứng với các toán tử Nếu có toán tử Ri biến đổi từ trạng thái u thành trạng thái v thì có cung gán nhãn Ri đi từ đỉnh u tới đỉnh v Khi đó một đường đi
trong không gian trạng thái sẽ là một đường đi trong đồ thị này
Ví dụ 1 Bài toán 8 số
Phát biểu bài toán: có 3x3 ô và 8 quân mang số hiệu từ 1 đến 8 được xếp vào 8
ô, còn lại 1 ô trống Trong trò chơi này ta có thể chuyển dịch các quân ở cạnh ô trống tới ô trống đó Vấn đề đặt ra là ta phải tìm ra một dãy các chuyển dịch để biến đổi từ trạng thái ban đầu sang trạng thái kết thúc (như hình vẽ trên)
Trang 15Hình 2.1 Trạng thái ban đầu và trạng thái kết thúc của bài toán 8 số
Tương ứng các quy tắc chuyển dịch các quân ta có 4 toán tử: up (đẩy quân lên trên), down (đẩy quân xuống dưới), left (đẩy quân sang trái), right (đẩy quân sang
phải) Rõ ràng là các toán tử này chỉ là các toán tử bộ phận; chẳng hạn, từ trạng thái
ban đầu ta chỉ có thể áp dụng các toán tử down, left, right Không gian trạng thái
cho bài toán này có thể được biểu diễn như hình vẽ sau:
Hình 2.2 Đồ thị biểu diễn không gian trạng thái của bài toán 8 số
Ví dụ 2 Bài toán người tu sĩ và kẻ ăn thịt người
Trang 16Có 3 tu sĩ và 3 kẻ ăn thịt người đứng ở bờ tả ngạn một con sông Họ đều muốn sang bờ bên kia Các tu sĩ không biết chắc chắn 3 kẻ ăn thịt người kia muốn thêm gì nữa nên họ muốn bố trí đi thuyền sang kia sông sao cho số tu sĩ còn lại ở mỗi bờ sông không bao giờ nhỏ hơn số kẻ ăn thịt người Biết rằng mỗi chuyến đi chỉ có thể chở được thêm 2 người Làm thế nào để mỗi người sang được bờ bên kia mà không
có một tu sĩ nào bị ăn thịt
Bài giải: Đương nhiên trong bài toán này các toán tử tương ứng với các hành
động chở 1 hoặc 2 người qua sông Cần lưu ý rằng khi hành động xảy ra (lúc thuyền đang qua sông) thì ở mỗi bờ sông, số kẻ ăn thịt người không được nhiều hơn
số tu sĩ Tiếp theo ta cần quyết định dạng mô tả là trạng thái của vấn đề Ở đây ta không cần phân biệt những kẻ ăn thịt người và các tu sĩ mà chỉ quan tâm số lượng của họ ở bên bờ sông là quan trọng
Để biểu diễn các trạng thái ta sử dụng bộ ba (AAA, BBB, K) Trong đó: A là tu
sĩ, B là kẻ ăn thịt người, K là thuyền Như vậy, không gian trạng thái cho bài toán này được xác định như sau:
Trạng thái ban đầu là (AAA, BBB, K): tất cả người và thuyền đều ở bờ tả ngạn Trạng thái kết thúc là ( _,_,_ ): tất cả mọi người và thuyền đều ở bờ hữu ngạnCác toán tử: có năm toán tử tương ứng với hành động thuyền chở qua sông 1 tu
sĩ hoặc 1 kẻ ăn thịt người, hoặc 2 tu sĩ, hoặc 2 kẻ ăn thịt người, hoặc 1 tu sĩ và 1 kẻ
ăn thịt người
Bờ tả
Bờ hữu Thuyền
Hình 2.3 Hình minh hoạ bài toán người tu sĩ và kẻ ăn thịt người
Trang 17Dãy các trạng thái của bài toán tu sĩ và kẻ ăn thịt người (Từ trạng thái ban đầu đến trạng thái đích).
STT Hành động Bờ tả ngạn
Bên này sông
Bờ hữu ngạn Bên kia sông
0 Trạng thái ban đầu (AAA,BBB,K) ( _,_,_ )
1 Hai kẻ ăn thịt người qua bên kia sông (AAA,B,_ ) ( _, BB,K)
2 Một kẻ ăn thịt người quay lại bên này sông (AAA,BB,K) ( _,B,K)
3 Hai kẻ ăn thịt người qua bên kia sông (AAA,_,_ ) ( _,BBB,K)
4 Một kẻ ăn thịt người quay lại bên này sông (AAA,B,K) ( _,BB,_)
5 Hai tu sĩ sang bên kia sông (A,B,_ ) (AA,BB,K)
6 Một tu sĩ và 1 kẻ ăn thịt quay lại bên này sông (AA,BB,K) (A,B,_ )
7 Hai tu sĩ sang bên kia sông ( _,BB,_ ) (AAA,B,K)
8 Một kẻ ăn thịt người quay lại bên này sông ( _,BBB,K) (AAA,_,_ )
9 Hai kẻ ăn thịt người sang bên kia sông ( _,B,_ ) (AAA,BB,K)
10 Một kẻ ăn thịt quay lại bên này sông ( _,BB,K) (AAA,B,_ )
11 Hai kẻ ăn thịt người sang bên kia sông ( _,_,_ ) (AAA,BBB,K)
Trong các ví dụ trên việc tìm ra 1 biểu diễn thích hợp để mô tả các trạng thái của vấn đề là khá dễ dàng và tự nhiên Song trong nhiều vấn đề việc tìm được biểu diễn thích hợp cho các trạng thái của vấn đề là hoàn toàn không đơn giản Việc tìm
ra dạng biểu diễn tốt cho các trạng thái đóng vai trò hết sức quan trọng trong quá trình giải quyết một vấn đề Có thể nói rằng, nếu ta tìm được dạng biểu diễn tốt cho các trạng thái của vấn đề thì vấn đề hầu như đã được giải quyết
2.1.2 Quy bài toán về các bài toán con
Trong đời sống hàng ngày cũng như trong khoa học kỹ thuật mỗi khi gặp một vấn đề cần giải quyết ta vẫn thường cố gắng tìm cách đưa nó về các vấn đề đơn giản hơn Quy vấn đề về các vấn đề con (còn gọi là chia nhỏ vấn đề) là một phương pháp được sử dụng rộng rãi nhất để giải quyết các vấn đề
Trang 18Ví dụ 1 Xét bài toán tính tích phân. x(lnx x2)dx
∫ + Thông thường để tính tích
phân bất định, chúng ta thường sử dụng các quy tắc tính tích phân: tích phân của tổng, quy tắc tích phân từng phần hay các phép biến đổi v.v… để đưa tích phân cần tính về tích phân của các hàm số sơ cấp mà chúng ta đã biết cách tính Đối với tích phân trên, ta có thể tách bài toán tích phân ban đầu thành các bài toán tích phân đơn giản hơn, bằng cách áp dụng quy tắc tích phân của tổng ta đưa về hai tích phân
∫ ln về tích phân ∫x dx Quá trình trên có thể biểu diễn bởi đồ thị trong hình sau
Hình 2.4 Quy một tích phân về các tích phân cơ bản
Trong bài toán tích phân, các tích phân cơ bản là các trạng thái kết thúc Các tích phân ∫x dxvà ∫x3dx
là các tích phân cơ bản đã có trong bảng tích phân có thể giải một cách dễ dàng Kết hợp các kết quả của các tích phân cơ bản ta nhận được kết quả của tích phân đã cho
Ta có thể nói rằng lời giải của tất cả các bài toán con này đảm bảo xác định lời giải của bài toán ban đầu Mỗi bài toán con này có thể được giải quyết theo một phương pháp nào đó có thể là sử dụng không gian trạng thái hoặc phân thành các bài toán con khác…Tiếp tục quá trình phân hoạch các bái toán con khác nhận được
dx x x
x (ln 2)
dx x x
dx x
∫
Trang 19thành các bài toán nhỏ hơn cuối cùng đi tới những bài toán sơ cấp có thể giải trực tiếp.
Người ta gọi phương pháp giải quyết vấn đề trên cơ sở tách bài toán con là cách tiếp cận dựa trên việc quy bài toán về các bài toán con
Cách tiếp cận sử dụng không gian trạng thái có thể xem như là một trường hợp đặc biệt của cách tiếp cận quy bài toán về các bài toán con
Phương pháp thử và sai đóng vai trò rất quan trọng trong cách tiếp cận dựa vào quy bài toán về các bài toán con Ở mỗi giai đoạn trong phương pháp này có thể xuất hiện một vài tập các bài toán con được tách ra trên cơ sở bài toán ban đầu Vì một vài tập bài toán con trong số đó có thể không đưa tới lời giải trọn vẹn đối với bài toán đã đặt ra nên thông thường để giải quyết bài toán ban đầu người ta cần phải đưa ra những phương pháp tìm kiếm đặc biệt trong không gian tập các bài toán con Cách tiếp cận này dẫn đến phương pháp biểu diễn không gian bài toán nhờ đồ thị VÀ/HOẶC
Ví dụ 2 Bài toán tìm đường đi trên bản đồ giao thông
Giả sử ta có bản đồ giao thông trong một vùng lãnh thổ Giả sử cần tìm đường
đi từ thành phố A tới thành phố B Có con sông chảy từ qua 2 thành phố E và G có cầu qua sông ở mỗi thành phố đó Mọi đường đi từ A đến B chỉ có thể qua E hoặc
G
Hình 2.5 Bản đồ giao thông trong bài toán tìm đường đi từ A đến B
Trang 20Như vậy bài toán tìm đường đi từ A đến B được quy về các bài toán con sau:
1 Bài toán 1: Bài toán tìm đường đi từ A đến B qua E (hoặc)
2 Bài toán 2: Bài toán tìm đường đi từ E đến B qua G
Mỗi bài toán con trên lại có thể phân nhỏ thành các bài toán nhỏ hơn
Bài toán 1: Tìm đường đi từ A đến B qua E được quy về hai bài toán :
- Bài toán tìm đường đi từ A đến E (và)
- Bài toán tìm đường đi từ E đến B
Bài toán 2: Tìm đường đi từ A đến B qua G được quy về hai bài toán
- Bài toán tìm đường đi từ A đến G (và)
- Bài toán tìm đường đi từ G đến B
Quá trình rút gọn vấn đề như trên có thể biểu diễn dưới dạng đồ thị VÀ/HOẶC
Ở đây mỗi bài toán tìm đường đi từ một thành phố tới một thành phố khác ứng với một trạng thái Các trạng thái kết thúc là các trạng thái ứng với các bài toán tìm đường đi
Hình 2.6 Đồ thị VÀ/HOẶC của bài toán tìm đường đi từ A đến B
2.1.3 Biểu diễn vấn đề trong logic hình thức
Để giải quyết một vấn đề nào đó thông thường người ta tiến hành phân tích logic để thu gọn quá trình tìm kiếm Cũng nhờ phân tích logic mà đôi khi ta có thể chứng tỏ rằng một bài toán nào đó không thể giải được
Trang 21Các kết luận logic cũng rất cần ngay cả trong cách tiếp cận dựa trên không gian trạng thái và quy bài toán về bài toán con Chẳng hạn, trong các phương pháp tiếp cận dựa trên không gian trạng thái, các kết luận logic được dùng để kiểm tra xem một trạng thái nào đó có phải là trạng thái đích hay không Ngoài ra, những lập luận logic cũng được dùng để xác định toán tử nào có thể áp dụng được đối với trạng thái đã cho nào đó Trong cách tiếp cận dựa trên việc quy bài toán về bài toán con, việc chứng minh tương tự cho phép tránh những uổng công khi giải những bài toán không giải được.
Ngoài ra logic hình thức có thể được sử dụng để giải quyết những bài toán chứng minh logic, chẳng hạn như chứng minh một khẳng định nào đó là đúng khi biết những tiền đề ban đầu và các luật suy diễn Đây là một trong những dạng giải quyết vấn đề quen thuộc nhất được các chuyên gia trí tuệ nhân tạo quan tâm nghiên cứu ngay từ đầu
Trong nhiều trường hợp các vấn đề có thể được biểu diễn trong các hệ logic, chẳng hạn logic vị từ cấp 1 Sau đó vấn đề được giải quyết bằng phương pháp chứng minh định lý Việc chứng minh được tiến hành bằng cách sử dụng các luật suy diễn trong hệ logic
Có những vấn đề không thể phát biểu được trong logic vị từ cấp 1 Trong thời gian gần đây người ta đã đưa ra nhiều hệ logic mới: logic mờ, logic xác suất, logic không đơn điệu…
Ví dụ: Ta có thể dùng các biểu thức logic để mô tả mối quan hệ của các thành
phần trong 1 tam giác như sau:
1) a ∧ b ∧ c → p
2) b ∧ p ∧ c → a
3) a ∧ p ∧ c → b
4) a ∧ b ∧ p → c
Trang 22(Trong đó: a, b, c là ký hiệu các cạnh, A, B, C là ký hiệu các góc tương ứng, p
là ký hiệu nửa chu vi, và hc là đường cao xuất phát từ đỉnh C của tam giác).
Giả sử ta biết các cạnh a, b và một góc C Ta có thể có kết luận về đường cao hc không?
2.1.4 Một số ví dụ về không gian bài toán
Ví dụ 1: Bài toán tháp Hà Nội
Cho 3 cọc 1, 2, 3 Ở cọc 1 ban đầu có n đĩa sắp xếp theo thứ tự to dần từ trên xuống dưới Hãy dịch chuyển n đĩa (n =3 ) đó sang cọc 3 sao cho:
- Mỗi lần chuyển chỉ làm với 1 đĩa
- Trong mỗi cọc không cho phép đĩa to nằm trên đĩa bé
Hình 2.7 Bài toán Tháp Hà Nội với n = 3 Bài giải: Có thể chọn mô tả trạng thái của bài toán tháp Hà Nội với n = 3 là bộ
ba (i, j, k) Mỗi trạng thái là một bộ ba (i, j, k)
Ở đây: i có nghĩa là đĩa A ở cọc i
j có nghĩa là đĩa B ở cọc j
Trang 23R = Tập các khả năng có thể chuyển đĩa.
Có các trường hợp như sau:
- Ba đĩa cùng nằm trên một cọc: (i, i, i)
- Hai đĩa cùng nằm trên một cọc: (i, i, j), (i, j, i), (j, i, i)
- Ba đĩa nằm trên ba cọc phân biệt: (i, j, k)
(i, i, i) (i, i, j)
(i, i, k)
(i, i, j) (i, i, k)
(i, k, j)(i, i, i)
(i, j, i) (i, j, k)
(i, j, j)(i, k, i)
(j, i, i) (j, i, j)
(j, i, k)(k, i, i)
(i, j, k) (i, i, k)
(i, j, j)(i, j, i)
Trang 24Hình 2.8 Đồ thị bài toán tháp Hà Nội với n = 3
Ví dụ 2: Bài toán rót nước
Có hai can đựng nước, một can loại 4 lít và một can loại 3 lít Hãy xác định các thao tác rót nước để được đúng 2 lít nước trong can 4 lít
Bài giải: Giả sử trạng thái của bài toán được mô tả là tập (X,Y) tương ứng với X
và Y là số lít nước trong can 4 lít và 3 lít
Không gian trạng thái của bài toán được xác đinh như sau: U = {K, uo, T, R }
// Tập các trạng thái có thể có (dạng tổng quát của 1 trạng thái )
K = { (x,y) / 0 <= x <= m; 0 <= y <= n }
uo = (0,0) // Trạng thái đầu: hai bình đều rỗng
T = (2,n) // Trạng thái đích: cần có đúng 2 lít nước trong can 4 lít, n là
số không xác định trong can 3 lít
R = Tập các thao tác đổ đầy, đổ ra hoặc đổ sang bình khác thực hiện trên 1 bình.Các luật tương ứng với các thao tác rót nước
R1: (X, Y/ X≤4) →(4, Y) // Rót đầy nước vào can 4 lít
R2: (X, Y/ Y≤3) →(X, 3) // Rót đầy nước vào can 3 lít
R3: (X, Y/ X+d≤4; X- d ≤3)→(X+d, Y-d) // Rót nước từ can 3 lít sang can 4 lít
R4: (X, Y) →(X-d, Y+d)
Trang 25R5: (X, Y/ X>0) →(0, Y)
R6 : (X,Y/ Y>0) →(X, 0)
R7 : (X, Y/ X+Y≤4 và Y>0) → (X+Y, 0)
R8 : (X, Y/ X+Y≤3 và X>0) → (0, X+Y)
R9 : (X, Y/ X+Y≥4 và Y>0) →(4, Y-(4-X)) // Rót đầy vào can 4 lít từ can 3 lít
R10: (X, Y/ X+Y≥3 và X>0) →(X-(3-Y), 3)// Rót đầy vào can 3 lít từ can 4
lít.
Vậy muốn rót được 2 lít nước vào can 4 lít thì ta phải thực hiện qua các bước:
(0, 0) →R2 (0, 3) →R7 (3, 0) →R2 (3, 3) →R9 (4, 2) →R5 (0, 2)
Ví dụ 3: Bài toán con khỉ và nải chuối
Con khỉ bị nhốt trong phòng, có nải chuối treo trên trần nhà Con khỉ không thể với để lấy nải chuối được Tuy vậy, con khỉ có thể dùng cái ghế và chiếc gậy để khều nải chuối Giả định rằng con khỉ biết di chuyển chiếc ghế, trèo lên xuống một vật, cầm một vật, khều nải chuối Tìm ra dãy các hành động tốt nhất để con khỉ lấy được nải chuối?
Bài giải
Cần phải biểu diễn trạng thái của vấn đề này như thế nào?
Gọi x = (x1, x2) là vị trí con khỉ
Gọi y = (y1,y2) là vị trí của chiếc bàn
Một biến c nhận giá trị 1 hoặc 0 tuỳ thuộc con khỉ ở trên bàn hay trên sàn nhà.Một biến d nhận giá trị 1 hoặc 0
• d = 1 nếu con khỉ với trí tới nải chuối (giả thiết khi con khỉ đứng trên bàn đặt dưới nải chuối, nó với tới nải chuối)
• d = 0 nếu ngược lại
Trang 26Giả sử ban đầu vị trí con khỉ là a, của bàn là b, vị trí nải chuối là e Như vậy một trạng thái của vấn đề được biểu diễn bởi danh sách (x, c, y, d)
• Trạng thái ban đầu (a, 0, b, 0)
• Trạng thái kết thúc (e, 1, e, 1)
Con khỉ thực hiện 5 hành động sau đây:
• Goto(u) : Đi tới vị trí u
• Push(v) : Con khỉ đẩy chiếc bàn đến vị trí v
• Climbup : Con khỉ leo lên bàn
• Descend : Con khỉ tụt xuống khỏi bàn
• Get : Con khỉ tóm lấy nải chuối
Các hành động của con khỉ tương ứng với các phép biến đổi (toán tử) trạng thái sau đây
Goto (u) (x, 0, y, 0) (u, 0, y, 0)
Push (v)(y, 0, y, 0) (v, 0, v, 0)
Climbup(y, 0, y, 0) (y, 1, y, 0)
Descend(y, 1, y, 0) (y, 0, y, 0)
Get(e, 1, e, 0) (e, 1, e, 1)
Trang 27Khơng gian trạng thái của vấn đề được biểu diễn bởi đồ thị sau
Hình 2.9 Đồ thị khơng gian trạng thái của bài tốn con khỉ và nải chuối
Chú ý: Việc tìm ra một biểu diễn thích hợp để mơ tả trạng thái vấn đề đĩng vai trị hết sức quan trọng khi giải quyết một vấn đề Một biểu diễn được xem là tốt nếu
nĩ thu hẹp được khơng gian trạng thái, các phép biến đổi trạng thái dễ thực hiện
2.2 CÁC KỸ THUẬT SUY DIỄN
2.2.1 Tổng quan
Mục đích của quá trình tìm kiếm là phát hiện đường đi từ trạng thái (cấu hình) xuất phát đến trạng thái đích Cĩ hai chiến lược tìm kiếm trong khơng gian trạng
Trang 28thái bài toán đó là tìm kiếm bắt đầu từ dữ liệu ban đầu về đích và tìm kiếm từ dữ liệu đích lùi về dữ liệu ban đầu.
Tìm kiếm bắt đầu từ dữ liệu ban đầu về đích được gọi là chiến lược tìm kiếm suy diễn tiến và tìm kiếm từ đích lùi về dữ liệu ban đầu được gọi là chiến lược tìm kiếm suy diễn lùi
- Modus ponens: A, A →B
Bnghĩa là nếu A đúng và A →B đúng thì B cũng đúng
- Modus tollens B, A →B
A
nghĩa là nếu B sai và biết rằng A →B đúng thì A cũng sai
Trong quá trình suy diễn, ta cần quan tâm đến các vấn đề sau:
- Xây dựng tập luật, câu hỏi nào được chọn để người sử dụng trả lời
- Chọn quá trình tìm kiếm như thế nào
- Thông tin nhận được có ảnh hưởng đến quá trình tìm kiếm không
Bài toán: Cho tập sự kiện F= {f1, f2, ,fn} và tập luật R= {r1, r2, ,rm} Chứng minh tập kết luận G đúng
2.2.2 Suy diễn tiến (forward chaining - forward reasoning)
Trang 29Tư tưởng cơ bản của suy diễn tiến là áp dụng luật suy diễn Modus Ponens tổng quát Suy diễn tiến là quá trình suy diễn bắt đầu từ tập sự kiện đã biết, rút ra những sự kiện mới và cứ như vậy cho đến khi có được sự kiện cần chứng minh hoặc không có luật nào sinh ra các sự kiện mới (tập sự kiện đúng là cực đại).
Phương pháp
GỌi T là tập các sự kiện tại thời điểm đang xét (khởi tạo tập T=F: tập sự kiện đúng ban đầu)
Xét các luật ri có dạng:p1 ∧ p2 ∧ ∧ pn → q và pj ∈ T ∀j =1,n nghĩa là left (ri)
∈ T thì T= T+ right (ri) Quá trình lặp lại cho đến khi G ⊂ T hoặc không có luật nào sinh ra thêm sự kiện mới
If G ⊂ T then write (“thành công”)
Else write (“không thành công”);
End;
Ví dụ: Cho trước tập sự kiện F={a,b} Sử dụng các luật:
Trang 30- Trong mỗi bước của thủ tục, người ta xét một luật trong tập luật So sánh mỗi điều kiện (ở vế trái) của tập luật với các sự kiện trong cơ sở sự kiện, nếu tất cả các điều kiện của luật được thỏa mãn thì sự kiện trong phần kết luận được xem là sự kiện được suy ra Nếu sự kiện này là sự kiện mới (không có trong bộ nhớ làm việc) thì nó được đưa vào bộ nhớ làm việc Quá trình trên cứ lặp lại cho đến khi nào không có luật nào sinh ra sự kiện mới.
Trang 31- Quá trình suy diễn tiến không định hướng tới giải quyết một vấn đề nào cả, không hướng tới tìm ra câu trả lời cho một câu hỏi nào cả Suy diễn tiến chỉ là quá trình suy ra các sự kiện mới từ các sự kiện có trong bộ nhớ làm việc.
2.2.3 Suy diễn lùi (backward chaining - backward reason)
Là quá trình xuất phát từ sự kiện cần chứng minh và thay vào đó là những sự kiện ở vế trái của 1 luật có vế phải là sự kiện cần chứng minh Quá trình này được thực hiện cho đến khi đưa về các sự kiện là tập sự kiện con của tập sự kiện giả thiết.(Nghĩa là: để đưa ra kết luận b, ta thử tìm tất cả các luật có dạng: a1∧ ∧ an→
b, để có b, phải đưa ra các kết luận a1, ,an Quá trình xác định ai cũng tương tự như đối với b, nếu đến một lúc nào đó phát hiện được rằng có một ai nào đó không dẫn xuất được từ các giả thiết thì quay lui sang các luật sản xuất khác sinh ra b có dạng
b1∧ ∧bm → b Ngược lại, nếu mọi ai đều dẫn xuất được giả thiết thì quá trình dẫn xuất ra b là đúng)
Trang 322.2.4 Ưu nhược đểm, đánh giá
Suy diễn tiến:
Trang 33− Hệ thống có thể hỏi cả câu hỏi không liên quan Có thể các câu trả lời cũng quan trọng nhưng làm người dùng lúng túng khi phải trả lời các câu chẳng dính đến chủ đề.
Suy diễn lùi:
Ưu điểm:
− Phù hợp với bài toán đưa ra giả thuyết và liệu giả thuyết đó có đúng hay không? Tập trung vào đích đã cho Nó tạo ra một loạt câu hỏi chỉ liên quan đến vấn đề đang xét, thuận tiện đối với người dùng
− Khi suy diễn một điều gì từ thông tin đã biết, nó chỉ tìm trên một phần của cơ sở tri thức thích đáng đối với bài toán đang xét
− Suy diễn lùi được đánh giá cao trong các bài toán như là chẩn đoán, dự đoán và tìm lỗi
N
hược điểm :
− Nhược điểm cơ bản của loại suy diễn này là nó thường tiếp theo dòng suy diễn thay vì đúng ra phải dừng ở đó mà sang nhánh khác
Như vậy, dựa vào các ưu và nhược điểm của từng loại suy diễn mà ta nên chọn
kỹ thuật suy diễn nào để áp dụng vào bài toán Trước tiên, ta xem xét các chuyên gia giải nó như thế nào? Nếu cần thu thập dữ liệu rồi mới quyết định suy diễn cái gì thì ta chọn suy diễn tiến Còn nếu đã có giả thuyết và cần chứng minh cái đích này thì ta dùng suy diễn lùi
Ví dụ: Một bác sĩ có thể hiểu hàng trăm vấn đề có thể xảy ra với một cá nhân,
nhưng vẫn phải tìm hiểu hiện trạng của bệnh nhân, lúc đó cần suy diễn tiến Nguợc lại bác sĩ hầu như thấy được bệnh (ví dụ như viêm họng) thì ông ta dùng suy diễn lùi
2.2.5 Kết hợp suy diễn tiến và suy diễn lùi
Nhiều hệ thống trí tuệ nhân tạo dùng cả suy diễn tiến lẫn suy diễn lùi Người thiết kế kết hợp kỹ thuật suy diễn tiến và suy diễn lùi theo một trong hai phương pháp Phương
Trang 34pháp thứ nhất là dùng các hệ thống phân tách, mỗi hệ thống có một kỹ thuật suy diễn riêng Phương pháp thứ hai sử dụng chức năng đặc biệt gọi là ma thuật Ma thuật này hoạt động theo suy diễn tiến.
2.2.5.1 Các hệ thống phân tách
Các bài toán lớn có thể được chia thành nhiều bài toán con Đối với vấn đề phức tạp người thiết kế hệ thống Trí tuệ nhân tạo thường chia vấn đề thành các nhiệm vụ nhỏ rồi thiết kế bài toán con ứng với mỗi nhiệm vụ Ưu điểm của tiếp cận này là mỗi hệ thống có
kỹ thuật suy diễn riêng
2.2.5.2 Ma thuật
Thiết kế dùng suy diễn tiến và suy diễn lùi có dùng các luật ma thuật
Định nghĩa – Ma thuật (Demon rules): Luật được cháy ngay khi giả thiết khớp với các nội dung của bộ nhớ làm việc
Luật ma thuật có trong các luật suy diễn lùi nhưng nó không áp dụng trong quá trình suy diễn lùi Hơn thế, nó còn chưa hoạt động ngay cả khi thông tin trong bộ nhớ đã đủ điều kiện khớp với giả thiết của nó Khi dùng ma thuật, các luật này cháy hết và bổ sung kết luận vào bộ nhớ Những thông tin mới này có thể hỗ trợ các luật suy diễn lùi, hay có thể kích hoạt các ma thuật khác, tạo nên dãy các suy diễn tiến Một luật ma thuật cho phép
hệ thống tự biến đổi, đặc biệt đối với các ứng dụng cần thích nghi với hoàn cảnh mới
Thí dụ
Dùng luật điều khiển trong việc chẩn đoán các vấn đề của nhà máy Các luật này được coi như là luật ma thuật để thay thế việc kiểm tra tuần tự Giả sử có vài chiếc máy làm việc cùng nhau để sản xuất ra vài sản phẩm Một máy trục trặc, dây chuyền sản xuất cần dừng trong lúc cần thực hiện việc chẩn đoán máy móc Giả sử hệ thống dùng suy diễn lùi
Trong lúc chẩn đoán, hệ thống cần thực hiện vài bước thao tác như ngắt điện, giảm áp suất…Nó cũng cần thu thập thông tin để xác định nguyên nhân hỏng hóc và làm các thao tác khắc phục Đương nhiên có thể có sự kiện bất thường, sự kiện làm ngắt quá trình chẩn
Trang 35đốn bình thường của hệ thống để tới ngay sự kiện đĩ Khả năng này ứng với luật ma thuật nhúng trong hệ thống chẩn đốn:
Luật ma thuật 1 Vấn đề áp suất
THEN Trả lời = Sơ tán
Cĩ thể dùng luật ma thuật tương tự như luật 2 để phân loại các tình tạng trong
nhà máy theo bình thường, báo động…Luật ma thuật 3 cho câu trả lời thích hợp
cho hồn cảnh khẩn cấp
Thí dụ này mơ tả cách nhúng luật ma thuật vào hệ thống suy diễn lùi, đáp ứng các điều kiện thay đổi Người ta cĩ thể dùng nĩ để làm thích nghi việc suy lý của hệ thống với các sự kiện hiện tại Tiếp cận này cĩ ý nghĩa về thời gian thực, được gọi
là suy diễn theo sự kiện.
2.3 CÁC GIẢI THUẬT TÌM KIẾM
Để giải bài tốn sử dụng chiến lược tìm kiếm suy diễn tiến hoặc chiến lược suy diễn lùi, cơng việc tìm kiếm là phải tìm một đường từ trạng thái đầu đến trạng thái đích thơng qua khơng gian trạng thái của bài tốn Cơng cụ thực hiện việc tìm kiếm này đĩ là giải thuật Quá trình tìm kiếm được xem như cây tìm kiếm thơng qua khơng gian trạng thái của bài tốn Giải thuật bắt đầu từ nút gốc của cây tìm kiếm
Trang 36thăm dò qua các nút khác của cây trong không gian trạng thái của bài toán Nếu giải thuật tìm thấy đích thì giải thuật thiết lập đường lời giải bắt đầu từ nút gốc thông qua các nút liên kết đến nút đích của cây Cấu trúc dữ liệu cho cây tìm kiếm ở đây
là ta giả sử nút là một cấu trúc dữ liệu với 5 thành phần như sau
− Trạng thái trong không gian trạng thái tương ứng với nút của cây
− Nút trong cây tìm kiếm mà đã phát sinh ra nút mới thì nút này được gọi là nút cha và nút mới được gọi là nút con
− Luật hay lệnh hợp lệ được áp dụng để phát sinh ra nút
− Số lượng của các nút trên đường từ nút gốc của cây đến một nút được gọi là độ sâu của nút đó
− Giá chi phí của đường là tính từ nút gốc của cây đến nút đó
Các loại chiến lược tìm kiếm cơ bản đó là: Chiến lược tìm kiếm mù, tìm kiếm kinh nghiệm, tìm kiếm tối ưu, tìm kiếm có đối thủ, tìm kiếm lai
2.3.1 Các chiến lược tìm kiếm mù
2.3.1.1 Tìm kiếm theo chiều rộng
Kỹ thuật tìm kiếm rộng: Chiến lược tìm kiếm theo chiều rộng là chiến lược tìm
kiếm mức theo mức của cây Kỹ thuật tìm kiếm rộng bắt đầu từ nút gốc của cây tìm kiếm qua tất cả các nút ở mức kế theo, nếu nó chưa tìm thấy thì nó tiếp tục tìm kiếm qua tất cả các nút ở 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 đường lời giải bắt đầu từ nút gốc thông qua các nút liên kết đến nút đích
Giải thuật tìm kiếm rộng: 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 CLOSE, trong đó danh sách OPEN chứa các trạng thái đang chờ được duyệt và danh sách CLOSE chứa các trạng thái đã được duyệt qua Giải thuật được mô tả như sau:
Trang 37Chú ý Thủ tục Append(OPEN,n0) bổ sung một phần tử vào queue OPEN.
Hàm Take(OPEN) lấy một phần tử trong queue OPEN
Nếu G là cây thì không cần dùng danh sách CLOSE
Đánh giá độ phức tạp của giải thuật tìm kiếm rộng.
Giả sử rằng, mỗi trạng thái khi được xét sẽ sinh ra k trạng thái kế tiếp Khi đó ta gọi k
là nhân tố nhánh Nếu bài toán tìm được nghiệm theo phương pháp tìm kiếm rộng có độ dài d Như vậy, đỉnh đích sẽ nằm ở mức d+1, do đó số đỉnh cần xét lớn nhất là:
1 + k + k2 + + kd
Trang 38Như vậy độ phức tạp thời gian của giải thuật là O(kd) Độ phức tạp không gian cũng là O(kd), vì tất cả các đỉnh của cây tìm kiếm ở mức d+1 đều phải lưu vào danh sách.
Ưu điểm.
− Kỹ thuật tìm kiếm rộng là kỹ thuật vét cạn không gian trạng thái bài toán vì vậy
sẽ tìm được lời giải nếu có
− Đường đi tìm được đi qua ít đỉnh nhất
Nhược điểm.
− Tìm kiếm lời giải theo thuật toán đã định trước, do vậy tìm kiếm một cách máy móc; khi không có thông tin hỗ trợ cho quá trình tìm kiếm, không nhận ra ngay lời giải
− Không phù hợp với không gian bài toán kích thước lớn Đối với loại bài toán này, phương pháp tìm rộng đối mặt với các nhu cầu:
Ví dụ 1 Bài toán đong nước với m = 5, n= 4, k =3
Mức 1: Trạng thái đầu (0;0) Mức 2: Các trạng thái (5;0), (0;4),
Trang 39(4;4) (5;4) (0;4) (4;0) (5;3) (0;1) (5;3) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0)
(4;4)(0;1) (5;1) (0;4) (0;0) (1;0) (5;3) (5;1) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0)
(0;1)
(5;3)
2.3.1.2 Tìm kiếm theo chiều sâu
Kỹ thuật tìm kiếm sâu: Chiến lược tìm kiếm theo chiều sâu là chiến lược tìm
kiếm nhánh theo nhánh của cây Chiến lược tìm kiếm sâu bắt đầu từ nút gốc tìm kiếm đến nút con, cháu, chắt của gốc Nếu tìm thấy đích thì dừng thủ tục tìm kiếm
và thiết lập đường lời giải từ nút gốc thông qua các nút liên kết đến nút đích; mặt
Trang 40khác nếu tìm thấy đường cụt thì nó lùi về tìm kiếm nút anh em, hành động này gọi
là quay lui
Thuật toán tìm kiếm theo chiều sâu được hình dung như việc khảo sát một cây bắt đầu từ gốc đi theo mọi cành có thể được, khi gặp cành cụt thì quay lại xét cành chưa đi qua
− Ở bước tổng quát, giả sử đang xét đỉnh i, khi đó các đỉnh kề với i có các trường hợp:
+ Nếu tồn tại đỉnh j kề i chưa được xét thì xét đỉnh này (nó trở thành đỉnh
đã xét) và bắt đầu từ đó tiếp tục quá trình tìm kiếm với đỉnh này
+ Nếu với mọi đỉnh kề với i đều đã được xét thì i coi như duyệt xong và quay trở lại tìm kiếm từ đỉnh mà từ đó ta đi đến được i
Sử dụng hai danh sách hoạt động theo nguyên tắc LIFO: OPEN và CLOSE
Procedure DFS; (Depth First Search)