Chương 09: Engine Cờ Vua (1)
Độ dài 2,084 từ - Lần cập nhật cuối: 2024-10-11 19:40:05
Engine cờ vua hoạt động như thế nào?
Liệu máy tính có thể chơi cờ vua bằng cách suy nghĩ như con người không?
Tất nhiên là không rồi.
Thời điểm đó, chúng tôi đang trong quá trình phát triển máy tính transistor.
Tôi đã giải thích cho Caroline về thuật toán cờ vua trên máy tính.
"Caroline, em chơi cờ vua giỏi không?"
"Em chỉ học sơ qua ở các buổi gặp mặt xã giao thôi."
"Vậy chúng ta chơi một ván nhé."
1 tiếng sau.
Tôi đã bị cô ấy đánh bại thảm hại với tỷ số 5-0.
"Ư... Em chơi giỏi thật đấy... Trước đây anh cũng từng chơi cờ vua khá ổn mà..."
"Tiền bối cũng có kỹ năng tốt đấy chứ. Chỉ là em mạnh hơn thôi. Hì hì."
Cô ấy nói với vẻ tự tin, một nụ cười nhẹ nhàng nở trên môi.
Có lẽ chơi cờ vua đã giúp cô ấy giải tỏa phần nào căng thẳng khi chế tạo máy tính.
Cô ấy đơn giản là rất thông minh.
"Dù sao thì, hãy quay lại chủ đề chính. Chúng ta nên sử dụng phương pháp nào để máy tính có thể chơi cờ vua?"
"Ừm... Em không chắc lắm. Máy tính đâu có suy nghĩ được. Cũng chẳng có phương pháp chung nào để đi nước cờ đúng cả."
Caroline cau mày suy nghĩ.
Mặc dù cô ấy có năng khiếu toán học, nhưng lần này, cô ấy sẽ không dễ dàng tìm ra câu trả lời.
Đúng như vậy, bởi vì giải pháp cho vấn đề này không liên quan gì đến cảm quan toán học.
"Ví dụ, hãy xem xét thế cờ này."
Tôi vẽ một trong những thế cờ vừa rồi lên bảng đen.
"Trong thế cờ này, có bao nhiêu nước đi khả thi?"
"Ừm, có thể đi như thế này, thế này, và thế này."
Cô ấy vẽ các mũi tên mà không cần suy nghĩ nhiều.
"Tổng cộng có 10 nước đi."
"Không, anh không hỏi về những nước đi có ý nghĩa. Anh đang hỏi tổng số nước đi khả thi trong tình huống này là bao nhiêu?"
"À, câu hỏi là vậy sao? Chờ em một chút..."
Cô ấy lấp đầy bàn cờ bằng các mũi tên.
"Tổng cộng có 44 nước đi."
"Vậy thì, một câu hỏi nữa. Trong tình huống này, máy tính có thể phân biệt được "10 nước đi có ý nghĩa" và "44 nước đi khả thi" mà chúng ta vừa tìm thấy không?"
"Cái đó... Em không chắc lắm. Nếu chỉ dựa vào điểm số quân cờ thì có thể, nhưng kiến thức về thế cờ, cấu trúc tốt, kiểm soát trung tâm, hoạt động của quân cờ, sự an toàn của vua,... Máy tính phải xem xét tất cả những yếu tố trừu tượng đó mới có thể đưa ra "nước đi có ý nghĩa"."
"Chính xác. Máy tính không thể tự suy nghĩ nên nó không thể nắm bắt được "nước đi có ý nghĩa". Vậy thì chỉ có một giải pháp, đó là kiểm tra tất cả "các nước đi khả thi"."
Giả sử rằng trung bình có 50 nước đi khả thi trong mỗi lượt.
Để tính toán trước một nước đi, cần kiểm tra 50 nước đi, hai nước đi là 2.500 nước đi, ba nước đi là 125.000 nước đi...
"So sánh tất cả các thế cờ đó và chọn ra trường hợp mang lại kết quả tốt nhất. Đó là nguyên lý cốt lõi của engine cờ vua."
Caroline tỏ vẻ kinh hoàng sau khi nghe tôi nói.
"Ặc, cái gì vậy? Nếu anh đang đùa thì chẳng vui tí nào."
"Tiếc là hiện tại đây là phương pháp tốt nhất."
Tính toán tất cả các thế cờ khả thi từ vị trí hiện tại.
Một cách đơn giản.
Một cách thô bạo.
Và một cách nhanh chóng.
Nguyên lý này hiệu quả đến mức nó được áp dụng cho "Stockfish", engine cờ vua mạnh nhất hiện nay.
"Một kỳ thủ cờ vua chuyên nghiệp có thể nhận biết thế cờ trong vòng 10 giây bằng trực giác, nhưng chiếc máy tính ngốc nghếch của chúng ta phải so sánh hơn 200 thế cờ mới có thể hiểu được."
"Đây là một chiến lược chỉ có thể thực hiện được nhờ máy tính có khả năng thực hiện các tác vụ đơn giản một cách nhanh chóng... phải không?"
"Đúng vậy. Đây là phương pháp mà con người không thể nào bắt chước được."
"Haizz... Nghe có vẻ hơi chán nhỉ. Nhưng có lẽ đó mới chính là máy tính."
Caroline trông có vẻ thất vọng.
Toán học mà cô ấy đã học cho đến nay là "tinh tế".
Sự tồn tại, tính duy nhất và phương pháp tìm ra nghiệm của phương trình,... Đó là kết quả của rất nhiều năm nghiên cứu của các nhà toán học từ hàng trăm năm trước.
Nhưng máy tính giải quyết vấn đề một cách "thô bạo".
Theo chương trình đã được lập trình sẵn, nhanh hơn bất kỳ con người nào.
Nếu cô ấy mong đợi điều gì đó tinh tế từ máy tính, thì việc thất vọng là điều dễ hiểu.
"Và ngay cả phương pháp thô bạo này cũng chỉ có thể thực hiện được với một máy tính có hiệu năng cao. Nếu chúng ta cố gắng triển khai thuật toán này trên máy tính ống chân không mà chúng ta đã tạo ra trước đó, có lẽ sẽ mất ít nhất 3 năm."
Trong thời gian qua, chúng tôi chỉ sử dụng máy tính ống chân không để giải quyết các bài toán cơ học đã biết phương pháp giải.
Chúng tôi chỉ giải quyết những vấn đề mà con người có thể tính toán được, tức là những vấn đề có giải pháp toán học.
Nhưng nếu chúng ta nâng cấp hiệu năng lên khoảng 1000 lần bằng transistor, thì chúng ta có thể giải quyết các bài toán chưa có phương pháp giải quyết, mặc dù bằng cách thô sơ này.
"Ra vậy... Nghe anh nói xong, em lại thấy hào hứng hơn rồi. Một máy tính chơi cờ vua một cách thô bạo và một con người chơi cờ vua một cách thông minh... Ai sẽ chiến thắng nếu họ đấu với nhau?"
Sự thất vọng nhanh chóng qua đi. Cô ấy tràn đầy tò mò về kết quả mà máy tính sẽ mang lại.
"Chà, kết quả sẽ phụ thuộc vào hiệu năng của máy tính mà chúng ta tạo ra và hiệu năng của chương trình."
"Hì hì, đó là một động lực tốt đấy, tiền bối. Vậy thì chúng ta hãy tiếp tục chế tạo máy tính thôi!"
***
Thời gian trôi qua, trở lại hiện tại.
Caroline đang lập trình cho engine cờ vua như tôi đã nói trước đó.
Cấu trúc của nó có thể được tóm tắt như sau:
1. Gán điểm số cho các quân cờ: Tốt +1 điểm, Mã và Tượng +3 điểm, Xe +5 điểm, Hậu +9 điểm.
2. Tìm kiếm tất cả các nước đi khả thi trong thế cờ hiện tại.
3. Chọn nước đi dẫn đến chiếu hết hoặc chênh lệch điểm số quân cờ lớn nhất sau một số lượt nhất định.
4. Tuy nhiên, trong giai đoạn khai cuộc, vì có quá nhiều nước đi khả thi, nên các nước đi theo lý thuyết sẽ được lưu trữ riêng trong máy tính.
Tạch tạch tạch.
Caroline gõ bàn phím với đôi mắt gần như nhắm nghiền.
"Hi hi hi... Tiền bối, sao anh lại nhân đôi thế...? Em càng thích..."
Ôi trời, cô ấy bị thiếu ngủ đến mức xuất hiện ảo giác rồi sao?
Tôi phải nhanh chóng hoàn thành nhiệm vụ trước khi cô ấy mất trí hoàn toàn.
Tôi vội vã rời khỏi phòng nghiên cứu và đến khu vực cao cấp của Học viện Oracle.
"Anh có thấy tiền bối Elnes ở đâu không? À, hiện giờ cô ấy đang giảng bài sao? À, vâng. Anh có thể chuyển lá thư này cho cô ấy được không? Cảm ơn anh."
Tôi đã gửi lá thư mình viết lúc nãy cho một người quen của Elnes để phòng ngừa trường hợp khẩn cấp.
Nếu Elnes đọc được lá thư, cô ấy sẽ đến giúp ngay lập tức.
Tôi nhanh chóng quay trở lại phòng nghiên cứu.
"Ưm ưm... Hừ hừ, chiếu hết rồi nhé tiền bối. Anh chơi kém quá. Đúng là em phải dạy anh từng bước một..."
Caroline không thể chống lại cơn buồn ngủ ập đến, cô ấy đã gục xuống bàn và ngủ thiếp.
"Em đã vất vả rồi. Giờ hãy nghỉ ngơi đi."
Tôi bế Caroline, người có thân hình khá nhẹ, đặt lên chiếc giường nhỏ trong phòng nghiên cứu và đắp chăn cho cô ấy.
Đến lượt tôi.
Tôi nhìn vào đoạn mã dang dở mà cô ấy đã viết.
Tất cả các ý tưởng cốt lõi mà tôi đã dạy trước đó đều đã được triển khai.
"Quả nhiên là Caroline. Chỉ cần chỉnh sửa một chút là xong."
Tạch tạch tạch.
1 tiếng sau.
Tôi đã hoàn thành phần mã còn lại của engine cờ vua và bắt đầu khởi động máy tính.
Tôi dự định sẽ cho máy tính này học liên tục cho đến ngày diễn ra giải đấu cờ vua.
Ù ù ù ù ù.
Âm thanh của máy tính được thu nhỏ bằng transistor êm hơn so với máy tính ống chân không.
May là Caroline đang ngủ say nên không bị đánh thức.
Cốc cốc.
"Mời vào. À, tiền bối Elnes."
Elnes, người mà tôi đã gửi thư lúc nãy, đã đến phòng nghiên cứu của chúng tôi.
"Nghe nói em gọi chị à? Chắc là có chuyện gì đó rất gấp phải không?"
"Vâng, đúng là chuyện rất khẩn cấp ạ."
Elnes Mercury. Ban đầu, tôi nghĩ cô ấy cũng giống như những quý tộc khác, là người có ý thức về quyền lực rất cao, nhưng sau khi trò chuyện vài lần, tôi nhận ra cô ấy chưa bao giờ coi thường tôi, một thường dân.
Vì vậy, tôi có thể thoải mái trò chuyện với Elnes mà không cần quá câu nệ.
"Chuyện gì vậy...? Ơ, đây chẳng phải là máy tính sao...? Cuối cùng em cũng đã chế tạo xong một chiếc máy tính mới à! Chị có thể nhờ em tính toán ngay bây giờ được không? Lần trước, khi chị đang tạo cuộn giấy, chị đã gặp phải một phương trình nhiệt động lực học khá phức tạp..."
Elnes nhìn chằm chằm vào chiếc máy tính transistor với ánh mắt thích thú.
"Em xin lỗi, tiền bối. Hiện tại, em chưa thể nhận yêu cầu tính toán ạ."
"Chà, tiếc thật... Vậy chị có thể giúp gì cho em?"
"Em nghe nói tiền bối chuyên về phép thuật băng, chính xác hơn là phép thuật hấp thụ nhiệt."
"Đúng vậy. Nếu nói về phép thuật hạ nhiệt độ, có lẽ chị là người giỏi nhất Học viện này. Sao vậy?"
"Máy tính có nhược điểm cố hữu là sẽ bị nóng lên và hỏng hóc nếu hoạt động trong thời gian dài. Vì vậy, em muốn nhờ tiền bối kiểm soát nhiệt độ của bộ phận CPU này để nó không bị quá nóng."
"Nói cách khác, em muốn chị hạ nhiệt độ để máy móc không bị hỏng?"
"Vâng, chính xác ạ. Cứ mỗi giờ tiền bối giúp đỡ, em sẽ tặng tiền bối một ngày sử dụng máy tính miễn phí. Tiền bối cũng sẽ được ưu tiên hơn những khách hàng khác."
"Đó là một lời đề nghị quá hấp dẫn để từ chối! Được rồi!"
Xoẹt xoẹt xoẹt xoẹt.
Cô ấy tập trung và bắt đầu niệm chú.
Ngay sau đó, máy tính được bao quanh bởi một vòng tròn ma thuật.
Tôi đã cảm nhận được luồng gió mát mẻ từ đây.
Tôi ghen tị với phép thuật này vì nó sẽ giúp mùa hè trở nên dễ chịu hơn rất nhiều.
"À, tiện thể, đây là máy móc chính xác nên hãy cố gắng đừng để nước dính vào nhé."
"Được rồi... Chị sẽ chỉ sử dụng gió lạnh khô thôi. Nhưng chị phải duy trì phép thuật này trong bao lâu?"
"Ừm, theo dự đoán của em, có lẽ khoảng 72 giờ? Vậy thì em xin nhờ tiền bối sử dụng phép thuật làm mát... Haizz... Tiền bối, em mệt quá, em xin phép ngủ một lát..."
"Cái gì? Mấy tiếng cơ? Khoan đã! Này! Em đi đâu đấy!"
Mọi việc đã xong. Giờ chỉ cần chờ đợi thôi.
Lộp cộp lộp cộp.
Tôi bước đến chiếc giường nhỏ trong phòng nghiên cứu.
Hình như Elnes vừa nói gì đó với tôi, nhưng tôi đã quá kiệt sức nên không nghe rõ.
Tôi và Caroline đã thức trắng hai đêm liền để chế tạo máy tính transistor, nên tôi rất buồn ngủ.
Và thế là tôi nằm xuống chiếc giường bên cạnh Caroline và chìm vào giấc ngủ ngay lập tức.