انجمن شطرنج ایران
آموزش Hash table - نسخه‌ی قابل چاپ

+- انجمن شطرنج ایران (http://irchess.com)
+-- انجمن: مربیگری (/forumdisplay.php?fid=70)
+--- انجمن: شطرنج مدرن (/forumdisplay.php?fid=130)
+--- موضوع: آموزش Hash table (/showthread.php?tid=1876)



آموزش Hash table - VvmahdivV - ۱۷-بهمن-۹۹ ۰۸:۱۶ عصر

[size=medium]این آموزش رو قبلا من در جای دیگه‌ای هم منتشر کردم منتها چون اخیرا در موردش چند بار ازم سوال شده و موضوعش هم اهمیت داره مجددا اینجا (با کمی تغییر) تکرارش میکنم.


در انجینها و برنامه‌های شطرنجی، hash table چیه و ب چ معناست؟ دقیقا چ کار میکنه و باید روی چ عددی تنظیم بشه تا عملکرد انجین ما (موقع بازی یا تجزیه و تحلیل) بهینه باشه؟

پاسخ:
ببینید دوستان! همونطور ک هر کامپیوتری برای ذخیره اطلاعات، از هارد و حافظه (RAM) استفاده میکنه، هر برنامه شطرنجی هم برای ذخیره کردن واریانتهایی ک محاسبه کرده، و یا برای ذخیره ارزیابیهایی ک از پوزیسیون داشته، از یک فضایی استفاده میکنه ک بهش hash table میگن(یا ب اختصار، ht). فرض کنید در حال ارزیابی یک پوزیسیون با انجین فریتز هستید. گاهی اوقات پیش میاد ک چند حرکت ک جلو رفتید، لازم میشه برگردید و دومرتبه ب یک واریانت نگاه کنید. در این مواقع، برنامه شطرنجی شما ب جای اینکه دومرتبه از نو محاسبه و ارزیابی کنه، ب هش تیبل رجوع میکنه. بدیهیه ک این کار، سرعت و عملکرد انجین شما رو بسیار بالا خواهد برد. اما....

اگر ht بیش از حد کوچیک باشه، موقعی ک ب پوزیسیون قبلی رجوع میکنید، ممکنه اطلاعات قبلی پاک شده باشن. ممکنه بگید خب کاری نداره ک! سایز ht رو هر چ بزرگتر تنظیم میکنم! باید بدونید ک مساله ب این راحتیها هم نیست چون اگر ht بیش از حد بزرگ تعریف شده باشه، ممکنه حتی سرعت انجین شما پایینتر از حد عادی هم بیاد!! ب چ علت؟ ب خاطر اینکه حجم ht باید با سخت‌افزار کامپیوتر شما هماهنگ و همخوان باشه، مخصوصا با پردازشگر (یا همون cpu) و همینطور حافظه سیستمتون یا RAM.

خب چکار باید کرد؟
✔️✔️✔️روشهای مختلفی برای تنظیم ht وجود داره ولی ب نظر من یکی از ساده‌ترین و در عین حال بهترین روشها برای تنظیم ht، پیروی از پیشنهاد شرکت چس‌بیس هست.
این شرکت فرمولی رو ب این صورت ارائه کرده