Hill climbing is a mathematical optimization technique that belongs to the family of local search. It's used to solve problems with several solutions. It is an algorithm that begins with a solution to a problem and then tries to find a better solution by changing a particular part of it.
Hill climbing is used in artificial intelligence to reach a goal from a starting node. Hill climbing can find a solution to a local optimum -- a solution that can't be improved by taking into account close configuration -- but it's not guaranteed to find the best solution of all the possible solutions. Hill climbing is used often in convex problems. Simplex algorithms for linear programming and binary searches are examples of algorithms that solve convex problems by hill climbing.