Hill-climbing #2

13
HILL CLIMBING Search algorithm

description

Applications of Hill-climbing search algorithm

Transcript of Hill-climbing #2

Page 1: Hill-climbing #2

HILL CLIMBING

Search algorithm

Page 2: Hill-climbing #2

AGENDA

1. Optimization technique

2. Iterative Improvement

3. Algorithm in Pseudocode

4. Applications

Page 3: Hill-climbing #2

OPTIMIZATION TECHNIQUE

Hill climbing is an optimization technique for solving computationally hard problems. It is best used in problems with “the property that the state description itself contains all the information needed for a solution” (Russell & Norvig, 2003).[1] The algorithm is memory efficient since it does not maintain a search tree: It looks only at the current state and immediate future states.

Page 4: Hill-climbing #2

OPTIMIZATION TECHNIQUE

Hill climbing attempts to iteratively improve the current state by means of an evaluation function. “Consider all the [possible] states laid out on the surface of a landscape. The height of any point on the landscape corresponds to the evaluation function of the state at that point” (Russell & Norvig, 2003).[1]

Page 5: Hill-climbing #2

OPTIMIZATION TECHNIQUE

In contrast with other iterative improvement algorithms, hill-climbing always attempts to make changes that improve the current state. In other words, hill-climbing can only advance if there is a higher point in the adjacent landscape.

Page 6: Hill-climbing #2

ITERATIVE IMPROVEMENT

The main problem that hill climbing can encounter is that of local maxima. This occurs when the algorithm stops making progress towards an optimal solution; mainly due to the lack of immediate improvement in adjacent states.

Page 7: Hill-climbing #2

ITERATIVE IMPROVEMENT

Local maxima can be avoided by a variety of methods: Simulated annealing tackles this issue by allowing some steps to be taken which decrease the immediate optimality of the current state. Algorithms such as simulated annealing “can sometimes make changes that make things worse, at least temporarily” (Russell & Norvig, 2003).[1] This allows for the avoidance of dead ends in the search path.

Page 8: Hill-climbing #2

ALGORITHM IN PSEUDOCODE

Page 9: Hill-climbing #2

function HILL-CLIMBING(problem) returns a solution state inputs: problem, a problem static: current, a node next, a node current <— MAKE-NODE(lNlTIAL-STATE[problem]) loop do next— a highest-valued successor of current if VALUE[next] < VALUE[current] then return current current *—next end

Page 10: Hill-climbing #2

APPLICATIONS

Hill climbing can be applied to any problem where the current state allows for an accurate evaluation function. For example, the travelling salesman problem, the eight-queens problem, circuit design, and a variety of other real-world problems. Hill Climbing has been used in inductive learning models. One such example is PALO, a probabilistic hill climbing system which models inductive and speed-up learning. Some applications of this system have been fit into “explanation-based learning systems”, and “utility analysis” models. (Cohen, Greiner, & Schuurmans, 1994)

Page 11: Hill-climbing #2

APPLICATIONS

Hill Climbing has also been used in robotics to manage multiple-robot teams. One such example is the Parish algorithm, which allows for scalable and efficient coordination in multi-robot systems. The group of researchers designed “a team of robots [that] must coordinate their actions so as to guarantee location of a skilled evader.” (Gerkey, Thrun, & Gordon, 2005).[3]

Page 12: Hill-climbing #2

APPLICATIONS

Their algorithm allows robots to choose whether to work alone or in teams by using hill-climbing. Robots executing Parish are therefore “collectively hill-climbing according to local progress gradients, but stochastically make lateral or downward moves to help the system escape from local maxima.” (Gerkey, Thrun, & Gordon, 2005)

Page 13: Hill-climbing #2

THANK YOU