هوش مصنوعي

فصل اول
۱- ۱ تاريخچه هوش مصنوعي
هوش مصنوعی را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشه‌ها و ایده‌های اصلی آن را باید در فلسفه، زبان‌شناسی، ریاضیات، روان‌شناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخه‌ها، فروع، و کاربردهای گونه‌گونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیست‌شناسي و پزشکی، علوم ارتباطات و زمینه‌های بسیار دیگر.

هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند «فکر» کند. اما برای دسته بندی و تعریف ماشینهای متفکر، می‌بایست به تعریف «هوش» پرداخت.
همچنین به تعاریفی برای «آگاهی» و «درک » نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.

با وجودی که برآورده سازی نیازهای صنایع نظامی، مهم‌ترین عامل توسعه و رشد هوش مصنوعی بوده‌است، هم اکنون از فراورده‌های این شاخه از علوم در صنایع پزشکی، رباتیک، پیش بینی وضع هوا، نقشه‌برداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار و دست خط و بازی‌ها و نرم افزارهای رایانه‌ای استفاده می‌شود .

مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول که اقدام به ارائه قوانین و نظریه‌هایی در باب منطق نمودند، مطرح شده بود. در سال ۱۹۴۳، با اختراع رایانه‌های الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند. بنظر می‌رسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.

با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن می‌نگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانه‌های هوشمند در صنایع گوناگون هستیم.

نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده بود.
بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازی‌ها و نیز اثبات قضیه‌های ریاضی با کمک رایانه‌ها بود. در آغاز چنین به نظر می‌آمد که رایانه‌ها قادر خواهند بود چنین اموری را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین آن‌ها به انجام رسانند.

۱- ۲ هوش چیست؟
اما اکثر تعریف‌هایی که در این زمینه ارایه شده‌اند بر پایه یکی از باورهاي زیر قرار می‌گیرند:
– سیستم‌هایی که به طور منطقی فکر می‌کنند.
– سیستم‌هایی که به طور منطقی عمل می‌کنند.
– سیستم‌هایی که مانند انسان فکر می‌کنند.
– سیستم‌هایی که مانند انسان عمل می‌کنند.

– ظرفيت كسب و به كار گيري دانش و مهارت فكر كردن و استنتاج
– توانايي رفتار مناسب در شرايط غير قابل پيش بيني
– توانايي بدست آوردن اهداف پيچيده در محيط پيچيده
– توانايي كار و تطبيق با محيط همراه با منابع و دانش ناكافي

شاید بتوان هوش مصنوعی را این گونه توصیف کرد : هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می‌توان وادار به کارهایی کرد که در حال حاضر انسان‌ها آنها رابهتر انجام می‌دهند.

۱-۳ فلسفۀ هوش مصنوعی
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد . در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقي ميشود. هوش مصنویی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از كامپیوتر و الگوگيری از درک هوش انسانی و نهايتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی ميباشد.

در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسايل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هايی از قبل تعبیه شده بر روی کامپیوتر میباشد. در نتيجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر هنوزكسي قادر به پیاده کردن هوشي نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده است.

۱-۴ مدیریت پیچیدگی
ایجاد و ابداع فنون و تکنیک‌های لازم برای مدیریّت پیچیدگی را باید به عنوان هستۀ بنیادین تلاش‌های علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینه‌های علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوه‌ها و تکنیک‌های هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامه‌نویسی تابعی ، یا شیوه‌های ریاضی قابل حلّ نبوده‌اند.

در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق می‌آییم، و می‌توانیم بر روی بخش‌هایی از مسئله متمرکز شویم که مهم‌تر است. تلاش اصلی، در واقع، ایجاد و دستیابی به لایه‌ها و ترازهای بالاتر و بالاتر تجرید را نشانه می‌رود، تا آنجا که، سر‌انجام برنامه‌های کامپوتری درست در همان سطحی کار خواهند کرد که خود انسان‌ها به کار مشغولند.

به یاری پژوهش‌های گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیموده‌است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کرده‌است.

یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.

برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش می‌دهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می‌دود و یا به روشی برای جابجا شدن، دست می‌یابد، که سازندگانش، برای او، متصور نبوده‌اند.

هر چند اين مثال در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره می‌برند.

آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیه‌سازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.هوش مصنوعی که همواره هدف نهایی دانش رایانه بوده‌است، اکنون در خدمت توسعه علوم رایانه نیز است. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن می‌سازند، پایگاههای داده‌ای پیشرفته، موتورهای جستجو، و بسیاری نرم‌افزارها و ماشینها از نتایج پژوهش‌های هوش مصنوعی بهره می‌برند.

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

آنها با وجودی که مانند انسان نمی‌اندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمی‌کنند. این ماشینها لزوما درکی از احساسات ندارند. هم اکنون از این سیستم‌ها در تولید عامل‌ها در نرم افزارهای رایانه‌ای، بهره گیری می‌شود. عامل تنها مشاهده کرده و سپس عمل می‌کند.

۱-۵ عامل‌های هوشمند

عامل‌ها قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خود می باشند. قوانین و چگونگی فکر کردن هر عامل در راستای دستیابی به هدفش، تعریف می‌شود. این سیستم‌ها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام می‌دهند. پس عاقلانه رفتار می‌کنند، هر چند الزاما مانند انسان فکر نمی‌کنند.

۱-۶ سیستم‌های خبره

سیستم‌های خبره زمینه‌ای پرکاربرد در هوش مصنوعی و مهندسی دانش ا‌ست که با توجّه به نیاز روز افزون جوامع بر اتخاذ راه ‌حل‌ها و تصمیمات سریع در مواردی که دانش‌های پیچیده و چندگانهٔ انسانی مورد نیاز است، بر اهمیت نقش آنها افزوده هم می‌شود.

سیستم‌های خبره به حل مسائلی می‌پردازند که به طور معمول نیازمند تخصّص‌های کاردانان و متخصّصان انسانی ا‌ست. به منظور توانایی بر حل مسائل در چنین سطحی (ترازی)، دسترسی هرچه بیشتر اینگونه سامانه‌ها به دانش موجود در آن زمينه خاص ضروري ميگردد.

۱-۷ رابطه هوش جمعي با هوش مصنوعي

يكي از شاخه هاي هوش مصنوعی به نام”هوش جمعي” هم اکنون برای حل بسیاری از مسائل بهنیه سازی بکار می رود. هوش جمعی ، مبتنی بر رفتارهای جمعی در سامانه‌های نامتمرکز و خودسامانده بنیان شده است. این سامانه‌ها معمولاً از جمعیتی از کنشگران ساده تشکیل شده است که بطور محلی با یکدیگر و با محیط خود در تعامل هستند.

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

فصل دوم

۲- ۱ تعریف هوش جمعی
اصطلاح هوش جمعي ، در سال ۱۹۸۹ توسط گرادوبني و ژينگوانگ، به همراه رباتيك سلولي معرفي گرديد.هوش جمعی ویژگی از سیستم است که بر اساس آن رفتار گروهی عامل های غیر پیچیده که به صورت محلی با محیط شان درارتباط هستند منجر به وجود آمدن الگو های منسجم، یکپارچه و کارا میشود . هوش جمعی زمینه ای را فراهم می آورد که در آن امکان کاوش حل مسئله به صورت گروهی ( توزیع شده) بدون کنترل متمرکز کننده یا تهیه مدل کلی ممکن است .

هوش جمعی، هوش مصنوعی است که بر پایه رفتار گروهی سیستم های غیرمتمرکز و خودسازمانده بنا شده است. سیستم های هوش جمعی، معمولا از مجموعه ای از عامل های ساده که به صورت محلی با یکدیگر و به محیط شان در تعامل هستند تشکیل شده است .

عوامل از قوانین بسیار ساده ای پیروی میکنند و با وجود اینکه ساختار کنترل متمرکزی برای تعیین رفتار هر عامل مستقل وجود ندارد، تعامل محلی بین این عامل ها منجر به به وجود آمدن رفتار کلی پیچیده ای می شود.هوش جمعی متدی است

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

در روشهايي كه در گروه هوش جمعي جاي مي گيرند ، ارتباط مستقيم يا غير مستقيم بين جوابهاي مختلف الگوريتم وجود دارد. در واقع، در اين روشها ، جوابها كه موجوداتي كم هوش وساده هستند، براي پيدا شدن ويا تبديل شدن به جواب بهينه ، همكاري مي كنند . اين روشها از رفتارهاي جمعي حيوانات و موجودات زنده در طبيعت الهام گرفته شده اند .

بعضی از محصولات مصنوعی ساخت انسان نیز در حوزه هوش جمعی قرار میگیرند. به طور خاص بعضی از سیستم های چند رباته و همچنین برنامه کامپیوتری خاص که برای انجام بهینه سازی و مسائل آنالیز داده نوشته شده اند جزء این دسته قرار میگیرند .

فرض کنید شما و گروهی از دوستانتان به دنبال گنج میروید هر یک از اعضا گروه یک فلز یاب و یک بیسیم دارد که میتواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد. بنابراین شما میدانید آیا همسایگانتان از شما به گنج نزدیک ترند یا نه؟ پس اگر همسایه ای به گنج نزدیک تر بود شما می توانید به طرف او حرکت کنید. با چنین کاری شانس شما برای رسیدن به گنج بیشتر می شود و همچنین گنج زود تر از زمانی که شما تنها باشید پیدا می شود .

این مثال ساده از رفتار جمعی است که افراد برای رسیدن به یک هدف نهایی همکاری میکنند. این روش موثرتر از زمانی است که افراد جداگانه عمل می کنند .

هوش جمعی را میتوان به صورت مجموعه ای سازمان یافته از موجوداتی تعریف کرد که با یکدیگر همکاری میکنند .در کاربردهای محاسباتی هوش جمعي از موجوداتی مانند مورچه ها، زنبور ها، موریانه ها، دسته های ماهیان و دسته پرندگان الگو برداری می شود .در این نوع اجتماعات هر یک از موجودات ساختار نسبتا ساده ای دارند ولی رفتار اجتماعی آنها بینهایت پیچیده است .

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

ساختار اجتماعی هوش جمعی بین افراد مجموعه کانال های ارتباطی ایجاد میکند که طی آن افراد میتوانند به تبادل تجربه های شخصی بپردازند .
مدل سازی محاسباتی هوش جمعی کاربرد های موفق و بسیاری داشته است. هوش جمعی تبادل جزئی تعداد زیادی عوامل ساده را برای حصول یک هدف کلی است .

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

اغلب اوقات رفتار هر یک از اجزای گروه به شکل عبارت های اجتماعی بیان میشود و هر یک از اجزا دارای رفتار اتفاقی یا تصادفی است که وابسته به درک محلی او از همسایگیهایش است . سيستم هاي زيستي هوشمند روي زمين همان سيستم هاي بيولوژيك مي باشند. اينگونه سيستم ها به كمك فرآيند هاي تكاملي طراحي شده اند ،

معمولا توسط يك دستگاه كنترل مي شوند و به صورت گروهي يا گله اي زندگي مي كنند. بر خلاف انسان ، بسياري از اين سيستم هاي هوشمند از جانداران ساده اي درست شده اند كه گويا از منطق ، رياضيات ، برنامه ريزي، مدل سازي پيرامون ، نمي توانند بهره بگيرند و گاهي داراي حافظه نيز نمي باشند . با اين همه اين سيستم ها با اين كه داراي سادگي مي باشند ،

كارهاي محاسباتي و پردازش هاي پيچيده اطلاعاتي را مي توانند انجام بدهند . درك اينگونه سيستم ها و به كارگيري مكانيزم هايي كه در آنها وجود دارند به ما در حل مسائل پيچيده وطراحي سيستم هاي هوشمند تر كمك فراواني مي نمايند .

هوش جمعي يك روش محاسباتي براي حل مسائل مي باشد كه بر پايه رفتار سيستم هاي طبيعي كه شامل جانداران بسياري كنار هم مي باشند كار مي كند . اين روش حل مساله مي كوشد كه مساله ها را به روش گسترده حل نمايد با اين ويژگي كه ميان جانداران اين سيستم ، دو سويگي مستقيم يا غير مستقيم وجود داشته باشد . از كنش و واكنش ميان اين جانداران و همينگونه با پيرامون خودشان ، رفتاري پديد مي آيد كه كار خواسته شده را انجام مي دهد .

۲-۲ خصوصیات هوش جمعی:
۲-۲-۱- عوامل ساده اند
۲-۲-۲- هر یک از عوامل نسبتا مشابه اند. همه آنها یکسان هستند و یا متعلق به تعداد گروه های کمی هستند.

۲-۲-۳- عوامل به صورت غیرمستقیم با هم ارتباط برقرار می کنند.
۲-۲-۴- رفتار کلی پیچیده سیستم ناشی از برهم کنش اجزا با یکدیگر و با محیط شان است به همین دلیل رفتار گروه خود سازمانده میشود.
۲-۲-۵- این رفتار ها پایدارند؛
۲-۲-۶- محکم بودن در مقابل شکست یا بدرفتاری یک جزء؛
۲-۲-۷- تک تک عوامل در حصول نتیجه کلی بی تاثیرند؛

۲-۲-۸- انعطاف پذیری در تغییرات سریع در محیط دینامیک و تقارن ذاتی یا عملیاتی توزیع شده؛
۲-۲-۹- بر هم کنش بین اجزا بر اساس قوانین رفتاری ساده ای است که تنها از اطلاعات محلی که به اجزا به طور مستقیم یا به وسیله محیط مبادله می کنند استفاده می کنند؛

به عنوان مثال : تميزكاري لانه مورجه ها
مورچه ها آشغالها و يا غذاهاي پراكنده در سطح لانه را جمع آوري و در يك يا چند جا كپه مي كنند . اين كار به اين ترتيب عملي مي شود .

– هر مورچه شروع به گردش به صورت دلخواه و بي هدف در سطح لانه مي كند .
– اگر مورچه به يك تكه آشغال برخورد كرد آن را بر مي دارد .
– اگر مورچه به يك تكه آشغال ديگر رسيد تكه قبلي را در كنار آن قرار مي دهد .
– و باز به گردش خود ادامه مي دهد .

– بعد از مدتي مشاهده مي شود كه آشغالها در گوشه كنار لانه كپه شده اند .

۲-۳ اصول هوش جمعي
چهار اصل هوش جمعی را کنترل می کنند این اصول عبارتند از:
۲-۳-۱- فیدبک مثبت، راه حل های خوب موجود در شبکه را تقویت می کند.
۲-۳-۲- فیدبک منفی، راه حل های قدیمی و نامناسب را حذف می کند.

۲-۳-۳- تصادفی بودن، بنابر این اصل می توان راه حل ها را بدون توجه به کیفیت مشاهده شده تست کرد که در نتیجه منجر به راه حل های مبتکرانه و غیر معمولی می شود.
۲-۳-۴- بر هم کنش های چندگانه، کلیدی برای ساختن بهترین راه حل ها

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

۲-۴-۱- طبیعی در مقابل مصنوعی:
یکی از دسته بندی های رایج هوش جمعی تقسیم به دو دسته با توجه به نوع سیستم مورد بررسی است. بنابراین در این رابطه هوش جمعی طبیعی مطرح می شود که در آن سیستم های بیولوژیکی مورد بررسی قرار می گیرند و هوش جمعی مصنوعی که در آن محصولات مصنوعی ساخت دست بشر مطرح میشود.

۲-۴-۲- علمی در مقابل مهندسی:
نوع دیگر دسته بندی که میتوان گفت دسته بندی مفید تری از تحقیقان هوش مصنوعی است را می توان بر مبنای اهدافی که دنبال می شود قرار داد. می توان دو مسیر علمی و مهندسی را برای این کار مشخص کرد. هدف مسیر علمی مدل کردن سیستم های هوش مصنوعی و برگزیدن و درک کردن مکانیزم هایی است که به دلیل بر هم کنش فرد به فرد و فرد به محیط به سیستم به عنوان یک مجموعه کلی اجازه می دهد به طور هماهنگ کار کند.

از سوی دیگر هدف مسیر مهندسی به کار گیری از دانسته های توسعه داده شده توسط مسیر علمی برای طراحی سیستم هایی است که بتوانند مسائلی با کاربرد مرتبط را حل کنند.

۲-۵ تعامل دو دسته طبیعی/ مصنوعی و علمی/مهندسی:
دو دسته طبیعی/ مصنوعی و علمی/مهندسی با یکدیگر متعامدند. با وجود اینکه تحقیقات معمول علمی در رابطه باسیستم های طبیعی و کاربردهای معمول مهندسی در رابطه با توسعه سیستم های مهندسی است ولی تعدادی از مطالعات مربوط به هوش گروهی در رابطه با ربات ها برای تایید مدل های ریاضیاتی سیستم های بیولوژیکی انجام شده است.

این مطالعات صرفا دارای ماهیت نظری است و به طور قطع مربوط به مسیر علمی هوش گروهی می شود. از سوی دیگر می توان رفتار فردی در گروه بیولوژیکی را به گونه ای تحت تاثیر یا مورد تغییر قرار داد که رفتاری با سطح گروه جدید به وجود اید که به گونه ای برای حل بعضی عملکرد های مشخص کاربردی است.در این حالت، با وجود اینکه سیستمی که در دست است طبیعی است هدفی که دنبال می شود به طور قطع مربوط به کاربرد های مهندسی است.

فصل سوم

كاربردهاي هوش جمعي
۳-۱ مقدمه اي بر بهينه سازي
بهينه سازي فرايندي است كه براي بهتر كردن چيزي دنبال مي شود . فكر ، ايده ويا طرحي كه توسط يك دانشمند يا يك مهندس مطرح مي شود و در طي روند بهينه سازي بهتر مي شود. در هنگام بهينه سازي شرايط اوليه با روشهاي مختلف مورد بررسي قرار مي گيردو اطلاعات به دست آمده براي بهبود بخشيدن به يك فكريا روش مورد استفاده قرار مي گيرند.بهينه سازي ابزاري رياضي است كه براي يافتن پاسخ بسياري از پرسش ها در خصوص چگونگي راه حل مسائل مختلف ، به كار ميرود.

در بهينه سازي از يافتن بهترين جواب براي يك مساله صحبت به ميان مي آيد. لفظ بهترين به طور ضمني بيان مي كند كه بيش از يك جواب براي مساله مورد نظر وجود دارد كه البته داراي ارزش يكساني نيستند. تعريف بهترين جواب ، به مساله مورد بررسي،

روش حل و همچنين ميزان خطاي مجاز وابسته است.بهينه سازي ، تغيير دادن ورودي ها و خصوصيات يك دستگاه ، فرآيند رياضي ويا آزمايش تجربي است ، به نحوي كه بهترين خروجي يا نتيجه به دست بيايد.تمام مسائل بهينه سازي به صورت كمينه سازي مقدار يك تابع هزينه در نظر گرفته شده اند.

۳-۲ الگوريتم بهينه سازي كلوني مورچه ها
مقدمه
با وجود آنكه فقط ۲ درصد از گونه حشرات داراي زندگي اجتماعي هستند ، اما بيش از ۵۰ درصد توده زيستي حشرات را تشكيل مي دهند. اين ميزان در برخي جاها ، مانند جنگل هاي باراني آمازون به بيش از ۷۵ درصد مي رسد.منظور از زندگي اجتماعي ، تجمع تعداد زيادي از يك گونه خاص در الب يك مجموعه يا كلوني و تعامل آنها با همديگر است.

همه مورچه ها و موريانه ها و همچنين برخي از گونه هاي زنبورها در قالب كلوني زندگي مي كنند. اجتماع حشرات مي توانند مسائلي را با همكاري يكديگر حل و فصل نمايند كه هيچ يك از اعضاي آن اجتماع به تنهايي قادر به حل آنهانمي باشند.

اكثر اين مسائل به صورت مسائل بهينه سازي قابل بيان هستند. به عنوان مثال تلاش حشرات براي يافتن كوتاه ترين مسير در هنگام جستجو براي غذا ، تخصيص مناسب نيروهاي كاري براي انجام كارهاي مختلف ، و همچنين طبقه بندي محل هاي حاوي تخم ها و نوزادان ، از جمله مسائل بهينه سازي هستندكه حشرات اجتماعي با همكاري يكديگر آنها را حل مي كنند .

هر تلاشي كه براي حل يك مساله بهينه سازي مي شود، باعث به وجود آمدن اطلاعاتي در مورد آن مساله مي گردد. به منظور همكاري براي حل يك مساله بهينه سازي ، وجود داشتن مسيري براي انتقال اطلاعات بين اعضاي جامعه ، ضروري است. به اين ترتيب در هر اجتماع از حشرات، نوع خاصي از ارتباط بين حشرات وجود دارد. اين ارتباط در گونه هاي مختلف مي تواند

به صورت مستقيم يا غير مستقيم در ميان حشرات برقرار باشد.به عنوان مثال هنگامي كه يك زنبور عسل يك منبع غذايي جديد پيدا مي كند،با اجراي يك رقص ويژه جهت و فاصله محل منبع غذايي را به ساير زنبورها اطلاع مي دهد . اين يك ارتباط مستقيم است.

به نحوي كه براي آنكه زنبوري از پيام مورد نظر اطلاع يابد،مي بايست رقص زنبور را مستقيما مشاهده و آن را تعبير و تفسير كند. ارتباط و تماس فيزيكي نوع ديگري از ارتباط هاي مستقيم ميان حشرات اجتماعي است.

ارتباط غير مستقيم نياز به مهارت بيشتري دارد. د اين نوع ارتباط حشره مي بايست محيط اطراف را به نحوي تغيير دهد كه ساير هم نوعانش از تغيير محيط آگاه شوند و پيام مورد نظر حشره را دريافت كنند .

الگوريتم بهينه سازي كلوني مورچه ها
الگوريتم بهينه سازي كلوني مورچه ها ، و يا به اختصار الگوريتم مورچه ها ،از رفتار مورچه هاي طبيعي كه در مجموعه هاي بزرگ در كنار هم زندگي مي كنند الهام گرفته شده است. الگوريتم هاي ديگري نيز بر اين اساس ساخته شده اندكه همگي سيستم هاي چند عاملي هستند و عامل هاي مورچه هاي مصنوعي يا به اختصار مورچه هايي هستند كه مشابه با مورچه هاي واقعي رفتار مي كنند .

الگوريتم مورچه ها، يك مثال بارز از هوش جمعي هستند كه در آن عامل هايي كه ابليت چندان بالايي ندارند، در كنار هم و با همكاري يكديگر مي توانند نتايج بسيار خوبي به دست بياورند. اگر تا کنون به پیک نیک رفته باشید بدون شک با مورچه برخورد داشته اید یک مورچه تنها توجه شما را به خود جلب نمی کند بلکه رفتار جمعی مورچه ها که در یک خط قرار گرفته اند و تکه های غذای شما را با خود حمل میکنند نظر شما را به خود جلب کرده است.

مورچه ها حشراتی اجتماعی محسوب می شوند. یک مورچه به تنهایی هوشمند نیست ولی وقتی آنها جزئی از یک کلونی باشند، رفتار گروهی پیچیده ای از برخورد بین هر یک از مورچه ها که هر یک رفتار ساده ای نشان میدهند دیده خواهد شد.مورچه ها يك مجموعه ، خود- ترتيب هستند

و رفتارهاي پيچيده كل مجموعه صرفا ناشي از رفتارهاي ساده اي است كه تك تك مورجه ها به صورت خود-ترتيب انجام مي دهند.اين خواص جمعي و فردي به نحوي هستند كه بر روي مسائل مختلف كارايي مناسبي دارند. به خصوص، هنگامي كه در يك بازه زماني خاص، برخي از مورچه ها عملكرد مناسبي نداشته باشند ، با اين وجود عملكرد كلي مجموعه مناسب خواهد بود.

همانطور كه گفتيم ، این پدیده مشخصه تمام هوشمند های گروهی مانند زنبور عسل، پرندگان، ماهی ها و کرم پروانه است که نوع دیگری از هوش گروهی محسوب می شود که در آن چیزی که ایجاد می شود بزرگتر از مجموع اجزاء آن است.

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

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

در نهایت وقتی بقیه مورچه ها به لانه بر می گردند بر اساس مقدار فرومونی که بو می کنند تصمیم می گیرند از کدام مسیر بروند. هر چه سطح فرومون بیشتر باشد احتمال اینکه مورچه از آن مسیر برود بیشتر است. هر چه تعداد مورچه هایی که کوتاه ترین مسیر را میدانند بیشتر باشد سطح فرومون افزایش می یابد تا هنگامی که تمام مورچه ها از همان مسیر حرکت کنند .

رفتار طبیعی این مورچه ها به شکل الگوریتم مورچه برنامه ریزی شده است که از آن برای پیدا کردن کوتاه ترین مسیر در گراف ها استفاده می کنیم. چون بیشتر مسائل را میتوان به شکل گراف در اورد، پیدا کردن کوتاه ترین مسیر در گراف معمولا ساده ترین و سریع ترین راه حل برای مسئله است. هر مورچه توسط یک عامل در برنامه نشان داده می شود که به تنهایی دارای تواناییهای کمی مانند حس کردن، پخش کردن فرمون و حافظه است. بنابراین به دلیل حافظه هر عامل میتواند مسیرش را در گراف به عقب دنبال کند تا طول مسیر را مشخص کند

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

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

مشکل ظریف دیگری نیز وجود دارد که هنگامی پیش می اید که عامل ها قبل از پیدا کردن کوتاه ترین مسیر روی مسیر های نیمه بهینه (Sub Optimum) همگرا شوند. در مثال مورچه ها ممکن است منبع غذای دیگر وجود داشته باشد که نزدیک تر به لانه باشد ولی قبل از اینکه کلونی روی منبع غذای دیگری همگرا شود پیدا نشده باشد.

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

خواص عمومي كلوني مورچه ها
– اگر چه هر كدام از مورچه ها به حد كافي براي يافتن يك راه حل براي مساله ، پيچيده هستند و احتمالا راه حل خوبي نيز پيدا خواهند نمود ، اما راه حل هايي كه داراي كيفيت مطلوب باشند ، صرفا از طريق همكاري و تعامل بين مورچه ها قابل دسترسي است.

– هر مورجه صرفا از اطلاعات فردي خود ويا از اطلاعات محلي راس يا گرهي كه در آن قرار دارد بهره مي برد.
– مورچه ها به صورت غير مستقيم با يكديگر در ارتباط هستند . اين ارتباط از طريق تغييراتي است كه آنها در مقادير فرومون مسير هاي مختلف ايجاد مي كنند.

– يك مورچه ، به دنبال راه حلي مي گردد كه كمترين هذينه را در بر داشته باشد.
– مورچه ي kام داراي يك حافظه شخصي به نام M است كه مسيري را كه مورچه طي كرده است در آن ذخيره مي شود. حافظه مي تواند براي (۱) ايجاد راه حل هاي مجاز و شدني ، (۲) ارزيابي راه حل هاي يافته شده و (۳) بازگشت مسير به صورت معكوس، استفاده مي شود.

– مورچه kام از يك حالت اوليه S0 شروع به كار مي كند.
– مورچه ها توان ديدن و شنيدن را ندارند و فقط از حس بويايي استفاده مي كنند .
– مورچه ها صدا نيز ندارند .

الگوريتم مورچه براي مسئله فروشنده دوره گرد: (TSP)
مسئله فروشنده داره گرد احتمالا معروف ترین مسئله کامل NP است. فروشنده دوره گرد باید از شهر ها عبور کند تا فروش داشته باشد ولی برای کم کردن هزینه های سفر مرد فروشنده تنها می تواند از هر شهر یک بار عبور کند.

این مسئله به عنوان مدار همیلتون نیز شناخته می شود. فروشنده دوره گرد همچنین می خواهد در زمان صرفه جویی کند بنابراین باید کوتاه ترین مسیر پیدا شود که تنها یک بار از هر شهر بگذرد که این حالت مدار بهینه همیلتونین را به وجود میاورد.

الگوريتم مورچه ها ، مساله فروشنده دوره گرد را به صورت مرحله به مرحله و تكراري حل مي كند.در هر تكرار مورچه ها از هر شهر به شهرهاي ملاقات نشده حركت مي كنند تا آنكه همه ي شهرها را پشت سر بگذارند.مورچه ها با توجه به يك قانون احتمالاتي معين ، مقصد بعدي را براي حركتشان تعيين مي كنند. براي اين كار از اطلاعات فروموني و اطلاعات ذهني بهره مي گيرند.

این مسئله را میتوان به سادگی در یک گراف نشان داد که در آن گره ها شهر ها هستند و لبه ها (Edges) راه ها و مسیر های بین شهر ها هستند . چون میتوان این مسئله را به شکل گراف نشان داد میتوان از عامل های مورچه برای حل آن استفاده کرد. عامل ها برای مسئله TSP به نحو نسبتا متفاوتی از مسئله پیدا کردن کوتاه ترین مسیر عمل میکند.

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

زیرا عامل ارزش مسیری را که طی می کند را تا هنگام به پایان رساندن آن نمی داند و نمی خواهد که عامل های دیگر را منحرف کند. وقتی که یک عامل یک مسیر را تمام می کند در همام مسیر به عقب بر می گردد و گام ها یا طول لبه ها را بر مبنای اینکه طول مسیر چگونه محاسبه می شود حساب می کند. پس وقتی اندازه مسیر مشخص شد فرومون به مسیر اضافه می شود،

هر چه مسیر کوتاه تر باشد سطح فرومون بالاتر می رود. این نحو استفاده از سطح فرومون متغییر برای جلوگیری از همگرایی زود هنگام به عنوان سیستم مورچه مینیمم ماکزیمم (MIN-MAX) شناخته می شود.در حین اجرای الگوریتم عامل ها بر روی مسیری که به عنوان کوتاه ترین مسیر تشخیص داده شده همگرا میشوند. با این وجود تضمینی وجود ندارد

که اولین مسیری که عامل ها روی آن همگرا می شوند کوتاه ترین مسیر باشد. بنابراین ذخیره کردن مسیر های فرعی اهمیت زیادی دارد. در حین همگرایی جمعیت عامل ها هنوز این شانس را دارند که مسیر های دیگر را بررسی کنند و ممکن است یک عامل منحرف شده و سرگردان مسیر کوتاه تری را پیدا کند و بنابراین سطح فرومون آن مسیر را به گونه ای تنظیم کند که عاملهای بیشتر و بیشتری را جذب کند.

این الگوریتم بسیار پایدار است زیرا در انجام عملیات از عامل های Rouge کمی استفاده می کند. در حقیقت عامل های Rouge آنهایی هستند که معمولا مسیر فرعی بهینه را پیدا می کنند. الگوریتم نیاز به زمان زیادی برای محاسبات دارد تا روی یک مسیر بهینه همگرا شود که این حالت برای تمام الگوریتم هایی که برای مسئله TSP امتحان شده و پاسخ داده اند وجود دارد.

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

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

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

کاربردهای الگوريتم های مورچه:
يكي از كاربردهاي اوليه الگوريتم مورچه ها ، حل مساله ي فروشنده ي دوره گرداست. در همه الگوريتم هاي مورچه ، فرض بر اين است كه مورچه ها بر روي يك گراف در حال حركت هستند.لذا استفاده از مساله فروشنده دوره گرد،براي به تصوير كشيدن قابليت ها وويژگي هاي الگوريتم هاي مورچه ، يك انتخاب كاملا منطقي است .

الگوريتم مرچه ها ، براي مساله فروشنده دوره گردجواب هاي مناسبي به دست آورده است. يكي ديگر از مسائل قابل حل با استفاده از الگوريتم مورجه ها ، مساله تخصيص درجه دو يا QAP است ، كه از مسائل مهم در زمينه بهينه سازي تركيبي و تحقيق در عمليات است .

اين مساله از دسته ي مسائل مكان يابي تاسيسات است كه كاربردهاي فراواني در مهندسي صنايع ، مديريت شهري، شهرسازي ، مديريت منابع و مديريت محيط زيست دارند. مساله ديگري كه ميتوان با الگوريتم مورچه آن را حل كرد ، مساله مسير يابي خودرويا VPR مي باشد كه شباهت هايي به مسالهTSP دارد.

– مسیر یابی خودرو:
مسیر یابی خودرو شبیه مسئله TSP است که در آن هر کارمند برای سرویس دهی به یک مشتری باید به سمت او برود. برای حداقل کردن هزینه و زمان لازم است که از مدار همیلتون (Hamiltonian) بهینه ای مشابه با مسئله TSP استفاده کنیم. یک مسائل کاربردی از این موضوع رساندن روزنامه ها است که در آن ماشین های حمل روزنامه نیاز به مسیری دارند

که بتوانند هر یک از مشتری ها را ملاقات کنند و به هرکدام یک روزنامه برسانند و سپس در انتهای مسیرشان به محل چاپ روزنامه برسند. همچنین الگوریتم مورچه دارای پتانسیل به کارگیری در حوزه شبکه برای حل مسائله مسیریابی است. بسته های داده که در شبکه حرکت می کنند را می توان در گرافی که گره ها در آن نماینده گره های شبکه و لبه ها (Edges) گراف بیان گر ارتباط های فیزیکی شبکه هستند نشان داد.

با وجود اینکه این مسئله شبیه به مسئله TSP است ولی تفاوت های مهمی وجود دارد یکی از این تفاوت ها این است که به جای اینکه هر یک از مورچه ها کل شبکه را طی کنند به هر مورچه نقطه شروع و نقطه مقصد داده می شود. همچنین لبه ها نمی توانند برای هزینه هایشان مقادیر استاتیک داشته باشند زیرا لبه ها ممکن است در هر یک از زمان ها ترافیک اضافه ای داشته باشند.

– الگوریتم S-ANTNET
در S-ANTNET هر مورچه برای پیدا کردن راهی با حداقل هزینه بین هر زوج گره از شبکه جستجو میکند. برای شبیه سازی ترافیک به شکل واقعی، مورچه ها با استفاده از “صف های لینک” مشابهی که برای داده استفاده میشوند منتشر می شوند چون هر مورچه دارای نقطه آغاز و مقصد است S-ANNET تضمین می کند

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

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

که شبکه مجددا از اول نقشه کشی شود. توانایی تبدیل مسئله به گراف یک ابزار قوی برای توسعه راه حل های مبتنی بر الگوریتم مورچه است ولی این تنها راه حل برای حل آنها نیست. ما در رابطه با اینکه چگونه مورچه ها به طور ذاتی می توانند کوتاه ترین مسیر بین دو نقطه را پیدا کنند صحبت کردیم. تا اینجا تنها از این ویژگی در حوزه گراف ها استفاده کردیم ولی حل کردن مسئله برای پیدا کردن کوتاه ترین مسیر کلیدی برای حل مسئله برای مسیر بهینه در هزار تو های چند مسیره است.

– هزار توی چند مسیره:
یک هزار توی چند مسیره را می توان به عنوان یک گراف خاص در نظر گرفت که در آن مقصد همیشه یکسان است ولی می توان تعداد نقطه های شروع زیادی داشت.این هزار تو های چند مسیره را می توان روی طراحی خط اسمبلی اعمال کرد که در آن هدف همیشه یک محصول کاملا اسمبل شده است و بنابراین مورچه ها می توانند با تصمیم گیری در رابطه با این که چه چیزی ممکن است در موازات اتفاق بیفتد و لازم است چه چیزی را به شکل متوالی کنترل کرد، اسمبل را بهینه کنند.

همچنین هزار تو های چند مسیره را میتوان به بازی ها و هوش مصنوعی که در بازی ها دیده می شود اعمال کرد. عامل های مورچه میتوانند کوتاه ترین مسیر را برای رسیدن به پایگاه دشمن را پیدا کنند یا کوتاه ترین مسیر در مسابقات اتومبیل رانی را مشخص کنند. به طور قطع، آنها می توانند برای حل هزار تو های چند مسیره واقعی هم به کار برده شوند، با این حال این یک کاربرد هوش گروهی است و هنوز نیاز به بررسی دارد.

– مسیر یابی در شبكه هاي مخابراتي
استفاده از هوش گروهی در شبکه های مخابراتی نیز به شکل مسیر یابی بر پایه مورچه مورد تحقیق قرار گرفته است. این روش به صورت مستقل توسط دوریگو و گروهش و هولت پکارد در اواسط دهه ۱۹۹۰ مطرح شد و پس از آن چندین تفسیر در آن صورت گرفت.

در حالت کلی در این روش از یک جدول مسیر یابی احتمالی همراه با تشویق و تقویت مسیر هایی که به صورت موفقیت امیزی توسط هر مورچه طی شده عمل می کند.

تقویت مسیر ها در جهت جلوسو (Forward) و عقب سو (Backward) در هر دو حالت به طور همزمان مورد بررسی قرار گرفته است. تقویت عقب سو نیازمند شبکه ای متقارن است و دو جهت را با یکدیگر تزویج می کند. تقویت جلوسو قبل از مشخص شدن خروجی مسیر را تقویت می کند. این حالت مانند این است که شما قبل از اینکه بدانید فیلم خوب است

یا نه برای سینما پول پرداخت کرده اید. به دلیل اینکه سیستم تصادفی عمل می کند و بنابراین تکرار پذیری ندارد مانع های بزرگی برای پیاده سازی تجاری وجود دارد. رسانه موبایل و تکنولوژی های جدید دارای این پتانسیل هستند که آستانه عملیات گروهی را به علت هوش گروهی تغییر دهند.

۳-۳ الگوريتم بهينه سازي زنبور
مقدمه
وپروردگارت به زنبور عسل وحي كرد: در كوهها و درختها و از داربستهاي انگور براي خودت لانه بساز.پس از تمام ميوه هاي خدا داده تناول كن و راههاي پروردگارت كه همواره پديدار فرموده بپيما. به واقع در اين پديده براي كساني كه به تفكر قيام كرده اند نشانه هايي است.(سوره نحل آيات ۶۸ و ۶۹)

الگوريتم زنبور شامل گروهي مبتني بر الگوريتم جستجو است كه اولين بار در سال ۲۰۰۵ توسعه يافت؛ اين الگوريتم شبيه ساز ي رفتار جستجوي غذاي گروههاي زنبور عسل است، در نسخه ابتدايي اين الگوريتم ، الگوريتم نوعي از جستجوي محلي انجام مي دهد كه با جستجوي تصادفي تركيب شده و مي تواند براي بهينه سازي تركيبي يا بهينه سازي تابعي به كار رود.

از زمان شروع زندگي زنبورها يا بهتر است بگوييم از زمان شروع زندگي حشرات اجتماعي ، احتمال رخدادي است كه در آن زنبور به پرواز در طول همان مسير بدون گرفتن همراه ادامه دهد ، احتمال بسيار كمي است . زنبورها تا محل رقص پرواز مي كنند و با احتمالي برابر مي رقصند . اين نوع ارتباط بين زنبورها منجر به ساخته شدن فاكتوري به نام هوش جمعي شده است .

جستجوي غذا در طبيعت
يك كلوني زنبور عسل مي تواند در مسافت هاي زياد و نيز در جهت هاي گوناگون پخش شود تا از منابع غذايي بهره برداري كند.قطعات گلدار با مقادير زيادي نكتار و گرده كه با تلاشي كم قابل جمع آوري است ، به وسيله تعدادزيادي زنبور بازديد مي شود؛ به طوري كه قطعاتي از زمين كه گرده يا نكتار كمتري دارد ، تعداد كمتري زنبور جلب مي كند.

پروسه ي جستجوي غذاي يك كلوني به وسيله زنبورهاي ديده بان آغاز مي شود كه براي جستجوي گلزارها ي اميد بخش ( داراي اميد بالا براي وجود نكتار يا گرده ) فرستاده مي شوند.

زنبورهاي ديده بان به صورت تصادفي از گلزاري به گلزار ديگر حركت مي كنند. در طول فصل برداشت محصول (گل دهي) ،كلوني با آماده نگهداشتن تعدادي از جمعيت كلوني به عنوان زنبور ديده بان به جستجوي خود ادامه مي دهند. هنگامي كه جستجوي تمام گلزار ها پايان يافت، هر زنبور ديده بان ، بالاي گلزاري كه اندوخته كيفي مطمئن از نكتار و گرده دارد، رقص خاصي را اجرا مي كند. اين رقص به نام رقص چرخشي ( حركتي مانند قرقره) شناخته مي شود. اطلاعات مربوط به جهت تكه گلزار ( نسبت به كندو) ، فاصله تا گلزار و كيفيت گلزار را به زنبورهاي ديگر انتقال مي دهد. اين اطلاعات زنبورهاي اضافي و پيرو را به سوي گلزار مي فرستد.

بيشتر زنبورهاي پيرو به سوي گلزارهايي مي روند كه اميد بخش تر هستند و اميد بيشتري براي يافتن نكتار و گرده در آنها، وجود دارد .وقتي همه زنبورها به سمت ناحيه مشابه بروند، دوباره به صورت تصادفي و به علت محدودي ، رقصشان در پيرامون گلزار پراكنده مي شوند تا به موجب اين كار سرانجام نه يك گلزار، بلكه بهترين گل هاي موجود درون آن تعيين موقعيت شوند.

الگوريتم زنبور
الگوريتم زنبور هر نقطه را در فضاي پارامتري متشكل از پاسخ هاي ممكن به عنوان منبع غذا تحت بررسي قرار مي دهد . زنبور هاي ديده بان كارگزاران شبيه سازي شده به صورت تصادفي فضاي پاسخ ها را ساده مي كنند و به وسيله تابع شايستگي كيفيت موقعيت هاي بازديد شده را گزارش مي دهند. جوابهاي ساده شده رتبه بندي مي شوند

و ديگر زنبورها نيرو هاي تازه اي هستند كه فضاي پاسخ ها را در پيرامون خود براي يافتن بالاترين رتبه محل ها جستجو مي كنند كه گلزار ناميده مي شود . الگوريتم به صورت گزينشي ، ديگر گلزارها را براي يافتن نقطه بيشينه تابع شايستگي جستجو مي كند.

بهينه سازي كلوني زنبورها
سيستم هاي طبيعي مختلف به ما ياد مي دهند كه ارگانيسم هاي خارجي بسيار ساده اي توان توليد سيستم هايي با قابليت انجام كارهاي بسيار پيچيده به كمك بر هم كنش هاي پويا را دارند. كلوني مصنوعي زنبورها در پاره اي نزديك به هم و در مقايسه با كلوني زنبورهاي طبيعي ، متفاوت عمل مي كنند.الگوريتم كلوني مورچه ها به همان ميزان كه قابليت حل مسائل تركيبي قطعي را دارند ، قادر به حل مسائل تركيبي است كه داراي عدم قطعيت نيز مي باشند.

توسعه الگوريتم كشف كننده جديد براي حل مساله Ride-matching به كمك راه پيشنهاد شده ( استفاده از كلوني زنبورها ) راهي روشنگر براي نشان دادن قابليت هاي اين روش محسوب مي شود.

سيستم سازماني زنبورها بر اساس يك سري قوائد ساده ي خارجي حشرات بنا شده است . با اينكه نژادهاي بسياري از حشرات مختلف بر روي كره زمين موجود هستند و همين باعث تفاوتهايي در الگوي رفتاري آنها مي شود،ولي با اين حال اين سري از حشرات اجتماعي را مي توان داراي قابليت حل مسائل پيچيده دانست . بهترين مثال براي اين حالت روند توليد نكتار محسوب مي شود

. هر زنبور ترجيح مي دهد كه راه قبلي زنبور هم كندوي خود را دنبال كند تا خود به دنبال گل جديد بگردد . هر كندوي زنبور عسل داراي مكاني معروف به سالن رقص است كه در آنجا زنبورها با انجام حركتي خاص ، هم كندوييهاي خود را راضي مي كنند تا راه آنها را براي رسيدن به گلها بر گزينند .

اگر يك زنبور تصميم بگيرد كه به دنبال نكتار برود ، با انتخاب زنبور هم كندوي رقاص خود ، راه قبلي را دنبال مي كند تا :
الف : منبع غذا را رها كند و دوباره به دنبال زنبور رقصاني بگردد تا بتواند منبعي جديد پيدا كند .
ب : خود به دنبال منابع غذايي جديد بگردد .

ج : در كندو اقدام به رقصيدن كرده و زنبورهاي جديدي را به دنبال خود بكشانند .
بر اساس احتمالات اندازه گيري شده ، زنبور اقدام به يكي از حالات بالايي مي كند . در مكان رقص ، زنبورها اقدام به پيشنهاد مكانهاي مربوط به جمع آوري نكتار به ديگران مي كنند . مكانيزم انتخاب يك زنبور توسط زنبوري ديگر هنوز شناخته شده نيست ولي تا به امروز روشن شده است كه اين امر بيشتر مربوط به كيفيت نكتار پيدا شده توسط زنبور رقاص است .

لوسيچو تدروويچ اولين كساني بودند كه از رويه هاي پايه و ساده زنبوري براي حل كردن مسائل تركيبي بهينه سازي استفاده كردند . آنها سيستم زنبوري (BS) را معرفي كردند و از آن براي حل مساله معروف Travelling Salesman استفادهكردند .

در الگوريتم بهينه سازي زنبور عسل ماّمورهايي كه ما به آنها زنبور مصنوعي مي گوييم با همديگر اجتماع مي كنند تا بتوانند قادر به حل مسائل مشكلتر باشند . تمامي زنبور هاي مصنوعي در ابتداي فرآيند جستجو ، در كندوي اصلي قرار دارند. در فرآيند جستجو نيز زنبور هاي مصنوعي به طور كاملا مستقيم با يكديگر ارتباط برقرار مي كنند . هر زنبور مصنوعي يك سري حركات محلي خاص انجام داده و به كمك آنها قادر خواهد بود تا راه حلي را براي مشكل فعلي خود پيدا كند .

اين زنبورها تك تك راه حلهاي كمكي و زير پايه ايي را ارائه مي دهند تا در آخر با ادغام اين راه حل ها ، راه حل اصلي براي حل مساله تركيبي به دست بيايد . روند جستجو از تكرارهاي پشت سر هم تشكيل شده است . اولين تكرار زماني پايان مي يابد كه اولين زنبور را حل اصلي براي حل مساله تركيبي به دست بيايد . روند جستجو از تكرار هاي پشت سر هم تشكيل شده است .

اولين تكرار زماني پايان مي يابد كه اولين زنبور راه حل زير پايه خود را براي حل مساله اصلي ارائه دهد . بهترين راه حل زير پايه در خلال اولين تكرار انتخاب شده و پس از آن ، تكرار دوم شروع خواهد شد . در تكرار دوم ، زنبور هاي مصنوعي شروع به پيدا كردن راه حلي جديد براي مساله زير پايه مي كنند . در پايان هر تكرار حد اقل يك و يا چند راه حل ارائه شده وجود دارد ، كه آناليست مقدار همگي آنها را مشخص مي كنند .

به هنگام حركت در فضا ، زنبور هاي مصنوعي ما يكي از دو حركت ؛ حركت به سمت جلو و يا حركت به سمت عقب را انجام مي دهند .به هنگام حركت به سمت جلو زنبورها راه و روش هاي جديدي را براي حل مساله پيدا مي كنند . آنها اين كار را به كمك يك سري جستجوهاي شخصي و اطلاعات بدست آمده ي گذشته انجام مي دهند . بعد از آن زنبورها عمل حركت به سمت عقب را انجام مي دهند كه همان ، برگشتن به كندوي اصلي است . در كندو همگي زنبورها در يك فرآيند

تصميم گيري شركت مي كنند . ما در نظر مي گيريم كه هر زنبور ي قابليت درك و دريافت اطلاعات زنبورهاي ديگر را بر اساس كيفيت دارد . به كمك اين روش ، زنبور ها اين قابليت را دارند كه با استفاده از اطلاعات ديگران ، راههاي بهتر حل مساله را پيدا كنند .

بر اساس اطلاعات جديدي كه در مورد كيفيت راه حل به دست مي آيد ، زنبور مي تواند تصميم بگيرد كه :
الف : منبع راه حل خود را رها كرده و در سالن رقص به دنبال كسي بگردد كه منبعي با كيفيت بيشتر در اختيار دارد .

ب : بدون اين كه كسي را جذب كند ، دوباره به سراغ منبع راه حل خود برود .
ج : در سالن رقص با انجام حركاتي خاص سعي در جمع كردن زنبور هاي ديگر به دور خود داشته باشد .

بر اساس ميزان كيفيتي كه زنبور از منبع خود به دست مي آورد ، فاكتوري به نام وفاداري در وي به وجود مي آيد كه در واقع همان وفاداري به راهي است كه خود زنبور انتخاب كرده است .
بار دومي كه زنبورهاي مصنوعي براي پيدا كردن راه حل مساله به حركت در مي آيند ، اين بار سعي در پيدا كردن راههاي جديدي براي حل محموله دارند و بعد از اين كار دوباره عمل حركت به سمت عقب را انجام داده و به كندو بر مي گردند ، و دوباره در كندو در بحثي كه در مورد پيدا كردن بهترين راه شكل گرفته ، شركت مي كنند . اين روند زماني پايان مي پذيرد كه يك راه حل تقريبا كامل براي مساله پيدا شود .

مثال برنامه نويسي پوياي بهينه سازي كلوني زنبورها ، مسائل تركيبي بهينه سازي را در هر مرحله به ميزاني حل كند . هر كدام از مراحل مشخص شده داراي يك مقدار بهينه سازي خاص است . به اين صورت كه :
St = {St1 + St2+ … +Stm}
همانطور كه مي بينيد هر مرحله شامل يك سري مراحل از قبل انتخاب شده است .

در ادامه نشان مي دهيم كه به كمك كميت B ما تعداد زنبور هايي را كه در اين فرآيند شركت مي كنند را مشخص مي كنيم ، و به كمك i تعداد كل مراحلي را كه انجام مي پذيرند را نشان مي دهيم . مجموعه ي تمامي راه حل هاي زير پايه را نيز به كمك Sj نشان مي دهيم كه در آن j داراي مقادير ۱ تا m مي باشد . در زير كد پيش ساخته بهينه سازي كلوني زنبورها را مشاهده مي كنيد :
۱- شروع
مشخص كردن تعداد زنبورها (B) و تعداد تكرارها (i) ،مشخص كردن تعداد مراحل (St) ، پيدا كردن هر گونه راه حل قابل حل x از مساله .اين راه حل در واقع بهترين و اولين راه حل انتخاب توسط ما خواهد بود .

۲- until i=I و ۱set I :=
و تكرار كن مراحل بعدي را . . .
۳ – until j=m و set j: =m
و تكرار كن مراحل بعدي را . . .
حركت به سمت جلو ( رفت ) : به زنبورها اين امكان را مي دهد كه از كندو بيرون آمده و قابليت انتخاب B راه حل را از مجموعه ي راه حل هاي زير پايه sj و Stj داشته باشند .
حركت به سمت عقب (برگشت ) : تمامي زنبور ها را به كندو بر مي گرداند . به زنبور ها اين اجازه را مي دهد كه اطلاعات خود را در مورد كيفيت راه حل هاي ديگران و خود به اشتراك بگذارند و بدين طريق تصميم بگيرند كه منبع خود را رها كرده يا به دنبال كسي ديگر بيفتند يا به تنهايي به منبع خود بر گردند و يا با رقصيدن ، ديگران را مشتاق دنبال كردن منبع خود كنند .
Set j := j+1

۴- اگر بهترين راه حل (xi) كه در i امين تكرار به دست آمده ، بهتر از بهترين راه اخير به دست آمده بود ، آنگاه فاكتور بهترين راه حل را به روز مي كنيم .
X := xi
5- set I : = i+1
به طور كل حركت هاي جلويي و عقبي در بهينه سازي كلوني زنبورها مي تواند نقش فرعي را بگيرند به اين معني ، تا زماني كه يكي از فاكتورهاي مهم كامل نشده است ، اين دو به كار خود ادامه دهند . اين فاكتور مهم به عنوان مثال مي تواند بيشترين مقدار رفت و برگشت ها ويا برخي ديگر از موارد مورد نظر توسط خود اپراتور باشد .

در الگوريتم بهينه سازي كلوني زنبورها زير مدل هاي مختلفي كه به توصيف چگونگي حالات زنبورها مي پردازد ويا منطق گرايي آنها را مشخص مي كند به راحتي قابليت توسعه و تست شدن را دارند . به اين معني كه الگوريتم هاي متفاوتي از بهينه سازي زنبور ها طراحي كرد .

اين مدل ها مي توانند به توصيف چگونگي ترك كردن منبع اوليه توسط زنبوها ، ادامه دادن رفت و برگشت بين كندو و منبع توسط زنبور و يا چگونگي رقصيدن زنبور براي جمع كردن ديگر زنبور ها را به دور خود توضيح مي دهد .

سيستم فازي زنبورها
زنبور ها در فرآيند پيدا كردن بهترين راه حل با مشكلات گيري مختلفي مواجه مي شوند .
مشكلات زير برخي از مشكلات رايج بين آنهاست :
۱- راه حل زير پايه بعدي كه بايد به راه حل اصلي اضافه شود چيست ؟
۲- آيا بايد راه حل زير پايه فعلي را رها كرده و به دنبال راه حل زير پايه جديدي رفت .

۳- آيا بايد به گسترش راه حل زير پايه فعلي ادامه داد ولي فعلا به دنبال ديگر زنبور ها نرفت ؟
بسياري از مدلهاي تصميم گيري بر اساس ابزارهاي مدلينگ مختلفي به وجود آمده اند . اين حالات كاملا منطي و عقلي هستند و بر اساس اين اطلاعات به وجود آمده اند كه ماموران تصميم گير، ماموراني با داشتن با داشتن بيشترين اطلاعات هستند و هميشه بهترين راه حل را براي پايان دادن به حل مساله در نظر مي گيرند . براي اينكه بتوان مدل هاي مختلف حل مساله را بوجود آورد . محققان شروع به استفاده از راه حل هاي بي قاعده تري كردند .

مفهوم ساده منطق فازي كه توسط زاده معرفي شد قابليت بهتري در توضيح مسائلي كه با عدم قطعيت ادغام شده اند را دارند . با توجه به اطلاعات فوق ، ما در ا نتخاب اينكه منطق زنبور ها بر چه اساسي صورت مي گيرد از منطق فازي استفاده مي كنيم . زنبور هاي مصنوعي ما از منطق گرايي تقريبي و منطق فازي براي انجام اعمال خود استفاده مي كنند .

به هنگام دادن راه هاي زير پايه جديد به زنبور مصنوعي زنبور حالتهاي زير را براي برقراري ارتباط با راه حلهاي زير پايه فوق در نظر مي گيرد .