**2. Testing model**

The residual driven robots have many advantages such as easy escape from obstacles, flexible movement as well as a large operation space. However, their disadvantage is the complexity of the robot structure [16]. In this study, a serial redundant manipulator robot was used to evaluate the algorithm in resolving the inverse kinematics requirements. The simplified robot model was shown in the **Figure 1**. As in the figure, this serial robot manipulator is of type 7R (R: Revolute). The parameters of the D-H table of the robot are given in **Table 1**.

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem… DOI: http://dx.doi.org/10.5772/intechopen.97138*

**Figure 1.** *The 7-DFO robot Scheme and coordinate systems used in the study.*


#### **Table 1.**

for robots such as: geometry method is the method using geometric and trigonometric relationships to solve; the iterative method is often required inversion of a Jacobian matrix, etc. However, when applying these methods to solve the IK problem for robots, especially with redundant robots, it is often much more complicated and time-consuming. The reason is the nonlinearity of the formulas and the geometry between the workspace and the joint space. In addition, the difficult point is in the singularity, the multiple solutions of these formulas as well as the necessary variation of the formulas corresponding to the changes of different robot structures [3–5].

*Robotics Software Design and Engineering*

In addition to those existing methods of solving the IK problems, in recent years, the application of meta-heuristic optimization algorithms has become increasingly common. 8 optimization algorithms applied in [5] in the cases of a single point or a whole trajectory endpoint. The simulation results showed that the PSO algorithm can effectively solve the IK problem. In [6] the authors used algorithms such as ABC, PSO, and FA to solve the inverse kinematic requirement for Kawasaki RS06L 6-DoF robot in the task of picking and place objects. Ayyıldız et al. compared the results of all IK tests for a 4-DOF serial robot using 4 different algorithms: PSO, QPSO, GA and GSA [7]. Two versions of the PSO algorithm have been used to solve the IK problem for robots with a number of degrees of freedom from 9 to 180 [8]. In recent research [9], Malek et al. used PSO algorithm to handle inverse kinematics for a 7-DoF robot arm manipulator. The study mentioned both the requirements for the location and the direction of the endpoint, however, it only solved for 2 different end effector positions. Laura et al., in [10] used DE algorithm for the IK problem of 7-DoF robot. The problem was solved for specific points, but the quality evaluation parameters such as endpoint position deviation, execution time as well as the values of the joints' variable did not reach impressive quality. Ahmed El-Sherbiny et al. [11] proposed to use ABC variant algorithm for solving inverse kinematics problem in 5 DoFs robot arm. Serkan Dereli et al. [12] used a quantum behave partial algorithm (QPSO) for a 7-DoF serial manipulator and compare the results

with other techniques such as firefly algorithm (FA), PSO and ABC.

outlined in Section VI.

**2. Testing model**

**20**

In this study, the self-adaptive control parameters in Differential Evolution (ISADE) algorithm, that developed [13, 14] by authors, was applied to solve the problem of inverse kinematic for a 7-DOF serial robot. To compare the results, this IK problem was also handled by applying DE and PSO algorithms. In addition, the study also compared the results in the application of the above algorithms with the search space improvement of joints' variables (Pro-ISADE, Pro-PSO and Pro-DE) [15]. The remainder of the paper is divided into the following sections: Section II describes the experimental model. The theory of the PSO, DE and ISADE algorithms as well as the algorithms with improved search area, Pro-PSO, Pro-DE and Pro-ISADE, will then be presented in Section III. Section IV covers scenarios and object functions that will be applied to calculate the IK. The results after applying the algorithm are shown and compared in Section V. Finally, the conclusions are

The residual driven robots have many advantages such as easy escape from obstacles, flexible movement as well as a large operation space. However, their disadvantage is the complexity of the robot structure [16]. In this study, a serial redundant manipulator robot was used to evaluate the algorithm in resolving the inverse kinematics requirements. The simplified robot model was shown in the **Figure 1**. As in the figure, this serial robot manipulator is of type 7R (R: Revolute).

The parameters of the D-H table of the robot are given in **Table 1**.

*D-H parameters.*

The homogeneous transformation matrix can be used to obtain the forward kinematics of the robot manipulator, using the DH parameters in Eq. (1) [17].

$$T\_{i-1\dot{i}} = \begin{bmatrix} \mathbf{C}\theta\_{\dot{i}} & -\mathbf{S}\theta\_{\dot{i}} & \mathbf{0} & a\_{i} \\\\ \mathbf{S}\theta\_{i}\mathbf{C}\alpha\_{i} & \mathbf{C}\theta\_{i}\mathbf{C}\alpha\_{i} & -\mathbf{S}\alpha\_{i} & -d\_{i}\mathbf{S}\alpha\_{i} \\\\ \mathbf{S}\theta\_{i}\mathbf{S}\alpha\_{i} & \mathbf{S}\theta\_{i}\mathbf{S}\alpha\_{i} & -\mathbf{C}\alpha\_{i} & -d\_{i}\mathbf{C}\alpha\_{i} \\\\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{1} \end{bmatrix} \tag{1}$$

where S and C denote the sine and cosine functions.

$$\text{The position and orientation of the end-effector can be determined by Eq. (2):}$$

$$T\_{07} = T\_{01} \* T\_{12} \* T\_{23} \* T\_{34} \* T\_{45} \* T\_{56} \* T\_{67} = \begin{bmatrix} n\_{\chi} & s\_{\chi} & a\_{\chi} & \mathbf{x}\_{\mathfrak{H}} \\ n\_{\mathcal{\chi}} & s\_{\mathcal{\chi}} & a\_{\mathcal{\chi}} & y\_{\mathfrak{H}} \\ n\_{x} & s\_{x} & a\_{x} & z\_{\mathfrak{H}} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{1} \end{bmatrix} \tag{2}$$

With:

$$T\_{10} = \begin{bmatrix} cq1 & 0 & -q1 & 0 \\ sq1 & 0 & q1 & 0 \\ 0 & -1 & 0 & 1 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{3}$$

$$T\_{12} = \begin{bmatrix} cq2 & 0 & sq2 & l2qs2 \\ sq2 & 0 & -qs2 & l2s2 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{4}$$

$$T\_{23} = \begin{bmatrix} cq3 & 0 & -qs3 & l3qs3 \\ sq3 & 0 & cq3 & l3s3 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{5}$$

$$T\_{34} = \begin{bmatrix} cq4 & 0 & sq4 & l4sq4 \\ sq4 & 0 & -sq4 & l4sq4 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{6}$$

$$T\_{45} = \begin{bmatrix} cq5 & 0 & -qs5 & l5s9 \\ sq5 & 0 & cq5 & l5s9 \\ 0 & -1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{7}$$

$$T\_{56} = \begin{bmatrix} cq6 & -sq5 & 0 & l6s6 \\ sq6 & cq6 & 0 & l6s6 \\ sq6 & cq6 & 0 & l6s6 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{8}$$

$$T\_{66} = \begin{bmatrix} cq7 & -sq7 & 0 & l6s6 \\ sq7 & cq7 & 0 & l6s6 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \tag{9}$$

$$T\_{67} = \begin{bmatrix} cq7 & -sq7 & 0 & l6s6 \\ sq7 & cq7 & 0$$

*xE* ¼ *d*7*sq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 � *cq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 � *l*4*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *l*5*sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 þ *l*2*cq*1*cq*2 � *l*3*sq*1*sq*3 � *l*5*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *l*7*cq*7*sq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 � *cq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 þ *l*6*sq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 þ *l*7*sq*7*cq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 þ *sq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 � *l*6*cq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem…*

*yE* ¼ *l*4*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *d*7*sq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 � *cq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*5*sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*2*cq*2*sq*1 þ *l*3*cq*1*sq*3 þ *l*5*cq*5*cq*4*cq*1*sq*3

� *l*7*cq*7*sq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 þ *cq*4*sq*1*sq*2 � *cq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 � *l*7*sq*7*cq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1

þ *cq*4*sq*1*sq*2 þ *sq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3

� *l*6*sq*6*cq*2*cq*4 � *cq*3*sq*2*sq*4 � *l*3*cq*3*sq*2 � *l*4*cq*2*sq*4 � *l*6*cq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2

When solving the problem of inverse kinematics, with the endpoint coordinates as on the left side of Eq. (10), we need to find the values of the matching variable *q*. However, according to the Equation, the number of equations is much less than the

matching solution. In this study, ISADE algorithm and ISADE with searching space improvement algorithm (Pro-ISADE) were used to solve the IK problem for the robot. To compare the results, the study also used some other optimization algorithms such as PSO, DE as well as Pro-PSO and Pro-DE to solve the same IK

Particle swarm optimization was developed flying Kenney and Eberhart [18, 19] based on observing the moving characteristics of bird flock and fish school. In this algorithm the individual of the population is called particle. The particle of the population (Called swarm) can move in its space and offer a potential solution. Particles can memorize best condition and find and exchange information to other members. Each particle in the population has two characteristics: position and velocity. Starting with the particle population, each particle monitors its coordinates and updates position and speed according to the best solution for each iteration. The

(10)

(11)

þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 � *l*6*sq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 þ *cq*4*sq*1*sq*2

þ *l*6*cq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3

*zE* ¼ *l*1 � *l*2*sq*2 þ *d*7*sq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 þ *cq*5*sq*2*sq*3 � *l*5*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2

� *sq*2*sq*3*sq*5 � *l*7*cq*7*cq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *sq*2*sq*3*sq*5 þ *sq*6*cq*2*cq*4 � *cq*3*sq*2*sq*4 þ *l*7*sq*7*sq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *sq*2*sq*3*sq*5 � *cq*6*cq*2*cq*4

number of variables. This makes it very difficult to find a unique and exact

þ *cq*1*cq*2*sq*3 þ *l*3*cq*1*cq*2*cq*3 � *l*4*cq*1*sq*2*sq*4

*DOI: http://dx.doi.org/10.5772/intechopen.97138*

� *cq*3*sq*2*sq*4 � *l*4*cq*3*cq*4*sq*2 þ *l*5*sq*2*sq*3*sq*5

**3. Applied algorithms and object functions**

velocity and position values are shown in the following equation:

*vid*ð Þ¼ *<sup>t</sup>* <sup>þ</sup> <sup>1</sup> <sup>w</sup>*vid*ð Þþ*<sup>t</sup> <sup>c</sup>*1*rand pid*ð Þ�*<sup>t</sup> xid*ð Þ*<sup>t</sup>* <sup>þ</sup> *<sup>c</sup>*2*rand gid*ð Þ<sup>t</sup> ‐ <sup>x</sup>*i*ð Þ<sup>t</sup>

þ *l*3*cq*2*cq*3*sq*1 � *l*4*sq*1*sq*2*sq*4

problem for the robot above.

x*id*ð Þ¼ *t* þ 1 *xid*ðÞþ*t vit*ð Þ*t*

**3.1 PSO**

**23**

Where, *T*<sup>07</sup> is matrix to produce a Catesian coordinate for any seven joint values. In the Eq. (10), *x*E, *y*E, *z*<sup>E</sup> � � denote the elements of position vector whereas, *nx*, *ny*, *nz*, *sx*, *sy*, *sz*, *ax*, *ay*, *az* � � are the rotational elements of transformation matrix. In this study, only position vectors were used to calculate the distance error. After the computation, the end-effector coordinate in the manipulation space is determined by:

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem… DOI: http://dx.doi.org/10.5772/intechopen.97138*

*xE* ¼ *d*7*sq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 � *cq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 � *l*4*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *l*5*sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 þ *l*2*cq*1*cq*2 � *l*3*sq*1*sq*3 � *l*5*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *l*7*cq*7*sq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 � *cq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 þ *l*6*sq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 þ *l*7*sq*7*cq*6*sq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 � *cq*1*cq*4*sq*2 þ *sq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 � *l*6*cq*6*cq*5*cq*4*sq*1*sq*3 � *cq*1*cq*2*cq*3 þ *cq*1*sq*2*sq*4 þ *sq*5*cq*3*sq*1 þ *cq*1*cq*2*sq*3 þ *l*3*cq*1*cq*2*cq*3 � *l*4*cq*1*sq*2*sq*4 *yE* ¼ *l*4*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *d*7*sq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 � *cq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*5*sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*2*cq*2*sq*1 þ *l*3*cq*1*sq*3 þ *l*5*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 � *l*6*sq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 þ *cq*4*sq*1*sq*2 � *l*7*cq*7*sq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 þ *cq*4*sq*1*sq*2 � *cq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 � *l*7*sq*7*cq*6*sq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 þ *cq*4*sq*1*sq*2 þ *sq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*6*cq*6*cq*5*cq*4*cq*1*sq*3 þ *cq*2*cq*3*sq*1 � *sq*1*sq*2*sq*4 þ *sq*5*cq*1*cq*3 � *cq*2*sq*1*sq*3 þ *l*3*cq*2*cq*3*sq*1 � *l*4*sq*1*sq*2*sq*4 *zE* ¼ *l*1 � *l*2*sq*2 þ *d*7*sq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 þ *cq*5*sq*2*sq*3 � *l*5*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *l*6*sq*6*cq*2*cq*4 � *cq*3*sq*2*sq*4 � *l*3*cq*3*sq*2 � *l*4*cq*2*sq*4 � *l*6*cq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *sq*2*sq*3*sq*5 � *l*7*cq*7*cq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *sq*2*sq*3*sq*5 þ *sq*6*cq*2*cq*4 � *cq*3*sq*2*sq*4 þ *l*7*sq*7*sq*6*cq*5*cq*2*sq*4 þ *cq*3*cq*4*sq*2 � *sq*2*sq*3*sq*5 � *cq*6*cq*2*cq*4 � *cq*3*sq*2*sq*4 � *l*4*cq*3*cq*4*sq*2 þ *l*5*sq*2*sq*3*sq*5 (10)

When solving the problem of inverse kinematics, with the endpoint coordinates as on the left side of Eq. (10), we need to find the values of the matching variable *q*. However, according to the Equation, the number of equations is much less than the number of variables. This makes it very difficult to find a unique and exact matching solution. In this study, ISADE algorithm and ISADE with searching space improvement algorithm (Pro-ISADE) were used to solve the IK problem for the robot. To compare the results, the study also used some other optimization algorithms such as PSO, DE as well as Pro-PSO and Pro-DE to solve the same IK problem for the robot above.

### **3. Applied algorithms and object functions**

#### **3.1 PSO**

With:

*Robotics Software Design and Engineering*

*T*<sup>01</sup> ¼

*T*<sup>12</sup> ¼

*T*<sup>23</sup> ¼

*T*<sup>34</sup> ¼

*T*<sup>45</sup> ¼

*T*<sup>56</sup> ¼

*T*<sup>67</sup> ¼

In the Eq. (10), *x*E, *y*E, *z*<sup>E</sup>

determined by:

**22**

*nx*, *ny*, *nz*, *sx*, *sy*, *sz*, *ax*, *ay*, *az*

*cq*1 0 �*sq*1 0 *sq*1 0 *cq*1 0 0 �1 0 *l*1 00 0 1

*cq*2 0 *sq*2 *l*2*cq*2 *sq*2 0 �*cq*2 *l*2*sq*2 01 0 0 00 0 1

*cq*3 0 �*sq*3 *l*3*cq*3 *sq*3 0 *cq*3 *l*3*sq*3

0 �10 0 00 0 1

*cq*4 0 *sq*4 *l*4*cq*4

*sq*4 0 �*cq*4 *l*4*sq*4 01 0 0 00 0 1

*cq*5 0 �*sq*5 *l*5*cq*5 *sq*5 0 *cq*5 *l*5*sq*5

0 �10 0 00 0 1

*cq*6 �*sq*6 0 *l*6*cq*6 *sq*6 *cq*6 0 *l*6*sq*6 0 010 0 00 1

*cq*7 �*sq*7 0 *l*7*cq*7 *sq*7 *cq*7 0 *l*7*sq*7 0 01 *d*7 0 001

Where, *T*<sup>07</sup> is matrix to produce a Catesian coordinate for any seven joint values.

� � are the rotational elements of transformation matrix. In this study, only position vectors were used to calculate the distance error. After the computation, the end-effector coordinate in the manipulation space is

� � denote the elements of position vector whereas,

(3)

(4)

(5)

(6)

(7)

(8)

(9)

Particle swarm optimization was developed flying Kenney and Eberhart [18, 19] based on observing the moving characteristics of bird flock and fish school. In this algorithm the individual of the population is called particle. The particle of the population (Called swarm) can move in its space and offer a potential solution. Particles can memorize best condition and find and exchange information to other members. Each particle in the population has two characteristics: position and velocity. Starting with the particle population, each particle monitors its coordinates and updates position and speed according to the best solution for each iteration. The velocity and position values are shown in the following equation:

$$\begin{aligned} \mathbf{v}\_{id}(t+\mathbf{1}) &= \mathbf{w}v\_{id}(t) + c\_1 rand \left[ p\_{id}(t) - \mathbf{x}\_{id}(t) \right] + c\_2 rand \left[ \mathbf{g}\_{id}(t) \cdot \mathbf{x}\_i(t) \right] \\ \mathbf{x}\_{id}(t+\mathbf{1}) &= \mathbf{x}\_{id}(t) + v\_{it}(t) \end{aligned} \tag{11}$$

In particular, *xxi*, *vi* are the position and velocity of the particle i-th, respectively; d is number of dimension; w is the inertia weight factor, *c*1and *c*2are cognitive learning rate and social learning rate, respectively; pi is the *pbest* value of *i*\_*th* particle; What is *gbest* value of the population.

*DE=best=*2 : *V<sup>G</sup>*

*DE=rand to best=*1 : *V<sup>G</sup>*

able, respectively.

respectively.

**25**

*<sup>i</sup>*,*<sup>j</sup>* <sup>¼</sup> *<sup>X</sup><sup>G</sup>*

*DOI: http://dx.doi.org/10.5772/intechopen.97138*

which we also observe in our trial experiments.

*Fmean*

nonlinear modulation index, respectively.

Where *iter* ¼ 1, … , *itermax and i* ¼ 1, … , *NP* The control parameter *CR* is adapted as following:

*<sup>i</sup>*,*<sup>j</sup>* <sup>¼</sup> *<sup>X</sup><sup>G</sup>*

*best*,*<sup>j</sup>* <sup>þ</sup> *<sup>F</sup>* <sup>∗</sup> *<sup>X</sup><sup>G</sup>*

*3.3.2 Adaptive scaling factor F and crossover control parameter CR*

its number. The formula for F by sigmoid function as following:

*iter* ¼ *F*min þ ð Þ *F*max � *F*min

their fitness in Eq. (15). Thus, in one generation the value of *Fiter*

*Fi*

*CRG*þ<sup>1</sup>

The ISADE algorithm was summarized as in the **Figure 2**.

**3.4 Cost functions and Algorithms with searching space improvement**

*Fi* <sup>¼</sup> <sup>1</sup>

*<sup>r</sup>*1,*<sup>j</sup>* <sup>þ</sup> *<sup>F</sup>* <sup>∗</sup> *<sup>X</sup><sup>G</sup>*

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem…*

*<sup>r</sup>*1,*<sup>j</sup>* � *<sup>X</sup><sup>G</sup> r*2,*j* <sup>þ</sup> *<sup>F</sup>* <sup>∗</sup> *<sup>X</sup><sup>G</sup>*

Where: *i* ¼ f g 1, 2, … , *NP* ; *j* ¼ f g 1, … , *D* are current population and design vari-

}*DE=Randtobest=*1*=bin*} strategy usually demonstrates good diversity while the }*DE=best=*1*=bin*} and }*DE=best=*2*=bin*}strategy show good convergence property,

In the ISADE algorithm, the author suggested to use the sigmoid function to control neighborhood parameter. we sort the particles by estimating their fitness. A ranked particle is labeled with ranked number and assigned F that corresponds with

<sup>1</sup> <sup>þ</sup> exp *<sup>α</sup>* <sup>∗</sup> *<sup>i</sup>*�*NP*

Where: *α*, *i*denote the gain of the sigmoid function, particle of the *ith*in *NP*,

For better performance of ISADE, the scale factor F should be high in the beginning to have much exploration and after curtain generation F needs to be small for proper exploitation. Thus, we proposed to calculate the F as follow:

Where: *Fmax*, *Fmin*, *iter*, *itermax and niter* are the lower boundary condition of *F*, upper boundary condition of *F*, current generation, maximum generation and

The author introduced a novel approach of scale factor*Fi* of each particle with

*iter* <sup>¼</sup> *Fi* � *<sup>F</sup>mean*

*<sup>i</sup>* <sup>¼</sup> *rand*<sup>2</sup> *if rand*<sup>1</sup> <sup>≤</sup>*<sup>τ</sup> CR<sup>G</sup> <sup>i</sup> othewise*

As mention in the introduction part, the disadvantage of many studies using optimization algorithms to solve the IK problem of redundant robots is to focus on

*iter*

not the same for all particles in the population rather they are changed in each generation. The final value of scale factor for each generation is calculated as follow:

2

*iter*max � *iter iter*max *niter*

*best*,*<sup>j</sup>* � *<sup>X</sup><sup>G</sup> r*1,*j* <sup>þ</sup> *<sup>F</sup>* <sup>∗</sup> *<sup>X</sup><sup>G</sup>*

*<sup>r</sup>*3,*<sup>j</sup>* � *<sup>X</sup><sup>G</sup> r*4,*j* (15)

*NP* (17)

<sup>2</sup> (19)

(18)

(20)

*<sup>i</sup>* ð Þ *i* ¼ 1, … , *NP* are

*<sup>r</sup>*2,*<sup>j</sup>* � *<sup>X</sup><sup>G</sup> r*3,*j* (16)

#### **3.2 DE**

Differential Evolution (DE) algorithm is a population-based stochastic optimization algorithm recently introduced. DE works with two populations; old generation and new generation of the same population. The population is randomly initialized within the initial parameter bounds individuals in the population has two characteristics: position and velocity. Starting with the individual population, each individual monitors its coordinates and updates position and speed according to the best solution for each iteration. Velocity values (V) is randomly created in one of eight ways:

<sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þ Xr2 ‐Xr3 <sup>V</sup> <sup>¼</sup> Xbest <sup>þ</sup> Fwð Þ Xr1 ‐Xr2 <sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fwð Þ Xr4 ‐Xr5 <sup>V</sup> <sup>¼</sup> Xbest <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fwð Þ Xr3 ‐Xr4 <sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fw Xbest ð Þ ‐<sup>X</sup> <sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fwð Þþ Xr3 ‐Xr4 Fw Xbest ð Þ ‐<sup>X</sup> <sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fw Xbest ð Þ ‐X*<sup>r</sup>*<sup>1</sup> <sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fwð Þ <sup>X</sup>*<sup>r</sup>*<sup>1</sup> ‐<sup>X</sup> (12)

In particular, F is Scaling factor, *r*1,*r*2,*r*3,*r*4,*r*<sup>5</sup> is random solution, *r*1,*r*2,*r*3,*r*4,*r*<sup>5</sup> ∈ 1, 2, 3, … , *Np* and *<sup>r</sup>*<sup>1</sup> 6¼ *<sup>r</sup>*<sup>2</sup> 6¼ *<sup>r</sup>*<sup>3</sup> 6¼ *<sup>r</sup>*<sup>4</sup> 6¼ *<sup>r</sup>*<sup>5</sup> 6¼ i, *<sup>X</sup>*best is population filled with the best member.

Position values new (U) shown in the following Equation:

$$\mathbf{U} = \mathbf{X}.\*\mathbf{F}\mathbf{M}\_{\mathrm{mpo}} + \mathbf{V}.\*\mathbf{F}\mathbf{M}\_{\mathrm{mu}i} \tag{13}$$

*FM*mui are all random numbers <0.9, *FM*mpo is inverse mask to *FM*mui*:*

#### **3.3 ISADE**

In the [13, 14], we suggested to develop a new version of DE algorithm that can automatically adapt the learning strategies and the parameters settings during evolution. The main ideas of the ISADE algorithm are summarized below.

#### *3.3.1 Mutation operator*

ISADE probabilistically selects one out of several available learning strategies in the mutation operator for each individual in the current population. In this research, we select three learning strategies in the mutation operator as candidates: "DE/best/1/bin", "DE/best/2/bin" and "DE/rand to best/1/bin" that are respectively expressed as:

$$\text{DE/best/1}: \ V\_{i,j}^G = X\_{best,j}^G + F \ast \left( X\_{r1,j}^G - X\_{r2,j}^G \right) \tag{14}$$

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem… DOI: http://dx.doi.org/10.5772/intechopen.97138*

$$\text{DE/best/2}: V\_{i\bar{j}}^G = X\_{\text{bet}\,j}^G + F\* \left(X\_{r1\bar{j}}^G - X\_{r2\bar{j}}^G \right) + F\* \left(X\_{r3\bar{j}}^G - X\_{r4\bar{j}}^G \right) \tag{15}$$

$$\text{DE/rand to best}/\mathbf{1}: \mathbf{V}\_{i,j}^G = \mathbf{X}\_{r1,j}^G + \mathbf{F} \ast \left(\mathbf{X}\_{\text{best},j}^G - \mathbf{X}\_{r1,j}^G\right) + \mathbf{F} \ast \left(\mathbf{X}\_{r2,j}^G - \mathbf{X}\_{r3,j}^G\right) \tag{16}$$

Where: *i* ¼ f g 1, 2, … , *NP* ; *j* ¼ f g 1, … , *D* are current population and design variable, respectively.

}*DE=Randtobest=*1*=bin*} strategy usually demonstrates good diversity while the }*DE=best=*1*=bin*} and }*DE=best=*2*=bin*}strategy show good convergence property, which we also observe in our trial experiments.

#### *3.3.2 Adaptive scaling factor F and crossover control parameter CR*

In the ISADE algorithm, the author suggested to use the sigmoid function to control neighborhood parameter. we sort the particles by estimating their fitness. A ranked particle is labeled with ranked number and assigned F that corresponds with its number. The formula for F by sigmoid function as following:

$$F\_i = \frac{1}{1 + \exp\left(a\*\frac{i-\frac{NP}{2}}{NP}\right)}\tag{17}$$

Where: *α*, *i*denote the gain of the sigmoid function, particle of the *ith*in *NP*, respectively.

For better performance of ISADE, the scale factor F should be high in the beginning to have much exploration and after curtain generation F needs to be small for proper exploitation. Thus, we proposed to calculate the F as follow:

$$F\_{iter}^{mean} = F\_{\rm min} + (F\_{\rm max} - F\_{\rm min}) \left( \frac{iter\_{\rm max} - iter}{iter\_{\rm max}} \right)^{n\_{irr}} \tag{18}$$

Where: *Fmax*, *Fmin*, *iter*, *itermax and niter* are the lower boundary condition of *F*, upper boundary condition of *F*, current generation, maximum generation and nonlinear modulation index, respectively.

The author introduced a novel approach of scale factor*Fi* of each particle with their fitness in Eq. (15). Thus, in one generation the value of *Fiter <sup>i</sup>* ð Þ *i* ¼ 1, … , *NP* are not the same for all particles in the population rather they are changed in each generation. The final value of scale factor for each generation is calculated as follow:

$$F\_{iter}^{i} = \frac{F\_i - F\_{iter}^{mean}}{2} \tag{19}$$

Where *iter* ¼ 1, … , *itermax and i* ¼ 1, … , *NP* The control parameter *CR* is adapted as following:

$$CR\_i^{G+1} = \begin{cases} rand\_2 \text{if } rand\_1 \le \varepsilon\\ CR\_i^G \text{ otherwise} \end{cases} \tag{20}$$

The ISADE algorithm was summarized as in the **Figure 2**.

#### **3.4 Cost functions and Algorithms with searching space improvement**

As mention in the introduction part, the disadvantage of many studies using optimization algorithms to solve the IK problem of redundant robots is to focus on

In particular, *xxi*, *vi* are the position and velocity of the particle i-th, respectively;

Differential Evolution (DE) algorithm is a population-based stochastic optimization algorithm recently introduced. DE works with two populations; old generation and new generation of the same population. The population is randomly initialized within the initial parameter bounds individuals in the population has two characteristics: position and velocity. Starting with the individual population, each individual monitors its coordinates and updates position and speed according to the best solution for each iteration. Velocity values (V) is randomly created in one of

d is number of dimension; w is the inertia weight factor, *c*1and *c*2are cognitive learning rate and social learning rate, respectively; pi is the *pbest* value of *i*\_*th*

particle; What is *gbest* value of the population.

*Robotics Software Design and Engineering*

<sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þ Xr2 ‐Xr3 <sup>V</sup> <sup>¼</sup> Xbest <sup>þ</sup> Fwð Þ Xr1 ‐Xr2

<sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fwð Þ Xr4 ‐Xr5 <sup>V</sup> <sup>¼</sup> Xbest <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fwð Þ Xr3 ‐Xr4 <sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fw Xbest ð Þ ‐<sup>X</sup>

<sup>V</sup> <sup>¼</sup> Xr1 <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fw Xbest ð Þ ‐X*<sup>r</sup>*<sup>1</sup> <sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr2 ‐Xr3 Fwð Þ <sup>X</sup>*<sup>r</sup>*<sup>1</sup> ‐<sup>X</sup>

In particular, F is Scaling factor, *r*1,*r*2,*r*3,*r*4,*r*<sup>5</sup> is random solution,

*FM*mui are all random numbers <0.9, *FM*mpo is inverse mask to *FM*mui*:*

lution. The main ideas of the ISADE algorithm are summarized below.

the mutation operator for each individual in the current population. In this

*<sup>i</sup>*,*<sup>j</sup>* <sup>¼</sup> *<sup>X</sup><sup>G</sup>*

*DE=best=*1 : *V<sup>G</sup>*

In the [13, 14], we suggested to develop a new version of DE algorithm that can automatically adapt the learning strategies and the parameters settings during evo-

ISADE probabilistically selects one out of several available learning strategies in

*best*,*<sup>j</sup>* <sup>þ</sup> *<sup>F</sup>* <sup>∗</sup> *<sup>X</sup><sup>G</sup>*

*<sup>r</sup>*1,*<sup>j</sup>* � *<sup>X</sup><sup>G</sup> r*2,*j*

research, we select three learning strategies in the mutation operator as candidates: "DE/best/1/bin", "DE/best/2/bin" and "DE/rand to best/1/bin" that are respectively

Position values new (U) shown in the following Equation:

<sup>V</sup> <sup>¼</sup> <sup>X</sup> <sup>þ</sup> Fwð Þþ Xr1 ‐Xr2 Fwð Þþ Xr3 ‐Xr4 Fw Xbest ð Þ ‐<sup>X</sup>

and *<sup>r</sup>*<sup>1</sup> 6¼ *<sup>r</sup>*<sup>2</sup> 6¼ *<sup>r</sup>*<sup>3</sup> 6¼ *<sup>r</sup>*<sup>4</sup> 6¼ *<sup>r</sup>*<sup>5</sup> 6¼ i, *<sup>X</sup>*best is population

U ¼ X*:* ∗ FMmpo þ V*:* ∗ FMmui (13)

(12)

(14)

**3.2 DE**

eight ways:

**3.3 ISADE**

expressed as:

**24**

*3.3.1 Mutation operator*

*r*1,*r*2,*r*3,*r*4,*r*<sup>5</sup> ∈ 1, 2, 3, … , *Np*

filled with the best member.

After calculating for 1st point of the trajectory, the remaining points are calculated with a search limitation around the previous optimal joints' values. By using this suggested range, the program's search space will be limited while ensuring the continuity of the joint variables. In this case, the target function is still the same as

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem…*

In Scenario 1, an endpoint in the workspace were randomly selected; the

In this case, the robot was required to move the endpoint through 100 points in the robot's working space one after another. These points were selected at random for the purpose of testing the effectiveness of each algorithm with many distinct points. Similar to the previous case, in this Scenario we also only applied the algorithms PSO, DE and ISADE with the solution space of the matching variable

The manipulator robot was required to move the end effector following a certain

*xE* ¼ 200 ∗ *cos*ð Þ 2 ∗ *zE=*100 *yE* ¼ 200 ∗ *sin* ð Þ 2 ∗ *zE=*100

algorithms of PSO, Pro ISO, DE, Pro-DE and ISADE, Pro-ISADE, the comparison of the results on the same graph is not favorable. Therefore, the study divided this case

• Scenario 3.1: Results when using ISADE algorithm comparing with results from

• Scenario 3.2: Compare the results using Pro-ISADE algorithm with the results

And then results from Scenario 3.1 were be compared with the results from

� � is the desired endpoint coordinate on the trajectory. With 6

(22)

trajectory. The selected trajectory is spiral, and it is described by the following

*zE* ¼ *n* ∗ *pi*

8 >><

>>:

getting from Pro-PSO and Pro-DE algorithms

PSO; DE and ISADE algorithms were then applied to solve the required problem. The purpose of this Scenario is to compare the convergence speed of the three algorithms. In this case, since the initial and the desired endpoints can be far apart, the Pro-PSO; Pro-DE and Pro-ISADE algorithms cannot

the function of 1st point, but it has coefficient a = 0.

*DOI: http://dx.doi.org/10.5772/intechopen.97138*

**4. Scenarios**

**4.1 Scenario 1**

be applied.

**4.2 Scenario 2**

**4.3 Scenario 3**

Where: *xE*, *yE*, *zE*

into two smaller Scenarios:

Scenario 3.2.

**27**

PSO and DE algorithms.

function:

which limits the motion of these joints.

the results related to the optimal running process such as execution time, number of generation … but have not yet considered the feasibility of the joints' variable values. In order to overcome these drawbacks, the author of this research [15] proposed this algorithm that is explained as following: The solution to improve the continuity of joints' values constrains the initialization domain of X. This help the program to achieve the dual goal of increasing calculation speed, accuracy and ensuring continuity for the value of joints' variables. In this algorithm, firstly the robot from any position moves to the first point of the trajectory. With this first point, the initialization values for the particles are randomly selected in the full Range of Motion (RoM) of joints. In addition, the target function in this case has the form:

$$\begin{aligned} Func. \mathbf{1} &= a \ast \sqrt{\sum\_{k=1}^{5} \left( \mathbf{q}\_{i}^{k} - \mathbf{q}\_{0}^{k} \right)} \\ &+ b \ast \sqrt{\frac{\left( \mathbf{x}\_{i} - \mathbf{x}\_{\epsilon t} \right)^{2} + \left( \mathbf{y}\_{i} - \mathbf{y}\_{\epsilon i} \right)^{2} + \left( \mathbf{z}\_{i} - \mathbf{z}\_{\epsilon t} \right)^{2} + \left( \mathbf{R} \mathbf{x}\_{i} - \mathbf{R} \mathbf{x}\_{\epsilon} \right)^{2} + }{\left( \mathbf{R} \mathbf{x} - \mathbf{R} \mathbf{x}\_{\epsilon} \right)^{2} + \left( \mathbf{R} \mathbf{y}\_{i} - \mathbf{R} \mathbf{y}\_{\epsilon} \right)^{2} + \left( \mathbf{R} \mathbf{z}\_{i} - \mathbf{R} \mathbf{z}\_{\epsilon} \right)^{2}}} \end{aligned} \tag{21}$$

where the values *q<sup>k</sup> <sup>i</sup> and q<sup>k</sup> <sup>i</sup>* (i = 1) are the joints' variable values at the original position and 1st point on the trajectory, respectively; (xi, yi, zi) and (xei, yei, zei) are the End-effector coordinates for the i-point (i = 1) found by the algorithm and the desired End-effector coordinates; (Rxi, Ryi, Rzi) and (Rxei, Ryei, Rzei) are corresponding rotation cosine angles performing orientation of the end-effector which are found by Algorithm and orientation of the desired end-effector; a, b are penalty coefficients. Cost function as Eq. (21) ensures the energy spent in the joints to reach the 1st desired position is minimized. Besides, it also minimizes the distance error between the actual and desired end-effector position. The condition to stop for points of trajectory is that the Cost Func.1 value is less than value of e or the number of iterations reaches 600 and the number of times algorithm running <10.

*Use Improved Differential Evolution Algorithms to Handle the Inverse Kinetics Problem… DOI: http://dx.doi.org/10.5772/intechopen.97138*

After calculating for 1st point of the trajectory, the remaining points are calculated with a search limitation around the previous optimal joints' values. By using this suggested range, the program's search space will be limited while ensuring the continuity of the joint variables. In this case, the target function is still the same as the function of 1st point, but it has coefficient a = 0.

## **4. Scenarios**

#### **4.1 Scenario 1**

In Scenario 1, an endpoint in the workspace were randomly selected; the PSO; DE and ISADE algorithms were then applied to solve the required problem. The purpose of this Scenario is to compare the convergence speed of the three algorithms. In this case, since the initial and the desired endpoints can be far apart, the Pro-PSO; Pro-DE and Pro-ISADE algorithms cannot be applied.

#### **4.2 Scenario 2**

In this case, the robot was required to move the endpoint through 100 points in the robot's working space one after another. These points were selected at random for the purpose of testing the effectiveness of each algorithm with many distinct points. Similar to the previous case, in this Scenario we also only applied the algorithms PSO, DE and ISADE with the solution space of the matching variable which limits the motion of these joints.

#### **4.3 Scenario 3**

the results related to the optimal running process such as execution time, number of generation … but have not yet considered the feasibility of the joints' variable values. In order to overcome these drawbacks, the author of this research [15] proposed this algorithm that is explained as following: The solution to improve the continuity of joints' values constrains the initialization domain of X. This help the program to achieve the dual goal of increasing calculation speed, accuracy and ensuring continuity for the value of joints' variables. In this algorithm, firstly the robot from any position moves to the first point of the trajectory. With this first point, the initialization values for the particles are randomly selected in the full Range of Motion (RoM) of joints. In addition, the target function in this case has

ffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi

� �<sup>2</sup> <sup>þ</sup> ð Þ Rz*<sup>i</sup>* � *Rze* <sup>2</sup> vuut (21)

*<sup>i</sup>* (i = 1) are the joints' variable values at the original

<sup>2</sup> <sup>þ</sup> ð Þ Rx*<sup>i</sup>* � *Rxe* <sup>2</sup>

þ

� �<sup>2</sup> <sup>þ</sup> ð Þ <sup>z</sup>*<sup>i</sup>* � *zei*

position and 1st point on the trajectory, respectively; (xi, yi, zi) and (xei, yei, zei) are the End-effector coordinates for the i-point (i = 1) found by the algorithm and the

the form:

**26**

**Figure 2.** *ISADE Flowchart.*

*Func:*1 ¼ *a* ∗

ffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi

� � <sup>r</sup>

ð Þ *xi* � *xei*

*<sup>i</sup> and q<sup>k</sup>*

*<sup>i</sup>* � <sup>q</sup>*<sup>k</sup>* 0

<sup>2</sup> <sup>þ</sup> <sup>y</sup>*<sup>i</sup>* � *yei*

desired End-effector coordinates; (Rxi, Ryi, Rzi) and (Rxei, Ryei, Rzei) are corresponding rotation cosine angles performing orientation of the end-effector which are found by Algorithm and orientation of the desired end-effector; a, b are penalty coefficients. Cost function as Eq. (21) ensures the energy spent in the joints to reach the 1st desired position is minimized. Besides, it also minimizes the distance error between the actual and desired end-effector position. The condition to stop for points of trajectory is that the Cost Func.1 value is less than value of e or the number of iterations reaches 600 and the number of times algorithm running <10.

ð Þ Rx � *Rxe* <sup>2</sup> <sup>þ</sup> Ry*<sup>i</sup>* � *Rye*

X<sup>5</sup> *<sup>k</sup>*¼<sup>1</sup> <sup>q</sup>*<sup>k</sup>*

*Robotics Software Design and Engineering*

þ *b* ∗

where the values *q<sup>k</sup>*

The manipulator robot was required to move the end effector following a certain trajectory. The selected trajectory is spiral, and it is described by the following function:

$$\begin{cases} x\_E = 200 \ast \cos\left(2 \ast z\_E/100\right) \\\\ y\_E = 200 \ast \sin\left(2 \ast z\_E/100\right) \\\\ z\_E = n \ast pi \end{cases} \tag{22}$$

Where: *xE*, *yE*, *zE* � � is the desired endpoint coordinate on the trajectory. With 6 algorithms of PSO, Pro ISO, DE, Pro-DE and ISADE, Pro-ISADE, the comparison of the results on the same graph is not favorable. Therefore, the study divided this case into two smaller Scenarios:


And then results from Scenario 3.1 were be compared with the results from Scenario 3.2.
