A metaheuristic method based on the reactive model

版本 1.0.0 (7.9 KB) 作者: Erik
A metaheuristic method based on the reactive model of neighborhood consensus for continuous optimization.
282.0 次下载
更新时间 2019/3/5

查看许可证

Evolutionary Computation (EC) algorithms are proposed as stochastic methods to solve complex optimization problems. The design of EC methods typically involves the construction of empirical operators based on abstractions of animal behaviors or physical and biological phenomena. Through its operators, every EC approach proposes a particular solution to the exploration-exploitation balance which is currently considered an unconcluded problem within EC literature. On the other hand, multi-agent systems are introduced as intelligent, cooperative and self-organized structures where the synergy of simple rules creates complex interactions among agents. This code implements a novel EC algorithm called Neighborhood-based Consensus. NCCO is based on typical process present in multi-agent systems such as local consensus formulations and reactive responses. Such operations are conducted by using a set of operators which are applied in each evolutionary stage. In its operation, each EC algorithm considers the application of every operator over candidate solutions without examining its final consequences. Different to other EC techniques, the proposed method uses additional operators to avoid the undesirable effects produced by the over-exploitation or suboptimal exploration of the conventional operations.

This implementation corresponds to the approach published in:
Jorge Gálvez, Erik Cuevas, Salvador Hinojosa, Omar Avalos, Marco Pérez-Cisneros, A reactive model based on neighborhood consensus for continuous Optimization, Expert Systems with Applications, Volume 121, 1 May 2019, Pages 115-141

You can get the PDF in:

https://www.dropbox.com/s/57zx9cx0maddgkl/A%20reactive%20model.pdf?dl=0

An example to run the code is:

[agents,bestAgent] = autonomous(1,50,25000,2);

Where autonomous is the main function for the NCCO algorithm. This line corresponds to one execution example. Where the first parameter represents the objective function. In this case it corresponds to the Sphere function. The second parameter is the population size. The third parameter corresponds to the termination criterion. In this case it corresponds to the number of function evaluations. The fourth parameter is the dimensionality of the problem.
The file Alignment.m implements the Alignment behavior computed based on the local consensus.
The file ApplyForce.m implements the application of a given force vector to a certain agent.
The file Cohesion.m implements the Cohesion behavior computed based on the local consensus.
The file evolutionProcess.m computes the respective percentage of iterations based on the termination criterion (Maximum Number of Function Evaluations).
The file Flock.m is responsible to apply the exploration or exploitation stages based on the current number of iterations and the Maximum Number of Function Evaluations.
The file Seek.m implements the Seek behavior.
The file Separat.m implements the Separation behavior computed based on the local consensus.
The file sortStruct.m implements a helper function which sorts a struct based on some criterion.
The file Update.m updates the position, velocity and acceleration vectors for each individual, based on the computation of the evolutionary operators.
The file test_functions.m contains the optimization function you want to minimize. To add new optimization function, implement the desired function in this file. For this sample code, the number 1 corresponds to the Sphere Function
The file test_functions_range contains the box contraints where the lower and upper values are described. You could add the corresponding values of the desired optimization problem within this file.
The file initialization.m incorporates the random initialization for the entire population.
The findrange.m file is used to guarantee that produced solutions are generated within the box contraints.

The Eudistancia.m file implements the euclidean distance among two individuals.

引用格式

Erik (2024). A metaheuristic method based on the reactive model (https://www.mathworks.com/matlabcentral/fileexchange/70482-a-metaheuristic-method-based-on-the-reactive-model), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2018b
兼容任何版本
平台兼容性
Windows macOS Linux
标签 添加标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.0.0