Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
1,7 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUN ĐỀ HỌC PHẦN MƠN NHÂP MƠN TRÍ TUỆ NHÂN TẠO ĐỀ T I: PHƯƠNG PHÁP TÌM KIẾM LỜI GIẢI THỎA MÃN CÁC R NG BUỘC V B I TOÁN QUÂN HẬU TRÊN B N CƠ Sinh viên thực : PHAN TIẾN HUY PHÙNG THÁI SƠN Giảng viên hướng dẫn : PHẠM HỒNG ĐỨC Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D15CNPM2 Khóa : 2020-2025 Hà Nội, tháng năm 2022 PHIẾU CHẤM ĐIỂM ST T Họ tên sinh viên Phan Tiến Huy Phùng Thái Sơn Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Nội dung thực Chữ ký Điểm Chữ ký Ghi LỜI MỞ ĐẦU Cờ vua trị chơi giải trí xuất từ khoảng kỷ thứ VI ngày trở nên phổ biến giới Bên cạnh việc chơi cờ giải trí, người ta cịn suy nghĩ nhiều tốn xung quanh bàn cờ vua Một toán phổ biến cờ vua tốn “8 qn hậu” Đây toán tiếng quen thuộc người lập trình Bài toán quân hậu đưa vào năm 1848 kỳ thủ Max Bezzel, nhiều nhà toán học (trong có Gauss Georg Cantor) có cơng trình nghiên cứu tốn tổng qt thành tốn xếp hậu Từ nhóm chúng em định chọn đề tài “Phương pháp tìm kiếm lời giải thỏa mãn ràng buộc Bài toán quân hậu bàn cờ” sử dụng thuận toán quay lui vét cạn Do thời gian làm báo cáo có hạn nên khơng tránh khỏi thiếu xót chúng em mong góp ý thầy, giáo để bọn em tiếp tục hoàn thiện Chúng em xin trân thành cảm ơn ! CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Các vấn đề trí tuệ nhân tạo Trí tuệ nhân tạo hay trí thơng minh nhân tạo (Artificial intelligence – viết tắt AI) ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ người lập trình tạo nên với mục tiêu giúp máy tính tự động hóa hành vi thơng minh người Trí tuệ nhân tạo nhánh khoa học liên quan đến việc làm cho máy tính có khả trí tuệ người, tiêu biểu khả “suy nghĩ”, “hiểu ngôn ngữ”, biết “học tập” Trí tuệ nhân tạo khác với việc lập trình logic ngơn ngữ lập trình việc ứng dụng hệ thống học máy (machine learning) để mơ trí tuệ người xử lý mà người làm tốt máy tính Cụ thể, trí tuệ nhân tạo giúp máy tính có trí tuệ người như: biết suy nghĩ lập luận để giải vấn đề, biết giao tiếp hiểu ngơn ngữ, tiếng nói, biết học tự thích nghi,… Tuy trí thơng minh nhân tạo có nghĩa rộng trí thơng minh tác phẩm khoa học viễn tưởng, ngành trọng yếu tin học Trí thơng minh nhân tạo liên quan đến cách cư xử, học hỏi khả thích ứng thơng minh máy móc Các tảng trí tuệ nhân tạo: - Triết học : + Logic + Các phương pháp suy diễn + Các sở (nền tảng) việc học + Ngơn ngữ + Sự hợp lý - Tốn học : + Biểu diễn hình thức giải thuật chứng minh + Lý thuyết tính tốn + Tối ưu hóa + Xác suất + Thống kê Hai thành phần trí tuệ nhân tạo: Knowledge(đại số, thống kê, tốn rời rạc,…), Inference(logic tốn học,…) Lịch sử trí tuệ nhân tạo: - Những năm 50: Khai sinh ngành khoa học trí tuệ nhân tạo - Thí nghiệm Turing: Sử dụng máy để trả lời câu hỏi người - 8/1956: J McCarthy, M Minsky, … đư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ờ - Ngơn ngữ lập trình LISP đời, phù hợp với nhu cầu xử lý đặc trưng trí tuệ nhân tạo Những năm 60: Có nhiều đề án trí tuệ nhân tạo - Chương trình chứng minh định lý hình học phẳng - Hệ thống giải tốn tổng qt GPS - Chương trình ELIZA có khả làm việc giống chuyên gia phân tích tâm lý Những năm 70: Bắt đầu khai thác ứng dụng kết nghiên cứu trí tuệ nhân tạo Các thành trí tuệ nhân tạo thuộc lĩnh vực sau: - Biểu diễn tri thức suy diễn - Hệ chuyên gia - Xử lý ngôn ngữ tự nhiên (cho phép người liên lạc với máy, tiếng Anh) - Người máy thơng minh Những năm 80: Trí tuệ nhân tạo thâm nhập vào ngành kinh tế: máy giặt, máy ảnh sử dụng trí tuệ nhân tạo Những năm 90: Trí tuệ nhân tạo đạt thành tựu: - 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: chế suy lý, - Trí tuệ nhân tạo phân tán, tốn học, mơ hình tính tốn,… Vào ngày 11 tháng năm 1997, máy tính Deep Blue IBM trở thành máy tính đánh bại nhà vô địch cờ vua giới, Garry Kasparov Siêu máy tính xây dựng framework IBM, có khả tính tốn 200 triệu nước giây Khả tính tốn Deep Blue cải thiện với việc phân tích hàng ngàn trận đấu người chơi cờ vua giỏi giới Thế kỷ 21: Big Data, Deep Learning ứng dụng thương mại rộng rãi Trí tuệ nhân tạo: - Sự đời Deep Learning với Neural Network tạo lời giải cho vấn đề phức tạp nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên, chơi game… - Một số kiện bật Trí tuệ nhân tạo giai đoạn bao gồm việc AI DeepMind chơi Atari Games AlphaGo đánh bại kì thủ cờ vây Lee Sedol Một số ứng dụng trí tuệ nhân tạo: Một số ứng dụng nhắc đến AI như; Dịch tự động, nhận dạng chữ viết, nhận dạng tiếng nói, tìm kiếm thơng tin, robot, lái xe tự động,… Trí tuệ nhân tạo chia thành nhóm: Một nhóm dùng máy tính để bắt chước hành vi người, nhóm thiết kế máy tính thơng minh độc lập, có khả tự học hỏi tự suy nghĩ giải vấn đề người Các lĩnh vực trí tuệ nhân tạo: Trị chơi tốn đố Suy luận chứng minh định lý tự động Các hệ chuyên gia (các hệ tri thức) Xử lý ngôn ngữ tự nhiên Lập kế hoạch người máy Máy học Mạng Neuron giải thuật di truyền Tìm kiếm … 1.2 Chi tiết thuật toán quay lui Kỹ thuật quay lui (Backtracking) tên gọi nó, trình phân tích xuống quay lui trở lại theo đường qua Tại bước phân tích chưa giải vấn đề cịn thiếu liệu nên phải phân tích điểm dừng, nơi xác định lời giải chúng xác định (hoặc không nên) theo hướng Từ điểm dừng quay ngược trở lại đường mà qua để giải vấn đề tồn đọng cuối ta giải vấn đề ban đầu Quy trình thường cài đặt hàm đệ quy mà thể hàm lấy thêm biến gán tất giá trị cho biến đó, với lần gán trị lại gọi chuỗi đệ quy để thử biến Giải thuật quay lui tỏ hiệu trường hợp mà ban đầu tưởng có nhiều khả lựa chọn, sau số khả cịn sót lại sau tiến trình kiểm tra xa Trong tốn xếp thời khóa biểu, chẳng hạn việc tổ chức vòng đấu thể thao, lựa chọn thời gian cho số trận đấu ban đầu thường dễ, sau, ràng buộc làm giảm đáng kể khả Giả sử toán cần gán giá trị cho n biến, tìm lời giải tốn bước mơ tả sau: Bắt đầu phép gán rỗng, chưa gán giá trị cho biến { } Nếu tất biến gán giá trị, in lời giải khỏi chương trình Tìm giá trị để gán cho biến chưa có giá trị mà khơng xung đột với các biến gán trước (xung đột hay không dựa tập ràng buộc) Nếu khơng tìm giá trị thỏa mãn ràng buộc cho biến xét hủy bỏ phép gán giá trị cho biến liền trước tìm giá trí cho Nếu biến khơng cịn giá trị phù hợp để gán tốn khơng có lời giải Mã giả cho thuật tốn quay lui: Backtracking(k) { for([Mỗi phương án chọn i(thuộc tập D)]) { if ([Chấp nhận i]) { [Chọn i cho X[k]]; if ([Thành công]) { [Đưa kết quả]; } else { Backtracking(k+1); [Bỏ chọn i cho X[k]]; } } } } Ví dụ minh họa: Liệt kê dãy nhị phân độ dài N Ý tưởng: Biểu diễn dãy nhị phân độ dài N dạng (x1, x2, …, xn) Ta liệt kê dãy cách dùng giá trị {0,1} cho xi Với giá trị giá trị thử gán cho xi lại thử giá trị gán cho xi+1… Chương tình liệt kê thuật tốn viết: Procedure(i:Integer); Var J:Integer; Begin For j:=0 to Begin x[i]:=j; If i=n then Incauhinh Else Try(i+1); End; End; CHƯƠNG 2: ÁP DỤNG XỬ LÝ B I TỐN 2.1 Phát biểu tốn Bài tốn tám quân hậu toán đặt tám quân hậu bàn cờ vua kích thước 8×8 cho khơng có quân hậu "ăn" quân hậu khác, hay nói khác khơng qn hậu có để di chuyển theo quy tắc cờ vua Màu qn hậu khơng có ý nghĩa tốn Như vậy, lời giải toán cách xếp tám quân hậu bàn cờ cho hai quân đứng hàng, cột đường chéo Bài toán tám quân hậu tổng qt hóa thành tốn đặt n quân hậu bàn cờ n×n (n ≥ 4) 2.2 Mơ hình hóa tốn Bài tốn qn hậu biểu diễn thành phần sau: - Trạng thái: mảng chiều phần tử HAU[0,1, ,7], phần tử HAU[i] biểu diễn dòng đặt hậu cột i Ví dụ HAU[i]=j có nghĩa hậu cột I đặt dòng j - Trạng thái đầu: Một mảng ngẫu nhiên phần tử, phần tử nhận giá trị từ đến - Trạng thái đích: Gán giá trị khác phạm vi từ đến cho phần tử mảng cho qn hậu khơng ăn - Chi phí: khơng xác định 2.3 Các bước giải tốn Bước 1: Trạng thái đầu toán ta đạt quân hậu vị trí hàng thứ k = bàn cờ Các vị trí quân hậu lưu vào mảng chiều số nguyên HAU[8]