A software tool for teaching of particle swarm optimization ... - CiteSeerX

23 downloads 40589 Views 1MB Size Report
A software tool for teaching of particle swarm ... ligence in optimization problems are: food-searching behavior of ants [6], ... In this work, an educational PSO Learning Tool (PSO- ... lem space, which are associated with the best solution (fit-.
Available online at www.sciencedirect.com

Advances in Engineering Software 39 (2008) 877–887 www.elsevier.com/locate/advengsoft

A software tool for teaching of particle swarm optimization fundamentals Leandro dos Santos Coelho *, Cezar Augusto Sierakowski Industrial and Systems Engineering Graduate Program, Pontifical Catholic University of Parana´ (PPGEPS/PUCPR), Curitiba, Parana´, Brazil Received 10 August 2007; accepted 18 January 2008 Available online 26 March 2008

Abstract Swarm intelligence courses have been offered at many universities all over the world from early 1990s. However, the field of Particle Swarm Optimization (PSO) – a swarm intelligence technique – is still relatively young without any standard teaching method. This paper describes an educational software tool for aid the teaching of PSO fundamentals in MATLABÓ (MATrix LABoratory) software environment of MathWorks. In this context, an application of mobile robotics planning is developed with a friendly graphical user interface in MATLAB for teaching PSO design. Graduate students of Intelligent Systems course of Industrial and Systems Engineering Graduate Program at Pontifical Catholic University of Parana´ (PUCPR, Brazil) can then use this educational software tool called PSOLeT (particle swarm optimization learning tool) to learn and evaluate basic optimization designs. This paper also summarizes the proposed software tool and gives an application in mobile robotics. Ó 2008 Elsevier Ltd. All rights reserved. Keywords: Swarm intelligence; Particle swarm optimization; Mobile robotics; MATLAB; Learning tool; Teaching software

1. Introduction The advent of new computational techniques inspired by nature, such as, artificial neural networks [1], fuzzy systems [2], evolutionary computation [3], and swam intelligence [4] has resulted in the publication of many books and journals, new organizations and conferences, and a new group of postgraduate students who want to learn about these techniques [5]. An emergent paradigm is the swarm intelligence. Swarm intelligence approaches present similar population and evolution characteristics to those of evolutionary computation paradigms. However, it differentiates in emphasizing the cooperative behavior among group members. Swarm intelligence is inspired in nature, in the fact that interactions among a group of living animals contributes with their own experiences to the group, making it stronger in face *

Corresponding author. E-mail addresses: [email protected] (L.d.S. Coelho), cezars@ globo.com (C.A. Sierakowski). 0965-9978/$ - see front matter Ó 2008 Elsevier Ltd. All rights reserved. doi:10.1016/j.advengsoft.2008.01.005

of others. The most familiar representatives of swarm intelligence in optimization problems are: food-searching behavior of ants [6], particle swarm optimization [7], bacterial foraging [8], and artificial immune system [9]. A special approach of swarm intelligence based on simplified simulations of animals’ social behaviors, such as fish schooling and bird flocking, is the particle swarm optimization (PSO) algorithm [7,10]. PSO is a self-adaptive search optimization, first introduced by Kennedy and Eberhart [7]. Once the PSO is based on a simple concept, the social behavior of particles in the swarm, it has attracted many researchers’ attention and has been applied with success to complex engineering problems, mainly in nonlinear function minimization [11], optimal capacitor placement in distribution systems [12], shape optimization [13], dynamic systems and game theory [14], constrained optimization [15], multiobjective optimization problems [16], electromagnetics [17], control systems [18], planning of electrical systems [19], and others. Researches in PSO have been expanding very rapidly during the last years, both in academia and industry.

878

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

In this context, universities curricula must provide students with the background in PSO. Developing new courses at the postgraduate level is time consuming and challenging. For new courses in particle swarm intelligence and other adaptive optimization methods inspired by nature, development is complicated because the field is rapidly changing, few comprehensive textbooks exist, students with a wide variety of backgrounds and interests are attracted, and software implementation is an open issue [5]. Students who take a PSO or swarm intelligence course study and implement a wide range of PSO techniques. And practical implementation experience plays a very important role in learning computer relative course [20]. Simulation of PSO and other intelligent techniques can be done using various computational languages (Pascal, C++, Lisp) and mathematical tools, such as Maple, MathCAD, Mathematica, and Scilab. In this work, MATLAB (MATrix LABoratory) [21] is favored over other tools in simulation of PSO. MATLAB is a computational environment for modeling, analyzing, and simulating of a wide variety of intelligent systems. The students have also access to numerous design and analysis tools provided in MATLAB and its Fuzzy System, Neural Networks, and Optimization toolboxes. Innovations in the use of simulation tools such as MATLAB for teaching intelligent systems and related subjects may provide appropriate options, but can lead to a reduction in the ‘hand-on’ experience for the student [22]. MATLAB software package is widely used for the analysis, design, simulation, and validation methods for teaching and learning in engineering education [23–25]. The use of MATLAB makes easier to build up mathematical functions, simulations, and graphical user interface in order to display the results of intelligent systems, such as genetic algorithms [26], neural networks [27], and fuzzy systems [28]. In this work, an educational PSO Learning Tool (PSOLeT) has been developed to aid the teaching of PSO concepts for the postgraduate students. PSOLeT was implemented in MATLAB software package and it is used in Intelligent Systems course of Industrial and Systems Engineering Graduate Program at Pontifical Catholic University of Parana´, Brazil. In this regard, the MATLAB is quite suitable for postgraduate students to learn the PSO design techniques. Optimization problems in mobile robotics trajectory planning using PSOLeT, with a friendly graphical user interface in MATLAB, was established as case study in this paper. Planning optimization based on computational intelligence methods for mobile robots is attracting a wide interest in students and researchers of engineering [29,30]. Optimal path planning from a given position to the goal position among several obstacles is a capacity for an intelligent mobile robot. The efficiency of a trajectory planning algorithm depends upon both the representation of the environments and the path-search strategies.

The remainder of this paper is organized as follows. In Section 2, the fundamentals of PSO algorithm are described. In Section 3, an overview of PSOLeT design is presented. Two case studies in trajectory planning for mobile robotics and conclusion are discussed in Sections 4 and 5, respectively.

2. Particle swarm optimization PSO was originally developed by Kennedy and Eberhart in 1995 [7,31] it is a population-based evolutionary algorithm. The PSO is developed from research inspired by choreography of fish schooling and bird flocking. Natural creatures sometimes behave as a swarm. One of the main streams of artificial life research is to examine how natural creatures behave as a swarm and to reconfigure the swarm models inside a computer. A school of fish and a swarm of birds can be modeled with such simple models. The PSO has been found to be robust in solving problems featuring nonlinearity, multiple optima, and high dimensionality through adaptation, which is derived from the social-psychological theory. The language used to explain the PSO follows from the analogy of particles in a swarm. These key terms are [17,32]: (i) particle (individual, agent): each individual in the swarm; (ii) position/location: a particle’s n-dimensional coordinates which represents a solution to the problem; (iii) swarm: the entire collection (population) of particles; (iv) fitness: the fitness function provides the interface between the physical problem and the optimization problem. The fitness function is a number representing the goodness of a given solution given by a position in solution space; (v) generation: each iteration of optimization procedure using the PSO; (v) pbest (personal best): the position in parameter space of the best fitness returned for a specific particle; (vi) gbest (global best): the position in parameter space of the best fitness returned for the entire swarm; (vii) Vmax: the maximum velocity value allowed in a given direction. Similar to the other population-based evolutionary algorithms, PSO is initialized with a population of random solutions (particles) using uniform distribution. However, each particle in PSO traces a trajectory in an n-dimensional search space, updating constantly a velocity vector based on best solutions found so far by that particle as well as others in the population (swarm). Each particle keeps track of its coordinates in the problem space, which are associated with the best solution (fitness) it has achieved so far, pbest. Another ‘‘best” value tracked by the global version of the particle swarm opti-

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

mizer is the overall best value, gbest,and its location, obtained so far by any particle in the population. The particle swarm optimization algorithm, at each time step, changes the velocity of each particle moving towards its pbest and gbest locations. Velocity is weighted by random terms, with separate random numbers being generated for acceleration toward pbest and gbest locations, respectively. The procedure for implementing the global version of PSO is given by the following steps [33]: (i) Initialize a (population) of particles with random positions and velocities in the n-dimensional problem space using a uniform probability distribution function; (ii) for each particle in swarm, evaluate its fitness value; (iii) compare each particle’s fitness evaluation with the current particle’s pbest. If current value is better than pbest, set its pbest value to the current value and the pbest location to the current location in n-dimensional space; (iv) compare the fitness evaluation with the population’s overall previous best. If current value is better than gbest, then reset gbest to the current particle’s array index and value; (v) change the velocity and position of the particle according to Eqs. (1) and (2), respectively: vi ðt þ1Þ ¼ wvi ðtÞþc1 ud ½pi ðtÞxi ðtÞþc2 Ud ½pg ðtÞxi ðtÞ ð1Þ xi ðt þ1Þ ¼ xi ðtÞþDt vi ðt þ1Þ:

ð2Þ

where i = 1, 2, . . ., N is the particle’s index, t is the time (iteration or generation), the time step Dt is choT sen to be one, xi ðtÞ ¼ ½xi1 ðtÞ; xi2 ðtÞ; . . . ; xin ðtÞ stands for the position of the i-th particle,

879

vi ðtÞ ¼ ½vi1 ðtÞ; vi2 ðtÞ; . . . ; vin ðtÞT stands for the velocity of the i-th particle and pi ðtÞ ¼ ½pi1 ðtÞ; T pi2 ðtÞ; . . . ; pin ðtÞ represents the best previous position (the position giving the best fitness value) of the i-th particle. The index g represents the index of the best particle (pg(t)) among all the particles in the group in t. Variables c1 and c2 are two positive constants, called cognitive learning rate and social learning rate, respectively; ud and Ud are two separately generated uniformly distributed random numbers in the range [0, 1] generated according to a uniform probability distribution, and w is the inertia weight factor. Eq. (2) represents the position update, according to its previous position and its velocity. In this paper, Dt = 1 is adopted. (vi) Loop to step (ii) until a stopping criterion is met, usually a maximum number of iterations (generations). The variable w is responsible for dynamically adjusting the velocity of the particles, so it is responsible for balancing between local and global search, hence requiring fewer iterations for the algorithm to converge. A low value of inertia weight implies a local search, while a high value leads to a global search. Applying a large inertia weight at the start of the algorithm and making it decay to a small value through the PSO execution makes the algorithm search globally at the beginning of the search, and search locally at the end of the execution. The following weighting function w is used in (1): w ¼ wmax 

wmax  wmin t tmax

Fig. 1. Main interface of the PSOLeT software.

ð3Þ

880

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

Eq. (3) shows how the inertia weight is updated, considering wmax and wmin are the initial and final weights, respectively. The first part of Eq. (1) represents the previous velocity, which provides the necessary momentum for particles to roam across the search space. The second part, know as the ‘‘cognitive” component, represents the personal thinking of each particle. The third part is known as the ‘‘social” component, which represents the collaborative effect of the particles. The constants c1 and c2 represent the weighting of the ‘‘cognition” and ‘‘social” parts that pull each particle toward pbest and gbest positions. Proper fine-tuning of the parameters c1 and c2, results in better performance of

PSO. As default values, we set the acceleration constants c1 and c2 equal to 2.05. 3. PSOLeT software (particle swarm optimization learning tool) As the names says, the PSOLeT is a learning tool for PSO algorithm. The main idea of the PSOLeT is to make easier for the user to try new parameters in the algorithm. PSOLeT has been developed in MATLABÓ, version 6.5 of MathWorks. The main interface is basically composed of three main areas, the PSO parameters, the problem specification and the obtained results.

Fig. 2. Obtained results for a simple environment.

Fig. 3. Example of the mean and best fitness evolution through generations.

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

The parameters allowed to change in the PSO parameters fields are the number of existing particles in the population, the number of generations of the algorithm (stopping criteria), the cognitive and social components (c1 and c2), the maximum velocity allowed for each particle, and the range of allowed values for the inertia weight. The number of intermediate points between the origin and the target position (the dimension of the problem) and also the kind of random numbers generator (operator) used in Eq. (1) instead of ud and Ud. The allowed generators are uniform (traditional approach presented in Eq. (1)), Gaussian and Cauchy (probability distributions) approaches [34,35]. The main interface of PSOLeT is shown in Fig. 1. In the Fig. 1, the number of intermediate points represents the number of linking knots chosen by designer to trace the trajectory of the mobile robot in workspace. The PSOLeT program allows the user to select one of three predefined environments or to customize its’ own environment. To define an environment, four basic fields must be filled, the rectangular search space, and the circular obstacles located in the search space (defined by its’ center position and radius). The fitness function of the PSOLeT considers better solutions the smaller trajectory achieved through the presented environment, also considering that the trajectory must not collide with any obstacles. The fitness function, f(xc, yc), is defined as follows:

881

f ðxc ; y c Þ ¼ a  d obj þ k  n0 np qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi X 2 2 ðxc ði þ 1Þ  xc ðiÞ þ ðy c ði þ 1Þ  y c ðiÞÞ d obj ¼

ð4Þ ð5Þ

i¼1

where a and k are weighted factors, considered as 1 and 200, respectively, dobj represents the Euclidian distance between the initial and final positions of the trajectory, and n0 represents the number of obstacles in the planned trajectory. In this work, the PSO considered is aiming to minimize the fitness function. After the selection of the PSO parameters and the environment, two options are available for the user, the compute and the cancel buttons, pressing the first one, the program will start simulating the algorithm, presenting the preliminary results in the results fields. Pressing the Table 1 Obstacles in the medium environment Center position (xc, yc)

Radius

(45, (20, (75, (50, (45, (20, (90,

09 10 14 15 07 09 07

15) 30) 45) 75) 40) 60) 80)

Fig. 4. Best path achieved for the simple environment.

882

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

Cancel button, the program will be closed. After the simulation is completed, the results fields will contain the best solution and fitness achieved for that specific environment, as shown in Fig. 2. Remember that the search procedure of a populationbased algorithm such as PSO consists of two main phases, exploration and exploitation. The former is responsible for the detection of the most promising regions in the search space, while the latter promotes convergence of the particles towards the best detected solution. These two phases can take place either once or successively during the execution of the algorithm. In PSO, proper control of global exploration and local exploitation is crucial in finding the optimum solution efficiently. Obviously, the performance of PSO greatly depends on its parameters. In this context, a statistical analysis of optimization results can be useful. In Fig. 2, a statistical analysis of PSO results including the best, mean, median, worst, and standard deviation of the best fitness (fitness of global best particle, pg) for k runs (experiments). Also, two new figures will be shown, the first one shows the evolution of the best and mean fitness through the generations, and the second figure plots the path for the best achieved solution in the proposed environment. An example of such figures, for a simple environment, is shown in Figs. 3 and 4, respectively.

4. Application in mobile robotics One of the issues of the research in PSO is for trajectory planning of mobile robots in static environment. The goal of path planning in mobile robotics is to find a trajectory of a robot from a starting position to a goal position, while avoiding collision with obstacles. The main difficulties in finding an optimal path arise from the fact that the analytical methods are too complex to be used in real-time and enumerative search methods are overwhelmed by the size of the search space [36]. In the present section of the paper the PSOLeT will be used for two case studies, in both of them the search considered is a 100  100 m space. In the first case study, seven obstacles exist in the search space, and in the second case

Table 2 Simulation results in the medium environment Fitness

Uniform operator

Gaussian operator

Cauchy operator

Minimum Maximum Mean Median Standard deviation

142.6329 347.0238 164.8612 148.2056 49.6685

142.8059 166.3409 149.9880 144.3686 9.0862

142.5512 348.9369 170.7117 162.5252 50.6400

Fig. 5. Environment of medium complexity.

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

study exists nine obstacles. These case studies are performed in the environments of medium complexity and more complex of PSOLeT, respectively. Before the environment selection, an exhaustive trialand-error procedure has been applied for tuning the PSO’s parameters, the selected parameters were:        

Number of particles in swarm: 50; maximum number of iterations (generations): 100; cognitive component (c1): 2; social component (c2): 2; maximum velocity: 10; minimum inertia weight (wmin): 0.4; maximum inertia weight (wmax): 0.9; number of intermediate points: 3.

4.1. An environment of medium complexity The medium environment is composed of seven obstacles placed in the search space, a summarization of such obstacles is shown in Table 1. The selected obstacles will generate the environment presented in Fig. 5.

883

In the presented solutions, a comparative study will present the three kind of random numbers generator. A total of 30 runs are performed for each operator, and the summarization of the results is presented in Table 2. As shown in Table 2, the Cauchy operator performed better than the other operators in terms of minimum fitness. In other way, the Gaussian operator proved to give a better convergence characteristic to the algorithm (best mean fitness), once using its operator all runs achieved feasible solutions, and presented the smaller mean and standard deviation of the fitness, for all runs. Remember that the best solution is presented with small fitness values, as presented in Eq. (4). Table 3 Obstacles in the complex environment Center position (xc, yc)

Radius

(50, (20, (75, (50, (45, (15, (85, (10, (75,

09 10 14 17 08 10 07 07 05

15) 20) 40) 75) 40) 50) 70) 80) 95)

Fig. 6. Best solution achieved for the medium environment.

884

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

The best solution achieved was with (xc,yc) points: (27.85, 23.54); (39.48, 44.48); (47.72, 51.64). The path represented by this solution is presented in Fig. 6. 4.2. A complex environment The complex environment is composed of nine obstacles placed in the search space, a summarization of such obstacles is mentioned in Table 3. The selected obstacles will generate the environment presented in Fig. 7. In the presented solutions, a comparative study presents the simulation results for the PSO approaches based on uniform, Gaussian, and Cauchy operators. A total of 30 runs are performed for each operator, and the summarization of the results is detailed in Table 4. As shown in Table 4, the best minimum solution is achieved for the Uniform operator, but the difference between the best solutions of each operator was small. However, once again, as in the medium environment, the Gaussian operator proved to has a better convergence characteristic (best mean fitness value), because of its lower mean and standard deviation. In this case, the best solution achieved was for the points (xc, yc): (11.98, 26.54); (61.13, 62.07); (97.48, 97.52). Remember that the smaller fitness value, the better the trajectory for the considered environment. The path represented by this solution is presented in Fig. 8.

Another important factor to be considered is the computational time related to each of these variations of the random operator, in order to analyze such point, another comparative study is presented. In Table 5 the computational times for each of the variations previously presented in this section are presented. The computational time was measured using a PentiumÓIV 2.66 GHz, 1 GB of Random Access Memory (RAM), using MATLABÓ 6.5, the presented values are mean computational times (in seconds) for 30 runs are presented. As shown in Table 5, it is also possible to notice that uniform operator requires less computational time than Gaussian and Cauchy operators, which have practically the same computational time. The simulations show the applicability and the possibility of different PSO approaches using PSOLeT. The application of PSOLeT in a simulation laboratory at Intelligent Table 4 Summarization of the results in the complex environment Fitness

Uniform operator

Gaussian operator

Cauchy operator

Minimum Maximum Mean Median Standard deviation

144.0756 343.6964 240.3247 167.4264 97.6957

144.2584 170.9430 151.3541 145.5737 10.4871

144.1320 541.7112 268.9778 341.8821 107.1465

Fig. 7. A complex environment.

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

885

Fig. 8. Best solution achieved for the complex environment.

Table 5 Mean of computational times for the runs in seconds Operator

Environment Medium

Complex

Uniform Gaussian Cauchy

21.1 29.8 30.1

21.5 26.8 26.6

Systems course was attractive to apply and to test in a case study of mobile robotics the theoretical aspects of PSO. In addition, it should be noticed that an exhaustive search by trial-and-error, to design of PSO parameters, was realized. 5. Conclusion and future research The classical PSO algorithm is a stochastic algorithm based on a social-psychological metaphor; a population of particles adapts by returning stochastically toward previously successful regions. It uses just the primary math operators, and receives good results in static, noisy and continuously changing environment. All these advantages make PSO be applied in more and more research fields. Recently, PSO techniques have also been successfully applied in many engineering and real world problems [37–44]. This paper attempts to bridge the gap between the teaching of theory and practice by exploring the features of PSO

characteristics in a mobile robotics application. This paper describes an educational software tool – PSOLeT – for aid the teaching of PSO fundamentals using MATLAB. Simulation projects in MATLAB increase significantly the level of understanding of the intelligent systems as well as the level of students excitement. In this case, an application of mobile robotics planning is developed for teaching PSO design. The PSOLeT is a software toolbox with user-friendly interface for PSO learning. Moreover, the PSOLeT provides an opportunity for postgraduate students to experience the behavior of PSO actions when applied to mobile robot planning problems. Under a MATLAB environment, the PSOLeT possesses the essential attributes of being interactive and graphically oriented. With a range of optimization problems to consider, the PSOLeT provides learning opportunities and individual projects in mobile robotics for research students. In this case, the PSOLeT can be useful for provide the appropriate background so that interested students can explore PSO topics and prepare the graduate students of Intelligent Systems course (Industrial and Systems Engineering Graduate Program at Pontifical Catholic University of Parana´, Brazil) to be able to identify and use PSO problem solving techniques when conducting their own research. Using the PSOLeT tool, the students design efficient PSO approaches. The students are guidelines for the selection of the PSO design specifications. An important

886

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887

part of the classroom exercises of Intelligent Systems course is that the students have experiment with the system to be able to choose the control parameters of PSO, such as swarm size, topology, c1, c2 and w (see Fig. 1) to obtain different results on mobile robot planning problems. Computer simulations using the PSOLeT allow the students to learn with the control parameters design of PSO approaches, mathematical models of collaboration, optimization based on different planning environment in mobile robotics, and develop a feel for the design of PSO approaches to solving also other engineering problems, such as mechanical design, tuning of controllers parameters, economic dispatch of electrical energy, and others. In this context, there are also other PSO toolboxes (without mobile robotics approach) that can be useful for the learning of PSO fundamentals. An example available is the PSOt (a Particle Swarm Optimization Toolbox for use with Matlab). The PSOt toolbox may be freely downloaded, details are presented in Birge [45]. Future research works will include how to find a more effective method for choosing the control parameters of PSO approaches. Acknowledgements This work was supported by the National Council of Scientific and Technologic Development of Brazil — CNPq — under Grant 309646/2006-5/PQ. The authors are grateful to the anonymous reviewers and the editorial team for their valuable comments and suggestions on an earlier version of the paper which helped improve the quality of the paper. References [1] Bishop XM. Neural networks for pattern recognition. Oxford, UK: Oxford University Press; 1995. [2] Yurkiovich S, Passino KM. A laboratory course on fuzzy control. IEEE Trans Educ 1999;42(1):15–21. [3] Coelho LS, Coelho AAR. Computational intelligence in process control: fuzzy, evolutionary, neural, and hybrid approaches. Int J Knowl-Based Intell Eng Sys 1998;2(2):80–94. [4] Bonabeau E, Dorigo M, Theraulaz G. Swarm intelligence: from natural to artificial systems. Oxford, UK: Oxford University Press; 1999. [5] Smith AE. Experiences with teaching adaptive optimization to engineering graduate students. In: Proceedings of the IEEE conference on evolutionary computation, vol. 3. Washington, DC; 1999. p. 1696–701. [6] Dorig M, Di Caro G. The ant colony optimization meta-heuristic. In: Corne D, Dorigo M, Glover F, editors. New ideas in optimization. McGraw-Hill; 1999. p. 11–32. [7] Kennedy JF, Eberhart RC. Particle swarm optimization. In: Proceedings of the IEEE international conference on neural networks, vol. 4. Perth, Australia; 1995, p. 1942–48. [8] Mu¨ller SD, Marchetto J, Airaghi S, Koumoutsakos P. Optimization based on bacterial chemotaxis. IEEE Trans Evolut Comput 2002;6(1):16–29.

[9] Castro LN, Timmis JI. Artificial immune systems: a new computational intelligence approach. London, UK: Springer-Verlag; 2002. [10] Kennedy JF, Eberhart RC, Shi Y. Swarm intelligence. San Francisco: Morgan Kaufman; 2001. [11] Zhang L, Yu H, Hu S. A new approach to improve particle swarm optimization, GECCO 2003. In: Cantu´-Paz E. et al., editor. LNCS 2723. Springer, London, UK; 2003. p. 1341–39. [12] Yu XM, Xiong XY, Wu YW. A PSO-based approach to optimal capacitor placement with harmonic distortion consideration. Electr Power Sys Res 2004;71(1):27–33. [13] Fourie PC, Groenwold AA. The particle swarm optimization algorithm in size and shape optimization. Struct Multidiscipl Optimiz 2002;23(4):259–67. [14] Parsopoulos KE, Vrahatis MV. On the computation of all minimizers through particle swarm optimization. IEEE Trans Evolut Comput 2004;8(3):211–24. [15] Krohling RA, Coelho LS. Coevolutionary particle swarm optimization using gaussian distribution for solving constrained optimization problems. IEEE Trans Syst, Man and Cybern, Part B: Cybern 2006;36(6):1407–16. [16] Baumgartner U, Magele Ch, Renhart W. Pareto optimality and particle swarm optimization. IEEE Trans Magn 2004;40(2):1172–5. [17] Robinson J, Samii YR. Particle swarm optimization in electromagnetics. IEEE Trans Antenn Propag 2004;52(2):397–407. [18] Gaing Z. A particle swarm optimization approach for optimum design of PID controller in AVR system. IEEE Trans Energ Convers 2004;19(2):384–91. [19] Kannan S, Slochanal SMR, Subbaraj P, Padhy NP. Application of particle swarm optimization technique and its variant to generation expansion planning problem. Electr Power Sys Res 2004;70(3): 203–10. [20] Liao YH, Sun CT. An educational genetic algorithms learning tool, IEEE Trans Educ 2001;44(2): Rapid Publication Supplement. [21] The Mathworks. ‘MATLAB, version 5.2’, ; 2001. [22] Taylor CJ. Environment test chamber for the support of learning and teaching in intelligent control. Int J Electr Eng Educ 2004;41(4): 375–87. [23] Hofer A, Pristauz H. A process environment toolbox for MATLAB/ Simulink. In: Proceedings of the fourth symposium on advances in control education, Istanbul, Turkey; 1997. p. 79–84. [24] Su JH, Chen JJ, Wu DS. Learning feedback controller design of switching converts via MATLAB/Simulink. IEEE Trans Educ 2002;45(4):307–15. [25] Pires VF, Silva JFA. Teaching nonlinear modeling, simulation, and control of electronic power converters using MATLAB/Simulink. IEEE Trans Educ 2002;45(3):253–61. [26] Cao YJ, Wu QH. Teaching genetic algorithm using MATLAB. Int J Electr Eng Educ 1999;36(2):139–53. [27] Akcayol MA, Cetin A, Elmas C. An educational tool for fuzzy logiccontrolled BDCM. IEEE Trans Educ 2002;45(1):33–42. [28] Jurado F, Castro M, Carpio J. Experiences with fuzzy logic and neural networks in a control course. IEEE Trans Educ 2002;45(2):161–7. [29] Hocaog˘lu C, Sanderson AC. Planning multiple paths with evolutionary speciation. IEEE Trans Evolut Comput 2001;5(3):169–91. [30] Ferentinos KP, Arvanitis KG, Sigrimis N. Heuristic optimization methods for motion planning of autonomous agricultural vehicles. J Global Optimiz 2002;23(2):155–70. [31] Eberhart RC, Kennedy JF. A new optimizer using particle swarm theory. In: Proceedings of the sixth international symposium on micromachine and human science, Nagoya, Japan; 1995. p. 39–43. [32] Coelho LS, Herrera BM. Fuzzy identification based on a chaotic particle swarm optimization approach applied to a nonlinear yo-yo motion system. IEEE Trans Ind Electron 2007;54(6):3234–45. [33] Shi Y, Eberhart RC. A modified particle swarm optimizer. In: Proceedings of the IEEE international conference on evolutionary computation. Piscataway, NJ: IEEE Press; 1998.

L.d.S. Coelho, C.A. Sierakowski / Advances in Engineering Software 39 (2008) 877–887 [34] Chellapilla K. Combining mutation operators in evolutionary programming. IEEE Trans Evolut Comput 1998;2(3):91–6. [35] Yao X, Liu Y. Fast evolutionary programming. In: Proceedings of the fifth annual conference on evolutionary programming, San Diego, CA; 1996. p. 451–60. [36] Zhang BT, Kim SH. An evolutionary method for active learning of mobile robot path planning. In: Proceedings of the IEEE international symposium on computational intelligence in robotics and automation, Monterey, CA, USA; 1997. p. 312–17. [37] Chau KW. Particle swarm optimization training algorithm for ANNs in stage prediction of Shing Mun River. J Hydrol 2006;329(3– 4):363–7. [38] Chau KW. Prediction of construction litigation outcome using a splitstep PSO algorithm. Lecture notes in computer science, LNCS. Springer, London, UK, v. 4233; 2006. p. 1101–7. [39] Chau KW. Algal bloom prediction with particle swarm optimization algorithm. Lecture notes in artificial intelligence, LNAI. Springer, London, UK, v. 3801; 2005. p. 645–50.

887

[40] Ourique CO, Biscaia EC, Pinto JC. The use of particle swarm optimization for dynamical analysis in chemical processes. Comput Chem Eng 2002;26(12):1783–93. [41] Kao CC, Chuang CW, Fung RF. The self-tuning PID control in a slider–crank mechanism system by applying particle swarm optimization approach. Mechatronics 2006;16(8):513–22. [42] She Q, Shi WM, Kong W, Ye BX. A combination of modified particle swarm optimization algorithm and support vector machine for gene selection and tumor classification. Talanta 2007;71(4):1679–83. [43] Sha DY, Hsu CY. A hybrid particle swarm optimization for job shop scheduling problem. Comput Indus Eng 2006;51(4):791–808. [44] Liu X, Liu H, Duan H. Particle swarm optimization based on dynamic niche technology with applications to conceptual design. Adv Eng Softw 2007;38(10):668–76. [45] Birge B. PSOt – a particle swarm optimization toolbox for use with Matlab. In: Proceedings of the swarm intelligence symposium. Indianapolis, IN, USA; 2003. p. 182–86.