1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Nghiên cứu cờ tàn bằng máy tính

Chủ đề trong 'Cờ' bởi chezz, 08/01/2004.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. chezz

    chezz Thành viên quen thuộc

    Tham gia ngày:
    04/09/2003
    Bài viết:
    79
    Đã được thích:
    2
    Nghiên cứu cờ tàn bằng máy tính

    Trong bài này tôi sẽ đề cập đến một số kiến thức và kết quả của việc dùng máy tính vào nghiên cứu cờ tàn nói chung (cờ Vua, cờ Tướng) và minh họa bằng một số kết quả cụ thể với cờ Tướng.

    I. Mở đầu
    Cũng như mọi ngành kinh tế quốc dân và khoa học kỹ thuật, ngày nay việc áp dụng máy tính vào cờ là điều rất cần thiết và mang lại nhiều kết quả kích lệ. Một trong những kết quả của việc áp dụng hiệu quả của máy tính vào cờ này là nghiên cứu cờ tàn - xây dựng các Cơ sở dữ liệu tàn cuộc (Endgame databases ?" riêng với cờ Vua còn được gọi là TableBases).

    Một số sách cờ thường chia cờ tàn thành hai loại: cờ thế và cờ tàn thực dụng.

    - Cờ thế (còn gọi là cờ tàn nghệ thuật) là những thế cờ thường do còn người nghĩ ra để đố nhau, để thưởng thức, gây bất ngờ cho ngươi giải qua những nước đi kỳ lạ. Do đó, cờ thế rất ít khi gặp trong thực tế chiến đấu. Cờ thế cũng không nhất thiết phải là cờ tàn. Nói chung số quân tham gia của cờ thế thường tương đối lớn. Đôi khi căn cứ vào số quân trên bàn, nó phải được liệt vào trung cuộc. Cờ thế thường có rất ít lời giải (nhiều khi chỉ có một lời giải duy nhất) với những nước đi thường rất bất ngờ và đòi hỏi toàn bộ quá trình đi quân phải rất chính xác. Do số quân lớn, đòi hỏi nhiều trí trí sáng tạo của con người (cả người đặt thế lẫn người giải) nên máy thường khó áp dụng vào loại cờ này (máy hầu như không thể lập được cờ thế và thường không giải được những thế phức tạp).

    - Cờ tàn thực dụng: Đây là những thế cờ thường dẫn đến khi gần kết thúc ván cờ. Khác với cờ thế, cờ tàn thường có nhiều lời giải hơn và có khá nhiều ván không đòi hỏi người chơi phải đi thật chính xác. Các tác giả thường không nhất trí ranh giới khi nào một ván cờ chuyển từ trung cuộc sang tàn cuộc nhưng thường đồng ý rằng tàn cuộc là ván cờ mà hai bên chỉ còn rất ít quân mạnh, một vài con Chốt và hàng phòng thủ sứt mẻ ít nhiều. Người chơi bắt buộc phải nghiên cứu cờ tàn nếu muốn đi đúng khi gặp những thế cờ đó. Đây chính là mảnh đất khai phá rất tốt cho máy tính.


    II. Cơ sở dữ liệu tàn cuộc (CSDLTC)

    CSDLTC là gì?
    CSDLTC chỉ đơn giản là các file dữ liệu máy tính trong đó ghi lại mọi thế cờ có thể có của một tàn cuộc và mọi trạng thái thắng thua của tất cả các thế cờ đó. Nó chính là một dạng ?ocẩm nang? tra cứu. Với một chương trình chuyên dụng đi kèm, người dùng có thể nhập vào một thế cờ bất kỳ và máy sẽ tra và cho biết trạng thái của thế cờ đó: đó hoặc đó là thế cờ hòa, hoặc một bên sẽ thắng và thắng trong bao lâu (chiếu hết trong bao nhiêu nước). Chỉ việc lần theo chuỗi thế cờ ta sẽ biết được những nước đi tối ưu nhất: nếu hòa phải đi như thế nào để đảm bảo hòa, nếu thắng sẽ tìm ra chuỗi nước đi ngắn nhất, nếu thua, sẽ biết cách chống cự lâu nhất.


    Người ta xây dựng CSDLTC như thế nào?
    Để xây dự các CSDLTC, người ta viết chương trình dùng thuật toán tính lùi (retrograde). Nguyên tắc khá đơn giản, đầu tiên người ta tìm ra tất cả các thế cờ mà một bên chiếu hết bên kia và đánh dấu vào CSDL các thế cờ đó là các nước chiếu hết (chiếu hết trong 0 nước). Sau đó, người ta tìm tất cả các thế cờ mà sau khi đi một nước sẽ dẫn đến các các thế cờ chiếu hết. Đó chính là các thế cờ chiếu hết trong một nước. Cứ như vậy, họ sẽ tìm ra các thế cờ chiếu hết trong 2 nước, 3 nước... Việc truy tìm này sẽ dừng lại khi không còn tìm được thế cờ dẫn đến chiếu hết nữa. Các thế cờ còn lại sẽ được đánh dấu là hòa.

    Trong thực tế, để có thể xây dựng được những CSDLTC lớn, cần có những chương trình khá tinh vi và đặc biệt cần rất nhiều thời gian chạy máy. Việc nghiên cứu và xây dựng các CSDLTC cho cờ Vua được bắt đầu từ những năm 1950-60. CSDLTC đầu tiên (Thompson) được dùng trong thực tế xuất hiện vào giữa thập nhiên 1980 ?" nó được xây dựng bằng máy tính lớn. Vào những năm 1990 một số CSDLTC khác (cũng cho cờ Vua - với thiết kế khác) cũng bắt đầu xuất hiện và được xây dựng trên máy tính để bàn.

    Hiện tại, đối với cờ Vua, người ta đã xây dựng xong các CSDLTC cho mọi tàn cuộc có từ 5 quân (5 men) trở xuống. Tổng kích thước cỡ 8GB. Hiện nay người ta đang cố gắng xây dựng các CSDLTC cho các tàn cuộc có nhiều quân hơn (6 quân). Để xây dựng CSDLTC khoảng dưới 10 GB, người ta cần nhiều tháng chạy máy PC ròng rã vào những năm 1990. Hiện nay, do máy tính PC đã mạnh, nhanh, có bộ nhớ lớn hơn nên thời gian xây dựng một CSDLTC kích cỡ này đã giảm đi đáng kể, chỉ cần vài tuần. CSDLTC Nalimov là loại phổ biến nhất trong thế giới cờ Vua.

    Cũng nhờ khả năng máy tính mạnh hơn, một số CSDLTC cho những trò chơi khác (vốn có số quân và kích thước lớn hơn nhiều) mới có cơ phát triển. Một trong số đó chính là CSDLTC của cờ Tướng.


    III. Ứng dụng của CSDLTC
    Chơi cờ:
    Các sách dậy tàn cuộc chỉ có thể chọn và in mỗi loại tàn cuộc vài ván cờ điển hình. Người chơi sẽ căn cứ vào những ván cờ và phân tích của tác giả để tự nắm được phương pháp chơi. Sau này, khi gặp những thế cờ mới của tàn cuộc đó, người chơi phải tự mình áp dụng các kiến thức thu được để giải thế cờ, tìm ra nước đi đúng. Cách làm này dĩ nhiên là lâu, là... ?omệt? và không phải lúc nào người chơi cũng có thể tìm được ra nước đi tối ưu. Tệ hơn nữa, anh ta có thể bỏ lỡ mất cơ hội chiến thắng. Trong khi đó, nếu có CSDLTC của tàn cuộc đó, máy sẽ chỉ ngay ra kết quả (thắng, hòa, thua) cho bất cứ thế cờ nào và làm sao để đi tối ưu nhất. Một khi CSDLTC nói thắng, đối phương sẽ không có cách nào ?ochạy thoát?, cho dù còn hàng chục nước phải đi nữa. Đối với máy/người dùng CSDLTC, anh ta cũng không còn phải lo thiếu thời gian nữa: thời gian là ngừng chạy vì máy tính chỉ bỏ ra một phần rất nhỏ của giây để tìm ra nước đi tốt nhất.

    Ví dụ, có bạn hỏi về tàn cuộc một Mã chống lại một Sĩ, CSDLTC của chúng tôi chỉ ra rằng:
    - Có tổng cộng 12,684 thế cờ hợp lệ khác nhau
    - Bên trắng (bên có Mã) nếu đến lượt đi có tới 99.70 % cơ hội để thắng và chỉ có 0.3% dẫn đến hòa. Trong khi đó, nếu bên đen có thể cải thiện tình hình một chút nếu được đi trước: có 4.38% cơ hội hòa.
    - Thế cờ dài nhất phải cần đến 19 nước đi để bên trắng thắng.

    Bây giờ nếu bạn đưa ra bất cứ thế cờ nào của tàn cuộc này, chúng tôi sẽ chỉ ngay lập tức trạng thái và nước đi tối ưu, đảm bảo chính xác 100%. Bạn có thể xem một số thông tin về thế cờ này tại địa chỉ:
    http://www.nchess.com/forum/viewtopic.php?t=179.

    Đối với người nghiên cứu và kỳ thủ cao cấp:
    Các CSDLTC có thể giúp tiết kiệm hàng chục năm của người nghiên cứu tàn cuộc. Từ CSDLTC của một tàn cuộc, anh ta có thể đúc rút ra các thế cờ khác nhau, các cách đi tối ưu, nghiên cứu các biến một cách dễ dàng và nhanh chóng.

    Một trong các ví dụ khác mà mọi người có thể kiểm chúng là tàn cuộc một Xe chống lại Sĩ Tượng bền. Bình thường người ta coi thế cờ này là thường hòa trừ một số tình huống đặc biệt. Các sách cờ thường trình bầy khoảng 10 thế cờ dẫn đến thắng này. Với CSDLTC của thế cờ này, số liệu chính xác lại đưa ra một bức tranh khác:

    - Có tổng cộng 465,705 thế cờ khác nhau
    - Bên trắng (bên có Xe) khi đến lượt có tới 81.79% cơ hội thắng, hòa chỉ 18.21%
    - Bên đen đến lượt đi: thua 51.07%, gỡ hòa : 48.93%
    - Thế cờ dài nhất cần đến 32 nước đi.

    Như vây, nếu bên trắng chủ động thì đây là thế cờ thường thắng chứ không phải thường hòa.

    Để tự mình kiểm chứng tàn cuộc này, bạn hãy download chương trình EON tại trang web của chúng tôi (www.nchess.com). Chạy chương trình này, bạn có thể xem các thế cờ điển hình do máy tìm ra, thay đổi các tham số để tìm ra các thế cờ khác theo ý bạn, soạn một thế bất kỳ và đưa vào hỏi máy lời giải. Nếu bạn không ?othích? một lời giải của máy thì có thể thoải mái di chuyển quân theo ý mình, máy sẽ tìm ra ngay lời đáp tối ưu cho nước đi của bạn. Thay cho 10 thế cờ tiêu biểu, bạn mặc sức thưởng thức và tìm hiểu trong hơn 370 nghìn thế cờ thắng cho bên trắng.

    Các CSDLTC cũng mang lại nhiều kết quả mới đầy bất ngờ. Một trong những kết quả ấn tượng là tàn cuộc Tướng, Pháo, Chốt, Sĩ, Tượng chống là Tướng Sĩ Tượng bền. Một số tàn cuộc Pháo Chốt đã được nghiên cứu từ thế kỷ 16. Vào đầu thế kỷ 20, một tác giả người TQ đã kết luận rằng Tượng, Pháo, Chốt (cao), Sĩ, hai Tượng có thể thắng Tướng Sĩ Tượng bền. Tác giả Ren Wu chỉ với một cái máy tính đã xây dựng nên các CSDL và chứng minh được rắng Tướng Pháo Chốt, Sĩ, Tượng (bớt một Tượng) có thể thắng được Tướng Sĩ Tượng bền. Thế cờ dài nhất phải cần đến 95 nước đi chính xác, bên quân mạnh mới có thể bắt được quân đầu tiên của bên kia. Đây là một trong những kết quả gây sốc cho làng cờ Tướng.


    IV. Nơi tìm hiểu các CSDLTC
    Cờ Vua
    Nếu bạn có trong tay các chương trình cờ Vua cao cấp (như Fritz), trong bộ đĩa CD đầy đủ của nó có CSDLTC cờ Vua. Bạn cũng có thể download các CSDLTC này (tại ftp://ftp.cis.uab.edu/pub/hyatt/) nhưng cần phải có một đường truyền tốc độ cao.

    Cờ Tướng
    Đối với cờ Tướng, mọi sự dường như mới bắt đầu. Trước đây, có một số tác giả đã nghiên cứu và xây dựng CSDLTC cho cờ Tướng. Người bắt đầu sớm nhất có lẽ chính là Ren Wu (nhà nghiên cứu của phòng thí nghiệm Bell). Ngoài ra còn có một vài nhóm ở Đài Loan. Đa số các tác giả không công bố các CSDLTC của họ.

    Chúng tôi bắt đầu nghiên cứu và xây dựng CSDLTC cờ Tướng từ giữa năm 2000, kết quả công bố đầu tiên là tàn cuộc một Xe chống lại Sĩ Tượng bền. Đây có lẽ là công trình đầu tiên được công bố cho mọi người dùng. Cùng với CSDLTC này chúng tôi đã phát triển chương trình EON (một phần mềm miễn phí) dùng để khai thác CSDLTC này (download tại http://www.nchess.com/download.html). Sau một thời gian gián đoạn vì những nghiên cứu khác, gần đây chúng tôi đã quay trở lại xây dựng tiếp CSDLTC cờ Tướng (nhà tôi lúc nào cũng có 2 máy tính bật 24 giờ / 24 giờ một ngày và chạy ròng rã không nghỉ nhiều tháng nay để xây dựng CSDLTC đó).

    Một số kết quả thú vị các bạn có thể tìm thấy ở diễn đàn Cờ Tướng Máy (Computer Chinese Chess http://www.nchess.com/forum/)

    Cũng giống con người, mặc dù với khả năng tính toán phi thường, máy tính cũng bị nhiều giới hạn trong việc nghiên cứu cờ tàn cuộc. Thông thường, chúng tôi chỉ lập được các tàn cuộc chỉ có khoảng 2 quân mạnh, cộng với 1 hoặc 2 quân Chốt. Cái khó của CSDLTC cờ Tướng là tổng số quân tham gia (tính cả các quân phòng ngự) thường tương đối nhiều. Nói chung người nghiên cứu thường phải đối mặt với các thế cờ có trên 10 quân (trong khi cờ Vua hiện tại chỉ khoảng 5 quân). Một bộ CSDLTC cờ Tướng dùng được trong thực tế phải có kích thước từ trăm GB trở lên (trong khi 8 GB của cờ Vua đã được dùng rộng rãi và tỏ ra khá hiệu quả). Các tàn cuộc nhiều quân hơn thường nằm ngoài khả năng của cả người và máy. Tuy nhiên, con người vẫn có thể nghiên cứu được một số ngoại lệ. Một ví dụ điển hình là tàn cuộc Pháo, Mã, Chốt, Sĩ Tượng bền chống lại hai Pháo, hai Sĩ. Một số tác giả đã nghiên cứu thành công và đúc kết cách thắng của tàn cuộc này. Nhưng khi chúng tôi thử bắt tay vào xây CSDLTC thì thấy có vấn đề lớn. Tính toán sơ bộ cho thấy, chúng tôi sẽ phải bỏ ra vài khoảng 150 nghìn đô la để mua vài ngàn đĩa cứng về chứa tàn cuộc này. Nhưng điều bất khả là nó đòi hỏi thời gian tính toán lên đến... 295 năm trên một máy PC hiện đại (chi tiết tại: http://www.nchess.com/forum/viewtopic.php?t=200).


    Hi vọng các bạn có thêm được một chút thông tin vui và bổ ích

Chia sẻ trang này