where C1 and C2 are two positive constants named learning factors. rand1 and rand2 are two random functions in the range [0, 1]. w is an inertia weight to control the impact of the previous history of velocities on the current velocity. The operator w plays the role of balancing the global search and the local search; and was proposed to decrease linearly with time from a value of 1.4–0.5. As such, global search starts with a large weight and then decreases with time to favor local search over global search. When the number of iterations is equal to the total number of particles, goal is compared with the error produced by the GBest weights. If the error produced by the GBest weights are less than or equal to the goal, weights in the GBest are used for testing and prediction. Otherwise weights of minimum error are stored in GBest and the iterations are repeated until goal reached.