Kết quả 1 đến 10 của 20
-
10-11-2017, 07:35 PM #1
Nghiên cứu cờ tàn bằng máy tính - cập nhật những nghiên cứu mới
Trong topic này tôi sẽ cập nhật những nghiên cứu mới nhất trong lĩnh vực cờ tàn.
Để bắt đầu mời các bạn đọc lại bài giới thiệu, viết năm 2003, 14 năm trước đây:
-----------------
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
PHN
-
Post Thanks / Like - 18 Thích, 0 Không thíchSông Hàn, huna_ls90, gamegiangho, hp007hp, duthanchi, Caruri, hocnganxuyen, the_fall, Tiểu Ngư, tonetone, sapa2015, Tuank75, trung_cadan, passion272, imagination, luuhieukhanh, anhhung, nguoituyet đã thích bài viết này
-
10-11-2017, 11:28 PM #2
Chào chú ! Cho cháu mạn phép hỏi chú có phải là Pham Hong Nguyen, người viết chương trình cờ tướng Saola hơn 10 năm trước phải không ? Nếu đúng, thì cháu rất vui mừng khi chú vẫn còn hứng thú với bộ môn này. Như chú nói, bàn cờ trải rộng lại thêm bộ sĩ tượng khiến cho việc xây dựng CSDLTC rất tốn kém thời gian và tiền bạc. Theo thiển ý của cháu thì làng cờ tướng Việt Nam hiện nay đang cần một phần mềm giống như Chessbase bên cờ vua, hơn là CSDLTC. Mọi người hiện nay chủ yếu xài CCBridge crack, đòi hỏi người chơi phải biết chút ít về tin học mới sử dụng được. Cháu rất mong chú dành thời gian viết 1 chương trình XiangqiBase chứa CSDL ván đấu giống SAOLA + chức năng tìm vị thế tương tự SCID cờ vua + thêm Engine ngoài vào để phân tích. Nếu được như vậy, anh em yêu cờ ngày càng có cơ hội nghiên cứu nâng cao trình độ. Cháu cũng đề nghị chú nên làm phần mềm trả phí thay vì miễn phí, có như vậy mới lâu dài.
Cờ cao Đế Thích chấp 2 xe
-
Post Thanks / Like - 5 Thích, 0 Không thích
-
12-11-2017, 12:37 PM #3
Cảm ơn em vì bài viết!
Thêm chức năng không khó. Vấn đề ở đây là có rất ít người dùng. Tôi vẫn cập nhật chương trình XB (Xiangqi Browser) trên iOS, cho xem và tìm kiếm với các CSDL cờ. Người thường chỉ dùng được các chức năng rất cơ bản, còn đến mức tìm kiếm phức tạp hơn như em nói thì chỉ rất ít. Chính vì vậy tôi thường giữ cho các tiện ích của tôi đơn giản nhất có thể.
Cờ máy là thú vui (hobby) chính của tôi nên không bỏ, cho dù có thời gian dài tôi không viết engine (chỉ mới quay lại việc này có vài tháng nay). Đơn giản cái này không phải là nghề sống được, cho dù có bán cả nghìn đô một bản như cyclone hay xqms.
Tôi không đơn thuần là người viết chương trình cờ mà còn là người nghiên cứu. Cái gì khó, thiên hạ sợ tránh lại là mảnh đất khai phá cho người làm nghiên cứu. Dù những công việc dạng này thường không mang lại kinh tế, thậm chí còn phải tiêu pha đắt đỏ, tốn công tốn sức... nhưng cũng thật sự thách thức, thú vị và có lợi cho khoa học kỹ thuật.
-
Post Thanks / Like - 3 Thích, 0 Không thích
-
12-11-2017, 05:24 PM #4
Chào anh. Em là 1 nghiên cứu sinh đang học ở Úc, ngành Toán Tin. Em có nghiên cứu khá nhiều về Machine Learning và Optimization. Em rất muốn học hỏi nhiều đièu từ anh cũng như muốn giúp đỡ anh trong việc cải thiện khai phá engine. Là 1 người đam mê nghiên cứu và cũng mê cờ, rất hy vọng em có thể cùng anh tìm đc 1 mảng gì đó để cùng hợp tác thành công. Thân.
-
Post Thanks / Like - 3 Thích, 0 Không thích
-
12-11-2017, 05:37 PM #5
-
Post Thanks / Like - 1 Thích, 0 Không thíchchezz đã thích bài viết này
-
13-11-2017, 09:50 AM #6
Hi imagination, rất vui được biết em. Em đang ở thành phố nào vậy? Có thể chúng ta sẽ có nhiều cơ hội gặp nhau.
Về ML nói chung tôi không còn làm trực tiếp nữa. Tuy vậy tôi có các nhóm sinh viên cũ (giờ đang làm việc ở một số Đại học trong và nước ngoài) vẫn theo đuổi. Họ cũng đặc biệt mạnh về NLP. Tôi có thể giúp các em liên kết.
Riêng cờ thì tôi vẫn theo đuổi và làm mọi thứ liên quan. Nếu em định viết các engine mạnh (đọ với các engine hàng đầu của TQ) thì tôi sẵn sàng hỗ trợ tối đa (nhưng cái này khó viết bài nghiên cứu nhé). Trước tôi không tin lắm vào việc dùng NN cho cờ, nhưng từ ngày chương trình Alpha Go của GG thành công thì cũng thấy đó là hướng nên thử.
PS:
- Cái tên miền nchess tôi bị mất lâu rồi, giờ đang dùng xqfan.com cho cờ
- Trao đổi thêm thông qua hộp thư nhé
-
Post Thanks / Like - 1 Thích, 0 Không thíchimagination đã thích bài viết này
-
13-11-2017, 11:00 AM #7
Rất mong muốn được chỉ bảo về engine cờ tướng
Chào anh Phạm Hồng Nguyên !
Trước tiên xin mạn phép được gọi là anh vì cũng đoán chắc hơn mình ít tuổi.
Xin được giới thiệu mình tên Hoàng Trung Hiếu, 43 tuổi, hiện sinh sống tại thành phố Hồ Chí Minh.
Tốt nghiệp đại học khoa học tự nhiên tp HCM, ngành toán tin.
Mình là người rất yêu cờ tướng ( nhưng chơi hơi bị tệ, hihi ), hiện tại mình mới làm xong website clbbandao.com, và app chơi cờ tướng, cờ úp có tên Tượng Kỳ ( đã up lên google play và app store vui lòng search với từ khóa "tượng kỳ cờ tướng" có dấu đầy đủ ), hiện tại cũng là phó chủ nhiệm câu lạc bộ cờ tướng Bàn Đào ở tp HCM (clb mới thành lập, chưa ra mắt mọi người, tiền thân là quán cà phê Bàn Đào).
Kế hoạch là hết tháng 12/2017 sẽ chính thức triển khai câu lạc bộ, website, app Tượng Kỳ vào thực tế ( website đang trong giai đoạn tạo dữ liệu ).
Cũng xin nói, trong website và app Tượng Kỳ, mình áp dụng thuật toán tìm nước đi của anh Phạm Hồng Nguyên( mình chuyển từ ngôn ngữ C++ sang java script và java ). Mình cũng có ý muốn viết engine cờ tướng nhưng chưa hiểu nhiều về nó, nay tình cờ gặp được anh ở đây, mình rất mong được anh giúp đỡ trong việc viết engine chơi cờ tướng.
Mong nhận được hồi âm của anh, email của mình
hieuht2002@gmail.com
Thân chào
-
Post Thanks / Like - 5 Thích, 0 Không thích
-
14-11-2017, 07:31 AM #8
Chào Hiếu, rất vui được làm quen ở đây. Hi vọng có lúc được thăm clb của các bạn.
Tôi rất sẵn sàng giúp / hỗ trợ các bạn, đặc biệt những ai tâm huyết và sẵn sàng đi lâu đi sâu về môn này. Mong muốn của tôi là có VN có vài nhóm và vài chương trình cờ thuộc hàng đầu.
Hồi năm 2000 sau Giải cờ máy (ĐHQG HN) đã có một vài nhóm như vậy. Tôi đã từng rất hi vọng, đặc biệt là một nhóm ở SG, họ đã phát triển chương trình cờ trong vài năm liền, lúc đó chơi khá tốt. Rất tiếc cuối cùng lại mất hút.
Hi vọng giờ chúng ta sẽ có một số nhóm theo đuổi
Có gì chúng ta trao đổi kỹ hơn trong PM nhé.
-
14-11-2017, 09:40 AM #9
Chào anh Nguên !
Rất vui khi nhận được hồi âm của anh, anh cho mình xin địa chỉ mail nhé. Mình có rất nhiều điều muốn nói và muốn hỏi, nhưng không tiện nói trên diễn đàn.
Anh yên tâm là đã có người muốn theo đuổi môn cờ theo định hướng chiều sâu và chuyên nghiệp.
Địa chỉ mail của mình
hieuht2002@gmail.com
Thân chào
-
Post Thanks / Like - 1 Thích, 0 Không thíchconvit đã thích bài viết này
-
14-11-2017, 11:57 AM #10
Đã gửi mail
Nghiên cứu cờ tàn bằng máy tính - cập nhật những nghiên cứu mới
Đánh dấu