
سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
با اولین قسمت از معرفی الگوریتم کلونی مورچگان در خدمت شما دوستان هستیم.
جهان الگوریتمها جهانی است زیبا با استراتژیها و ابزارهایی که دائم در حال توسعه هستند تا بتونن پاسخگوی نیازهای محاسباتی ما بشن. حالا اگه این الگوریتمها از قوانین طبیعی الهام گرفته شده باشن، نتایج جالبی به دست میدن. الگوریتمها تکاملی متعلق به همین دسته از الگوریتمها میشن. این الگوریتمها برای تقلید یه سری از رفتارها و گرایشات تکاملی ژنوم انسانی طراحی شدن. بعلاوه چنین الگوریتمهایی محدود به رفتارهای انسانی نیستن و از رفتارهای حیوانات هم برای طراحی اونا استفاده میشه. حالا سوال اینه که هدف از این الگوبرداریها چیه؟ چه نیازی هست برای مطالعه رفتار یک حیوان و ساختن یک الگوریتم بر اساس اون؟ هدف از همه این کارا فراهم کردن راهحلهایی است که هم با واقعیت مطابق باشه و هم کم هزینه. این راهحلها میتونه بسیاری از مسائل به ظاهر غیر قابل حل رو برطرف بکنه.
بنابراین تکنیکهای بهینهسازی مختلف بر مبنای چنین الگوریتمهای تکاملی پدید اومدن. شاید بشه گفت یکی از مهمترین اونها، تکنیک بهینهسازی کلونی مورچگان(Ant Colony Optimization) است. این تکنیک کهً از رفتار آذوقهیابی مورچهها الهام گرفته شده توسط مارکو دوریگو در سال 1990 معرفی شد. مورچهها حشراتی هستند که زندگی جمعی دارن. به این صورت که بقای جمعی رو به منعفت تکین ترجیح میدن. اونا با ایجاد صدا، لمس کردن و فرومون (pheromone) با همدیگه ارتباط برقرار میکنن.

فرومونها ترکیبات شیمیایی ارگانیکی هستند که مورچهها برای نشون دادن واکنش اجتماعی اونارو ترشح میکنن. از اونجایی که مورچهها روی سطح زمین زندگی میکنن، این فرومونها رو روی خاک به جا میذارن به امید اینکه یه مورچه دیگه هم اون راه رو دنبال بکنه. این موجودات ریز تو لانههای جمعی زندگی میکنن و چیزی که براشون مهمه اینه که حرکت همدیگرو زیر نظر بگیرن تا بفهمن کوتاهترین راه ممکن برای به دست آوردن یه هدف مشترک (یه غذایی که در جایی افتاده) چیه. اول از همه مورچهها به صورت تصادفی به سمت غذایی که دور و بر لانهشون است حرکت میکنن. این حرکت تصادفی مسیرهای زیادی رو به سمت غذای مورد نظر باز میکنه.

حالا بسته به کیفیت و مقدار غذا، مورچهها یه مقدار از اون رو با خودشون به سمت لانه حمل میکنن. اونا حین این کار فرومونها رو تولید میکنن و مسیری رو که رفتن و برگشتن پر از این مواد میکنن. بر اساس این فرومون هست که مورچهها قادر میشن تا بهترین مسیر رو برای رفت و برگشت انتخاب کنن.

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

مرحله اول: در این مرحله مورچهها تو لانهشون هستند.
مرحله دوم: مورچهها با یک درجه از احتمال به دنبال غذا در هر مسیری میگردن. واضحه که مسیر منحنی طولانیتره و بنابراین مقدار زمانی که صرف این راه میشه از راه دیگه بیشتره.
مرحله سوم: مورچههایی که مسیر کوتاهتر رو انتخاب کردن زودتر به غذا میرسن. باز هم مورچهها با همون معمای انتخاب یک مسیر خوب مواجهن. اما حداقل احتمال انتخاب یک مسیر در این مرحله افزایش یافته.
مرحله چهارم: مورچگان بیشتری از مسیر کوتاهتر برمیگردن و در نتیجه غلظت فرومون در این مسیر افزایش پیدا میکنه. بعلاوه طبق قاعده بخار، غلظت فرومون در مسیر طولانیتر کاهش پیدا میکنه که منجر میشه به کاهش احتمال انتخاب این مسیر. در آخر همه کلونی مسیر کوتاهتر رو انتخاب میکنن و بهینهسازی مسیر به دست میاد.
واژگان تخصصی:
منابع:
Introduction to Ant Colony Optimization - GeeksforGeeks
دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

