Thứ Tư, 31 tháng 7, 2019

Cách chơi cờ vua thắng máy tính dễ nhất

Cách chơi cờ vua thắng máy tính dễ nhất dành cho bạn, hãy cùng Game 2k2k khám phá cách đánh cờ vua để thắng máy tính đơn giản không tốn nhiều thời gian nào...



Các máy tính được chế tạo để chơi các loại cờ như cờ vua, cờ vây hay cờ shogi có một tập các quy tắc được định nghĩa sẵn và mức độ biến đổi khi chơi gần như vô hạn, vậy chúng ta hãy cùng đi tìm câu trả lời cho cách chơi cờ vua thắng máy tính năm 2019 này. Đã từ lâu, khả năng chơi cờ của các máy tính vừa được xem là bài kiểm tra vừa là một động lực cho sự phát triển của trí tuệ nhân tạo yếu (chuyên thực hiện một nhiệm vụ cụ thể, so với trí tuệ nhân tạo mạnh có trí thông minh toàn diện như con người).
Chiếc máy vi tính chơi cờ số một hiện nay, AlphaZero của đội Google DeepMind là một đột phá của machine learning vào cuối năm 2017, làm thay đổi cục diện cuộc đua này. AlphaZero là một giải thuật machine learning khổng lồ dựa trên mạng neuron deep learning. Các nhà nghiên cứu chỉ cho AlphaZero quy tắc chơi cờ, rồi để nó tự chơi với chính mình trong nhiều giờ, học các chiến lược chơi cờ hoàn toàn từ việc chơi mà không có sự can thiệp trực tiếp của con người.
Với 28 trận thắng, 72 hòa và không thua trận nào, AlphaZero đã chiến thắng Stockfish, chương trình chơi cờ được xem là hoàn hảo nhất trước đó với thành tích đánh bại mọi kỳ thủ con người. Một thước đo chất lượng khác của các chương trình chơi cờ này là hệ số Elo. Elo của Stockfish là 3226, còn AlphaZero là 3500 so với Elo của kỳ thủ cờ vua số một thế giới hiện nay là 2835 (Elo của Magnus Carisen người Na Uy, tính tới tháng 1/2019). Cách chơi cờ vua để có thể thắng máy tính từ thủa đó đã được con người tìm lời giải đáp.
Đồ thị bên dưới cho thấy, nếu thời gian của mỗi nước đi ngắn hơn thì Stockfish đã thắng. Tuy nhiên, thực tế là các máy tính có 10 giây cho mỗi nước đi và nhờ vậy mà chiến thắng thuộc về AlphaZero.
Ảnh: Hệ số Elo của AlphaZero, Stockfish và sự phụ thuộc vào thời gian thực hiện mỗi nước đi của mỗi chương trình. Nguồn: Mastering chess and shogi by self-play with a general reinforcement learning algorithm (D Silver et al)
Chiến lược của AlphaZero dựa trên ý tưởng của Shannon, một trong những người tiên phong về máy tính điện tử có thể suy nghĩ như con người. Trước đó, AlphaGo, người anh đi trước của AlphaZero ra mắt năm 2016 cũng sử dụng chiến lược tương tự. AlphaGo chỉ được cung cấp các quy tắc cờ vây cùng một số đặc tính đối xứng của bo mạch. Bằng cách tự chơi với mình suốt ngày đêm để tìm ra cách chơi cờ vua thắng máy tính nhanh nhất, AlphaGo đã nhanh chóng đạt được năng lực vượt hơn cả đại kiện tướng cờ vây số hai thế giới người Hàn Quốc Lee Se-dol. Hiện nay, chúng ta thậm chí có thể thấy các máy chơi được bài poker (một loại bài mang tính đấu trí ở phương Tây) và trò xếp chữ tiếng Anh kinh điển Scrabble.
(Ảnh: BGR India)
Trong lịch sử, ví dụ AI yếu sớm nhất là máy tính điện tử của ba nhà khoa học Alan Turing, John Von Neumann, Claude Shannon những năm 1940. Khi đó, ba người đã tự hỏi mình là, liệu có thể chế tạo một chiếc máy suy nghĩ như con người được không, nhất là trong bối cảnh chế tạo một chiếc máy để chơi cờ. Đầu tiên là phát minh máy tính chơi cờ của Turing, một hệ thống từ bút chì và giấy mà Turing đóng vai chiếc máy.
Năm 1949, Shannon phát triển công trình của Turing với hy vọng "nó sẽ là một dụng cụ mạnh để tấn công các vấn đề khác".
Cách tiếp cận của Shannon và những người đi sau ông là lập trình máy tính sử dụng các chiến lược liên quan đến cách mà con người chơi cờ. Theo Shannon, máy tính chơi cờ có hai chiến lược tìm kiếm: loại A và loại B.
Chiến lược loại A sử dụng giải thuật tìm kiếm tất cả mọi nước đi theo mọi cách cho đến giới hạn của khả năng tính toán. Chiến lược này không thực tế vì hai lý do: hạn chế của các máy tính thời đó, quá đơn giản khi theo đuổi mọi lựa chọn thay vì chọn các chiến thuật triển vọng theo chiều sâu. Tuy nhiên dù có dùng phương pháp nào thì cách chơi cờ vua để thắng máy tính vẫn sẽ chưa dừng lại.
Thay vào đó, Shannon cho rằng nên sử dụng chiến lược loại B. Trong loại B lại có hai phương pháp: dùng một số loại tìm kiếm chỉ theo đuổi các chiến thuật triển vọng, hoặc đánh giá chỉ một vài nước đi tốt đã biết cho mỗi vị trí. Phương pháp thứ hai bỏ qua mọi nước đi ngoại trừ những nước mà máy xác định là tốt, còn được gọi là forward pruning. Tuy vậy, trong thực tế, các máy tính chơi cờ hiện đại áp dụng phương pháp đầu tiên, xem trọng một số trình tự đi hơn các trình tự khác, và xem nhẹ những trình tự ít triển vọng hơn.
Sau công trình của Shannon, các chương trình chơi cờ đã được phát triển rất giống những cách mà ông đưa ra và nhanh chóng chơi tốt như con người. Năm 1996, máy tính chơi cờ tạo ra đột phá quan trọng khi Deep Blue đánh bại nhà vô địch thế giới thời điểm đó, đại kiện tướng Garry Kasparov. Một điểm đáng chú ý là, số nước đi mà Deep Blue có thể ước tính trong một giây lên tới 200 triệu nước!
(Ảnh: Live Science) 
Tổng quan về machine learning
Một công nghệ mới ra đời và người ta lại bắt đầu hi vọng con người sẽ trả lời được câu hoi "Cách chơi cờ vua thắng máy tính" do chinh mình đặt ra.
Công nghệ nào đã tạo nên AlphaZero và AlphaGo, công nghệ đó đến từ đâu và đang đi về đâu? Theo giáo sư Chris Budd, để hiểu rõ ý tưởng lập trình cho máy vi tính thực hiện một công việc cụ thể, chúng ta hãy trở lại khái niệm ban đầu về máy tính điện toán. Một trong những nhà tiên phong sớm nhất trong lĩnh vực máy tính điện toán là Alan Turing, người đã khai sinh ra khái niệm máy Turing những năm 1930 của thế kỷ trước. Về nguyên tắc, máy Turing là một chiếc máy cực kỳ đơn giản được lập trình để thực hiện những công việc phức tạp.
Từ ý tưởng cơ bản này, Turing cùng hai người nữa ở Anh là Tommy Flowers và John Von Neumann chế tạo ra các máy vi tính điện tử đầu tiên có thể lập trình được. Toàn bộ quá trình này đã được thực hiện trong thế chiến II. Động lực đằng sau công trình của Turing và Flowers là một công việc rất cụ thể: giải mã các thông điệp của người Đức. Động lực này đã dẫn tới sự ra đời của máy tính Colossus năm 1944. Tương tự, được dẫn dắt bởi công việc thiết kế bom nguyên tử, các máy tính ENIAC và MANIAC dựa trên cấu trúc IAS của Von Neumann đã lần lượt xuất hiện vào các năm 1946 và 1952.
Máy tính Colossus giải mã các thông điệp của người Đức. Hình trên là Colossus nguyên thủy, hình dưới là máy đã được cấu trúc lại (Ảnh: Pingdom)
Sau chiến tranh, Turing và những người khác tiếp tục phát triển các máy vi tính có thể lập trình cho những công việc tổng quát. Kể từ đó, chúng ta đã chứng kiến sự tăng trưởng bùng nổ về công nghệ vi tính, giải thuật và ngôn ngữ lập trình máy tính. Sự tăng trưởng này vẫn đang tiếp diễn với tốc độ nhanh mà định luật Moore đã dự báo rằng sức mạnh máy vi tính sẽ tăng gấp đôi mỗi hai năm. Những cỗ máy tính chơi cờ vua với con người do chinh con người tạo ra, để giờ đây chúng ta lại cùng nhau đi tìm Cách chơi cờ vua thắng máy tính. Nghe thì có vẻ khá nực cười đúng không nào, nhưng con người là thế, luôn đi tìm những thử thách mới!
Cho tới gần đây, các chương trình được dùng để điều khiển máy tính thông thường vẫn được viết bởi một lập trình viên máy tính là con người. Các chương trình này thường được viết bằng một ngôn ngữ bậc cao như C, Python… và được chuyển đổi (biên dịch hoặc phiên dịch) thành các hướng dẫn mã máy được dùng trong cấu trúc máy tính. Các đoạn mã có thể bị lỗi (lỗi máy tính) và thường phải được kiểm tra kỹ lưỡng để đảm bảo không có lỗi khi phát hành. Như hầu hết chúng ta đã ý thức quá rõ, việc kiểm lỗi này không phải lúc nào cũng hoàn hảo.
Gần đây hơn, đã có một tiến bộ quan trọng trong việc tạo ra các đoạn mã có thể chứng minh và lập luận tự động. Trong các mã này, một nghiệp vụ được đặc tả bởi một lập trình viên, nhưng mã nguồn được viết bởi máy theo cách mà nó có thể chứng minh là mã đó không có lỗi. Các mã có thể chứng minh có những ứng dụng rất quan trọng trong thiết kế phần mềm trong các hệ thống an toàn quan trọng như hệ thống kiểm soát động cơ máy bay, thiết bị y khoa, an ninh mạng.
Tuy vậy, machine learning mới chính là sự phát triển mới nhất trong lĩnh vực lập trình máy tính. Mời bạn đọc tìm hiểu một số giải thuật machine learning chi tiết trong bài viết kế tiếp.
Có lẽ sau khi đọc xong bài viết thật dài này thì bạn đã có câu trả lời cho cách chơi cờ vua thắng máy tính rồi đúng không nào!
/Nguồn: VN Review



Không có nhận xét nào:

Đăng nhận xét