Trí tuệ nhân tạo là “khả năng suy luận và thực hiện các hành động” của các thiết bị, máy móc tương tự như bộ não con người. Thuật ngữ này được dùng để nói đến máy tính có mục đích không nhất định, ngành khoa học nghiên cứu lý thuyết và các ứng dụng của trí tuệ nhân tạo. Đây là một ngành trọng yếu của tin học, liên quan đến cách cư xử, sự học hỏi và khả năng thích ứng thông minh của máy móc. Trí tuệ nhân tạo trở thành môn học với mục đích chính là cung cấp lời giải cho các vấn đề của cuộc sống thực tế. Ngày nay, các ứng dụng trí tuệ nhân tạo rất đa dạng và phong phú, áp dụng cho nhiều lĩnh vực, hiện nay đã có điều khiển tự động, robot, các hệ dịch tư động các ngôn ngữ tự nhiên, các hệ nhân dạng, trò chơi điện tử,…
MỤC LỤC Lời nói đầu Trí tuệ nhân tạo “khả suy luận thực hành động” thiết bị, máy móc tương tự não người Thuật ngữ dùng để nói đến máy tính có mục đích khơng định, ngành khoa học nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo Đây ngành trọng yếu tin học, liên quan đến cách cư xử, học hỏi khả thích ứng thơng minh máy móc Trí tuệ nhân tạo trở thành mơn học với mục đích cung cấp lời giải cho vấn đề sống thực tế Ngày nay, ứng dụng trí tuệ nhân tạo đa dạng phong phú, áp dụng cho nhiều lĩnh vực, có điều khiển tự động, robot, hệ dịch tư động ngôn ngữ tự nhiên, hệ nhân dạng, trò chơi điện tử,… Cùng với phát triển xã hội, việc di chuyển người, hàng hóa thơng tin, ngày gia tăng Cùng với gia tăng yêu cầu cực tiểu chi phí, khoảng cách, thời gian, trở lên quan trọng Theo lý thuyết đồ thị tốn tìm đường ngắn đỉnh đồ thị Chẳng hạn tốn tìm đường ngắn thành phố, Bài tốn tìm tuyến xe bt từ địa điểm đến địa điểm cho tiết kiệm chi phí nhất, Bài tốn tìm đường ngắn trở nên cấp thiết quan trọng tương lai Do quan trọng cấp thiết tốn tìm đường ngắn nên có nhiều nhà tốn học đưa nhiều thuật toán để giải vận dụng vào để giải nhiều toán thực tế Trong số thuật tốn đưa nhóm chúng em chọn nghiên cứu trình bày đề tài: “Người lái đị” I Cơ sở lý thuyết Tìm kiếm theo chiều rộng (Breadth First Search) Giải thuật tìm kiếm theo chiều rộng giải thuật tìm kiếm đồ thị, việc tìm kiếm bao gồm thao tác: cho trước đỉnh đồ thị; thêm đỉnh kề với đỉnh vừa cho vào danh sách hướng tới Quy tắc: - Duyệt tiếp tới đỉnh liền kề mà chưa duyệt Đánh dấu đỉnh mà duyệt Hiển thị đỉnh đẩy vào hàng đợi (queue) - Nếu khơng tìm thấy đỉnh liền kề, xóa đỉnh hàng đợi - Lặp lại quy tắc quy tắc hàng đợi trống (empty) Tìm kiếm theo chiều sâu (Depth First Search) Giải thuật tìm kiếm theo chiều sâu cịn gọi giải thuật tìm kiếm ưu tiên chiều sâu, giải thuật duyệt tìm kiếm một đồ thị sử dụng stack (ngăn xếp) để ghi nhớ đỉnh liền kề để bắt đầu việc tìm kiếm khơng gặp đỉnh liền kề vòng lặp Giải thuật tiếp tục gặp đỉnh cần tìm nút khơng có Khi giải thuật quay lui đỉnh vừa tìm kiếm bước trước Quy tắc: - Duyệt tiếp tới đỉnh liền kề mà chưa duyệt Đánh dấu đỉnh mà duyệt Hiển thị đỉnh đẩy vào ngăn xếp (stack) - Nếu khơng tìm thấy đỉnh liền kề, lấy đỉnh từ ngăn xếp (thao tác pop up) (Giải thuật lấy tất đỉnh từ ngăn xếp mà khơng có đỉnh liền kề nào) - Lặp lại quy tắc quy tắc ngăn xếp trống (empty) Thuật toán quay lui (Backtracking) Quay lui kĩ thuật thiết kế giải thuật dựa đệ quy Ý tưởng quay lui tìm lời giải bước, bước chọn số lựa chọn đệ quy Người đề thuật ngữ (backtrack) nhà toán học người Mỹ D.H Lehmer vào năm 1950 Tư tưởng: Dùng để giải tốn liệt kê cấu hình Mỗi cấu hình xây dựng phần tử Mỗi phần tử lại chọn cách thử tất khả Các bước việc liệt kê cấu hình dạng X[1…n]: - Xét tất giá trị X[1] nhận, thử X[1] nhận giá trị Với giá trị X[1] ta sẽ: - Xét tất giá trị X[2] nhận, lại thử X[2] cho giá trị Với giá trị X[2] lại xét khả giá trị X[3]…tiếp tục bước: -… - Xét tất giá trị X[n] nhận, thử cho X[n] nhận giá trị - Thơng báo cấu hình tìm Bản chất quay lui trình tìm kiếm theo chiều sâu (DepthFirst Search) Mơ tả thuật tốn: II Giải tốn Phát biểu tốn Một người nơng dân muốn qua sơng với sói, dê bắp cải Ơng có thuyền nhỏ chở theo ơng ta ba thứ (sói dê bắp cải) Nếu để sói dê lại bờ, sói ăn thịt dê Nếu để dê với bắp cải lại bờ, dê ăn bắp cải Hãy tìm cách vận chuyển giúp người nơng dân mang qua sông Giải toán Đây nhiệm vụ đưa trạng thái ban đầu, trạng thái cuối quy tắc, nhiệm vụ trạng thái ban đầu cố gắng đạt đến trạng thái cuối cách qua số trạng thái trung gian Một tập hợp trạng thái liên kết với biểu diễn đồ thị không gian trạng thái Sử dụng ‘n’, ‘b’, ‘d’, ‘s’ để biểu thị người nông dân, bắp cải, dê, sói sử dụng ‘|’ để tách sông nơi bên trái dấu ‘|’ biểu thị bờ tây (bờ trái) bên phải ‘|’ biểu thị bờ đông (bên phải) Ban đầu tất chúng bờ tây sông, biểu thị ‘nbds |’ hình bên Chúng ta giải câu đố cách tìm động thái hợp lệ gì, sử dụng tìm kiếm theo chiều rộng (Breadth First Search) tìm kiếm theo chiều sâu (Depth First Search), khơng gian trạng thái hiển thị bên • Tìm kiếm theo chiều sâu (Depth First Search) Hoặc có khả quay lui (Backtracking) • Tìm kiếm theo chiều rộng (Breadth First Search) III Cài đặt, demo chương trình Cài đặt - Đầu vào ban đầu nơng dân, bắp cải, dê, sói false (ở bờ trái) printPath(): hàm pop stack đến stack rỗng in kết step(boolean farmer, boolean wolf, boolean goat, boolean cabbage): hàm trả stack sau push,pop Nếu nông dân, bắp cài, dê, sói true (ở bờ - phải) gọi hàm printPath() kết thúc chương trình isSafe(boolean farmer, boolean wolf, boolean goat, boolean cabbage): hàm kiểm tra hợp lệ tham số đầu vào, dê gần bắp cải mà khơng có nơng dân dê gần sói mà khơng có nơng dân hàm trả sai - (return false) Ngược lại trả (return true) Input: false, false, false, false Output: true, true, true, true Code ngôn ngữ Java: 10 Kết IV Kết luận đánh giá Các vấn đề gặp phải Trong trường hợp xấu độ phức tạp quay lui cấp số mũ Vì mắc phải nhược điểm sau: - Rơi vào trình trạng “thrashing”: trình tìm kiếm gặp phải bế tắc với - nguyên nhân Thực công việc dư thừa: Mỗi lần quay lui, cần phải - đánh giá lại lời giải đơi lúc điều khơng cần thiết Không sớm phát khả bị bế tắc tương lai Quay lui chuẩn, chế nhìn tương lai để nhận biết nhánh tìm kiếm 11 vào bế tắc Đánh giá Việc quay lui thử tất tổ hợp để tìm lời giải Thế mạnh phương pháp nhiều cài đặt tránh việc phải thử nhiều trường hợp chưa hoàn chỉnh Đây thuật tốn đơn giản, chứng tỏ bạn cần quay lại trạng thái trước đánh giá lại định trước để giải vấn đề Tài liệu tham khảo Websites : [1] Website : www.slideshare.net [2] Website : www.stackoverflow.com [3] Website : www.123docz.net [4] Website : www.youtube.com 12 [5]Website :https://viblo.asia/p/thuat-toan-quay-lui-backtracking-bJzKmLbD59N 13 ... để giải nhiều toán thực tế Trong số thuật tốn đưa nhóm chúng em chọn nghiên cứu trình bày đề tài: ? ?Người lái đị” I Cơ sở lý thuyết Tìm kiếm theo chiều rộng (Breadth First Search) Giải thuật tìm... dựa đệ quy Ý tưởng quay lui tìm lời giải bước, bước chọn số lựa chọn đệ quy Người đề thuật ngữ (backtrack) nhà toán học người Mỹ D.H Lehmer vào năm 1950 Tư tưởng: Dùng để giải tốn liệt kê cấu hình... giá Các vấn đề gặp phải Trong trường hợp xấu độ phức tạp quay lui cấp số mũ Vì mắc phải nhược điểm sau: - Rơi vào trình trạng “thrashing”: trình tìm kiếm gặp phải bế tắc với - nguyên nhân Thực