الگوریتم رقابت استعماری یا ICA یا Imperialist competitive algorithm الگوریتمی فراابتکاری برای بهینه سازی مدل ها مختلف ریاضی می باشد. این الگوریتم توسط آقای آتش پز گرگری ارایه شده است. با استفاده از کدنویسی الگوریتم رقابت استعماری در متلب می توان به بهینه سازی انواع مدل های ریاضی اعم از مدل های پیوسته و گسسته و همراه با محدودیت پرداخت و همچنین می توان مدل هایی همراه با متغیرهای صفر و یک ، عددصحیح، و آزاد در علامت را برای بهینه سازی با الگوریتم ICA در نظر گرفت.

در الگوریتم رقابت استعماری تعداد N کشور در نظر گرفته می شود که هر کدام شامل برداری می باشد که این بردار نشان دهنده یک نقطه در کل فضای جواب می باشد و با توجه به پخش بودن این کشورها در مناطق مختلف به طور کلی نقاط مختلفی در فضای جواب در نظر گرفته می شود. بعد از در نظر گرفتن این کشورها به عنوان جواب ، سپس باید این جواب ها را با استفاده از تابع هزینه مورد بررسی قرار داد و هر کشوری که دارای جواب بهتری باشد به عنوان کشور استعمارگر و باقی کشورها به عنوان مستعمره در نظر گرفته می شوند.

برای کدنویسی مدل های مختلف با این الگوریتم   اینجا   کلیک نمایید.

 

الگوریتم رقابت استعماری

الگوریتم رقابت استعماری

 

سپس باید هزینه نرمالیزه شده برای کشورهای استعمارگر محاسبه گردد و بر اساس این هزینه قدرت نسبی هر استعماگر بدست می آید که بر اساس این قدرت می توان کشورهای مستعمره را به نسبت ، میان کشورهای استعمارگر تقسیم نمود.

پس از این مرحله حرکت کشورهای مستعمره به سمت کشورهای استعمارگر صورت می پذیرد. سپس در مرحله رقابت استعماری ضعیف ترین مستعمره از ضعیف ترین امپراطوری انتخاب گردیده و به سمت یک امپراطوری قوی حرکت می کند. در این مرحله هر امپراطوری که قوی تر باشد شانس بیشتری برای دریافت کشور مستعمره دارد.

پس از این مرحله در زمانی که یک امپراطوری همه مستعمره های خود را از دست داد، این امپراطوری از لیست امپراطوری ها خارج شده و خود به عنوان مستعمره به امپراطوری های دیگر می پیوندد. این روند ادامه می یابد تا شرط توقف محقق شود و الگوریتم ICA به جوابی نزدیک به بهینه دست پیدا کند.