Self-Organizing Migrating Algorithm (SOMA) was designed in 1999 and is a significant fact that its author is prof. Ing. Ivan Zelinka, Ph.D. from the home university. This algorithm is differ from other classical evolutionary algorithm. New descendats are not created from parents. The principle of the algorithms is based on the cooperative migration of individuals in the solutions space. Because of this reason are cycles called migration cycles insted of generations. In the migration cycle are changed cooperative phase and competition phase. The Self-Organizing means that individuals interact, create and leave groups. The algorithm is inspired by similar behavior in the wild, when groups of individuals (a pack of wolves, a colony of termites, a swarm of bees) work for food.
Description of the SOMA alghorithm:
| 1. | Setting the parameters of alghorithm |
| 2. | Creation of the population - it is created by generating set of prototype individuals. |
| 3. | Migration cycles – each individual in the population is eveluated by cost function, the one with the best value is selected. Each indiviual trys by steps in cycle to go to the leader until the PathLength is not reached. The movement of each individual is noised by pertubation vector, it is a stochastic part in the algorithm like a mutation. |
| 4. | Termination – if it is not reached minimal diversity or migration number algorithms continue whith step 2, else it is terminated. |
Parameters description:
| Parameter | Type | Description | Recommended Value |
|---|---|---|---|
| PathLength | Control parameter | Determines how far from leader the individual will stop. | [1,1 ; 5] |
| Step | Control parameter | Specifies the granularity with the path of active individuals will be mapped. Higher value accelerates algorithm, but penetrates the risk of deadlock in a local extreme. | [0,11 ; PathLength] |
| PRT | Control parameter | Petrubace is used to creating pertubation vector, which determines the track to leader. | [0 ; 1] |
| D | Control parameter | Number of cost function parameters. | Depends on the cost function. |
| PopSize | Control parameter | Size of the population | 0,2 to 0,5D for multimodal functions, can be lower for unimodal. |
| Migration | Stop parameter | Number of migration cycles. | 10 and more |
| MinDiv | Stop parameter | Specifies minimal diversity, it means maximum allowed difference between the worst and the best individual in the population. | Random |