
سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
این هفته باهاتون هستیم برای ادامه مطلب هفته پیشمون درباره الگریتم کلونی مورچگان. در مطلب قبلی در مورد مورچگان و یافتههای زیستشناسان درباره مکانیسم زندگی جمعی مورچهها کلی صحبت کردیم. اینکه مورچه تو یه فرایند آزمون و خطا چندین راه رو برای رسیدن به غذا آزمایش میکنن و در آخر راه هر کدوم که راحتتر و نزدیکتر بود به عنوان بهترین گزینه از طرف مورچههای دیگه پذیرفته میشه. حالا این هفته میخواییم ببینیم دانشمندان هوش مصنوعی چطور از این شیوه آذوقهیابی مورچهها الگوبرداری کردن و از این الگو به یه الگریتم بسیار پر کاربرد رسیدن.
با توضیحی که درباره رفتار مورچهها دادیم، حالا وقتشه که یه الگریتم بسازیم. برای اینکه مطلب سادهتر بشه ما بین یک کلونی و یک منبع غذایی دو راه ممکن رفت و آمد در نظر میگیریم. کل این سناریو رو میشه با یک نمودار تابعی وزندار توضیح داد. فقط اینو بدونید که منظور از گراف (Graph) یا همون نمودار تابعی وزندار اینه که گرافِ ما دارای یه سری ارزش (value) یا عدد است. در این تابع کلونی و منبع غذایی به عنوان گرهها یا کرهها کوچیک (nodes) در نظر گرفته شدن. بردارهای گراف راههای ممکن مورچهها رو نشون میدن و در آخر فرومونها وزنها یا همون اعداد مرتبط با بردارها هستند.
اسم گراف ما G = (V,E) هست. v و e گرهها و بردارهای گرافمون هستن. VS اشاره داره به کلونیای که مورچهها توش به سر میبرن، و Vd یعنی نقطهای که منبع غذای توش قرار داره. ما همچنین دو بردار E1 و E2 رو داریم که طول L1 و L2 بهشون داده شده. حالا فرومون موجود در هر مسیرِ Eرو به ترتیب با R1 و R2 نشون میدیم. بنابراین احتمال اینکه هر یک از مورچهها یکی از دو مسیر موجود رو ( یعنی E1 و E2) انتخاب کنن برابر است با:

مسلماً اگر R1 بزرگتر از R2 باشد، احتمال اینکه مسیر E1 انتخاب بشه بیشتره. حالا با فرض اینکه مورچه فرضی ما از راه کوتاهتر (Ei) سریعتر برمیگرده، فرومون موجود در مسیرمون به روز میشه. این بروزرسانی اولاً برمبنای طول راه و دوماً نرخ بخار شدن فرومون حساب میشه. بنابراین برای حساب کردن بروزرسانی میتونیم معادله زیر رو داشته باشیم:
- طبق طول مسیر:

در فرمول بروزرسانی بالا i برابر است با 1،2 و K به عنوان پارامتر این مدل استفاده میشه. بعلاوه، این بروزرسانی (فرومون) مبتنی بر طول مسیر است. هرچه مسیر کوتاهتر، میزان و غلظت فرومون بالاتر.
- طبق میزان بخارشدن فرومون:

پارامتر V به بازه [0,1] متعلقه که میزان تبخیر فرومون رو میسنجه.
در هر تکرار، همه مورچهها در کلونی قرار میگیرن. سپس از Vs به سمت Vd حرکت میکنن. بعد از اون نوبت راه برگشت است که با این کار مسیر انتخاب شده رو تقویت میکنند.
در زیر تصویری از کد نوشته شده بر اساس الگریتم کلونی رو قرار میدیم:

در کد بالا میتونیم بروزرسانی فرومون و محاسبات متناسب با اون رو ببینیم که از طریق مراحل چندگانهای که در بالا گفته شد اجرا میشه.
تا اینجا تکنیک بهینهسازی کلونی مورچگان (ACO) رو به طور کلی و البته تکنیکال معرفی کردیم. این الگریتم میتونه مسائل گوناگونی مثل مسئله فروشنده مسافر حل کنه.
واژگان تخصصی

منابع
Introduction to Ant Colony Optimization - GeeksforGeeks
دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

