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.
Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Lêi nãi ®Çu Kiến thức mối quan tâm trước tiên người Người ta ln ln tìm kiếm thêm kiến thức, sử dụng làm phong phú thêm giới xung quanh Con người có nhiều cơng cụ mở rộng kiến thức, máy tính đáng kể Máy tính xử lý nhanh chóng xác liệu Ngày khơng lưu trữ, tìm kiếm xử lý liệu mà giữ vai trò định Trong thời gian ngắn, cơng nghệ đưa người từ việc xử lý 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 Trí tuệ nhân tạo Sự phát triển mạnh mẽ mặt nghiên cứu ứng dụng thành tựu Trí tuệ nhân tạo đem lại hy vọng cho nhà tin học Sự xuất ngày nhiều sản phẩm sử dụng kỹ thuật Trí tuệ nhân tạo sống hàng ngày cơng nghiệp tạo nên cục diện Hơn nữa, thành cơng đạt tạo tiền đề cho thành cơng dự án xây dựng hệ thống thơng minh ứng dụng rộng rãi thực tiễn Trong số lĩnh vực đặc biệt, Trí tuệ nhân tạo máy tính vượt qua khả trí tuệ người Trong đó, với số tốn người giải đơn giản máy tính để làm việc đòi hỏi phải có họat động trí tuệ trình độ cao Cốt lõi họat động trí tuệ diễn máy tính não người vận dụng linh hoạt kỹ thuật giải vấn đề Trong lĩnh vực Trí tuệ nhân tạo, thường xun phải đối đầu với vấn đề tìm kiếm suy diễn Đặc biệt lập kế hoạch học máy tìm kiếm đóng vai trò quan trọng Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Hiểu 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 suy diễn” Bản luận văn nghiên cứu nội dung sau Chương Tổng quan Trí tuệ nhân tạo Chương Khơng gian tốn.Các chiến lược tìm kiếm suy diễn Chương Các phương pháp biểu diễn tri thức Chương Ứ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 hạn chế thời gian khơng cho phép, đề tài em khơng thể tránh khỏi thiếu sót Em mong đóng góp ý kiến, ủng hộ thầy giáo bạn để luận văn em hồn thiện Một lần em xin chân thành cảm ơn sâu sắc đến thầy giáo khoa Tốn Tin, đặc biệt thầy giáo Lê Đắc Nhường giúp đỡ em hồn thành luận văn Hải Phòng ngày 15 tháng năm 2007 Sinh viên: Nguyễn Thị Thanh Thương Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn CHƯƠNG 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 người thực tiễn, từ tính tốn nghiên cứu khoa học - kỹ thuật, đến họat động nhiều mang tính đơn giản giải đáp câu đố, chơi cờ, sửa chữa máy móc, đòi hỏi tham gia trí tuệ Máy tính trở thành cơng cụ đắc lực ngày trợ giúp người cơng việc xử lý thơng tin, khơng máy tính có khả giải nhiệm vụ mức độ trí tuệ ngày cao Theo nghĩa đó, máy tính trang bị Trí tuệ nhân tạo Lĩnh vực Trí tuệ nhân tạo nhằm vào việc hiểu thực thể thơng minh Do lý để nghiên cứu học thân người, hiểu cách suy lý người Một lý khác để nghiên cứu Trí tuệ nhân tạo nhằm vào việc chế tạo cỗ máy thơng minh hỗ trợ người thơng qua nhiệm vụ định Từ trước đến nay, Trí tuệ nhân tạo cho nhiều kết cho dù tương lai người ta chưa biết sao, chắn máy tính với trí tuệ người tác động mạnh đến sống văn minh người 1.1.1 Khái niệm Trí tuệ nhân tạo (Artificial Intelligence) lĩnh vực khoa học máy tính, nghiên cứu thiết kế tác nhân thơng minh (“Computational intelligence is the study of the design of intelligent agents”) Các áp dụng Trí tuệ nhân tạo đa dạng phong phú, có nhiều hệ thơng minh đời: hệ chun gia, điều khiển tự động, Robot, hệ dịch tự động ngơn ngữ tự nhiên, hệ nhận dạng, chương trình chơi cờ,…Kỹ thuật Trí tuệ nhân tạo sử dụng việc xây dựng hệ mềm nhằm tạo hệ mềm mang yếu tố thơng minh, linh hoạt tiện dụng Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn 1.1.2 Lịch sử phát triển trí tuệ nhân tạo Thuật ngữ Trí tuệ nhân tạo John McCarthy đưa hội thảo Dartmouth vào mùa hè 1956 Trong hội thảo có mặt tên tuổi tiếng Marvin Minsky, Claude Shannon, Nathaniel Rochester, Arthur Samuel, Allen Newell 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 máy tính làm mà người ta bảo làm, chương trình Samuel học để chơi tốt người viết Đến hội thảo này, Allen Newell Herbert Simon viết chương trình lập luận với tên gọi “The logic theorist” Chương trình ơng có khả chứng minh hầu hết định lý chương “Principia Mathematics” Russell Whitehead Trong hội thảo Dartmouth, nhà nghiên cứu thảo luận vạch phương hướng nghiên cứu lĩnh vực Trí tuệ nhân tạo Vì vậy, hội thảo Dartmouth, mùa hè 1956 xem thời điểm đời thực lĩnh vực nghiên cứu Trí tuệ nhân tạo Theo mốc phát triển, người ta thấy Trí tuệ nhân tạo sinh từ năm 50 với kiện sau: - Người đầu Trí tuệ nhân tạo Turing với thí nghiệm hành vi thơng minh - Tháng 8/1956 John McCarty, M.Minsky, A.Newell, Shannon, Simon…đưa khái niệm “Trí tuệ nhân tạo” - Chương trình Trí tuệ nhân tạo có nguồn gốc từ lý thuyết logic, từ trò chơi cờ, - Xuất ngơn ngữ lập trình LISP (List Processing), phù hợp với nhu cầu xử lý đặc trưng Trí tuệ nhân tạo Tuy Trí tuệ nhân tạo vào hoạt động thực từ năm 60, có nhiều đề án Trí tuệ nhân tạo, có nghiên cứu may rủi, hệ thống giải tốn GPS (General Problem Solving) Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Việc khai thác ứng dụng kết Trí tuệ nhân tạo năm 70 Các kết đáng kể Trí tuệ nhân tạo thuộc mảng nghiên cứu ứng dụng sau: - Thể tri thức suy lý - Hệ chun 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 coi thời gian thâm nhập Trí tuệ nhân tạo vào ngành kinh tế quốc dân Trong năm người ta tiến hành thực nghiệm đạt 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 cài đặt thành phần thơng minh hệ thống thơng tin - Làm rõ thành phần ngành khoa học Trí tuệ nhân tạo, - Tiến hành nghiên cứu mới, đặc biệt nghiên cứu chế suy lý, Trí tuệ nhân tạo phân tán, 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, kỹ thuật Trí tuệ nhân tạo thường phức tạp cài đặt cụ thể, lý kỹ thuật thiên xử lý ký hiệu tượng trưng đòi hỏi phải sử dụng tri thức chun mơn thuộc nhiều lĩnh vực khác Do vậy, kỹ thuật Trí tuệ nhân tạo hướng tới khai thác tri thức lĩnh vực quan tâm mã hố máy cho đạt mức độ tổng qt; dễ hiểu, dễ diễn đạt thơng qua ngơn ngữ chun 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 khả cần xét để tới lời giải cuối Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Các kỹ thuật Trí tuệ nhân tạo bao gồm : - Lý thuyết giải tốn suy diễn thơng minh: Lý thuyết giải tốn cho phép viết chương trình giải câu đố, chơi trò chơi thơng qua suy luận mang tính người; hệ thống chứng minh định lý Ngồi hệ thống hỏi đáp thơng minh cho phép lưu trữ xử lý khối lượng lớn thơng tin - Lý thuyết tìm kiếm may rủi: Lý thuyết bao gồm phương pháp kỹ thuật tìm kiếm với hỗ trợ thơng tin phụ để giải tốn cách có hiệu - Các ngơn ngữ Trí tuệ nhân tạo: Để xử lý tri thức người ta khơng sử dụng ngơn ngữ lập trình dùng cho xử lý liệu số, mà cần có ngơn ngữ khác Các ngơn ngữ chun dụng cho phép lưu trữ xử lý thơng tin ký hiệu Một số ngơn ngữ nhiều người biết đến IPL.V, LISP, PROLOG - Lý thuyết thể tri thức hệ chun gia: Trí tuệ nhân tạo khoa học thể sử dụng tri thức Mạng ngữ nghĩa, lược đồ, logic vị từ, khung phương pháp thể tri thức thơng dụng Việc gắn liền cách thể sử dụng tri thức sở hình thành hệ chun gia - Lý thuyết nhận dạng xử lý tiếng nói: Giai đoạn phát triển đầu 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 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 phương pháp việc nhận dạng chữ viết, âm - Người máy: Cuối năm 70, người máy cơng nghiệp đạt nhiều tiến Người máy có phận cảm nhận chế hoạt động nối ghép theo điều khiển thơng minh Khoa học học Trí tuệ nhân tạo tích hợp khoa học người máy Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa - Các chiến lược tìm kiếm suy diễn Tâm lý học xử lý thơng tin: Các kết nghiên cứu tâm lý học giúp Trí tuệ nhân tạo xây dựng chế trả lời theo hành vi, có ý thức; giúp cho việc thực suy diễn mang tính người - Ngồi ra, xử lý danh sách, kỹ thuật đệ quy, kỹ thuật quay lui xử lý cú pháp hình thức kỹ thuật 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 Trí tuệ nhân tạo Trí tuệ nhân tạo có đặ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, đối tượng… dùng cho suy lý - Khái niệm Trí tuệ nhân tạo thể hiện, suy lý, nhận biết việc học hệ thống sở tri thức - Phương pháp may rủi hay dùng Trí tuệ nhân tạo, cho phép giải hai lớp tốn khó: Thứ giải tốn chưa có thuật tốn tốn nhận biết, định, khái niệm hố Thứ hai giải tốn có thuật tốn giải độ phức tạp lớn tốn chơi cờ - Trí tuệ nhân tạo xét đến thơng tin khơng đầy đủ, khơng xác, mâu thuẫn Những thơng tin mâu thuẫn thường thấy y học, quản lý xí nghiệp… - Q trình tương tác người - máy gắn liền với hoạt động tự nhận biết hướng nghiên cứu quan trọng Trí tuệ nhân tạo - Trí tuệ nhân tạo liên quan đến nhiều lĩnh vực kỹ thuật mới, logic học, khoa học nhận biết, ngơn ngữ học, khoa học tổ chức, thần kinh học Trí tuệ nhân tạo nằm 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 cơng nghệ nhận thức Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Khi so sánh phần mềm xử lý liệu cổ điển liệu số, văn bản… với phần mềm xử lý liệu lẫn tri thức, người ta nhận thấy hai cách xử lý có điểm khác nhau: Tin học cổ điển đưa liệu vào chương trình thu nhận kết Chương trình trường hợp coi hộp đen thực chức xử lý liệu theo thuật tốn Dữ Liệu Kết Quả Thuật Tốn Hình 1.1 Xử Lý liệu tin học cổ điển Với trí tuệ nhân tạo, thơng tin nhập vào phần xử lý gồm liệu, kiện thơng tin may rủi Phần xử lý liệu mơ hình tin học cổ điển phát triển, cho phép xử lý tri thức mơ tơ suy diễn hệ chun gia Các kết hệ thống trí tuệ nhân tạo diễn giải, kết luận Dữ liệu Sự kiện Suy Diễn Kết Diễn giải Hình 1.2 Xử lý liệu tri thức trí tuệ nhân tạo 1.1.6 Thể tri thức dạng tri thức Trước xử lý tri thức việc xác định dạng thể tri thức quan trọng Việc mơ tả liệu tri thức phù hợp tạo điều kiện thuận lợi cho thao tác xử lý Một vài dạng thể tri thức: - Tri thức thể thơng qua đối tượng kiện đối tượng - Các kiện dùng thể tri thức Các kiện mang yếu tố thời gian, tạo nên chuỗi kiện Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa - Các chiến lược tìm kiếm suy diễn Thể thơng tin qua suy diễn Chẳng hạn sử dụng luật suy diễn kiện - Thể tri thức thơng qua cách sử dụng tri thức, cách thực hành động Loại thể liên quan đến ngơn ngữ học - Thể tri thức thơng tin tri thức Người ta thường phân loại tri thức làm dạng sau: - Tri thức kiện - Tri thức thủ tục - Tri thức mơ tả - Tri thức Heuristic Tri thức chun gia để ý tri thức lĩnh vực chun sâu Đó tri thức có kinh nghiệm, cảm nhận Thí dụ luật kiểm chứng, may rủi, lời khun, ý đồ chiến lược, cảm nhận chấp nhận kiện 1.2 CÁC THÀNH PHẦN CƠ BẢN CỦA TRÍ TUỆ NHÂN TẠO Hai thành phần hệ thống Trí tuệ nhân tạo là: − Các phương pháp biểu diễn vấn đề, phương pháp biểu diễn tri thức − Các phương pháp tìm kiếm khơng gian tốn, chiến lược suy diễn Việc lựa chọn phương pháp biểu diễn tri thức định phương pháp giải vấn đề tương ứng áp dụng hai thành phần hệ thống Trí tuệ nhân tạo tương hỗ với chặt chẽ Chẳng hạn, tri thức biểu diễn dạng cơng thức logic vị từ, phương pháp hợp giải (resolution) Robinson phù hợp thường dùng để suy diễn Ngược lại, phương pháp biểu diễn tri thức mạng ngữ nghĩa tất nhiên tủ tục tìm kiếm hiệu Mặc dù phương pháp biểu diễn tri thức sử dụng cú pháp chặt chẽ thường hiệu cho việc biểu diễn điều khiển q trình suy diễn, chúng lại Sinh viên: Nguyễn Thị Thanh Thương Trang Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn khơng đủ mạnh để khắc phục bùng nổ tổ hợp giải tốn khó Trong trường hợp đó, thủ tục tìm kiếm heuristic dựa tri thức đặc tả nảy sinh từ thân cấu trúc tốn trở nên cần thiết Có thể phân chia hệ thống Trí tuệ nhân tạo sau: Các hệ tìm kiếm thơng tin, hệ thống hỏi đáp thơng minh cho phép hội thoại người sử dụng khơng chun tin với sở tri thức sở liệu thơng qua ngơn ngữ chun ngành gần với ngơn ngữ tự nhiên Các hệ thống suy diễn – tính tốn, cho phép giải tốn phức tạp dựa mơ hình tốn học tri thức chun gia Các hệ chun gia, cho phép sử dụng tri thức chun gia lĩnh vực chun 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 q trình tư thơng qua hành vi, giao tiếp Nó có định hướng nghiên cứu, ứng dụng sau: 1- Tìm nghiên cứu thủ tục giúp người tiến hành hoạt động sáng tạo Cơng việc sáng tạo thực mơ hình theo cấu trúc, chức sử dụng cơng nghệ thơng tin 2- Dùng ngơn ngữ tự nhiên Trước hết ngơn ngữ dùng để thể tri thức, tiếp thu chuyển hố sang dạng xử lý 3- Hình thức hố khía cạnh, hành vi liên quan đến Trí tuệ nhân tạo Do xây dựng tốn mang tính người thơng minh Các hoạt động lớn 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 hình, người máy hệ chun gia Về cài đặt hệ thống, khuynh hướng Trí tuệ nhân tạo cài đặt hệ Trí tuệ nhân tạo hệ thống khác, đặc biệt hệ thống tin học Sinh viên: Nguyễn Thị Thanh Thương Trang 10 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Gold, // Mùi vàng HasGold, // Có vàng hay khơng 1: có 0: khơng MapFrame, // Mã số ảnh dùng để vẽ đồ Ctype, // Phân loại ơ: vật cản hay đường BackVal : integer; // Chi phí quay thuật tốn tham lam tìm đường NPCframe : array[0 39] of byte; Opened : boolean; // Mã số ảnh để vẽ NPC // True: Robot xét đến (trong tầm nhìn) // dùng tìm đường Visited : boolean; // True: Robot qua end; Khi đồ khai báo sau: Map: array[0 500,0 500] of CellInfo; 4.3.2.2 Bản ghi lưu thơng tin NPC NPCinfo = record dir, // Direction: hướng di chuyển (1: xi -1:ngược) NPCtype, // Chủng loại NPC ddanger, // Delta "nguy hiểm" : số gia độ nguy hiểm kề points, // Số điểm đường NPC Cycle, // 1:đi vòng tròn 0: hết ngược lại pos : integer; path : array[1 500] of Tpoint; // Đường NPC moving : boolean; // Vị trí đường // True: di chuyển end; Khi NPC lưu mảng: NPCs: array[0 300] of NPCinfo; 4.3.2.3 Robot Sinh viên: Nguyễn Thị Thanh Thương Trang 88 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Robot thân NPC chương trình điều khiển với số thơng tin chức mở rộng thêm, phát triển thành class khai báo sau: TRobot = class Private // Di chuyển Robot theo hướng procedure Move(dir:integer); // Di chuyển Robot quay lui lại (trong hành trình đi) procedure MoveBack; // Cho Robot đứng n để chờ nhịp di chuyển procedure Wait; // Robot nhặt vàng procedure PickGold(i:integer); // Hàm heuristic đánh giá độ tốt Robot di chuyển theo hướng function Evalmove(dir: integer): integer; // Viết câu thơng báo khung bên trái cửa sổ procedure WriteOut(s: string); // Hàm heuristic đánh giá độ tốt trả hướng tốt chạy trốn function Evalesc: integer; // Hàm kiểm tra xem Robot có gặp người canh vàng đường // Di chuyển sang bên cạnh hay khơng function VisitNPC(dir:integer): boolean; overload; function VisitNPC(p:Tpoint): boolean; overload; Sinh viên: Nguyễn Thị Thanh Thương Trang 89 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn // Lấy thơng tin "chạy trốn" function GetEscInfo(p: tpoint): EscInfo; // Tìm đường ngắn để quay procedure FindRetWay(src, dest: Tpoint); // Chức thủ tục dùng để nhà procedure Return; // Thủ tục đệ quy: gán nhãn đỉnh đồ thị thuật tốn tìm đường ngắn procedure AssignBackval(src, dest : Tpoint); // Di chuyển NPC đến tọa độ Tất nhiên tính tốn // Sao cho vị trí xung quanh Robot Procedure MoveTo(p: Tpoint); public NPCindex : integer; // Chỉ số Robot mảng lưu NPC info // Các thơng tin NPC : NPCinfo; golds, // Số vàng lấy EscLogs : array[0 500] of EscInfo; // Các điểm ghi nhận chạy trốn pos : integer; path : array[0 20000] of Tpoint; pathd : array[0 20000] of integer; // Mức nguy hiểm lúc Robot qua // Vị trí(cuối) Robot hành trình start, dest // Stack lưu đường Robot // Điểm xuất phát ban đầu : Tpoint; // Đích đến (có vàng, lấy hết vàng) NowayTime, // thời gian chết (khơng thể đâu được) WaitTime : longint; // Thời gian chờ rollback : boolean; // True: lệnh quay lại chờ q thời gian cho phép CanMoveNext: boolean; // Robot tìm đường tiếp hay khơng EscPosNum : integer; // Số điểm chạy trốn ghi lại FindWay : boolean; // True:Robot tìm đường ngắn dựa qua NoRetWay : boolean; Sinh viên: Nguyễn Thị Thanh Thương // True: khơng tìm thấy đường quay Trang 90 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn procedure NextStep; // “bảo” Robot tìm bước procedure initRobot; // Khởi tạo thuộc tính end; 4.3.2.4 Thơng tin đồ Thơng tin đồ lưu dạng file văn bản: − Dòng đầu file ghi dạng cặp số (m,n): kích thước đồ, đồ ma trận kích thước m x n − Trong m dòng dòng ghi n cặp số (a,b) Trong cặp số lưu thơng tin đồ (a: tính chất ơ, chướng ngại vật hay bình thường; b hình vẽ chọn để hiển thị đó) − Dòng ghi số lượng có vàng, giả sử số có vàng X − Dòng có X cặp số tọa độ chứa vàng − Dòng ghi số lượng NPC (None – Playing – Character: Nhân vật tự di chuyển mà ta khơng thể điều khiển, khơng thể chơi được) Số lượng NPC số lượng tất số kẻ trơng coi vàng Robot − Ứng với NPC có hai dòng + Dòng ba số (i, j, k) dùng để lưu thơng tin NPC i dùng để loại NPC; i = NPC kẻ trơng coi vàng, i = NPC Robot j số đường mà NPC di chuyển (thơng số có ý nghĩa với NPC có i = tức kẻ trơng coi vàng) k kiểu di chuyển NPC, k=0: hết điểm ngược lại, k=1: hết điểm vòng trở lại điểm (thơng số có nghĩa với NPC có i = tức kẻ trơng coi vàng) Sinh viên: Nguyễn Thị Thanh Thương Trang 91 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Lưu ý: thơng số j k tạo cho NPC ứng với NPC kẻ trơng coi vàng ta chọn kiểu di chuyển điểm mà kẻ trơng coi vàng di chuyển qua lại (đi tuần) để coi vàng, Robot khơng thể chọn mà bước Robot nhiệm vụ chương trình phải làm + Dòng thứ hai lưu tọa độ mà kẻ trơng coi vàng tuần qua để canh vàng: có tổng cộng j cặp số tọa độ ơ, tọa độ xếp 4.3.3 Thiết kế module Chương trình gồm module lớn với form Module giao diện người dùng (form chính): File mã nguồn FormMain.pas Chịu trách nhiệm xử lý thao tác với người sử dụng Open map, thay đổi options… thực việc vẽ hình ảnh map NPC khung bên phải, hiển thị dòng kết khung bên trái form Các thơng tin map NPC đặt module Module tạo đồ (form Map maker): module gồm form để tạo map (MapMaker.pas) form phụ để tạo đường cho kẻ canh vàng tuần (WayPoint.pas) Do đơn tạo map nên cấu trúc liệu map đơn giản module trước, mảng hai chiều số ngun Module điều khiển Robot: File mã nguồn updateNPC.pas Thực việc điều khiển NPC di chuyển map kiểm tra trạng thái để đưa kết tốn cách thay đổi thơng tin module Một timer form sử dụng để điều chỉnh nhịp độ module (cũng dùng để thay đổi tốc độ di chuyển NPC) Để đảm bảo khả tương tác người dùng với form module đặt tiến trình riêng chạy song song với tiến trình Tất chức định nghĩa class (thừa kế từ class hỗ trợ lập trình đa tuyến Delphi) object module khai báo khởi động module giao diện Sinh viên: Nguyễn Thị Thanh Thương Trang 92 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn người dùng Nếu để chung module tiến trình module hoạt động người dùng gần khơng có hội thao tác với form 4.3.4 Hình ảnh sử dụng chương trình Hình 4.3 Hình ảnh chướng ngại vật … Hình 4.4 Các hình ảnh đồ Hình 4.5 Biểu tượng vàng(Gold) Hình 4.6 Hình ảnh kẻ trơng coi vàng Hình 4.7 Hình ảnh Robot 4.3.5 Chức giao diện chương trình 4.3.5.1 Các chức chương trình Chương trình xây dựng với hai chức là: xây dựng đồ tìm vàng Sinh viên: Nguyễn Thị Thanh Thương Trang 93 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Các chức menu chương trình - - Menu Map có chức Open Map Maker + Chọn Map\Open để mở số đồ có sẵn + Chọn Map\Map Maker để tạo đồ Menu Solution có chức sau: Start, Pause, Stop + Sau mở tự tạo đồ xong bạn chọn Solution\Start để quan sát bước dịch chuyển Robot + Chọn Solution\Pause để tạm dừng tìm vàng + Chọn Solution\Stop để dừng hẳn - Menu File có chức Exit: Để khỏi chương trình bạn chọn File\Exit - Menu Option có chức sau: + Chọn Option\Map\Show Grid Line để lưới vng đồ + Chọn Option\Map\Show Danger Value để thị giá trị nguy hiểm + Chọn Option\Map\Show Hope Value để thị “độ thống” (độ hy vọng) + Chọn Option\Speed\Slow chương trình chạy với tốc độ chậm + Chọn Option\Speed\Normal chương trình chạy với tốc độ bình thường + Chọn Option\Speed\Fast chương trình chạy với tốc độ nhanh Sinh viên: Nguyễn Thị Thanh Thương Trang 94 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn 4.3.5.2 Giao diện chương trình chức Form Chương trình gồm form: form Solve Gold Problems, form Map Maker để tạo đồ, form Edit way Point để tạo đường tuần cho kẻ canh vàng Form Map Maker Để tạo đồ trước hết ta phải tạo kích thước cho đồ, mục Map Sizes ta nhập kích thước chiều rộng (with) chiều dài (height) cho đồ Sau nhập xong kích thước đồ ấn nút Set để cập nhật kích thước đồ hiển thị hình vẽ sau Vùng hiển thị đồ với kích thước10x10 Chọn kích thước cho đồ Hình 4.8 Form Map Maker tạo kích thước đồ Sinh viên: Nguyễn Thị Thanh Thương Trang 95 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Sau tạo kích thước đồ chọn mục Floor để tạo cho đồ, ảnh ta chọn số ảnh làm ảnh cho đồ Ta tạo ảnh cho đồ cách chọn mục Fill all map, chọn chế độ tạo ảnh cho cách chọn mục Cell by cell Hiển thị ảnh đồ Chọn mục để tạo cho đồ Chọn ảnh cho đồ Lựa chọn chế độ vẽ Fill map Cell by cell Hình 4.9 Form Map Maker tạo ảnh cho đồ Sinh viên: Nguyễn Thị Thanh Thương Trang 96 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Chọn mục Boxes để chọn chướng ngại vật đặt chúng lên đồ Các chướng ngại vật đặt đồ Chọn mục để đặt chướng ngại vật lên đồ Chọn hình ảnh chướng ngại vật Hình 4.10 Form Map Maker sau đặt chướng ngại vật lên đồ Sinh viên: Nguyễn Thị Thanh Thương Trang 97 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Chọn mục Gold để đặt vàng lên đồ Chọn mục NPC (None Playing Character) để chọn NPC đặt lên đồ Chọn mục Show waypoints, lịch trình đường kẻ canh vàng đồ (kẻ canh vàng qua có dấm chấm vàng) Chọn mục để đặt vàng lên đồ Lịch trình đường kẻ canh vàng Vàng Chọn kẻ canh vàng Robot sau đặt lên đồ Hình 4.11 Form Map Maker tạo lập xong đồ Khi ấn Clear Map tồn liệu đồ xóa Sau tạo lập xong đồ chọn File\Save để lưu lại Tại form ta sửa lại đồ cách chọn File\Open, đồ mở ta sửa chữa lại đồ Sau sửa xong chọn File\Save để lưu lại đồ vừa sửa Sinh viên: Nguyễn Thị Thanh Thương Trang 98 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn *Lưu ý tạo đồ ta đặt nhiều đối tượng: vàng, chướng ngại vật, kẻ canh vàng lên đồ, riêng Robot đặt Form Edit way points Khi nút Edit Way Points ấn Form Edit Way Points cho phép tạo lập đường NPC Lưu ý tạo lập đường cho kẻ canh vàng Robot khơng ta xây dựng chương trình cho Robot tìm vàng bước dịch chuyển Robot chương trình thực Chọn NPC để tạo lập đường Các tọa độ mà NPC qua Chọn chế độ kiểu vòng tròn cho NPC Chọn Clear all để xóa tất lịch trình đường NPC Hình 4.12 Form Edit Way Points – tạo lập đường cho NPC Form Edit Way Points có chức tạo đường cho NPC với thao tác • Left: Rẽ trái • Right: Rẽ phải • Up: Đi lên • Down: Đi xuống Check vào Go cycle points để chọn chế độ vòng tròn cho NPC, khơng chọn chế độ mặc định kẻ canh vàng hết lịch trình đường tuần ngược lại Sau tạo lập xong đường cho NPC ấn Finish để kết thúc Sinh viên: Nguyễn Thị Thanh Thương Trang 99 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn Form Chính – Solve gold problems Mở tạo đồ sau Form SolveGold Problems • Chọn Solution\Start để bắt đầu tìm vàng • Chọn Solution\Pause để tạm dừng tìm vàng • Chọn Solution\Stop để dừng hẳn Hình 4.13 Form Solve gold Problems thời điểm ban đầu Ban đầu Robot đứng vị trí có tọa độ (0,9), nhiệm vụ Robot phải tìm vàng mang vàng nhà cách an tồn (khơng vào chướng ngại vật khơng bị kẻ canh vàng bắt) mà khơng biết trước đồ Kẻ canh vàng lúc đầu đứng vị trí (7,5), sau vòng tròn qua vị trí có tọa độ sau (7,5) → (7,4) → (7,3) → (7,2) → (6,2) → (6,3) → (6,4) → (6,5) → (7,5)… • Chọn Option\Speed\Slow chương trình chạy với tốc độ chậm • Chọn Option\Speed\Normal chương trình chạy với tốc độ bình thường • Chọn Option\Speed\Fast chương trình chạy với tốc độ nhanh Sinh viên: Nguyễn Thị Thanh Thương Trang 100 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn • Chọn Option\Map\Show Grid Line để lưới vng đồ • Chọn Option\Map\Show Danger Value để giá trị nguy hiểm • Chọn Option\Map\Show Hope Value để thị “độ thống” (độ hy vọng) Hiển thị bước Robot Hình 4.14 Form Solve gold problems thời điểm kết thúc Nhìn hình vẽ ta thấy lưới vng hiển thị đồ với độ nguy hiểm độ thống (hay độ hy vọng) ghi từ xuống Các bước Robot hiển thị Form Memo Bước Memo Robot quan sát đánh giá “độ tốt” chọn nước thích hợp Mỗi bước thể dòng P số bước tính đến điểm (số phần tử Stack); U, D, L, R giá trị hàm đánh giá theo hướng “Up” , “Down”, “Left”, “Right” Phần ngồi ngoặc nhọn bên phải định hành động Robot Sinh viên: Nguyễn Thị Thanh Thương Trang 101 Luận văn cuối khóa Các chiến lược tìm kiếm suy diễn KÕt ln Bản luận văn trình bày khái niệm trí tuệ nhân tạo, phương pháp biểu diễn vấn đề, chiến lược tìm kiếm suy diễn, phương pháp biểu diễn tri thức, đặc biệt ứng dụng chiến lược tìm kiếm để xây dựng chương trình Robot tìm vàng Trong thời gian nghiên cứu thực luận văn tốt nghiệp, em nắm nhiều kiến thức bổ ích, hiểu rõ thuật tốn tìm kiếm suy diễn Từ em thực cơng việc sau: • Xác định hàm đánh giá tối ưu • Ứng dụng thuật tốn Best Firt Search chương trình • Thiết kế cài đặt hồn chỉnh chương trình Mặc dù có cố gắng định song đề tài em khơng tránh khỏi sai sót, hạn chế Em mong nhận góp ý, bảo thầy bạn Một lần em xin chân thành cảm ơn giúp đỡ thầy, giáo bạn sinh viên khoa Tốn - Tin, trường Đại học Hải Phòng, đặc biệt quan tâm, hướng dẫn tận tình giáo Ths.Cao Minh Tâm thầy giáo Lê Đắc Nhường tạo điều kiện thuận lợi để em hồn thành tốt đề tài Sinh viên: Nguyễn Thị Thanh Thương Trang 102 [...]... 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... đến trạng thái đích Có hai chiến lược tìm kiếm trong khơng gian trạng Sinh viên: Nguyễn Thị Thanh Thương Trang 27 Luận văn cuối khóa Các chiến lược tìm kiếm và suy diễn thái bài tố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... khóa Các chiến lược tìm kiếm và suy diễn CHƯƠ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. .. 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 Sinh viên: Nguyễn Thị Thanh Thương Trang 33 Luận văn cuối khóa Các chiến lược tìm. .. 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 Q 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. .. 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 Khái niệm Suy diễn là q trình suy luận dựa vào các quy luật đã cho, thiết lập các thơng tin mới từ các thơng tin đã biết Suy diễn sẽ sử dụng tập sự kiện làm tiên đề Các phương pháp suy diễn dần dần chuyển từ các giả thiết về các kết luận bằng cách thêm vào giả thiết những sự kiện đã được khẳng định đúng, dựa trên... ,rm} Chứng minh tập kết luận G đúng 2.2.2 Suy diễn tiến (forward chaining - forward reasoning) Sinh viên: Nguyễn Thị Thanh Thương Trang 28 Luận văn cuối khóa Các chiến lược tìm kiếm và suy diễn Tư 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 qt Suy diễn tiến là q 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... khóa Các chiến lược tìm kiếm và suy diễn Nhữ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 qt hố, xử lý song song, có khả năng diễn. .. 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 tốn đang xét − Suy diễn lùi được đánh giá cao trong các bài tốn như là chẩn đốn, dự đốn và tìm lỗi Nhượ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... 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