Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
31 views

Backtrack Search Algorithm

The document discusses backtracking search algorithms. It begins by explaining that backtracking is useful when making a series of decisions with limited information where some sequence of choices may solve the problem. It then provides more details on backtracking: it is a depth-first search modified to remove parts of the tree that cannot lead to a solution. The key steps of a backtracking algorithm are to test for a solution, return it if found or choose options recursively and return any solutions found. Examples provided include the 8 queens problem and coloring a map. Parallelizing backtracking distributes the search tree across processors to improve speed and efficiency.

Uploaded by

Anonymous
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Backtrack Search Algorithm

The document discusses backtracking search algorithms. It begins by explaining that backtracking is useful when making a series of decisions with limited information where some sequence of choices may solve the problem. It then provides more details on backtracking: it is a depth-first search modified to remove parts of the tree that cannot lead to a solution. The key steps of a backtracking algorithm are to test for a solution, return it if found or choose options recursively and return any solutions found. Examples provided include the 8 queens problem and coloring a map. Parallelizing backtracking distributes the search tree across processors to improve speed and efficiency.

Uploaded by

Anonymous
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

BACKTRACK SEARCH

ALGORITHM
BACKTRACKING
 Suppose you have to make a series of decisions, among
various choices, where
 You don’t have enough information to know what to choose
 Each decision leads to a new set of choices
 Some sequence of choices (possibly more than one) may be a
solution to your problem
 Backtracking is a methodical way of trying out various
sequences of decisions, until you find the correct one
that “works”.
BACKTRACKING
 Backtracking is used to solve problems in which a
sequence of objects is chosen from a specified set so that
the sequence satisfies some criterion.
 Backtracking is a modified depth-first search of a tree.

 It is the procedure whereby, after determining that a node


can lead to nothing but dead nodes, we go back
(“backtrack”) to the node’s parent and proceed with the
search on the next child.
BACKTRACK ALGORITHM

 Based on depth-first recursive search


 Approach
1. Tests whether solution has been found
2. If found solution, return it
3. Else for each choice that can be made
a) Make that choice
b) Recursive
c) If recursion returns a solution, return it
4. If no choices remain, return failure
 Some times called “search tree”
IMPROVING BACKTRACKING
 Search pruning will help us to reduce the search space
and hence get a solution faster.

 The idea is to avoid those paths that may not lead to a


solutions as early as possible by finding contradictions
so that we can backtrack immediately without the need
to build a hopeless solution vector.
BACKTRACKING EXAMPLES
 The backtracking can be used in this cases:
 Solving a maze
 Coloring a map
 Solving a puzzle
 N queens problem etc.,
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM

 The 8-queens problem is a classical combinatorial


problem in which it is required to place eight queens on
an 8 x 8 chessboard so no two can attack each other.

 A queen can attack another queen if it exists in the same


row, column or diagonal as the queen.

7
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)
 This problem can be solved by trying to place the first
queen, then the second queen so that it cannot attack the
first, and then the third so that it is not conflicting with
previously placed queens.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)

 It is an empty 8 x 8 chess
board. We have to place
the queens in this board.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)

 We have placed the first


queen on the chess board
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)
 Then we have placed the
second queen on the
board.
 The darken place should
not have the queens
because they are
horizontal, vertical,
diagonal to the placed
queens.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)

 We have placed the third


queen on board.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)

 We have placed the 4th


queen on the board.
 We have placed that in
the wrong spot, so we
backtrack and change the
place of that one.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)
 In this way, we have to
continue the process
untill our is reached ie.,
we must place 8 queens
on the board.
BACKTRACKING EXAMPLE—8 QUEENS
PROBLEM(CONT…)
 Backtracking provides the hope to solve some
problem instances of nontrivial sizes by pruning non-
promising branches of the state-space tree.

 The success of backtracking varies from problem to


problem and from instance to instance.

 Backtracking possibly generates all possible


candidates in an exponentially growing state-space
tree.
PARALLELIZING BACKTRACK ALGORITHM

 First, we have to parallelize the root node of the


algorithm.
 Then the sub nodes and the child nodes should be
parallelized independently using the other processors.
 For example, if we take the 8 queens problem then it can
be easily implemented in parallel.
 The N-queens problem can be parallelized in this way.
PARALLELIZING BACKTRACK ALGORITHM
 The solutions to the n-queens problem can be generated
in parallel by using the master-worker technique.
 The manager generates the upper portion of the search
tree by generating those nodes of fixed depth d, for some
d.
 The manager dynamically passes each of these
sequences to an idle worker, who in turn continues to
search for sequences with n-queens property that
contain the fixed subsequence of length d.
 The master-worker technique is particularly well-suited
for implementation with MPI
PARALLELIZING BACKTRACK ALGORITHM
 Parallelizing the backtrack algorithm will gives us a
good speedup and efficiency when compared to the
normal algorithm.
 The speedup and the efficiency will gets drastically
increased when it is done in the parallel.
REFERENCES
 http://ieeexplore.ieee.org.libproxy.library.wmich.edu/sea
rch/srchabstract.jsp?tp=&arnumber=346127&openedRef
inements%3D*%26filter%3DAND%28NOT%28428301
0803%29%29%26searchField%3DSearch+All%26query
Text%3Dparallel+backtrack+algorithm&tag=1
 http://www.mendeley.com/research/a-randomized-parall
el-backtracking-algorithm/
 http://www.arch.cs.titech.ac.jp/~kise/doc/paper/uec-is-20
04-06.pdf
THANK YOU!!!

You might also like