هوش ازدحامی

**هوش ازدحامی یا هوش جمعی (به انگلیسی: Swarm Intelligence) به رفتار جمعی سامانه‌های غیرمتمرکز و خودسازمان‌یافته گفته می‌شود که به دو شکل طبیعی و مصنوعی وجود دارد و به بررسی رفتارهای گروهی و هوش جمعی موجودات مختلف می‌پردازد. این مفهوم در حوزهٔ هوش مصنوعی مورد استفاده قرار گرفته است. اصطلاح هوش ازدحامی نخستین‌بار در سال ۱۹۸۹ توسط جرارد بنی و جینگ وانگ، در زمینهٔ سامانه‌های رباتیک سلولی مطرح شد. رباتیک گروهی نیز یکی از کاربردهای این اصول در مجموعه‌ای از ربات‌های ارزان‌قیمت است.**

**برای درک بهتر این مفهوم، فرض کنید شما و گروهی از دوستانتان در جست‌وجوی گنج هستید. هر عضو گروه مجهز به یک فلزیاب و بی‌سیم است و می‌تواند اطلاعات مربوط به موقعیت و شرایط خود را به دیگران منتقل کند. بنابراین، شما متوجه می‌شوید چه کسی به گنج نزدیک‌تر است و می‌توانید در آن جهت حرکت کنید. در نتیجه، شانس رسیدن به گنج افزایش می‌یابد و فرآیند کشف آن سریع‌تر از حالتی انجام می‌شود که شما به‌تنهایی به دنبال آن باشید. این مثال ساده‌ای از رفتار جمعی یا Swarm Behavior است که افراد برای دستیابی به یک هدف مشترک همکاری می‌کنند؛ حتی زمانی که کنش‌های آن‌ها مستقل از یکدیگر است.**

**Swarm را می‌توان مجموعه‌ای سازمان‌یافته از عامل‌ها (Agents) یا موجوداتی دانست که با یکدیگر همکاری دارند. در کاربردهای محاسباتی هوش ازدحامی، از رفتار موجوداتی مانند مورچه‌ها، زنبورها، موریانه‌ها، ماهی‌ها و پرندگان یا حتی از حرکت قطرات آب در رودخانه الگوبرداری می‌شود. هر یک از این موجودات به‌طور جداگانه رفتاری ساده دارند، اما نتیجهٔ رفتار جمعی آن‌ها پیچیده و هوشمندانه است. برای مثال، در کلونی مورچه‌ها هر مورچه وظیفه‌ای ساده بر عهده دارد؛ اما رفتار گروهی آن‌ها موجب ساخت لانه، محافظت از ملکه و نوزادان، نظافت لانه، یافتن بهترین منابع غذایی و بهینه‌سازی راهبردهای دفاعی می‌شود.**

**رفتار کلی یک Swarm به‌صورت غیرخطی از ترکیب رفتار تک‌تک اعضا شکل می‌گیرد. به بیان دیگر، میان رفتار فردی و رفتار جمعی یک اجتماع، رابطه‌ای پیچیده برقرار است. رفتار گروهی تنها تابع عملکرد فردی نیست، بلکه به چگونگی تعامل (Interaction) میان افراد نیز بستگی دارد. این تعامل، موجب افزایش تجربه و آگاهی جمع، و در نتیجه، پیشرفت اجتماع می‌شود. همچنین ساختار اجتماعی Swarm، شبکه‌ای از کانال‌های ارتباطی میان اعضا ایجاد می‌کند که از طریق آن می‌توانند تجربه‌های شخصی خود را مبادله کنند.**

**مدل‌سازی محاسباتی Swarmها، کاربردهای گسترده و امیدبخشی به‌ویژه در زمینهٔ بهینه‌سازی (Optimization) به همراه داشته است. تاکنون الگوریتم‌های متنوعی براساس این رفتارها ارائه شده است که از جملهٔ مشهورترین آن‌ها می‌توان به الگوریتم کلونی مورچه‌ها (Ant Colony) و الگوریتم دسته‌پرندگان (Bird Flocks) اشاره کرد. اگرچه هوش ازدحامی دانشی نوین به شمار می‌رود، امروزه کاربردهای آن در حال گسترش است و می‌تواند در آینده نقش پررنگ و ارزنده‌ای در حوزه‌های مختلف علم و فناوری داشته باشد.**است.

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

در این فرایند یک حلقهٔ بازخورد مثبت شکل می‌گیرد؛ مسیرهای کوتاه‌تر به‌دلیل زمان رفت‌وبرگشت کمتر، بیشتر مورچه‌ها را در بازهٔ زمانی یکسان از خود عبور می‌دهند. در نتیجه، فرومون بیشتری روی این مسیرها انباشته می‌شود و به‌تدریج مسیرهای بهینه تقویت و مشخص می‌گردند. با این حال، انتخاب مسیر، کاملاً قطعی نیست و همواره به‌صورت احتمالاتی انجام می‌شود؛ بنابراین، امکان اکتشاف مسیرهای بهتر و بهینه‌تر همچنان وجود دارد.

روش ACO یک فرا ابتکاری (Meta-Heuristic) مؤثر برای یافتن راه‌حل‌های تقریبی در مسائل بهینه‌سازی ترکیبی (Combinatorial Optimization) به‌شمار می‌رود. در این روش، مورچه‌های مصنوعی با حرکت روی گراف مسئله و بر جای گذاشتن نشانه‌ها (مشابه ترشح فرومون در محیط واقعی)، به مورچه‌های مصنوعی بعدی کمک می‌کنند تا راه‌حل‌های مناسب‌تر و بهینه‌تری را کشف کنند.

### بهینه‌سازی گروهی ذره
روش بهینه‌سازی ازدحام ذرات (Particle swarm optimization) یک الگوریتم جست‌وجوی اجتماعی است که از روی رفتار اجتماعی دسته‌های پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آن‌ها و تغییر شکل بهینهٔ دسته به کار گرفته شد. در PSO, particleها در فضای جست‌وجو جاری می‌شوند. تغییر مکان particleها در فضای جست‌وجو تحت تأثیر تجربه و دانایی خودشان و همسایگان‌شان است؛ بنابراین موقعیت دیگر particleهای Swarm روی چگونگی جست‌وجوی یک particle اثر می‌گذارد. نتیجهٔ مدل‌سازی این رفتار اجتماعی فرایند جست‌وجویی است که particleها به سمت ناحیه‌های موفق میل می‌کنند. Particleها در Swarm از یکدیگر می‌آموزند، و بر مبنای دانایی به دست آمده به سمت بهترین همسایگان خود می‌روند.
Particle swarm Optimization Algorithm
اساس کار PSO بر این اصل استوار است که در هر لحظه هر particle مکان خود را در فضای جست‌وجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگی‌اش وجود دارد، تنظیم می‌کند.
فرض کنید می‌خواهیم زوج مرتب [x,y] را طوری به دست آوریم که تابع F(x,y)=x2+y۲، مینیمم شود. ابتدا نقطه‌هایی را به صورت تصادفی در فضای جست‌وجو، روی صفحهٔ x-y انتخاب می‌کنیم. فرض کنید این Swarm را به ۳ همسایگی تقسیم کنیم که در هر همسایگی نقطه‌های موجود با یکدیگر تعامل دارند. در هر همسایگی هر یک از نقطه‌ها به سمت بهترین نقطه در آن همسایگی و بهترین مکانی که آن نقطه تاکنون در آن قرار داشته است، حرکت می‌کند. برای حل یک مسئله چند متغیر بهینه‌سازی می‌توان از چند Swarm استفاده کرد که هر یک از Swarmها کار ویژه‌ای را انجام می‌دهند. این همان ایده‌ای است که Ant colony از آن ریشه می‌گیرد.
روش PSO یک الگوریتم روش جست‌وجوی سراسری (global search algorithm) است که با بهره‌گیری از آن می‌توان با مسئله‌هایی که پاسخ آن‌ها یک نقطه یا سطح در فضای n بعدی می‌باشد برخورد نمود. در این چنین فضایی، فرضیه‌هایی مطرح می‌شود و یک سرعت آغازین به آن‌ها اختصاص داده می‌شود. همچنین کانال‌های ارتباطی بین ذره‌ها در نظر گرفته می‌شود. سپس این ذره‌ها در فضای پاسخ حرکت می‌کنند، و نتیجه‌های حاصل از آن بر مبنای یک «ملاک شایستگی» پس از هر بازهٔ زمانی محاسبه می‌شود. با گذشت زمان، ذره‌ها به سمت ذره‌هایی که دارای سنجه شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب می‌گیرند. مزیت اصلی این روش بر راهبردهای بهینه‌سازی دیگر، این است که شمار فراوان ذره‌های ازدحام‌کننده، سبب نرمش‌پذیری و انعطاف روش در برابر مشکل پاسخ بهینه محلی (local optimum) می‌گردد.

### سامانه ایمنی ساختگی
این روش (به انگلیسی: Artificial Immune System) از سامانه ایمنی پرهامی (طبیعی) برگرفته شده و با مدل کردن برخی یافته‌های این سامانه می‌کوشد تا از این گونه سامانه‌ها در راستای بهینه‌سازی یا یادگیری دستگاه (Machine Learning) بهره بگیرد.

### الگوریتم‌های بر پایه زنبور
چندین الگوریتم در زمینه الگوبرداری از رفتار گروهی زنبورها در کندو یا بیرون آن به‌ویژه رفتار آن‌ها در خوراک‌جویی (foraging) برای بهینه‌سازی پیوسته (continuous optimization) پیشنهاد شده‌اند.

### الگوریتم چکه آب‌های هوشمند
الگوریتم چکه آب‌های هوشمند برپایه بررسی رفتار گروهی چکه‌های آب در رودخانه‌ها برای بهینه‌سازی پیشنهاد شده است. این الگوریتم با گسیل کردن چکه‌های هوشمند آب بر گراف مسئله (پرسمان)، می‌کوشد راه‌های بهینه‌تر را برای گذر چکه‌های یاد شده هموار گرداند.

## کاربردها
### گیرایی هوش گروهی در فناوری اطلاعات
همگونی‌هایی بین مسئله‌های متفاوت در حوزهٔ فناوری اطلاعات و رفتارهای اجتماعی وجود دارد:
* سامانه‌ای توزیع‌شده از کنشگرهای مستقل و تعامل‌کننده.
* هدف‌ها: بهینه‌سازی کارایی و توان.
* خود تنظیم بودن در روش‌های کنترل و همکاری به شکل نامتمرکز.
* واگذاری کار و اختصاص وظیفه‌ها به شکل توزیع شده.
* تعامل‌های غیرمستقیم.

### گام‌های طراحی یک سامانه
گام‌های طراحی یک سامانه با کاربردهای فناوری اطلاعات بر پایه هوش مصنوعی گروهی فرایندی در سه گام است:
* شناسایی همسانی‌ها: در سامانه‌های IT و طبیعت.
* فهم: مدل‌سازی رایانه‌ای روش گروهی طبیعی به شکل واقع‌گرا.
* مهندسی: ساده‌سازی مدل و تنظیم آن برای کاربردهای IT.

### کاربردهای کنونی و آینده
* مسیریابی (شبکه) در شبکه
* سامانه‌های توزیع‌شدهٔ رایانامه‌ای
* اختصاص منبع‌ها به شکل بهینه
* زمان‌بندی وظیفه‌ها
* بهینه‌سازی ترکیباتی
* رباتیک
** بررسی سیستم‌های لوله‌کشی
** تعمیرات و نگهداری ماهواره‌ها و کشتی‌ها
** روبوت‌های خود سرهم گر

## منابع
* Swarm Intelligence. در دانشنامهٔ ویکی‌پدیای انگلیسی.

## پیوند به بیرون
* منابع و کتب مربوط به هوش گروهی


رده:الگوریتم‌های بهینه‌سازی
رده:رباتیک
رده:روش‌های بهینه‌سازی
رده:سامانه‌های چندعامله
رده:هوش جمعی
رده:هوش مصنوعی