الگوریتم رقابت استعماری (Imperialist Competitive Algorithm – ICA) روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینه سازی می‌پردازد. این الگوریتم با مدلسازی ریاضی فرایند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه سازی ارائه می‌دهد[۱]. از لحاظ کاربرد، این الگوریتم در دسته الگوریتم های بهینه سازی تکاملی همچون الگوریتم های ژنتیک (Genetic Algorithms)، روش بهینه‌سازی ازدحام ذرات (Particle Swarm Optimization)، الگوریتم کلونی مورچگان (Ant Colony Optimization)، الگوریتم تبرید شبیه‌سازی شده (Simulated Annealing) و … قرار می گیرد. همانند همه الگوریتم های قرار گرفته در این دسته، الگوریتم رقابت استعماری نیز مجموعه اولیه ای از جوابهای احتمالی را تشکیل می دهد. این جوابهای اولیه در الگوریتم ژنتیک با عنوان “کروموزوم”، در الگوریتم ازدحام ذرات با عنوان “ذره” و در الگوریتم رقابت استعماری نیز با عنوان “کشور” شناخته می شوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه می آید، این جوابهای اولیه (کشور ها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینه سازی (کشور مطلوب) را در اختیار می گذارد.

پایه‌های اصلی این الگوریتم را سیاست همسان سازی (Assimilation)، رقابت استعماری (Imperialistic Competition) و انقلاب (Revolution) تشکیل می‌دهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخشهایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه می‌دهد که می‌توانند به حل مسائل پیچیده بهینه سازی کمک کنند. در واقع این الگوریتم جوابهای مسئله بهینه سازی را در قالب کشورها نگریسته و سعی می‌کند در طی فرایندی تکرار شونده این جواب‌ها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند[۲].