As a result, someone can observe that the decrease of intensity causes an increase of the effective radius and thus, the area that is scanned. This relation is used also in the proposed scheme.
3. The proposed SIO algorithm
We consider each agent to be a ship, where and N being the maximum number of agents, while n is the maximum number of dimensions of the problem. We decide at the beginning the number of ships for saving computational power. Although generally the more agents there are, the higher is the probability of finding the optimal solution, in the proposed algorithm this is not the case. As it can be seen in the next subsections, the multitude of generated points around each agent’s work provides a wider search of the solution space, while the number of agents can remain the same. The strongest feature of the proposed scheme is the wider range of the solution area that is being searched, keeping the number of agents constant.
At start, we initialize the position of the agents somewhere in the solution space; the easiest way to do that is with random way via the normal distribution function, but this can be altered based on the values that every decision variable can take.
Using equations (2.2) and (2.3), the initial radius and intensity for every agent is calculated. We set the Power Input as the fitness of each agent, and so we get:
(3.1)
On the other hand, equation (2.1) is reformed as:
(3.2)
in order to transform the fitness’ value in positive numbers. This has to be done, because of the usage of logarithm for the rescale of intensity values. Logarithmic equations cannot take negative values, while fitness could be negative in some problems. Thus, we solve this difficulty with a transformation inspired by the physical analogue (i.e. the corresponding idea inspired from nature for the algorithm).
The next steps are repeated until the stopping criteria are met. In the experiments conducted, the stopping criterion is the maximum number of iterations, named “number of scans”. For each ship we calculate the fitness function in order to find out the best solution. The best solution is saved and all agents change their intensity based on the solution they have found; if the solution is better from the previous best of the current agent, then the intensity increases and if the opposite exists, then the intensity decreases. That affects also the alteration of the effective radius.
Finally, one more useful mechanism is applied in our scheme. In reality, when a war ship doesn’t detect anything in an area, it changes place. An easy way to relocate an agent is to take into consideration the position of the best solution found so far:
(3.3)
where is the position of -th agent in the -th dimension, is the best position found in the current iteration, is the effective radius of the -th agent and a random uniformly distributed number. However, this equation can be reformed to relocate an agent in areas that have not been checked before. Inspired by the similar concept of mutation rate [20]:
(3.4)
where is the number of generations between environmental changes, we set the limit of time without improvement (or without environmental change) as the 1% of the number of iterations (scans). So, we get:
(3.5)
Sonar Inspired Optimization Initialization of ships’ position Initialize effective radius and intensity for every agent While stopping criteria not met Update radius for every agent Calculate Intensity for every agent While full_scan = false Update the rotation angle in every dimension Calculate fitness of possible position Save the best so far for each agent in the current scan End Update best position and fitness Update intensity and acoustic power output for every agent End |
Fig. 3. Pseudocode of the proposed Sonar Inspired Algorithm (SIO)
3.1 Intensity parameter
The most important parameter in our algorithm is the intensity parameter. Intensity affects the change of effective radius and thus, the maximum size of area that each agent searches. Intensity is redefined at the end of each iteration based on the solution found by the corresponding agent. Using the exponential function’s attribute:
(3.1.1)
Magnitude is a way to define the importance of the target found by an agent/ship and is calculated as:
(3.1.2)
where is the fitness of the best solution found by the -th agent in the current scan and is the globally best solution at the time. To avoid the zero value of magnitude that the agent with the global best solution will return, we add a very small value .