Saltar al contenido principal

Reglas personalizadas y variantes

Este artículo presenta las diversas reglas de Go soportadas por KataGo, variantes de tamaño de tablero y cómo personalizar la configuración de reglas.

KataGo soporta múltiples conjuntos de reglas como las chinas, japonesas, coreanas, AGA, neozelandesas y Tromp-Taylor, y permite personalizar el método de conteo, el komi y el tamaño del tablero en config.cfg mediante parámetros como rules, komi (komi) y boardXSize/boardYSize (tamaño del tablero).


Visión general de conjuntos de reglas​

Comparación de reglas principales​

Conjunto de reglasMétodo de conteoKomiSuicidioRecaptura de ko
ChineseConteo de área7.5ProhibidoProhibida
JapaneseConteo de territorio6.5ProhibidoProhibida
KoreanConteo de territorio6.5ProhibidoProhibida
AGAMixto7.5ProhibidoProhibida
New ZealandConteo de área7PermitidoProhibida
Tromp-TaylorConteo de área7.5PermitidoProhibida

Configuración KataGo​

# config.cfg
rules = chinese # Conjunto de reglas
komi = 7.5 # Komi
boardXSize = 19 # Ancho del tablero
boardYSize = 19 # Alto del tablero

Reglas chinas (Chinese)​

Características​

Método de conteo: Conteo de área (piedras + territorio)
Komi: 7.5 puntos
Suicidio: Prohibido
Recaptura de ko: Prohibida (regla simplificada)

Explicación del conteo de área​

Puntuación final = Piedras propias + Puntos vacíos propios

Ejemplo:
Negro 120 piedras + Negro 65 puntos de territorio = 185 puntos
Blanco 100 piedras + Blanco 75 puntos de territorio + Komi 7.5 = 182.5 puntos
Negro gana por 2.5 puntos

Configuración KataGo​

rules = chinese
komi = 7.5

Reglas japonesas (Japanese)​

Características​

Método de conteo: Conteo de territorio (solo puntos vacíos)
Komi: 6.5 puntos
Suicidio: Prohibido
Recaptura de ko: Prohibida
Requiere marcar piedras muertas

Explicación del conteo de territorio​

Puntuación final = Puntos vacíos propios + Piedras capturadas del oponente

Ejemplo:
Negro 65 puntos de territorio + 10 capturas = 75 puntos
Blanco 75 puntos de territorio + 5 capturas + Komi 6.5 = 86.5 puntos
Blanco gana por 11.5 puntos

Determinación de piedras muertas​

Las reglas japonesas requieren que ambos jugadores acuerden qué piedras están muertas:

def is_dead_by_japanese_rules(group, game_state):
"""Determinar piedras muertas según reglas japonesas"""
# Necesita probar que la cadena no puede hacer dos ojos
# Esta es la complejidad de las reglas japonesas
pass

Configuración KataGo​

rules = japanese
komi = 6.5

Reglas AGA​

Características​

Las reglas de la American Go Association (AGA) combinan las ventajas de las reglas chinas y japonesas:

Método de conteo: Mixto (área o territorio, mismo resultado)
Komi: 7.5 puntos
Suicidio: Prohibido
Blanco necesita dar una piedra para pasar

Regla de pasar​

Negro pasa: No necesita dar piedra
Blanco pasa: Necesita entregar una piedra a Negro

Esto hace que el conteo de área y territorio den el mismo resultado

Configuración KataGo​

rules = aga
komi = 7.5

Reglas Tromp-Taylor​

Características​

Las reglas de Go más simples, ideales para implementación en programas:

Método de conteo: Conteo de área
Komi: 7.5 puntos
Suicidio: Permitido
Recaptura de ko: Super Ko (prohibir cualquier posición repetida)
No requiere determinar piedras muertas

Super Ko​

def is_superko_violation(new_state, history):
"""Verificar si viola Super Ko"""
for past_state in history:
if new_state == past_state:
return True
return False

Determinación del final del juego​

No requiere acuerdo de piedras muertas
El juego continúa hasta:
1. Ambos jugadores pasan consecutivamente
2. Luego usar búsqueda o jugar realmente para determinar el territorio

Configuración KataGo​

rules = tromp-taylor
komi = 7.5

Variantes de tamaño de tablero​

Tamaños soportados​

KataGo soporta múltiples tamaños de tablero:

TamañoCaracterísticasUso recomendado
9×9~81 puntosPrincipiantes, partidas rápidas
13×13~169 puntosAprendizaje avanzado
19×19361 puntosCompeticiones estándar
PersonalizadoCualquieraInvestigación, pruebas

Método de configuración​

# Tablero 9×9
boardXSize = 9
boardYSize = 9
komi = 5.5

# Tablero 13×13
boardXSize = 13
boardYSize = 13
komi = 6.5

# Tablero no cuadrado
boardXSize = 19
boardYSize = 9

Komi recomendado​

TamañoReglas chinasReglas japonesas
9×95.55.5
13×136.56.5
19×197.56.5

Configuración de handicap​

Partidas con handicap​

El handicap es una forma de ajustar la diferencia de fuerza:

# Handicap 2 piedras
handicap = 2

# Handicap 9 piedras
handicap = 9

Posiciones de handicap​

HANDICAP_POSITIONS = {
2: [(3, 15), (15, 3)],
3: [(3, 15), (15, 3), (15, 15)],
4: [(3, 15), (15, 3), (3, 3), (15, 15)],
# 5-9 piedras usan puntos estrella + tengen
}

Komi en partidas con handicap​

# Tradicional: Sin komi o medio punto
komi = 0.5

# Moderno: Ajustar según número de piedras
# Cada piedra vale ~10-15 puntos

Configuración de reglas en modo Analysis​

Comandos GTP​

# Establecer reglas
kata-set-rules chinese

# Establecer komi
komi 7.5

# Establecer tamaño de tablero
boardsize 19

Analysis API​

{
"id": "query1",
"moves": [["B", "Q4"], ["W", "D4"]],
"rules": "chinese",
"komi": 7.5,
"boardXSize": 19,
"boardYSize": 19,
"overrideSettings": {
"maxVisits": 1000
}
}

Opciones de reglas avanzadas​

Configuración de suicidio​

# Prohibir suicidio (por defecto)
allowSuicide = false

# Permitir suicidio (estilo Tromp-Taylor)
allowSuicide = true

Reglas de Ko​

# Simple Ko (solo prohibir recaptura inmediata)
koRule = SIMPLE

# Positional Super Ko (prohibir repetir cualquier posición, sin importar quién juega)
koRule = POSITIONAL

# Situational Super Ko (prohibir repetir posiciones del mismo jugador)
koRule = SITUATIONAL

Reglas de puntuación​

# Conteo de área (China, AGA)
scoringRule = AREA

# Conteo de territorio (Japón, Corea)
scoringRule = TERRITORY

Reglas de impuesto​

Algunas reglas tienen puntuación especial para áreas de seki:

# Sin impuesto
taxRule = NONE

# Seki sin puntos
taxRule = SEKI

# Todos los ojos sin puntos
taxRule = ALL

Entrenamiento multi-reglas​

Ventaja de KataGo​

KataGo usa un solo modelo que soporta múltiples reglas:

def encode_rules(rules):
"""Codificar reglas como entrada de red neuronal"""
features = np.zeros(RULE_FEATURE_SIZE)

# Método de puntuación
features[0] = 1.0 if rules.scoring == 'area' else 0.0

# Suicidio
features[1] = 1.0 if rules.allow_suicide else 0.0

# Regla de Ko
features[2:5] = encode_ko_rule(rules.ko)

# Komi (normalizado)
features[5] = rules.komi / 15.0

return features

Entrada consciente de reglas​

La entrada de la red neuronal incluye:
- Estado del tablero (19×19×N)
- Vector de características de reglas (K dimensiones)

Esto permite que el mismo modelo entienda diferentes reglas

Ejemplo de cambio de reglas​

Código Python​

from katago import KataGo

engine = KataGo(model_path="kata.bin.gz")

# Análisis con reglas chinas
result_cn = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="chinese",
komi=7.5
)

# Análisis con reglas japonesas (misma posición)
result_jp = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="japanese",
komi=6.5
)

# Comparar diferencias
print(f"Tasa de victoria de Negro (reglas chinas): {result_cn['winrate']:.1%}")
print(f"Tasa de victoria de Negro (reglas japonesas): {result_jp['winrate']:.1%}")

Análisis de impacto de reglas​

def compare_rules_impact(position, rules_list):
"""Comparar el impacto de diferentes reglas en la evaluación de la posición"""
results = {}

for rules in rules_list:
analysis = engine.analyze(
moves=position,
rules=rules,
komi=get_default_komi(rules)
)
results[rules] = {
'winrate': analysis['winrate'],
'score': analysis['scoreLead'],
'best_move': analysis['moveInfos'][0]['move']
}

return results

Preguntas frecuentes​

Diferencias de reglas que causan diferentes resultados​

La misma partida puede tener diferentes resultados según las reglas:
- Diferencias de puntuación entre conteo de área y territorio
- Manejo de áreas de seki
- Impacto de los pases (tenuki)

¿Qué reglas elegir?​

EscenarioReglas recomendadas
PrincipiantesChinese (intuitivo, sin disputas)
Competiciones onlinePor defecto de la plataforma (generalmente Chinese)
Nihon Ki-inJapanese
Implementación en programasTromp-Taylor (más simple)
Competiciones profesionales en ChinaChinese

¿El modelo necesita entrenarse para reglas específicas?​

El modelo multi-reglas de KataGo ya es muy fuerte. Pero si solo usas un conjunto de reglas, puedes considerar:

# Entrenamiento con reglas fijas (puede mejorar ligeramente la fuerza para esas reglas)
rules = chinese

Lectura adicional​