الگوریتم علی بابا و چهل دزد
الگوریتم های زیادی در دنیا وجود دارند که هر کدام از آنها، یکسری کارایی منحصر به فردی دارند. یکی از جدید ترین آنها، الگوریتم علی بابا و 40 دزد است که طبق یک داستان قدیمی ساخته شده است. این الگوریتم در فرآیندهای مختلفی به ما کمک می کند تا بتوانیم نیاز های خودمان را بهینه تر کنیم. در ادامه قصد داریم تا شما را با داستان این الگوریتم و البته نحوه کارکرد آن هم آشنا کنیم. برای همین حتما تا آخر این محتوا با ما همراه باشید تا با یکی از جالبترین و البته جدیدترین الگوریتمهای جهان آشنا شوید.
داستان الگوریتم بهینهسازی علی بابا و ۴۰ دزد
آیا تا به حال چیزی از داستان علی بابا و چهل دزد شنیده اید؟ جالب است بدانید که این داستان قدیمی، الهام بخش یک روش جالب بهینهسازی است که در سال ۲۰۲۲ ابداع شد و اکنون نیز به طور گستردهای مورد استفاده قرار میگیرد.
حکایت علی بابا و چهل دزد به این صورت است که:
می گویند در زمانهای قدیم مرد فقیری به نام علی بابا با همسر و کنیز خود زندگی میکرد که زندگی خود را از طریق جمع آوری هیزم و فروش آن میگذارند. یک روز که علی بابا مشغول کار بود، ناگهان متوجه افرادی شد که به آن سمت میآمدند. علی بابا در گوشهای پنهان شد و متوجه شد که جمعیت مورد نظر، عدهای دزد هستند که مقدار زیادی طلا به همراه خود دارند. ۴۰ دزد، طلاها را در غاری قرار داده و آنجا را ترک کردند. علی بابا رمز ورود به غار را از دزدان شنیده و یاد گرفته بود. پس از آن که از رفتن دزدها مطمئن شد، به سراغ غار طلاها رفت و مقداری از آنها را برداشت و به خانه رفت. علی بابا از همسر خود تقاضای ترازو کرد تا متوجه شود که مقدار دقیق طلاها چقدر است.
همسر علی بابا که در خانه ترازویی نداشت، از همسر برادر خود تقاضای ترازو کرد. و برادر او که قاسم نام داشت و آدم طماعی بود، به همسر خود گفت: کف ترازو را چرب کن تا بفهمیم که علی بابا به چه دلیلی ترازو را لازم دارد.
علی بابا و همسرش پس از ان که طلاها را اندازهگیری کردند ترازو را برگرداندند، اما یک سکه به ترازو چسبیده بود و قاسم که سکه را پیدا کرده بود، به سراغ علی بابا آمد و موضوع را جویا شد.علی بابا نیز ناگزیر داستان را برای قاسم تعریف کرد.
قاسم به سمت غار حرکت کرد و با گفتن اسم رمز که از علی بابا یاد گرفته بود، وارد غار شد و مقداری طلا برای خود برداشت، اما رمز را فراموش کرد و نتوانست از آن جا خارج شود. وقتی دزدان به غار برگشتند، قاسم را پیدا کردند و او را کشتند و در بیرون غار قرار دادند، تا برای کسان دیگر عبرتی باشد. و با ایجاد خوف و وحشت از نزدیک شدن مردم به نواحی اطراف غار جلوگیری کنند.
علی بابا که نگران قاسم شده بود، تصمیم گرفت به جست و جو او برود و به سمت غار حرکت کرد. پس از آن که جسد قاسم را پیدا کرد، تصمیم گرفت نگذارد کسی از ماجرا بویی ببرد و حقیقت مرگ قاسم را از همه پنهان کند. او در نهایت پس از فکر کردن زیاد، تصمیم گرفت که با رشوه دادن به یک دکتر به همه این طور نشان دهند که قاسم مدتها درگیر بیماری بوده و با تمام شدن عمرش به مرگ طبیعی مرده است.
در طرف دیگر داستان ۴۰ دزد با رفتن دوباره به غار طلاها و نیافتن جسد قاسم، دریافتند که یک نفر دیگر نیز در جریان موضوع است. برای همین تصمیم گرفتند که او را پیدا کنند؛ دزدها برای پیدا کردن علی بابا دست به روشهای خلاقانه و جالبی زدند. در واقع بنیان الهام الگوریتم علی بابا و ۴۰ دزد نیز همین روش هاست.
مطلب پیشنهادی: الگوریتم جهش قورباغه یا SFLA
آنها در سه مرحله متفاوت به جست و جو علی بابا پرداختند:
در مرحله اول آنها به ردیابی علی بابا پرداختند و با پیدا کردن پزشک، توانستند خانه علی بابا را پیدا کنند. دزدی که خانه را پیدا کرده بود، روی درب خانه علامتی گذاشت تا بعدا با بقیه دزدها برگردد و علی بابا را بکشند. اما کنیز باهوش علی بابا که در جریان ماجرا بود، متوجه این اتفاق شد. به همین دلیل روی درب تمام خانههای آن اطراف علامتهای مشابه و یکسان گذاشت، این گونه وقتی ۴۰ دزد برای کشتن علی بابا برگشتند، سرگردان شده و نتوانستند او را بیابند. و سردسته دزدان نیز دزد اول را از روی عصبانیت کشت.
در مرحله دوم آنها دوباره برای پیدا کردن علی بابا دست به کار شدند و با پیدا کردن دوباره پزشک، خانه علی بابا را یافتند. دزدی که مسئول این کار بود، متوجه شد که سنگ جلو خانه لب پریدگی دارد. این را به عنوان نشانه در نظر گرفت و پیش دوستان خود برگشت و شب هنگام، ۳۹ دزد برای کشتن علی بابا آمدند. اما مرجانه که همان کنیز باهوش علی بابا بود، این بار هم ماجرا را فهمیده و تمام سنگها را خراش داده بود و این گونه دزدان این بار هم در کشتن علی بابا ناکام ماندند. دوباره سردسته دزدان، دزد مسئول را به قتل رساند.
در مرحله سوم سردسته دزدان که زیردستان خود را در این کار ناتوان یافته بود، تصمیم گرفت خود نقشهای ترتیب دهد و علی بابا را گیر بیندازد. او ۳۷ کوزه تدارک دید و پس از پیدا کردن دوباره خانه علی بابا به زیردستان خود دستور داد به درون کوزهها بروند. و خود را به جای یک تاجر عسل جا داد، او با کوزهها وارد خانه علی بابا شد، اما باز هم مرجانه با هوش و ذکاوت خود به کمک علی بابا شتافت. او با ریختن آب جوش به درون کوزهها توانست هر ۳۷ دزد را نابود کند و سر دسته دزدها نیز با تلاش و زحمت فراوان از خانه علی بابا فرار کرد.
الگوریتم علی بابا و چهل دزد چیست؟
در واقع الگوریتم بهینهسازی علی بابا و ۴۰ دزد، از این داستان برگرفته شده است. و در این الگوریتم به این صورت عمل میشود، که فضای جست و جو، شهری که داستان در آن اتفاق میافتد در نظر گرفته میشود و دزدها به عنوان عامل جست و جو در نظر گرفته میشوند. علی بابا نیز به عنوان هدف و پاسخ بهینه مسئله در نظر گرفته میشود که به دنبال آن هستیم و باید آن را پیدا کنیم.
الگوریتم بهینهسازی علی بابا و چهل دزد که به آن به اختصار AFT هم گفته میشود، در واقع یک روش بهینهسازی فراابتکاری و روش متاهرستیک به شمار میرود. از این روش برای حل مسائل Global optimization استفاده میشود که این در واقع عبارت است از مسائلی در بهینهسازی که در نهایت یک جواب منحصر به فرد دارد و میتواند به صورت مینیمم مقدار یا ماکزیمم مقدار باشد. البته مینیمم رایجتر است و بیشتر الگوریتمها بر اساس مینیممها طراحی میشوند.
طبق داستان، یک تقابل بین علی بابا و خدمتکارش و ۴۰ دزد برقرار است. حائز توجه است که در این الگوریتم، ۴۰ دزد در واقع میتواند بسته به مسئله مورد نظرريال مقدارهای متفاوتی را بپذیرد.
مطلب پیشنهادی: الگوریتم جستجوی شکار
الگوریتم AFT در واقع یک سودوکد دارد که بر طبق این سودوکد، برای هر کیس بر طبق یکسری از پارامترها، فضای جست و جو و وسعت آن مشخص میشود. همچنین تعداد دزدها را مشخص کرده و برای هر یک به صورت تصادفی، یک موقعیت مشخص کرده و عوامل و مولفههای اصلی مسئله را مقداردهی اولیه میکند. سپس وارد حلقه اصلی میشود که حلقه اصلی برگرفته از سه استراژی است. در این میان هرکدام از عوامل جست و جوگر که در واقع همان دزدها در داستان علی بابا و چهل دزد هستند، به یک نتیجه نهایی دست مییابند. که باید اینها را با یکدیگر به روزرسانی کرده و ارتباط دهیم. مورد دیگری که در این جا مطرح میشود و در بین کیسهای مختلف متفاوت است، میزان هوشمندی می باشد که در واقع همان میزان هوشمندی کنیز علی بابا است.
الگوریتم علی بابا و چهل دزد را میتوان روی توابع مختلفی نشان داد. برای مثال روی توابع لگاریتمی میتوان به خوبی متوجه این الگوریتم شد.جالب است بدانید که این الگوریتم در سال ۲۰۲۱ در نشریه Neural Computing and Applications به چاپ رسیده است.
بررسیهای انجام شده نشان میدهد که الگوریتم بهینهسازی علی بابا و چهل دزد، به نسبت الگوریتم گرگ خاکستری، الگوریتم بهینهسازی شعله-پروانه، الگوریتم بهینهسازی مرغ دریایی و الگوریتم بهینهسازی اجتماع ذرات، یک بهینهسازی با کارایی بالاتر محسوب میشود.
دیدگاه شما