कस्टम नियम और वेरिएंट
यह लेख KataGo द्वारा समर्थित विभिन्न गो नियमों, बोर्ड आकार वेरिएंट और नियम सेटिंग को कस्टमाइज़ करने का परिचय देता है।
नियम सेट अवलोकन
मुख्य नियम तुलना
| नियम सेट | स्कोरिंग विधि | कोमी | आत्मघाती चाल | को वापसी |
|---|---|---|---|---|
| Chinese | एरिया स्कोरिंग | 7.5 | निषिद्ध | निषिद्ध |
| Japanese | टेरिटरी स्कोरिंग | 6.5 | निषिद्ध | निषिद्ध |
| Korean | टेरिटरी स्कोरिंग | 6.5 | निषिद्ध | निषिद्ध |
| AGA | मिश्रित | 7.5 | निषिद्ध | निषिद्ध |
| New Zealand | एरिया स्कोरिंग | 7 | अनुमत | निषिद्ध |
| Tromp-Taylor | एरिया स्कोरिंग | 7.5 | अनुमत | निषिद्ध |
KataGo सेटिंग
# config.cfg
rules = chinese # नियम सेट
komi = 7.5 # कोमी
boardXSize = 19 # बोर्ड चौड़ाई
boardYSize = 19 # बोर्ड ऊंचाई
चीनी नियम (Chinese)
विशेषताएं
स्कोरिंग विधि: एरिया स्कोरिंग (पत्थर और क्षेत्र दोनों)
कोमी: 7.5 अंक
आत्मघाती चाल: निषिद्ध
को वापसी: निषिद्ध (सरलीकृत नियम)
एरिया स्कोरिंग विवरण
अंतिम स्कोर = अपने पत्थरों की संख्या + अपने खाली बिंदुओं की संख्या
उदाहरण:
काले पत्थर 120 + काला क्षेत्र 65 = 185 अंक
सफेद पत्थर 100 + सफेद क्षेत्र 75 + कोमी 7.5 = 182.5 अंक
काला 2.5 अंक से जीता
KataGo सेटिंग
rules = chinese
komi = 7.5
जापानी नियम (Japanese)
विशेषताएं
स्कोरिंग विधि: टेरिटरी स्कोरिंग (केवल खाली बिंदु गिनें)
कोमी: 6.5 अंक
आत्मघाती चाल: निषिद्ध
को वापसी: निषिद्ध
मृत पत्थर चिह्नित करने की आवश्यकता
टेरिटरी स्कोरिंग विवरण
अंतिम स्कोर = अपने खाली बिंदु + कैप्चर किए गए प्रतिद्वंद्वी के पत्थर
उदाहरण:
काला क्षेत्र 65 + कैप्चर 10 = 75 अंक
सफेद क्षेत्र 75 + कैप्चर 5 + कोमी 6.5 = 86.5 अंक
सफेद 11.5 अंक से जीता
मृत पत्थर निर्धारण
जापानी नियमों में दोनों पक्षों को सहमत होना होगा कि कौन से पत्थर मृत हैं:
def is_dead_by_japanese_rules(group, game_state):
"""जापानी नियमों के तहत मृत पत्थर निर्धारण"""
# यह साबित करना होगा कि पत्थर समूह दो आंखें नहीं बना सकता
# यह जापानी नियमों की जटिलता है
pass
KataGo सेटिंग
rules = japanese
komi = 6.5
AGA नियम
विशेषताएं
अमेरिकन गो एसोसिएशन (AGA) नियम चीनी और जापानी नियमों के फायदे जोड़ते हैं:
स्कोरिंग विधि: मिश्रित (एरिया या टेरिटरी दोनों, समान परिणाम)
कोमी: 7.5 अंक
आत्मघाती चाल: निषिद्ध
सफेद को पास के लिए एक पत्थर भरना होगा
पास नियम
काला पास: पत्थर भरने की जरूरत नहीं
सफेद पास: काले को एक पत्थर देना होगा
यह एरिया और टेरिटरी स्कोरिंग को समान बनाता है
KataGo सेटिंग
rules = aga
komi = 7.5
Tromp-Taylor नियम
विशेषताएं
सबसे सरल गो नियम, प्रोग्राम कार्यान्वयन के लिए उपयुक्त:
स्कोरिंग विधि: एरिया स्कोरिंग
कोमी: 7.5 अंक
आत्मघाती चाल: अनुमत
को वापसी: Super Ko (किसी भी दोहराई स्थिति निषिद्ध)
मृत पत्थर निर्धारण की आवश्यकता नहीं
Super Ko
def is_superko_violation(new_state, history):
"""Super Ko उल्लंघन जांचें"""
for past_state in history:
if new_state == past_state:
return True
return False
समाप्ति निर्धारण
दोनों पक्षों की मृत पत्थर सहमति आवश्यक नहीं
गेम जारी रहता है जब तक:
1. दोनों पक्ष लगातार पास
2. फिर सर्च या वास्तविक खेल से क्षेत्र निर्धारित
KataGo सेटिंग
rules = tromp-taylor
komi = 7.5
बोर्ड आकार वेरिएंट
समर्थित आकार
KataGo कई बोर्ड आकारों का समर्थन करता है:
| आकार | विशेषताएं | सुझाया उपयोग |
|---|---|---|
| 9×9 | ~81 बिंदु | शुरुआती, त्वरित गेम |
| 13×13 | ~169 बिंदु | उन्नत सीखना |
| 19×19 | 361 बिंदु | मानक प्रतियोगिता |
| कस्टम | कोई भी | अनुसंधान, परीक्षण |
सेटिंग विधि
# 9×9 बोर्ड
boardXSize = 9
boardYSize = 9
komi = 5.5
# 13×13 बोर्ड
boardXSize = 13
boardYSize = 13
komi = 6.5
# गैर-वर्गाकार बोर्ड
boardXSize = 19
boardYSize = 9
कोमी सुझाव
| आकार | चीनी नियम | जापानी नियम |
|---|---|---|
| 9×9 | 5.5 | 5.5 |
| 13×13 | 6.5 | 6.5 |
| 19×19 | 7.5 | 6.5 |
हैंडीकैप सेटिंग
हैंडीकैप गेम
हैंडीकैप खेल शक्ति अंतर समायोजित करने का तरीका है:
# 2 पत्थर हैंडीकैप
handicap = 2
# 9 पत्थर हैंडीकैप
handicap = 9
हैंडीकैप स्थिति
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 पत्थर स्टार पॉइंट + तेनगेन उपयोग करते हैं
}
हैंडीकैप के साथ कोमी
# पारंपरिक: हैंडीकैप में कोमी नहीं या आधा अंक
komi = 0.5
# आधुनिक: हैंडीकैप संख्या के अनुसार समायोजित
# प्रत्येक पत्थर ~10-15 अंक का मूल्य
Analysis मोड नियम सेटिंग
GTP कमांड
# नियम सेट करें
kata-set-rules chinese
# कोमी सेट करें
komi 7.5
# बोर्ड आकार सेट करें
boardsize 19
Analysis API
{
"id": "query1",
"moves": [["B", "Q4"], ["W", "D4"]],
"rules": "chinese",
"komi": 7.5,
"boardXSize": 19,
"boardYSize": 19,
"overrideSettings": {
"maxVisits": 1000
}
}
उन्नत नियम विकल्प
आत्मघाती चाल सेटिंग
# आत्मघाती चाल निषिद्ध (डिफॉल्ट)
allowSuicide = false
# आत्मघाती चाल अनुमत (Tromp-Taylor शैली)
allowSuicide = true
Ko नियम
# Simple Ko (केवल तत्काल वापसी निषिद्ध)
koRule = SIMPLE
# Positional Super Ko (कोई भी स्थिति दोहराना निषिद्ध, किसी की भी बारी हो)
koRule = POSITIONAL
# Situational Super Ko (समान पक्ष की स्थिति दोहराना निषिद्ध)
koRule = SITUATIONAL
स्कोरिंग नियम
# एरिया स्कोरिंग (चीनी, AGA)
scoringRule = AREA
# टेरिटरी स्कोरिंग (जापानी, कोरियाई)
scoringRule = TERRITORY
टैक्स नियम
कुछ नियमों में सेकी क्षेत्रों के लिए विशेष स्कोरिंग है:
# कोई टैक्स नहीं
taxRule = NONE
# सेकी में क्षेत्र नहीं
taxRule = SEKI
# सभी आंखों की स्थिति में क्षेत्र नहीं
taxRule = ALL
मल्टी-रूल ट्रेनिंग
KataGo का लाभ
KataGo एकल मॉडल से कई नियमों का समर्थन करता है:
def encode_rules(rules):
"""नियमों को न्यूरल नेटवर्क इनपुट में एनकोड करें"""
features = np.zeros(RULE_FEATURE_SIZE)
# स्कोरिंग विधि
features[0] = 1.0 if rules.scoring == 'area' else 0.0
# आत्मघाती चाल
features[1] = 1.0 if rules.allow_suicide else 0.0
# Ko नियम
features[2:5] = encode_ko_rule(rules.ko)
# कोमी (नॉर्मलाइज़्ड)
features[5] = rules.komi / 15.0
return features
नियम-जागरूक इनपुट
न्यूरल नेटवर्क इनपुट में शामिल:
- बोर्ड स्थिति (19×19×N)
- नियम फीचर वेक्टर (K आयाम)
यह एक ही मॉडल को विभिन्न नियम समझने देता है
नियम स्विचिंग उदाहरण
Python कोड
from katago import KataGo
engine = KataGo(model_path="kata.bin.gz")
# चीनी नियम विश्लेषण
result_cn = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="chinese",
komi=7.5
)
# जापानी नियम विश्लेषण (समान स्थिति)
result_jp = engine.analyze(
moves=[("B", "Q4"), ("W", "D4")],
rules="japanese",
komi=6.5
)
# अंतर तुलना
print(f"चीनी नियम काले की जीत दर: {result_cn['winrate']:.1%}")
print(f"जापानी नियम काले की जीत दर: {result_jp['winrate']:.1%}")
नियम प्रभाव विश्लेषण
def compare_rules_impact(position, rules_list):
"""विभिन्न नियमों का स्थिति मूल्यांकन पर प्रभाव तुलना करें"""
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
आम प्रश्न
नियम अंतर से भिन्न परिणाम
समान गेम, विभिन्न नियमों से भिन्न परिणाम हो सकते हैं:
- एरिया vs टेरिटरी स्कोरिंग का अंतर
- सेकी क्षेत्रों का प्रबंधन
- पास का प्रभाव
कौन से नियम चुनें?
| परिदृश्य | सुझाए नियम |
|---|---|
| शुरुआती | Chinese (सहज, विवाद-मुक्त) |
| ऑनलाइन प्रतियोगिता | प्लेटफॉर्म डिफॉल्ट (आमतौर पर Chinese) |
| जापान बादुक इन | Japanese |
| प्रोग्राम कार्यान्वयन | Tromp-Taylor (सबसे सरल) |
| चीन प्रोफेशनल | Chinese |
क्या मॉडल को विशिष्ट नियमों के लिए प्रशिक्षित करना होगा?
KataGo का मल्टी-रूल मॉडल पहले से ही बहुत मजबूत है। लेकिन यदि केवल एक नियम उपयोग करें, तो विचार करें:
# निश्चित नियम प्रशिक्षण (विशिष्ट नियम में थोड़ी बेहतर खेल शक्ति संभव)
rules = chinese
आगे पढ़ें
- KataGo प्रशिक्षण तंत्र विश्लेषण — मल्टी-रूल ट्रेनिंग कार्यान्वयन
- अपने प्रोजेक्ट में इंटीग्रेट करें — API उपयोग उदाहरण
- मूल्यांकन और बेंचमार्क टेस्टिंग — विभिन्न नियमों में खेल शक्ति परीक्षण