If the sentiment value is better than the best sentiment value (pBest) in history
set current value as the new pBest // set the trend for this agent set
End
Send the particle with best fitness value to Aggregator // send the trend to aggregator
Choose the particle with the best fitness value of all the particles as the gBest
For each particle
Calculate particle velocity according equation (a)
Update particle position according equation (b)
End
End
v[] = v[] + c1 * rand() * (pbest[] – present[]) + c2 * rand() * (gbest[] – present[]) (a)
present[] = persent[] + v[] (b)
نمای مولفهای[۱۱۶]
این نما نشان میدهد که چه مولفههای نرمافزاری در پردازش دادهها شرکت دارند و ارتباط بین این مولفهها را شرح میدهد. اساسا پیادهسازی الگوریتم و استقرار آن در یک بستر پردازشی ایجاب میکند که بخشهای مختلف کد، بستهها[۱۱۷] و compositeها با رعایتها قواعد مربوط به چارچوبهای مهندسی نرمافزار تولید کرد.
در نمای منطقی اشاره شد که شبهکد PSO در همهی نودهای پردازشی اجرا میشود. بنابراین کد اجرا شده روی همهی سیستمها یکسان است. دادههای ورودی توسط مولفهای به نام InputAcq از CAQ خوانده میشوند.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
شکل۳‑۵- ارتباط بین مولفهها
این مولفه نوعی عامل[۱۱۸] است که تونایی ارسال و دریافت پیام است. در یک مولفه به نام BaseAgent رفتارهای پایهای یک عامل encapsulate شده است و هر مولفهی دیگر که نیازمند کاربردهایی[۱۱۹] مانند ارسال و دریافت پیام، هماهنگ کردن[۱۲۰] عملیات[۱۲۱] و غیره باشد میتواند با ارثبری از BaseAgent از این کاربردها استفاده کند.
تمام نمایی که در شکل ۳-۵ نمایش دادهشد در یک ماشین اجرا شد اما همین معماری به واسطه استفاده از message passing قابلیت مستقر شدن روی چند نود پردازشی را دارد. این مسئله امکان مقیاسپذیری در سطح مولفه را تضمین میکند.
مولفه manager وظیفه چینش این مجموعه از عامل را برعهده دارد. برای مثال manager میتواند ۵ عامل برای InputAcq ، ۳ عامل برای woker و یک عامل به عنوان Aggregator انتخاب کند. Runner مولفهای است که کل فرایند را آغاز میکند و entry point سیستم است که در process context اجرا میشود. POJOClass یک ساختار داده ساده برای انتقال اطلاعات در یک پیام است که توسط عاملها ارسال و دریافت میشود.[۱۲۲]
جمعبندی
با توجه به سه نمای معرفی شده، در پایان این بخش به طور کلی پردازش داده را نیز از ابتدا بررسی میکنیم تا معماری کلی سیستم صحتسنجی[۱۲۳] شود. این صحتسنجی این اطمینان را حاصل میکند که بدون دغدغه به پیادهسازی مدل بپردازیم.
یکی از راههای صحتسنجی معماری با انجام سناریوها صورت میپذیرد. اگر یک معماری تمام سناریوهای تعریفشده را بتواند پاسخ دهد و در سیستم جای مولفهای برای انجام یک کاربرد[۱۲۴] خالی نباشد معماری صحت لازم برای پاسخدادن به نیازمندیها را دارد. اگرچه نیازمندیهای Non-Functional را نمیتوان به طور کامل از این طریق بررسی کرد اما نیازمندیهای Functional قابل تایید از طریق سناریوها هستند.
این سیستم یک سناریوی اصلی دارد و آن کشف گرایش بلاگستان است. همانطور که در نمای منطقی توضیح داده شد دادهها که همان پستهای وبلاگ هستند در ابتدا وارد CAQها میشوند. هر نود پردازشی در مولفهی InputAcq خود یک snapshot از CAQ میگیرند. این snapshot نسبت به دادههای جدید[۱۲۵] و پردازش شده آگاه است و این آگاهی را از این طریق کسب میکند که هر دادهای که یک بار از آن snapshot گرفته شده را با یک بیت علامت[۱۲۶] مشخص میکند.[۱۲۷]
این snapshot از طریق یک پیام برای مولفهی worker ارسال میشود. این مولفه شبه کد ارائه شده در فهرست کد۳ را روی این snapshot اعمال میکند از آنجا که snapshot قابلیت تشخیص دادههای جدید را دارد تنها این دادهها در الگوریتم initilialize میشوند. سپس نتایج هر نود پردازشی به aggregator ارسال میشود و همین شبهکد در aggregator نیز اجرا میشود و گرایش عمومی بلاگستان در این مولفه مشخص میشود.
فصل چهارم
یافتههای تحقیق
مقدمه
در فصل قبل به ارائه مدلی جهت کشف گرایش بلاگستان در یک محیط توزیع شده پرداختیم. این مدل با بهرهگیری از مزایای سیستمهای توزیعشده و الگوریتمهای هوش جمعی پستهای مختلف منتشره در بلاگستان را تحلیل میکند تا گرایش کلی بلاگستان را بتواند در زمانی قابل قبول کشف کند. اجرای این الگوریتم و اسقرار آن روی یک سیستم توزیعشده نتایجی را در برداشت که در این فصل به بیان این نتایج میپردازیم و تفسیر آنها را به فصل بعد موکول خواهیم کرد.
پیکربندی
قبل از انجام آزمایش نیاز است که هم محیط آزمایش پیکربندی شود و هم پارامترهای الگوریتم PSO در زمان اجرا تعیین گردد. لارم به ذکر است برای استفاده از الگوریتم PSO از یک کتابخانه نرمافزاری به نام JSwarm استفاده شد که این کتابخانه با توجه به اینکه به صورت general طراحی شده پارامترهای مختلفی را برای setup کردن یک گروه از پرندگان[۱۲۸] نیاز دارد.
انتخاب بهترین مقدار برای پارامترهای PSO
کتابخانه JSwarm علاوه بر پارامترهای r1 و r2 نیاز به پارامترهای Evolve و dimension دارد تا یک گروه از ذرات را برای جستجو در فضای حالت مسئله setup کند. این پارامترها برای انواع دیگر PSO الزامیهستند. در الگوریتم سنتی PSO نیازی به آنها وجود ندارد[۱۲۹] اما پیادهسازی JSwarm به نحوی است که برای یک گروه ذرات با الگوریتم اصلی PSO نیز باید این مقادیر این پارامترها تعیین شود.
از همین رو برای همتراز سازی الگوریتم سنتی PSO که پایهی کاری در این پژوهش است نیاز است مقادیر این پارامترها یکبار محاسبه شود. برای این کار نتایج مورد انتظار از یک مثال ساده به الگوریتم PSO وارد شد و برای مقادیر با fitness متفاوت پارامترهای Evolve و dimension محاسبه شد.(جدول ۴-۱)
Fitness
PSO Parameters
Dimensions
Evolve
r1
r2
۲