در صورت تشخیص گرایش در زمان قابل قبول آیا با آموزش یک سیستم مبتنی بر الگوریتمهای یادگیری ماشین و با بهرهبرداری از دادههای مربوط به پیشنهی تغییرات در روند گرایش عمومیدر بلاگستان و کشف الگوهای تغییرات، تحلیلی از گرایشات آتی بلاگستان حاصل میشود؟
فرضیه
روشهای هوش جمعی مبتنی بر عاملهای[۶] مستقل از هم هستند که هرکدام مسیر مخصوص خود را در فضای حالت مسئله پیمایش میکند و به دنبال جواب مسئله هستند. این عاملها علاوه بر ایجاد قابلیت حل مسئله به صورت موازی، به دلیل پراکندگی در فضای مسئله، احتمال افتادن در دام کمینهی محلی[۷] را کاهش میدهند. علاوه بر این ویژگیها میتوان به موارد زیر درباره اهمیت و دلیل توجه پژوهشگران به این الگوریتمها اشاره کرد [۱]:
همگن بودن: رفتار هر عامل با دیگر عاملها یکسان است و این تضمین میکند که اگرچه فرایند حل مسئله موازی انجام میشود اما فرضیات مسئله و نحوه استدلال در این اجراهای موازی متفاوت نیست.
محلی بودن: اطلاعاتی که هر عامل از دیگر اجزاء مجموعه دریافت میکند از درجهی دوم اولویت هنگام تصمیمگیری برخوردارند و مهمترین عامل هنگام تصمیمگیری اطلاعات حسگرها و مشاهدات خود عامل است که محلی بودن جستجو برای هر عامل را تضمین میکند.
برای دانلود متن کامل پایان نامه به سایت tinoz.ir مراجعه کنید.
اجتناب از برخورد: باعث میشود که تداخل در مسیرهای حل مسئله و عبور مکرر از جوابهای مختلف به حداقل برسد.
شکل۱‑۱ تعداد مقالات در حوزههای مرتبط با هوش جمعی بر اساس گزارش Web of Science [39]
این خصوصیات و همچنین ذات توزیعشدهی عاملهای حل مسئله در الگوریتمهای هوش جمعی کمک میکنند تا با استقرار این عاملها در یک محیط پردازشی توزیع شده به طور موازی فضای حالت مسئله را بررسی کرده و پاسخهای بهینه را یافت. زمانی که فضای حالت مسئله به طور موازی مورد پردازش قرار گیرد و در صورت شکسته شدن فضای حالت [۸]، طوری که واحدهای پردازش مختلف متناسب با توانشان حجمیاز فضای حالت را پردازش کند، انتظار میرود که عملیات در زمان قابل قبولتری نسبت به حالتی که کل فضای حالت به وسیلهی یک الگوریتم غیرموازی بررسی میشود به نتیجه برسد.
تا کنون بررسیهای مختلفی در زمینهی پیشبینی حالات فردی و جمعی کاربران انجام شده. برای مثال میتوان به [۲] که سایتهای LiveJournal و WeFeelFine.org بررسی شده و در این سایتها افراد حالات روحی و روزانهی خود را ثبت میکنند و برای هرکدام برچسبهایی مانند sad، happy و غیره قرار میدهند. در [۲] این برچسبها بررسی شدهاند و حالات آتی کاربران با درصد خطای قابل قبولی پیشبینی شدهاند و این پیشبینیها در قالب نمودارهای جذابی ارائه گردیده است. در کارهای دیگری (مانند [۳] و [۴]) به وسیلهی نوعی تحلیل دیگر به نام تمایلکاوی یا گرایشکاوی[۹]، که بر اساس مدلی مبتنی بر زمان[۱۰] از واکنشهای کاربران نسبت به کالاهای مختلف است، تلاش شده که بازار آن کالا کمک کنند.
با توجه به نتایجی که از این بررسیها به دست آمده انتظار داریم که روند مشابهی در رفتار جمعی کاربران در محیط بلاگستان مشاهده کرده و بتوان با تحلیل این روند به پیشبینی رفتار آتی آنان پرداخت. برای ساخت پیشنهای از روند تغییرات گرایشات کاربران از یک الگوریتم یادگیری ماشین مثل Temporal learning، Q-Learning یا Reinforcement Learning بهره خواهیم برد و در فاز ابتدایی تغییرات گرایشات کاربران در یک بازهی زمانی مشخص را با استفاده از خصوصیات یک پیام در وبلاگ، به عنوان مجموعه دادهی آموزش در نظر میگیریم و انتظار داریم پس از آموزش بتوان گرایش بعدی کاربران را تشخیص داد، خطای محاسبه را به دست آورد و نتیجه کار را از نظر کارایی و دقت بررسی کرده با آزمونهای مناسب ارزیابی کرد.
اهمیت و ضرورت
استخراج بینش[۱۱] از انبوه زیادی از داده، کشف روابط پیچیده بین این دادهها و قابلیتهای مشابه بدون انجام عملیات دادهکاوی[۱۲] و تحلیل دادهها[۱۳] در این مجموعههای بزرگ داده امکانپذیر نیست و طیف گستردهای از سرویسها و پایگاههای اطلاعاتی از شبکههای اجتماعی بزرگ مثل توییتر[۱۴] و فیسبوک[۱۵] ، تا موتورهای جستجو و انتشارات، از دادهکاوی برای بهرهبرداری از سلایق کاربران، دقیقتر کردن نتایج جستجو و یافتن گرایشات جمعی کاربران استفاده میکنند. این قابلیتها علاوه بر بالا بردن دقت جستجو و کمک به کاربران برای دستیابی هرچه سریعتر به دادههای مورد نیازشان، تاثیر وسیعی بر رفتارهای اجتماعی کاربران نیز گذاشته است. برای مثال[۵,۶]:
تصویر درباره جامعه شناسی و علوم اجتماعی
۸۱% درصد کاربران اینترنت هنگام خرید کالا حداقل یکبار از اینترنت برای تحقیق درباره کالا استفاده میکنند.
۲۰% کاربران این جستجوها را به طور معمول هر روز انجام میدهند.
بین ۷۳% تا ۸۷% کاربرانی که نقدکالاها را در اینترنت مطالعه میکنند تاثیر این نقدها را در ارائه اطلاعات مفید برای خرید کالا مثبت ارزیابی کردهاند. (رسانههای بزرگ بهترین نقدها را به وسیلهی دادهکاوی در اختیار کاربران قرار میدهند)
این آمار نشان میدهد که کشف گرایش عمومیکاربران علاوه بر رفتار آنها در دنیای مجازی بازتابی از رفتار آنها حقیقی آنهاست که و این تحلیل در حوزهی تجارت، تبلیغات و علوم اجتماعی بسیار حائز اهمیت است.
البته گرچه مبحث دادهکاوی در حوزهی فنآوری اطلاعات حوزهی جدید و نوپایی نیست اما تمایلات و نیازهای امروزی در این حوزه که با حجمهای عظیم داده و پیچیدگیهای بیشتر روبرو است. برای مثال توییتر با ۵۰۰ میلیون کاربر فعال و ۳۴۰ میلیون توییت در روز باید روزانه بیش از ۱٫۶ میلیارد تراکنش را در دادههای خود اعمال کند و همزمان گرایشات کاربران را نیز استخراج کند[۷,۸]. این حجمهای عظیم داده و پردازش نیازهایی جدی در این حوزه ایجاب کردهاند که از آن جمله میتوان به پردازشهای دقیقتر و هوشمندانهتر در زمانی قابل قبول برای کاربر اشاره کرد. این نیاز مقدمهی ورود هوش مصنوعی[۱۶] و بهینهسازی [۱۷] به این حوزه به منظور دستیابی به نتایج صحیحتر در دادهکاوی، ارائه تحلیلهای هوشمندانهتر و کشف الگوهای رفتاری درجریان دادههای[۱۸] منتشره در وب است.
اهداف
طرح ما برای این پژوهش بررسی یک مجموعه از پستهای وبلاگهاست که این مجموعهی داده از میان وبلاگهای فنآوری انتخاب میشود. در بخش اول پژوهش عاملهای مختلف تشکیلدهندهی یک الگوریتم هوش جمعی که منابع کافی پردازشی به آنها اختصاص دادهشده است به صورت موازی به جستجو در فضای حالت مسئله خواهند پرداخت و گرایش عمومیکاربران را در بازههای زمانی مختلف کشف خواهند کرد. با توجه به اینکه پارامترهایی مربوط به زمان انتشار و مدت فعال بودن پیامهای مختلف یک وبلاگ به همراه پیام در دسترس است، میتوان روند انتشار پیامهای وبلاگ را از این برچسبهای زمانی استخراج کرد و با مقایسهی آن با زمان اجرای الگوریتم و تولید خروجی آن کارایی الگوریتم را در یافتن گرایشات کاربران در زمان قابل قبول (ارزیابی کرد. همچنین با توجه به اینکه در حال حاضر نیازهای پردازشی مدام در حال افزایش است مقیاسپذیر بودن سیستم و الگوریتم مدنظر است.
در بخش دوم پژوهش با توجه به اینکه تشخیص گرایش در زمان قابل قبول در بخش اول محقق شده است، طی یک فاز آموزش قصد داریم پستهای مربوطه را در این وبلاگها بررسی کرده و پرگرایشترین[۱۹] عناوین را مشخص کنیم و سپس در فاز آزمایش پرگرایشترین عنوان در این اجتماع را برای دورههای زمانی بعدی پیشبینی کنیم. در این راه تاکید ما بر نحوهی تاثیر الگوریتم بر حل مسئله ( و در عین حال مشاهدهی رفتار گروهی یک اجتماع در یک دورهی زمانی کوتاه) است و ابنکه دقت الگوریتم انتخاب شده به چه میزانی است و در این پیشبینی به چه عواملی وابسته است. همچنین اینکه چگونه این الگوریتم یک مدل مناسب از انتخابهای فردی و تصمیمات جمعی ارائه میدهد و چطور میتوان نگاشتی بین الگوهای رفتاری کشف شده با تفسیرها واقعی کشف کرد.
پیشینهتحقیق و کارهای مرتبط
بلاگستان[۲۰] عموما به عنوان شبکهی اجتماعی وبلاگها شناخته شده است و شامل اجتماعی از کاربران است که با هم تعامل دارند و پیوندها و اجتماعات کوچک و بزرگی را شکل میدهند. در این شبکهی اجتماعی، یک عضو برجستهی خاص، یک گفتگوی مهم را شروع میکند و عکسالعمل دیگران ممکن است به صورت گرههای ارجاعی[۲۱] یا گرههای جمعکننده[۲۲] نمایان شود. در حالت واقعی ممکن است چند عضو خاص برجسته وجود داشته باشد که گفتگوهای بزرگ و وسیع را به راه میاندازند و چندین عضو دیگر وجود داشته باشد که محتوا را از گفتگوهای مختلف جمع آوری میکنند [۱۷].
اغلب کارهای انجام شده در زمینه مدلسازی رفتار، در دادههای online و در ابعاد بزرگ، در حوزهی وبلاگها انجام شده است [۱۸,۱۹,۲۰]. در این مقالات اشاره شده، زمانی که اطلاعات بین وبلاگها منتشر میشود، نمونههایی از رفتار آبشارگونهی[۲۳] عینی و خالص (بدون تغییر داده یا نرمالسازی آن)، با تعداد تکرار کم، ظاهر میشود. مشاهدهی اینگونه رفتار به یافتن الگوهای مشابه و بررسی و پیشبینی آنها کمک میکند.
در [۹] دیدن محتوای تولیدشده در طول زمان و در محیط بلاگستان را به عنوان یک نوع ضربان روحی[۲۴] از سوی کل اجتماع وبلاگنویسان در نظر میگیرند. به این وسیله ادراک و مدلی از گفتگوهای جاری به دست میآورند و از این مدل در جستجوی وبلاگها استفاده میکنند. در همین زمینه میتوان به پروژه TREC نیز اشاره کرد که از تشخیص پستهایی که نظریهای را مطرح میکنند (در واقع همان پستهای تاثیر گذار از سوی افراد برجسته) برای جستجو در وبلاگها استفاده میکنند و در مراحل بعدی این نظریهها را دستهبندی میکند[۱۰].
در زمینهی درک گفتگوهای انجام شده در وبلاگها پژوهشهایی کاربردی ارائه شده است. برای مثال در [۱۱] احساسات و عواطف جمعی استخراج شده از وبلاگها در خوشههای[۲۵] معنیداری طبقهبندی شده و در آن ادعا شده که از این خوشهها میتوان به عنوان خط مشیهایی[۲۶] برای پیبردن به احساسات نهفته در وبلاگها استفاده کرد و با بهره گرفتن از این احساسات تبلیغات مناسب گفتگوهای در حال جریان در وبلاگها قرار داد. در همین زمینه میتوان به چارچوبی اشاره کرد که در [۱۲] معرفی شده به نام SOCA (Sentiment-oriented contextual advertising) و به وسیلهی آن میتوان تصمیمگیری کرد که تبلیغات منتشره در وبلاگها، مرتبط با محتوای وبلاگ باشند یا نزدیک به نیازهای بازار و کسانی که تبلیغات را منتشر میکنند. در واقع به وسیلهی تمایلکاوی این trade-off را پاسخ میدهد.
پارهای دیگر از تحقیقات از اطلاعات تعاملی و رابطهای استفاده میکنند تا روند تغییر حال و هوا و جو[۲۷] در اجتماعی مثل یک ستاد انتخاباتی، یا دیدگاه کاربران نسبت یک اتفاق مثل اخبار حوادث (مخصوصا حوادث جنایی) را دنبال کنند. مثلا در [۱۳] روابط تعاملی وبلاگها تحلیل میشود تا الگوهای رابطهای محلی از آنها کشف شود و از سوی دیگر با تطابق این الگوهای محلی و مفاهیم کلی و عمومیبتوان تغییرات حال و هوای اجتماع مورد بررسی را کشف و خلاصهسازی کرده و در قالب گزارش ارائه داد.
هوش جمعی همانطور که در [۱۴] و [۱۵] بیان شده، تاثیر گستردهای در مدیریت توزیعشدهی اطلاعات دارد. در [۱] به چالشهای مرتبط با زمان پاسخدهی[۲۸] که پایگاهدادههای توزیعشده هنگام تخصیص داده[۲۹]، replication و fragmentation با آن روبرو هستند اشاره شده و اهمیت آنها بیان شده است. سپس با بیان پیچیدگی محاسباتی بسیار زیاد هنگام مواجه با vertical fragmentation در مسئلههای با ابعاد بزرگ، یک الگوریتم مبتنی بر هوش جمعی معرفی شده که با کمک محلی کردن پردازشِ تراکنشها، هزینهی Vertical fragmentation را کاهش میدهد. در پژوهش دیگری [۱۵] یک الگوریتم Meta-heuristic بر مبنای بهینهسازی کلونی مورچه ارائه شده است که با توجه به استراتژیهای بهینهسازی پرسوجو[۳۰]، اعمال تمامیت[۳۱] دادهها و وجود محدودیت در حافظهی اصلی سیستمهای مورد آزمایش، زمان پاسخدهی کلی تراکنش را کاهش میدهد. به طور کلی مسائل مربوط به مدلسازی رفتاری و آماری را میتوان با راهکارهای meta-heuristic بررسی کرد [۱۶] و این خاصیت به خوبی در این پژوهش مورد استفاده قرار گرفته است. از همین جهت، به صورت تئوری، استفاده از هوش جمعی برای تحلیل وبلاگها راهکار مناسبی است.
فصل دوم
ادبیات و پیشینهتحقیق
مقدمه
در این بخش از فصل دوم یک معرفی کلی خواهیم داشت بر مفاهیم اصلی که در این پژوهش به آنها پرداخته شده است. پیش از ورود به بحثهای اصلی نیاز است مقدمهای درباره کلیدواژههای استفاده شده در این پژوهش بیان شود تا سیر منطقی مطلب رعایت شود. همچنین این قسمت به نحوی مرجع تعریف این کلیدواژههاست که در ادامهی کار در صورت لزوم ارجاعاتی به آن شده است.
هوش جمعی
هوش جمعی یا هوش ازدحامییا هوش گروهی[۳۲] نوعی روش هوش مصنوعی است که استوار بر رفتارهای گروهی در سامانههای نامتمرکز و خودسامانده بنیان شده است. این سامانهها معمولاً از جمعیتی از کنشگران ساده تشکیل شده است که بطور محلی با یکدیگر و با پیرامون خود در همکنشی هستند. با وجود اینکه معمولاً هیچ کنترل تمرکزیافتهای، چگونگی رفتار کنشگران را به آنها تحمیل نمیکند، همکنشیهای محلی آنها به پیدایش رفتاری عمومیمی انجامد. نمونههایی از چنین سامانهها را میتوان در طبیعت مشاهده کرد؛ گروههای مورچهها، دستهی پرندگان، گلههای حیوانات، انبوه باکتریها و دسته های ماهی. روباتیک گروهی، کاربردی از اصول هوش مصنوعی گروهی در شمار زیادی از روباتهای ارزان قیمت است.
شکل۲‑۱ نمایی از یک گروه پرنده[۴۰]
فرض کنید شما و گروهی از دوستانتان به دنبال گنج میگردید. هر یک از اعضای گروه یک فلزیاب و یک بیسیم دارد که میتواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد. بنابراین شما میدانید آیا همسایگانتان از شما به گنج نزدیکترند یا نه؟ پس اگر همسایهای به گنج نزدیکتر بود شما میتوانید به طرف او حرکت کنید. با چنین کاری شانس شما برای رسیدن به گنج بیشتر میشود و همچنین گنج زودتر از زمانی که شما تنها باشید، پیدا میشود.
این یک نمونه ساده از رفتار جمعی و گروهی[۳۳] است که افراد برای رسیدن به یک هدف نهایی همکاری میکنند. این روش کاراتر از زمانی است که افراد جداگانه کنش کنند. Swarm را میتوان به صورت مجموعهای سازمان یافته از عاملها[۳۴] یا موجوداتی تعریف کرد که با یکدیگر همکاری میکنند. در کاربردهای محاسباتی هوش ازدحامییا گروهی[۳۵] از موجودات یا عاملهایی مانند مورچهها، زنبورها، موریانهها، ماهیها، پرندگان، و یا حتی چکههای آب در رودخانه الگو برداری میشود. در این نوع اجتماعات هر یک از موجودات یا عاملها ساختار نستباً سادهای دارند ولی رفتار گروهی آنها پیچیده به نظر میرسد. برای نمونه، در کولونی مورچهها، هر یک از مورچهها یک کار سادهی ویژهای را انجام میدهد ولی به طور گروهی، کردار و رفتار مورچهها؛ ساختن لانه، نگهبانی از ملکه و نوزادان، پاکداری لانه، یافتن بهترین منابع خوراکی و بهینهسازی راهبرد جنگی را تضمین میکند. رفتار کلی یک Swarm به گونهی غیر خطی از همآمیختگی رفتارهای تک تک اجتماع بدست میآید. یا به زبانی دیگر، یک رابطهی بسیار پیچیده میان رفتار گروهی و رفتار فردی یک اجتماع وجود دارد. رفتار گروهی، تنها وابسته به رفتار فردی عاملها و افراد اجتماع نیست بلکه به چگونگی همکنشی[۳۶] و تعامل میان افراد نیز وابسته است. همکنشی بین افراد، تجربهی افراد دربارهی پیرامون[۳۷] را افزایش میدهد و مایه پیشرفت اجتماع میشود. ساختار اجتماعی Swarm بین افراد مجموعه کانالهای ارتباطی ایجاد میکند که طی آن افراد میتوانند به داد و ستد تجربههای شخصی بپردازند. مدلسازی محاسباتی Swarmها کاربردهای امیدبخش و بسیاری را به ویژه در زمینه بهینه سازی[۳۸] در پی داشته است. الگوریتهای فزایندهای از بررسی Swarmهای گوناگون پیشنهاد شدهاند. از این رده، میتوان به کولونی مورچهها[۳۹] و دستهی پرندگان[۴۰] اشاره نمود. با اینکه دانش هوش جمعی[۴۱]، دانشی نو میباشد؛ هم اکنون، کاربردهای رو به گسترشی از آن شناخته شده است. با این رشد روزافزون، هوش جمعی میتواند نقش ارزندهای را در دانشهای گوناگون بر دوش بگیرد.
الگوریتم کلونی مورچهها[۴۲]
روش بهینهسازی گروه مورچهها یکی از زیر شاخههای هوش گروهی است که در آن از رفتار مورچههای واقعی برای یافتن کوناهترین گذرگاه میان لانه و چشمه خوراکی[۴۳] الگوبرداری شده است. هر مورچه برای یافتن خوراک در گرداگرد لانه به گونه تصادفی حرکت و در طی راه با بهره گیری از ماده شیمیایی به نام فرومن، از خود ردی بر جای میگذارد. هر چه شمار مورچههای گذر کرده از یک گذرگاه بیشتر باشد، میزان فرومن انباشته روی آن گذرگاه نیز افزایش مییابد. مورچههای دیگر نیز برای گزینش گذرگاه، به میزان فرومن آن مینگرند و به احتمال زیاد گذرگاهی را که دارای بیشترین فرومن است بر میگزینند. به این شیوه، حلقه بازخور مثبت پدید میآید. گذرگاه هرچه کوتاهتر باشد، زمان رفت و برگشت کاهش و مورچه بیشتری در یک زمان مشخص از آن میگذرد. از این رو، انباشت فرومن آن افزایش مییابد. شایان یادآوری است که گزینش گذرگاه دارای بیشترین فرومن، قطعی نیست و احتمالی است. به همین سبب، امکان یافتن بهترین جواب[۴۴] وجود دارد. روش ACO، نوعی فرااکتشافی است که برای یافتن گشایشهای تقریبی برای مسائل بهینهسازی آمیختاری[۴۵] سودمند است.
شکل۲‑۲ – روال حرکت مورچه در ACO [41]
روش ACO، مورچههای ساختگی بهوسیلهی حرکت بر روی گرافِ مساله و با وانهادن[۴۶] نشانههایی بر روی گراف، همچون مورچههای واقعی که در گذرگاه خود نشانههای به جا میگذارند، سبب میشوند که مورچههای ساختگی بعدی بتوانند گشایشهای بهتری را برای مساله فراهم نمایند. [۲۱]
PSO یا بهینه سازی گروهی ذرات
روش بهینهسازی ازدحام ذرات[۴۷] یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دسته های پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینهی دسته به کار گرفته شد. در PSO، ذرات[۴۸] در فضای جستجو جاری میشوند. تغییر مکان ذرات در فضای جستجو تحت تأثیر تجربه و دانایی خودشان و همسایگانشان است. بنابراین موقعیت دیگر ذرات[۴۹] Swarm روی چگونگی جستجوی یک ذرات اثر میگذارد. نتیجهی مدلسازی این رفتار اجتماعی فرایند جستجویی است که ذرات به سمت نواحی موفق میل میکنند. ذرات در Swarm از یکدیگر میآموزند و بر مبنای دانایی بدست آمده به سمت بهترین همسایگان خود میروند. اساس کار PSO بر این اصل استوار است که در هر لحظه هر ذره مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگیاش وجود دارد، تنظیم میکند. فرض کنید میخواهیم زوج مرتب (x,y) را طوری بدست آوریم که تابع ،F(x,y)=2x+y، مینیمم شود. ابتدا نقاطی را به صورت تصادفی در فضای جستجو، روی صفحهی x-y انتخاب میکنیم. فرض کنید این Swarm را به ۳ همسایگی تقسیم کنیم که در هر همسایگی نقاط موجود با یکدیگر تعامل دارند. در هر همسایگی هر یک از نقاط به سمت بهترین نقطه در آن همسایگی و بهترین مکانی که آن نقطه تاکنون در آن قرار داشته است، حرکت میکند. برای حل یک مسئله چند متغیر بهینهسازی میتوان از چند Swarm استفاده کرد که هر یک از Swarmها کار مخصوصی را انجام میدهند. این همان ایدهای است که کلونی مورچه از آن ریشه میگیرد. روش PSO یک الگوریتم روش جستجوی سراسری [۵۰] است که با بهرهگیری از آن میتوان با مسائلی که پاسخ آنها یک نقطه یا سطح در فضای n بعدی میباشد، برخورد نمود. در اینچنین فضایی، فرضیاتی مطرح میشود و یک سرعت ابتدایی به آنها اختصاص داده میشود، همچنین کانالهای ارتباطی بین ذرات درنظر گرفته میشود. سپس این ذرات در فضای پاسخ حرکت میکنند، و نتایج حاصله بر مبنای یک «ملاک شایستگی» پس از هر بازهی زمانی محاسبه میشود. با گذشت زمان، ذرهها به سمت ذرههایی که دارای سنجه شایستگی بالاتری هستند و در گروه ارتباطی یکسانی قرار دارند، شتاب میگیرند. مزیت اصلی این روش بر راهبردهای بهینهسازی دیگر، این است که شمار فراوان ذرات ازدحام کننده، سبب نرمش پذیری و انعطاف روش در برابر مشکل پاسخ بهینه محلی [۵۱] میگردد.[۲۲, ۲۳]
ایده PSO، برای اولین بار توسط کندی و ابرهارت در سال ۱۹۹۵ مطرح شد. PSO، یک الگوریتم محاسبه ای تکاملی الهام گرفته از طبیعت و براساس تکرار میباشد. منبع الهام این الگوریتم، رفتار اجتماعی حیوانات، همانند حرکت دسته جمعی پرندگان و ماهیها بود. از این جهت که PSO نیز با یک ماتریس جمعیت تصادفی اولیه، شروع میشود، شبیه بسیاری دیگر از الگوریتمهای تکاملی همچون الگوریتم ژنتیک پیوسته و الگوریتم رقابت استعماری است. برخلاف الگوریتم ژنتیک ، PSO هیچ عملگر تکاملی همانند جهش و تزویج ندارد. از این جهت میشود گفت که الگوریتم رقابت استعماری شباهت بیشتری به PSO دارد تا به GA.[52] هر عنصر جمعیت، یک ذره نامیده میشود (که همان معادل کروموزوم در GA و یا کشور در الگوریتم رقابت استعماری) است. در واقع الگوریتم PSO از تعداد مشخصی از ذرات تشکیل میشود که به طور تصادفی، مقدار اولیه می گیرند. برای هر ذره دو مقدار وضعیت و سرعت، تعریف میشود که به ترتیب با یک بردار مکان و یک بردار سرعت، مدل میشوند. این ذرات، بصورت تکرارشونده ای در فضای nـبعدی مسئله حرکت میکنند تا با محاسبه مقدار بهینه بودن به عنوان یک ملاک سنجش، گزینههای ممکن جدید را جستجو کنند. بُعد فضای مسئله، برابر تعداد پارامترهای موجود در تابع مورد نظر برای بهینه سازی می باشد. یک حافظه به ذخیره بهترین موقعیت هر ذره در گذشته و یک حافظه به ذخیره بهترین موقعیت پیش آمده در میان همه ذرات، اختصاص مییابد. با تجربه حاصل از این حافظهها, ذرات تصمیم می گیرند که در نوبت بعدی، چگونه حرکت کنند. در هر بار تکرار، همه ذرات در فضای nـبعدی مسئله حرکت میکنند تا بالاخره نقطه بهینه عام، پیدا شود. ذرات، سرعتهایشان و موقعیتشان را بر حسب بهترین جوابهای مطلق و محلی بهروز میکنند. یعنی:
رابطه ۲-۱
رابطه ۲-۲
که در آن :
سرعت ذره :
متغیرهای ذره :
اعداد تصادفی مستقل با توزیع یکنواخت: ,
فاکتورهای یادگیری : ,
بهترین جواب محلی :
بهترین جواب مطلق :
میباشند. الگوریتم PSO، بردار سرعت هر ذره را بهروز کرده و سپس مقدار سرعت جدید را به موقعیت و یا مقدار ذره میافزاید. بهروز کردنهای سرعت، تحت تأثیر هر دو مقدار بهترین جواب محلی و بهترین جواب مطلق قرار میگیرند. بهترین جواب محلی و بهترین جواب مطلق، بهترین جوابهایی هستند که تا لحظهی جاری اجرای الگوریتم، به ترتیب توسط یک ذره و در کل جمعیت به دست آمدهاند. ثابتهای , به ترتیب، پارامتر ادراکی و پارامتر اجتماعی نامیده میشوند. مزیت اصلی PSO این است که پیادهسازی این الگوریتم ساده بوده و نیاز به تعیین پارامترهای کمی دارد. همچنین PSO قادر به بهینهسازی توابع هزینهی پیچیده با تعداد زیاد مینیمم محلی است.
شکل ۰۲‑۳ به روز رسانی بردار سرعت و مکان در PSO [42]
در زیر شبه کد مربوط به الگوریتم PSO آورده شده است:
For each particle
Initialize particle
END
Do
For each particle
Calculate fitness value
If the fitness value is better than the best fitness value (pBest) in history
set current value as the new pBest
End
Choose the particle with the best fitness value of all the particles as the gBest