Optimization can be used essentially in a variety of fields from engineering design to economics or holiday planning to Internet routing. Metaheuristic algorithms can provide appropriate technique to solve optimization problems through mathematical modeling of social political evolution. These algorithms are using methods that find solutions close to the optimum with an acceptable cost. Since random mechanisms play the key role in creating their structure, metaheuristic algorithms are known as imprecise methods for solving complex optimization problems . In the last several decades, metaheuristic algorithms are applied to many applications. The main reason behind the success of metaheuristic algorithms is that they use commonly shared information among multiple agents. Also several factors may help these algorithms in creating the highest quality results such as self-organization, co evolution, and learning. All of the metaheuristics algorithms are not successful and a few techniques that have potential for solving real-world problems can be very efficient. A population of agents is used for population based search. This method is suitable way for improving the exploration phase. Certainly, how to manipulate a population affects the performance of the algorithm. Various algorithms are applied in different areas by many researchers . Numerous algorithms and their various applications could not offer a particular algorithm to solve all the optimization problems.
The SFO algorithm mimics the sailfish group hunting that alternates their attacks on schooling sardine prey. To the knowledge of the present authors, there is no previous study on this subject in the optimization literature. The current study has several major differences with other methods that recently published. Firstly, SFO is employed two groups of prey and predator populations to simulate the group hunting behavior strategy. Secondly, the proposed algorithm uses the alternation of attacks to break down the collective defense of grouping prey. Thirdly, the prey movements can be updated over the search space, and hunter is allowed to catch the appropriate prey to become fitter than the past . The main inspiration of SFO algorithm will be described in this section. Then, the proposed algorithm and mathematical model are discussed in details.
2. Inspiration of Sailfish Optimizer
The sail is normally kept folded down when swimming and raised only when the sailfish attack their prey. The raised sail has been shown to reduce sideways oscillations of the head, which is likely to make the bill less detectable by prey fish. This strategy allows sailfish to put their bills close to fish schools or even into them without being noticed by the prey before hitting them. Sailfish usually attack one at a time, and the small teeth on their bills inflict injuries on their prey fish in terms of scale and tissue removal. Typically, about two prey fish are injured during a sailfish attack, but only 24% of attacks result in capture . As a result, injured fish increase in number over time in a fish school under attack. Given that injured fish are easier to catch, sailfish benefit from the attacks of their conspecifics but only up to a particular group size. A mathematical model showed that sailfish in groups of up to 70 individuals should gain benefits in this way. The underlying mechanism was termed proto co-operation because it does not require any spatial co-ordination of attacks and could be a precursor to more complex forms of group hunting. The bill movement of sailfish during attacks on fish is usually either to the left or to the right side. Identification of individual sailfish based on the shape of their dorsal fins identified individual preferences for hitting to the right or left side. The strength of this side preference was positively correlated with capture success . These side-preferences are believed to be a form of behavioral specialization that improves performance.
3. Sailfish Optimizer (SFO)
One of the interesting examples of social behavior in groups of arthropods, fishes, birds, and mammals is group hunting. In group hunting, predators do not need much effort to kill the prey compared with when hunting alone. In the simplest form of group hunting, predators attempt to kill the prey with little or no coordination of attack, while in the complex form of group hunting, predators use the specific roles to herd and catch the prey (Bailey et al., 2013) . One of the complex group hunting strategies is the alternation of attacks. This strategy provides the opportunity for the hunter to save the energy, while other predators are injuring the prey. One example of this kind of strategy is group hunting sailfish that alternate their attacks on schooling sardine prey each behavioral state of sailfish’s group hunting. Sailfish is the fastest fish in the ocean that can reach maximum speeds of around 100 km/h. They hunt in groups, driving schools of smaller fish, such as sardines, toward the surface. The maneuverability and acceleration of the sardines during the attack are very challenging for sailfish. The sailfish either makes a slashing motion with its rostrum, injuring several sardines, or it taps a single sardine and destabilizing it. Because the sailfish has one of the highest accelerations ever recorded in an aquatic vertebrate, sardines cannot swim fast enough to avoid the tip of the sailfish’s rostrum and they are unable to do anything in response to this group hunting . Given the observational behavior of sardines shown injured sardines will be separated from the prey school and could not move with the school, so they will quickly capture by the sailfish.
Most sailfish attacks do not lead to the death of sardines and only a few percent of sardines are directly captured. But with frequent attacks of sailfish, more and more sardines are hurt. This type of hunt is more typical of animals that hunt in packs, such as wolves. However, these groups of sailfish regularly break up and reform with new members. A sailfish keeps its large dorsal fin and pelvic fins erect during an attack, probably to keep its body stable. Also, they change their body color with the normally bluish-silver lateral sides darkening to almost black just before beginning an attack. The reason for color changing is not very clear, but it should be some kind of communication between sailfish. It is possible to avoid injuring by a compatriot; sailfish use the changes in their body to signal that goes first. The main inspiration of the SFO algorithm is based on the attack alternation strategy of sailfish’s group hunting. In the next subsection the natural behaviors of sailfish and sardines are modeled mathematically and then an optimization algorithm based on this mathematical model is established .
3.1. Steps for Sailfish Optimizer
- Attack alternation strategy
- Catching prey
The SFO is a population based metaheuristic algorithm. In this algorithm, it is assumed that the sailfish are candidate solutions and the problem’s variables are the position of sailfish in the search space. Accordingly, the population over the solution space is randomly generated. The sailfish can search in one, two, three or hyper dimensional space with their variable position vectors . The school of sardines is another significant incorporator in SFO algorithm. It is assume that the group of sardines is also swimming in the search space. It is notable that sailfish and sardines are corresponding factors to find the solutions. In this algorithm, the sailfish are the main factor that is scattered in the search space and sardines can cooperate to find the best position in this area. In fact, sardine can be eaten by sailfish when searching the search space and sailfish updates its position in case of finding a better solution that obtained so far .
Occasionally good solutions can be lost when updating the position of search agents and these positions may be weaker than the old positions unless the elitist selection is employed. Elitism involves copying the unchanged fittest solutions into the next generation. In SFO algorithm also, the best position of sailfish is saved in each iteration and considered as an elite. The elite sailfish is the fittest sailfish that is obtained so far and it should be able to affect the maneuverability and acceleration of sardines during the attack. In addition, as previously mentioned, sardines will be injured by slashing motion with sailfish’s rostrum during group hunting . Therefore, the position of injured sardine in each iteration is also saved and this sardine will be selected as the best target for collaborative hunting by the sailfish. The position of elite sailfish and injured sardine that have the highest fitness of iteration are called respectively.
3.1.3. Attack alternation strategy
Sailfish mostly attack the prey school when none of their compatriots is attacking. In the other words, sailfish can promote the rate of success in hunting with the temporally coordinated attack. Sailfish chase and herd their prey. The herding behavior of sailfish adjusts their position according to the location of the other hunters around the prey school without direct coordination between them. The SFO algorithm demonstrates sailfish’s attack-alternation strategy while hunting in groups. By doing so, the SFO algorithm assists any sailfish to update its position around the prey school with two ways . In the first way, sailfish have the alternative attack to prey school with respect to elite sailfish and injured sardines such as sailfish 2, in the second way, sailfish occupies empty space around the prey school and simulate encircling the prey like sailfish 1. In both ways, sailfish are going to injure more sardines in first stage of hunting and it leads to higher capture success rate at later stages of collaborative hunting .
At the beginning of the group hunting, the complete slaughter of sardines is rarely observed. In 95% of cases, sardines’ scales will be removed when the sailfish’s bills hits the sardines’ bodies. This causes a large number of sardines in the schools having pronounced injuries on their bodies. In researchers found the positive correlation between the capture success rate and the amount of injuries in the prey school . At the beginning of the hunt, sailfish have more energy to catch prey and also sardines are not more tired and injured. Therefore sardines sustain high escape speed and they have a great ability to maneuver. Gradually, the power of sailfish’s attack will be decremented over time of hunting.
3.1.5. Catching prey
Because of intense and frequent attacks, the energy stores in prey will also reduce and may have the reduction of ability to detect directional information about the location of sailfish, which it affects the school’s escape maneuvers. Eventually, sardines will hit by sailfish’s bill, break off from the shoal and will capture quickly . In the final stage of hunting, the injured sardine that is break off from the shoal will be captured quickly. In the proposed algorithm, it is assumed that catching prey occurs when the sardine becomes fitter than its corresponding sailfish. In this situation, the position of sailfish substitutes with the latest position of the hunted sardine to increase the chance of hunting new prey.
3.2. Flow Chart of Sailfish Optimizer
4. Numerical methods of Sailfish Optimizer
The mathematical problems to solve using Sailfish Optimizer ,
5. Applications of SFO
- Computational fluid dynamics 
- Biomedical applications
- Neural networks training 
- Fuselage Design
- Underwater Vehicle
- Smart environment 
. Advantages of SFO
- It also indicates competitive results for improvement of exploration and exploitation phases, avoidance of local optima, and high speed convergence especially on large-scale global optimization .
- Which hope will be useful for researchers working with this type of hardware and similar codes .
- It is used for biomedical applications as a potential new material.
- Good customization of parameter configuration improves performance compare to default parameter setting .
- A much smoother flow was observed in case of the design adopted from the Sailfish in comparison to the conventional fuselage design, thus providing evidence of the design being more efficient .
- Potential applications of this study include biodiversity sustainability, biosensor for water pollution, and blood cancer detection .
 Shadravan, S., Naji, H. and Bardsiri, V. (2019). The Sailfish Optimizer: A novel nature-inspired metaheuristic algorithm for solving constrained engineering optimization problems. Engineering Applications of Artificial Intelligence, 80, pp.20-34.
 Januszewski, M. and Kostur, M. (2014). Sailfish: A flexible multi-GPU implementation of the lattice Boltzmann method. Computer Physics Communications, 185(9), pp.2350-2368.
 Shah, A. and Padole, M. (2019). Apache Hadoop A Guide for Cluster Configuration and Testing. International Journal of Computer Sciences and Engineering, 7(4), pp.792-796.
 Hashim, F., Houssein, E., Mabrouk, M., Al-Atabany, W. and Mirjalili, S. (2019). Henry gas solubility optimization: A novel physics-based algorithm. Future Generation Computer Systems, 101, pp.646-667.
 Bairathi, D. and Gopalani, D. (2019). Numerical optimization and feed-forward neural networks training using an improved optimization algorithm: multiple leader salp swarm algorithm. Evolutionary Intelligence.
 Richardson, D., Llopiz, J., Leaman, K., Vertes, P., Muller-Karger, F. and Cowen, R. (2009). Sailfish (Istiophorus platypterus) spawning and larval environment in a Florida Current frontal eddy. Progress in Oceanography, 82(4), pp.252-264.
 Yang, R., Liu, Y. and Zhou, L. (2011). A Topology Optimization Method in Fuselage Flutter Model Design. Advanced Materials Research, 199-200, pp.1297-1302.
 Luyon, J. P., Oyong, G. G. and Cabrera, E. C. (2017). Selective cytotoxicity of bioluminescent bacteria isolated from fresh ink of Philippine squid on human colon cancer and normal cell lines. Malaysian Journal of Microbiology.
 Zamani, H., Nadimi-Shahraki, M. and Gandomi, A. (2019). CCSA: Conscious Neighborhood-based Crow Search Algorithm for Solving Global Optimization Problems. Applied Soft Computing, p.105583.
 LI, N., OUYANG, A. and LI, K. (2013). Improved particle swarm optimization for constrained optimization functions. Journal of Computer Applications, 32(12), pp.3319-3321.
 Loke, M. and Dahlin, T. (2002). A comparison of the Gauss–Newton and quasi-Newton methods in resistivity imaging inversion. Journal of Applied Geophysics, 49(3), pp.149-162.
 SUN, Y., ZHANG, Q. and WAN, L. (2011). Small Autonomous Underwater Vehicle Navigation System Based on Adaptive UKF Algorithm. Acta Automatica Sinica, 37(3), pp.342-353.
 Xu, A., Shi, L. and Zhao, T. (2017). Accelerated lattice Boltzmann simulation using GPU and OpenACC with data management. International Journal of Heat and Mass Transfer, 109, pp.577-588.
 Xu, S., Cui, S., Zhou, Y., Tang, Z. and Zhu, W. (2013). The Application of Modified Covariance EKF Algorithm to Target-Tracking Modeling. Applied Mechanics and Materials, 427-429, pp.953-956.
 Feichtinger, C., Donath, S., Köstler, H., Götz, J. and Rüde, U. (2011). WaLBerla: HPC software design for computational engineering simulations. Journal of Computational Science, 2(2), pp.105-112.
 Fazio, M., Celesti, A., Puliafito, A. and Villari, M. (2015). Big Data Storage in the Cloud for Smart Environment Monitoring. Procedia Computer Science, 52, pp.500-506.
 Ivković, N., Magdalenić, I. and Milić, L. (2016). An Ad-Hoc Smartphone-to-Smartphone Live Multimedia Streaming Application with Real-Time Constraints. Journal of Advances in Computer Networks, 4(1), pp.6-12.
 Posey, S. (2013). Considerations for GPU Acceleration of Parallel CFD. Procedia Engineering, 61, pp.388-391.
 Editorial Note: Data Preprocessing for Big Multimedia Data. (2018). Multimedia Tools and Applications, 78(3), pp.3611-3611.
 Ounis, F. and Golea, N. (2016). PID, 2-DOF PID and Mixed Sensitivity Loop-Shaping Based Robust Voltage Control of Quadratic Buck DC-DC Converter. Advances in Electrical and Electronic Engineering, 14(5).
 Lee, J. (2019). Broadcast Audio Transmission for Bluetooth LE on an Interfered ISM Band. IEEE Internet of Things Journal, 6(4), pp.6140-6150.
 Khan, J. and Cho, H. (2015). A Distributed Data-Gathering Protocol Using AUV in Underwater Sensor Networks. Sensors, 15(8), pp.19331-19350.
 Mesmoudi, A., Hacid, M. and Toumani, F. (2015). Benchmarking SQL on MapReduce systems using large astronomy databases. Distributed and Parallel Databases, 34(3), pp.347-378.
 Valero-Lara, P. (2017). Reducing memory requirements for large size LBM simulations on GPUs. Concurrency and Computation: Practice and Experience, 29(24), p.e4221.