Hill climbing is a variant of generate-and test in which feedback from the test procedure is used to help the generator decide which direction to move in search space.
The test function is augmented with a heuristic function that provides an estimate of how close a given state is to the goal state.
Hill climbing is often used when a good heuristic function is available for evaluating states but when no other useful knowledge is available.
The key difference between Simple Hill Climbing and Generate-and-test is the use of evaluation function as a way to inject task specific knowledge into the control process.
Algorithm: