هوش مصنوعی را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست.
ریشهها و ایدههای اصلی آن را باید در فلسفه، زبانشناسی، ریاضیات، روانشناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخهها، فروع، و کاربردهای گونهگونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیستشناسی و پزشکی، علوم ارتباطات و زمینههای بسیار دیگر.
هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند «فکر» کند.
اما برای دسته بندی و تعریف ماشینهای متفکر، میبایست به تعریف «هوش» پرداخت.
همچنین به تعاریفی برای «آگاهی» و «درک » نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
با وجودی که برآورده سازی نیازهای صنایع نظامی، مهمترین عامل توسعه و رشد هوش مصنوعی بودهاست، هم اکنون از فراوردههای این شاخه از علوم در صنایع پزشکی، رباتیک، پیش بینی وضع هوا، نقشهبرداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار و دست خط و بازیها و نرم افزارهای رایانهای استفاده میشود .
مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول که اقدام به ارائه قوانین و نظریههایی در باب منطق نمودند، مطرح شده بود.
در سال ۱۹۴۳، با اختراع رایانههای الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند.
بنظر میرسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن مینگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانههای هوشمند در صنایع گوناگون هستیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید.
البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده بود.
بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازیها و نیز اثبات قضیههای ریاضی با کمک رایانهها بود.
در آغاز چنین به نظر میآمد که رایانهها قادر خواهند بود چنین اموری را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین آنها به انجام رسانند.
1- 2 هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از باورهای زیر قرار میگیرند:
- سیستمهایی که به طور منطقی فکر میکنند.
- سیستمهایی که به طور منطقی عمل میکنند.
- سیستمهایی که مانند انسان فکر میکنند.
- سیستمهایی که مانند انسان عمل میکنند.
- ظرفیت کسب و به کار گیری دانش و مهارت فکر کردن و استنتاج
- توانایی رفتار مناسب در شرایط غیر قابل پیش بینی
- توانایی بدست آوردن اهداف پیچیده در محیط پیچیده
- توانایی کار و تطبیق با محیط همراه با منابع و دانش ناکافی
شاید بتوان هوش مصنوعی را این گونه توصیف کرد : هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند.
1-3 فلسفۀ هوش مصنوعی
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد .
در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقی میشود.
هوش مصنویی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و نهایتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد.
در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر هنوزکسی قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده است.
1-4 مدیریت پیچیدگی
ایجاد و ابداع فنون و تکنیکهای لازم برای مدیریّت پیچیدگی را باید به عنوان هستۀ بنیادین تلاشهای علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینههای علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد.
شیوهها و تکنیکهای هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامهنویسی تابعی ، یا شیوههای ریاضی قابل حلّ نبودهاند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق میآییم، و میتوانیم بر روی بخشهایی از مسئله متمرکز شویم که مهمتر است.
تلاش اصلی، در واقع، ایجاد و دستیابی به لایهها و ترازهای بالاتر و بالاتر تجرید را نشانه میرود، تا آنجا که، سرانجام برنامههای کامپوتری درست در همان سطحی کار خواهند کرد که خود انسانها به کار مشغولند.
به یاری پژوهشهای گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیمودهاست.
در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کردهاست.
یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند.
این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش میدهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی میدود و یا به روشی برای جابجا شدن، دست مییابد، که سازندگانش، برای او، متصور نبودهاند.
هر چند این مثال در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست.
دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره میبرند.
هر چند این مثال در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست.
دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره میبرند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیهسازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.هوش مصنوعی که همواره هدف نهایی دانش رایانه بودهاست، اکنون در خدمت توسعه علوم رایانه نیز است.
زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن میسازند، پایگاههای دادهای پیشرفته، موتورهای جستجو، و بسیاری نرمافزارها و ماشینها از نتایج پژوهشهای هوش مصنوعی بهره میبرند.
سیستمی که عاقلانه فکر کند.
سامانهای عاقل است که بتواند کارها را درست انجام دهد.
در تولید این سیستمها نحوه اندیشیدن انسان مد نظر نیست.
این سیستمها متکی به قوانین و منطقی هستند که پایه تفکر آنها را تشکیل داده و آنها را قادر به استنتاج و تصمیم گیری مینماید.
آنها با وجودی که مانند انسان نمیاندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمیکنند.
این ماشینها لزوما درکی از احساسات ندارند.
هم اکنون از این سیستمها در تولید عاملها در نرم افزارهای رایانهای، بهره گیری میشود.
عامل تنها مشاهده کرده و سپس عمل میکند.
1-5 عاملهای هوشمند عاملها قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خود می باشند.
قوانین و چگونگی فکر کردن هر عامل در راستای دستیابی به هدفش، تعریف میشود.
این سیستمها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام میدهند.
پس عاقلانه رفتار میکنند، هر چند الزاما مانند انسان فکر نمیکنند.
1-6 سیستمهای خبره سیستمهای خبره زمینهای پرکاربرد در هوش مصنوعی و مهندسی دانش است که با توجّه به نیاز روز افزون جوامع بر اتخاذ راه حلها و تصمیمات سریع در مواردی که دانشهای پیچیده و چندگانهٔ انسانی مورد نیاز است، بر اهمیت نقش آنها افزوده هم میشود.
سیستمهای خبره به حل مسائلی میپردازند که به طور معمول نیازمند تخصّصهای کاردانان و متخصّصان انسانی است.
به منظور توانایی بر حل مسائل در چنین سطحی (ترازی)، دسترسی هرچه بیشتر اینگونه سامانهها به دانش موجود در آن زمینه خاص ضروری میگردد.
1-7 رابطه هوش جمعی با هوش مصنوعی یکی از شاخه های هوش مصنوعی به نام"هوش جمعی" هم اکنون برای حل بسیاری از مسائل بهنیه سازی بکار می رود.
هوش جمعی ، مبتنی بر رفتارهای جمعی در سامانههای نامتمرکز و خودسامانده بنیان شده است.
این سامانهها معمولاً از جمعیتی از کنشگران ساده تشکیل شده است که بطور محلی با یکدیگر و با محیط خود در تعامل هستند.
با وجود اینکه معمولاً هیچ کنترل تمرکزیافتهای، چگونگی رفتار کنشگران را به آنها تحمیل نمیکند، تعاملات محلی آنها به پیدایش رفتاری عمومی میانجامد.
مثالهایی از چنین سیستمهای را میتوان در طبیعت مشاهده کرد؛ گروههای مورچهها، دستهٔ پرندگان، گلههای حیوانات، تجمعات باکتریها و دستههای ماهیها.
فصل دوم 2- 1 تعریف هوش جمعی اصطلاح هوش جمعی ، در سال 1989 توسط گرادوبنی و ژینگوانگ، به همراه رباتیک سلولی معرفی گردید.هوش جمعی ویژگی از سیستم است که بر اساس آن رفتار گروهی عامل های غیر پیچیده که به صورت محلی با محیط شان درارتباط هستند منجر به وجود آمدن الگو های منسجم، یکپارچه و کارا میشود .
هوش جمعی زمینه ای را فراهم می آورد که در آن امکان کاوش حل مسئله به صورت گروهی ( توزیع شده) بدون کنترل متمرکز کننده یا تهیه مدل کلی ممکن است .
هوش جمعی، هوش مصنوعی است که بر پایه رفتار گروهی سیستم های غیرمتمرکز و خودسازمانده بنا شده است.
سیستم های هوش جمعی، معمولا از مجموعه ای از عامل های ساده که به صورت محلی با یکدیگر و به محیط شان در تعامل هستند تشکیل شده است .
عوامل از قوانین بسیار ساده ای پیروی میکنند و با وجود اینکه ساختار کنترل متمرکزی برای تعیین رفتار هر عامل مستقل وجود ندارد، تعامل محلی بین این عامل ها منجر به به وجود آمدن رفتار کلی پیچیده ای می شود.هوش جمعی متدی است که در رابطه با سیستم های مصنوعی و طبیعی که از تعداد زیادی اجزا مستقل تشکیل شده اند مطرح می شود.
این اجزا با استفاده از کنترل غیر متمرکز و خود سازماندهی هماهنگ می شود.
به طور خاص این متد بر روی رفتار های جمعی که ناشی از بر هم کنش های محلی اجزا مستقل با یکدیگر و با محیطشان است متمرکز شده است.
هوش گروهی یک قالب طراحی بر پایه رفتار اجتماعی حشرات است .
در روشهایی که در گروه هوش جمعی جای می گیرند ، ارتباط مستقیم یا غیر مستقیم بین جوابهای مختلف الگوریتم وجود دارد.
در واقع، در این روشها ، جوابها که موجوداتی کم هوش وساده هستند، برای پیدا شدن ویا تبدیل شدن به جواب بهینه ، همکاری می کنند .
این روشها از رفتارهای جمعی حیوانات و موجودات زنده در طبیعت الهام گرفته شده اند .
بعضی از محصولات مصنوعی ساخت انسان نیز در حوزه هوش جمعی قرار میگیرند.
به طور خاص بعضی از سیستم های چند رباته و همچنین برنامه کامپیوتری خاص که برای انجام بهینه سازی و مسائل آنالیز داده نوشته شده اند جزء این دسته قرار میگیرند .
فرض کنید شما و گروهی از دوستانتان به دنبال گنج میروید هر یک از اعضا گروه یک فلز یاب و یک بیسیم دارد که میتواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد.
بنابراین شما میدانید آیا همسایگانتان از شما به گنج نزدیک ترند یا نه؟
پس اگر همسایه ای به گنج نزدیک تر بود شما می توانید به طرف او حرکت کنید.
با چنین کاری شانس شما برای رسیدن به گنج بیشتر می شود و همچنین گنج زود تر از زمانی که شما تنها باشید پیدا می شود .
این مثال ساده از رفتار جمعی است که افراد برای رسیدن به یک هدف نهایی همکاری میکنند.
این روش موثرتر از زمانی است که افراد جداگانه عمل می کنند .
هوش جمعی را میتوان به صورت مجموعه ای سازمان یافته از موجوداتی تعریف کرد که با یکدیگر همکاری میکنند .در کاربردهای محاسباتی هوش جمعی از موجوداتی مانند مورچه ها، زنبور ها، موریانه ها، دسته های ماهیان و دسته پرندگان الگو برداری می شود .در این نوع اجتماعات هر یک از موجودات ساختار نسبتا ساده ای دارند ولی رفتار اجتماعی آنها بینهایت پیچیده است .
رفتار کلی یک هوش جمعی به صورت غیر خطی از آمیزش رفتارهای تک تک اجتماع به دست می آید یا به عبارتی یک رابطه بسیار پیچیده بین رفتار جمعی و رفتار فردی یک اجتماع وجود دارد .
رفتار جمعی فقط وابسته به رفتار فردی افراد اجتماع نیست بلکه به چگونگی تعامل میان افراد وابسته است .
تعامل میان افراد، تجربه افراد درباره محیط را افزایش میدهد و موجب پیشرفت اجتماع می شود .
ساختار اجتماعی هوش جمعی بین افراد مجموعه کانال های ارتباطی ایجاد میکند که طی آن افراد میتوانند به تبادل تجربه های شخصی بپردازند .
مدل سازی محاسباتی هوش جمعی کاربرد های موفق و بسیاری داشته است.
هوش جمعی تبادل جزئی تعداد زیادی عوامل ساده را برای حصول یک هدف کلی است .
ویژگی خاص سیستم هوش جمعی توانایی آن در عملکرد به صورت هماهنگ بدون حضور هماهنگ کننده یا کنترل کننده خارجی است.
مثال های زیادی در رابطه با ذات گروه ها که رفتار جمعی را بدون اینکه هیچ یک از اعضای گروه را کنترل کنند یا از رفتار کلی گروه با خبر باشند انجام می دهند، قابل مشاهده است .
با وجود اینکه علیرغم کم بودن اعضای تشکیل دهنده گروه، گروه از دید کل می تواند رفتار هوشمندی را نمایش دهد این نتیجه بر هم کنش اجرایی است که از دید فضایی با یکدیگر همسایه اند و بر مبنای قوانین ساده ای عمل میکنند .
اغلب اوقات رفتار هر یک از اجزای گروه به شکل عبارت های اجتماعی بیان میشود و هر یک از اجزا دارای رفتار اتفاقی یا تصادفی است که وابسته به درک محلی او از همسایگیهایش است .
سیستم های زیستی هوشمند روی زمین همان سیستم های بیولوژیک می باشند.
اینگونه سیستم ها به کمک فرآیند های تکاملی طراحی شده اند ، معمولا توسط یک دستگاه کنترل می شوند و به صورت گروهی یا گله ای زندگی می کنند.
بر خلاف انسان ، بسیاری از این سیستم های هوشمند از جانداران ساده ای درست شده اند که گویا از منطق ، ریاضیات ، برنامه ریزی، مدل سازی پیرامون ، نمی توانند بهره بگیرند و گاهی دارای حافظه نیز نمی باشند .
با این همه این سیستم ها با این که دارای سادگی می باشند ، کارهای محاسباتی و پردازش های پیچیده اطلاعاتی را می توانند انجام بدهند .
درک اینگونه سیستم ها و به کارگیری مکانیزم هایی که در آنها وجود دارند به ما در حل مسائل پیچیده وطراحی سیستم های هوشمند تر کمک فراوانی می نمایند .
هوش جمعی یک روش محاسباتی برای حل مسائل می باشد که بر پایه رفتار سیستم های طبیعی که شامل جانداران بسیاری کنار هم می باشند کار می کند .
این روش حل مساله می کوشد که مساله ها را به روش گسترده حل نماید با این ویژگی که میان جانداران این سیستم ، دو سویگی مستقیم یا غیر مستقیم وجود داشته باشد .
از کنش و واکنش میان این جانداران و همینگونه با پیرامون خودشان ، رفتاری پدید می آید که کار خواسته شده را انجام می دهد .
2-2 خصوصیات هوش جمعی: 2-2-1- عوامل ساده اند 2-2-2- هر یک از عوامل نسبتا مشابه اند.
همه آنها یکسان هستند و یا متعلق به تعداد گروه های کمی هستند.
2-2-3- عوامل به صورت غیرمستقیم با هم ارتباط برقرار می کنند.
2-2-4- رفتار کلی پیچیده سیستم ناشی از برهم کنش اجزا با یکدیگر و با محیط شان است به همین دلیل رفتار گروه خود سازمانده میشود.
2-2-5- این رفتار ها پایدارند؛ 2-2-6- محکم بودن در مقابل شکست یا بدرفتاری یک جزء؛ 2-2-7- تک تک عوامل در حصول نتیجه کلی بی تاثیرند؛ 2-2-8- انعطاف پذیری در تغییرات سریع در محیط دینامیک و تقارن ذاتی یا عملیاتی توزیع شده؛ 2-2-9- بر هم کنش بین اجزا بر اساس قوانین رفتاری ساده ای است که تنها از اطلاعات محلی که به اجزا به طور مستقیم یا به وسیله محیط مبادله می کنند استفاده می کنند؛ به عنوان مثال : تمیزکاری لانه مورجه ها مورچه ها آشغالها و یا غذاهای پراکنده در سطح لانه را جمع آوری و در یک یا چند جا کپه می کنند .
این کار به این ترتیب عملی می شود .
- هر مورچه شروع به گردش به صورت دلخواه و بی هدف در سطح لانه می کند .
- اگر مورچه به یک تکه آشغال برخورد کرد آن را بر می دارد .
- اگر مورچه به یک تکه آشغال دیگر رسید تکه قبلی را در کنار آن قرار می دهد .
- و باز به گردش خود ادامه می دهد .
- بعد از مدتی مشاهده می شود که آشغالها در گوشه کنار لانه کپه شده اند .
2-3 اصول هوش جمعی چهار اصل هوش جمعی را کنترل می کنند این اصول عبارتند از: 2-3-1- فیدبک مثبت، راه حل های خوب موجود در شبکه را تقویت می کند.
2-3-2- فیدبک منفی، راه حل های قدیمی و نامناسب را حذف می کند.
2-3-3- تصادفی بودن، بنابر این اصل می توان راه حل ها را بدون توجه به کیفیت مشاهده شده تست کرد که در نتیجه منجر به راه حل های مبتکرانه و غیر معمولی می شود.
2-3-4- بر هم کنش های چندگانه، کلیدی برای ساختن بهترین راه حل ها 2-4 طبقه بندی هوش جمعی (گروهی): هوش جمعی دارای ویژگی چند رشته ای (مطرح بین چند رشته علمی) خاص است.
زیرا این سیستم ها که دارای خصوصیات خاصی هستند را میتوان در حوزه های مختلفی مورد بررسی قرار داد.
تحقیقات در رابطه با هوش جمعی را می توان با توجه به ملاک های مختلفی دسته بندی کرد : 2-4-1- طبیعی در مقابل مصنوعی: یکی از دسته بندی های رایج هوش جمعی تقسیم به دو دسته با توجه به نوع سیستم مورد بررسی است.
بنابراین در این رابطه هوش جمعی طبیعی مطرح می شود که در آن سیستم های بیولوژیکی مورد بررسی قرار می گیرند و هوش جمعی مصنوعی که در آن محصولات مصنوعی ساخت دست بشر مطرح میشود.
2-4-2- علمی در مقابل مهندسی: نوع دیگر دسته بندی که میتوان گفت دسته بندی مفید تری از تحقیقان هوش مصنوعی است را می توان بر مبنای اهدافی که دنبال می شود قرار داد.
می توان دو مسیر علمی و مهندسی را برای این کار مشخص کرد.
هدف مسیر علمی مدل کردن سیستم های هوش مصنوعی و برگزیدن و درک کردن مکانیزم هایی است که به دلیل بر هم کنش فرد به فرد و فرد به محیط به سیستم به عنوان یک مجموعه کلی اجازه می دهد به طور هماهنگ کار کند.
از سوی دیگر هدف مسیر مهندسی به کار گیری از دانسته های توسعه داده شده توسط مسیر علمی برای طراحی سیستم هایی است که بتوانند مسائلی با کاربرد مرتبط را حل کنند.
2-5 تعامل دو دسته طبیعی/ مصنوعی و علمی/مهندسی: دو دسته طبیعی/ مصنوعی و علمی/مهندسی با یکدیگر متعامدند.
با وجود اینکه تحقیقات معمول علمی در رابطه باسیستم های طبیعی و کاربردهای معمول مهندسی در رابطه با توسعه سیستم های مهندسی است ولی تعدادی از مطالعات مربوط به هوش گروهی در رابطه با ربات ها برای تایید مدل های ریاضیاتی سیستم های بیولوژیکی انجام شده است.
این مطالعات صرفا دارای ماهیت نظری است و به طور قطع مربوط به مسیر علمی هوش گروهی می شود.
از سوی دیگر می توان رفتار فردی در گروه بیولوژیکی را به گونه ای تحت تاثیر یا مورد تغییر قرار داد که رفتاری با سطح گروه جدید به وجود اید که به گونه ای برای حل بعضی عملکرد های مشخص کاربردی است.در این حالت، با وجود اینکه سیستمی که در دست است طبیعی است هدفی که دنبال می شود به طور قطع مربوط به کاربرد های مهندسی است.
فصل سوم کاربردهای هوش جمعی 3-1 مقدمه ای بر بهینه سازی بهینه سازی فرایندی است که برای بهتر کردن چیزی دنبال می شود .
فکر ، ایده ویا طرحی که توسط یک دانشمند یا یک مهندس مطرح می شود و در طی روند بهینه سازی بهتر می شود.
در هنگام بهینه سازی شرایط اولیه با روشهای مختلف مورد بررسی قرار می گیردو اطلاعات به دست آمده برای بهبود بخشیدن به یک فکریا روش مورد استفاده قرار می گیرند.بهینه سازی ابزاری ریاضی است که برای یافتن پاسخ بسیاری از پرسش ها در خصوص چگونگی راه حل مسائل مختلف ، به کار میرود.
در بهینه سازی از یافتن بهترین جواب برای یک مساله صحبت به میان می آید.
لفظ بهترین به طور ضمنی بیان می کند که بیش از یک جواب برای مساله مورد نظر وجود دارد که البته دارای ارزش یکسانی نیستند.
تعریف بهترین جواب ، به مساله مورد بررسی، روش حل و همچنین میزان خطای مجاز وابسته است.بهینه سازی ، تغییر دادن ورودی ها و خصوصیات یک دستگاه ، فرآیند ریاضی ویا آزمایش تجربی است ، به نحوی که بهترین خروجی یا نتیجه به دست بیاید.تمام مسائل بهینه سازی به صورت کمینه سازی مقدار یک تابع هزینه در نظر گرفته شده اند.
3-2 الگوریتم بهینه سازی کلونی مورچه ها مقدمه با وجود آنکه فقط 2 درصد از گونه حشرات دارای زندگی اجتماعی هستند ، اما بیش از 50 درصد توده زیستی حشرات را تشکیل می دهند.
این میزان در برخی جاها ، مانند جنگل های بارانی آمازون به بیش از 75 درصد می رسد.منظور از زندگی اجتماعی ، تجمع تعداد زیادی از یک گونه خاص در الب یک مجموعه یا کلونی و تعامل آنها با همدیگر است.همه مورچه ها و موریانه ها و همچنین برخی از گونه های زنبورها در قالب کلونی زندگی می کنند.
اجتماع حشرات می توانند مسائلی را با همکاری یکدیگر حل و فصل نمایند که هیچ یک از اعضای آن اجتماع به تنهایی قادر به حل آنهانمی باشند.اکثر این مسائل به صورت مسائل بهینه سازی قابل بیان هستند.
به عنوان مثال تلاش حشرات برای یافتن کوتاه ترین مسیر در هنگام جستجو برای غذا ، تخصیص مناسب نیروهای کاری برای انجام کارهای مختلف ، و همچنین طبقه بندی محل های حاوی تخم ها و نوزادان ، از جمله مسائل بهینه سازی هستندکه حشرات اجتماعی با همکاری یکدیگر آنها را حل می کنند .
هر تلاشی که برای حل یک مساله بهینه سازی می شود، باعث به وجود آمدن اطلاعاتی در مورد آن مساله می گردد.
به منظور همکاری برای حل یک مساله بهینه سازی ، وجود داشتن مسیری برای انتقال اطلاعات بین اعضای جامعه ، ضروری است.
به این ترتیب در هر اجتماع از حشرات، نوع خاصی از ارتباط بین حشرات وجود دارد.
این ارتباط در گونه های مختلف می تواند به صورت مستقیم یا غیر مستقیم در میان حشرات برقرار باشد.به عنوان مثال هنگامی که یک زنبور عسل یک منبع غذایی جدید پیدا می کند،با اجرای یک رقص ویژه جهت و فاصله محل منبع غذایی را به سایر زنبورها اطلاع می دهد .
این یک ارتباط مستقیم است.به نحوی که برای آنکه زنبوری از پیام مورد نظر اطلاع یابد،می بایست رقص زنبور را مستقیما مشاهده و آن را تعبیر و تفسیر کند.
ارتباط و تماس فیزیکی نوع دیگری از ارتباط های مستقیم میان حشرات اجتماعی است.
ارتباط غیر مستقیم نیاز به مهارت بیشتری دارد.
د این نوع ارتباط حشره می بایست محیط اطراف را به نحوی تغییر دهد که سایر هم نوعانش از تغییر محیط آگاه شوند و پیام مورد نظر حشره را دریافت کنند .
الگوریتم بهینه سازی کلونی مورچه ها الگوریتم بهینه سازی کلونی مورچه ها ، و یا به اختصار الگوریتم مورچه ها ،از رفتار مورچه های طبیعی که در مجموعه های بزرگ در کنار هم زندگی می کنند الهام گرفته شده است.
الگوریتم های دیگری نیز بر این اساس ساخته شده اندکه همگی سیستم های چند عاملی هستند و عامل های مورچه های مصنوعی یا به اختصار مورچه هایی هستند که مشابه با مورچه های واقعی رفتار می کنند .
الگوریتم مورچه ها، یک مثال بارز از هوش جمعی هستند که در آن عامل هایی که ابلیت چندان بالایی ندارند، در کنار هم و با همکاری یکدیگر می توانند نتایج بسیار خوبی به دست بیاورند.
اگر تا کنون به پیک نیک رفته باشید بدون شک با مورچه برخورد داشته اید یک مورچه تنها توجه شما را به خود جلب نمی کند بلکه رفتار جمعی مورچه ها که در یک خط قرار گرفته اند و تکه های غذای شما را با خود حمل میکنند نظر شما را به خود جلب کرده است.
مورچه ها حشراتی اجتماعی محسوب می شوند.
یک مورچه به تنهایی هوشمند نیست ولی وقتی آنها جزئی از یک کلونی باشند، رفتار گروهی پیچیده ای از برخورد بین هر یک از مورچه ها که هر یک رفتار ساده ای نشان میدهند دیده خواهد شد.مورچه ها یک مجموعه ، خود- ترتیب هستند و رفتارهای پیچیده کل مجموعه صرفا ناشی از رفتارهای ساده ای است که تک تک مورجه ها به صورت خود-ترتیب انجام می دهند.این خواص جمعی و فردی به نحوی هستند که بر روی مسائل مختلف کارایی مناسبی دارند.
به خصوص، هنگامی که در یک بازه زمانی خاص، برخی از مورچه ها عملکرد مناسبی نداشته باشند ، با این وجود عملکرد کلی مجموعه مناسب خواهد بود.
همانطور که گفتیم ، این پدیده مشخصه تمام هوشمند های گروهی مانند زنبور عسل، پرندگان، ماهی ها و کرم پروانه است که نوع دیگری از هوش گروهی محسوب می شود که در آن چیزی که ایجاد می شود بزرگتر از مجموع اجزاء آن است.
یکی از رفتارهای پیچیده، قابلیت مشخص کردن کوتاه ترین مسیر بین دو نقطه است.
مورچه ها باید لانه هایشان را برای پیدا کردن غذا ترک کنند ولی کلونی نمیداند که غذا در کجا قرار دارد.
هر مورچه به تنهایی و از روی شانس برای جهتی که باید حرکت کند تصمیم گیری میکند.
احتمال اینکه مورچه ها از یک مسیر بروند کاملا با احتمال اینکه از مسیر دیگری حرکت کنند برابر است.
به محض اینکه مورچه غذا پیدا کند تعدادی از آنها را به لانه می برد .
وقتی مورچه ها حرکت میکنند یک ماده شیمیایی به نام فرومون را از خود به جای می گذارند، که مورچه های دیگر می توانند آن را بو کنند و تشخیص دهند که یک مورچه قبلا در آن مسیر بوده است.
مورچه هایی که نزدیک ترین منبع غذا را پیدا کنند می توانند فرومون بیشتری از خود به جای بگذارند زیرا زمان طی مسیر آنها کمتر از بقیه است.
در نهایت وقتی بقیه مورچه ها به لانه بر می گردند بر اساس مقدار فرومونی که بو می کنند تصمیم می گیرند از کدام مسیر بروند.
هر چه سطح فرومون بیشتر باشد احتمال اینکه مورچه از آن مسیر برود بیشتر است.
هر چه تعداد مورچه هایی که کوتاه ترین مسیر را میدانند بیشتر باشد سطح فرومون افزایش می یابد تا هنگامی که تمام مورچه ها از همان مسیر حرکت کنند .
رفتار طبیعی این مورچه ها به شکل الگوریتم مورچه برنامه ریزی شده است که از آن برای پیدا کردن کوتاه ترین مسیر در گراف ها استفاده می کنیم.
چون بیشتر مسائل را میتوان به شکل گراف در اورد، پیدا کردن کوتاه ترین مسیر در گراف معمولا ساده ترین و سریع ترین راه حل برای مسئله است.
هر مورچه توسط یک عامل در برنامه نشان داده می شود که به تنهایی دارای تواناییهای کمی مانند حس کردن، پخش کردن فرمون و حافظه است.
بنابراین به دلیل حافظه هر عامل میتواند مسیرش را در گراف به عقب دنبال کند تا طول مسیر را مشخص کند وقتی که یک عامل فرمون عامل دیگر را احساس کند برای انتخاب مسیر رایج طی شده توسط دیگران فیدبک مثبت دریافت میکند.
فیدبک مثبت اتوکاتالیزر (Autocatalysis) را تحریک می کند که بدین معنا است که فیدبک مثبت کوچکتر منجر به فیدبک مثبت بیشتر میشود و این حالت همچنان ادامه دارد.
چند شرط برای اینکه عامل ها بتوانند با موفقیت در هر نوع گرافی جهت یابی کنند وجود دارد که باید در نطر گرفته شود.
فرمون باید پریود تبخیر داشته باشد زیرا این حالت به عامل ها اجازه می دهد که در حالت اول تقارب پیدا کنند.
اگر فرومون تبخیر نشود عامل ها همیشه از بین چند مسیر که به مقدار مساوی رایج هستند انتخاب کنند وقتی که عامل ها بر روی یک مسیر همگرا شوند کمتر و کمتر تحت تاثیر مسیر های دیگر قرار میگیرند مخصوصا اگر دیگر عاملی وجود نداشته باشد که در دیگر مسیر ها حرکت کند.
مشکل ظریف دیگری نیز وجود دارد که هنگامی پیش می اید که عامل ها قبل از پیدا کردن کوتاه ترین مسیر روی مسیر های نیمه بهینه (Sub Optimum) همگرا شوند.
در مثال مورچه ها ممکن است منبع غذای دیگر وجود داشته باشد که نزدیک تر به لانه باشد ولی قبل از اینکه کلونی روی منبع غذای دیگری همگرا شود پیدا نشده باشد.
این مشکل توسط این واقعیت که در تصمیم گیری مورچه ها یا عامل ها ثابت نیستند رفع میشود.
این امکان همیشه وجود دارد که راهی غیر از راه رایج انتخاب شود، بنابراین راه های دیگر را جستجو کنند.
ایجاد راه های دیگر هنگامی که بحث استفاده ار الگوریتم مورچه برای حل مسائلی غیر از پیدا کردن کوتاه ترین مسیر پیش میاید اهمیت زیادی دارد.
خواص عمومی کلونی مورچه ها - اگر چه هر کدام از مورچه ها به حد کافی برای یافتن یک راه حل برای مساله ، پیچیده هستند و احتمالا راه حل خوبی نیز پیدا خواهند نمود ، اما راه حل هایی که دارای کیفیت مطلوب باشند ، صرفا از طریق همکاری و تعامل بین مورچه ها قابل دسترسی است.
- هر مورجه صرفا از اطلاعات فردی خود ویا از اطلاعات محلی راس یا گرهی که در آن قرار دارد بهره می برد.
- مورچه ها به صورت غیر مستقیم با یکدیگر در ارتباط هستند .
این ارتباط از طریق تغییراتی است که آنها در مقادیر فرومون مسیر های مختلف ایجاد می کنند.
- یک مورچه ، به دنبال راه حلی می گردد که کمترین هذینه را در بر داشته باشد.
- مورچه ی kام دارای یک حافظه شخصی به نام M است که مسیری را که مورچه طی کرده است در آن ذخیره می شود.
حافظه می تواند برای (1) ایجاد راه حل های مجاز و شدنی ، (2) ارزیابی راه حل های یافته شده و (3) بازگشت مسیر به صورت معکوس، استفاده می شود.
- مورچه kام از یک حالت اولیه S0 شروع به کار می کند.
- مورچه ها توان دیدن و شنیدن را ندارند و فقط از حس بویایی استفاده می کنند .
- مورچه ها صدا نیز ندارند .
الگوریتم مورچه برای مسئله فروشنده دوره گرد: (TSP) مسئله فروشنده داره گرد احتمالا معروف ترین مسئله کامل NP است.
فروشنده دوره گرد باید از شهر ها عبور کند تا فروش داشته باشد ولی برای کم کردن هزینه های سفر مرد فروشنده تنها می تواند از هر شهر یک بار عبور کند.
این مسئله به عنوان مدار همیلتون نیز شناخته می شود.
فروشنده دوره گرد همچنین می خواهد در زمان صرفه جویی کند بنابراین باید کوتاه ترین مسیر پیدا شود که تنها یک بار از هر شهر بگذرد که این حالت مدار بهینه همیلتونین را به وجود میاورد.
الگوریتم مورچه ها ، مساله فروشنده دوره گرد را به صورت مرحله به مرحله و تکراری حل می کند.در هر تکرار مورچه ها از هر شهر به شهرهای ملاقات نشده حرکت می کنند تا آنکه همه ی شهرها را پشت سر بگذارند.مورچه ها با توجه به یک قانون احتمالاتی معین ، مقصد بعدی را برای حرکتشان تعیین می کنند.
برای این کار از اطلاعات فرومونی و اطلاعات ذهنی بهره می گیرند.