cs353 10 backtracking

16
ICS 353: Design and Analysis of Algorithms Backtracking King Fahd University of Petroleum & King Fahd University of Petroleum & Minerals Minerals Information & Computer Science Department Information & Computer Science Department

Upload: raedadobeadobe

Post on 05-Dec-2015

273 views

Category:

Documents


3 download

DESCRIPTION

Backtracking

TRANSCRIPT

Page 1: CS353 10 Backtracking

ICS 353: Design and Analysis of Algorithms

Backtracking

King Fahd University of Petroleum & MineralsKing Fahd University of Petroleum & Minerals

Information & Computer Science DepartmentInformation & Computer Science Department

Page 2: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Reading Assignment• M. Alsuwaiyel, Introduction to Algorithms:

Design Techniques and Analysis, World Scientific Publishing Co., Inc. 1999.• Chapter 13, Sections 1, 2 and 4.

2

Page 3: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Coping with Hard Problems• There are three useful methodologies that could be used to

cope with problems having no efficient algorithm to solve: • A methodic examination of the implicit state space induced by the

problem instance under study.• suitable for problems that exhibit good average time complexity.

• A probabilistic notion of accuracy where a solution is a simple decision maker or test that can accurately perform one task (either passing or failing the alternative) and not say much about the complementary option. An iteration through this test will enable the construction of the solution or the increase in the confidence level in the solution to the desired degree.

• Obtain an approximate solution• Only some classes of hard problems admit such polynomial time

approximations.

• Backtracking belongs to the first category.

3

Page 4: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Backtracking

• A systematic technique of searching• To reduce the search space• Can be considered as an “organized” exhaustive

search

4

Page 5: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

3-Coloring Problem

• Optimization Problem• Input: G = (V, E), an undirected graph with n vertices and

m edges.

• Output: A 3-coloring of G, if possible.

• A coloring can be represented as an n-tuple (c1, c2, ..., cn)

• The number of different possible colorings for a graph is ...........

• These possibilities can be represented as a complete ternary tree

5

Page 6: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

3-Coloring: Search Tree

Search tree of all possible colorings of a graph with 4 vertices

(When could this be for a graph with 5 vertices?)

6

Page 7: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Example

a

b c

d e

7

Page 8: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Example

• In the example• Nodes are generated in a depth-first search

manner• No need to store the whole search tree, just the

current active path• What is the time complexity of the algorithm in

the worst case

8

Page 9: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Algorithm 3-ColorRec

9

Page 10: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

Algorithm 3-ColorIter

10

Page 11: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

The General Backtracking Method• Assume that the solution is of the form (x1, x2,

..., xi) where 0 i n and n is a constant that depends on the problem formulation.• Here, the solution is assumed to satisfy certain

constraints.• i in the case of the 3-coloring problem is fixed.• i may vary from one solution to another.

11

Page 12: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

The General Backtracking Method: Example

• Consider the following version of the Partition Problem

Input: X = {x1, x2, ..., xn} a set of n integers, and an integer y.

Output: Find a subset Y X such that the sum of its elements is equal to y.• For example, consider X = {10, 20, 30, 40, 50, 60}

and y = 50. There is more than one solution to this problem: What are they and what is their length?

12

Page 13: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

The General Backtracking Algorithm (1)• Each xi in the solution vector belongs to a finite linearly

ordered set Xi.• The backtracking algorithm considers the elements of

the Cartesian product X1 X2 ... Xn in lexicographic order.

• Initially starting with the empty vector.• Suppose that the algorithm has detected the partial

solution (x1, x2, ..., xj). It then considers the vector v = (x1, x2, ..., xj, xj+1). We have the following cases:

1. If v represents a final solution to the problem, the algorithm records it as a solution and either terminates in case only one solution is desired or continues to find other solutions.

2. (The advance Step): If v represents a partial solution, the algorithm advances by choosing the least element in the set Xj+2.

13

Page 14: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

The General Backtracking Algorithm (2)

3. If v is neither a final nor a partial solution, we have two sub-cases:

a. If there are still more elements to choose from in the set Xj+1, the algorithm sets xj+1 to the next member of Xj+1.

b. (The Backtrack Step): If there are no more elements to choose from in the set Xj+1, the algorithm backtracks by setting xj to the next member of Xj . If again there are no more elements to choose from in the set Xj , the algorithm backtracks by setting xj1 to the next member of Xj1, and so on.

14

Page 15: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

BacktrackRec

15

Page 16: CS353 10 Backtracking

BacktrackingICS 353: Design and Analysis of Algorithms

BacktrackIter

16