1. Introduction
Swarm intelligence techniques have gained popularity in recent decades because of their capacity to locate partially optimal solutions for combinatorial optimization problems. These have been applied in various areas, such as engineering, economics and industry, etc., and these problems benefit from the use of swarm intelligence techniques because they are usually very hard to solve accurately since there is no precise algorithm to solve them [
1,
2].
Swarm intelligence techniques are approximate metaheuristics that include a wide range of smart algorithms normally inspired in natural processes, such as artificial honey bee (AHB), genetic algorithm (GA), cuckoo search (CS), and gravitational search algorithm (GSA) [
3].
The imperialist competitive algorithm (ICA), was proposed in 2007 by Atashpaz-Gargari and Lucas. ICA was originated on the idea of imperialism and in this process stronger countries try to colonize the weakest countries and make them part of their colonies [
4]. This algorithm has been currently used in different industrial applications [
5].
ICA was initially used in continuous optimization problems, but now it has been utilized on many complex optimization problems such as flowlines scheduling problems (FSP), traveling salesman problem (TSP), assembly line balancing problem (ALBP), and facility line design problem (FLP) [
1].
In the recent literature, there are some articles where the imperialist competitive algorithm has been studied, such as the work on an imperialist competitive algorithm to optimize artificial neural networks for UCAV global path planning [
6], where the competitive imperialist algorithm is used to train a neural network with which it is possible to reduce uncertainty and avoid falling into local minimum. Another paper is that of a hybrid imperialist competitive algorithm for minimizing make span in a multi-processor open shop [
1]. In this case, a new linear programming model is proposed for programming problems of a multiprocessor store to minimize the make span, in which a hybrid imperialist competitive algorithm (ICA) with the genetic algorithm (GA) is used. Another work is the application of an imperialist competitive algorithm to the design of a linear induction motor [
7]. In this paper, the competitive imperialist algorithm is used to design a low speed linear induction motor to improve efficiency with a high power factor. Finally, there is also a paper on the Imperialist Competitive Algorithm for Solving a Dynamic Cell Formation Problem with Production Planning [
8]. This article uses the competitive imperialist algorithm to optimize the planning, production and reconfiguration costs in the cell formation with production planning.
The imperialist competitive algorithm has been used in different applications and in different branches of engineering, but there are some aspects that can be explored to improve its performance, like the hybridization of the imperialist competitive algorithm with different metaheuristics, such as GA, PSO and other population based metaheuristics [
3,
9,
10]. Since we can use the ICA algorithm as a starting point to create an initial solution or use the algorithm as a tool to promote exploration or exploitation. One aspect to be taken into account is to use the competitive imperialist algorithm in parallel to help accelerate the search and to achieve higher quality in the possible solutions. Another important alternative is to perform the adjustment of the ICA algorithm parameters to improve the algorithm efficiency as is the idea presented in this research.
After analyzing the existing literature, it has been observed that until now there are no works where the dynamic adjustment of the parameters has been done using fuzzy logic and very few where the imperialist competitive algorithm for the minimization of mathematical functions has been used. We conclude that realizing the dynamic adjustment of the parameters in the imperialist competitive algorithm utilizing fuzzy logic to carry out the adjustment of the parameters that influences the operation of the algorithm, which could help to improve performance and provide tools to address the uncertainty generated during operation of the algorithm.
The study of the metaheuristic is realized to observe the efficiency of the imperialist competitive algorithm (ICA) when used in optimization problems [
11,
12], having the original ICA algorithm as a basis for modifying the algorithm in dynamically performing adaptation of parameters. In this case, this has been proven to be a good idea in other metaheuristics, which utilize adaptation of parameters along the iterations to help improve the results obtained with respect to when static or fixed parameters are utilized.
To realize this modification utilizing fuzzy logic [
13,
14], we continued to the application of the algorithm for benchmark mathematical functions [
10]. In this case the idea is to observe the results of the ICA algorithm and it is expected to obtain good or better results than with the original algorithm and other metaheuristics. In this regard, statistical tests were conducted to compare the results of the original algorithm, the modified fuzzy ICA and other metaheuristics.
The article is organized as shown below: in
Section 2 the methodology of the original Imperialist Competitive algorithm (ICA) is explained, that is, the equations used for assimilation, the power of empires and each of the algorithm parameters, an explanation is also given on how the parameters can be changed throughout the iterations.
Section 3 presents the methodology that was followed for modifying the ICA algorithm using fuzzy logic. In
Section 4 the results obtained with the ICA algorithm and the fuzzy imperialist competitive algorithm (FICA) are presented. In
Section 5 the results of the comparison between fuzzy imperialist competitive algorithm (FICA) and the original ICA algorithm are presented. In
Section 6 we show the statistical test performed between the fuzzy imperialist competitive algorithm (FICA) and fuzzy Cuckoo Search (FCS) and finally
Section 7 describes the conclusions.
2. Imperialist Competitive Algorithm
This section provides a description of the original imperialist competitive algorithm that was proposed by Atashpaz-Gargari and Lucas, the corresponding equations, and the flowchart used to understand its operation [
15]. In the field of metaheuristics, ICA is based on political and human social progress, unlike other evolutionary metaheuristic algorithms, based on behaviors of animals or physical phenomena [
16,
17].
Figure 1 shows the flowchart of the imperialist competitive algorithm. Like other evolutionary or population based algorithms, ICA starts with an initial population. The best countries are selected as imperialist countries and the rest form the imperialist colonies. All colonies of the initial population are divided among the imperialists countries based on of their power [
18].
After dividing all the colonies among the imperialists, the colonies begin the movement towards their imperialist countries. The total power of all the empires depend on the power of the imperialist countries and the power of their colonies. This fact is defined with the total power of an empire by the power of the imperialist country plus a percentage of the average power of their colonies [
15].
When the imperialist competition between the empires starts, any empire that cannot remain in this competition and cannot augment its power will be removed from the imperialist competition. The imperialist competition will result in an increment in the power of the most powerful empires and a decrement in the power of the weaker empires. The weakest empires will lose their power partially and, ultimately, will collapse one by one. All countries will eventually become a state in which there is only one empire in the entire world and all remaining countries are colonies of that empire [
19,
20].
The equations for the formation of empires (Initialization) are the following [
21]:
In Equation (1) Country represents a country, Nvar is the number of variables of interest and pi is the value of i-th variable, Equation (2) represents the cost of a country, Equation (3) is necessary to obtain the number of colonies of the population, Equation (4) is used to obtain the normalized cost of each imperialist, where cn is the n-th imperialist’s cost, and Cn is the normalized cost of n-th imperialist, Equation (5) obtains the power of each imperialist where pn is the power of n-th imperialist and Equation (6) represents the number of colonies that can possess that imperialist.
The equations for moving the colonies towards their imperialist country (assimilation) are [
15]:
Equation (7) represents a colony that moves a distance x towards its imperialist, where β is a number between 1 and 2 and d represents the distance among the colony and its imperialist, Equation (8) helps us to search for different positions around the imperialist. In which γ is a parameter where a large value estimates a global search and a small value impacts the local search.
The Equation for the full power of an empire is as follows [
21,
22]:
This equation represents the total cost of n-th empire and ξ is a number between 0 and 1. Where with a small value of ξ, we have a greater influence of the imperialist power to determine the total power of the empire, and a large value of ξ, has a greater influence on the average power of the colonies to calculate the total power of the empire.
The equations for the imperialist competition are the following [
21]:
Equation (10) starts with the imperialist competition where the normalized total cost is calculated and in Equation (11) we provide the probability of possessing a colony. The main steps of the algorithm are shown below in the pseudocode [
23,
24].
2.1. Pseudocode ICA
Initialize the empires (Equations (1)–(6)).
Country = [p1, p2, ..., pNvar]
Cost = f (Country) = f (p1, p2, ..., pn)
NcoI = Npop − Nimp
Move all colonies toward their imperialist country (Assimilating Equations (7) and (8)).
If there is a colony with has less cost than the imperialist country in an empire, exchange the locations of the colony and the imperialist country.
Calculate total cost of each empire (Equation (9)).
Select the weaker colony from the weaker empire and pass it to the empire that has more possibility to possess it. (The imperialistic competition Equations (10) and (11)).
Delete the weakest empires.
If only one empire remains, stop, if not return to step 2.
2.2. Mathematical Functions
In this section, the mathematical functions utilized in the tests to measure the performance of the ICA algorithm for the dynamic adjustment of its parameters are listed below. In the field of metaheuristics used for optimization problems it is usual to consider mathematical functions to measure their performance, as it is used in this paper. In this case, the idea is to measure an improvement of an optimization algorithm known as ICA, where the aim is to use dynamic parameters [
13,
25]:
Figure 2 shows the plot of the sphere function,
Figure 3 shows the quartic function,
Figure 4 illustrates the plot of the Rosenbrock function,
Figure 5 shows the Rastrigin function, and the Griewank function is presented in
Figure 6 and finally in
Figure 7 shows the plot of the Ackley function. All the mathematical functions that are used are accompanied by their respective equation and the search space in which they work as shown below [
16,
26].
Search space and
Search space and
Search space and
Search space and
Search space and
Search space and
3. Proposal Methodology
The Imperialist competitive algorithm is a search technique that takes as inspiration the theory of imperialism, where the most powerful countries intent to make a colony of other countries and currently been utilized to resolve complex optimization problems. A metaheuristic algorithm named Fuzzy imperialist competitive algorithm (FICA) with dynamic adjustment of parameters used on the optimization of benchmark mathematical functions is proposed in this article. The main idea is that fuzzy logic will help in modeling the uncertainty in finding the appropriate parameter values during the execution of the algorithm and in this way improve performance of the algorithm.
The main objective of our proposal is to obtain the optimal values of the parameters with the help of fuzzy systems to increase performance of the ICA algorithm during execution. The fuzzy systems [
13] will dynamically adjust the β and ξ parameters as shown below in
Figure 8.
For the decades of the algorithm, we did perform an analysis and decided to utilize a percentage of decades with respect to the total number of decades, that is, when the algorithm starts the decades will be considered to have a linguistic value of “low”, and when most of the decades have passed will be considered “high” or close to 100%. This notion is presented below [
27]:
This paper proposes and explains three fuzzy systems where the experiments were conducted. We have various fuzzy systems for obtaining the β parameter, the ξ parameter and a fuzzy system for the combination between β and ξ parameters.
The key issue is how to correctly define the fuzzy systems. In this regard, the fuzzy systems shown in
Figure 9,
Figure 10 and
Figure 11 are fuzzy systems of Mamdani type with the input defined as the decades and with one output variable, the first is with the β parameter, the second with the ξ parameter and the third one with a combination of β and ξ.
The design of the input variable is found in
Figure 12, which represents the decades; this input variable is divided in three triangular membership functions tagged as Low, Medium and High.
The Fuzzy systems have the output variables shown in
Figure 13 and
Figure 14, and are β and ξ, respectively, and in the same way that the input variables are granulated into three triangular membership functions tagged as Low, Medium and High.
For the design of the rules of the fuzzy systems, it was determined that in the initial decades the ICA algorithm begins to explore and when approaching the end eventually exploits. All the rules were designed taking the idea that they are in increasing fashion as shown below:
The rules of the fuzzy system for β are:
If (Decades is Low) then (β is Low).
If (Decades is Middle) then (β is Medium).
If (Decades is Alto) then (β is High).
The rules of the fuzzy system for ξ are:
If (Decades is Low) then (ξ is Low).
If (Decades is Middle) then (ξ is Medium).
If (Decades is Alto) then (ξ is High).
To design the rules of the fuzzy system combining β and ξ, we decided (based on previous experimentation) to use β in increase over the decades and ξ that was in decrement as shown below:
If (Decades is Low) then (β is Low) and (ξ is High).
If (Decades is Medium) then (β is Medium) and (ξ is Medium).
If (Decades is High) then (β is High) and (ξ is Low).
4. Simulation Results with the Fuzzy Systems of the Imperialist Competitive Algorithm for Benchmark Mathematical Functions
In this section the imperialist competitive algorithm (ICA) [
28,
29] is tested with 6 mathematical functions with 30 dimensions for each of the β, ξ parameters and a combination of β and ξ and the results that were obtained by the ICA algorithm and our fuzzy ICA proposal are shown in separate tables for each function. All tables show the average, worst and best values obtained after 30 executions for algorithm from 1000 to 5000 decades.
The parameters utilized in the imperialist competitive algorithm [
30] and the fuzzy imperialist competitive algorithms are:
Dimensions: 30
No. Countries: 200
No. Imperialists: 10
Revolution rate: 0.2
Table 1 shows the results of executing 30 times the proposed ICA algorithm with dynamic adaptation the β and ξ parameters, where we find the average, best and worst results obtained for the sphere function.
Table 2 shows the results of running 30 times the proposed ICA algorithm with dynamic adaptation of the β and ξ parameters, where we find the average, best and worst results obtained for the quartic function.
Table 3 shows the results of executing 30 times the proposed ICA algorithm with dynamic adaptation the β and ξ parameters, where we find the average, best and worst results obtained for the Rosenbrock function.
Table 4 summarizes the results of running 30 times the proposed ICA algorithm with dynamic adaptation the β and ξ parameters, where we find the average, best and worst results obtained for the Rastrigin function.
Table 5 shows the results of executing the proposed ICA algorithm 30 times with dynamic adaptation of the β and ξ parameters, where we find the average, best and worst results obtained for the Griewank function.
Table 6 shows the results of executing 30 times the proposed ICA algorithm with dynamic adaptation the β and ξ parameters, where we find the average, best and worst results obtained for the Ackley function.
5. Statistical Comparison for ICA and FICA with β Increasing
The statistical test was performed between the ICA algorithm and the FICA algorithm with dynamic adjustment of the β parameter with the range from 1 to 2, and the experiments correspond to the results obtained in tests for the ICA and FICA algorithms. Each algorithm was applied separately to each of the mathematical functions, 6 functions were used for the algorithms and 30 experiments were realized.
Table 7 contains the average and standard deviation obtained after 30 executions for algorithm with 1000 decades. The values of parameters utilized in the fuzzy imperialist competitive algorithm and the ICA Algorithm [
24,
31] are the following:
No. of Countries: 200.
No. of Imperialists: 10.
Revolution Rate: 0.2.
β: 1.4.
ξ: 0.02.
Dimensions: 30.
Simulations: 30.
Decades: 1000.
Table 7 shows the performance of the FICA algorithm with dynamic adjustment of the β parameter and the ICA algorithm for 30 times we find the mean and standard deviation results.
The statistical test used for the comparison is the Wilcoxon test [
32] that is commonly utilized to analyze data, where its parameters are shown in
Table 8.
The null hypothesis tells us that the average of the results obtained by the fuzzy imperialist competitive algorithm is equal to the average of the ICA algorithm, and the alternative hypothesis states that the average of the results obtained by the fuzzy imperialist competitive algorithm is different to the average performance of the ICA algorithm.
To test the hypothesis, the absolute values ││…││ are ordered and assigned its range on Rank, the order of these values are from lowest to highest, Sign (+) column indicates the values are positive and Sign (−) column indicates the values are negative.
The equation used in the statistical test is:
The sum of the ranges corresponding to the positive values of .
W+ represent the value of the sum of the positive ranks, W− is the value of the sum of the negative ranks, W represent the differences among two samples, and the value of the W0 represents the value for a two-tailed test in the table utilizing 30 samples.
The test of Wilcoxon to evaluate is the one shown below
If W ≤ W0
Then fail to reject H0
Table 9 shows a statistical test performed for two methods with a confidence level of 95% and a value of
W = 4 and
W0 = 1. The results obtained from the statistical test are as follows: for the fuzzy imperialist competitive algorithm, it fails to reject H
0 the null hypothesis, therefore the alternative hypothesis is rejected, which means that the average performance of the fuzzy imperialist competitive algorithm is not significantly different to the average performance of the ICA algorithm.
6. Result of the Experiments and Statistical Test of the Fuzzy Imperialist Competitive Algorithm (FICA) and Fuzzy Cuckoo Search (FCS)
In this section the fuzzy imperialist competitive algorithm (FICA) and the Fuzzy Cuckoo search Algorithm (FCS) are compared with 5 mathematical functions with 16 dimensions for the β parameter and a combination of β-ξ and the Pa parameter the in the Fuzzy Cuckoo search (FCS). The results obtained with the FICA algorithm and the FCS are shown in separate tables for each function. The tables contain the average values obtained after 50 executions for algorithm with decades 2000 and 2000 iterations respectively.
The parameters used in the fuzzy imperialist competitive algorithm and the FCS Algorithm [
33] are the following:
No. of Countries: 200 (FICA).
No. of Imperialists: 10 (FICA).
Revolution Rate: 0.2 (FICA).
Dimensions: 16.
Simulations: 50.
Decades: 2000.
Population: 25 nests (FCS).
β: 1.5 (FCS).
Table 10 shows the results of the algorithm FICA and the FCS algorithm executed 50 times, dynamically adapting the β, ξ and Pa parameters, and we show the average of the results obtained.
The statistical test that was used for the comparison is the Wilcoxon paired test and the data and parameters are shown in
Table 11,
Table 12,
Table 13 and
Table 14.
The null hypothesis tells us that the average of the results obtained by the FICA (β) algorithm is equal to the average of the FCS (pa) algorithm and the alternative hypothesis states that the average of the obtained by the FICA (β) algorithm is different to the average performance of the FCS (pa) algorithm.
Table 12 shows a statistical test performed for two methods with a confidence level of 95% and a value of
W = 5 and
W0 = 1. The results obtained from the statistical test are as follows: for the FICA algorithm, it fails to reject H
0 the null hypothesis and the alternative hypothesis is rejected, which means that the average performance of the FICA algorithm is not significantly different to the performance of the FCS (pa) algorithm.
The null hypothesis tells us that the average of the results obtained by the FICA combination (β-ξ) algorithm is equal to the average of the FCS (pa) algorithm and the alternative hypothesis states that the average of the results obtained by the FICA combination (β-ξ) algorithm is different to the average performance of the FCS (pa) algorithm.
Table 14 shows a statistical test performed for two methods with a confidence level of 95% and a value of
W = 5 and
W0 = 1. The results obtained from the statistical test are as follows: for the FICA combination (β-ξ) algorithm, it fails to reject H
0 the null hypothesis and the alternative hypothesis is rejected, which means that the average performance of the FICA combination (β-ξ) algorithm is not significantly different to the average performance of the FCS (pa) algorithm.
7. Conclusions
The ICA algorithm is a newly developed method based on the theory of socio-political developments, which can be used for both linear and nonlinear functions. Recently, the parameters of metaheuristic algorithms have mostly been chosen by trial and error, which is why we decided to carry out a modification to the ICA algorithm to achieve better performance than the original algorithm and improve convergence, in this way avoiding getting stuck in local optima.
This research presents a modification of the imperialist competitive algorithm to enable dynamic adaptation of parameters utilizing fuzzy logic, this in order that the fuzzy system dynamically moves the ICA algorithm parameters. Firstly, the ICA algorithm was analyzed and each of the parameters used in processing, and then experiments with different ranges and possible values that each parameter could take were analyzed and then the algorithm was applied to Benchmark mathematical functions in order to optimize such functions and after that for comparing with other existing metaheuristic methods and in this way measure how good our method is.
We designed different fuzzy systems to independently move each of the parameters of the ICA algorithm, since by these parameters the exploitation and exploration of the algorithm are dynamically controlled. We designed and implemented different fuzzy system combinations between parameters and every one of the modifications was applied to the benchmark mathematical functions.
Finally, after analyzing the results of each of the proposals, we conclude that the fuzzy imperialist competitive algorithm is better than the original algorithm on average; however, we cannot affirm this statistically since our statistical test yield shows that the results are very close. In addition, it was not possible to significantly improve the results of the fuzzy Cuckoo search algorithm and we only managed to improve on some of the reference functions using the dynamic adjustment of the parameters individually, because with the proposed approach it was not possible to get significantly better results.
After studying the original imperialist competitive algorithm and making the modification using fuzzy logic to dynamically adjust the parameters, we can conclude that the ICA algorithm is good for solving complex optimization problems, in which we can even achieve better results by applying the following actions, which can be considered as future work:
Use different numbers of dimensions.
Optimize the rules on the combined method to see if better results are achieved.
Use different inputs in the fuzzy system.
Change the fuzzy systems to be of type-2 to better model uncertainty.
Apply the different methods to control problems.
Perform hybridization with other metaheuristic algorithms for improving the ICA algorithm.