آنچه در این نوشته می‌خوانید:

معمای هشت وزیر از جمله مسائل کلاسیک مباحث طراحی الگوریتم است که در حالت کلی‌تر با عنوان معمای n وزیر یا معمای چند وزیر مطرح می‌شود.

  

برای افرادی که با بازی شطرنج آشنایی ندارند

  [برگرد بالا]

وزیر مهره‌ای از مهره‌های بازی شطرنج است که می‌تواند در تمامی هشت جهت به هر تعداد خانه - تا زمانی که مهره‌ای مانع نباشد - حرکت کند. اگر در این مسیرها مهره‌ای از حریف قرار گرفته باشد، آن مهره در معرض خطر حمله توسط وزیر قرار دارد؛ یا به اصطلاح وزیر آن مهره را تهدید می‌کند.

  

معمای هشت وزیر

  

معمای n وزیر

  [برگرد بالا]

هدف از مسئله هشت وزیر، چیدن 8 مهره وزیر روی یک صفحه شطرنج خالی است، به قسمی که هیچ مهره‌ای مهره‌های دیگر را تهدید نکند. به عبارت دیگر، 8 وزیر باید به نحوی چیده شوند که هیچ‌کدام در بک سطر، بک ستون یا بک قطر قرار نداشته باشند. یک جواب مسئله می‌تواند به صورت زیر باشد:

  

مسئله هشت وزیر

  

در حالت کلی به جای عدد 8 از عدد طبیعی $n$ استفاده شده و مسئله به ازای هر $n$ بزرگتر یا مساوی 4 مورد بررسی قرار می‌گیرد. به این ترتیب، هدف مسئله چیدن $n$ مهره وزیر در یک صفحه شطرنج با ابعاد $n \times n $است.

در یک صفحه $n$ در $n$ تعداد $n^2$ خانه وجود دارد که از بین آنها $n$ خانه برای قرار گرفتن $n$ وزیر انتخاب می‌شود. در این انتخاب‌ها ترتیب اهمیتی ندارد. پس تعداد حالت‌های انتخاب $n$ خانه برای چیدن $n$ وزیر ترکیب $n$ از $n^2$ یا $ C(n^2, n) $ است که حتی برای $n‌$ های نه چندان بزرگ (نظیر 8) عدد بزرگی به دست می‌آید. در نتیجه بررسی تمامی حالات ممکن چینش مهره‌ها برای رسیدن به چیدمان صحیح به هیچ عنوان مقرون به صرفه نیست. از سوی دیگر به ازای هر $n$، تنها یک جواب منحصربفرد وجود ندارد. بنابراین اگر هدف مسئله یافتن تمامی جواب‌های ممکن باشد، استفاده از روش‌های هوشمند تکاملی یا الگوریتم‌های جستجوی تصادفی، لزوما ما را به نتیجه مطلوب نمی‌رساند.

  

روش عقبگرد

  [برگرد بالا]

یکی از روش‌های حل این مسئله، استفاده از راهبرد عقبگرد است. در این روش تمام فضای مسئله به صورت یک درخت در نظر گرفته می‌شود که سطح $i$ام شامل تمام انتخاب‌های مهره $i$ام است. با توجه شرایط مسئله در هر سطر از صفحه شطرنج تنها یک مهره می‌تواند قرار بگیرد. به این ترتیب سطح شماره $i$، محل مهره iام در سطر شماره$i$ صفحه شطرنج را مشخص می‌کند. قسمتی از چنین درختی به ازای $n = 4$ به این صورت خواهد شد:

  

معمای 8 وزیر

  

پیمایش پیشوندی (PreOrder) چنین درختی تمام حالت‌های فضای مسئله را برای یافتن پاسخ جستجو می‌کند. اما حین پیمایش می‌توان از پیمایش گره‌های غیرامیدبخش صرف‌تظر کرد. گره‌های غیرامیدبخش گره‌هایی هستند که بر اساس تعاریف مسئله می‌توان مطمئن بود هرگز به جواب درست نمی‌رسد. به عنوان مثال، اگر با گره 1 در سطح یک شروع کرده و به گره 1 در سطح دو برویم، این گره امیدبخش نیست. چرا که دو مهره اول در ستون شماره یک چیده شده‌اند و یکدیگر را تهدید می‌کنند. این اتفاق مستقل از این که مهره‌های بعدی در چه محل‌هایی قرار بگیرد مطمئنا به جواب صحیح ختم نمی‌شود. در نتیجه از پیمایش فرزندان گره شماره 1 در سطح دوم صرف نظر کرده و روال را با فرزند بعدی گره والد آن - یعنی گره شماره 2 در سطح دوم - ادامه می‌دهیم. به همین ترتیب این گره نیز امیدبخش نیست. چرا که در چنین حالتی مهره در ستون شماره 2 از سطر دوم قرار می‌گیرد که با وزیر سطر اول و ستون 1 در یک قطر قرار دارند.

چنین پیمایشی معادل این است که از بالای صفحه شطرنج (سطر اول) شروع کرده و مهره را در ستون شماره 1 قرار بدهیم. اگر چینش این مهره با مهره‌های بالاتر تهدیدی ایجاد نکند، چینش مهره بعدی در سطر بعدی را با همین روش ادامه می‌دهیم. اما اگر تهدیدی اتفاق بیفتد، مهره را یک خانه به سمت راست جابجا می‌کنیم. اگر مهره به انتهای سطر رسیده باشد، آن مهره را برداشته و مهره سطر بالاتر را یک خانه به سمت راست جابجا می‌کنیم. اگر حین پیش‌روی سطرها به سمت پایین، به انتهای صفحه برسیم، یک جواب از مسئله تولید شده است.

  

انیمیشن معمای 8 وزیر

  

پیاده‌سازی مسئله

  [برگرد بالا]

یکی از مهم‌ترین بخش‌های پیاده‌سازی مسئله 8 وزیر، روش بررسی تهدید مهره‌ها است.

یک روش این است که یک آرایه دو بعدی n در n به عنوان صفحه شطرنج تعریف شود. با مشخص شدن محل هر مهره، تمام خانه‌هایی که توسط آن تهدید می‌شوند علامت‌گذاری می‌شود، تا بررسی غیرامن بودن آنها در مراحل بعدی آسان باشد. این روش در ابتدا بدون مشکل به نظر می‌رسد. اما سوای بحث مصرف حافظه، یک مشکل اساسی دیگر نیز وجود دارد. زمانی که تشخیص می‌دهیم فرزندان یک گره همه غیرامیدبخش هستند، از آن گره صرف نظر کرده و به گره بعدی فرزند والد مراجعه می‌کنیم. در نتیجه باید محل مهره در آن سطر جابجا شده و محل‌های غیرامنی که علامت‌گذاری شده بودند به حالت قبل از علامت‌گذاری بازگردند. اما مسئله اینجاست که محل‌های علامت‌گذاری شده پس از جابجایی لزوما امن نمی‌شوند. ممکن است همچنان توسط مهره دیگری تهدید وجود داشته باشد. تشخیص این مسئله که آیا آن محل به صورت امن مشخص شود یا نه، زمان مصرفی الگوریتم را دو چندان می‌کند.

در روش دوم، تنها محل قرار گرفتن هر مهره به صورت شماره سطر و ستون ذخیره می‌شود. این ذخیره‌سازی می‌تواند در یک آرایه یک بعدی باشد. به این ترتیب که شماره اندیس آرایه، شماره سطر مهره را مشخص کرده و مقدار آن، شماره ستون مهره باشد. مثلا اگر مقدار اندیس شماره 1 آرایه 4 باشد، یعنی وزیر سطر اول در خانه چهارم قرار دارد. پس از این تعریف، با مشخص شدن محل یک مهره جدید، خانه‌هایی که ممکن است این خانه را تهدید کنند بررسی می‌شوند، تا امن بودن آن مشخص شود. مزیت این روش به روش قبلی - علاوه بر مصرف کمتر حافظه - رفع مشکل بررسی محل‌های علامت‌گذاری شده است.

برای بررسی این مسئله که آیا محل مهره جدید تهدیدی ایجاد می‌کند یا نه، به جای بررسی تک‌تک خانه‌های ستونی و قطری، از روابط ریاضی استفاده می‌شود. یافتن پاسخ این سوال که آیا در ستونی که مهره قرار دارد، قبلا مهره‌ای قرار داده شده است یا نه، کار چندان دشواری نیست. کافی است یک آرایه یک بعدی به طول n تعریف شده و هرگاه مهره‌ای در یک ستون مستقر شد، شماره ستون آن در آرایه به عنوان غیرامن علامتگذاری شود. در نتیجه مثلا اگر مهره جدید در ستون شماره 3 قرار گرفت، کافی است اندیس شماره 3 این آرایه برای اطمینان از امن بودن این ستون بررسی شود.

در مورد دو قطر راست و چپ موضوع کمی پیچیده به نظر می‌رسد. اما با کمی دقت، یک رابطه ثابت ریاضی برای هر یک از قطرها وجود دارد. مثلا تفاضل شماره ستون از شماره سطر تمامی خانه‌های روی قطر اصلی صفحه صفر است. یا مجموع شماره سطر و ستون تمامی خانه‌های قطر فرعی صفحه عدد 9 است. به همین ترتیب سایر قطرها نیز رابطه ریاضی مشابه دارند. در نتیجه مثلا اگر مهره جدید در سطر سوم و ستون دوم قرار گرفته باشد، تنها کافی است در مهره‌های چیده شده قبلی دنبال مهره‌ای باشیم که تفاضل ستون از سطر آن عدد 1، یا مجموع آنها عدد 5 باشد. اگر چنین مهره‌ای یافت نشد، تهدیدی از طرف قطرها وجود ندارد. راه بهتر آن است که آرایه‌ای به طول 2n - 1 برای دو قطر راست و چپ تعریف کرده و اگر مهره‌ای در یک قطر مستقر شد، آن قطر به عنوان قطر ناامن در آرایه علامتگذاری شود. در مرحله بعدی با قرار گرفتن هر مهره جدید، به جای بررسی تمام خانه‌های مهره‌های قبلی، این دو آرایه بررسی شوند. چنین آرایه‌هایی بر خلاف روش علامت‌گذاری قبلی، مشکل حذف علامت‌ها را ندارد (چرا؟).

  

مسئله هشت وزیر

  

معمای هشت وزیر

  

نکته: با توجه به اینکه در قسمت پایین قطر اصلی تفاضل شماره ستون از شماره سطر عدد منفی می‌شود، برای حفظ استاندارد شروع از یک، آن را با عدد n جمع می‌زنند. همینطور در مورد مجموع شماره سطر و ستون، عدد یک کسر می‌شود.

  

روش‌های دیگر حل مسئله

  [برگرد بالا]

همانگونه که عنوان شد، روش عقبگرد تمامی جواب‌های مسئله را تولید کرده و با صرف نظر کردن از گره‌های غیرامیدبخش بهینگی قابل توجهی در زمان اجرای الگوریتم ایجاد می‌کند. اما با افزایش مقدار $n$ و افزایش عمق درخت و تعداد فرزندان هر گره، سرعت اجرا نیز به صورت شبه‌نمایی افزایش یافته و کارایی روش پایین می‌آید.

اگر هدف از حل مسئله تنها رسیدن به یک جواب باشد، روش‌های دیگری وجود دارد که کارایی بهتری دارند. این روش‌ها عموما از چیدمان تصادفی یا شبه‌تصادفی (تصادفی هوشمند) برای رسیدن به یک جواب استفاده می‌کنند. اکثر الگوریتم‌های مکاشفه‌ای و فرا مکاشفه‌ای - مانند الگوریتم تکاملی ژنتیک - در این حالت جوابگوی نیازها هستند.

مسعود اقدسی فام

مسعود اقدسی فام هستم.

دانش‌آموخته‌ی علوم کامپیوتر و فعال حوزه‌های علم داده و یادگیری ماشین؛ علاقه‌مند به یاد دادن و یاد گرفتن :)

algs.ir/spzq5f2     اشتراک‌گذاری در LinkedIn     اشتراک‌گذاری در Twitter     ارسال با Telegram
نوشته‌ها از این دست
       ✦   مسئله انتخابات
       ✦   مسئله کاشیکاری
آخرین نوشته‌ها
       ✦   الگوریتم آنلاین
نوشته‌های پرمخاطب
  • 1
  • 2
  • 3
  • 4
  • 5

نام: *  

پست الکترونیک (محرمانه):

متن پیام: *  

01 02 06 07 08 09 10 11 12 13 14

• سمانه
سه‌شنبه، ۱۸ دی ماه ۱۳۸۶، ساعت ۰۹:۴۴

با سلام

ممنونم از زحمتی که کشیدین و این مساله رو توضیح دادین خیلی خوب بود امکان داره کد حل این مسیله را با روش الگوریتم ژنتیک توضیح بدین و اگه کد برنامه رو دارین در اختیارم بزارین؟ ممنون می شم

• آرش
سه‌شنبه، ۱۸ دی ماه ۱۳۸۶، ساعت ۱۴:۱۷

سلام

دست شما درد نکنه

ولی شما که زحمت کشیدین , خوب چرا کد نصفه نوشتید ؟ کاملشو می نوشتید . به قول خودتون تغییرات ساده هم نیاز داشت که .

مسعود اقدسی فام
سه‌شنبه، ۱۸ دی ماه ۱۳۸۶، ساعت ۱۴:۴۳

سمانه خانم . . .

نمی دونم بتونم به این زودی چیزی آماده کنم یا نه؟ منم مثل همه شما درس و امتحان دارم.

آرش جان . . .

سیاست سایت ما ارائه مطالب آموزشیه، نه برنامه های آماده. این کد هم جنبه آموزشی داره. اگه با برنامه نویسی آشنا باشید خیلی راحت می تونید همین کد رو به کد مورد نظر خودتون تبدیل کنید.

• محمد رضا
سه‌شنبه، ۱۸ دی ماه ۱۳۸۶، ساعت ۱۹:۳۴

آقا دمت گرم

خيلي كارت درسته

• saeed
چهارشنبه، ۱۹ دی ماه ۱۳۸۶، ساعت ۱۳:۲۹

سلام خسته نباشید

من همیشه از توضیحات کامل شما لذت بردم ، ایندفعه هم همینطور

• hestia
جمعه، ۲۱ دی ماه ۱۳۸۶، ساعت ۰۰:۰۳

خیلی جالب بود .سایت شما تا حالا از بقیه که من دیدم بهتر بوده.                                                                                 موفق باشید

• shiva
سه‌شنبه، ۹ بهمن ماه ۱۳۸۶، ساعت ۲۲:۳۲

salam ba tashakor az tozihi ke dade boodin! man belakhare fahmidam in 8 vazir ke hame migan dastanesh chie akhe ostade khodemun ke harfi nazad faghat goft benevisid khob manam ke naneveshtam hame bache ha ham dadan birun barashun benvisan manam vaght nakardam ke benevisam vagarna hatman mineveshtam alanam donbale ye surse kamelesh budam ke web shomaro didam mamnun misham age ye kam rahnameyim konid ke chi kar konam  ya che ketabi bekhunam mamnun az karetoon

• sepideh
جمعه، ۱۲ بهمن ماه ۱۳۸۶، ساعت ۲۲:۲۰

salam

webet kheyli khoobo alie man kheyli bahash hal kardam

omidvaram hamishe movafagh bashi

babye

• مسعود
دوشنبه، ۶ اسفند ماه ۱۳۸۶، ساعت ۱۱:۵۲

سایت خوبی دارید متشکرم

میشه چنتا سایت خوب دیگه هم موعرفی کنید  با سپاس فراوان و ارزوی موفقیت

• مرضیه
جمعه، ۱۰ اسفند ماه ۱۳۸۶، ساعت ۱۱:۱۷

با عرض سلام و خسته نباشی خدمت شما دوست عزیز

مدتی بود که دنبال مساله هشت وز یر و دترمینان میگشتم اما چیز جالبی پیدا نمی کردم تا اینکه سایت شما

رو دیدم خیلی واضح وخوب توضیح دادین .حالا تصمیم گرفتم عضو بشم تا از مطالب خوبتون استفاده کنم.حالا

با خیال راحت سر روی بالشت میذارم.

                                                                                                                       از زحمات شما بی نهایت

                                                                                                                              سپاس گذارم

• bahman
پنجشنبه، ۵ اردیبهشت ماه ۱۳۸۷، ساعت ۰۰:۱۶

سلام

ممنون میشم اگه درمورد مهره اسب کمکم کنید.

میخوام عضو سایتتون بشم چی کار کنم.

• Mohsen
چهارشنبه، ۱۱ اردیبهشت ماه ۱۳۸۷، ساعت ۰۹:۱۷

از ته دل داد میزنم که خوشحالم همچین سایتی در مورد برنامه نویسی و الگوریتم پیدا کردم. در ضمن حاضرم با شما همکاری کنم.

مسعود اقدسی فام
چهارشنبه، ۱۱ اردیبهشت ماه ۱۳۸۷، ساعت ۱۱:۳۱

محسن خان ما مخلصیم داداش.

• دوست
سه‌شنبه، ۱۷ اردیبهشت ماه ۱۳۸۷، ساعت ۱۳:۳۰

آقا خیلیییییییییییییی ممنوووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووووون

• سعيد
چهارشنبه، ۲۵ اردیبهشت ماه ۱۳۸۷، ساعت ۰۷:۳۰

با سلام و تشكر . لطفا درباره مرتبه اجرايي الگوريتم ها نيز مطلب بنويسيد و همچنين درباره جنگل ها

• زهرا
جمعه، ۲۷ اردیبهشت ماه ۱۳۸۷، ساعت ۱۱:۵۷

سلام . ميشه حل مسئله هشت وزير رو با الگوريتم ژنتيك هم توضيح بدين ؟ واسه پروژم ميخوام تا شنبه هم بيشتر وقت ندارم يعني 28/02/87

• parvane
شنبه، ۲۸ اردیبهشت ماه ۱۳۸۷، ساعت ۰۷:۵۲

سلام ممنون از توضیحاتتون.کد این برنامه را با الگوریتم ژنتیک یا هر الگوریتم دیگر مطرح شده در

هوش مصنوعی اگه امکان داره لطف کنید وارسال نمائید.با تشکر

• مارتينا
شنبه، ۱۸ خرداد ماه ۱۳۸۷، ساعت ۱۵:۴۸

با سلام:

تابع اميد بخش مسئله n  وزير را مي توان با در نظر گرفتن مجموعه هاي ستونها، قطرهاي راستي و قطرهاي چپي کنترل شده توسط وزيرهايي که از قبل چيده شده اند بهبود بخشيد. مي خواستم اگه ممکنه اين تابع و الگوريتمش رو برام بفرستيد.

                                                                                                       با تشکر

• رامن
یکشنبه، ۲ تیر ماه ۱۳۸۷، ساعت ۰۴:۵۷

من از پارسال شروع كردم و خودم كتاب هاي برنامه نويسي مي خوانم. اين پست خيلي برايم جالب بود . ممنون!

• رضا
سه‌شنبه، ۱۸ تیر ماه ۱۳۸۷، ساعت ۲۳:۵۹

با سلام و خسته نباشيد خدمت استاد عزيز

ميشه الگوريتم سه بعدي اين مسئله را برام بفرستيد  با توضيحات (تمرين 37 ص210 كتاب نيپوليتان)

با تشكر فراوان

• جمشید
شنبه، ۱۹ مرداد ماه ۱۳۸۷، ساعت ۱۵:۰۰

میدانید که باچرخش صفحه شطرنج یک حالت جدید برای چینش هشت وزیر بدست می آید. می خواستم بدانم که آیا این حالات در 96 حالت موجود وجود دارد یا نه ؟

مسعود اقدسی فام
شنبه، ۱۹ مرداد ماه ۱۳۸۷، ساعت ۱۵:۲۸

بله جمشید جان. این الگوریتم با استفاده از روش عقبگرد تمامی حالتها رو به دست می یاره.

• هادی
شنبه، ۲۸ دی ماه ۱۳۸۷، ساعت ۱۹:۱۸

1- حل مسأله N وزير در فضاي k بعدي به روش عقبگرد و ارائه روش مونت کارلو براي تخمين کارآيی آن (با شبه کد C++)

• mobina
پنجشنبه، ۲۴ بهمن ماه ۱۳۸۷، ساعت ۲۰:۵۵

salam

mishe in algoritm ro baram befrestid

ta farda

akhe nemitonam save konam

tashakor

kheiliiiiiiiiiiiiiiiiiiiiiiiii

• بهنام
سه‌شنبه، ۲۰ اسفند ماه ۱۳۸۷، ساعت ۲۱:۱۷

سلام خسته نباشید از کاریتون خیلی خوشم امده.واقعا عالیه . یه سوالی داشتم از خدمتون شما چیزی در مورد برنامه نویسی بازی Age of empier در زبان  c++ شنیدین اگه جوابتون مثبته یه لطفی بکنیند به من هم اطلاع بدید

مسعود اقدسی فام
چهارشنبه، ۲۱ اسفند ماه ۱۳۸۷، ساعت ۰۰:۵۶

سلام بهنام جان

شما لطف دارید. امیدوارم همچنان توفیق خدمت به دوستان عزیز رو داشته باشم.

بنده متاسفانه در مورد بحث مورد نظر شما اطلاعاتی ندارم. شرمنده.

• maryam
چهارشنبه، ۲۸ اسفند ماه ۱۳۸۷، ساعت ۰۰:۵۱

ba arze salam.lotf mikonid da rmorede1 masaleye np ke ghabele kahesh be masaleye SAT bashe tozih bedid?

• لیلا
پنجشنبه، ۶ فروردین ماه ۱۳۸۸، ساعت ۱۰:۳۱

با سلام

اگه امکانش هست کد برنامه ی هشت وزیر رو برام بفرستید

فقط یه کمی زود

• مریم
دوشنبه، ۱۰ فروردین ماه ۱۳۸۸، ساعت ۱۷:۴۷

سلام

ممنون از راهنماییهای شما

من حسابی تو درده سر افتادم

باید پروژه طراحی الگوریتم واسه استاد بدم اما اصلا موضوع گیر نیوردم که از پسش بر بیام

خواهش می کنم کمکم کنید

مسعود اقدسی فام
سه‌شنبه، ۱۱ فروردین ماه ۱۳۸۸، ساعت ۰۸:۳۹

سلام مریم خانم

همین مساله هشت وزیر راه حلهای مختلفی داره، که می شین در مورد اونها بحث کرد.

بعضی از روشهای مرتب سازی هم نسخه های اصلاح شده تر دارن، که می شه بررسی کرد.

همینطور بحث مقایسه انواع روشهای مرتب سازی، و اینکه چه زمانی کدوم یکی بیشتر مفید واقع می شه.

البته اینها نمونه های کوچکی هستن که می شه برای پروژه درس طراحی الگوریتم روی اونها کار کرد.

• علی رضا
دوشنبه، ۱۷ فروردین ماه ۱۳۸۸، ساعت ۱۸:۲۳

سلام این مسئله هشت وزیر توی ترم اول یکی از سوالات امتحان برنامه نویسی مقدماتی ما بود که من اون رو با روش دومی که شما گفتید حلش کردم اما متاسفانه به دلیل همون معایبی که شما فرمودید فقط نصف نمره سوال به من تعلق گرفت

• سحر
چهارشنبه، ۱۹ فروردین ماه ۱۳۸۸، ساعت ۰۹:۳۸

سلام خسته نباشید

خواهش می کنم اگه کد برنامه ی هشت وزیر رو با کلاس  و پشته دارید بطوریکه جای اولین وزیر را خودمون مشخص کنیم،برام میل کنید

خواهش می کنم فقط خیلی زود

• mojtaba
شنبه، ۵ اردیبهشت ماه ۱۳۸۸، ساعت ۱۶:۵۰

thanks

• fz
دوشنبه، ۱۴ اردیبهشت ماه ۱۳۸۸، ساعت ۱۰:۴۴

ba salam ;

lotfan raje be algoritm perim va croscal j,zih dahid

ba tashakor

•  مهدی موسوی
یکشنبه، ۲۷ اردیبهشت ماه ۱۳۸۸، ساعت ۱۹:۰۴

سلام خیلیییییییییییییییییییییییییییییییییییییییی سایت شما عالیه من در به در دنبال برنامه کوله پشتی در ower point  می گردم .لطفا برام می فرستی. دم شما گرم

• مهدی
پنجشنبه، ۲۸ اردیبهشت ماه ۱۳۹۱، ساعت ۲۲:۲۹

سلام،

با تشکر از سایت خوبت

می خواستم یه برنامه بنویسم ، جمع ،تفریق، ضرب ، ... اعداد بزرگ با کلاس در c++

لطفا راهنما ییم کنید.

• رضا
جمعه، ۲۹ اردیبهشت ماه ۱۳۹۱، ساعت ۱۲:۳۱

خیلی سایت جالب و مفیدی دارید

ممنون

• مجتبی
پنجشنبه، ۱۸ خرداد ماه ۱۳۹۱، ساعت ۰۲:۵۶

عالیه

دستتون دردنکنه

انشاءالله که خدا همیشه همراه تان باشد.

06     08

• امیر
شنبه، ۳۰ دی ماه ۱۳۹۱، ساعت ۲۲:۳۰

می خواهیم 4 وزیر را در یک صفحه شطرنج به ابعاد 7 در 7 قرار دهیم به نحوی که هیچ کدام از وزیرها همدیگر را تهدید نکرده

و

"همچنین"

در صورتیکه هر مهره دیگری را در هر یک از خانه های شطرنج قرار دهیم توسط وزیرها مورد تهدید قرار گیرد"

می خواهیم این مسئله را با الگوریتم ژنتیک شبیه سازی کنیم. مطلوبست:

الف- ساختار ژن

ب- ساختار کرموزوم

ج- تعدادی مثال به عنوان نسل اولیه

د-تابع شایستگی

ه- عملگر تقاطع(به همراه مثال)

و- عملگر جهش(به همراه مثال)

1110

راهنمایی بفرمایید لطفاااااااااااااااااااااا

• دانا
یکشنبه، ۶ اسفند ماه ۱۳۹۱، ساعت ۱۴:۲۶

سلام.سایت خوبی دارین ولی من قبلا برای اولین بار این معمارو در 1:30ثانیه حلش کردم

ولی در کل با حاله03

• علی چوبین
جمعه، ۲۲ آذر ماه ۱۳۹۲، ساعت ۲۱:۲۷

با تشکر فرآوان از دوستان

اون قدیم ها که رشته مهندسی کامپیوتر قبول شدم  ، درس برنامه نویسی به زبان فرترن ارائه میشد، پروژه درس ما هشت وزیر بود و جالب این که استاد این سئوال را در امتحان پایان ترم آورد و گفت نمره پروژه به کسی داده میشه که این سئوال را سر امتحان هم حل کنه.

یادمه که کل ترم کارم این بود که حالت های مختلف هشت وزیر را روی کاغذ میکشیدم تا شاید بتونم رابطه ای بین آنها پیدا کنم.

آخر سر هم با کاراکتر در حالت تکست صفحه شطرنج را در زبان فرترن کشیدم.

علی چوبین ، فارغ التحصیل رشته مهندسی کامپیوتر سخت افزار از تهران جنوب (ورودی سال 1372)

• مسعود
دوشنبه، ۱۶ دی ماه ۱۳۹۲، ساعت ۱۳:۱۴

خیلی عالی بود هم سوالش و هم توضیحات شما لطفا از این دست مسئله ها البته با کد الگوریتم قرار بدید

• سارا
چهارشنبه، ۲ بهمن ماه ۱۳۹۲، ساعت ۰۱:۳۳

سلام. مرسی از سایت خوبتون من توضیح خط به خط کد برنامه n وزیر رو میخواستم با ++c

• س
پنجشنبه، ۱۲ تیر ماه ۱۳۹۳، ساعت ۱۰:۱۴

با سلام

من ی برنامه میخوام با صورت مساله زیر لطفا راهنمایی بفرمایید،

یک مربع که پنج حروف انگلیسی q،p،r،s،t با سایز یکسان و رنگ مشکی بدون برخورد با یکدیگر درون مربع قرار بگیرند.

با استفاده از برنامه متلب و تابع رندوم

• sara
پنجشنبه، ۱۲ تیر ماه ۱۳۹۳، ساعت ۱۰:۱۵

من ی برنامه میخوام با صورت مساله زیر لطفا راهنمایی بفرمایید،

یک مربع که پنج حروف انگلیسی q،p،r،s،t با سایز یکسان و رنگ مشکی بدون برخورد با یکدیگر درون مربع قرار بگیرند.

با استفاده از برنامه متلب و تابع رندوم

• الناز
چهارشنبه، ۱۴ آبان ماه ۱۳۹۳، ساعت ۱۵:۱۷

سلام ممنون از اطلاعات خوبتون.من برنامه هشت وزیرو با متلب میخوام اگه کسی داره لطفا کمکم کنه مرسی خیلی ضروریه07

• شطرنجباز
جمعه، ۱۷ بهمن ماه ۱۳۹۳، ساعت ۱۱:۱۹

خیلی راحت بود من تونستم تو یک دقیقه 18 روش پیدا کنم.

• ana
پنجشنبه، ۷ خرداد ماه ۱۳۹۴، ساعت ۱۴:۰۶

ساده بود.من در کمتر از 30 ثانیه 19 روش پیدا کردم04

• پریا
چهارشنبه، ۴ شهریور ماه ۱۳۹۴، ساعت ۱۳:۰۶

سلام با تشکر از سایت عالی که دارید من با را هنما ای که به من کردید این مسئله رو خیلی زود حل کردم060603

• یحیی
جمعه، ۱ آبان ماه ۱۳۹۴، ساعت ۲۳:۰۴

می خواهیم 8 وزیر را در یک صفحه شطرنج به ابعاد  8در 8 قرار دهیم به نحوی که هیچ کدام از وزیرها همدیگر را تهدید نکرده

و

"همچنین"

در صورتیکه هر مهره دیگری را در هر یک از خانه های شطرنج قرار دهیم توسط وزیرها مورد تهدید قرار گیرد"

می خواهیم این مسئله را با الگوریتم ژنتیک شبیه سازی کنیم. مطلوبست:

الف- ساختار ژن

ب- ساختار کرموزوم

ج- تعدادی مثال به عنوان نسل اولیه

د-تابع شایستگی

ه- عملگر تقاطع

و- عملگر جهش

10

• یحیی
جمعه، ۱ آبان ماه ۱۳۹۴، ساعت ۲۳:۰۶

لطفا  راهنمایی کنید

03

• sahra200
شنبه، ۱۶ آبان ماه ۱۳۹۴، ساعت ۱۹:۵۹

سلام

دوستان کسی میتونه به این سوال جواب بده

هفت حالت تعریف شده.به راه حل های فرموله کردن بازی هشت وزیر را بیابید

جوابش شصت و چهار به توان هشت میشود اما چطوری؟

سه راه حل دارد حداقل یکی را بیابید

1 Start-state

2 مجموعه اعمالی که عامل قادر است انها را انجام دهد

3 فضای حالت

4 path یا مسیر

5 qoal test

6 تابع هزینه مسیر

7 نتیجه

برای تابع هزینه مسیر و Qoal test و فضای حالت تعریف درست انجام دهید

• علی
یکشنبه، ۲ آبان ماه ۱۳۹۵، ساعت ۱۳:۳۴

خیلی باحال بود

• آرزو
پنجشنبه، ۲۷ آبان ماه ۱۳۹۵، ساعت ۰۴:۳۶

لطفا کمکم کنید ک متن برنامه رو دریافت کنم

• زینب
یکشنبه، ۷ آذر ماه ۱۳۹۵، ساعت ۱۶:۱۷

سلام واقعا ممنونم06 خیلی کمک بزرگی بود 12ذهنمو این معما مشغول خودش کرده بود.1010

• زینب
یکشنبه، ۷ آذر ماه ۱۳۹۵، ساعت ۱۶:۱۸

08080808080808

• //mn//
دوشنبه، ۸ آذر ماه ۱۳۹۵، ساعت ۱۰:۳۱

عالیی دستتون درد نکنه

• محسن
چهارشنبه، ۱۰ آذر ماه ۱۳۹۵، ساعت ۱۹:۳۳

عالی بود

• قوچاني
جمعه، ۱۹ آذر ماه ۱۳۹۵، ساعت ۰۱:۱۸

سلام

ميشه لطفا اين مسله رو با الگوريتم زنبور عسل توضيح بديد

باتشكر

• زهرا
دوشنبه، ۲۲ آذر ماه ۱۳۹۵، ساعت ۲۱:۴۸

سلام

لطفا راهنماییی کنید منظور از این فرمول ریاضی

c-r+8=15 جیه؟

• soheil
شنبه، ۲۷ آذر ماه ۱۳۹۵، ساعت ۱۶:۲۸

سلام من توی مسابقات شطرنج شرکت کرده ام

اما زیاد چیزی در باره ی شطرنج نمیدانم

کسی از شما میتواند کمکم کنید ممنون میشم

• مهدی
شنبه، ۲۷ آذر ماه ۱۳۹۵، ساعت ۲۱:۵۸

باسلام

میشه لطف کنین تابع برخورد در الگوریتم ژنتیک رو تعریف کنین؟؟؟

منظورم کد تابع fitnessهست.

شنبه، ۲۷ آذر ماه ۱۳۹۵، ساعت ۲۲:۴۲
• مسعود اقدسی فام

می‌شه آرایه‌ای به طول تعداد سطرهاتعریف کرد که عدد عنصر i-ام شماره‌ی ستونی هست که مهره در سطر i اونجا قرار گرفته. تابع برازندگی رو هم تعداد برخوردها در نظر گرفت. به این ترتیب یه مسأله‌ی کمینه‌سازی می‌شه که باید تعداد برخوردها حداقل شه.

• طا ها
یکشنبه، ۲۶ دی ماه ۱۳۹۵، ساعت ۱۹:۱۸

ممنونم0604

• علی
چهارشنبه، ۲۰ بهمن ماه ۱۳۹۵، ساعت ۲۲:۳۳

سلام

• خر
سه‌شنبه، ۳ اسفند ماه ۱۳۹۵، ساعت ۱۴:۰۸

01خیلیخر

• Student
پنجشنبه، ۲۳ فروردین ماه ۱۳۹۷، ساعت ۱۲:۲۱

سلام. استادم این برنامه هشت وزیر رو به صورت گرافیکی میخواد. کد c++ رو دارم ولی نمیدونم گرافیکش رو چیکارکنم؟ اگر آشنایی دارید یا کدی دارید لطفا بگید.

• م
سه‌شنبه، ۱۵ بهمن ماه ۱۳۹۸، ساعت ۰۰:۰۹

سلام سایت کاملی دارید

می خواستم بدونم آیا این مسئله درابعاد ۱۰۰۰در۱۰۰۰حل شده؟

• سجاد
شنبه، ۱۹ بهمن ماه ۱۳۹۸، ساعت ۱۵:۲۶

عالی عالی 01

• فاطمه
دوشنبه، ۵ آبان ماه ۱۳۹۹، ساعت ۰۸:۲۴

سلام میخواستم ببینم عدد۲۰۵۷ در مسئله ۸ وزیر چجوری بدست اومده؟

• زهرا
دوشنبه، ۵ آبان ماه ۱۳۹۹، ساعت ۰۸:۲۵

سلام میخواستم ببینم عدد ۲۰۵۷ در مسئله ۸ وزیر در درس هوش مصنوعی چجوری بدست امده است؟

• DAN_T_SONY
جمعه، ۲۱ آذر ماه ۱۳۹۹، ساعت ۲۳:۱۷

هشت مهره را انتخاب کنید (به دلخواه) مهره ها را طوری بچینید که نه از ستون عمودی نه افقی و نه ضربدری هم را قطع نکنند.

لطفا هر کی میدونه بگه ممنون میشم 🙏

• وبتبب
سه‌شنبه، ۱۱ آبان ماه ۱۴۰۰، ساعت ۱۴:۰۵

0404131112100806