Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
663,39 KB
Nội dung
0 Mục lục Chapter Contents Mục lục Tài liệu tham khảo Phân công công việc đề tài .5 Lời nói đầu Chapter Nội dung I LÝ THUYẾT Tổng quan trò chơi Cờ Vua 1.1 Giới thiệu trò chơi 1.2 Các quy tắc trò chơi .7 Một số khái niệm : 10 2.1 Dạng trò chơi: .10 2.2 Cây trò chơi: 10 2.3 Vét cạn: 10 2.4 Chiến lược tìm kiếm 11 THUẬT TOÁN .12 3.1 Lượng giá cờ : 12 3.2 Thuật toán Minimax 13 3.3 Cải tiến Alpha – Beta: 14 3.4 Hướng cải thiện việc tỉa nhánh thuật toán AlphaBeta 18 II GIAO DIỆN ỨNG DỤNG .18 II.1 Biểu diễn bàn cờ quân cờ .18 II.2 Sinh nước .19 II.3 Kiểm tra giới hạn bàn cờ 20 II.4 Đánh giá cờ 21 II.5 Xử lí nước "thử" 22 II.6 Xử lí điều khiển người chơi 25 II.7 Cập nhật nước 26 II.8 Vịng lặp xử lí trị chơi 26 II.9 Chạy thử 26 0 0 Tài liệu tham khảo GiBo trình Artificial Intelligence – Stuart Russell, Peter Norvig 1994 Slide TrJ tuê K nhân tLo –GV Ngô Văn Linh 0 Phân công công việc đề tài Nguyễn Thị Lương: tìm tài liệu, hiểu thuật toBn, cài đặt thử nghiệm Trình Xuân Hương: tìm hiểu thuật toBn minimax, cắt tỉa alphabeta làm bBo cBo, slide Nguyễn Anh Tuấn: tìm hiểu hàm đBnh giB, thuyết trình Nguyễn Thu Hương: tìm hiểu thuật toBn, làm slide 0 Lời nói đầu Trong thời đLi mà công nghiệp tự động hóa chiếm vị trJ khơng thể thiếu kinh tế phBt triển, mBy móc chứng tỏ ưu vượt trội nhờ chJnh xBc, độ ổn định cao,… Nhưng đằng sau đó, mBy người điều khiển, trJ tuệ mBy móc người cài đặt mà có Vì vậy, tri thức người ln yếu tố then chốt Từ năm 50 kỉ XX, trJ tuệ nhân tLo bắt đầu nhen nhóm, mà đây, ta thấy có bước phBt triển vượt bậc, khơng ngừng Để hiểu rõ AI, chúng em định lựa chọn trò chơi cờ vua, trò chơi cổ điển trò chơi biểu tượng trJ tuệ để hoàn thành tập lớn mơn học Dưới phần trình bày bBo cBo môn học thông qua đề tài nêu Hiện tLi, chương trình chúng em cịn nhiều thiếu sót, mong nhận ý kiến góp ý tư vấn từ thầy cBc bLn để chúng em trau dồi thêm cho thân kiến thức hữu Jch Chúng em xin chân thành cảm ơn ! 0 Chapter Nội dung I LÝ THUYẾT Tổng quan trò chơi Cờ Vua 1.1 Giới thiệu trò chơi Cờ vua (tên tiếng Anh: Chess), trước gọi Cờ quốc tế, trị chơi quốc tế mơn thể thao trJ tuệ cho người chơi Ngày nay, cờ vua trò chơi phổ biến giới với hàng triệu người tLi nhà riêng, câu lLc bộ, trực tuyến, từ xa cBc giải đấu Trò chơi diễn bảng hình vng, gọi bàn cờ, gồm hàng (đBnh số từ đến 8) cột (đBnh cBc chữ cBi từ a đến h), tLo 64 ô hình vuông với cBc màu đậm nhLt xen kẽ nhau, với người chơi có màu nhLt hàng cuối bên tay phải ngồi vào bàn chơi cờ Mỗi người bắt đầu vBn cờ với 16 quân cờ cBc quân sau đối phương xong nước (hoàn thành nước đi) CBc quân cờ bên bao gồm Tốt, Mã, Tượng, Xe, Hậu Vua Người cầm quân trắng người đầu tiên; người cầm quân đen CBc quân Hậu Xe gọi quân nặng, Tượng Mã gọi quân nhẹ 1.2 Các quy tắc trò chơi Khi vBn cờ vua bắt đầu, người chơi cầm quân đen người chơi lLi cầm quân trắng Việc chọn lựa cầm quân đen hay trắng phụ thuộc vào thể thức chơi giải trJ hay thi đấu 0 hệ thống có tổ chức Nó hai người thỏa thuận (giải trJ) định trọng tài giải đấu Bên cầm quân trắng ln ln trước có ưu nhỏ so với bên cầm quân đen CBc quân cờ cần phải xếp bàn cờ tiêu chuẩn với ô nằm hàng cuối bên tay phải người chơi có màu nhLt CBc quân cờ có nước khBc nhau: Xe (ký hiệu quốc tế R - Rook) di chuyển theo cBc đường thẳng dọc theo cột hay hàng tới cịn trống mà khơng có qn cản đường hay tới bị quân đối phương chiếm giữ (ăn quân) vượt qua qn đứng NgoLi lệ trường hợp nhập thành Khi nhảy qua qn Vua để đứng cLnh Chỉ có Xe có nước Tượng (ký hiệu quốc tế B - Bishop) di chuyển theo đường chéo tới có màu với ngun lý tương tự Xe tới cịn trống hay ô bị quân đối phương chiếm giữ (ăn quân) Hậu (ký hiệu quốc tế Q - Queen) có nước tổ hợp đơn giản chuyển động Xe Tượng Trong nước di chuyển theo đường chéo đường thẳng dọc theo cột hay hàng, với nguyên lý ăn quân giống Tượng Xe Mã (ký hiệu quốc tế N - Knight) di chuyển tới cịn trống hay bị qn đối phương chiếm giữ (ăn quân) theo dLng hình chữ L (hình chữ nhật 3×2 hay 2×3) Qn Mã khơng bị cản cờ tướng Tốt (khơng cần ký hiệu) di chuyển thẳng phJa trước ô lần tới cịn trống (đi mà khơng ăn qn), di chuyển quân để ăn quân đối phương chéo VJ dụ, Tốt trắng tLi c4 có quyền ăn quân đối phương tLi b5 d5 hai có qn đối phương chiếm di chuyển xuống c5 cịn trống, trừ hai trường hợp sau: 0 Nó di chuyển từ vị trJ xuất phBt ban đầu tới ô chưa bị chiếm giữ, nhảy qua qn khBc để tới VJ dụ Tốt trắng tLi g2 tới g3 g4 nước cBc ô chưa bị chiếm giữ, tới g4 g3 có qn chiếm giữ Trong trường hợp quân Tốt bên trắng đLt tới hàng (vJ dụ tới ô e5) quân Tốt thuộc hai cột bên đen nằm bên cLnh cột mà Tốt trắng chiếm giữ (trong trường hợp cho cột d cột f) từ vị trJ xuất phBt (d7 hay f7) nhảy liền tới d5/f5 Tốt trắng tLi vị trJ e5 tLi nước sau có quyền ăn Tốt đen tLi d5/f5 di chuyển tiếp tới ô d6/f6 Quyền tự động mất, tLi nước sau quân trắng di chuyển quân khBc Tương tự cho Tốt đen chiếm giữ hàng Đây trường hợp mà cờ vua người ta gọi bắt tốt qua đường (en passant) Tốt đặc điểm di chuyển đến hàng cuối người chơi có quyền phong cấp cho thành quân nặng hay nhẹ (Hậu, Xe, Tượng, Mã) Vua (ký hiệu quốc tế K - King) quân quan trọng nhất, Vua người chơi thua Mỗi lần ăn quân di chuyển sang cBc ô bao quanh ô mà tLi chiếm giữ, tới mà qn chiếm giữ hay cBc ô bị quân đối phương kiểm soBt NgoLi lệ trường hợp nhập thành Khi di chuyển qua hai đồng thời với việc di chuyển quân Xe để quân Xe đứng bên cLnh phJa cột trung tâm Ký hiệu nhập thành 0-0 (nhập thành gần) 00-0 (nhập thành xa) Xem thêm nhập thành Khi ăn quân đối phương, quân công di chuyển tới thay cho qn đối phương tLi vị trJ này, bắt tốt qua đường (en passant) ngoLi lệ Quân bị ăn loLi khỏi bàn cờ Vua không bảo vệ khỏi nước chiếu, bị chiếu người chơi phải thực cBc biện phBp nhằm cứu Vua (di chuyển Vua khỏi vị trJ bị chiếu, ăn quân chiếu hay dùng quân khBc 0 cản đường chiếu có thể) Nếu khơng thể có nước để cứu Vua người chơi bị chiếu bJ thua CBc vBn cờ kết thúc chiếu bJ Có thể bên xin thua, thua hết Có thể xảy cBc vBn cờ hịa Một vBn cờ vua hòa khi: thỏa thuận hai bên không bên dBm mLo hiểm hay không đủ lực lượng để chiếu hết, rơi vào trLng thBi (stalemate), hai bên lặp lLi nước ba lần Một số khái niệm : 2.1 Dạng trị chơi: CBc trị chơi có dLng cờ Vua, cờ Tướng, cờ Vây, cờ Caro,… trò chơi đối khBng, diễn hai đấu thủ Nói chung, cBc trị chơi chuyển dLng toBn tìm kiếm đặc biệt: tìm đường đến cBc điểm cao hai đấu thủ Đặc điểm loLi trò chơi sau: Có hai đấu thủ, người nước tới lượt CBc đấu thủ biết thơng tin tình trLng trận đấu Trận đấu khơng kéo dài vơ tận, phải diễn hài hồ, bên thắng bên thua 2.2 Cây trò chơi: cBc trLng thBi bàn cờ khBc quB trình chơi biểu diễn thành tìm kiếm ta tiến hành tìm kiếm để tìm nước tốt Ở này, cBc nút cBc tình khBc bàn cờ, cBc nhBnh nối cho ta biết từ tình cờ chuyển sang tình cờ khBc thông qua nước đơn CBc nước diễn theo cặp hai đấu thủ tiến hành Độ sâu trò chơi số tầng 2.3 Vét cạn: thuật toBn vét cLn hiểu đơn giản sinh hết tất khả xảy trị chơi Sau tiến hành lựa chọn đBnh 10 0 điểm Tốt trị giB điểm Do việc Vua tương đương với thua cờ nên giB trị vơ hLn, cờ tàn khoảng 3,5 điểm, tập này, giB trị tướng 900 điểm Tuy nhiên, giB trị thực tầm quan trọng quân cờ đơn giản Nó cịn phụ thuộc vào cờ VJ dụ quân Xe nằm vị trJ xấu giB trị Mã đứng tốt Nếu người chơi thực việc thJ quân (cho phép đối phương bắt quân có trị giB cao mình) thơng thường họ bỏ qua cBc giB trị danh định dành cho quân để đổi lấy cBc ưu chiến lược hay ưu vị trJ cBc quân công Khi chơi cờ, chắn bLn phải xét trước số hữu hLn cBc nước đi, đề tự tìm chiến thuật cho riêng Người bình thường xét 2-4 nước đi, cBc đLi kiện tướng xét từ 8-10 nước Rõ ràng xét sâu, nước chắn hội chiến thắng cao Như vậy, dựa vào chiến lược tìm kiếm ta hiểu thay xét hết tồn quB trình chơi, cBc nước từ bắt đầu đến kết thúc, ta xét số hữu hLn cBc nước Điều đảm bảo mặt thời gian, góp phần tăng độ chắn cBc nước THUẬT TOÁN 3.1 Lượng giá cờ : Giả sử có phân tJch cờ Bp dụng tât cBc luật, cBc phương phBp đBnh cờ khBc vào cờ chuyển đổi chúng thành số đLi diện ( cho điểm cờ) Mặt khBc, ta giả sử số dương Bp dụng cho cờ đấu thủ (được gọi người chơi cực đLi – maximizer), âm Bp dụng cho đấu thủ bên (được gọi người chơi cực tiểu – minimizer) Qúa trình tJnh toBn điểm cho cờ gọi quB trình lượng giB tĩnh (static evaluation) Hàm thực việc tJnh toBn gọi lượng giB tĩnh giB trị nhận gọi điểm lượng giB tĩnh 12 0 Việc lượng giB quân cờ phần quan trọng thực việc đổi quân cờ vua CBc lượng giB khBc không đBng kể cBc sBch dLy chơi cờ vua, Hậu trị giB 90 điểm, Xe trị giB 50 điểm, Tượng Mã trị giB 30 điểm Tốt trị giB 10 điểm Do việc Vua tương đương với thua cờ nên giB trị vơ hLn, cờ tàn khoảng 35 điểm, tập này, giB trị tướng 900 điểm GiB trị thực tầm quan trọng quân cờ thực gBn đơn giản cịn phụ thuộc vào cờ VJ dụ quân Xe nằm vị trJ xấu khơng có giB trị Mã đứng tốt Nếu người chơi thực việc thJ quân (cho phép đối phương bắt quân có trị giB cao mình) thơng thường họ bỏ qua cBc giB trị danh định dành cho quân để đổi lấy cBc ưu chiến lược hay ưu vị trJ cBc quân cơng 3.2 Thuật tốn Minimax Trong quB trình chơi, hai đấu thủ cố gắng để đLt điểm tuyệt đối lớn Người chơi cực đLi tìm nước dẫn đến điểm cao (hay chJnh đẩy điểm người chơi cực tiểu bớt âm hơn) TrBi lLi, người chơi cực tiểu cố để đLt tới vị trJ mà điểm nhỏ Từ ta hình thành tư tưởng thuật toBn Minmax sau: bắt đầu nút (một cờ), ta thực tất cBc nước đi, thăm tồn cBc nút trị chơi Sau thăm tồn cBc nút, kiểm tra xem tLi lượt chơi đấu thủ Nếu lượt chơi đấu thủ maximizer, ta xét toàn cBc nút nó, chọn nút có giB trị lớn Nếu lượt chơi đấu thủ minimizer, ta xét tồn cBc nút nó, chọn nút có giB trị nhỏ Cài đặt thuật toBn biểu diễn mã giả đây: 13 0 Ta thấy cBch cài đặt thuật toBn Minmax khB tương tự với cBch cài đặt đệ quy quay lui, kết hợp với quy hoLch động đoLn từ chọn cBch tối ưu ĐBnh giB thuật toBn Minmax: Nếu hệ số nhBnh trung bình b ta thực tìm kiếm đến độ sâu d số nút phải lượng giB đBy ta biết b*d Đây chJnh số đo phức tLp thuật toBn Nếu b = 40, d = (cBc số thường gặp trò chơi cờ) số nút lượng giB 2560000 nút Cịn với b = 40, d = số nút lượng giB tăng lên 40 lần = 102400000 nút Toàn ý tưởng thuật toBn dựa việc chuyển đổi cờ thành số để đBnh giB Rất tiếc cBc số thường không tốt không đủ để đBnh giB hết điều Mặt khBc, thuật toBn tốn (chLy chậm) việc sinh cBc nước lượng giB tốn thời gian tJnh toBn, độ sâu trò chơi bị hLn chế nhiều Ta cần có thêm cải tiến để cải thiện tình hình 3.3 Cải tiến Alpha – Beta: 14 0 xét lLi lần cài đặt thuật toBn minmax Cải tiến Alpha – Beta cải tiến từ thuật toBn Minmax nhằm tỉa bớt nhBnh trị chơi từ làm giảm số lượng nút phải sinh thao tBc lượng giB, tăng độ sâu tìm kiếm thuật toBn trở nên hiệu hơn.Ta dễ dàng nhận thấy: đến nút, thuật toBn xét hết toàn cBc nút trò chơi bất chấp nút tốt hay xấu ChJnh điều làm cho Minmax chLy chậm nhiều lần Từ đây, ta hình thành nên cải tiến Cải tiến Alpha – Beta Để đơn giản, xét vJ dụ: CBc số liệu lượng giB cho hình Cây có độ sâu hệ số phân nhBnh Lượt chơi lượt chơi người chơi cực tiểu 15 0 Ở tầng đầu tiên, người chơi cực tiểu phải nước cho đLt tới giB trị lượng giB nhỏ Tìm kiếm nhBnh trBi trước tiên Khi xuống đến nút trBi tầng hai (cụ thể nút A) đến lượt chơi người chơi cực đLi, người chơi cực đLi tìm cBch đến nút có giB trị lớn Vậy nên chọn nút có giB trị Quay ngược lLi nút tầng thứ GJa trị tLm thời chấp nhận giB trị nhỏ đLt Tức đLt đến nút này, giB trị nhỏ thu chắn