توضیح
جستوجوی واریانت اصلی که به صورت PVS کوتاه میشود با یک انتظار آغاز میکند: اگر حرکتها خوب مرتب شده باشند، نامزد نخست احتمالاً بهترین است. آن حرکت نخست جستوجوی کامل دریافت میکند. حرکتهای بعدی ابتدا با آزمونی ارزانتر بررسی میشوند تا مشخص شود آیا میتوانند نتیجهٔ یافتشده را شکست دهند.
آزمون ارزانتر از پنجرهای باریک استفاده میکند. پنجره بازهٔ ارزشهایی است که جستوجو باید از هم تفکیک کند. PVS به جای تعیین دقیق میزان بهتر یا بدتر بودن حرکت، ابتدا پرسشی سادهتر میپرسد: آیا از مرجع فعلی فراتر میرود یا نه؟ اگر نرود، حرکت بدون جستوجوی کامل رد میشود.
اگر نامزدی بعدی ظاهراً از مرجع عبور کند، آزمون باریک برای تعیین ارزش دقیق آن کافی نیست. موتور، یعنی برنامهٔ تحلیلکنندهٔ وضعیت، آن را دوباره با پنجرهٔ کامل جستوجو میکند. این گذر دوم که جستوجوی مجدد نام دارد درستی روش را حفظ میکند، اما زمان میبرد. بنابراین PVS بیشترین سود را زمانی میبرد که موفق باشد و بهترین گزینه زود ظاهر شود.
PVS راهی کارآمد برای سازمان دادن جستوجوی آلفا بتا در چارچوب است. آلفا بتا شاخههایی را رها میکند که پیشتر ثابت شده نمیتوانند تصمیم را بهتر کنند. PVS را نباید با خود واریانت اصلی اشتباه گرفت که فقط توالی حرکتهایی است که موتور در حال حاضر بهترین میداند. همچنین همان نیست: MultiPV چند خط آغازین درخواست میکند، در حالی که PVS روش درونی جستوجو را توصیف میکند.
کاربرد و بافت
PVS هنگام رسیدن به وضعیتهای تاکتیکی ناپایدار معمولاً پیش از پذیرفتن ارزیابی ایستا، یعنی برآوردی بدون دنبال کردن حرکتهای بیشتر، به تکیه میکند.
اشتباههای رایج
PVS و واریانت اصلی
واریانت اصلی خط خروجی است. PVS الگوریتمی است که میکوشد آن را با کار کمتر پیدا کند.
منابع
- 1.Principal Variation Search, Chess Programming Wiki
