حل تشریحی سوال شماره 12 حل مسئله
کنکور دکتری مهندسی فناوری اطلاعات (IT) 1404
فرض کنید می خواهید مسئله n-Queens را حل کنید جایی که باید n وزیر را روی یک صفحه شطرنج قرار دهید بهطوری که هیچ دو وزیری یکدیگر را تهدید نکنند. برای حل این مسئله از الگوریتم عقب گرد (Backtracking) استفاده میکنید.
الگوریتم شما به صورت بازگشتی عمل میکند و در هر مرحله یک وزیر را در یک ردیف قرار می دهد. اگر هیچ موقعیت معتبری در یک ردیف وجود نداشته باشد، به ردیف قبلی برمیگردید و جایگذاری را تغییر می دهید. کدام مورد برای بهینهسازی و جلوگیری از بررسی موقعیتهای نامعتبر مناسب است؟
استفاده از سه آرایه کمکی برای ردیابی ستونهای اشغال شده قطرهای اصلی و قطرهای فرعی که وزیری در آنها قرار دارد.
استفاده از یک آرایه دو بعدی برای ذخیره سازی کل صفحه شطرنج و بررسی هر موقعیت برای قرار دادن وزیر
استفاده از الگوریتم حریصانه برای قرار دادن وزیری که کمترین تعداد موقعیتهای مجاز را محدود میکند.
تولید تمامی حالات ممکن برای قرار دادن وزیر و سپس بررسی آنهایی که معتبر هستند.