الشرح
تسند تجزئة زوبريست أرقاما شبه عشوائية إلى السمات التي يمكن أن تكوّن وضعا. يوجد عادة رقم لكل تركيبة من نوع القطعة ولونها ومربعها، إلى جانب أرقام للطرف صاحب النقلة، وحقوق التي تسجل ما إذا كان الملك والرخ لا يزالان قادرين على تنفيذ هذه النقلة الخاصة، وحالة الأخذ بالتجاوز ذات الصلة، وهي نقلة أخذ خاصة بالبيدق. وتعني شبه عشوائية أن القيم تبدو عشوائية لكنها تُولد بصورة قابلة للتكرار.
يتكون مفتاح الوضع بدمج القيم الفعالة باستخدام XOR، وهو اختصار لعبارة OR الحصرية، وهي عملية ثنائية تعمل كالمفتاح الكهربائي: تطبيق القيمة نفسها مرتين يلغي أثرها. عندما تتحرك قطعة، يستطيع البرنامج إزالة قيمة مربعها القديم من المفتاح وإضافة قيمة مربعها الجديد من دون إعادة بنائه من الصفر. وتحدث عمليات الأخذ والترقية وتبدل الدور بالطريقة نفسها.
تمكن هذه البصمة ، وهو برنامج يحلل الأوضاع، من التعرف سريعا إلى أن وضعا قد ظهر من قبل. فيستطيع إعادة استخدام تحليل مخزن عندما تؤدي تسلسلات مختلفة إلى الحالة نفسها، وكشف التكرارات، وتنظيم الذاكرات المخبأة، وهي مخازن سريعة للنتائج السابقة. وتتطلب المقارنة الصحيحة أكثر من مواقع القطع، لأن صاحب النقلة والحقوق الخاصة قد يغيران النقلات القانونية.
لا يُضمن أن يكون مفتاح زوبريست فريدا. فقد ينتج وضعان مختلفان الرقم نفسه، وهو حدث يسمى تصادما. تجعل المفاتيح الكبيرة ذلك غير مرجح، لكن التخزين والتحقق يجب أن يراعيا بقاء الاحتمال. وفي اختبارات مثل ، يمكن للمفتاح التزايدي أيضا كشف أخطاء التحديث إذا لم يعد إلى قيمته الأصلية بعد تنفيذ نقلة والتراجع عنها.
التباسات شائعة
القطع نفسها والوضع نفسه
قد تمثل رقعتان متطابقتان بصريا حالتين مختلفتين إذا اختلف صاحب النقلة أو حقوق التبييت أو إمكان صحيح للأخذ بالتجاوز.
التجزئة والتشفير
الهدف هنا هو التعرف السريع إلى الأوضاع، لا إخفاء المعلومات أو حماية البيانات السرية.
المصادر
- 1.Zobrist Hashing, Chess Programming Wiki
