حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی

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

قوانین بازی هم این هست که شما باید همه کشیش ها و آدم خوار ها را به آن طرف رودخانه ببرید تنها یک قایق برای عبور دارید که دو نفر می توانید سوار آن شود و اگر تعداد آدم خوار ها بیشتر از کشیش ها باشد آدم خوار کشیش را می خورد!

برای دیدن حل این مسئله به ادامه مطلب مراجعه نمایید…

توضیح ویکی‌پدیا:

معمای کشیش‌ها و آدمخوارها (Missionaries and cannibals problem) یک مسئله کلاسیک در هوش مصنوعی است. این مسئله نمونه‌ای از مسائل ارضای محدودیت می‌باشد. سه کشیش و سه آدم‌خوار در یک طرف رودخانه قرار دارند و هم چنین قایقی که قادر است یک یا دو نفر را حمل کند. راهی را بیابید که همه را به سمت دیگر رودخانه ببرد، بدون آنکه تعداد کشیش‌ها در یکجا کمتر از آدم‌خوارها شود.
این سه مسئله یعنی معمای زن و شوهرهای حسود، ‘معمای کشیش‌ها و آدمخوارها’ و معمای گرگ و گوسفند و کلم به مسائل رد شدن از رودخانه معروف هستند.

حل معما به روش اول:

1- دو آدم خوار را با قایق به سمت چپ آورده و یکی را پیاده می کنیم و با یکی دیگر قایق را به سمت راست می آوریم.

2- یک آدم خوار دیگر را هم می بریم و در طرف راست آدم خواری دیگر نمی ماند! باز هم با یکی از آدم خوار ها با قایق به راست برمی گردیم.

3- آدم خوار را گذاشته و دو کشیک را سوار می کنیم به طرف چپ می بریم و یکی  را پیاده کرده و با یک آدم خوار و یک کشیک به سمت راست راه می افتیم.

4- آدم خوار سواره را پیاده می کنیم و کشیش آخری را سوار می کنیم و به سمت چپ می رویم. حال همه کشیش ها را آورده ایم و در سمت چپ سه کشیش داریم و با خیال راحت آدم خوارها را به سمت چپ می بریم. یعنی وقتی سه کشیش در سمت چپ مستفر شدند با یک آدم خوار مانده کشتی را به سمت راست می بریم و دوبار این عمل را انجام داده و همه آدم خوار ها را هم از رودخانه عبور می دهیم.

همچنین بخوانید:   5 هکر بزرگ تاریخ کامپیوتری

.

روش دوم:

۱- ابتدا یک آدم‌خوار با یک کشیش به طرف دیگر می‌روند.
۲- سپس آدم‌خوار پیاده شده و کشیش برمی گردد.
۳- دو آدم‌خوار به سمت دیگر می‌روند.
۴- یک آدم‌خوار پیاده شده و یکی بر می‌گردد.
۵- دو کشیش به سمت دیگر می‌روند
۶- یک کشیش پیاده شده و یک آدم‌خوار و یک کشیش بر می‌گردند
۷- دو کشیش به سمت دیگر می‌روند
۸- هر دو کشیش پیاده شده و یک آدم‌خوار بر می‌گردد
۹- دو آدم‌خوار به سمت دیگر می‌روند.
۱۰- یک آدم‌خوار پیاده شده و یکی بر می‌گردد.
۱۱- دو آدم‌خوار به سمت دیگر می‌روند.

.

تصویر نهایی:

حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی
حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی
.

معمای زن و شوهرهای حسود

معمای زن و شوهرهای حسود(jealous husbands problem) به شکل زیر تعریف می‌شود: سه شوهر حسود و همسران آنها مجبور بودند برای عبور از رودخانه از قایق استفاده کنند. اما قایق آنها آنقدر کوچک بود که بیشتر از ۲ نفر در آن جای نمی‌گرفت. محدودیت مسئله این است که هیچ زنی نباید با مردی غیر از شوهر خود تنها بماند.

حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی

نمونه کدها (Sample Codes)

برای حل  حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی نمونه کدهایی در اینترنت وجود دارد که برای Java می‌توانید این لینک و برای Python این لینک و C++ این لینک را مشاهده نمایید.

اولین ویرایش: ۲۴ آذر ۱۳۹۱
ویرایش نهایی: ۱۴ آبان ۱۴۰۰

.
منبع:
دانش کامپیوتری

نوشته‌های مرتبط

15 دیدگاه برای “حل مسئله کشیش ها و آدمخوارها در هوش مصنوعی”

  1. علی اکبر

    سایتتون ریده

    1. عفت کلام که ندارید یکم شعور داشته باشید مشکلی هست درست مثل آدم بگید تا بشه رفع کرد! والا مفت هم به یکی کمک می‌کنی آخرش یا پاچتو می‌گیره یا جفت می‌زنه! حق امثال تو این هست زنگ بزنی رایانه کمک و دقیقه‌ای واست بیست سی هزار تومن بندازه و بعد صد تومن خرج کردن تازه بتونی کاری کنی! واقعا که…

  2. ویدئو کنفرانس

    سایت خوبی دارید موفق باشید

    1. مهرداد

      ممنون از نظر سازنده‌ی شما

  3. Mohamad

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

    1. سلام. به کدوم علوم؟ هوش مصنوعی؟ باید الگوریتم‌ها رو یاد بگیرید و کتاب‌ها و درس‌های خودش رو بخونید…

  4. fazi

    سلام
    اینکه راه حل درست نیست!!!!!!!!!!!!!

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

  5. مریم

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

    1. سلام. با یادگرفتن الگوریتم های هوشمند دیگه و طرز استفاده از اونها در چند زبان برنامه نویسی.

  6. شبنم

    سلام میشه چند تا مسئله ی دیگه که بشه با الگوریتم ژنتیک حل کرد رو معرفی کنید؟

    1. سلام. فروشنده دوره گرد ، مسئله کوله پشتی و کلا مسائلی که باید همه موارد روی اون اعمال بشه تا بهترین نتیجه در اون لحاظ بشه. حتی در بازی ها…

  7. a.e

    سلام متشكرم كه راه حل اين معما را در سايتت گذاشتي.خواستم تو را به وبلاگم دعوت كنم

    1. با سلام ؛ خواهش می کنم

  8. پوریا

    یه سه چهار باری کشیش های بیچاره رو به کشتن دادم تا موفق شدم همه رو رد کنم

پیام بگذارید