Imperialist competitive algorithm
In computer science, Imperialist Competitive Algorithm (ICA)[1] is a computational method that is used to solve optimization problems of different types. Like most of the methods in the area of evolutionary computation, ICA does not need the gradient of the function in its optimization process.
From a specific point of view, ICA can be thought of as the social counterpart of genetic algorithms (GAs). ICA is the mathematical model and the computer simulation of human social evolution, while GAs are based on the biological evolution of species.
Applications, advantages and disadvantages of ICA are discussed with details in [2]
Algorithm

Figure 1 shows the flowchart of the Imperialist Competitive Algorithm. This algorithm starts by generating a set of candidate random solutions in the search space of the optimization problem. The generated random points are called the initial Countries. Countries in this algorithm are the counterpart of Chromosomes in GAs and Particles in Particle Swarm Optimization (PSO) and it is an array of values of a candidate solution of optimization problem. The cost function of the optimization problem determines the power of each country. Based on their power, some of the best initial countries (the countries with the least cost function value), become Imperialists and start taking control of other countries (called colonies) and form the initial Empires.[1]
Two main operators of this algorithm are Assimilation and Revolution. Assimilation makes the colonies of each empire get closer to the imperialist state in the space of socio-political characteristics (optimization search space). Revolution brings about sudden random changes in the position of some of the countries in the search space. During assimilation and revolution a colony might reach a better position and has the chance to take the control of the entire empire and replace the current imperialist state of the empire.[3]
Imperialistic Competition is another part of this algorithm. All the empires try to win this game and take possession of colonies of other empires. In each step of the algorithm, based on their power, all the empires have a chance to take control of one or more of the colonies of the weakest empire.[1]
Algorithm continues with the mentioned steps (Assimilation, Revolution, Competition) until a stop condition is satisfied.
Pseudocode
The above steps can be summarized as the below pseudocode. [2] [3]
0) Define objective function:
1) Initialization of the algorithm. Generate some random solution in the search space and create initial empires.
2) Assimilation: Colonies move towards imperialist states in different in directions.
3) Revolution: Random changes occur in the characteristics of some countries.
4) Position exchange between a colony and Imperialist. A colony with a better position than the imperialist,
has the chance to take the control of empire by replacing the existing imperialist.
5) Imperialistic competition: All imperialists compete to take possession of colonies of each other.
6) Eliminate the powerless empires. Weak empires lose their power gradually and they will finally be eliminated.
7) If the stop condition is satisfied, stop, if not go to 2.
8) End
Variants
Like for PSO, the first version of ICA was proposed for solving continuous optimization problems. Then in other works different variants of ICA were proposed for solving both discrete and continuous problems. For example Chaotic ICA is proposed by Duan, etal.[4] and also a version of this algorithm for handling constrained optimization problems is proposed by Zhang, etal.[5]
Some new points on Meta-heuristic Algorithm
In January 2016, by calling “Imperialist Competitive Algorithm” a worldwide algorithm, Sepehr Ghaderi, B.Sc. in Industrial Engineering from Iran, changed it into an independent subject. He added two new branches to this type of algorithm called: “speech coding” and “acceptance of failure”. He studied this type of meta-heuristic algorithm in an article titled “Masonic Worldview Based on Three Historical Periods” from a different point of view. By studying the basic patterns written and used by American-Jewish governor-scientists before and after World War II, he analyzed some samples of International political policies in three historical periods.
Applications
ICA is used to solve different optimization problems in various areas of engineering and science. The following are some of the applications of this algorithm.
- Designing controller for industrial systems[6][7][7][8][9][10]
- Designing Intelligent Recommender Systems[11]
- Fuzzy Controller Design[12]
- Solving optimization problems in communication systems.[13][14][15]
- Solving scheduling and production management problems[3][16][17][18][19][20][21][22]
- Training and analysis of Artificial Neural Networks[23][24]
- Nash Equilibrium Point Achievement[9]
- Design and thermodynamic optimization of plate-fin heat exchangers[25]
- Feature selection[26][27]
- and so on[28][29][30][31]
References
- ^ a b c
Atashpaz-Gargari, E.; Lucas, C (2007). "Imperialist Competitive Algorithm: An algorithm for optimization inspired by imperialistic competition". IEEE Congress on Evolutionary Computation. Vol. 7. pp. 4661–4666.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ a b Hosseini, S.; Al Khaled, A. (2014). "A survey on the Imperialist Competitive Algorithm metaheuristic: Implementation in engineering domain and directions for future research". Applied Soft Computing. 24: 1078–1094.
- ^ a b c Nazari-Shirkouhi, S.; Eivazy, H.; Ghodsi, R.; Rezaie, K.; Atashpaz-Gargari, E. (2010). "Solving the Integrated Product Mix-Outsourcing Problem by a Novel Meta-Heuristic Algorithm: Imperialist Competitive Algorithm". Expert Systems with Applications. 37 (12): 7615–7626. doi:10.1016/j.eswa.2010.04.081.
- ^ Duan, H.; Xu, C.; Liu, S.; Shao, S. (2009). "Template matching using chaotic imperialist competitive algorithm". Pattern Recognition Letters. 39 (6): 1362–1381.
- ^
Zhang, Yang; Wang, Yong; Peng, Cheng (2009). "Improved Imperialist Competitive Algorithm for Constrained Optimization". Computer Science-Technology and Applications, IFCSTA.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^
Rajabioun, R.; Hashemzadeh, F.; Atashpaz-Gargari, E.; Mesgari, B.; Rajaei Salmasi, F. (2008). "Identification of a MIMO evaporator and its decentralized PID controller tuning using Colonial Competitive Algorithm". In the proceeding of IFAC World Congress, Seoul, Korea. pp. 9952–9957.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ a b Atashpaz-Gargari, E.; Hashemzadeh, F.; Rajabioun, R.; Lucas, C. (2008). "Colonial competitive algorithm: A novel approach for PID controller design in MIMO distillation column process". International Journal of Intelligent Computing and Cybernetics. 1 (3): 337–355. doi:10.1108/17563780810893446. Cite error: The named reference "ica_en_2008_jnl_atashpaz_ijicc_pid_mimo_distillation_column_process" was defined multiple times with different content (see the help page).
- ^
Atashpaz-Gargari, E.; Lucas, C. (2007). "Designing an optimal PID controller using Colonial Competitive Algorithm". Proceeding of First Iranian Joint Congress on Intelligent and Fuzzy Systems.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ a b
Rajabioun, R.; Atashpaz-Gargari, E.; Lucas, C. (2008). "Colonial competitive algorithm as a tool for Nash equilibrium point achievement". Computational Science and Its Applications–ICCSA. pp. 680–695.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) Cite error: The named reference "ica_en_2008_en_bchtr_rajabioun_nash_equilibrium_point_achievement" was defined multiple times with different content (see the help page). - ^ Atashpaz-Gargari, E.; Rajabioun, R.; Hashemzadeh, F.; R. Salmasi, F. (2009). "A Decentralized PID controller based on Optimal Shrinkage of Gershgorin Bands and PID tuning Using Colonial Competitive Algorithm". International Journal of Innovative Computing, Information and Control. 5 (10(A)).
- ^
Sepehri Rad, H.; Lucas, C. (2008). "Application of Imperialistic Competition Algorithm in recommender systems". In 13th Int'l CSI Computer Conference (CSICC'08).
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^
Jasour, A.; Atashpaz-Gargari, E.; Lucas, C. (2008). "Vehicle fuzzy controller design using imperialist competitive algorithm". Second First Iranian Joint Congress on Fuzzy and Intelligent Systems.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ Khabbazi, Arash; Atashpaz-Gargari, Esmaeil; Lucas, Caro (2009). "Imperialist competitive algorithm for minimum bit error rate beamforming". International Journal of Bio-Inspired Computation. 1 (1–2): 125–133. doi:10.1504/ijbic.2009.022781.
- ^ Alikhani koupaei, Javad; Abdechiri, Marjan (2010). "An Optimization Problem for Evaluation of Image Segmentation Methods". International Journal of Computer and Network Security. 2 (6).
- ^ Jolai, F.; Sangari, M.; Babaie, M. (2010). "Pareto simulated annealing and colonial competitive algorithm to solve an offline scheduling problem with rejection". Journal of Engineering Manufacture. 224 (7): 1119–1131. doi:10.1243/09544054jem1746.
- ^ Shokrollahpour, E.; Zandieh, M.; Dorri, Behrouz (2010). "A novel imperialist competitive algorithm for bi-criteria scheduling of the assembly flowshop problem". International Journal of Production Research.
- ^ Forouharfard, S.; Zandieh, M. (2010). "An imperialist competitive algorithm to schedule of receiving and shipping trucks in cross-docking systems". International Journal of Advanced Manufacturing Technology.
- ^ Karimi, N.; Zandieh, M. (2010). "Group scheduling in flexible flow shops: A hybridised approach of imperialist competitive algorithm and electromagnetic-like mechanism". International Journal of Production Research. doi:10.1080/00207543.2010.481644.
- ^ Bagher, M.; Zandieh, M.; Farsijani, H. (2010). "Balancing of stochastic U-type assembly lines: an imperialist competitive algorithm". International Journal of Advanced Manufacturing Technology.
- ^ Sarayloo, Fatemeh; Tavakkoli-Moghaddam, Reza (2010). "Imperialistic Competitive Algorithm for Solving a Dynamic Cell Formation Problem with Production Planning". Advanced Intelligent Computing Theories and Applications, Lecture Notes in Computer Science. 6215: 266–276. doi:10.1007/978-3-642-14922-1_34.
- ^ Piroozfard, H.; Wong, K. Y. "An imperialist competitive algorithm for the job shop scheduling problems". IEEE Industrial Engineering and Engineering Management (IEEM): 69–73. doi:10.1109/IEEM.2014.7058602.
- ^ Biabangard-Oskouyi, A.; Atashpaz-Gargari, E.; Soltani, N.; Lucas, C. (2009). "Application of Imperialist Competitive Algorithm for Material Properties Characterization from Sharp Indentation Test". Int J Eng Simul. 10 (1).
- ^
T., Maryam; F., Nafiseh; L., Caro; T., Fattaneh (2009). "Artificial Neural Network Weights Optimization based on Imperialist Competitive Algorithm". Seventh International Conference on Computer Science and Information Technologies.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^
Yousefi, Moslem; Mohammadi, Hossein (2011). "Second law based optimization of a plate fin heat exchanger using Imperialist Competitive Algorithm". International Journal of the Physical Sciences. Vol. 6. pp. 4749–4759.
{{cite conference}}
: Unknown parameter|booktitle=
ignored (|book-title=
suggested) (help) - ^ Seyed Jalaleddin Mousavi Rad, Fardin Akhlaghian Tab, Kaveh Mollazade, “ Application of Imperialist Competition Algorithm for Feature Selection: A Case Study On Rice Classification”, International Journal of Computer Application, Vol. 40, No.16, 2012
- ^ S.J. Mousavirad, H. Ebrahimpour, Feature selection using modified Imperilaist Competitive Algorithm, International Conference on Computer and Knowledge Engineering(ICKKE 2013), October 31 & November 1, 2013, Ferdowsi University of Mashhad, Mashhad, Iran
- ^ Lucas, C.; Nasiri-Gheidari, Z.; Tootoonchian, F. (2010). "Application of an imperialist competitive algorithm to the design of a linear induction motor". Energy Conversion and Management. 51 (7): 1407–1411. doi:10.1016/j.enconman.2010.01.014.
- ^ Movahhedi, Omid; R. Salmasi, Farzad (2009). "Optimal Design of Propulsion System with Adaptive Fuzzy Controller for a PHEV Based on Non-dominated Sorting Genetic and Colonial Competitive Algorithms". International Review of Automatic Control.
- ^ Niknam, Taher; Taherian Fard, Elahe; Pourjafarian, Narges; Rousta, Alireza (2010). "An efficient hybrid algorithm based on modified imperialist competitive algorithm and K-means for data clustering". Engineering Applications of Artificial Intelligence.
- ^ Mozafari, Hamid; Abdi, Behzad; Ayob, Amran (2010). "Optimization of Transmission Conditions for Thin Interphase Layer Based on Imperialist Competitive Algorithm". International Journal on Computer Science and Engineering. 2 (7): 2486–2490.