### Hill Climbing

##### Description

A local search algorithm solves an optimization problem by iteratively moving from one candidate solution to a neighboring candidate solution until a termination criterion is met. “neighboring” here means: can be reached by applying a search operation once.

##### Definitions

$$f \gets \text{the objective/fitness function}$$ $$stepSize \gets \text{the step size value }$$ $$x \gets \text{the current candidate solution}$$ $$\textit{Best} \gets \text{the best individual ever discovered}$$

##### Mutation Function

The mutation function get neighbours from $Best$ solution by Gaussian random.

##### References

Thomas Weise - Metaheuristic Optimization

https://en.wikipedia.org/wiki/Hill_climbing

##### Pseudo Code
\begin{algorithm}
\caption{HC Algorithm (Minimization)}
\begin{algorithmic}
\STATE $\textit{Best} \gets Null$
\WHILE{$terminationCriteria$}
\STATE $x \gets mutation(\textit{Best})$
\IF{$f(\textit{Best}) \geq f(x)$}
\STATE $\textit{Best} \gets x$
\ENDIF
\ENDWHILE
\RETURN $\textit{Best}$
\end{algorithmic}
\end{algorithm}