Skip to content

About

Agente MCTS para Connect6 (C++17) con arquitectura de árbol de paso simple y sesgo VCDT, diseñado para manejar el factor de ramificación >300 movimientos

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

Monte Carlo Tree Search (MCTS)

Agente basado en Monte Carlo Tree Search (MCTS) diseñado específicamente para dominar el Connect6, un juego donde el factor de ramificación supera las 300 opciones por movimiento. Implementado en C++17, el sistema está contenerizado con Docker y se comunica vía gRPC para competir en el entorno distribuido de la asignatura Inteligencia Artificial I.

Tablero

Connect6 se juega sobre una cuadrícula estándar de 19x19. La partida comienza con el jugador Negro colocando 1 piedra en su primer turno; a partir de ahí, ambos jugadores colocan 2 piedras por turno. El objetivo es alinear 6 fichas propias en línea recta (horizontal, vertical o diagonal) para declarar la victoria. El servidor gestiona automáticamente la legalidad de los movimientos y el límite de tiempo (10 segundos por turno).

Juego

Los 3 Modos de Juego:

🤖 IA vs IA: Dos agentes autónomos compiten sin intervención humana.

👤 Humano vs Humano: Dos jugadores se turnan en la misma máquina para jugar.

🧠 IA vs Humano: Un jugador real se enfrenta directamente al agente MCTS.

interfaz

Innovaciones Técnicas del Algoritmo

proy

Arquitectura de Árbol de "Paso Simple"

Cada nivel del árbol representa la colocación de una sola piedra.

Permite evaluar la regla de 2 piedras por turno como una secuencia lógica, optimizando la búsqueda de combinaciones tácticas (dobles amenazas).

Selección con Sesgo VCDT (Victory by Continuous Double Threats)

Fórmula UCT mejorada con conocimiento de dominio: text UCT = (v/n) + C√(ln(N)/n) + Prioridad_VCDT/(n+1) Inyecta un valor extra a los nodos que generan o bloquean amenazas de nivel 4 o superior.

Equilibrio perfecto entre exploración y explotación con guía estratégica.

Expansión Inteligente

Filtro de Relevancia: Solo expande casillas cercanas a piedras existentes, podando ramas irrelevantes.

Detección de Jugadas Urgentes: Evaluación previa que colapsa el árbol si detecta:

Victoria Inmediata: Completa el 6-en-raya y elige esa jugada directamente.

Bloqueo Obligatorio: Si el rival tiene amenaza Nivel 5 o Nivel 4 doble, restringe la expansión solo a casillas de bloqueo.

Simulaciones Estratégicas (Rollout)

40 pasos de simulación (equivale a 20 turnos completos).

Política de "Heurística Agresiva": Los jugadores simulados priorizan ganar o bloquear antes de moverse al azar.

Respeto estricto de las reglas (1 ficha inicial, luego 2 por turno).

Retropropagación Manual (Backtracking)

Sistema propio de gestión de estados que mantiene la integridad del tablero durante miles de iteraciones por segundo.

Correr el proyecto

Ejecute el siguiente comando

docker compose up --build

Abre la URL que aparezca en la terminal (normalmente http://localhost:5173 o similar) en tu navegador.

About

Agente MCTS para Connect6 (C++17) con arquitectura de árbol de paso simple y sesgo VCDT, diseñado para manejar el factor de ramificación >300 movimientos

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages