GAMES GAMES Môn TRÍ TUỆ NHÂN TẠO GVHD TS NGUYỄN THIÊN BẢO Mã Lớp ARIN330585 06CLC CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES TRÒ CHƠI TIC TAC TOE CẮT TỈA AlPHA BETA THUẬT TOÁN MINIMAX 01 02 03 04 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES KHÁI NIỆM Các quyết định tối ưu trong games hay Lý thuyết trò chơi là một nhánh của Toán học ứng dụng Ngành này nghiên cứu các tình huống chiến thuật trong đó các đối thủ lựa chọn các hành động khác nhau để cố gắng làm tối đa kết quả nhận được Ban đầu được phát triển như là m.
GAMES Mơn: TRÍ TUỆ NHÂN TẠO GVHD: TS NGUYỄN THIÊN BẢO Mã Lớp: ARIN330585_06CLC 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES 02 TRỊ CHƠI TIC-TAC-TOE 03 THUẬT TỐN MINIMAX 04 CẮT TỈA AlPHA-BETA 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES KHÁI NIỆM Các định tối ưu games hay Lý thuyết trị chơi là nhánh của Tốn học ứng dụng Ngành nghiên cứu tình chiến thuật đối thủ lựa chọn hành động khác để cố gắng làm tối đa kết nhận Ban đầu phát triển công cụ để nghiên cứu hành vi kinh tế học, ngày Lý thuyết trò chơi sử dụng nhiều ngành khoa học, từ Sinh học tới Triết học Lý thuyết trò chơi nghiên cứu định đưa mơi trường đối thủ tương tác với Nói cách khác, Lý thuyết trị chơi nghiên cứu cách lựa chọn hành vi tối ưu chi phí lợi ích lựa chọn khơng cố định mà phụ thuộc vào lựa chọn cá nhân khác 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES BIỂU DIỄN - Dạng chuẩn tắc Trò chơi chuẩn tắc một ma trận cho biết thông tin đấu thủ, chiến lược, chế thưởng phạt Trong ví dụ, có hai đấu thủ, người chọn hàng, người chọn cột Mỗi đấu thủ có hai chiến lược, chiến lược Khi trò chơi biểu diễn dạng chuẩn tắc, người ta coi đấu thủ hành động cách đồng biểu diễn ô xác định số hiệu hàng số hiệu cột Mức thưởng phạt ghi thời, khơng biết hành động người Nếu đấu thủ có thơng tin lựa chọn đấu thủ Giá trị thứ mức thưởng phạt cho đấu thủ chơi theo hàng (trong ví dụ là Đấu thủ 1); giá trị thứ hai mức thưởng khác, trò chơi thường biểu diễn dạng mở rộng phạt cho đấu thủ chơi theo cột (trong ví dụ là Đấu thủ 2) Giả sử Đấu thủ 1 chơi hàng và Đấu thủ 2 chơi cột trái Khi đó, Đấu thủ 1 nhận điểm và Đấu thủ 2 nhận điểm 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES BIỂU DIỄN - Dạng mở rộng Các trò chơi dạng mở rộng cố gắng mơ tả trị chơi có thứ tự quan trọng Ở đây, trị chơi biểu diễn bằng cây (như hình bên trái) Mỗi đỉnh (hoặc nút) biểu diễn điểm mà người chơi lựa chọn Người chơi rõ số ghi cạnh đỉnh Các đoạn thẳng từ đỉnh biểu diễn hành động cho người chơi Mức thưởng phạt ghi rõ đáy Trong trị chơi hình, có hai người chơi. Đấu thủ 1 đi trước chọn F hoặc U. Đấu thủ 2 nhìn thấy nước của Đấu thủ 1 và chọn A hoặc R Giả sử Đấu thủ 1 chọn U và sau đó Đấu thủ 2 chọn A Khi đó, Đấu thủ 1 được điểm và Đấu thủ 2 được điểm 02 TRÒ CHƠI TIC-TAC-TOE NGUỒN GỐC Theo sách "Tic Tac Toe: And Other Three-In-A Row Games from Claudia Zaslavsky (1917 – 2006) Ancient Egypt to the Modern Computer" tác giả Claudia Zaslavsky, Nhiều gọinhà khác trịtốn chơihọc "Tic(Mathematics Tac Toe" ghi nhậnvà người Mỹ,tên giáo dục Educator) nhà năm xưa Đầu tiên, có tên theo tiếng Anh "noughts and crosses" vào với năm 1964 nghiên cứu mối quan hệ tốn học văn hóa Tic dânTac tộcToe có liên hệ đến trị chơi "tick-tack", tên gọi xưa phiên trò chơi Backgammon miêucótảliên năm (Ethnomathematics), trị chơi "Tic Tac Toe" hệ đến loại1558 trò Trong kỷ thứ 20, người Mỹ đổi tên trò chơi từ "noughts and cổ crosses" chơi thời Ai Cập xưa thành "tic-tac-toe" 02 TRÒ CHƠI TIC-TAC-TOE LUẬT CHƠI Đây trị chơi cho người chơi chơi giấy máy Những người thay phiên đánh dấu (X,O) vào khoảng trống lưới × Người chơi thành công việc đặt ba dấu họ thành hàng ngang, dọc chéo người chiến thắng Đây trò chơi giải (có thể thắng thua hịa) với kết hòa bắt buộc với giả định chơi tốt từ hai người chơi 02 TRÒ CHƠI TIC-TAC-TOE LỢI ÍCH - Tăng khả tập trung cao độ, rèn luyện tính kiên trì, bình tĩnh tình - Giúp trí não thường xuyên làm việc, tư sắc sảo, logic hơn, nâng cao khả ghi nhớ - Tăng khả phân tích tình huống, sáng tạo nước - Giúp thoải mái, thư giãn sau làm việc, học tập căng thẳng 03 THUẬT TOÁN MINIMAX KHÁI NIỆM Minimax giải thuật thuật toán đệ quy lựa chọn bước trị chơi có hai người cách định giá trị cho Node trị chơi sau tìm Node có giá trị phù hợp để bước 03 THUẬT TOÁN MINIMAX CÁC KHÁI NIỆM - Cây trò chơi (Game tree): Đại khái sơ đồ hình thể trạng thái, trường hợp trò chơi theo nước - Mỗi node biểu diễn trạng thái trò chơi trò chơi - Node gọi nút trị chơi kết thúc (trạng thái trị chơi lúc thắng, thua hịa) 03 THUẬT TỐN MINIMAX THUẬT TOÁN Hai người chơi game đại diện MAX MIN MAX đại diện cho người chơi ln muốn chiến thắng cố gắng tối ưu hóa ưu cịn MIN đại diện cho người chơi cố gắng cho người MAX giành số điểm thấp tốt Giải thuật Minimax thể cách định trị Node trò chơi: Node thuộc lớp MAX gán cho giá trị lớn Node Node thuộc lớp MIN gán cho giá trị nhỏ Node Từ giá trị người chơi lựa chọn cho nước hợp lý 03 THUẬT TỐN MINIMAX VÍ DỤ 03 THUẬT TỐN MINIMAX ĐÁNH GIÁ - Ưu điểm: Tìm kiếm nước sau lựa chọn nước tốt nhất, giải thuật có tính chất vét cạn nên khơng bỏ sót trạng thái - Khuyết điểm: + Đối với trị chơi có khơng gian trạng thái lớn caro, cờ tướng… việc áp dụng giải thuật Minimax có lẽ khơng cịn hiệu bùng nổ tổ hợp lớn + Giải thuật áp dụng nguyên lý vét cạn không tận dụng thông tin trạng thái để lựa chọn nước đi, duyệt hết trạng thái nên tốn thời gian Và tiếp đến hàm tính giá trị minimax nước 03 THUẬT TỐN MINIMAX function minimax(board, isMaximizingPlayer): if(CheckStateGame(curMove) == WIN_GAME) MÃ GIẢ return MAX if(CheckStateGame(curMove) == LOSE_GAME) return MIN Đầu tiên cần hàm để biết trạng thái game thắng, thua hay hòa CheckStateGame(Move) if( CheckStateGame(curMove) == DRAW_GAME) return DRAW_VALUE if isMaximizingPlayer : Tiếp theo cần tìm nước tốt cần bestVal = -INFINITY function findBestMove(board): for each move in board : bestMove = NULL value = minimax(board, false) for each move in board : bestVal = max( bestVal, value) if current move is better than bestMove return bestVal bestMove = current move return bestMove else : bestVal = +INFINITY for each move in board : value = minimax(board, true) bestVal = min( bestVal, value) return bestVal 04 CẮT TỈA AlPHA-BETA ĐỊNH NGHĨA Alpha: lựalà chọn naycho chothuật ngườitốn chơiminimax MAX Nósẽ nhận Cắt tỉa Đó alpha-beta mộttốt kỹ thuậtcho tối đến ưu hóa giá caotrong có thểtiếp thảotrịluận phần theo Nhu cầu cắt tỉa xuất phát từ thực tế số trường hợp, định trở nên phức tạp Trong đó, số nhánh vơ Beta: Đây lựa chọn tạp tốt chohình đến cho MIN phải giá trị thấp dụng làm tăng độ phức mơ Vì vậy, để tránh điều này, việc cắt tỉa Alpha-Beta xuất để máy tính khơng Lưu Mỗitồn nút phải theo dõinút cácbất giáthường trị alpha vàlàm beta Alpha phảiý:nhìn Các cho thuật tốn bịchỉ chậm Dođược đó, cập đến tương beta cập nhật bằngnhật cáchkhi loại bỏlượt MAX nút này, thuậttự, tốn trở nênchỉ nhanh chóng hội MIN 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước Đầu chúng tacủa bắt đầunhỏ vớihơn bước di nên Bước 1: 2: Vì giátiên trị ban đầu alpha beta chuyển ban Ban đầubớt xác định giá Vì trị chúng tơi đãđầu khơng lược Bây đến lượtcác MAX alpha vànút beta trường xấusẽ tức αtoán = -∞Giá trị β= vậy, D, giá trị củahợp alpha tính + ∞.alpha Chúng sẽDlược bỏmax nút (2, 3) khiVì alpha tạitơi nút vậy, lớn giá trị alpha beta nút D 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước 3: Trên nút B đến lượt cho MIN Vì vậy, nút B, giá trị alpha beta (3, ∞) Vì vậy, nút B giá trị alpha = - ∞ beta Trong bước tiếp theo, thuật toán duyệt qua nút nút B nút E, giá trị α = -∞ β = chuyển 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước 4: Bây đến lượt MAX Vì vậy, nút E, tìm MAX Giá trị alpha E - ∞ so sánh với Vì vậy, MAX (- ∞, 5) Vì vậy, nút E, alpha = 5, Beta = Bây thấy alpha lớn beta thỏa mãn điều kiện cắt bỏ để cắt bỏ nút kế thừa phù hợp nút E thuật tốn khơng duyệt giá trị nút E 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước Trong tiếp thuậtsẽ toán lạiso đến Bước 5: 6:Tại nútbước F, giá trị theo, alpha sánh nút từ nútbên B Tại A, Vì alpha vớiAnhánh tráinút vậy,sẽ MAX (0,thay 3) sẽđổi thành giá trị lớn ∞, 3) Vìlàvậy, sau so sánh vớiMAX con(-bên phải MAX giá trị vàαbeta nút A lần (3, (3,1) = alpha vẫn 3, giá lượt trị nút của+F ∞) chuyển đến nút C Các giá trị tương tự sẽvà trởsẽthành chuyển đến nút F 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước 7: Nút F trả giá trị nút cho C so sánh với giá trị beta C Bây đến lượt cho MIN Vì vậy, MIN (+ ∞, 1) Bây nút C, α = 3, β = alpha lớn beta, điều lần thỏa mãn điều kiện lược bỏ Vì vậy, nút nút C tức G bị lược bỏ thuật tốn khơng tính tồn G 04 CẮT TỈA AlPHA-BETA HOẠT ĐỘNG Bước 8: C trả giá trị nút cho A giá trị tốt A MAX (1, 3) Cây đại diện cuối hiển thị nút tính tốn nút khơng tính tốn Vì vậy, ví dụ này, giá trị tối ưu cực đại 04 CẮT TỈA AlPHA-BETA HIỆU QUẢ Hiệu việc cắt tỉa alpha-beta dựa thứ tự mà nút kiểm tra Thứ tự di chuyển đóng vai trị quan trọng việc cắt tỉa alpha beta Có hai loại thứ tự di chuyển Alpha beta cắt tỉa: Thứ tự lý tồitưởng tệ : Trong : Trong số trường trường hợp hợp alpha alpha beta, beta cắt nhiều tỉa khơng nút có nút cắt tỉa thuật số toán nút Đây được thuật gọi toán thứ tự cắt lý tỉa tưởng hoạt trongđộng việc giống cắt tỉa Trong thuật trường toán hợp minimax này, chuyển tiêu chuẩn độngĐiều tốt tiêu xảy tốn ởrất phía nhiều bên thời trái gian Chúng yếu tố tơialpha áp dụng beta DFSvà docũng khơng mang tìmlạikiếm bênkết trái củahiệu câyquả sâuĐây gấpđược đôi so gọi với thuật thứ tựtoán tồi tệ minimax trong việc cắtmột tỉa Trong khoảng trường thời hợp gian này, chuyển động tốt xảy phía bên phải THANK YOU ANY QUESTION? ... if(CheckStateGame(curMove) == WIN _GAME) MÃ GIẢ return MAX if(CheckStateGame(curMove) == LOSE _GAME) return MIN Đầu tiên cần hàm để biết trạng thái game thắng, thua hay hòa CheckStateGame(Move) if(... CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES 02 TRÒ CHƠI TIC-TAC-TOE 03 THUẬT TOÁN MINIMAX 04 CẮT TỈA AlPHA-BETA 01 CÁC QUYẾT ĐỊNH TỐI ƯU TRONG GAMES KHÁI NIỆM Các định tối ưu games hay Lý thuyết trị chơi là... phiên trò chơi Backgammon miêucótảliên năm (Ethnomathematics), trị chơi "Tic Tac Toe" hệ đến loại 155 8 trò Trong kỷ thứ 20, người Mỹ đổi tên trò chơi từ "noughts and cổ crosses" chơi thời Ai Cập