زمان تخمینی مطالعه: 9 دقیقه
ما میتوانیم از رفتارهای دسته جمعی در طبیعت چیزهای زیادی بیاموزیم. عوامل موجود در طبیعت مانند زنبورها، پرندگان، ماهیها و مورچهها در زندگی اجتماعی خود با هم همکاری میکنند و دانش کسب شده خود را به اشتراک میگذارند تا وظایف خاصی را انجام دهند. ماهیت مرتبط این موجودات به عنوان هوش ازدحام (Swarm intelligence) طبقهبندی میشود. الگوریتمهای الهامگرفته از هوش ازدحامی، برنامههای مختلف امروزی را برای بهینهسازی و کارایی توانمند میسازند.
هوش ازدحامی Swarm intelligence چیست؟
Swarm Intelligence به تلاش مشترک گروهی از اشیاء (انسان، حیوانات، روباتها و غیره) در تکمیل یک کار اشاره دارد. این مفهوم از طبیعت الهام گرفته شده است و اولین بار در سال 1989 توسط جراردو بنی و جون وانگ برای سیستمهای رباتیک سلولی معرفی شد. این مفهوم ساختار غیرمتمرکز و خودسازمانده موجودات اجتماعی در طبیعت را مطالعه میکند.
هوش ازدحام(هوش گروهی) از مفهوم کلونی مورچهها، ازدحام زنبورها و دستههای پرندگان پیروی میکند، جایی که یک وظیفه واحد بین چندین موجود در یک گروه توزیع میشود. از آنجایی که کار توسط چندین عضو گروه انجام میشود، فرآیند کارآمدتر و نتایج دقیقتر است. توسعهدهندگان مفهوم هوش ازدحامی را در کارهای مختلف امروزی برای بهبود کارایی و دستیابی به نتایج عالی ارائه میدهند.
ویژگیهای هوش ازدحامی
در حالت کلی یک گروه ارگانیسم باید شرایط خاصی را برای نشان دادن ویژگیهای هوش ازدحام انجام دهد که در ادامه ذکر شده است:
- خودمختاری Autonomy: در این مفهوم هر شی باید مستقل از دیگری عمل کند. این بدان معنی است که هر یک از اعضای گروه باید وظیفه داده شده را بدون وابستگی به دیگران انجام دهد. این موضوع به گروه اجازه میدهد تا از هوش فردی خود برای حل وظایف خود به جای پیروی از دستورالعملهای تعریف شده استفاده کند. خودمختاری اجازه میدهد تا از هوش جمعی گروه برای بهبود نتیجه کار استفاده شود.
- آگاهی Awareness: اعضاء ازدحام باید از حضور و کار یکدیگر آگاه باشند. به عنوان مثال، در کلونی مورچهها، مورچهها فرمونهایی از خود به جای میگذارند تا دیگران را به منبع غذایی راهنمایی کنند. مورچههای دیگر میتوانند اینها را به عنوان نشانههایی از مورچههای همنوع خود تشخیص دهند و خود را به سمت تکمیل کارشان راهنمایی کنند.
- تحمل خطا Fault-Tolerant: شکست یک عضو منفرد بر کارایی یا نتیجه سایرین تأثیر نمیگذارد. اگر هر یک از اعضای گروه خارج شود، بقیه میتوانند بدون هیچ گونه عقبگردی به وظایف خود ادامه دهند. این موضوع تضمین میکند که تا زمانی که یک عضو باقی میماند، کار تکمیل میشود.
- مقیاس پذیری Scalability: ازدحام میتواند با نیازهای رو به رشد سازگار شود و اعضای جدید را برای افزایش مقیاس شبکه در بر بگیرد. به عنوان مثال، اگر منابع غذایی در کلنیهای زنبور عسل ناکافی باشد، زنبورهای بیشتری برای پرواز و جستجو اختصاص داده میشوند. این یک سیستم مقیاس پذیر ایجاد میکند که با نیازهای گروه سازگار است و کارایی را به هر قیمتی حفظ میکند.
الگوریتمهای هوش ازدحامی
عوامل مختلف در طبیعت به طور متفاوتی از دانش جمعی خود برای انجام وظایف مختلف استفاده میکنند. پیشرفت در هوش ازدحامی از این تکنیکها الهام گرفته و آنها را برای حل سناریوهای مختلف دنیای واقعی به کار میگیرد. برخی از الگوریتمهای کلیدی این حوزه از هوش مصنوعی عبارتند از:
- بهینهسازی ازدحام ذرات: بهینهسازی ازدحام ذرات (PSO) به هوش جمعی کل شبکه برای بهبود خروجی کار متکی است. الهام بخش این کار را میتوان در دستهای از پرندگان یافت. هنگام جستجوی غذا، هر پرنده بهترین مکان را برای جستجو میشناسد. با این حال، به عنوان یک اجتماع، پرندگان از دانش دیگران برای مکانهای بالقوه دیگر نیز آگاه هستند. این دانش جهانی و محلی به آنها اجازه میدهد جستجوی خود را در فضای جستجو بهینه کنند و سریع به مقصد برسند.
از نظر الگوریتمی، PSO به ذرات یک گروه اجازه میدهد تا از دانش ترکیبی از گروه استفاده کنند. هر ذره در امتداد فضای خود حرکت میکند و به دنبال راه حل میگردد. ذرات یافتههای خود را با دیگران به اشتراک میگذارند و به بقیه اجازه میدهند حرکت خود را بهینه کنند و به سرعت همگرا شوند. این الگوریتم در صنایع مختلف برای بهینهسازی فرآیندها مفید است. فرآیند بازیابی حرارتی در پالایشگاههای نفت را بهبود میبخشد. گروهی از عوامل، بهترین پارامترها را برای تزریق گاز و دمای بخار تخمین میزنند تا بازیافت نفت را به حداکثر برسانند. صنایع تولیدی و ساختمانی از آن برای یافتن مواد خام بهینه برای ساخت طرحهای سبک وزن و در عین حال مستحکم استفاده میکنند. یادگیری ماشین از PSO برای بهینهسازی تنظیم هایپرپارامتر و شناسایی بهترین معیارهای ممکن برای آموزش مدل استفاده میکند. همچنین در برنامههای کاربردی تشخیص اشیاء نشان داده شده است. این الگوریتم از یک تصویر مرجع و N تعداد عامل برای بررسی تصاویر نمونه برای آیتم مرجع استفاده میکند.
- بهینهسازی کلونی مورچهها: بهینهسازی کلونی مورچهها (ACO) از حرکت مورچهها در جستجوی غذا الهام میگیرد. هنگامی که یک کلنی جدید ایجاد میشود، هر مورچه در جهات تصادفی در جستجوی غذا حرکت میکند. این به این دلیل است که در ابتدا، هیچ فرمون هدایت کنندهای وجود ندارد و هر مسیر احتمال یکسانی برای بهینه بودن دارد. هر مورچه مسیر متفاوتی را طی میکند و فرمونها را در مسیر خود باقی میگذارد. مسیر طولانیتر برای رسیدن به مقصد بیشتر طول میکشد. از این رو، تا زمانی که مورچه به غذا برسد، فرمونهای روی آن زمان تبخیر بیشتری خواهند داشت.
هنگامی که مورچهها به غذا رسیدند، باید آن را در کارآمدترین مسیر حمل کنند. این بسته به سطوح فرمون که در مسیر کوتاهتر بالاتر است، انتخاب میشود. همه مورچهها مسیر بازگشت کوتاهتری را طی میکنند، بنابراین غلظت فرمون افزایش مییابد. افزایش غلظت همه مورچهها را راهنمایی میکند تا این مسیر را به عنوان بهینهترین مسیر انتخاب کنند. برنامههای مدرن الگوریتم ACO را به عنوان یک مسئله گراف درک میکنند. کلنی مورچهها و غذا گرهها(Node) هستند، در حالی که مسیرها لبهها(Edge) هستند. هر مسیر با غلظت فرمون (احتمال) و طول آن مشخص میشود. مسیری با غلظت زیاد و طول کوتاهتر بهینهترین مسیر است. مفهوم دیگر در اینجا این است که غلظت فرمون تبخیر میشود (در طول زمان). این موضوع از گیر افتادن مورچهها (عوامل) در حداقلهای(بهینه) محلی جلوگیری میکند و به آنها اجازه میدهد به کاوش گزینههای بیشتر ادامه دهند.
- بهینهسازی کلونی زنبور عسل: بهینهسازی کلونی زنبور عسل (BCO) شبیه بهینهسازی کلونی مورچهها است. با این حال، به جای فرمون، زنبورها به اطلاعات گروه منتخبی از زنبورها در مورد منابع غذایی متکی هستند. یک گروه کوچک (معروف به زنبورهای شاغل) به طور تصادفی غذا را جستجو میکنند و با اطلاعات زیر در مورد منبع غذایی که پیدا کردهاند پیش بقیه باز میگردند:
- فاصله تا منبع
- جهت از کندوی عسل
- کیفیت منبع غذایی
زنبورهای باقیمانده که زنبورهای بیکار نیز نامیده میشوند، از این اطلاعات برای تعیین مناسبترین منبع برای کندو(Hive) استفاده میکنند.
BCO به یافتن راه حلهای بهینه سراسری برای مسائل ریاضی مانند مسئله پوشش مجموعه (SCP) کمک میکند. هدف SCP انتخاب زیرمجموعهای از ستونها (یا مجموعهها) با حداقل هزینه است تا تمام ردیفها (یا عناصر) در یک ماتریس معین را پوشش دهد. BCO به طور تصادفی زنبورها را به سلولها اختصاص میدهد تا راهحلی پیدا کنند. زنبورهای کارگر در فضای راه حل تکرار میکنند تا بهینه تابع هدف SCP را بیابند. این فرآیند تکراری به شناسایی پیکربندی بهینه قرارگیری سلول کمک میکند.
کاربردیهای Swarm Intelligence در دنیای واقعی
در این الگوریتمها اعضای یک گروه به صورت گروهی با هم کار میکنند. با این حال، این گروه دارای ویژگیهای منحصر به فردی است که به کارایی و عملکرد کمک میکند. برخی از کاربردهای عملی الگوریتمهای هوش ازدحامی در دنیای واقعی عبارتند از:
- لجستیک خرده فروشی: زنجیرههای خرده فروشی بزرگ از هوش ازدحامی برای بهینهسازی مسیرهای تحویل وسایل نقلیه خود استفاده میکنند. الگوریتمها از دادههای ترافیکی و ازدحام عوامل برای بررسی گزینههای متعدد و محدود کردن به بهترین راهحل استفاده میکنند.
- مسیریابی شبکه: الگوریتمهای هوش ازدحام اینترنت را هدایت میکنند و ترافیک را در سراسر شبکه فراخوانی میکنند. آنها از چندین عامل برای تجزیه و تحلیل مسیرهای ازدحام و انتخاب بهینه (کوتاهترین و کم تراکمترین) برای عملیات استفاده میکنند.
- مدیریت منابع انسانی: شبکههای کندو تخصیص منابع را با تخصیص زنبورهای کارگر بر اساس الزامات خاص نشان میدهند. الگوریتم هوش گروهی به تخصیص کارگران در دسترس به شیوهای بهینه برای بهبود کارایی و استفاده کمک میکند.
- علوم داده: مسائل علوم داده معمولاً متکی به بهینهسازی یک تابع هدف هستند. یافتن راه حل میتواند بسیار طولانی باشد، به خصوص اگر حداقلهای محلی مختلف در فضای راه حل وجود داشته باشد. هوش ازدحامی از دانش جمعی عوامل مختلف برای رسیدن سریع به یک راه حل استفاده میکند. این روش همچنین خوشههای داده بهینه را در یک مجموعه داده پیدا میکند. عاملها پیکربندیهای مختلف خوشه را آزمایش میکنند و آنها را بر اساس معیاری بسته به الگوریتم ارزیابی میکنند. آنها این دانش را با دیگران به اشتراک میگذارند و اطلاعات ترکیبی منجر به پیکربندی خوشه بهینه میشود.
- یادگیری ماشین: الگوریتمهای هوش ازدحامی مبتنی بر هوش مصنوعی (AI) در بهینهسازی تنظیم فراپارامتر محبوب هستند. این الگوریتم بهترین پیکربندی ممکن را برای آموزش کارآمد و نتایج عالی پیدا میکند. بسیاری از عاملها(Agents) پیکربندیهای مختلف را امتحان میکنند و مدل را برای انتخاب بهترین مورد تأیید میکنند. بینایی کامپیوتر همچنین از BCO برای انتخاب مجموعه ویژگیها استفاده میکند. این مجموعه ویژگیها اطلاعات تصویر را برای استفاده بیشتر در کارهایی مانند طبقهبندی و شناسایی نشان میدهد. مجموعه ویژگیهای بهینه بهترین نتایج را در شرایط مختلف مانند مقیاس، نور و نویز متفاوت ارائه میدهد.