الگوریتم رقابت استعماری (Imperialist Competitive Algorithm – ICA) روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینهسازی میپردازد. این الگوریتم با مدلسازی ریاضی فرایند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینهسازی ارائه میدهد. از لحاظ کاربرد، این الگوریتم در دسته الگوریتمهای بهینهسازی تکاملی همچون الگوریتمهای ژنتیک (Genetic Algorithms)، روش بهینهسازی ازدحام ذرات (Particle Swarm Optimization)، الگوریتم کلونی مورچگان (Ant Colony Optimization)، الگوریتم تبرید شبیهسازی شده (Simulated Annealing)، الگوریتم تکامل تفاضلی (Differential Evolution)، الگوریتم فرهنگی (Cultural Algorithm)، الگوریتم ممتیک (Memetic Algorithm)، الگوریتم زنبورها (Bees Algorithm)، الگوریتم بهینهسازی کاوش مبتنی بر باکتری (Bacterial Foraging Optimization Algorithm) و غیره قرار میگیرد. همانند همه الگوریتمهای قرار گرفته در این دسته، الگوریتم رقابت استعماری نیز مجموعه اولیه ای از جوابهای احتمالی را تشکیل میدهد. این جوابهای اولیه در الگوریتم ژنتیک با عنوان «کروموزوم»، در الگوریتم ازدحام ذرات با عنوان «ذره» و در الگوریتم رقابت استعماری نیز با عنوان «کشور» شناخته میشوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه میآید، این جوابهای اولیه (کشورها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینهسازی (کشور مطلوب) را در اختیار میگذارد.
پایههای اصلی این الگوریتم را سیاست همسان سازی (Assimilation)، رقابت استعماری (Imperialistic Competition) و انقلاب (Revolution) تشکیل میدهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخشهایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه میدهد که میتوانند به حل مسائل پیچیده بهینهسازی کمک کنند. در واقع این الگوریتم جوابهای مسئله بهینهسازی را در قالب کشورها نگریسته و سعی میکند در طی فرایندی تکرار شونده این جوابها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند.
استفاده از الگوریتم رقابت استعماری (Imperialist Competitive Algorithm – ICA) در عین نوپا بودن و تازه بودن آن، همچنان در حال گسترش می باشد. این روزها این، الگوریتم به پایه ثابت پروژه ها و پایان نامه های دوره های مختلف تحصیلی تبدیل شده است. تنوع رشته های مرتبط با این الگوریتم نیز آنچنان بالاست که مقالات متعدد منتشر شده در مورد این الگوریتم، نه تنها نشان از کاربرد آن در رشته های مهندسی (برق، مهندسی صنایع، عمران، مکانیک و …) دارد، بلکه این الگوریتم به بخش اصلی مقالات مهم منتشر شده در اقتصاد، مدیریت و بازرگانی نیز تبدیل شده است. در این میان، در متلب سایت به عنوان مرجع هوش مصنوعی و برنامه نویسی متلب در ایران، درخواست های متعددی از طرف دانشجویان و پژوهشگران دریافت کردیم در مورد انتشار موارد آموزشی بیشتر در مورد این الگوریتم. امروز تصمیم گرفتیم پاسخ به این درخواست را بیش از این به تاخیر نیاندازیم.
مقدمه
امپریالیسم، در لغت به سیاست توسعه قدرت و نفوذ یک کشور در حوزه خارج از قلمرو شناخته شده برای آن، اطلاق میشود. یک کشور میتواند کشور دیگر را بهطور قانونگذاری مستقیم یا از طریق روشهای غیر مستقیم، مثل کنترل کالاها و مواد خام، کنترل کند. مورد اخیر اغلب استعمار نو خوانده میشود. استعمار یک پدیده ذاتی در تاریخ بودهاست. استعمار در مراحل ابتدایی، به صورت نفوذ سیاسینظامی در کشورها و به صورت صرف استفاده از منابع زمینی، انسانی و سیاسی بودهاست. بعضی مواقع نیز استعمار، به صرف جلوگیری از نفوذ کشور استعمارگر رقیب انجام میشد. به هر حال کشورهای استعمارگر رقابت شدیدی را برای به استعمار کشیدن مستعمرات همدیگر نشان میدادند.
مستقل از اثرات و تبعات مثبت و منفی آن، استعمار به عنوان یک فرایند ذاتی در تاریخ بشر ایجاد شد، و در عین وارد کردن خسارتهای جبران ناپذیر به زیربناهای اساسی یک کشور (خصوصاً زیربناهای فرهنگی) در بعضی موارد اثرات مثبتی را نیز برای کشورها مستعمره داشت. از دید بهینهسازی، استعمار بعضی از کشورها را که در یک دره معمولی تمدن قرار داشتند، خارج کرده و آنها را به یک حوزه مینیمم دیگر برد که در بعضی موارد وضعیت این حوزه مینیمم بهتر از موقعیت قبلی کشور مستعمره بود. اما به هر حال این حرکت مستلزم پیشروی مستعمره در راستای محورهای مختلف اقتصادی و فرهنگی به سمت یک امپریالیست قویتر بود، یعنی از میان رفتن بعضی از ساختارهای فرهنگی و اجتماعی. شکل زیر حرکت یک مستعمره به سمت استعمارگر قوی را نشان میدهد. این روند در الگوریتم رقابت استعماری در قالب سیاست جذب مدلسازی میشود.
همانند دیگر الگوریتمهای تکاملی، این الگوریتم، نیز با تعدادی جمعیت اولیه تصادفی که هر کدام از آنها یک «کشور» نامیده میشوند؛ شروع میشود. تعدادی از بهترین عناصر جمعیت (معادل نخبهها در الگوریتم ژنتیک) به عنوان استعمارگر انتخاب میشوند. باقیمانده جمعیت نیز به عنوان مستعمره، در نظر گرفته میشوند. استعمارگران بسته به قدرتشان، این مستعمرات را با یک روند خاص که در ادامه میآید؛ به سمت خود میکشند. قدرت کل هر امپراطوری، به هر دو بخش تشکیل دهنده آن یعنی کشور استعمارگر (به عنوان هسته مرکزی) و مستعمرات آن، بستگی دارد. در حالت ریاضی، این وابستگی با تعریف قدرت امپراطوری به صورت مجوع قدرت کشور استعمارگر به اضافه در صدی از میانگین قدرت مستعمرات آن، مدل شدهاست.
با شکلگیری امپراطوریهای اولیه، رقابت استعماری میان آنها شروع میشود. هر امپراطوریای که نتواند در رقابت استعماری، موفق عمل کرده و بر قدرت خود بیفزاید (و یا حداقل از کاهش نفوذش جلوگیری کند)، از صحنه رقابت استعماری، حذف خواهد شد؛ بنابراین بقای یک امپراطوری، وابسته به قدرت آن در جذب مستعمرات امپراطوریهای رقیب، و به سیطره درآوردن آنها خواهد بود. در نتیجه، در جریان رقابتهای استعماری، به تدریج بر قدرت امپراطوریهای بزرگتر افزوده شده و امپراطوریهای ضعیفتر، حذف خواهند شد. امپراطوریها برای افزایش قدرت خود، مجبور خواهند شد تا مستعمرات خود را نیز پیشرفت دهند.