۰
subtitle
ارسال: #۱
  
مسئله هشت وزیر و تکنیک عقبگرد
دوستان سلام...
یه مهندس ناب پیدا میشه این شکلی رو که گذاشتم سریع توضیح بده؟؟؟؟
ممنون میشم یه توضیح واضح و کامل باشه.... اجرتون با خدای بزرگ در ماه رجب عزیز
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
یه مهندس ناب پیدا میشه این شکلی رو که گذاشتم سریع توضیح بده؟؟؟؟
ممنون میشم یه توضیح واضح و کامل باشه.... اجرتون با خدای بزرگ در ماه رجب عزیز
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
۰
ارسال: #۲
  
RE: مسئله هشت وزیر و تکنیک عقبگرد
سلام. وقت بخیر.
معمولاً الگوریتمهای عقبگرد مساله رو به چند حالت تقسیم میکنن (برای مساله n وزیر هر حالت، یک سطره) و جوابهای هر حالت رو بصورت پشت سر هم بررسی میکنن (حالتهای چیدن وزیر توی سطر مربوط). هر جا که برای یک حالت جواب نداشتیم (نتونستیم در یک سطر با توجه به وزیرهای سطرهای قبل، یک جایگاه پیدا کنیم) به حالت قبلی میریم و جواب بعدی اون حالت رو پیدا میکنیم.
در حالت ۱ (گره ۱) صفحه خالیه. (شماره سطر وزیر همون عمق گره درخته)
حالت ۲ وزیر اول زو در خونه ۱ (عدد روی یال نشون دهنده شمارو ستون برای اون وزیره) قرار میدیم. (یعنی وزیر سطر اول و ستون اول)
حالت ۳ وزیر در ستون ۲ قرار میگیره (یعنی سطر دوم و ستون دوم) که مجاز نیست. (حالت سطر دوم ستون اول رو هم در نظر نمیگیریم. چون وزیر سطر قبل در ستون ۱ قرار داشت.)
حالت ۴ وزیر در ستون ۳ قرار میگیره. (یعنی وزیر سطر دوم و ستون سوم)
حالت ۵ و ۶ هم دو حالت برای وزیرهای سطر سوم درنظر گرفت. ولی هردوشون وزیر دوم رو تحدید میکردن. پس نمیتونیم با در نظر گرفتن دو وزیر اول، در سطر سوم وزیر قرار بدیم. باید حالت بعدی وزیر قبل (وزیر سطر دوم) رو بررسی کنیم و به حالت قبل بریم.
در حالت ۷ وزیر رو در ستون چهارم سطر دوم قرار میدیم.
حالت ۸ برای وزیر سطر سوم مجازه ولی حالت ۹ برای وزیر سطر چهرم مجاز نیست. پس وزیر سطر قبل (سطر سوم) رو تغییر میدیم.
حالت ۱۰ حالت بعدی وزیر سطر سومه که مجاز نیست. حالت دیگه ای برای وزیر سطر سوم نداریم. پس وضعیت وزیر دوم رو تغییر میدیم. برای وزیر دوم هم حالتی نداریم. پس حالت وزیر اول رو تغییر میدیم.
در حالت ۱۱ وزیر اول رو در ستون ۲ قرار میدیم.
حالت های ۱۲ و ۱۳ مربوط به قرار دادن وزیر دوم دو ستون ۱ و ۳ بوده که مجاز نیست.
حالت ۱۴ مربوط به حالت قرار دادن وزیر دوم در ستون چهارمه.
حالت ۱۵ مربوط به حالت قرار دادن وزیر سطر سوم در ستون اوله.
حالت ۱۶ هم مربوط به قرار دادن وزیر سطر چهارم در ستون سومه. این حالت مجازه و جواب مساله خواهد بود.
معمولاً الگوریتمهای عقبگرد مساله رو به چند حالت تقسیم میکنن (برای مساله n وزیر هر حالت، یک سطره) و جوابهای هر حالت رو بصورت پشت سر هم بررسی میکنن (حالتهای چیدن وزیر توی سطر مربوط). هر جا که برای یک حالت جواب نداشتیم (نتونستیم در یک سطر با توجه به وزیرهای سطرهای قبل، یک جایگاه پیدا کنیم) به حالت قبلی میریم و جواب بعدی اون حالت رو پیدا میکنیم.
در حالت ۱ (گره ۱) صفحه خالیه. (شماره سطر وزیر همون عمق گره درخته)
حالت ۲ وزیر اول زو در خونه ۱ (عدد روی یال نشون دهنده شمارو ستون برای اون وزیره) قرار میدیم. (یعنی وزیر سطر اول و ستون اول)
حالت ۳ وزیر در ستون ۲ قرار میگیره (یعنی سطر دوم و ستون دوم) که مجاز نیست. (حالت سطر دوم ستون اول رو هم در نظر نمیگیریم. چون وزیر سطر قبل در ستون ۱ قرار داشت.)
حالت ۴ وزیر در ستون ۳ قرار میگیره. (یعنی وزیر سطر دوم و ستون سوم)
حالت ۵ و ۶ هم دو حالت برای وزیرهای سطر سوم درنظر گرفت. ولی هردوشون وزیر دوم رو تحدید میکردن. پس نمیتونیم با در نظر گرفتن دو وزیر اول، در سطر سوم وزیر قرار بدیم. باید حالت بعدی وزیر قبل (وزیر سطر دوم) رو بررسی کنیم و به حالت قبل بریم.
در حالت ۷ وزیر رو در ستون چهارم سطر دوم قرار میدیم.
حالت ۸ برای وزیر سطر سوم مجازه ولی حالت ۹ برای وزیر سطر چهرم مجاز نیست. پس وزیر سطر قبل (سطر سوم) رو تغییر میدیم.
حالت ۱۰ حالت بعدی وزیر سطر سومه که مجاز نیست. حالت دیگه ای برای وزیر سطر سوم نداریم. پس وضعیت وزیر دوم رو تغییر میدیم. برای وزیر دوم هم حالتی نداریم. پس حالت وزیر اول رو تغییر میدیم.
در حالت ۱۱ وزیر اول رو در ستون ۲ قرار میدیم.
حالت های ۱۲ و ۱۳ مربوط به قرار دادن وزیر دوم دو ستون ۱ و ۳ بوده که مجاز نیست.
حالت ۱۴ مربوط به حالت قرار دادن وزیر دوم در ستون چهارمه.
حالت ۱۵ مربوط به حالت قرار دادن وزیر سطر سوم در ستون اوله.
حالت ۱۶ هم مربوط به قرار دادن وزیر سطر چهارم در ستون سومه. این حالت مجازه و جواب مساله خواهد بود.
۰
ارسال: #۳
  
RE: مسئله هشت وزیر و تکنیک عقبگرد
ممنون از اینکه پاسخ دادین... واقعا مرسی...
من فقط یه سوال هم دارم چرا در حالت ۲ گفتین وزیر در سطر اول و ستون اوله؟؟؟ مگه نگفتین عمق هر گره شماره سطر رو نشون میده؟؟ اگه این طوری باشه عمق گره ۲ که ۲ هست؟؟
ممنون میشم منو از اشتباه خارج کنید....
من فقط یه سوال هم دارم چرا در حالت ۲ گفتین وزیر در سطر اول و ستون اوله؟؟؟ مگه نگفتین عمق هر گره شماره سطر رو نشون میده؟؟ اگه این طوری باشه عمق گره ۲ که ۲ هست؟؟
ممنون میشم منو از اشتباه خارج کنید....
ارسال: #۴
  
RE: مسئله هشت وزیر و تکنیک عقبگرد
(۲۷ فروردین ۱۳۹۵ ۰۶:۴۸ ب.ظ)zahra13.66 نوشته شده توسط: ممنون از اینکه پاسخ دادین... واقعا مرسی...
من فقط یه سوال هم دارم چرا در حالت ۲ گفتین وزیر در سطر اول و ستون اوله؟؟؟ مگه نگفتین عمق هر گره شماره سطر رو نشون میده؟؟ اگه این طوری باشه عمق گره ۲ که ۲ هست؟؟
ممنون میشم منو از اشتباه خارج کنید....
عمقش یکه. عمق ریشه رو صفر در نظر بگیرید.
۰
ارسال: #۵
  
RE: مسئله هشت وزیر و تکنیک عقبگرد
بازم ممنونم از پاسختون...
الگوریتم شو که عکسشو گذاشتم رو هم امکانش هست توضیح بدین؟؟؟ مخصوصا تابع promising را....
چون قبل این تابع گفته :
j=1 دو وزیر در یک ستون
i-j=k-l
i+j=k+l
اما در تابع promising دیگه اصلا از ال استفاده نکرده؟؟!!!!
ممنون میشم این پاسخ بدهید....
سپاسس فراوان
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
الگوریتم شو که عکسشو گذاشتم رو هم امکانش هست توضیح بدین؟؟؟ مخصوصا تابع promising را....
چون قبل این تابع گفته :
j=1 دو وزیر در یک ستون
i-j=k-l
i+j=k+l
اما در تابع promising دیگه اصلا از ال استفاده نکرده؟؟!!!!
ممنون میشم این پاسخ بدهید....
سپاسس فراوان
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
ارسال: #۶
  
RE: مسئله هشت وزیر و تکنیک عقبگرد
(۲۸ فروردین ۱۳۹۵ ۱۰:۳۱ ق.ظ)zahra13.66 نوشته شده توسط: بازم ممنونم از پاسختون...
الگوریتم شو که عکسشو گذاشتم رو هم امکانش هست توضیح بدین؟؟؟ مخصوصا تابع promising را....
چون قبل این تابع گفته :
j=1 دو وزیر در یک ستون
i-j=k-l
i+j=k+l
اما در تابع promising دیگه اصلا از ال استفاده نکرده؟؟!!!!
ممنون میشم این پاسخ بدهید....
سپاسس فراوان
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
این کد مربوط به قرار دادن وزیر سطر kام در مساله n وزیر روی ماتریس x بوده. ماتریس x هم جزئی از ورودی های تابع نیست و متغیر global هست.
میگه اگه تو این سطر بتونیم وزیری قرار بدیم (تابع promising فقط چک میکنه که وزیر سطر kام وزیرهای سطرهای ۱ تا k-1 رو تهدید نکنه. اگه تهدید نکرد مقدار True و اگه تهدید کرد مقدار False میده.) در صورتی که k=n بود (در تمام سطرها وزیر قرار دادیم) جواب رو چاپ کن و در غیر این صورت الگوریتم رو برای سطر بعد اجرا کن (وزیر سطر بعدی رو پیدا کن).
این کد یه کد بازگشتیه که تمام جوابها رو برمیگردونه. اگه کد رو بصورت غیر بازگشتی مینوشت یه مقدار طولانی تر میشد ولی مفهوم عقبگرد تو اون بهتر بود.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close