Đăng ký Đăng nhập
Trang chủ Phát triển game cờ gánh...

Tài liệu Phát triển game cờ gánh

.DOCX
53
1
101

Mô tả:

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC PHÁT TRIỂN GAME CỜ GÁNH GVHD: Ths Vương Bá Thịnh TP. HỒ CHÍ MÍNH, THÁNG 06/2019 LỜI CAM ĐOAN Nhóm báo cáo luận văn xin cam đoan rằng, ngoại trừ kết quả tham khảo từ các công trình khác đã được ghi rõ trong luận văn, các nội dung được trình bày trong luận văn này là do chính chúng tôi thực hiện và chưa có nội dung nào được nộp để lấy bằng cấp ở một trường khác. TPHCM, ngày 12 tháng 04 năm 2019 2 LỜI CẢM ƠN Để có thể hoàn thành bài luận văn này, nhóm nghiên cứu đã phải trải qua quá trình đào tạo bài bản, kỹ lưỡng của các Thầy Cô Giảng Viên, Cán Bộ trong Khoa Khoa Học và Kỹ Thuật Máy Tính, trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh. Hành trình trải qua trong suốt khóa học của nhóm chúng em là hành trình trải qua nhiều thử thách và gian nan. Đã có lúc Thầy Cô vô cùng nghiêm khắc và kỷ luật với những hành vi sai trái và sự thiếu hiểu biết của chúng em. Nhưng chúng em hiểu điều đó xuất phát từ sự quan tâm và tình yêu thương của Thầy Cô. Đây là món quà vô cùng quý báu để từng thành viên trong nhóm có thể trưởng thành hơn, tích lũy được nhiều kiến thức, kinh nghiệm cho con đường tương lai. Chúng em sẽ không thể quên được những chỉ dẫn tận tình, động viên và tình cảm ấm áp của Thầy Cô dành cho từng thành viên. Cả nhóm không thể hoàn thành khóa học nếu không có những điều này. Tất cả thành viên trong nhóm nghiên cứu chân thành cảm ơn quý Thầy Cô đã dìu dắt chúng em trong suốt chặng đường vừa qua. Nhóm nghiêm cứu vô cùng biết ơn Thầy Vương Bá Thịnh đã giảng dạy cho chúng em 2 môn có ý nghĩa quan trọng, làm tiền đề cho luận văn này đó là Trí tuệ nhận tạo và Lập trình game. Đồng thời Thầy cũng là người trực tiếp hướng dẫn cả nhóm hoàn thành đề tài luận văn này. Cả nhóm xin hứa với quý Thầy Cô, sau khi ra trường chúng em sẽ là những công dân tử tế, có tri thức, có trình độ, sẽ vận dụng tất cả những kiến thức tốt đẹp mà Thầy Cô đã truyền dạy để góp phần xây dựng tổ quốc nói riêng và thế giói nói chung ngày một tốt đẹp hơn. Chúng em xin hứa! Nhóm nghiên cứu 3 TÓM TẮT Cách mạng công nghiệp 4.0 (CMCN 4.0) đã , đang và sẽ diễn ra với tốc độ nhanh chóng. Tác động mạnh mẽ của nó làm thay đổi tất cả mọi mặt của đời sống xã hội con người, về cả vật chất lẫn tinh thần. Đây là thời điểm vô cùng thách thức và cũng đầy cơ hội cho đất nước và con người Việt Nam. Đặc biệt là ngành Khoa Học Và Kỹ Thuật Máy Tính, càng phải là ngọn cờ đi đầu để nghiên cứu và ứng dụng các thành tựu công nghệ của cuộc CMCN 4.0 vào đời sống trong mọi lĩnh vực của xã hội. Việc thành hay bại sẽ quyết định trực tiếp vào khả năng Việt Nam có thể sánh vai với các cường quốc Năm Châu hay không. Trí tuệ nhân tạo (AI) là một trong những lĩnh vực quan trọng nhất của cuộc CMCN 4.0. Con người đã có thể tạo ra được AI có khả năng đánh bại con người trong một số lĩnh vực. Một số ví dụ cụ thể là:  Ngày 06/08/2018 đã đánh dấu một bước tiến lớn với ngành công nghệ AI của nhân loại, khi trí tuệ nhân tạo OpenAI của Elon Musk đã chính thức đánh bại, nói đúng hơn là “nghiền nát” 5 game thủ Dota 2 chuyên nghiệp gồm Fog, Merlini, Blitz, Capitalist và MoonMeander.  Ngày 24/1/2019 Trí tuệ nhân tạo dựa trên DeepMind của Google được ra đời mang tên AlphaStar đã đánh bại 2 game thủ Starcraft II chuyên nghiệp TLO và MaNa với tỷ số cách biệt 10-1. Nhóm nảy sinh ý tưởng về việc áp dụng AI vào trong các game trí tuệ mang tính giải trí đang thịnh hành tại Việt Nam như: Cờ Tướng , Cờ Vua , Cờ Vây, Cờ Gánh… Sau khi xem xét kỹ lưỡng, nhóm quyết định chọn game Cờ Gánh làm đề tài nghiên cứu vì mức độ phổ biến, tính đơn giản của nó, dễ tiếp cận mọi người và đề tài nghiên cứu AI về game Cờ Gánh vẫn còn khá mới mẻ Nội dung báo cáo sẽ trình bày nghiên cứu các AI sử dụng giải thuật cơ bản đến các AI sử dụng những giải thuật nâng cao. Cụ thể là 2 loại AI:  MiniMax  Monte Carlo Tree Search Với mỗi loại AI sẽ có bảng đánh giá năng lực của từng loại. Và cuối cùng là tổng kết, so sánh, đánh giá cả 2. MỤC LỤC 4 Phần 1 - Tổng quan..........................................................................................................7 Phát biểu vấn đề:.............................................................................................................7 Mục tiêu đề tài nghiên cứu:.............................................................................................7 Phần 2 - Cơ sở lý thuyết chung.......................................................................................8 1. Giới thiệu:................................................................................................................... 8 1.1. Board Game.........................................................................................................8 1.2. Cờ Gánh...............................................................................................................8 2. Luật chơi:.................................................................................................................... 9 3. Lý thuyết:..................................................................................................................11 3.1. Phân tích trò chơi...............................................................................................11 3.2. Không gian trạng thái của trò chơi.....................................................................11 3.3. Hệ số phân nhánh...............................................................................................11 3.4. Mạng nơron nhân tạo (Neural Networks)...........................................................12 3.4.1. Mạng nơron nhân tạo (Neural Networks) là gì?..........................................12 3.4.2. Một số kiểu Neural Networks.....................................................................13 3.5. AI trong game Cờ Gánh.....................................................................................16 3.6. Mô hình thiết kế.................................................................................................16 3.7. Dòng điều khiển.................................................................................................17 Phần 3 - Mô hình trí tuệ nhân tạo MiniMax................................................................19 1. Cơ sở lý thuyết:.........................................................................................................19 1.1. Hàm lượng giá...................................................................................................19 1.2. Hàm đánh giá tuyến tính có trọng số..................................................................20 1.3. Chọn các tham số...............................................................................................21 2. Hiện thực MiniMax:..................................................................................................21 Phần 4 - Mô hình trí tuệ nhân tạo Monte Carlo Tree Search.....................................26 1. Cơ sở lý thuyết:.........................................................................................................26 1.1. Bước lựa chọn:...................................................................................................28 5 1.2. Bước mở rộng:...................................................................................................29 1.3. Bước mô phỏng:.................................................................................................30 1.4. Bước truyền ngược:............................................................................................31 1.5. Lựa chọn bước di chuyển:..................................................................................31 2. Hiện thực:.................................................................................................................32 Phần 5: Thiết kế UI........................................................................................................34 1. Giao diện màn hình khởi động của Game:................................................................34 2. Giao diện khi vào chơi Game:...................................................................................35 3. Giao diện Setting Game:...........................................................................................36 Phần 6 - Kiểm chứng và đánh giá giải thuật................................................................37 Phần 7 - Tổng kết...........................................................................................................39 1. Đánh giá kết quả:......................................................................................................39 2. Đóng góp của luận văn:............................................................................................39 3. Hướng phát triển:......................................................................................................39 3.1. Các cải tiến có thể được thêm vào MiniMax......................................................40 3.2. Các cải tiến có thể được thêm vào MCTS..........................................................41 3.3. Một số hướng mở rộng trong tương lai:.............................................................42 DANH SÁCH HÌNH VẼ................................................................................................43 DANH SÁCH BẢNG VÀ BIỂU ĐỒ.............................................................................44 Tài liệu tham khảo.........................................................................................................45 Phụ Chương 1: Giải thuật Minimax.............................................................................47 Phụ Chương 2: Giải thuật MCTS.................................................................................49 Phần 1 - Tổng quan Phát biểu vấn đề: 6 Theo sự phát triển của thời đại, các nhu cầu của con người ngày càng nâng cao để phục vụ cho cuộc sống. Game là một loại hình giải trí cực kì phổ biến ở thời điểm hiện tại và ngày càng phát triển đa dạng về thể loại. Trong đó Board game là thể loại rất dễ tiếp cận với mọi người, dễ chơi, phù hợp với mọi lưới tuổi, nên chúng em đã chọn phát triển 1 game Board game có tên là: Cờ gánh. Cờ gánh là một trò chơi dân gian ở Việt Nam, rất được ưa chuộng, khá hay và thú vị. Nó đã có khá lâu đời, với mong muốn, mang lại một trò chơi, đơn giản, thú vị và cải biến thêm một chút về luật chơi, dựa trên luật chơi có sẵn, nhóm mong là trò chơi này sẽ tạo hứng thú cho người chơi. Mục tiêu đề tài nghiên cứu: Tạo ra AI có thể hiểu luật chơi và thi đấu cờ với người chơi. Tìm cách thắng được nhiều điểm nhất có thể. Kèm theo đó AI phải: -Luôn luôn đánh đúng theo luật của trò chơi. -Tìm cách đi hiệu quả dựa trên các tiêu chí cho trước. 7 Phần 2 - Cơ sở lý thuyết chung 1. Giới thiệu: 1.1. Board Game Board Game bao gồm một bề mặt chơi (board) được chia thành các lĩnh vực được điền bởi một tập hợp các phần tử di động. Một cách phổ biến nhất, các phần được liên kết trực tiếp với người chơi, trong khi bề mặt chơi thể hiện một môi trường vượt ra khỏi tầm kiểm soát trực tiếp của người chơi. Người chơi điều động các phần tử của họ trên bề mặt chơi trong một nỗ lực để nắm bắt các phần của người chơi khác, đạt được một mục tiêu, giành quyền kiểm soát lãnh thổ, hoặc có được một số mặt hàng có giá trị. Mối quan tâm chính của người chơi trong các trò chơi này là phân tích các mối quan hệ hình học giữa các phần. 1.2. Cờ Gánh Bàn cờ là một bề mặt phẳng có 25 điểm nằm tại giao điểm của một lưới vuông 5 nhân 5 như trên hình vẽ bên phải. Các đường kẻ nằm ngang, thẳng đứng hoặc đường chéo, được vẽ trên bàn cờ như hình vẽ bên dưới, thể hiện các đường di chuyển được phép của các quân cờ. Tại xuất phát điểm, các quân cờ của hai người chơi được bố trí ở các điểm nằm rìa ngoài của bàn cờ như trên hình vẽ bên dưới. Bàn cờ gánh có 16 quân chia làm hai màu cho hai người chơi. Trong bàn cờ này, phe màu xanh có 8 quân và phe màu đỏ có 8 quân được sắp như hình vẽ bên dưới. Mục tiêu của mỗi người chơi là ăn các quân cờ của đối phương. Trận cờ kết thúc khi: + Một người chơi không còn con cờ nào trên bàn, thì người kia sẽ chiến thắng + Hoặc hai người đi đến một lúc nào đó (thỏa số bước quy định ban đầu, ví dụ 200 bước đi mà vẫn chưa phân thắng thua) thì ta sẽ đếm số cờ còn lại trên bàn cờ, người chơi nào còn nhiều cờ hơn, thì người đó sẽ chiến thắng. 8 Hình 1 Hình ảnh một bàn cờ gánh 2. Luật chơi: Mỗi quân cờ di chuyển từng bước một theo đường thẳng hay đường kẽ đến giao điểm trống kế tiếp. Hình 2 Mô tả cách di chuyển của một quân cờ Có hai cách để ăn quân cờ của đối phương: 9  Gánh: Khi một quân cờ của phe này đi vào giữa hai quân cờ của phe kia, thì hai quân cờ hai bên sẽ ăn. Trong Hình 3, quân cờ H di chuyển theo mũi tên xanh vào giữa hai quân đỏ N và Q. Hai quân này sẽ bị ăn mất. Hình 3 Hình ảnh về cách Gánh để ăn hai quân cờ khác  Nhảy qua đầu để ăn: Một quân cờ ở vị trí E, có thể bay qua đầu quân cờ ở vị trí J, và ăn mất quân cờ ở vị trí J. Hình 4 Hình ảnh về cách Nhảy qua đầu quân cờ khác để ăn 3. Lý thuyết: 10 3.1. Phân tích trò chơi Để biết những gì mong đợi từ một agent1, tốt nhất là có một số nghiên cứu toán học về Cờ Gánh được thực hiện trước khi phát triển AI để xác định các thuộc tính như hệ số phân nhánh và kích thước của không gian tìm kiếm, có nghĩa là số lượng trạng thái của trò chơi là duy nhất. Các thuộc tính này có thể cho biết liệu có thể giải quyết hoàn toàn trò chơi hay không hoặc có bao nhiêu di chuyển một agent có thể được mong đợi tìm kiếm trước khi di chuyển. 3.2. Không gian trạng thái của trò chơi Tổng số trạng thái khác nhau trong một trò chơi Cờ Gánh rất quan trọng, vì nếu con số này đủ nhỏ, trò chơi có thể được giải quyết bằng cách tìm ra một chiến lược chiến thắng nhất định cho một trong những người chơi. Để làm được điều này, trước hết chúng ta cần một công thức mô tả số cách một phần tử có thể được đặt trên bảng trò chơi. Một game Cờ Gánh bắt đầu với 16 quân cờ trên bàn cờ 5x5. Vì vậy có thể đặt quân cờ đầu tiên lên 1 trong 25 vị trí trên bàn cờ, quân thứ 2 là 1 trong 24 vị trí còn lại. Tương tự với các trạng thái bàn cờ có 15, 14… quân cờ. Tiếp tục như vậy ta có kết quả là: 25!/9! + c 116*25!/10! + c 216*25!/11! +.. + c 15 16 *25!/24! = 25!/9! *(1 + c 116*/10 + c 216*/(10*11) + c 316*/(10*11*12)+....+c 15 16 */(10*11*12*...*24)) = (circa)1.5986532e+20 3.3. Hệ số phân nhánh Yếu tố phân nhánh rất quan trọng vì nó xác định số trạng thái mà một agent phải xem xét để tìm cách di chuyển tốt nhất bằng cách duyệt qua các trạng thái đó trong trò chơi. 1 agent: một đối tượng chơi cờ một cách thông minh Mặc dù không thể thay đổi hệ số phân nhánh, vì nó là riêng biệt cho mỗi trò chơi, có thể thay đổi thuật toán kiểm tra cây trò chơi. Những thay đổi này có thể cho thuật toán loại bỏ một số trạng thái trước khi chúng được kiểm tra. Khi điều này được thực hiện, hệ 11 số phân nhánh yếu tố để xác định nhánh của các trạng thái mà thuật toán phải mở rộng để tìm bước di chuyển tốt nhất, trở nên nhỏ hơn so với với hệ số phân nhánh trung bình. Bằng cách phân loại các trạng thái không thể dẫn đến bước đi tốt nhất có thể, thuật toán có thể sử dụng nhiều thời gian hơn để xem các trạng thái có thể là bước đi tốt nhất, và theo cách đó làm giảm hệ số phân nhánh. 3.4. Mạng nơron nhân tạo (Neural Networks) 3.4.1. Mạng nơron nhân tạo (Neural Networks) là gì? Mạng nơron nhân tạo, Artificial Neural Network (ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơron sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (nơron) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu..) thông qua một quá trình học từ tập các mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron. Cấu trúc neural nhân tạo: Hình 5 Cấu tạo một Neural Các thành phần cơ bản của một nơron nhân tạo bao gồm: • Tập các đầu vào: Là các tín hiệu vào (input signals) của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều. 12 • • • • • Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết – Synaptic weight. Trọng số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là wkj. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học. Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào như một thành phần của hàm truyền. Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng. Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa là một đầu ra. Như vậy nơron nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra (là kết quả của hàm truyền). 3.4.2. Một số kiểu Neural Networks Cách thức kết nối các nơron trong mạng xác định kiến trúc (topology) của mạng. Các nơron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi nơron đều được kết nối với tất cả các nơron khác, hoặc kết nối cục bộ (partially connected) chẳng hạn chỉ kết nối giữa các nơron trong các tầng khác nhau. Người ta chia ra hai loại kiến trúc mạng chính: Tự kết hợp (autoassociative): là mạng có các nơron đầu vào cũng là các nơron đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp 13 Hình 6 Mạng tự kết hợp Kết hợp khác kiểu (heteroassociative): là mạng có tập nơron đầu vào và đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, … thuộc loại này. Hình 7 Mạng kết hợp khác kiểu Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các nơron đầu ra tới các nơron đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng. 14 Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng không có các kết nối ngược trở lại từ các nơron đầu ra về các nơron đầu vào, mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của nơron. Các mạng nơron truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất, từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó. Các mạng kiểu Perceptron là mạng truyền thẳng. Hình 8 Mạng truyền thẳng Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các kết nối từ nơron đầu ra tới nơron đầu vào. Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc loại này. Hình 9 Mạng phản hồi 3.5. AI trong game Cờ Gánh Nếu bạn chọn một agent để chơi thay một người chơi, điều không có ở đó. Vậy agent này phải cố gắng giải quyết một vấn đề nhất định cho người chơi đó. Trong trường hợp này, vấn đề là chiến thắng trong một game Cờ Gánh. Vấn đề này không phải là dễ 15 dàng để giải quyết, khi trò chơi có đối thủ chống lại nó. Trò chơi mà các agent đang chơi hoàn toàn có thể quan sát được, các agent có toàn quyền truy cập vào tất cả các thông tin trong trạng thái trò chơi hiện tại. Trò chơi cũng là tuần tự và tĩnh, vì các người chơi di chuyển sau người chơi khác và các thông tin được lưu trữ trong các trạng thái là trạng thái nhất quán cho bàn cờ. Khi các agent cạnh tranh với nhau trong môi trường như vậy, người đại diện thường sử dụng kiến thức về các quy tắc của trò chơi để phán đoán các khả năng trong trò chơi, cố gắng tìm một nhà nước đi để đảm bảo chiến thắng. 3.6. Mô hình thiết kế Để giúp dễ dàng mở rộng và thay đổi sau này, game cần tuân theo một mô hình, view và mẫu thiết kế điều khiển. Điều này cho phép trò chơi chạy mà không cần GUI hoặc chạy với GUI khác nhau mà không cần thay đổi bất cứ điều gì trong cấu trúc dữ liệu. Hình 10 Mô hình thiết kế game cờ gánh GUI phải cho phép người chơi đưa ra một số lựa chọn nhất định khi bắt đầu trò chơi, quan trọng nhất là kích thước bảng, loại người chơi và tên người chơi. Trong trò chơi, GUI phải hiển thị điểm số và bảng trò chơi, đồng thời cung cấp cho người dùng cơ hội thoát hoặc khởi động lại trò chơi. Một phần quan trọng khác của GUI là chuyển hướng tất 16 cả các lần nhấp chuột đến các phần khác của chương trình, như một người chơi bình thường. Bộ điều khiển trò chơi (Game Controller) phải có khả năng điều khiển cửa sổ trò chơi và các tùy chọn trò chơi mới. Ngoài ra, nó sẽ gửi các tùy chọn được chọn khi bắt đầu trò chơi đến Game Engine. Nó cũng phải báo cho GUI hiển thị thông tin qua trò chơi khi một trong những người chơi thắng. Công cụ trò chơi (Game Engine) sẽ xử lý logic trò chơi, giống như các quy tắc trò chơi. Nó cũng phải gửi thông tin trò chơi cho người chơi, cho họ thay đổi để di chuyển và gửi những di chuyển này đến GUI. Các lớp người chơi (Players) phải phản hồi lại các yêu cầu di chuyển được tạo bởi Game Engine và thực hiện các bước di chuyển. Để cho phép các lớp nhân vật khác nhau hoạt động với Game Engine, nó phải có khả năng giao tiếp với các đối tượng người chơi mà không cần thiết kế thừa từ hoặc là các lớp con lẫn nhau. 3.7. Dòng điều khiển Để đảm bảo logic của các sự kiện thông qua trò chơi, nhóm đã hiện thực một đồ thị dòng điều khiển như sau: Tùy chọn duy nhất có sẵn cho người dùng khi khởi chạy là tùy chọn trò chơi mới, chọn setting cho một trò chơi mới. Khi người dùng hoàn thành, trò chơi sẽ bắt đầu. Các trạng thái bây giờ xen kẽ giữa các trạng thái trong đó màu xanh hoặc màu đỏ có lượt cho đến khi trò chơi kết thúc. Khi trò chơi kết thúc, người dùng sẽ có thể bắt đầu một trò chơi mới, khởi động lại trò chơi hoặc thoát. 17 Hình 11 Đồ thị dòng điều khiển 18 Phần 3 - Mô hình trí tuệ nhân tạo MiniMax 1. Cơ sở lý thuyết: Thủ tục Minimax là một thủ tục được phát triển đặc biệt cho các môi trường agent hoàn toàn có thể quan sát được, tĩnh, tuần tự và đa tác nhân. Đó là một cách tiếp cận cũ và được thử nghiệm tốt để giải quyết các vấn đề về hai người chơi. Nó hoạt động bằng cách xây dựng một cây trò chơi đầy đủ xuống một mức độ nào đó. Từ cấp độ đó cây trò chơi được đánh giá từ dưới lên. Các bước di chuyển của agent được xác định là tối đa, vì nó là di chuyển của mình, lợi thế cần được tối đa hóa. Đối thủ là người chơi min kể từ khi anh ta muốn giảm thiểu lợi thế của agent bằng các bước di chuyển. Khi cây trò chơi được đánh giá tất cả các trạng thái ở cấp kế tiếp của cây được đưa ra các giá trị bằng cách đánh giá trong một hàm lượng giá. Điều này trả về giá trị của mỗi trạng thái ở cấp kế. Nếu một người chơi ở cấp độ kế là min, anh ta sẽ chọn trạng thái có giá trị thấp nhất trong số tất cả các con của mình và lấy giá trị đó làm giá trị của anh ta. Nếu nó là max anh ta sẽ chọn trạng thái có giá trị cao nhất trong số tất cả các con của mình và có giá trị đó là giá trị của mình. Điều này tiếp tục cấp cho các cấp độ, cho đến khi đỉnh của cây đạt được, tại thời điểm đó nốt con có chứa giá trị tiện ích phù hợp được chọn là bước đi tốt nhất. Giả sử rằng các hàm lượng giá là hoàn hảo các thủ tục MiniMax sẽ chơi một cách hoàn hảo, không có sai lầm nào cả. Thật không may, hàm này thường chỉ là một ước lượng thô của một giá trị thực sự của một trạng thái. Có một hàm lượng giá tốt là điều cần thiết cho thủ tục MiniMax, nếu hàm xấu hoặc thậm chí sai thủ tục sẽ thực hiện kém so với các thủ tục khác có hàm lượng giá tốt hơn, ngay cả khi thủ tục khác có hàm lượng giá xấu được cung cấp thêm thời gian để xem thêm phía trước trong trò chơi 1.1. Hàm lượng giá Định nghĩa của hàm lượng giá là một hàm ước tính chi phí của đường đi nhỏ nhất từ trạng thái hiện tại đến trạng thái mục tiêu. Vì việc đoán khoảng cách đến trạng thái mục tiêu phụ thuộc rất nhiều vào cách chơi của đối thủ, nên một hàm lượng giá được sử dụng thay thế trong môi trường đa tác nhân. Hàm lượng giá về cơ bản thực hiện điều tương tự, nhưng nó không trả về độ dài dự kiến từ trạng thái hiện tại cho mục tiêu, nhưng trả về giá 19 trị lượng giá trạng thái. Nếu hàm lượng giá là chính xác, trạng thái gần với chiến thắng sẽ có một giá trị I lớn hơn, so với trạng thái cách xa chiến thắng. Tuy nhiên, không có gì đảm bảo điều này, vì hầu hết các giá trị tiện ích chỉ là ước tính, dựa trên các thuộc tính nhất định của trạng thái hiện tại. Hàm lượng giá theo nhiều cách là thành phần quan trọng nhất trong tác nhân MiniMax. Nếu lượng giá là xấu, hoặc đưa ra các giả định sai về lượng giá trạng thái trò chơi, agent sẽ hoạt động kém so với các agent có lượng giá tốt hơn, ngay cả khi có nhiều thời gian hơn để phân tích bảng trò chơi. Có những cách tiếp cận khác nhau để tối ưu hóa hàm lượng giá. Một cách tiếp cận là sử dụng chức năng đánh giá tuyến tính có trọng số. Những ưu điểm và nhược điểm của phương pháp được mô tả trong phần tiếp theo. 1.2. Hàm đánh giá tuyến tính có trọng số Hàm đánh giá tuyến tính có trọng số lấy một tập hợp các hàm, mỗi hàm đại diện cho một thuộc tính mà hàm đánh giá sẽ tính đến. Nếu s là trạng thái và wi là trọng số của fi(s) thì hàm đánh giá tuyến tính có trọng số có thể được định nghĩa như trong công thức sau, trong đó n là số thuộc tính từ trạng thái mà hàm tính đến. Cách tiếp cận này thường được sử dụng để xây dựng các hàm lượng giá vì nó đơn giản và khả thi. Vấn đề duy nhất là xác định các hàm và trọng số của chúng, nhưng có các phương pháp cho điều đó. Cờ Gánh là một trò chơi có tổng bằng không, có nghĩa là tổng số điểm của người chơi luôn bằng không. Khi một người chơi thực hiện một động tác làm tăng cơ hội giành chiến thắng, đối thủ của anh ta sẽ giảm cơ hội chiến thắng. Điều này làm tăng giá trị lượng giá của người chơi đầu tiên và giá trị lượng giá của đối thủ. Người chơi gần nhất với chiến thắng sẽ luôn có điểm số dương và đối thủ của anh ta sẽ có điểm âm, có cùng giá trị. Điều này dễ dàng cho các agent sử dụng hàm lượng giá để phân tích cách họ đang làm so với đối thủ của họ. 20
- Xem thêm -

Tài liệu liên quan