فرض کنید در یک ترکیبی از سرویسها ۸ سرویس انتزاعی و برای هر سرویس نیز ۱۵ وب سرویس واقعی وجود دارد اگر درصد همانند سازی را ۰.۷ در نظر بگیریم این بدان معناست که تقریباً مقادیر ۶ تا از سرویسهای انتزاعی استعمارگر در سرویسهای انتزاعی متناظر با آن در مستعمره عیناً کپی میشوند. همچنین برای بالا بردن کارایی رویکرد از پارامتر دیگری به نام جستجو همسایگی استفاده میشود این پارامتر بدین گونه عمل میکند:
در ابتدا مستعمرهای که توسط پارامتر همانند سازی به سمت استعمارگر حرکت کرده است را انتخاب میکنیم سپس یکی از سرویسهای انتزاعی آن را به طور تصادفی انتخاب و مقدار داخلش را به یک کد دودویی تبدیل میکنیم در ادامه تمامی مقادیر کد دودویی به دست آمده را معکوس کرده و مجدداً آن را به مبنای ۱۰ تبدیل میکنیم.
در شکل ۳-۹ نحوه اجرای عملگرهای همانند سازی و جستجوی همسایگی آورده شده است.
در رویکرد رقابت استعماری بر خلاف رویکرد ژنتیک در صورت به وجود آمدن یک جواب غیر ممکن آن جواب حذف شده و بار دیگر عمل همانند سازی انجام خواهد شد. دلیل این امر این است که در رویکرد ICA در هر چرخه اجرای رویکرد، ضعیفترین مستعمره به سمت استعمارگر خود حرکت میکند و در صورتی که ما در این رویکرد جوابهای غیر قابل قبول را نیز به عنوان مستعمره در مجموعه جوابها در نظر بگیریم آنگاه ممکن است تعداد زیادی مستعمره داشته باشیم که میزان برازندگی آنها برابر صفر باشد که این روال کار رویکرد را دچار مشکل میکند.
شکل ۳-۹ : عملگرهای همانند سازی و جستجوی همسایگی
۳-۵-۳-۳ جابجایی موقعیت مستعمره و امپریالیست
در حین حرکت مستعمرات به سمت کشور استعمارگر، ممکن است بعضی از این مستعمرات به موقعیتی بهتر از استعمارگر برسند (مقدار تابع برازش آنها نسبت به استعمارگر بالاتر باشد.) در این حالت، کشور استعمارگر و کشور مستعمره، جای خود را با یکدیگر عوض کرده و مستعمره بعد از همانند سازی به عنوان استعمارگر و استعمارگر قبلی مستعمره آن خواهد شد. در ادامه باقی مستعمرهها به سمت استعمارگر در موقعیت جدید حرکت میکنند تغییر جای استعمارگر و مستعمره، در شکل ۳-۱۰ نشان داده شده است که در آن بهترین مستعمرهی امپراطوری، که نسبت به استعمارگر خود میزان برازندگی بیشتری دارد، به رنگ روشنتر، نشان داده شده است. شکل ۳-۱۱، کل امپراطوری را پس از تغییر موقعیتها، نشان میدهد.
شکل ۳-۱۰: تغییر جای استعمارگر و مستعمره | شکل ۳-۱۱: کل امپراطوری،پس از تغییر موقعیتها |
۳-۵-۳-۴ قدرت کل یک امپراطوری
. قدرت کل هر امپراطوری به دو بخش تشکیل دهنده آن بستگی دارد. در حالت کلی قدرت کل امپراطوری را میتوان به صورت مجموع قدرت کشور استعمارگر به اضافه درصدی از قدرت میانگین مستعمرات آن تعریف نمود.
رابطه ۳-۹ |
که در آن میزان برازندگی کل امپراطوری n ام و عددی مثبت است که معمولاً بین صفر و یک و نزدیک به صفر در نظر گرفته میشود. بعد از مشاهده نتایج شبیه سازی به این نتیجه رسیدیم که مناسبترین مقدار برای برابر ۰.۰۵ است.
۳-۵-۳-۵ رقابت استعماری
رقابت استعمارگران بدین صورت میباشد که آنها برای تصاحب ضعیفترین مستعمره از ضعیفترین استعمارگر با یکدیگر به رقابت میپردازند تا آن مستعمره را تصاحب کنند بنابراین هر امپراطوریای که نتواند بر قدرت خود بیفزاید و قدرت رقابت خود را از دست بدهد، در جریان رقابتهای امپریالیستی، حذف خواهد شد و به مرور زمان، امپراطوریهای ضعیف، مستعمرات خود را از دست داده و امپراطوریهای قویتر، این مستعمرات را تصاحب کرده و بر قدرت خویش میافزایند. رقابت استعماری بر اساس قدرت کل امپراطوری مدل شده است، در این رقابت هر استعمارگر شانسی برای جذب مستعمرات ضعیف به خود دارد و برای تصاحب این مستعمرات، رقابتی میان کلیه امپراطوریها ایجاد میشود. مستعمرات مذکور، لزوماً توسط قویترین امپراطوری، تصاحب نخواهند شد، بلکه امپراطوریهای قویتر، شانس بالاتری برای تصاحب آن دارند. مکانیزم این تخصیص بر اساس الگوریتم چرخ رولت صورت میگیرد شکل ۳-۱۲ شمای کلی رقابت استعمارگران را نشان میدهد. در ادامه رقابتهای امپریالیستی، امپراطوریهای ضعیف به تدریج مستعمرات خود را از دست داده و مستعمراتشان به دست امپراطوریهای قویتر میافتند. زمانی که یک امپراطوری تمامی مستعمرات خود را از دست داده باشد آن امپراطوری سقوط کرده و حذف شده تلقی میشود.
پس از مدتی، همه امپراطوریها، سقوط کرده و تنها یک امپراطوری خواهیم داشت و بقیه کشورها تحت کنترل این امپراطوری واحد، قرار میگیرند در چنین موقعیتی رقابت امپریالیستی به پایان رسیده و به عنوان یکی از شروط توقف، الگوریتم متوقف میشود.
شکل ۳-۱۲ : شمای کلی رقابت استعماری: امپراطوریهای بزرگتر، با احتمال بیشتری، مستعمرات امپراطوریهای دیگر را تصاحب میکنند.
شبه کد مربوط به الگوریتم رقابت استعماری در شکل ۳-۱۳ آمده است:
شکل ۳-۱۳ : شبه کد مربوط به الگوریتم فرا ابتکاری رقابت استعماری
۳-۵-۴ رویکرد جریان آب
رویکرد جریان آب یک رویکرد تکاملی است و یک تکنیک همه منظوره برای حل مسائل به حساب میآید. رویکردهای تکاملی در
ابتدا شامل مجموعهای منفرد میباشند که این اجزا بر اساس قواعدی توسعه پیدا میکنند. این رویکرد از رفتار طبیعی جریان آب از نقاط مرتفع به نقاط کم ارتفاع الهام گرفته است که در آن هر جریان آب در مسیر خود با عبور از ناهمواریها به سمت نقاط پستتر جریان مییابد. جریانها در صورت دارا بودن انرژی جنبشی کافی برای غلبه بر موانع بالقوه پیش رو انشعاب یافته و به چندین زیر جریان تقسیم میشوند و این زیر جریانها نیز مانند جریان اصلی به مسیر خود به سمت نقاط کم ارتفاع ادامه میدهند.
در طول مسیر زمانی که دو جریان به یک نقطه مشترک میرسند با یک دیگر ادغام شده و یک جریان واحد را تشکیل میدهند همچنین زمانی که جریانی انرژی کافی برای حرکت نداشته باشد آن جریان متوقف، سپس تبخیر شده و به صورت باران در نقطه دیگری فرود میآید [۴۳]. . WFA یک رویکرد تکاملی است که شامل چهار عملیات جریان آب میباشد: انشعاب و حرکت، ادغام، تبخیر و بارش.
شکل ۳-۱۴: نمای کلی رویکرد جریان آب
در این رویکرد هر یک از جریانهای آب به عنوان یک راه حل از مسئله میباشند که با توجه به میزان برازندگی آن جریان، که توسط تابع برازش محاسبه میشود راه حلهای جدید با برازندگی بالاتر تولید میشود. در طراحی این رویکرد از رفتارهای طبیعی جریان آب بهره گرفته شده است که در ادامه چند مورد از آنها آمده است:
-
- بر اساس نیروی جاذبه و قانون بقای انرژی آب دائماً از ارتفاعات بالاتر به پایینتر جریان مییابد بنابراین جستجوی جوابها در تکرارهای متوالی، از راه حل های نامرغوب به راه حل های بهتر حرکت میکنند.
-
- جریانهایی که به سمت نقاط پستتر در حرکت میباشند در طول مسیر از نواحی ناهموار عبور میکنند در صورتی که نیروی جنبشی جریان قدرت کافی در مواجهه با نواحی ناهموار را داشته باشد، آن جریان انشعاب یافته و به چندین زیر جریان تقسیم میشود. WFA این رفتار را به صورت عملیات تقسیم عاملها شبیه سازی کرده که در نتیجه از یک عامل بیش از دو عامل بدست میآید. یک جریان با انرژی حرکتی و جنبشی بالاتر نسبت به جریانی با انرژی جنبشی کمتر ، زیر جریانهای بیشتری تولید میکند و در صورتی که یک جریان انرژی کافی برای حرکت را نداشته باشد ثابت باقی مانده و دیگر زیر جریانی از آن تولید نمیشود.
-
- جریان آب دائماً به سمت ارتفاعات پایینتر حرکت میکند گاهی در صورت بالاتر بودن انرژی جنبشی آن از انرژی پتانسیل مورد نیاز به سمت نقاط بالاتر نیز جاری میشود. برای جلوگیری از قرار گرفتن در یک مینیمم محلی، WFA این اجازه را به جریان آب میدهد تا به یک محل بدتر جریان یابد.
-
- زمانی که تعدادی از جریانها در یک موقعیت یکسان قرار میگیرند WFA برای جلوگیری از جستجوهای اضافه، آن جریانها را با یکدیگر ادغام میکند تا تعداد عاملهای جواب کاهش یابد.
-
- در طبیعت یک جریان میتواند تبخیر شود و در جو قرار گیرد سپس آب تبخیر شده میتواند به صورت بارش به زمین بازگردد. در WFA برای شبیه سازی تبخیر آب، قسمتی از جریان حذف میشود همچنین برای جستجوی فضاهای بیشتر عملگر بارش در WFA شبیه سازی شده است.
۳-۵-۴-۱ عملگرهای جریان آب
در ادامه عملگرهای WFA که در [۴۴] آمده است را برای حل مسئله مطرح شده در این تحقیق منطبق میکنیم تا با بهره گرفتن از این رویکرد مناسبترین ترکیب از وب سرویسها برای برآورده سازی نیازهای عملیاتی و کیفی کاربران انتخاب شود. در رویکرد WFA یک جریان نشان دهنده یک حالت از بیشمار حالت به وجود آمده برای ترکیب وب سرویسها میباشد و معادل واژه کروموزوم در ژنتیک و کشور در رویکرد رقابت استعماری است. بنابراین هر جریان تعدادی سرویس انتزاعی را شامل میشود و با در کنار هم قرار گرفتن مقادیر مختلف برای تمامی سرویسهای انتزاعی یک ترکیبی از وب سرویسها ایجاد میشود.
۳-۵-۴-۱-۱ ایجاد جمعیت اولیه
به عنوان اولین مرحله در رویکرد WFA باید یک مجموعه جوابهای شدنی به طول L که معمولاً تصادفی ایجاد میشوند به عنوان جریان اصلی و زیر جریانات آن انتخاب کنیم(مقدار پارامتر L توسط کاربر تعیین میشود) در ادامه جوابی که کمترین میزان برازندگی را دارد را به عنوان جریان اصلی و مابقی جریانات به عنوان زیر جریان آن محسوب میشوند.
۳-۵-۴-۱-۲ انشعاب و حرکت جریان آب
در رویکرد WFA حرکت هر جریان آب مبتنی بر انرژی جنبشی آن میباشد که بر اساس سرعت و حجم جریان آب تعیین میشود. هر چه میزان برازندگی یک جریان بالاتر باشد انرژی جنبشی آن نیز برای حرکت بیشتر میشود هر جریان آبی که نسبت به جریان والد خود بهبود یابد، انرژی بیشتری داشته در نتیجه جریانهای بیشتری را میتواند تولید کند. برای تولید جریانهای جدید (یک سرویس مرکب) میتوان از متدهای مختلفی استفاده کرد:
-
- ترکیب دو سرویس مرکب: