  in computer science, hill climbing is a mathematical optimization technique which belongs to the family of local search. it is an iterative algorithm that starts with an arbitrary solution to a problem, then attempts to find a better solution by incrementally changing a single element of the solution. if the change produces a better solution, an incremental change is made to the new solution, repeating until no further improvements can be found. for example, hill climbing can be applied to the travelling salesman problem. it is easy to find an initial solution that visits all the cities but will be very poor compared to the optimal solution. the algorithm starts with such a solution and makes small improvements to it, such as switching the order in which two cities are visited. eventually, a much shorter route is likely to be obtained. hill climbing is good for finding a local optimum (a solution that cannot be improved by considering a neighbouring configuration) but it is not necessarily guaranteed to find the best possible solution (the global optimum) out of all possible solutions (the search space). in convex problems, hill-climbing is optimal. examples of algorithms that solve convex problems by hill-climbing include the simplex algorithm for linear programming and binary search. the characteristic that only local optima are guaranteed can be cured by using restarts (repeated local search), or more complex schemes based on iterations, like iterated local search, on memory, like reactive search optimization and tabu search, or memory-less stochastic modifications, like simulated annealing. the relative simplicity of the algorithm makes it a popular first choice amongst optimizing algorithms. it is used widely in artificial intelligence, for reaching a goal state from a starting node. choice of next node and starting node can be varied to give a list of related algorithms. although more advanced algorithms such as simulated annealing or tabu search may give better results, in some situations hill climbing works just as well. hill climbing can often produce a better result than other algorithms when the amount of time available to perform a search is limited, such as with real-time systems. it is an anytime algorithm: it can return a valid solution even if it's interrupted at any time before it ends. ==mathematical description== hill climbing attempts to maximize (or minimize) a target [[fu
Optimization_algorithms_and_methods Search_algorithms