فرض كنید شما و گروهی از دوستانتان به دنبال گنج میگردید. هر یك از اعضای گروه یك فلزیاب و یك بیسیم دارد كه میتواند مكان و وضعیت كار خود را به همسایگان نزدیك خود اطلاع بدهد. بنابراین شما میدانید آیا همسایگانتان از شما به گنج نزدیكترند یا نه؟ پس اگر همسایهای به گنج نزدیكتر بود شما میتوانید به طرف او حركت كنید. با چنین كاری شانس شما برای رسیدن به گنج بیشتر میشود و همچنین گنج زودتر از زمانی كه شما تنها باشید، پیدا میشود.
این یك مثال ساده از رفتار جمعی یا Swarm behavior است كه افراد برای رسیدن به یك هدف نهایی همكاری میكنند. این روش مؤثرتر از زمانی است كه افراد جداگانه عمل كنند. Swarm را میتوان به صورت مجموعهای سازمان یافته از موجوداتی تعریف كرد كه با یكدیگر همكاری میكنند. در كاربردهای محاسباتی Swarm intelligence از موجوداتی مانند مورچهها، زنبورها، موریانهها، دستههای ماهیان و دستهی پرندگان الگو برداری میشود. در این نوع اجتماعات هر یك از موجودات ساختار نستباً سادهای دارند ولی رفتار جمعی آنها بینهایت پیچیده است. برای مثال در كولونی مورچهها هر یك از مورچهها یك كار سادهی مخصوص را انجام میدهد ولی به طور جمعی عمل و رفتار مورچهها، ساختن بهینهی لایهء محافظت از ملكه و نوزادان، تمیز كردن لانه، یافتن بهترین منابع غذایی و بهینهسازی استراتژی حمله را تضمین میكند. رفتار كلی یك Swarm به صورت غیر خطی از آمیزش رفتارهای تكتك اجتماع بدست میآید یا به عبارتی یك رابطهی بسیار پیچیده بین رفتار جمعی و رفتار فردی یك اجتماع وجود دارد. رفتار جمعی فقط وابسته به رفتار فردی افراد اجتماع نیست بلكه به چگونگی تعامل میان افراد نیز وابسته است. تعامل بین افراد، تجربهی افراد دربارهی محیط را افزایش میدهد و موجب پیشرفت اجتماع میشود. ساختار اجتماعی Swarm بین افراد مجموعه كانالهای ارتباطی ایجاد میكند كه طی آن افراد میتوانند به تبادل تجربههای شخصی بپردازند، مدلسازی محاسباتی Swarmها كاربردهای موفق و بسیاری را در پی داشته است مانند:
Function optimization, Finding optimal roots, scheduling, structural optimization, Image and data analysis
كاربردهای زیادی از مطالعهی Swarmهای مختلف وجود دارد. از این دسته میتوان به كولونی مورچهها (Ant Colony) و دستهی پرندگان (Bird Flocks) اشاره نمود.
Particle Swarm Optimization : PSO
الگوریتم PSO یك الگوریتم جستجوی اجتماعی است كه از روی رفتار اجتماعی دستههای پرندگان مدل شده است. در ابتدا این الگوریتم به منظور كشف الگوهای حاكم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شكل بهینهی دسته به كار گرفته شد. در PSO، particleها در فضای جستجو جاری میشوند. تغییر مكان particleها در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است. بنابراین موقعیت دیگر particleهای Swarm روی چگونگی جستجوی یك particle اثر میگذارد. نتیجهی مدلسازی این رفتار اجتماعی فرایند جستجویی است كه particleها به سمت نواحی موفق میل میكنند. Particleها در Swarm از یكدیگر میآموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود میروند.
Particle swarm Optimitation Algorithm
اساس كار PSO بر این اصل استوار است كه در هر لحظه هر particle مكان خود را در فضای جستجو با توجه به بهترین مكانی كه تاكنون در آن قرار گرفته است و بهترین مكانی كه در كل همسایگیاش وجود دارد، تنظیم میكند.
فرض كنید میخواهیم زوج مرتب [x,y] را طوری بدست آوریم كه تابع F(x,y)=x2+y2، مینیمم شود. ابتدا نقاطی را به صورت تصادفی در فضای جستجو، روی صفحهی x-y انتخاب میكنیم. فرض كنید این Swarm را به 3 همسایگی تقسیم كنیم كه در هر همسایگی نقاط موجود با یكدیگر تعامل دارند. در هر همسایگی هر یك از نقاط به سمت بهترین نقطه در آن همسایگی و بهترین مكانی كه آن نقطه تاكنون در آن قرار داشته است، حركت میكند. برای حل یك مسئله چند متغیر بهینهسازی میتوان از چند Swarm استفاده كرد كه هر یك از Swarmها كار مخصوصی را انجام میدهند. این همان ایدهای است كه Ant colony از آن ریشه میگیرد. از آنجا كه دانش Swarm intelligence بسیار جدید است در حال حاضر كاربردهای كمی از آن شناخته شده است. ولی صاحبنظران معتقدند با این رشد روزافزون، Swarm intelligence میتواند نقش مهمی را در علوم مختلف از جمله مهندسی نفت ایفا كند.
تهیه کنندگان:
نیما حمیدیان دانشجوی مهندسی حفاری
حامد دارابی دانشجوی مهندسی بهره برداری
منبع:
http://www.petroleumtimes.com/articles/index.php