Backtracking - PowerPoint PPT Presentation

1 / 27
About This Presentation
Title:

Backtracking

Description:

Many problems which can be solved by backtracking have the following general form: ... Comb(n,m) k:=1. s[k]:=-1. WHILE k 0 DO. s[k]:=s[k] 1; IF s[k] =1 AND sum ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 28
Provided by: UVT
Category:

less

Transcript and Presenter's Notes

Title: Backtracking


1
  • LECTURE 12
  • Backtracking

2
Outline
  • What is backtracking ?
  • The general structure of the algorithm
  • Application generating permutations
  • Application generating combinations
  • Application n-queens problem

3
What is backtracking?
  • It is a systematic search strategy of the
    state-space of combinatorial problems
  • It is mainly used to solve problems which ask for
    finding elements of a set which satisfy some
    restrictions. Many problems which can be solved
    by backtracking have the following general form
  • Find S subset of A1 x A2 x x An (Ak
    finite sets) such that each element
    s(s1,s2,,sn) satisfy some restrictions
  • Example generating all permutations of
    1,2,,n
  • Ak 1,2,,n for all k
  • si ltgt sj for all iltgtj

4
What is backtracking?
  • Basic ideas
  • the solutions are constructed one component at a
    time
  • each partial solution is evaluated in order to
    establish if it is promising (a promising
    solution could lead to a final solution while a
    non-promising one does not satisfy the partial
    restrictions induced by the problem restriction)
  • if all possible values for a component do not
    lead to a promising partial solution then one
    come back to the previously component and try
    another value for it
  • backtracking implicitly constructs a state space
    tree
  • The root corresponds to an initial state (before
    the search for a solution begins)
  • An internal node corresponds to a promising
    partial solution
  • An external node (leaf) corresponds to either to
    a non-promising partial solution or to a final
    solution

5
What is backtracking?
  • Example state space tree for permutations
    generation

(,,)
(1,,)
(2,,)
(3,,)
(1,1,)
(1,2,)
(1,3,)
(2,1,)
(2,2,)
(2,3,)
(3,1,)
(3,2,)
(3,3,)
(1,2,3)
(1,3,2)
(2,1,3)
(2,3,1)
(3,1,2)
(3,2,1)
6
Outline
  • What is backtracking ?
  • The general structure of the algorithm
  • Application generating permutations
  • Application generating combinations
  • Application n-queens problem

7
The general structure of the algorithm
  • Basic steps
  • Choose the solution representation
  • Establish the sets A1,,An and the order on which
    their elements are processed
  • Derive from the problem restrictions the
    conditions which a partial solution should
    satisfy in order to be promising (these
    conditions are sometimes called continuation
    conditions)
  • Choose a criterion of deciding when a partial
    solution is a final one

8
The general structure of the algorithm
  • Example permutations generation
  • Solution representation each permutation is a
    vector s(s1,s2,sn) satisfying siltgtsj for all
    iltgtj
  • Sets A1,,An 1,2,,n. Each set will be
    processed in the natural order of the elements
  • Continuation conditions a partial solution
    (s1,s2,,sk) should satisfy skltgtsi for all iltgtk
  • Criterion to decide when a partial solution is a
    final one kn

9
The general structure of the algorithm
Some notations (s1,s2,,sk) partial
solution k index for constructing s Ak
ak1,,akmk mkcardAk ik - index for
scanning Ak
10
The general structure of the algorithm
Backtracking(A1, A2, , An) k1 ik0
WHILE kgt0 DO ikik1 vFalse
WHILE vFalse AND ikltmk DO skakik
IF (s1,..sk) is promising THEN vTrue
ELSE ikik1 IF vTrue THEN IF
(s1,,sk) is a final solution THEN
process the final solution ELSE
kk1 ik0 ELSE kk-1
Search for a value of k-th component which
leads us to a promising partial solution
If such a value exists check if we obtained a
final solution
If it is then process it and go to try the next
possible value
If it is not a final solution go to the next
component
If it doesnt exist then go back to the previous
component
11
The general structure of the algorithm
  • The recursive variant
  • Suppose that A1,,An and s are global variables
  • Let k be the component to be filled in
  • The algorithm will be called with
  • BT_rec(1)

BT_rec(k) IF (s1,,sk-1) is a solution
THEN process it ELSE FOR
j1,mk DO sjakj IF
(s1,sk) is promising THEN
BT_rec(k1)
Try each possible value
Go to the next component
12
Outline
  • What is backtracking ?
  • The general structure of the algorithm
  • Application generating permutations
  • Application generating combinations
  • Application n-queens problem

13
Application generating permutations
permutations(n) k1 sk0 WHILE kgt0
DO sksk1 vFalse
WHILE vFalse AND skltn DO IF
promising(s1..k) THEN vTrue
ELSE sksk1 IF vTrue THEN
IF kn THEN WRITE s1..n
ELSE kk1 sk0 ELSE kk-1
Backtracking(A1, A2, , An) k1 ik0
WHILE kgt0 DO ikik1 vFalse
WHILE vFalse AND ikltmk DO skakik
IF (s1,..sk) is promising THEN
vTrue ELSE ikik1 IF vTrue
THEN IF (s1,,sk) is a final solution
THEN process the final solution
ELSE kk1 ik0 ELSE kk-1
14
Application generating permutations
Recursive variant perm_rec(k) IF kn1 THEN
WRITE s1..n ELSE FOR i1,n DO
ski IF promising(s1..k)
THEN perm_rec(k1)
Function to check if a partial solution is a
promising one promising(s1..k) FOR i1,k-1
DO IF sksi THEN RETURN
FALSE RETURN TRUE
15
Outline
  • What is backtracking ?
  • The general structure of the algorithm
  • Application generating permutations
  • Application generating combinations
  • Application n-queens problem

16
Application generating combinations
  • Let Aa1,,an be a finite set. Generate all
    subsets of A having m elements.
  • Example A1,2,3, m2, S1,2,1,3,2,3
  • Solution representation each subset is
    represented by its characteristic vector (si1 if
    ai belongs to the subset and si0 otherwise
  • Sets A1,,An 0,1. Each set will be
    processed in the natural order of the elements
    (first 0 then 1)
  • Continuation conditions a partial solution
    (s1,s2,,sk) should satisfy s1s2sk lt m (the
    partial subset contains at most m elements)
  • Criterion to decide when a partial solution is a
    final one s1s2sk m (has been already
    selected m elements)

17
Application generating combinations
Iterative algorithm Comb(n,m) k1 sk-1
WHILE kgt0 DO sksk1 IF sklt1
AND sum(s1..k)ltm THEN IF
sum(s1..k)m THEN WRITE s1..k
ELSE kk1 sk-1 ELSE kk-1
Recursive algorithm Comb_rec(k) IF
sum(s1..k-1)m THEN WRITE s1..k-1 ELSE
sk0 comb_rec(k1) sk1
comb_rec(k1) Remark by replacing
sum(s1..k-1)m with k-1n one generates all
subsets
18
Outline
  • What is backtracking ?
  • The general structure of the algorithm
  • Application generating permutations
  • Application generating combinations
  • Application n-queens problem

19
Application n-queens problem
Find all possibilities of placing n queens on a
n-by-n chessboard such that they does not attack
each other - each line contains only
one queen - each column contains only
one queen - each diagonal contains
only one queen This is a classical problem
proposed by Gauss (1850) Examples if nlt3 there
is no solution if n4 there are two solutions
As n becomes larger the number of solutions
becomes also larger (for n8 there are 92
solutions)
20
Application n-queens problem
  • Solution representation we shall consider that
    queen k will be placed on row k. Thus for each
    queen it suffices to explicitly specify only the
    column to which it belongs
    The solution will be
    represented as an array (s1,,sn) with sk
    the column on which the queen k is placed
  • Sets A1,,An 1,2,,n. Each set will be
    processed in the natural order of the elements
    (starting from 1 to n)
  • Continuation conditions a partial solution
    (s1,s2,,sk) should satisfy the problems
    restrictions (no more than one queen on a line,
    column or diagonal)
  • Criterion to decide when a partial solution is a
    final one k n (all n queens have been placed)

21
Application n-queens problem
  • Continuation conditions Let (s1,s2,,sk) be a
    partial solution. It is a valid partial solution
    if it satisfies
  • All queens are on different rows - implicitly
    satisfied by the solution representation (each
    queen is placed on its own row)
  • All queens are on different columns
  • siltgtsj for all iltgtj
  • (it suffices to check that skltgtsi
    for all iltk-1)
  • All queens are on different diagonals
  • i-j ltgt si sj for all iltgtj
  • (it suffices to check that
    k-iltgt sk - si for all 1ltiltk-1)
  • Indeed .

22
Application n-queens problem
  • Remark
  • two queens i and j are on the
  • same diagonal if either
  • i-sij-sj ? i-j sj-si
  • or
  • isijsi ? i-j si-sj
  • This means i-jsi-sj

i-j-(n-2)
i-j1
i-j-1
i-jn-2
i-j0
ij3
ijn2
ijn
ij2n-1
ijn1
23
Application n-queens problem
  • Validation(s1..k)
  • FOR i1,k-1 DO
  • IF sksi OR i-ksi-sk THEN RETURN
    False
  • RETURN True

Algorithm Queens(k) IF kn1 THEN WRITE
s1..n ELSE FOR i1,n DO ski
IF validation(s1..k) THEN queens(k1)
24
Application map coloring
  • Problem Let us consider a geographical map
    containing n countries. Propose a coloring of the
    map by using mgt4 colors such that any two
    neighborhood countries have different colors
  • Problem formalization Let us consider that the
    neighborhood relation between countries is
    represented as a matrix N as follows
  • 0 if i and j
    are not neighbors
  • N(i,j)
  • 1 if i and j
    are neighbors
  • Find a map coloring S(s1,,sn) with sk in
    1,,m such that for all pairs (i,j) with
    N(i,j)1 the elements si and sj are different
    (siltgtsj)

25
Application map coloring
  • Solution representation
  • S(s1,,sn) with sk representing the
    color associated to country k
  • 2. Sets A1,,An 1,2,,m. Each set
    will be processed in the natural order of the
    elements (starting from 1 to m)
  • Continuation conditions a partial solution
    (s1,s2,,sk) should satisfy siltgtsj for all pairs
    (i,j) with N(i,j)1
  • For each k it suffices to check that
    skltgtsj for all pairs i in 1,2,,k-1 with
    N(i,k)1
  • 4. Criterion to decide when a partial
    solution is a final one k n (all countries
    have been colored)

26
Application map coloring
  • Recursive algorithm
  • Coloring(k)
  • IF kn1 THEN WRITE s1..n
  • ELSE
  • FOR j1,m DO
  • skj
  • IF validation(s1..k)
  • THEN coloring(k1)

Validation algorithm Validation(s1..k) FOR
i1,k-1 DO IF Ni,j1 AND sisk THEN
RETURN False RETURN True
Call Coloring(1)
27
Next lecture will be on
  • branch and bound
  • and its applications
Write a Comment
User Comments (0)
About PowerShow.com