# A Spring Search Algorithm Applied to Engineering Optimization Problems
## 4 Spring Search Algorithm (SSA)
### Setting the System, Determining Laws and Arranging Parameters  
First, the system space is determined with its multi-dimensional coordinate system in which the problem is defined. Any point in space may be the solution of the optimization problem. Search factors are sets of objects that are attached to each other by some springs. Each object has its own position as well as stiffness coefficients pertaining to the springs attached to it. The object's position is a point in space where the solution of the problem may be found. The values of the springs are computed regarding the stiffness of both objects attached. After setting the system, its governing laws are determined. Only the spring force laws and movement laws are observed in the system. The general patterns of these rules are similar to natural laws and are defined below. In physics, mechanical and elastic science, [PERSON]'s law is an approximation that shows that any change in an object's length is directly proportional to its load. Most materials follow this law with reasonable accuracy, except when the force is lower than its elasticity. Any deviation from [PERSON]'s law increases with the deformation quantity, such that with numerous deformations, when the material trespasses its linear elastic domain, [PERSON]'s law loses its application. The present article assumes that [PERSON]'s law is valid for all of the time observed. The present location of any object equals the sum coefficient of its previous locations and its displacements according to the laws of motion. Any object displacement may be determined with the aid of the spring force law. Consider a system as a set of \(m\) objects where the position of each object is a point in the search space and a solution to the problem. \[X_{i}=\left(x_{i}^{1},\ldots,x_{i}^{d},\ldots,x_{i}^{n}\right) \tag{10}\]  
The position of an object \(i\) of dimension \(d\) is designated \(x_{i}^{d}\) in Equation (10). The initial positions of the objects are defined within the search space randomly. These objects tend to return to an equilibrium position by means of the forces exerted by the spring. Equation (11) is employed in order to compute the spring stiffness coefficient. \[K_{i,j}=K_{max}\times\left|F_{n}^{i}-F_{n}^{j}\right|\times\max\left(F_{n}^{i},F_{n}^{j}\right) \tag{11}\]  
In Equation (11), \(K_{i,j}\) is the spring stiffness coefficient among objects \(i\) and \(j\), \(K_{max}\) is the maximum value of the spring stiffness coefficient, and is determined according to the type of problem in question, \(F_{n}^{i}\) and \(F_{n}^{j}\) are the normalized objective functions of objects \(i\) and \(j\) respectively. Equations (12) and (13) are used in order to normalize the objective function. \[F_{n}^{i}=\frac{f_{obj}^{i}}{\min\left(f_{obj}\right)} \tag{12}\]  
\[F_{n}^{i}=\min\left(F_{n}^{i}\right)\times\frac{1}{F_{n}^{i}} \tag{13}\]  
In the above equations, \(F_{obj}\) is the objective function and \(f_{obj}^{i}\) is the objective function value for the object \(i\). In the \(m\) variable problem, it is possible to assume that the problem has m dimensions and that there is a coordinate for each dimension. Therefore, it is possible to draw a system on its related coordinate based on each variable. Each coordinate's strong points at the left or right side of the object are determined by comparing the objective function quantities. Stronger points related to each object mean that they are positioned at more optimal positions. Therefore, each coordinate has two general summative forces: the sum of the right, Equation (14) and the sum of the left, Equation (15). Both are applied to the object \(j\). \[F_{total_{R}}^{j,d}=\sum_{i=1}^{n_{R}^{d}}K_{i,j}x_{i,j}^{d} \tag{14}\]  
\[F_{total_{L}}^{j,d}=\sum_{l=1}^{n_{L}^{d}}K_{l,j}x_{l,j}^{d} \tag{15}\]  
In the above equations, \(F_{total_{R}}^{j,d}\) stands for the sum of the right forces and \(F_{total_{L}}^{j,d}\) the sum of the left forces imposed on object \(j\) within the dimension \(d\).