Keywords

1 Introduction

Metaheuristics algorithm have become very popular over the past decade. This popularity is due to several key reasons: flexibility, lack of a gradient mechanism, simple structure and easy-to-understand features. The most popular of which is the genetic algorithm (GA) [1], which simulates Darwin’s evolutionary theory, the principle is that optimization is a set of stochastic solutions for specific problems. In the case of the evaluation objective function, it updates the variables according to their fitness values. Similarly, there are many evolutionary algorithms, such as Differential Evolution (DE) [2]. These are evolutionary algorithms. The second type of algorithms are the ecosystem simulation algorithms, including Biogeography-Based Optimization (BBO) [3], Weed Colonization Algorithm (WCA).

While the third group are swarm intelligence algorithms, which representative are Particle Swarm Optimization (PSO) [4] algorithm, Ant Colony Optimization (ACO) [5]. There are some other swarm intelligent algorithms, such as, Artificial Bee Colony (ABC) algorithm [6], Bat Algorithm (BA) [7], Cuckoo Search (CS) algorithm [8], Satin bowerbird optimizer (SBO) [9].

The remainder of this paper is organized as follows: Sect. 2 discusses the basic principles of the complex-valued encoding satin bower bird optimizer (CSBO) Algorithm. Section 3 tests the performance of the algorithm using standard test functions and discusses the experimental results of standard test functions. Section 4 uses the CSBO algorithm to solve motor parameter identification problem and compare it with other algorithms. Finally, Sect. 4 contains some conclusions and future research directions.

2 Complex-Valued Satin Bower Bird Optimizer (CSBO)

2.1 Initialize the Complex-Valued Encoding Population

Let the range of the function argument be interval \( [\mathop {\text{var} }\nolimits_{{R{ \text{min} }}} ,\mathop {\text{var} }\nolimits_{{R{ \text{max} }}} ] \). Randomly generate n complex modulus \( \mathop \rho \nolimits_{n} \) and the amplitude \( \mathop \theta \nolimits_{n} \), the resulting modulus vector satisfies the following relation.

$$ R_{n} + iL_{n} = \rho_{n} (\text{cos}\,\theta_{n} + i\,\text{sin}\theta_{n} ) $$
$$ \rho_{n} = \left[ {0,\frac{{\mathop {\text{var} }\nolimits_{{R{ \text{max} }}} - \mathop {\text{var} }\nolimits_{{R{ \text{min} }}} }}{2}} \right],\;\theta_{n} = \left[ {\mathop {\text{var} }\nolimits_{\text{Imin}} ,\mathop {\text{var} }\nolimits_{\text{Imax}} } \right] $$
(1)

In Eq. (1), \( \mathop {\text{var} }\nolimits_{{R{ \text{max} }}} \) denotes the upper bound of the real part and \( \mathop {\text{var} }\nolimits_{{R{ \text{min} }}} \) denotes the lower bound of the real part. \( \mathop {\text{var} }\nolimits_{\text{Imax}} \) denotes the upper bound of the imaginary part, which is set as \( 2\pi \), \( \mathop {\text{var} }\nolimits_{\text{Imin}} \) denotes the lower bound of the imaginary part, and is set to \( - 2\pi \). The n real and imaginary parts are assigned to the real and virtual genes of the bower according to produce a bird’s bower.

The Updating Method of CSBO

$$ \mathop X\nolimits_{Rn}^{new} + i\mathop X\nolimits_{In}^{new} = \mathop X\nolimits_{Rn}^{old} + i\mathop X\nolimits_{In}^{old} + \mathop \lambda \nolimits_{n} \left( {\left( {\frac{{\mathop X\nolimits_{Rj} + \mathop X\nolimits_{{\text{R} elite}} }}{2}} \right) - \mathop X\nolimits_{Rn}^{old} } \right) + i\mathop \lambda \nolimits_{n} \left( {\left( {\frac{{\mathop X\nolimits_{Ij} + \mathop X\nolimits_{Ielite} }}{2}} \right) - \mathop X\nolimits_{In}^{old} } \right) $$
(2)

In Eq. (2), \( \mathop X\nolimits_{Rn} \) is nth real parts bower or solution vector. \( \mathop X\nolimits_{R\,elite} \) represents the real parts position of the elite. The value \( \mathop X\nolimits_{Rj} \) is calculated by the roulette wheel procedure. \( \mathop {\text{var} }\nolimits_{{R{ \text{max} }}} \) and \( \mathop {\text{var} }\nolimits_{{R{ \text{min} }}} \) mean the upper and lower bounds of the real part. \( \mathop x\nolimits_{In} \) is nth imaginary parts bower or solution vector. \( \mathop x\nolimits_{Ielite} \) Represents the imaginary parts position of the elite. The value \( \mathop x\nolimits_{Ij} \) is calculated by the roulette wheel procedure. \( \mathop {\text{var} }\nolimits_{\text{Imax}} \) and \( \mathop {\text{var} }\nolimits_{\text{Imin}} \) mean the upper and lower bounds of the real part.

Bower Mutation

$$ \mathop X\nolimits_{Rn}^{new} + i\mathop X\nolimits_{In}^{new} = \mathop X\nolimits_{Rn}^{old} + \mathop {iX}\nolimits_{In}^{old} + (\mathop \sigma \nolimits_{R} \,*\,N(0,1)) + i(\mathop \sigma \nolimits_{I} \,*\,N(0,1)) $$
(3)
$$ \begin{aligned} \mathop \sigma \nolimits_{R} = z\,*\,(\mathop {\text{var} }\nolimits_{{R{ \text{max} }}} - \mathop {\text{var} }\nolimits_{{R{ \text{min} }}} ) \hfill \\ \mathop \sigma \nolimits_{I} = z\,*\,(\mathop {\text{var} }\nolimits_{\text{Imax}} - \mathop {\text{var} }\nolimits_{\text{Imin}} ) \hfill \\ \end{aligned} $$
(4)

In Eq. (4), the real and imaginary parts of the bird’s bower position obey normal distribution N. \( \mathop {\text{var} }\nolimits_{\text{Imax}} \) and \( \mathop {\text{var} }\nolimits_{\text{Imin}} \) mean the upper and lower bounds of the real part. \( \mathop {\text{var} }\nolimits_{\text{Imax}} \) and \( \mathop {\text{var} }\nolimits_{\text{Imin}} \) mean the upper and lower bounds of the virtual part.

Fitness Calculation

In order to solve the fitness function, the complex-valued of bower must be converted into a real number, the number of modulo as the size of the real number, the symbol determined by the amplitude. The specific approach is shown in Eqs. (5) and (6)

$$ \rho_{n} = \sqrt {X_{Rn}^{2} + X_{In}^{2} } $$
(5)
$$ X_{n} = \rho_{n} \text{sgn} (\sin (\frac{{X_{In} }}{{\rho_{n} }})) + \frac{{\text{var}_{{R{ \text{max} }}} + \text{var}_{{R{ \text{min} }}} }}{2} $$
(6)

where \( \mathop \rho \nolimits_{n} \) denotes the nth multidimensional modulus, \( X_{Rn} \) and \( X_{Ln} \) denote the real and imaginary parts of the complex modulus, respectively, and \( X_{n} \) is the transformed real number independent variable.

3 Experimental Results and Discussion

3.1 Simulation Platform

All calculations run in Matlab R2016a. The CPU is Intel i5 processor. The operating system is win10.

3.2 Compare Algorithm Parameter Settings

We have chosen five classical optimization algorithms to compare with CSBO, including the artificial bee colony optimization algorithm [6], bat algorithm [7], Cuckoo search optimizer (CS) [8] and the original version Satin Bowerbird Optimization algorithm [9].

3.3 Benchmark Test Functions

In this section, the CSBO algorithm is based on 20 Standard test functions. These 20 reference functions are classical functions used by many researchers. In spite of the simplicity, we chose these test functions to compare our results with the current heuristic results. These reference functions are listed in Table 1, where Dim represents the dimension of the function, range is the boundary of the function search space (Figs. 1 and 2).

Table 1. Benchmark functions
Fig. 1.
figure 1

Convergence curves of algorithms

Fig. 2.
figure 2

Convergence curves of algorithms

The results of the standard test function are shown in Table 2. It can be observed that the accuracy of the CSBO algorithm exceeds that of other algorithms. From the convergence graph, we can see that the convergence speed of the CSBO algorithm is faster than other algorithms. The variance map shows that the CSBO algorithm results are stable. Summary, the experimental results in this paper demonstrates that CSBO shows competitive results among the three benchmark functions and outperforms other well-known algorithms and points out that CSBO has better in more other kinds of algorithms. The next section examines the CSBO solution to engineering problems.

Table 2. Benchmark functions test results

4 Conclusions

This paper a complex-valued encoding satin bowerbird optimization algorithm (CSBO) is proposed. This algorithm introduces the idea of complex-valued coding and finds the optimal one by updating the real and imaginary parts value. The proposed CSBO optimization algorithm is compared against real-valued SBO and other bio-inspired optimization algorithms using 3 standard test functions including unimodal and multimodal functions, induction motor parameter identification and p-value test. Results show that the proposed CSBO can significantly improve the performance metrics. Future research focuses on the complex-valued satin bowerbird optimizer (CSBO) algorithm is used in combinatorial optimization, engineering optimization and other applied fields.