دانلود مقاله هوش مصنوعی

word قابل ویرایش
62 صفحه
12700 تومان
127,000 ریال – خرید و دانلود

هوش مصنوعی

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

فصل دوم

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

فصل سوم

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

وقتی که یک عامل فرمون عامل دیگر را احساس کند برای انتخاب مسیر رایج طی شده توسط دیگران فیدبک مثبت دریافت میکند. فیدبک مثبت اتوکاتالیزر (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
به طور کل حرکت های جلویی و عقبی در بهینه سازی کلونی زنبورها می تواند نقش فرعی را بگیرند به این معنی ، تا زمانی که یکی از فاکتورهای مهم کامل نشده است ، این دو به کار خود ادامه دهند . این فاکتور مهم به عنوان مثال می تواند بیشترین مقدار رفت و برگشت ها ویا برخی دیگر از موارد مورد نظر توسط خود اپراتور باشد .

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

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

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

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

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

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

این فقط قسمتی از متن مقاله است . جهت دریافت کل متن مقاله ، لطفا آن را خریداری نمایید
word قابل ویرایش - قیمت 12700 تومان در 62 صفحه
127,000 ریال – خرید و دانلود
سایر مقالات موجود در این موضوع
دیدگاه خود را مطرح فرمایید . وظیفه ماست که به سوالات شما پاسخ دهیم

پاسخ دیدگاه شما ایمیل خواهد شد