Pular para o conteúdo principal

Regras Personalizadas e Variantes

Este artigo apresenta os diversos conjuntos de regras de Go suportados pelo KataGo, variantes de tamanho de tabuleiro e como personalizar configuracoes de regras.

O KataGo suporta varios conjuntos de regras, como chinesa, japonesa, coreana, AGA, neozelandesa e Tromp-Taylor. No arquivo config.cfg e possivel personalizar o metodo de contagem, o komi e o tamanho do tabuleiro por meio de parametros como rules, komi e boardXSize/boardYSize.


Visao Geral dos Conjuntos de Regras​

Comparacao das Principais Regras​

Conjunto de RegrasMetodo de ContagemKomiSuicidioReversao de Ko
ChineseContagem de area7.5ProibidoProibido
JapaneseContagem de territorio6.5ProibidoProibido
KoreanContagem de territorio6.5ProibidoProibido
AGAMisto7.5ProibidoProibido
New ZealandContagem de area7PermitidoProibido
Tromp-TaylorContagem de area7.5PermitidoProibido

Configuracao do KataGo​

# config.cfg
rules = chinese # Conjunto de regras
komi = 7.5 # Komi
boardXSize = 19 # Largura do tabuleiro
boardYSize = 19 # Altura do tabuleiro

Regras Chinesas (Chinese)​

Caracteristicas​

Metodo de contagem: Contagem de area (pedras + territorio)
Komi: 7.5 pontos
Suicidio: Proibido
Reversao de Ko: Proibido (regras simplificadas)

Explicacao da Contagem de Area​

Pontuacao final = Pedras proprias + Pontos vazios proprios

Exemplo:
Preto 120 pedras + 65 pontos de territorio = 185 pontos
Branco 100 pedras + 75 pontos + komi 7.5 = 182.5 pontos
Preto vence por 2.5 pontos

Configuracao do KataGo​

rules = chinese
komi = 7.5

Regras Japonesas (Japanese)​

Caracteristicas​

Metodo de contagem: Contagem de territorio (apenas pontos vazios)
Komi: 6.5 pontos
Suicidio: Proibido
Reversao de Ko: Proibido
Requer marcacao de pedras mortas

Explicacao da Contagem de Territorio​

Pontuacao final = Pontos vazios proprios + Pedras capturadas do oponente

Exemplo:
Territorio preto 65 pontos + 10 capturas = 75 pontos
Territorio branco 75 pontos + 5 capturas + komi 6.5 = 86.5 pontos
Branco vence por 11.5 pontos

Determinacao de Pedras Mortas​

Regras japonesas requerem acordo de ambos os jogadores sobre quais pedras estao mortas:

def is_dead_by_japanese_rules(group, game_state):
"""Determina pedras mortas sob regras japonesas"""
# Precisa provar que o grupo nao pode fazer dois olhos
# Esta e a complexidade das regras japonesas
pass

Configuracao do KataGo​

rules = japanese
komi = 6.5

Regras AGA​

Caracteristicas​

As regras da American Go Association (AGA) combinam vantagens das regras chinesas e japonesas:

Metodo de contagem: Misto (area ou territorio, resultado igual)
Komi: 7.5 pontos
Suicidio: Proibido
Branco precisa preencher um ponto para passar

Regra de Pass​

Preto passa: Nao precisa preencher
Branco passa: Precisa entregar uma pedra ao Preto

Isso faz com que contagem de area e territorio deem o mesmo resultado

Configuracao do KataGo​

rules = aga
komi = 7.5

Regras Tromp-Taylor​

Caracteristicas​

As regras de Go mais concisas, adequadas para implementacao em programas:

Metodo de contagem: Contagem de area
Komi: 7.5 pontos
Suicidio: Permitido
Reversao de Ko: Super Ko (proibe qualquer posicao repetida)
Nao precisa determinar pedras mortas

Super Ko​

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

Determinacao de Fim de Jogo​

Nao precisa de acordo sobre pedras mortas
O jogo continua ate:
1. Ambos passarem consecutivamente
2. Depois usa busca ou joga ate o fim para determinar territorio

Configuracao do KataGo​

rules = tromp-taylor
komi = 7.5

Variantes de Tamanho de Tabuleiro​

Tamanhos Suportados​

KataGo suporta varios tamanhos de tabuleiro:

TamanhoCaracteristicasUso Recomendado
9x9~81 pontosIniciantes, partidas rapidas
13x13~169 pontosAprendizado avancado
19x19361 pontosCompeticoes padrao
PersonalizadoQualquerPesquisa, testes

Metodo de Configuracao​

# Tabuleiro 9x9
boardXSize = 9
boardYSize = 9
komi = 5.5

# Tabuleiro 13x13
boardXSize = 13
boardYSize = 13
komi = 6.5

# Tabuleiro nao quadrado
boardXSize = 19
boardYSize = 9

Komi Recomendado​

TamanhoRegras ChinesasRegras Japonesas
9x95.55.5
13x136.56.5
19x197.56.5

Configuracao de Handicap​

Partidas com Handicap​

Handicap e uma forma de ajustar a diferenca de forca:

# Handicap de 2 pedras
handicap = 2

# Handicap de 9 pedras
handicap = 9

Posicoes 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 pedras usam pontos estrela + tengen
}

Komi com Handicap​

# Tradicional: Sem komi ou meio ponto com handicap
komi = 0.5

# Moderno: Ajustar conforme numero de pedras
# Cada pedra vale aproximadamente 10-15 pontos

Configuracao de Regras no Modo Analysis​

Comandos GTP​

# Definir regras
kata-set-rules chinese

# Definir komi
komi 7.5

# Definir tamanho do tabuleiro
boardsize 19

API de Analysis​

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

Opcoes de Regras Avancadas​

Configuracao de Suicidio​

# Proibir suicidio (padrao)
allowSuicide = false

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

Regras de Ko​

# Simple Ko (proibe apenas reversao imediata)
koRule = SIMPLE

# Positional Super Ko (proibe repeticao de qualquer posicao, independente de quem joga)
koRule = POSITIONAL

# Situational Super Ko (proibe repeticao da posicao jogada pelo mesmo lado)
koRule = SITUATIONAL

Regras de Pontuacao​

# Contagem de area (Chinesa, AGA)
scoringRule = AREA

# Contagem de territorio (Japonesa, Coreana)
scoringRule = TERRITORY

Regras de Imposto​

Algumas regras tem pontuacao especial para areas de seki:

# Sem imposto
taxRule = NONE

# Seki sem pontos
taxRule = SEKI

# Todos os olhos sem pontos
taxRule = ALL

Treinamento Multi-Regras​

Vantagem do KataGo​

KataGo usa um unico modelo para suportar multiplas regras:

def encode_rules(rules):
"""Codifica regras como entrada da rede neural"""
features = np.zeros(RULE_FEATURE_SIZE)

# Metodo de pontuacao
features[0] = 1.0 if rules.scoring == 'area' else 0.0

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

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

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

return features

Entrada Consciente de Regras​

Entrada da rede neural inclui:
- Estado do tabuleiro (19x19xN)
- Vetor de caracteristicas de regras (K dimensoes)

Isso permite que o mesmo modelo entenda diferentes regras

Exemplo de Troca de Regras​

Codigo Python​

from katago import KataGo

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

# Analise com regras chinesas
result_cn = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="chinese",
komi=7.5
)

# Analise com regras japonesas (mesma posicao)
result_jp = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="japanese",
komi=6.5
)

# Comparar diferencas
print(f"Taxa de vitoria do Preto (regras chinesas): {result_cn['winrate']:.1%}")
print(f"Taxa de vitoria do Preto (regras japonesas): {result_jp['winrate']:.1%}")

Analise de Impacto das Regras​

def compare_rules_impact(position, rules_list):
"""Compara impacto de diferentes regras na avaliacao da posicao"""
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

Perguntas Frequentes​

Diferencas de Regras Causando Resultados Diferentes​

O mesmo jogo pode ter resultados diferentes com regras diferentes:
- Diferencas de pontuacao entre contagem de area e territorio
- Tratamento de areas de seki
- Impacto de jogadas virtuais (pass)

Qual Regra Escolher?​

CenarioRegra Recomendada
IniciantesChinese (intuitiva, sem controversias)
Competicoes onlinePadrao da plataforma (geralmente Chinese)
Associacao JaponesaJapanese
Implementacao em programasTromp-Taylor (mais concisa)
Competicoes profissionais chinesasChinese

O Modelo Precisa Ser Treinado para Regras Especificas?​

O modelo multi-regras do KataGo ja e muito forte. Mas se usar apenas uma regra, pode considerar:

# Treinamento com regra fixa (pode melhorar levemente a forca sob essa regra especifica)
rules = chinese

Leitura Adicional​