1. Trang chủ
  2. » Giáo Dục - Đào Tạo

KHÔNG GIAN TRẠNG THÁI TRÒ CHƠI CỜ VUA THEOPHƯƠNG PHÁP CẮT TỈA ALPHA-BETA

23 28 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Mục lục

  • Tài liệu tham khảo

  • Phân công công việc trong đề tài

  • Lời nói đầu

  • Chapter 1 Nội dung

  • I. LÝ THUYẾT

    • 1. Tổng quan về trò chơi Cờ Vua

      • 1.1. Giới thiệu trò chơi

      • 1.2. Các quy tắc của trò chơi

    • 2. Một số khái niệm :

      • 2.1. Dạng trò chơi:

      • 2.2. Cây trò chơi: 

      • 2.3. Vét cạn: 

      • 2.4. Chiến lược tìm kiếm

    • 3. THUẬT TOÁN

      • 3.1. Lượng giá thế cờ :

      • 3.2. Thuật toán Minimax

      • 3.3. Cải tiến Alpha – Beta:

      • 3.4. Hướng cải thiện việc tỉa nhánh của thuật toán AlphaBeta

  • II. GIAO DIỆN ỨNG DỤNG

    • II.1. Biểu diễn bàn cờ và quân cờ

    • II.2. Sinh nước đi

    • II.3. Kiểm tra giới hạn bàn cờ 

    • II.4. Đánh giá một thế cờ 

    • II.5. Xử lí một nước đi "thử"

    •  II.6. Xử lí điều khiển của người chơi

    • II.7. Cập nhật một nước đi

    • II.8. Vòng lặp chính xử lí trò chơi

    • II.9. Chạy thử 

Nội dung

z TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN MƠN HỌC TRÍ TUỆ NHÂN TẠO Đề tài: KHƠNG GIAN TRẠNG THÁI TRỊ CHƠI CỜ VUA THEO PHƯƠNG PHÁP CẮT TỈA ALPHA-BETA Giảng viên hướng dẫn: GV Ngô Văn Linh Nhóm sinh viên thực hiện: Nguyễn Thị Lương - 2015 Nguyễn Anh Tuấn - 2016 Trình Xuân Hương - 20162076 Nguyễn Thu Hương - 2016 Hà Nội – 2018 Mục lục Contents Tài liệu tham khảo Giáo trình Artificial Intelligence – Stuart Russell, Peter Norvig 1994 Slide Trí tuệ nhân tạo –GV Ngô Văn Linh 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 toán, cài đặt thử nghiệm Trình Xuân Hương: tìm hiểu thuật toán minimax, cắt tỉa alpha- beta làm báo cáo, slide Nguyễn Anh Tuấn: tìm hiểu hàm đánh giá, thuyết trình Nguyễn Thu Hương: tìm hiểu thuật toán, làm slide Lời nói đầu Trong thời đại mà cơng nghiệp tự động hóa chiếm vị trí thiếu kinh tế phát triển, máy móc chứng tỏ ưu vượt trội nhờ chính xác, độ ổn định cao,… Nhưng đằng sau đó, máy người điều khiển, trí tuệ máy móc người cài đặt mà có Vì vậy, tri thức người yếu tố then chốt Từ năm 50 kỉ XX, trí tuệ nhân tạo bắt đầu nhen nhóm, mà đây, ta thấy có bước phát 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 trí tuệ để hồn thành tập lớn mơn học Dưới phần trình bày báo cáo mơn học thông qua đề tài nêu Hiện tại, 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 các bạn để chúng em trau dồi thêm cho thân kiến thức hữu ích Chúng em xin chân thành cảm ơn ! Chapter Nội dung 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 I Cờ quốc tế, trò chơi quốc tế môn thể thao trí 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 tại nhà riêng, câu lạc bộ, trực tuyến, từ xa các giải đấu Trò chơi diễn bảng hình vng, gọi bàn cờ, gồm hàng (đánh số từ đến 8) cột (đánh các chữ cái từ a đến h), tạo 64 hình vng với các màu đậm nhạt xen kẽ nhau, với người chơi có màu nhạt 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 ván cờ với 16 quân cờ các quân sau đối phương xong nước (hoàn thành nước đi) Các 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 Các 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 ván cờ vua bắt đầu, người chơi cầm quân đen người chơi lại 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 trí hay thi đấu hệ thống có tổ chức Nó hai người thỏa thuận (giải trí) định trọng tài giải đấu Bên cầm quân trắng luôn trước có ưu nhỏ so với bên cầm quân đen Các 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 nhạt Các quân cờ có nước khác nhau: Xe (ký hiệu quốc tế R - Rook) di chuyển theo các đườ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 quân đứng Ngoại lệ trường hợp nhập thành Khi nhảy qua quân Vua để đứng cạnh 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 nguyên lý tương tự Xe tới cịn trống hay bị qn đố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 dạng 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 phía trước lần tới cịn trống (đi mà không ăn quân), di chuyển quân để ăn quân đối phương chéo Ví dụ, Tốt trắng tại c4 có quyền ăn qn đối phương tại b5 d5 hai có quân đối phương chiếm di chuyển xuống ô c5 cịn trống, trừ hai trường hợp sau: Nó di chuyển từ vị trí xuất phát ban đầu tới ô chưa bị chiếm giữ, nhảy qua qn khác để tới Ví dụ Tốt trắng tại g2 tới g3 g4 nước các chưa bị chiếm giữ, khơng thể tới g4 g3 có quân chiếm giữ Trong trường hợp quân Tốt bên trắng đạt tới hàng (ví dụ tới ô e5) quân Tốt thuộc hai cột bên đen nằm bên cạnh cột mà Tốt trắng chiếm giữ (trong trường hợp cho cột d cột f) từ vị trí xuất phát (d7 hay f7) nhảy liền tới d5/f5 Tốt trắng tại vị trí e5 tại nước sau có quyền ăn Tốt đen tại d5/f5 di chuyển tiếp tới ô d6/f6 Quyền tự động mất, tại nước sau quân trắng di chuyển quân khác 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 qn di chuyển sang các bao quanh mà tại chiếm giữ, khơng thể tới mà qn chiếm giữ hay các ô bị quân đối phương kiểm soát Ngoại 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 cạnh phía 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 quân đối phương tại vị trí này, bắt tốt qua đường (en passant) ngoại lệ Quân bị ăn loại 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 các biện pháp nhằm cứu Vua (di chuyển Vua khỏi vị trí bị chiếu, ăn quân chiếu hay dùng quân khác 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 bí thua Các ván cờ kết thúc chiếu bí Có thể bên xin thua, thua hết Có thể xảy các ván cờ hịa Một ván cờ vua hòa khi: thỏa thuận hai bên không bên dám mạo hiểm hay không đủ lực lượng để chiếu hết, rơi vào trạng thái (stalemate), hai bên lặp lại nước ba lần Một số khái niệm : 2.1 Dạng trị chơi: Các trị chơi có dạng cờ Vua, cờ Tướng, cờ Vây, cờ Caro,… trò chơi đối kháng, diễn hai đấu thủ Nói chung, các trị chơi chuyển dạng toán tìm kiếm đặc biệt: tìm đường đến các điểm cao hai đấu thủ Đặc điểm loại trò chơi sau: Có hai đấu thủ, người nước tới lượt Các đấu thủ biết thơng tin tình trạng 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: các trạng thái bàn cờ khác quá 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, các nút các tình khác bàn cờ, các nhánh nối cho ta biết từ tình cờ chuyển sang tình cờ khác thông qua nước đơn Các 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 toán vét cạn 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 đánh giá khá năng, từ chọn phương án tối ưu Trong cờ vua, bạn áp dụng thuật toán để tính toán nước đi, kết trả chính xác Nếu việc cho máy tính chơi cờ vua chẳng có gọi khó khăn Tuy nhiên, may mắn thay cách làm thực tượng gọi bùng nổ tổ hợp Ví dụ cờ trung bình với khả 16 nước khác (ta gọi hệ số nhánh tại nút b = 16) Như vậy, sau tầng ta có 16 nút con, nút có 16 nút Tổng số nút tại độ sâu thứ hai 16*16 = 16^2 Cứ độ sâu d có b^d nút Thử làm phép toán nhỏ, giả sử độ sâu 100 (hệ số nhánh 16 độ sâu 100 số nhỏ số thường gặp cá trò chơi cờ), áp dụng thuật toán vét cạn, ta phải duyệt 16^100 nhánh hay xấp xải 10^120 nhánh – số lớn khủng khiếp Qua phân tích ta thấy khơng thể áp dụng hồn tồn thuật toán vét cạn vào trò chơi Để tạo thuật toán đánh cờ vua tối ưu cho máy tính, phải xác định chiến lược tìm kiếm trị chơi dựa vào xây dựng nên thuật toán tối ưu cho máy tính 10 2.4 Chiến lược tìm kiếm Chiến lược tìm kiếm: Một chiến lược thường người lẫn máy dùng phân tích cờ sau số nước hai bên Sau “nhìn xa” xem bàn cớ có khả biến đổi sau số nước, ta đánh giá độ tốt xấu các cờ nhận Tiếp theo, ta chọn nước dẫn tới cờ tốt số có cân nhắc đến cách hai bên (thường xem hai người đưa lựa chọn tối ưu) Với máy cờ đánh giá tối cờ nhờ so sánh điểm lượng giá đáp trả lại Việc lượng giá quân cờ hiểu đơn giản rằng, gán quân cờ số điểm, khn khổ tập đề cập đến sau: Hậu trị giá điểm, Xe trị giá điểm, Tượng Mã trị giá điểm Tốt trị giá điểm Do việc Vua tương đương với thua cờ nên giá trị vơ hạn, cờ tàn khoảng 3,5 điểm, tập này, giá trị tướng 900 điểm Tuy nhiên, giá trị thực tầm quan trọng quân cờ đơn giản Nó cịn phụ thuộc vào cờ Ví dụ quân Xe nằm vị trí xấu khơng có giá trị Mã đứng tốt Nếu người chơi thực việc thí quân (cho phép đối phương bắt quân có trị giá cao mình) thơng thường họ bỏ qua các giá trị danh định dành cho quân để đổi lấy các ưu chiến lược hay ưu vị trí các quân công Khi chơi cờ, chắn bạn phải xét trước số hữu hạn các 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, các đại 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 quá trình chơi, các nước từ bắt đầu đến kết thúc, ta xét số hữu hạn các nước Điều đảm bảo mặt thời gian, góp phần tăng độ chắn các nước THUẬT TOÁN 3.1 Lượng giá cờ : Giả sử có phân tích cờ áp dụng tât các luật, các phương pháp đánh cờ khác vào cờ chuyển đổi chúng thành số đại diện ( cho điểm cờ) Mặt 11 khác, ta giả sử số dương áp dụng cho cờ đấu thủ (được gọi người chơi cực đại – maximizer), âm áp dụng cho đấu thủ bên (được gọi người chơi cực tiểu – minimizer) Qúa trình tính toán điểm cho cờ gọi quá trình lượng giá tĩnh (static evaluation) Hàm thực việc tính toán gọi lượng giá tĩnh giá trị nhận gọi điểm lượng giá tĩnh Việc lượng giá quân cờ phần quan trọng thực việc đổi quân cờ vua Các lượng giá khác không đáng kể các sách dạy chơi cờ vua, Hậu trị giá 90 điểm, Xe trị giá 50 điểm, Tượng Mã trị giá 30 điểm Tốt trị giá 10 điểm Do việc Vua tương đương với thua cờ nên giá trị vơ hạn, cờ tàn khoảng 35 điểm, tập này, giá trị tướng 900 điểm Giá trị thực tầm quan trọng quân cờ thực gán đơn giản cịn phụ thuộc vào cờ Ví dụ quân Xe nằm vị trí xấu khơng có giá trị Mã đứng tốt Nếu người chơi thực việc thí quân (cho phép đối phương bắt quân có trị giá cao mình) thơng thường họ bỏ qua các giá trị danh định dành cho quân để đổi lấy các ưu chiến lược hay ưu vị trí các quân cơng 3.2 Thuật tốn Minimax Trong quá trình chơi, hai đấu thủ cố gắng để đạt điểm tuyệt đối lớn Người chơi cực đại tìm nước dẫn đến điểm cao (hay chính đẩy điểm người chơi cực tiểu bớt âm hơn) Trái lại, người chơi cực tiểu cố để đạt tới vị trí mà điểm nhỏ Từ ta hình thành tư tưởng thuật toán Minmax sau: bắt đầu nút (một cờ), ta thực tất các nước đi, thăm tồn các nút trị chơi Sau thăm tồn các nút, kiểm tra xem tại lượt chơi đấu thủ Nếu lượt chơi đấu thủ maximizer, ta xét toàn các nút nó, chọn nút có giá trị lớn Nếu lượt chơi đấu thủ minimizer, ta xét tồn các nút nó, chọn nút có giá trị nhỏ Cài đặt thuật toán biểu diễn mã giả đây: 12 Ta thấy cách cài đặt thuật toán Minmax khá tương tự với cách cài đặt đệ quy quay lui, kết hợp với quy hoạch động đoạn từ chọn cách tối ưu Đánh giá thuật toán Minmax: Nếu hệ số nhánh trung bình b ta thực tìm kiếm đến độ sâu d số nút phải lượng giá đáy ta biết b*d Đây chính số đo phức tạp thuật toán Nếu b = 40, d = (các số thường gặp trị chơi cờ) số nút lượng giá 2560000 nút Còn với b = 40, d = số nút lượng giá tăng lên 40 lần = 102400000 nút Toàn ý tưởng thuật toán dựa việc chuyển đổi cờ thành số để đánh giá Rất tiếc các số thường không tốt không đủ để đánh giá hết điều Mặt khác, thuật toán tốn (chạy chậm) việc sinh các nước lượng giá tốn thời gian tính toán, độ sâu trò chơi bị hạn 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: xét lại lần cài đặt thuật toán minmax 13 Cải tiến Alpha – Beta cải tiến từ thuật toán Minmax nhằm tỉa bớt nhánh trò chơi từ làm giảm số lượng nút phải sinh thao tác lượng giá, tăng độ sâu tìm kiếm thuật toán trở nên hiệu hơn.Ta dễ dàng nhận thấy: đến nút, thuật toán xét hết toàn các nút trị chơi bất chấp nút tốt hay xấu Chính điều làm cho Minmax chạy 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 ví dụ: Các số liệu lượng giá cho hình Cây có độ sâu hệ số phân nhánh Lượt chơi lượt chơi người chơi cực tiểu 14 Ở tầng đầu tiên, người chơi cực tiểu phải nước cho đạt tới giá trị lượng giá nhỏ Tìm kiếm nhánh trái trước tiên Khi xuống đến nút trái tầng hai (cụ thể nút A) đến lượt chơi người chơi cực đại, người chơi cực đại tìm cách đến nút có giá trị lớn Vậy nên chọn nút có giá trị Quay ngược lại nút tầng thứ Gía trị tạm thời chấp nhận giá trị nhỏ đạt Tức đạt đến nút này, giá trị nhỏ thu chắn

Ngày đăng: 15/01/2022, 08:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w