تبليغاتX
چمران-الكترو كامپ

چمران-الكترو كامپ

وبلاگ آموزشی و تخصصی كامپيوتر و برق

الگوریتم اجتماع مورچه (Ant Colony Algorithm)

وبلاگ جدید چمران الکتروکامپ

6 الگوریتم اجتماع مورچه (Ant Colony Algorithm)

 6-1- معرفی

یکی از مسائلی که به­وسیله­ی زیست­شنا­سان مورد مطالعه قرار گرفته است درك این موضوع است که چگونه موجودات تقریبا کور مانند مورچه­ها کوتاه­ترین مسیر را از لانه­ی خود تا منبع غذا و بر عکس پیدا می­کنند.آن­ها پی بردند که یک رسانه براي ابلاغ اطلاعات بین تک­تک مورچه­ها مورد استفاده قرار می­گیرد و براي تصمیم­گیري درمورد این­که کدام مسیر را انتخاب کنند به­کار می­رود که آن رسانه عبارت است از بو(اثر) ماده­اي به­نام فرومون[1].

 الگوریتم­های لانه­ی مورچه از جمله روش­های فرامکاشفه­ای هستند که برای حل مسایل بهینه­سازی سخت پیشنهاد شده­اند. این الگوریتم­ها در آغاز از رفتارهای اجتماعی پشت سرهم قرار گرفتن و تعقیب کردن الهام گرفته شد، که در جامعه­ی مورچگان مشاهده گردید. یک اجتماع از عامل­های[2] ساده (مورچه­ها) به طور غیر مستقیم از طریق تغییرات پویای (دینامیکی) محیط ارتباط برقرار می­کنند (رد پاهایی از فرومون) و بنابراین بر اساس تجربه­ی اجتماعی آن­ها، یک راه­حل برای یک مسئله ارائه می­دهند.

نخستین الگوریتم از این نوع (سامانه­ی مورچه) برای مسئله­ی فروشنده­ی دوره­گرد طراحی شد،  اما نتایجش چندان امیدبخش نبود.  

6-2- ویژگی­های الگوریتم

این الگوریتم داراي ویژگی­هاي زیر است:

·         چند منظوره است، به عبارت دیگر می­تواند براي انواع مشابه یک مسئله به­کار رود.

·         قوي است، یعنی با کمترین تغییرات براي دیگر مسائل بهینه­سازي ترکیبی به کار برده می­شود.

·         روشی مبتنی بر جمعیت است.

6-3- رفتار طبیعی مورچه

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

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

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

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

1. مورچه­هاي مصنوعی مقداري حافظه خواهند داشت،

2. آن­ها کاملا کور نیستند،

3. آن­ها در محیطی زندگی می­کنند که زمان گسسته است.

6-4- سامانه­ی مورچه[3]

در اين بخش سامانه­ی مورچه معرفي می­شود و از مسئله­ی فروشنده­ی دوره­گرد به­عنوان معيار استفاده مي­­گردد. در مسئـله­ی فروشنده­ی دوره­گرد، يك فروشنده سفر خود را از يك شهر آغاز می­کند و پس از يك سفر كامل دوباره به شهر خودش باز مي­گردد و از هر شـهر فـقط يك­بار عبور مي­كند و در ضمن بايد از همه­ی شهرها عبور كند. هدف يافتن كوتاه­ترين مسير براي اين سفر است.

هر مورچه يك نماينده­ی ساده باويژگي­هاي زير است:

1.        يك شهر را براي رفتن انتخاب مي­كند كه تابعي از فاصله­­ی شهر و مقداربوی (اثر) موجود در آن مسير است.

2.        براي واداركردن مورچه­ها جهت انجام سفرهاي منطقي، سفر به شهرهايي كه يك­بار از آن­ها عبوركرده است ممنوع می­شود.

3.     هنگامي كه يك مورچه يك سفركامل انجام مي­دهد مقداري فرمون برروي هرمسير  و  بر جای مي­گذارد.

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

برای این­که شرط تکراری نبودن شهرها و نیز گذشتن از همه­ی آن­ها برقرار گردد، به هر مورچه یک لیست ممنوع نسبت داده می­شود که دارای شهرهای عبور کرده می­باشد.

6-5- بیان الگوریتم

با توجه به تعاريف بخش پیش الگوريتم­ها معرفي مي­شوند. در زمـان صفر يعني مرحله شروع، مورچه­ها درشـهرهاي مختـلف مستقر مي­شوند و ارزش اوليه­ی شدت بو(اثر) بر روي مسيرها تعیین می­گردد. شهر آغازين به عنوان اولين عنصر وارد ليست مي­شود. سپس هرمورچه از شهر  با تابع احتمال   به سمت شهر  حرکت می­کند، كه خود تابعي از دو معيار مطلوبيت است: يكي احتمال اين­كه در گذشته چه تعداد مورچه از مسير رفته­اند، ديگري قابليت رويت[4] كه مي­گويد شهرهاي نزديك براي مورچه­ها مطلوب­تراند.

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

قابل ذکر است که سه نوع الگوریتم مورچه وجود دارد: 1. چگالی مورچه[5]، 2. تعداد مورچه[6]، 3. دور مورچه[7].

در دو الگوريتم اول مقدار فرمون در پايان هر تكرار تعديل مي­شود. اما در الگوريتم سوم پس از پايان يك دور اين عمل انجام مي­گيرد. پس از انجا­م شدن چند دور فقط به مورچه­اي كه بهترين مسير را مي­پيمايد اجازه ترشح­كردن فرمون داده مي­شود، اين عمـل به منظور جـهت­دار كردن جستجو انجام مي­گيرد يعني با اين كار مورچه­ها در همسايگي بهترين مسـيري كه تاكـنون پیدا شـده است بـه جستـجو مـي­پردازند. دو الگوريتم اول دقيقا مثل هم هستند و فقط از لحاظ تعديل­كردن (به­روزرسانی) فرومون با هم  متفاوت­اند  .

6-6- حالت کلی الگوریتم

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

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

2.        بخش ایجاد راه­حل، که در آن هر مورچه راه­حل خودش را برای مسئله تولید می­کند، و تا زمانی که همه­ی مورچه­ها راه­حل خود را کامل کنند ادامه می­یابد،

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

6-7- مقایسه با دیگر روش­های فرامکاشفه­ای

الگوریتم کلونی مورچه دارای ویژگی­هایی در مقایسه با دیگر روش­های فرامکاشفه­ای است:

1.        محاسبات گسسته در طبیعت،

2.        فرایند تجزیه­ی واکنش توسط یکی از محصولات خودش[8]،

3.        استفاده از جستجوی حریصانه و اطلاعات اکتشافی سازنده (آگاهانه).



[1] Pheromones

[2] agent

[3] Ant System

[4] Visibility

[5] Ant Density

[6] Ant Quantity

[7] Ant Cycle

[8] Autocatalytic

+ نوشته شده در  شنبه 26 اردیبهشت1388ساعت 18:42  توسط وحید محمدی صفارزاده  | 

جستجوی تابو (Tabu Search)

وبلاگ جدید چمران الکتروکامپ

 جستجوی تابو (Tabu Search)

 تاریخچه

جستجوی تابو نخستین بار توسط فرد گلوور[1] در مقاله­ی منتشر شده در سال 1986]گلوور،1986[ بیان شد، البته این مقاله از بسیاری نظریه­های پیشنهادی در گذشته طی دهه­ی 60 استفاده کرده بود. دو مقاله­ای ]گلوور،1989،گلوور،1990[ که عنوان آنها جستجوی تابو بود بسیاری از اصولی را که امروزه شناخته شده­اند، بیان کردند. برخی از این اصول اقبال چندانی را برای مدت طولانی در میان جامعه­ی علمی به­دست نیاورد. در واقع، در نیمه­ی نخست دهه­ی 90، بیشتر کارهای تحقیقاتی در زمینه­ی جستجوی تابو، دامنه­ی کوچکی از اصول این روش[2] را به کار می­گرفت؛ که عموما محدود به یک لیست تابو[3]  و یک شرط تکاملی[4] ساده بود.


ادامه مطلب
+ نوشته شده در  دوشنبه 14 اردیبهشت1388ساعت 23:7  توسط وحید محمدی صفارزاده  | 

از ژنتیک تا مهندسی

وبلاگ جدید چمران الکتروکامپ

از ژنتیک تا مهندسی

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

بر اساس نظریه­ی سی. داروین[2] [داروین، 1859]، سازوکار اصلی تکامل موجودات زنده بر پایه­ی رقابتی است که سازگازترین افراد به محیطشان را انتخاب می­کند در حالی که هنگام انتقال ویژگی­های مفید به فرزندان که موجب بقای والدین می­شود، یک نژاد تضمین می­گردد.  این سازوکار وراثت، به ویژه، بر پایه­ی گونه­ای از همکاری است که با تکثیر جنسی انجام می­گردد.

فرضی که نظریه­ی داروین برای سازوکار تکامل به شمار آورد، که با دانش کنونی ژنتیک نیز غنی شده است، هنوز تایید نشده است. هیچ کس تا امروز تایید نکرده است که این ساز­و­کارها به طور کامل شناخته شده­اند و دیگر هیچ پدیده­ی مهم دیگری پنهان نمانده است. از این­رو مثلا لازم بود که مدت زمان زیادی  بگذرد تا بفهمیم که پرندگان چگونه پرواز می­کنند، که دلیل آن چندان به خاطر برخورد باد با بال­هایشان نبود، که دلیلی قابل مشاهده و گمراه کننده را ایجاد می­کند، بلکه دلیل آن شکل بال­های آن­ها بود، که پدیده­ی مطلوب ایرودینامیک[3] را موجب می­شود.

با  این­حال، نئو- داروینیسم[4] تنها نظریه­ی تکاملی است که تاکنون هرگز نقض نشده است. توسعه­ی ماشین­حساب­های الکترونیکی مطالعه­ی این نظریه را در شبیه­سازی آسان کرد و برخی پژوهش­گران، خیلی پیش­تر در دهه­ی 1950، علاقه­مند به آزمودن آن بر روی مسایل مهندسی بودند. اما این کار چندان راضی­کننده نبود و دلیل آن هم دانش ناکافی از ژنتیک طبیعی در آن زمان و نیز کارایی ضعیف ماشین­حساب­های موجود بود. به­علاوه، آهستگی بسیار زیاد تکامل این تفکر را که چنین فرایندی بتواند به خوبی مورد استفاده قرار گیرد، فلج کرد.

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

·         استراتژی­های تکـامل[5] (EA) از اچ. پی. شوفل[6]  و آی. ریچنبرگ[7] [ریچنبرگ، 1965، بیر، 2001] که در میـانه­ی دهه­ی 1960 هم­چون یـک روش بهینه­سازی برای مسایلی که از پارامترهای پیوسته­ی مختلفی استفاده می­کنند، طراحی شد؛

·         برنامه­نویسی تکاملی[8] (EP) از ال. جی، فوگل[9] و دیگران [فوگل و دیگران، 1966] که توانست، در میانه­ی دهه­ی 1960، ساختار ماشین­های با حالات محدود[10] را به وسیله­ی انتخاب­ها و جهش[11] های مکرر گسترش دهد؛ که این امر برای آغاز دورانی در زمینه­ی دیگری از هوش­ مصنوعی مطلوب بود.

·         الگوریتم ژنتیک[12](GA) که در 1975 توسط جی. اچ. هالند[13] [هالند، 1992] ارائه شد، با هدف درک ساز­و­کار موجود در زیر­سامانه­های خود-سازگار[14] ارایه شد.

از آن پس، بر اساس مسایل مختلفی که یابندگان این روش­ها و شاگردانشان با آن­ها برخورد داشتند، این روش­ها دست­خوش تغییرات بسیاری شدند.



[1] Patern Recognization

[2] C. Darwin

[3] Aerodynamic

[4] Neo-Darwinism

[5] Evolution Strategies

[6] H. P. Schwefel

[7] I. Rechenberg

[8] Evolutionary programming

[9] L. J. Fogel

[10] Finite-state Automata

[11] mutation

[12] Genetic Algorithm

[13] J. H. Holland

[14] Self-adaptive

+ نوشته شده در  سه شنبه 11 فروردین1388ساعت 0:30  توسط وحید محمدی صفارزاده  | 

شبکه

وبلاگ جدید چمران الکتروکامپ
 به نام خدا

شبکه (Network)

معرفي شبكه پهناور جهاني (World Wide Web)

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

پس از مقدمه ی بالا می توانید دو مقاله ای را که در "دنباله ی نوشته " برای دانلود گذاشته شده دانلود کنید.

منبع : www.persianPDF.com

مقدمه از  کتاب الکترونیکی آشنایی با تعاریف سیستمهای نرم افزار و شبکه

گرداورنده : غلامرضا امیریان

واژگان پایه : شبکه، TCP،IP،client،node،IPSEC،network

                                 

 
 

ادامه مطلب
+ نوشته شده در  شنبه 13 مهر1387ساعت 13:45  توسط وحید محمدی صفارزاده  | 

پارتیشن بندی

وبلاگ جدید چمران الکتروکامپ
به نام خدا

 

 پارتيشن بندي

پارتيشن بندي به بياني ساده، عبارت است از تقسيم كردن فضاي هارد ديسك (Hard disc) به دو يا چند قسمت به طوري كه هر يك از اين قسمت ها از ديد ويندوز همانند يك هارد ديسك مستقل عمل مي كنند. امروزه بالا رفتن فضاي هارد ديسك هايي كه براي كامپيوترها خريداري مي شود. پارتيشن بندي را امري تقريبا ضروري كرده است، چرا كه چند ديسك كوچك، بهتر از يك ديسك بزرگ اطلاعات را نگهداري مي كنند. امروزه بسياري از كامپيوترها به هارد ديسكي با ظرفيت بالا مجهزند اما از اين فضا به نحو مناسب استفاده نمي شود. معمولا اطلاعات خود شما، فايل ها و برنامه هاي ويندوز در كنا رهم روي درايو C مي نشينند و اگر اتفاقي براي سيستم بيفتد، همه چيز با هم از بين مي رود. اما با تقسيم بندي هارد به دو يا چند تكه، در واقع دو يا چند درايو مستقل از هم داريد، كه خراب شدن يكي، هيچ تاثيري روي اطلاعات بقيه درايوها نمي گذارد. بدين ترتيب. مي توانيد فايل هاي اطلاعاتي خود را از فايل هاي برنامه اي ويندوز جدا كرده و اسناد، عكس ها و فيلم هاي خود را حتي در صورت از كار افتادن ويندوز حفظ كنيد.
برای دیدن نوشته ی کامل به دنباله ی نوشته بروید.

 


ادامه مطلب
+ نوشته شده در  پنجشنبه 28 شهریور1387ساعت 7:52  توسط وحید محمدی صفارزاده  | 

DirectX

وبلاگ جدید چمران الکتروکامپ
به نام خدا

 

Directx چیست ؟

Directx

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

برای دیدن همه ی ترجمه به دنباله ی نوشته بروید.

mi118.com
 

ادامه مطلب
+ نوشته شده در  دوشنبه 25 شهریور1387ساعت 16:2  توسط وحید محمدی صفارزاده  | 

اصطلاحات دانش کامپیوتر بخش 2 terms of computer science

وبلاگ جدید چمران الکتروکامپ
سلام

 

بخش دوم اصطلاحات كامپيوتر حروف c,d در دنباله ي نوشته...


ادامه مطلب
+ نوشته شده در  سه شنبه 21 اسفند1386ساعت 12:30  توسط وحید محمدی صفارزاده  | 

منطق فازی (ترجمه)

وبلاگ جدید چمران الکتروکامپ
سلام

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

برای خواندن ترجمه به ادامه مطلب بروید.


ادامه مطلب
+ نوشته شده در  جمعه 26 بهمن1386ساعت 10:43  توسط وحید محمدی صفارزاده  | 

منطق فازی Fuzzy Logic Introduc

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

برای دیدن متن به ادامه مطلب بروید.


ادامه مطلب
+ نوشته شده در  پنجشنبه 25 بهمن1386ساعت 2:2  توسط وحید محمدی صفارزاده  | 

تاریخچه ی linux

وبلاگ جدید چمران الکتروکامپ

                                                  به نام خدا

در این پست می خواهم یک مقدار در باره ی تاریخچه ی سیستم عامل linux بگویم که برگرفته از کتاب

 Linux9 RedHat نوشته جان هال،پل سری و ترجمه سید امیر رضوی ، ملیحه دهقان و معصومه حزین می باشد.


ادامه مطلب
+ نوشته شده در  دوشنبه 22 بهمن1386ساعت 21:29  توسط وحید محمدی صفارزاده  |