الگوریتمستان

یادداشت‌های یک معلم علاقه‌مند به نوشتن از آنچه آموخته و یاد می‌دهد
 

  

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

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

معمای هشت وزیر از جمله مسائل کلاسیک مباحث طراحی الگوریتم است که در حالت کلی‌تر با عنوان معمای 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