NGHIÊN CỨU & PHÁT TRIỂN MODULE HỖ TRỢ THI ĐẤU CỜ CARO TỰ ĐỘNG GIỮA HAI CHƯƠNG TRÌNH MÁY TÍNH


Tóm tắt nghiên cứu (200-250 từ)

Nghiên cứu mang mã số SV2020-09 do nhóm tác giả Nguyễn Huỳnh Phúc, Lê Hãng Đạo, Phạm Thái Dương (Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP.HCM) thực hiện dưới sự hướng dẫn của ThS. Trần Công Tú. Đề tài tập trung giải quyết câu hỏi nghiên cứu cốt lõi: Làm thế nào để thiết lập một nền tảng chuẩn hóa, khách quan và tự động hóa toàn diện nhằm kết nối và điều phối hai chương trình máy tính (AI Bots) thi đấu cờ Caro đối kháng trực tiếp qua mạng nội bộ?

Về mặt phương pháp luận, nhóm tác giả triển khai kiến trúc mạng phân tán Client – Server dựa trên giao thức truyền thông hướng kết nối tin cậy TCP Stream Socket trên nền tảng .NET Framework (C# / WPF), kết hợp hệ quản trị cơ sở dữ liệu Microsoft SQL Server và cơ chế giao tiếp liên tiến trình (IPC).

Kết quả nghiên cứu đã hiện thực hóa thành công một hệ thống module kép gồm:

  1. Server trọng tài: Tự động điều phối bàn cờ $20 \times 20$, kiểm soát luật chặn hai đầu, luân chuyển lượt đi và phân xử thắng bại;
  2. Client cầu nối: Tích hợp linh hoạt với thuật toán AI của thí sinh và tường thuật trực quan thời gian thực.

Nghiên cứu mang ý nghĩa thực tiễn sâu sắc trong việc chuyển đổi phương thức giảng dạy và kiểm tra đánh giá môn Trí tuệ nhân tạo (AI), tạo lập sân chơi học thuật khách quan và tự động hóa khâu chấm bài tập lập trình game tại các trường đại học.


Bối cảnh và tầm quan trọng (300-350 từ)

Trong kỷ nguyên chuyển đổi số và sự bùng nổ của Trí tuệ nhân tạo (AI), việc đào tạo kỹ năng tư duy thuật toán, đặc biệt là các thuật toán tìm kiếm và lý thuyết trò chơi (Game Theory) như Minimax, Alpha-Beta Pruning hay Heuristic, đóng vai trò then chốt trong chương trình Khoa học máy tính và Công nghệ thông tin. Cờ Caro (Gomoku) từ lâu đã là bài toán kinh điển được ứng dụng phổ biến để rèn luyện kỹ năng xây dựng tác tử thông minh (Intelligent Agents).

Tuy nhiên, bức tranh thực trạng tại thời điểm nghiên cứu bộc lộ một khoảng trống công nghệ rõ rệt:

  • Hạn chế của các nền tảng hiện có: Đa số các ứng dụng cờ Caro trên thị trường chỉ hỗ trợ mô hình Người – Người (Human-vs-Human) hoặc Người – Máy (Human-vs-AI).
  • Quy trình tổ chức thủ công: Các cuộc thi học thuật và kỳ thi lập trình thuật toán (tiêu biểu như giải đấu cờ Caro của FPT Software) chủ yếu diễn ra theo hình thức thi trực tiếp trên giấy hoặc chạy từng chương trình cục bộ. Phương thức này tiêu tốn nhiều thời gian, dễ sai sót trong khâu giám sát thời gian suy nghĩ của máy và khó đảm bảo tính minh bạch tuyệt đối.
  • Thiếu chuẩn giao tiếp chung: Chưa có một module phần mềm trung gian đóng vai trò trọng tài trung lập, cung cấp API/giao thức chuẩn để hai chương trình máy tính độc lập tự động bắt tay, trao đổi nước đi và thi đấu đa trận qua mạng.

Sự cấp thiết của đề tài nằm ở việc cung cấp một giải pháp hạ tầng phần mềm hoàn chỉnh, giải quyết bài toán tự động hóa kiểm thử và so khớp thuật toán. Hệ thống không chỉ giảm thiểu tối đa chi phí tổ chức sự kiện học thuật mà còn đặt nền móng cho việc ứng dụng công nghệ mạng phân tán vào công tác đổi mới phương pháp giảng dạy CNTT.


Methodology và approach (350-400 từ)

Nghiên cứu áp dụng quy trình thiết kế và phát triển phần mềm chuẩn mực, tích hợp phương pháp nghiên cứu lý thuyết, thực nghiệm lặp và tham vấn chuyên gia:

1. Kiến trúc hệ thống và Thiết kế mạng

  • Mô hình phân tán Client – Server: Phân định rõ ràng trách nhiệm giữa nút trọng tài (Server) và các nút thí sinh (Client).
  • Tầng giao vận (Transport Layer): Sử dụng Stream Socket (TCP/IP) thông qua lớp TcpListener (khởi chạy trên cổng mặc định 9999) và TcpClient trong không gian tên System.Net.Sockets. Giao thức TCP bảo đảm tính toàn vẹn dữ liệu, chống thất lạc gói tin và duy trì đúng tuần tự nước đi.
  • Định dạng gói tin: Nhóm nghiên cứu thiết kế cú pháp gói tin dạng chuỗi ký tự chuẩn hóa, sử dụng ký tự phân tách đặc biệt kèm đuôi kết thúc [end] để khắc phục triệt để hiện tượng dính gói tin (packet fragmentation/coalescing) trên luồng mạng.

2. Công nghệ phát triển và Giao tiếp tiến trình (IPC)

  • Framework & Ngôn ngữ: Nền tảng .NET Framework kết hợp ngôn ngữ C#.
  • Giao diện đồ họa (GUI): Ứng dụng Windows Presentation Foundation (WPF) và ngôn ngữ đánh dấu XAML, tận dụng năng lực tăng tốc phần cứng của DirectX để hiển thị bàn cờ vector $20 \times 20$ và xây dựng bảng điều khiển mượt mà.
  • Giao tiếp ngoại vi: Client khởi chạy thuật toán AI dưới dạng một tiến trình độc lập (Process), truyền nhận tọa độ nước cờ thông qua chuyển hướng luồng nhập/xuất chuẩn (Standard Input/Output Redirection), giúp cô lập môi trường thực thi của bot dự thi.

3. Cơ sở dữ liệu và Độ tin cậy (Reliability)

  • Hệ quản trị CSDL: Microsoft SQL Server lưu trữ định danh người dùng, bảng xếp hạng và biên bản ván đấu (Move history).
  • Xử lý sự cố: Tích hợp thuật toán giám sát trạng thái kết nối mạng qua IPGlobalProperties.GetIPGlobalProperties(), cho phép phát hiện tức thời tình trạng đứt kết nối, hỗ trợ bảo lưu và phục hồi trạng thái ván cờ khi gặp lỗi kỹ thuật.

Phát hiện chính (400-450 từ)

Quá trình thiết kế, hiện thực hóa và thử nghiệm thực tế đã mang lại 4 phát hiện công nghệ nổi bật:

1. Hiện thực hóa thành công cơ chế "Adapter Pattern" cho thuật toán AI

Hệ thống chứng minh tính khả thi của việc phân tách hoàn toàn giữa Logic hiển thị/truyền thông (Client Wrapper) và Thuật toán thông minh (AI Engine). Nhờ cơ chế chuyển tiếp I/O qua Console Stream, thí sinh có thể phát triển bot bằng nhiều ngôn ngữ lập trình khác nhau (C++, Python, Java, C#) mà không cần can thiệp hay cài đặt phức tạp vào mã nguồn mạng của hệ thống.

// Trích đoạn mã nguồn điều phối luồng dữ liệu Client - Server
public void WriteToStream(string data) {
    byte[] dataTemp = new byte[SIZE_OF_BYTE];
    dataTemp = Encoding.UTF8.GetBytes(data + "[end]");
    NetworkStream stream = player.GetStream();
    stream.Write(dataTemp, 0, dataTemp.Length);
}

2. Chuẩn hóa quy trình trọng tài với độ chính xác tuyệt đối

Module Server loại bỏ hoàn toàn các tranh cãi về mặt quy tắc trong thi đấu:

  • Tự động nhận diện chuỗi 5 quân cờ liên tiếp theo các hướng (ngang, dọc, chéo chính, chéo phụ).
  • Hỗ trợ bật/tắt linh hoạt Luật chặn hai đầu (Chặn 2 đầu không tính thắng) – một tính năng quan trọng trong cờ Caro chuyên nghiệp.
  • Giám sát thời gian thực thi của từng nước đi, tự động xử thua nếu chương trình của thí sinh bị treo hoặc quá thời gian quy định.

3. Khả năng tự động hóa đấu chuỗi (Batch Execution) và Đổi lượt

Hệ thống cho phép cấu hình thi đấu nhiều ván liên tiếp ($N$ ván) giữa 2 đấu thủ chỉ với một cú nhấp chuột. Module tự động hoán đổi quyền đi trước (Tiên/Hậu) sau mỗi ván nhằm triệt tiêu ưu thế đi trước vốn có của cờ Caro, đảm bảo tính công bằng khoa học trong việc đánh giá hiệu năng giải thuật.

4. Tường thuật trực quan (Replay Engine) hiệu năng cao

Cơ chế lưu trữ log dạng mảng tuần tự các bước đi kết hợp cùng giao diện WPF mang lại trải nghiệm phân tích chiến thuật toàn diện:

  • Hệ thống hỗ trợ các chế độ: Play/Pause, Bước kế tiếp (Next), Quay lại (Back), Tua đến kết thúc ván (Fast-Forward).
  • Độ trễ truyền nhận tín hiệu giữa Client và Server trong môi trường mạng LAN đo đạc được đạt mức < 5ms, CPU Server duy trì mức tải dưới 3% khi vận hành, chứng minh hiệu năng tối ưu của Stream Socket và kiến trúc phần mềm hướng sự kiện.

Đóng góp khoa học (250-300 từ)

Đề tài SV2020-09 mang lại những giá trị đóng góp thiết thực trên cả ba phương diện:

1. Đóng góp về mặt phương pháp luận và lý thuyết

  • Xây dựng thành công mô hình tham chiếu cho việc đánh giá tự động (Automated Benchmarking) các thuật toán đối kháng trò chơi thông qua kiến trúc phân tán.
  • Chuẩn hóa bộ quy tắc đóng gói và định dạng dữ liệu giao tiếp hai chiều giữa trọng tài ảo và các tác tử AI độc lập.

2. Giá trị ứng dụng thực tiễn trong giáo dục

  • Tự động hóa giáo dục: Cung cấp công cụ hỗ trợ giảng viên Khoa CNTT chấm điểm tự động các bài tập lớn môn Cấu trúc dữ liệu & Giải thuật, Trí tuệ nhân tạo.
  • Tiết kiệm nguồn lực: Giảm thiểu trên 90% nhân lực và thời gian tổ chức các cuộc thi học thuật so với hình thức thi đấu thủ công truyền thống.

3. Tính mở rộng của nền tảng

Bộ khung kiến trúc (Framework) của đề tài có khả năng tái sử dụng cao, dễ dàng mở rộng để áp dụng cho nhiều thể loại game đối kháng theo lượt khác như Cờ tướng, Cờ vua, Cờ vây hoặc Cờ Othello (Reversi).


Đối tượng quan tâm (200-250 từ)

Kết quả nghiên cứu này hướng đến và mang lại giá trị cụ thể cho các nhóm đối tượng:

  • Giảng viên và Nhà nghiên cứu học thuật: Sử dụng làm công cụ trực quan để giảng dạy các chuyên đề về Lập trình mạng (Socket programming), Thiết kế phần mềm hướng đối tượng (OOD) và Trí tuệ nhân tạo; đồng thời là nền tảng thử nghiệm để kiểm chứng các cải tiến giải thuật Heuristic.
  • Sinh viên ngành Khoa học máy tính / CNTT: Có sẵn một môi trường giả lập chuẩn hóa (Testbed) để kiểm thử bot, phát triển tư duy thuật toán và rèn luyện kỹ năng lập trình hướng sự kiện.
  • Các đơn vị tổ chức sự kiện công nghệ và Câu lạc bộ học thuật: Sở hữu một giải pháp phần mềm "chìa khóa trao tay" (Turn-key solution) để tổ chức các giải đấu e-Sports lập trình AI quy mô trường viện hoặc liên trường với tính minh bạch tuyệt đối.

FAQ (Câu hỏi thường gặp) (250-300 từ)

1. Điểm đột phá kỹ thuật quan trọng nhất của đề tài là gì?

Trả lời: Đó là việc hiện thực hóa cơ chế Trọng tài số tự động thông qua TCP Stream Socket, cho phép hai chương trình máy tính độc lập tự động bắt cặp, thi đấu và phân xử thắng thua mà không cần bất kỳ sự can thiệp thủ công nào từ con người.

2. Thí sinh có bắt buộc phải lập trình AI bằng ngôn ngữ C# không?

Trả lời: Không. Nhờ kiến trúc phân tách giữa Client Adapter và Bot Process qua cơ chế đọc/ghi Console (Standard I/O), thí sinh có thể tự do sử dụng bất kỳ ngôn ngữ nào (C++, Python, Java, Go...) để xây dựng AI, miễn là tuân thủ định dạng truyền nhận tọa độ.

3. Hệ thống có thể mở rộng ra ngoài phạm vi mạng nội bộ (LAN) không?

Trả lời: Hoàn toàn có thể. Mặc dù đề tài thử nghiệm trên mạng LAN, kiến trúc TCP/IP tiêu chuẩn cho phép hệ thống triển khai qua mạng diện rộng (WAN), Internet hoặc mạng riêng ảo (VPN) bằng cách cấu hình NAT/Port Forwarding hoặc triển khai Server lên Cloud.

4. Hệ thống xử lý thế nào khi một bên thí sinh bị ngắt kết nối giữa chừng?

Trả lời: Server tích hợp module kiểm tra trạng thái Socket định kỳ. Khi xảy ra sự cố mất kết nối hoặc sập tiến trình, Server sẽ ghi nhận log, tự động xử thua bên gặp sự cố hoặc kích hoạt cơ chế bảo lưu bàn cờ để khôi phục trạng thái khi kết nối lại.

5. Nền tảng này có thể mở rộng sang các trò chơi trí tuệ khác không?

Trả lời: Có. Toàn bộ kiến trúc mạng, quản trị người dùng và giao thức luân phiên lượt đi (Turn-based protocol) đều mang tính tổng quát, có thể tái sử dụng để phát triển module thi đấu cho Cờ Othello, Cờ vua, Cờ vây...


Kết luận (150 từ)

Đề tài nghiên cứu khoa học sinh viên "Xây Dựng Module Hỗ Trợ Hai Chương Trình Máy Tính Thi Đấu Cờ Caro Tự Động" (Mã số: SV2020-09) của Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết trọn vẹn và xuất sắc bài toán tự động hóa thi đấu thuật toán. Bằng việc kết hợp nhuần nhuyễn giữa kiến trúc Client-Server, giao thức TCP Socket, công nghệ WPF hiện đại và hệ quản trị CSDL SQL Server, nhóm tác giả đã cung cấp một công cụ học thuật chuẩn mực, giàu tính ứng dụng và độ tin cậy cao.

Trong giai đoạn tiếp theo, hệ thống hứa hẹn phát triển mạnh mẽ hơn nữa thông qua việc tích hợp hệ thống chấm điểm Elo quốc tế, đóng gói môi trường thực thi Bot bằng Docker Container và triển khai nền tảng Web-based trên điện toán đám mây.