Xi(k + 1) = Xi(k) + Vi(k + 1)
حال مراحل الگوریتم فراابتکاری PSO استاندارد را به طور خلاصه در مراحل ذیل تشریح میکنیم:
مرحله ۱ : ابتدا به یک جمعیت از ذرات، مکان و سرعت اولیه به صورت تصادفی داده میشود.
مرحله ۲ : حال P-best و G-best را در مرحله کنونی محاسبه میکنیم.
مرحله ۳ : سرعت و مکان هر ذره را در مرحله جدید طبق دو فرمول بالا بروزرسانی میکنیم.
مرحله ۴ : اگر معیار توقف ما ارضا شد توقف میکنیم و گرنه به مرحله ۲ بازمیگردیم.
در اینجا میخواهیم نشان دهیم که الگوریتم فراابتکاری PSO حالت خاصی از الگوریتم فراابتکاری ASO است. برای این کار ابتدا بردارهای ذیل را معرفی میکنیم :

(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))

(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))

Vicurrent(k) = ω Visum(k)
Visociety(k) = ʎ۱r1(k) [G(k) – Xi(k)]
Vipast(k) = ʎ۲r2(k) [ Pi(k) – Xi(k)]
جاییکه فرمول کلی ذیل داریم:
Visum(k) = Vicurrent (k – ۱) + Visociety(k – ۱) + Vipast(k – ۱)
حال سیاستهای حرکتی و قانون ترکیب را به صورت ذیل تعریف میکنیم:
سیاست حرکتی MPicurrent(k) را به صورت حرکت ذره i ام در مرحله k ام با سرعت Vicurrent(k) در فاصله زمانی یک واحد زمانی در نظر میگیریم. سیاست حرکتی MPisociety(k) را به صورت حرکت ذره i ام در مرحله k ام با سرعت Visociety(k) در فاصله زمانی یک واحد زمانی در نظر میگیریم. سیاست حرکتی MPipast(k) را به صورت حرکت ذره i ام در مرحله k ام با سرعت Vipast(k) در فاصله زمانی یک واحد زمانی در نظر میگیریم. قانون ترکیب را به صورت دنباله ای از سه سیاست حرکتی یاد شده در نظر میگیریم. مکان جدید عضو i ام بعد از بکار بردن سیاستهای حرکتی بالا مشابه این حالت است که ذره با سرعت ذیل در مرحله ۱+k ام برای یک واحد زمانی حرکت کند:
Visum(k + 1) = Vicurrent (k ) + Visociety(k ) + Vipast(k )
بنابراین با توضیحات یاد شده در الگوریتم فراابتکاری ASO نیز مشابه PSO فرمول ذیل را داریم:
Xi(k + 1) = Xi(k) + Vi(k + 1)
پس میتوان نتیجه گرفت که الگوریتم فراابتکاری PSO حالت خاصی از الگوریتم فراابتکاری جدید ASO است، پس میتوان از ساختار الگوریتم ASO برای همه مسائلی که در گذشته از الگوریتم فراابتکاری PSO برای حل آن استفاده میشد، سود جست، به خصوص برای مسائلی که از الگوریتم فراابتکاری PSOبرای مسائل پیوسته بکارگرفته میشد.

فصل چهارم

پیاده سازی الگوریتم ASO و ارائه نتایج

۴-۱)الگوریتم ASO طراحی شده برای مساله

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

۴-۱-۱)کدگذاری و شیوه نمایش جواب­ها

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

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

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

شکل۴-۱: شکل شماتیک یک مثال از مساله RCPSP
این جواب به صورت آرایه زیر کدبندی می­ شود

شکل ۴-۲ : ساختار جواب مرتبط با مثال شکل ۴-۱
در کدبندی جواب ها، هر گاه دو کار زمان شروع برابر داشتند به صورت قراردادی کاری که شماره کوچکتر دارد، جلوتر از کار با شماره بزرگتر قرار می­گیرد(کارهای ۳ و ۴ یا کارهای ۵ و ۶ و یا … در شکل بالا).
برای استفاده از این کدبندی باید بتوان با داشتن هر آرایه­ای، جواب متناظر با آن را بدست آورد. بدست آوردن جواب از روی ساختار جواب با بهره گرفتن از الگوریتم زیر صورت می­گیرد.
الگوریتم ۴-۱ بدست آوردن جواب از روی ساختار جواب
If and solution is infeasible and return

For i=1 to N
{

For j=1 to N
If then

While do
{

For j=min to

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...