انتقل إلى المحتوى الرئيسي

القواعد المخصصة والمتغيرات

يقدم هذا المقال قواعد الغو المختلفة المدعومة في KataGo، ومتغيرات حجم اللوحة، وكيفية تخصيص إعدادات القواعد.


نظرة عامة على مجموعات القواعد

مقارنة القواعد الرئيسية

مجموعة القواعدطريقة الحسابKomiالانتحارإرجاع الكو
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 # Komi
boardXSize = 19 # عرض اللوحة
boardYSize = 19 # ارتفاع اللوحة

القواعد الصينية (Chinese)

الخصائص

طريقة الحساب: عد الأحجار (الأحجار والمنطقة معاً)
Komi: 7.5 نقطة
الانتحار: محظور
إرجاع الكو: محظور (قواعد مبسطة)

شرح عد الأحجار

النقاط النهائية = عدد أحجارنا + عدد نقاطنا الفارغة

مثال:
أحجار سوداء 120 + مساحة سوداء 65 = 185 نقطة
أحجار بيضاء 100 + مساحة بيضاء 75 + Komi 7.5 = 182.5 نقطة
الأسود يفوز بـ 2.5 نقطة

إعدادات KataGo

rules = chinese
komi = 7.5

القواعد اليابانية (Japanese)

الخصائص

طريقة الحساب: عد المنطقة (النقاط الفارغة فقط)
Komi: 6.5 نقطة
الانتحار: محظور
إرجاع الكو: محظور
يتطلب تحديد الأحجار الميتة

شرح عد المنطقة

النقاط النهائية = نقاطنا الفارغة + الأحجار المأسورة من الخصم

مثال:
مساحة سوداء 65 + أسر 10 = 75 نقطة
مساحة بيضاء 75 + أسر 5 + Komi 6.5 = 86.5 نقطة
الأبيض يفوز بـ 11.5 نقطة

تحديد الأحجار الميتة

القواعد اليابانية تتطلب اتفاق الطرفين على الأحجار الميتة:

def is_dead_by_japanese_rules(group, game_state):
"""تحديد الأحجار الميتة حسب القواعد اليابانية"""
# يتطلب إثبات أن السلسلة لا يمكنها عمل عينين
# هذا هو تعقيد القواعد اليابانية
pass

إعدادات KataGo

rules = japanese
komi = 6.5

قواعد AGA

الخصائص

قواعد جمعية الغو الأمريكية (AGA) تجمع بين مزايا القواعد الصينية واليابانية:

طريقة الحساب: مختلطة (عد الأحجار أو المنطقة، النتيجة متساوية)
Komi: 7.5 نقطة
الانتحار: محظور
الأبيض يجب أن يضع حجراً عند التمرير

قاعدة التمرير

الأسود يمرر: لا يحتاج لوضع حجر
الأبيض يمرر: يجب تسليم حجر للأسود

هذا يجعل نتيجة عد الأحجار وعد المنطقة متساوية

إعدادات KataGo

rules = aga
komi = 7.5

قواعد Tromp-Taylor

الخصائص

أبسط قواعد الغو، مناسبة للتنفيذ البرمجي:

طريقة الحساب: عد الأحجار
Komi: 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×19361 نقطةالمباريات القياسية
مخصصأي حجمالبحث، الاختبار

طريقة الإعداد

# لوحة 9×9
boardXSize = 9
boardYSize = 9
komi = 5.5

# لوحة 13×13
boardXSize = 13
boardYSize = 13
komi = 6.5

# لوحة غير مربعة
boardXSize = 19
boardYSize = 9

اقتراحات Komi

الحجمالقواعد الصينيةالقواعد اليابانية
9×95.55.5
13×136.56.5
19×197.56.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 مع الهانديكاب

# تقليدي: بدون Komi أو نصف نقطة مع الهانديكاب
komi = 0.5

# حديث: ضبط حسب عدد أحجار الهانديكاب
# كل حجر يعادل ~10-15 نقطة

إعدادات القواعد في وضع التحليل

أوامر GTP

# إعداد القواعد
kata-set-rules chinese

# إعداد Komi
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

قواعد الكو

# 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

# قواعد الكو
features[2:5] = encode_ko_rule(rules.ko)

# Komi (مطبع)
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

الأسئلة الشائعة

اختلاف الفوز/الخسارة بسبب اختلاف القواعد

نفس المباراة، قواعد مختلفة قد تؤدي لنتائج مختلفة:
- فرق حساب عد الأحجار مقابل عد المنطقة
- معالجة مناطق السيكي
- تأثير التمرير (pass)

أي قواعد تختار؟

السيناريوالقواعد المقترحة
المبتدئينChinese (بديهية، بدون نزاع)
المباريات عبر الإنترنتالافتراضي للمنصة (عادة Chinese)
اتحاد الغو اليابانيJapanese
التنفيذ البرمجيTromp-Taylor (الأبسط)
المباريات الاحترافية الصينيةChinese

هل يحتاج النموذج للتدريب على قواعد محددة؟

نموذج KataGo متعدد القواعد قوي بالفعل. لكن إذا كنت تستخدم قواعد واحدة فقط، يمكنك التفكير في:

# تدريب بقواعد ثابتة (قد يحسن قليلاً قوة اللعب لقواعد محددة)
rules = chinese

قراءات إضافية