Thủ tục minimax

Một phần của tài liệu HỌ VI ĐIỀU KHIỂN PIC VÀ VI ĐIỀU KHIỂN PIC18F67J60 (Trang 50 - 53)

Minimax (còn gọi là minmax) là một phƣơng pháp có mục đích là tối thiểu hóa

(minimize) tổn thất vốn đƣợc dự tính có thể là "tối đa" (maximize). Có thể hiểu ngƣợc lại là, nó nhằm tối đa hóa lợi ích vốn đƣợc dự tính là tối thiểu (maximin).

Giải thuật Minimax giùm tìm ra nƣớc đi tốt nhất, bằng cách đi ngƣợc từ cuối trò chơi

trở về đầu. Tại mỗi bƣớc, nó sẽ ƣớc định rằng ngƣời A đang cố gắng tối đa hóa cơ hội thắng của A khi đến phiên anh ta, còn ở nƣớc đi kế tiếp thì ngƣời chơi B cố gắng để tổi thiểu hóa cơ hội thắng của ngƣời A (nghĩa là tối đa hóa cơ hội thắng của B).

Giả sử chúng ta có một bộ phân tích thế cờ có thể áp dụng tất cả các luật, các phƣơng pháp đánh cờ khác nhau vào từng thế cờ và chuyển đổi chúng thành một con số đại diện (cho điểm thế cờ). Mặt khác, ta giả sử con số đó là dƣơng khi áp dụng cho thế cờ của một đấu thủ (đƣợc gọi là người chơi cực đại - maximizer), và là âm khi áp dụng cho đấu thủ bên kia (đƣợc gọi là người chơi cực tiểu - minimizer). Quá trình tính toán cho điểm thế cờ đƣợc gọi là lượng giá tĩnh (static evaluation). Hàm thực hiện việc tính toán đƣợc gọi là một bộ lƣợng giá tĩnh, và giá trị nhận đƣợc gọi là điểm lƣợng giá tĩnh. Cả hai đấu thủ đều cố gắng đi nhƣ thế nào đó để đạt đƣợc điểm tuyệt đối lớn nhất. Ngƣời chơi cực đại sẽ tìm những nƣớc đi dẫn đến điểm của mình trở nên lớn hơn (hay cao nhất có thể đƣợc) hay điểm của đối thủ bớt âm hơn (nhỏ hơn về giá trị tuyệt đối). Còn đấu thủ của anh ta, ngƣời chơi cực tiểu, lại ra sức phản kháng lại, để dẫn tới điểm âm của anh ta âm hơn hay điểm dƣơng của đối thủ nhỏ đi

Ví dụ có một cây trò chơi nhƣ sau

Thế nhƣng nếu đi nhƣ vậy thì khi đến lƣợt đi của ngƣời chơi cực tiểu, anh ta sẽ cố gắng không cho ngƣời chơi cực đại đạt đƣợc điểm này bằng cách chọn nƣớc đi nhánh bên trái và nhƣ vậy, ngƣời chơi cực đại chỉ đƣợc có 1 điểm thay vì 8. Ngƣợc lại, nếu ngƣời chơi cực đại chọn nƣớc đi bên trái, thì trong tình huống xấu nhất anh ta vẫn còn đƣợc 2 điểm, lớn hơn là chọn nƣớc đi bên phải.

Nói chung, ngƣời chơi cực đại sẽ phải tìm cách nhận ra các nƣớc đi của đối phƣơng tiếp theo làm cho điểm giảm xuống. Và tƣơng tự nhƣ vậy, ngƣời chơi cực tiểu phải nhận biết đƣợc nƣớc đi của ngƣời chơi cực đại cố gắng làm tăng điểm lên. Thủ tục tìm nƣớc đi tốt nhất trên cây trò chơi nhƣ trên đƣợc gọi là thủ tục Minimax do điểm ở mỗi nút có thể là điểm cực đại hoặc có thể là điểm cực tiểu.

Thuật toán MINIMAX áp dụng vào các trò chơi cờ đƣợc định nghĩa nhƣ sau:

o Nếu nhƣ đạt đến giới hạn tìm kiếm (đến tầng dƣới cùng của cây tìm kiếm), tính giá trị tĩnh của thế cờ hiện tại ứng với ngƣời chơi ở đó. Ghi nhớ kết quả

o Nếu nhƣ mức đang xét là của ngƣời chơi cực tiểu, áp dụng thủ tục Minimax này cho các con của nó. Ghi nhớ kết quả nhỏ nhất

o Nếu nhƣ mức đang xét là của ngƣời chơi cực đại, áp dụng thủ tục Minimax này cho các con của nó. Ghi nhớ kết quả lớn nhất.

Đánh giá:

Nếu hệ số nhánh trung bình của cây là b và ta thực hiện tìm kiếm đến độ sâu d thì số nút phải lƣợng giá ở đáy cây nhƣ ta đã biết là bd. Đây chính là số đo độ phức tạp của thuật toán. Nếu b = 40, d = 4 (các con số thƣờng gặp trong trò chơi cờ) thì số nút phải lƣợng giá là 404 =

2560000 (trên 2 triệu rƣỡi nút). Còn với b = 40, d = 5 thì số nút phải lƣợng giá sẽ tăng 40 lần nữa thành 405 = 102400000 (trên 102 triệu nút).

Do đó, thuật toán này chạy chậm do việc sinh các nƣớc đi và lƣợng giá rất tốn thời gian tính toán, do vậy độ sâu của cây trò chơi cũng bị hạn chế nhiều.

Một phần của tài liệu HỌ VI ĐIỀU KHIỂN PIC VÀ VI ĐIỀU KHIỂN PIC18F67J60 (Trang 50 - 53)