Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Bài toán trò chơi khăng
MIỄN PHÍ
Số trang
11
Kích thước
206.0 KB
Định dạng
PDF
Lượt xem
1675

Bài toán trò chơi khăng

Nội dung xem thử

Mô tả chi tiết

Tổng quan về các bài toán trò chơi đối kháng

Nguyễn Duy Khương

Các trò chơi đối kháng giữa hai người đã được hình thành từ lâu. Và những người chơi

luôn cố gắng tìm mọi cách để mình giành được phần thắng. Và bạn có biết rằng các trò

chơi đã được đoán trước là thắng, thua hay hoà không? Ý tôi muốn nói rằng, nếu một trò

chơi cho trước vị trí ban đầu thì kết quả tốt nhất mà người chơi đầu tiên đạt được đã được

biết từ trước(ở đây tôi giả thiết cả hai người chơi đều chơi tối ưu). Vấn đề là các trò chơi

thường quá phức tạp lên không có một ai có thể đảm bảo rằng mọi nước đi của mình là tối

ưu. Do vậy cho đến nay, chỉ một số lượng nhỏ bài toán đó đã được giải quyết. Và trong bài

viết này tôi xin giới thiệu một cách khá đầy đủ về trò chới đối kháng hai người. Bài toán

đó được phát biểu tổng quát dưới dạng đồ thị như sau:

Cho đồ thị có hướng G=(V,E) (Đồ thị G có tập đỉnh V, tập cạnh là E). Với mỗi đỉnh v

∈ V, ta định nghĩa E(v) = { u | (v,u) ∈ E }

Một trò chơi hai người được định nghĩa là một đồ thị có hướng G = (V, E) trong đó

mỗi trạng thái chơi tương ứng với một đỉnh của đồ thị, hàm E(v) là qui tẵc chơi tức là

E(v) chứa các đỉnh hay trạng thái chơi mà từ v có thể đi đến. Hai người luân phiên

nhau đi , ở thế chơi u người chơi chỉ có thể đi sao cho nước v nhận được thoả mãn v

∈ E(u). Trò chơi kết thúc khi đến lượt đấu mà không thể đi tiếp được nữa. (Thông

thường thì người không thể đi tiếp là người thua cuộc).

Tôi xin chia bài toán này thành hai loại bài toán: loại thứ nhất là, mỗi trạng thái chơi chỉ có

một đối tượng mỗi đối tượng là một đỉnh của đồ thị. Loại thứ hai là mỗi trạng thái chơi có

nhiều đối tượng. (Sự khác nhau căn bản các bạn sẽ được rõ ở phần sau).

I. Loại thứ nhất:

P1. Xét bài toán cụ thể - GAME

Một trò chơi đối kháng giữa hai người A và B diễn ra như sau: Hai người luôn phiên nhau

điều khiển một con tốt theo một số con cho trước. Một người có thể di chuyển con tốt từ vị

trí u đến v nếu có một đường nối trực tiếp có hướng từ u đến v. Trò chơi kết thúc không

thể tiếp tục di chuyển. Người không thể tiếp tục đi là người thua cuộc. Hỏi nếu cho trước

vị trí ban đầu và danh sách các đường nối hỏi người đi trước thắng hay ngươì đi sau thắng

hay hoà? Giả hai người này rất thông minh các bước đi của họ là tối ưu (tức học không bao

giờ đi các nước không có loại cho mình).

Input: Game.In

- Dòng đầu ghi số N là số vị trí con tốt có thể đừng, và số M là số đường đi (có hướng) mà

con tốt có thể đi (1≤ N ≤ 200, 1 ≤ M ≤ N*(N-1)).

- Dòng thứ hai ghi u là trạng thái bắt đầu.

- M dòng tiếp theo mỗi dòng ghi hai số u, v mô tả một đường đi từ u đến v.

Output: Game.Out

- Ghi một số duy nhất 1, 2, hoặc 0. 1 nghĩa là người 1 thắng, 2 là người hai thắng, 0 là hoà.

Nhận xét:

- Những vị trí không có đường ra thì chắc chắn sẽ thua.

- Những vị trí nào có một đường ra nối với vị trí chắc chắn thua thì chắc chắn thắng.

Tải ngay đi em, còn do dự, trời tối mất!