Metaheuristic algorithm and machine learning

Version 1.0.0 (4.37 KB) by Erik
This code implements an evolutionary optimization algorithm guided by a self-organization map
1K Downloads
Updated 5 Mar 2019

View License

Extracting knowledge is the multidisciplinary process of identifying novel, significant, potentially useful, and consistent information in data. One of the most interesting techniques in the fields of extracting knowledge and machine learning are the self-organization maps (SOMs). They have the capacity of mapping complex high-dimensional relations onto a reduced lattice preserving the topological organization of the initial data. On the other hand, Evolutionary approaches provide an effective alternative to solve complex optimization problems in different application domains. One important characteristic in the application of evolutionary methods to real-world problems is its high demand for function evaluations before obtaining a satisfying solution. In their operation, evolutionary techniques produce new solutions without extracting useful knowledge from a large number of solutions already generated. The use of acquired knowledge during the evolution process could significantly improve their performance in conducting the search strategy toward promising regions or increasing its convergence properties. This code implements an evolutionary optimization algorithm in which knowledge extracted during its operation is employed to guide its search strategy. In the approach, a SOM is used as extracting knowledge technique to identify the promising areas through the reduction of the search space. Therefore, in each generation, the proposed method uses a subset of the complete group of generated solutions seen so-far to train the SOM. Once trained, the neural unit from the SOM lattice that corresponds to the best solution is identified. Then, by using local information of this neural unit an entire population of candidate solutions is produced. With the use of the extracted knowledge, the new approach improves the convergence to difficult high multi-modal optima by using a reduced number of function evaluations.

This implementation corresponds to the approach published in:
Cuevas, E. and Galvez, J., An optimization algorithm guided by a machine learning approach, J. Int. J. Mach. Learn. & Cyber. (2019). https://doi.org/10.1007/s13042-018-00915-0, (2019), In press.

You can get the PDF in:
https://www.dropbox.com/s/0k6s6lnk7ao6a5c/Cuevas-Galvez2019_Article_AnOptimizationAlgorithmGuidedB.pdf?dl=0

An example to run the code is:

[bestX,bestFitness] = SOM(1,50,1000,2);

Where SOM is the main function for the EA-SOM algorithm. In this line, the first parameter corresponds to the fitness function used. In this case, the number 1 corresponds to the Sphere function. The second parameter represents the population size. The third parameter is the maximum number of iterations, and the fourth is the dimensionality of the optimization problem.

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 evaluateF.m file implements the interface to compute the fitness value.
The Eudistancia.m file implements the euclidean distance among two individuals.

Cite As

Erik (2024). Metaheuristic algorithm and machine learning (https://www.mathworks.com/matlabcentral/fileexchange/70481-metaheuristic-algorithm-and-machine-learning), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2018b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.0.0