الگوریتم پنگوئن های امپراتور — آموزش رایگان 0 تا 100 الگوریتم EPC
در این مقاله آموزشی، به توضیح و تشریح الگوریتم پنگوئن های امپراتور یا Emperor Penguins Colony خواهیم پرداخت که از جمله کاربردی ترین الگوریتم های فراابتکاری بوده و با نام اختصاری الگوریتم EPC به عنوان یک الگوریتم بهینه سازی محبوب شناخته شده است. این الگوریتم در سال 2018 توسط Sasan Harifi ابداع و در ژورنال Evolutionary Intelligence پایگاه علمی Springer به چاپ رسیده است.
الگوریتم متاهیوریستیک پنگوئن های امپراتور، با الهام از طبیعت و با استفاده از دو فاکتور گرمای بدن پنگوئن ها و نحوه حرکت شان در کلونی مربوط به هر کدام، یک یا چند راهحل مناسب برای مسئله بهینهسازی، ارائه می دهد. برای دانلود مقاله اصلی می توانید روی این لینک (+) کلیک کنید. اگر شما هم مشتاق هستید با نحوه عملکرد این الگوریتم آشنا شوید؛ در ادامه با ما همراه باشید.
مقدمه
همراهان گرامی مجموعه پی استور، هرگاه که صحبت از الگوریتم های بهینه سازی به میان آمد؛ بدانید که طی این مکانیزم، یک فرآیند سطح بالاتر ریاضی اعم از: تنظیم ورودی های مسئله مورد بررسی، آزمایش برای یافتن حداقل یا حداکثر خروجی و ارائه بهترین نتیجه حاصل از تکرار فرآیند، باید طی شود تا پاسخ بهینه کاربر به دست آید.
ورودی ها، شامل متغیرهایی از جمله: تابع هزینه، تابع هدف، تابع تناسب، و خروجی ها شامل هزینه و تناسب است و از آنجایی که نتایج حاصله به طور مستقیم با پارامترهای موجود، در ارتباط هستند؛ بنابراین بیشتر الگوریتم های متاهیوریستیک، نمی توانند به طور همزمان، دقت و سرعت همگرایی مناسب را برای همه مسائل بهینه سازی ارائه دهند. لذا درنهایت، الگوریتم های بهینه سازی به عنوان راهنما عمل کرده و این مدیر پروژه است که تصمیم می گیرد از کدام الگوریتم موجود، برای حل مسئله خود استفاده کند.
امروزه دانشمندان و محققان علوم کامپیوتر با تکیه بر این اصل که طبیعت به عنوان مجموعه ای کامل از انواع مفاهیم، مکانیسم ها و قواعد طراحی سیستم های محاسباتی مصنوعی در دسترس است؛ با الهام گرفتن از آن، بیشتر الگوریتم های بهینه سازی را برای مقابله با مسائل پیچیده محاسباتی، ارائه داده اند. در واقع الگوریتم EPC یا همان الگوریتم پنگوئن های امپراتور هم در این دسته قرار می گیرد و از آن برای یافتن راه حل مؤثر و کارآمد در حل مسئله پیچیده، استفاده می کنند.
نگاهی به زندگی پنگوئن های امپراتور
آیا تا به حال، به نحوه زیست این موجودات بامزه دقت کرده اید؟ آیا می دانستید که پنگوئن ها، گونه ای از پرندگان آبزی هستند که نمی توانند پرواز کنند؟ دوستان عزیز، زادگاه اصلی پنگوئن ها، نیمکره جنوبی کره زمین است و گونه اصلی آن ها در جزیره گالاپاگوس بر روی خط استوا ساکن هستند. البته لازم به ذکر است که تاکنون 20 گونه از پنگوئن ها شناخته شده اند که بزرگترین و برترین گونه، همین گونه پنگوئن های امپراتور است.
اگر از خودتان می پرسید که چرا این نژاد، به نام امپراتور شهرت یافته است؛ باید به اطلاعتان برسانم که این سلاطین، قدی بالغ بر 130 سانتی متر دارند و ازجمله بهترین غواصان هستند. جثه بزرگشان آن ها را به تنها مهره دارانی تبدیل کرده است که در شرایط سخت زیستی قطب جنوب و تا دمای 40 درجه زیر صفر رشد یافته یا حتی زندگی می کنند.
نکته قابل توجه این که در راستای مقاومت در برابر این محیط خشن و صرفه جویی در مصرف انرژی، پنگوئن های امپراتور سازگاری رفتاری، مورفولوژیکی و فیزیولوژیکی قابل توجهی از خود نشان می دهند که بسیار مورد توجه محققان قرار گرفته است. به همین دلیل است که الگوریتم پنگوئن های امپراتور بسیار مورد توجه دانشمندان این حوزه است. در تصویر زیر، مقایسه ای بر جثه برترین گونه پنگوئن ها انجام گرفته است.
رفتار امپراتورها در اجتماع
جانم برایتان بگوید که این موجودات، بسیار اجتماعی هستند. به نحوی که در سه سالگی بالغ شده و می توانند تشکیل خانواده دهند. نکته جالب زندگی پنگوئن ها این است کل زحمت نگهداری از بچه ها، بر دوش مادر خانواده نیست. به این ترتیب که پنگوئن ماده در ابتدا یک تخم می گذارد؛ سپس به دلیل پایان ذخایر تغذیه و خستگی از مراحل تخم گذاری، آن را تحویل پنگوئن نر داده؛ در حدود دو ماه برای تغذیه و جبران مافات، به اعماق دریا سفر می کند. نرها هم برای گرم نگه داشتن تخم، کنار یکدیگر جمع می شوند. حدود چهار ماه طول می کشد تا جوجه پنگوئن از تخم سر در بیاورد.
شکل گیری کلونی پنگوئن های امپراتور
آیا می دانستید که حدود 98 درصد از پرندگان دریایی در کلونی خود رشد می کنند؟ یعنی درواقع، برخلاف پرندگان خشکی، در محل زیست پرندگان دریایی چیزی به نام لانه وجود ندارد. توده های عظیمی از پنگوئن ها، کنار هم جمع می شوند تا یکدیگر را گرم نگه دارند. به نحوی که در کمتر از دو ساعت دمای بدن هر کدام از آن ها به 37 درجه سانتی گراد هم می تواند برسد. این توده عظیم Huddle نام دارد و برای توصیف تراکم آن، می توان گفت که این توده از صدها پنگوئن تشکیل شده و شامل ده پرنده در یک متر مربع می شود. در تصویر زیر، نمونه ای از کلونی پنگوئن های امپراتور را مشاهده می کنید.
نحوه حرکت در کلونی پنگوئن های امپراتور
قبل از این که به تشریح الگوریتم پنگوئن های امپراتور بپردازیم؛ بهتر است بدانید که زمانی که پنگوئن ها یک کلونی را تشکیل می دهند؛ تمرکز گرما در مرکز Huddle شکل می گیرد و تک تک پنگوئن ها به صورت غریزی، برای استفاده از این گرما به صورت مارپیچی به سمت مرکز Huddle حرکت می کنند تا برحسب نیازشان از آن استفاده کنند. شکل زیر، این حرکت مارپیچ مانند که در عین حال هماهنگ است را نشان می دهد. توضیحات تکمیلی و تشریح حرکت این کلونی، در پاورپوینت مربوطه، آورده شده است.
الگوریتم پنگوئن های امپراتور
فرض اولیه در الگوریتم پنگوئن های امپراطور، این است که پنگوئن ها در سراسر محیط مورد بررسی، پراکنده شده باشند. بنابراین در همین ابتدا و قبل از پیچیده شدن مراحل، ابتدا بایستی موقعیت هر پنگوئن نسبت به پنگوئن دیگر سنجیده شود. در نظر داشته باشید که یک پنگوئن، معمولاً به سمت پنگوئنی می رود که هزینه جذب پایینی دارد. بنابراین فاکتور دوم مورد سنجش هم، هزینه جذب هر پنگوئن است که با توجه به شدت گرما و میزان مسافت، مورد سنجش قرار می گیرد.
طی این الگوریتم، در هر مرحله از جذب، در واقع یک راه حل جدید برای مسئله مورد بررسی، ارزیابی شده و شدت گرما، بروزرسانی می گردد. در ادامه، تمام راه حل ها مرتب سازی شده و بهترین شان انتخاب می گردد. البته در این میان، یک نسبت میرایی هم برای هر پنگوئن ارزیابی می شود که عواملی همچون حرکت هر پنگوئن، تابش گرما و جذب حرارت در میزان آن، تأثیر می گذارد. هر چه نسبت میرایی کمتر باشد؛ آن راه حل مناسبتر است. در ادامه، الگوریتم EPC آورده شده است.
----------------------------------------------------------------------- Algorithm 1: Pseudo code of the Emperor Penguins Colony (EPC) algorithm. ----------------------------------------------------------------------- generate initial population array of EPs (Colony Size); generate position of each EP; generate cost of each EP; determine initial heat absorption coefficient; for I t=1to MaxIteration do generate repeat copies of population array; for i=1to n population do for j=1to n population do if costj < costi then calculate heat radiation (Eq. 6); calculate attractiveness (Eq .11); calculate coordinated spiral movement (Eq. 18); determine new position (Eq. 19); evaluate new solutions; end end end sort and find best solution; update heat radiation (decrease); update mutation coefficient (decrease); update heat absorption coefficient (increase); end
تشریح الگوریتم EPC
دوستان و همراهان گرامی مجموعه پی استور، برای درک کامل الگوریتم پنگوئن های امپراتور، تمام مراحل آن را توضیح خواهیم داد تا در یافتن پاسخ بهینه مسئله مورد بررسی تان دچار مشکل نشوید.
پاورپوینت آماده الگوریتم پنگوئن های امپراتور EPC
در پاورپوینت الگوریتم پنگوئن های امپراتور EPC به توضیح و تشریح کامل الگوریتم پرداخته شده است. این پاورپوینت در 31 اسلاید در فرمت pptx. قابل ویرایش بوده و برای ارائه کلاسی در حوزه الگوریتم های بهینه سازی مناسب است.
محاسبه مساحت سطح بدن هر پنگوئن
شاید از خودتان بپرسید که دانستن اندازه بدن هر پنگوئن به چه کار ما می آید؟ در پاسخ به این سوال باید بگویم که برای محاسبه دو فاکتور اصلی الگوریتم یعنی شدت گرما و جذابیت، انتقال تابش گرما باید محاسبه شود که برای محاسبه تابش حرارتی هر پنگوئن، باید اندازه سطح بدن آن را در دست داشته باشیم. بنابراین، محاسبه مساحت بدن هر پنگوئن ضروری بوده و شامل بدن اصلی، سر، منقار، باله ها و پاها می باشد که از فرمول های زیر محاسبه می گردند.
برای فهم بیشتر آنچه گفته شد؛ برای مدل ساده از یک پنگوئن امپراتور که در سرما ایستاده است؛ هر کدام از اندازه های مورد نیاز را محاسبه کرده و در شکل زیر آورده ایم.
محاسبه انتقال حرارت در الگوریتم پنگوئن های امپراتور
جانم برایتان بگوید که انتقال حرارت، یک تابع فرآیند یا تابع مسیر است و مقدار گرمای انتقال یافته در فرآیند ترمودینامیکی، وضعیت سیستم را تغییر می دهد و درواقع به نحوه وقوع این فرآیند و چگونگی وضعیت اولیه و نهایی سیستم بستگی دارد. انتقال حرارت با استفاده از یک ضریب محاسبه شده و در واقع نسبت بین شار حرارتی و گرمای ترمودینامیکی را محاسبه می کند. یعنی انتقال حرارت با تغییر انرژی داخلی ماده همراه است و همیشه از سمت گرم کننده انجام می گیرد. در نظر داشته باشید که شار حرارتی یک نمایش کمی و برداری از جریان گرما در یک سطح است.
در الگوریتم EPC از معیار انتقال حرارت توسط تابش استفاده می شود و می توان نتیجه گرفت که تابش ملاک جذابیت پنگوئن هاست. با فرض این که پنگوئن با محیط خود در یک تعادل حرارتی قرار دارد؛ برای محاسبه انتقال حرارت کلی، باید حرارت منتقل شده از هر ناحیه بدن پنگوئن را به شرح زیر داشته باشیم.
پس از محاسبه حرارت کلی، نوبت به محاسبه تابش یا تشعشعات ساطع شده از هر قسمت از بدن پنگوئن می رسد که از فرمول زیر محاسبه می گردد.
شدت گرما و جذابیت پنگوئن
یک نکته جالب در علم فیزیک وجود دارد که می گوید؛ در انتقال حرارت توسط تابش، فوتون ها حامل انرژی هستند. فوتون را نه فقط به وسیله سطوح انرژی الکترونیکی بلکه می توان با افزایش سطوح انرژی کوانتیزه چرخشی یا ارتعاشی، جذب کرد. منابع فوتون متمرکز عبارتند از: منابع سطحی، منابع نقطه ای و منابع خطی که در منابع سطحی، اگر منبع I0 باشد؛ معادله دریافت فوتون های حرارتی در I به شرح زیر خواهد بود.
به همین ترتیب، در منابع نقطه ای، اگر منبع I0 باشد؛ در فاصله r، شدت گرمای دریافتی در I به شکل زیر خواهد بود و از فرمول ذیل محاسبه خواهد گردید.
و اما دوستان عزیز، با توجه به فاصله بین پنگوئن ها و نوع فیزیک بدن آن ها، در الگوریتم EPC، منبع گرما خطی در نظر گرفته می شود. اگر منبع گرما خطی باشد؛ با مقدار اولیه I0 در فاصله r، که به صورت عمودی به I تابش می کند؛ معادله شدت گرمای دریافتی در I به صورت زیر خواهد بود.
در اینجا، یک نکته مهم وجود دارد که اگر به آن توجه نشود؛ ممکن است کل الگوریتم را از مسیر اصلی منحرف سازد و آن هم این است که فوتون ها توسط ماده کند و متوقف نمی شوند بلکه ضعیف و در عین حال پراکنده می گردند. بنابراین، ما باید توسط یک معادله و با استفاده از معادله منبع خطی، عملیات تضعیف فوتون را انجام دهیم. برای این منظور، از فرمول زیر که در آن یک ضریب تضعیف به x یا فاصله بین دو منبع خطی ضرب می گردد؛ استفاده کنید.
ما تمام این محاسبات را انجام دادیم تا در نهایت به فرمول جذابیت Q برسیم که در ادامه، آورده شده است.
محاسبات مربوط به نحوه حرکت پنگوئن ها در داخل کلونی
همان طور که در کارتون های دوران کودکی، بارها مشاهده کرده ایم؛ حرکت دسته جمعی پنگوئن ها به دور یکدیگر، در جهت عقربه های ساعت، حول یک مرکز ثابت انجام می شود. به شکل زیر، توجه کنید.
همراهان گرامی، برای درک بیشتر این بخش از الگوریتم پنگوئن های امپراتور، فرض کنید دو پنگوئن به نام های i و j وجود دارند و مسیر حرکت همیشه از سمت پنگوئنی که به گرما نیاز دارد به سمت پنگوئنی که گرمتر است؛ شکل می گیرد. در اینجا، حرکت مارپیچی از i به j است؛ زیرا پنگوئنهای j گرمتر هستند. به شکل زیر، توجه کنید.
دوستان عزیز، به بخش شیرین مقاله نزدیک می شویم. آیا می دانستید که مارپیچ لگاریتمی را می توان از پرتوهایی با فاصله مساوی با شروع از نقطه ای در امتداد یک پرتو و کشیدن عمود بر یک پرتو همسایه، تشکیل داد؟ بله! فرآیند به این ترتیب است که با نزدیک شدن تعداد پرتوها به بی نهایت، دنباله قطعات به مارپیچ لگاریتمی صاف نزدیک می شود.
در شکل بالا، مقدار جذابیت Q معیاری برای میزان مسافت طی شده، از پنگوئن i به سمت پنگوئن j است. جالب است که این موجود بامزه به دلیل جذابیت، به مقصد نمی رسد و پس از طی مسافت طولانی متوقف شده و نقطه توقف این پنگوئن، k یا موقعیت جدید پنگوئن i نامیده می شود. این فرآیند جابجایی تا جایی ادامه پیدا می کند که مسئله در بهینه ترین حالت خود قرار بگیرد و الگوریتم پنگوئن های امپراتور پایان یابد. به فرمول های زیر، توجه کنید.
سخن آخر در رابطه با الگوریتم پنگوئن های امپراتور
همراهان عزیز مجموعه پی استور، خسته نباشید. در این پست آموزشی، سعی کردیم تا شما را با کلیات الگوریتم پنگوئن های امپراتور EPC آشنا کنیم. در پاورپوینت مربوط به آن، جزئیات مورد بررسی آورده شده است و هدف این است که با تکمیل آموخته هایتان، بتوانید این الگوریتم فراابتکاری را در حل مسائل پیچیده خود، به کار بگیرید. از این که نظرات و پیشنهادات خود را با ما در میان می گذارید؛ سپاس گزاریم. کامیاب باشید.
درباره زهرا یاوری
کارشناس ارشد رشته علوم کامپیوتر از دانشگاه تبریز، مشاور و برنامهریز آزمونهای کارشناسی ارشد، پژوهشگر در حوزه علوم کامپیوتر، علاقمند به فعالیتهای تیمی، طراح صفحات وب، تحلیلگر سیستم، ایشان تحلیلگر ارشد شرکت بیمه البرز هستند و در زمینه علوم کامپیوتر سابقه تدریس دارند.
خیلی خوب و عالی