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

Slides:



Advertisements
Similar presentations
Approximation Algorithms Chapter 14: Rounding Applied to Set Cover.
Advertisements

Lecture 24 Coping with NPC and Unsolvable problems. When a problem is unsolvable, that's generally very bad news: it means there is no general algorithm.
Techniques for Dealing with Hard Problems Backtrack: –Systematically enumerates all potential solutions by continually trying to extend a partial solution.
The Theory of NP-Completeness
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
© The McGraw-Hill Companies, Inc., Chapter 8 The Theory of NP-Completeness.
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
Implicit Hitting Set Problems Richard M. Karp Harvard University August 29, 2011.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
The Theory of NP-Completeness
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Using Search in Problem Solving
Chapter 11: Limitations of Algorithmic Power
Ch 13 – Backtracking + Branch-and-Bound
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Backtracking Reading Material: Chapter 13, Sections 1, 2, 4, and 5.
Hardness Results for Problems
Outline Introduction The hardness result The approximation algorithm.
CSE 589 Applied Algorithms Spring Colorability Branch and Bound.
Busby, Dodge, Fleming, and Negrusa. Backtracking Algorithm Is used to solve problems for which a sequence of objects is to be selected from a set such.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
Fixed Parameter Complexity Algorithms and Networks.
Computational Complexity Polynomial time O(n k ) input size n, k constant Tractable problems solvable in polynomial time(Opposite Intractable) Ex: sorting,
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Complexity 2-1 Problems and Languages Complexity Andrei Bulatov.
Design Techniques for Approximation Algorithms and Approximation Classes.
Topology aggregation and Multi-constraint QoS routing Presented by Almas Ansari.
Design and Analysis of Algorithms - Chapter 111 How to tackle those difficult problems... There are two principal approaches to tackling NP-hard problems.
Chapter 12 Coping with the Limitations of Algorithm Power Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Christopher Moh 2005 Competition Programming Analyzing and Solving problems.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
ICS 253: Discrete Structures I Induction and Recursion King Fahd University of Petroleum & Minerals Information & Computer Science Department.
COPING WITH THE LIMITATIONS OF ALGORITHM POWER
Linear Program Set Cover. Given a universe U of n elements, a collection of subsets of U, S = {S 1,…, S k }, and a cost function c: S → Q +. Find a minimum.
Approximation Algorithms Department of Mathematics and Computer Science Drexel University.
Implicit Hitting Set Problems Richard M. Karp Erick Moreno Centeno DIMACS 20 th Anniversary.
Graphs and MSTs Sections 1.4 and 9.1. Partial-Order Relations Everybody is not related to everybody. Examples? Direct road connections between locations.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
LIMITATIONS OF ALGORITHM POWER
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 23 Algorithm Efficiency.
ICS 353: Design and Analysis of Algorithms
Chapter 13 Backtracking Introduction The 3-coloring problem
CSCE350 Algorithms and Data Structure Lecture 21 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
Theory of Computational Complexity Probability and Computing Chapter Hikaru Inada Iwama and Ito lab M1.
ICS 353: Design and Analysis of Algorithms NP-Complete Problems King Fahd University of Petroleum & Minerals Information & Computer Science Department.
More NP-Complete and NP-hard Problems
Backtracking And Branch And Bound
Design and Analysis of Algorithm
Computability and Complexity
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
Objective of This Course
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
Algorithms for Budget-Constrained Survivable Topology Design
ICS 353: Design and Analysis of Algorithms
NP-Completeness Reference: Computers and Intractability: A Guide to the Theory of NP-Completeness by Garey and Johnson, W.H. Freeman and Company, 1979.
ICS 353: Design and Analysis of Algorithms
Complexity Theory in Practice
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
Complexity Theory: Foundations
Presentation transcript:

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

BacktrackingICS 353: Design and Analysis of Algorithms Reading Assignment M. Alsuwaiyel, Introduction to Algorithms: Design Techniques and Analysis, World Scientific Publishing Co., Inc Chapter 13, Sections 1, 2 and 4. 2

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

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

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 (c 1, c 2,..., c n ) The number of different possible colorings for a graph is These possibilities can be represented as a complete ternary tree 5

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

BacktrackingICS 353: Design and Analysis of Algorithms Example a bc de 7

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

BacktrackingICS 353: Design and Analysis of Algorithms Algorithm 3-ColorRec 9

BacktrackingICS 353: Design and Analysis of Algorithms Algorithm 3-ColorIter 10

BacktrackingICS 353: Design and Analysis of Algorithms The General Backtracking Method Assume that the solution is of the form (x 1, x 2,..., x i ) 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

BacktrackingICS 353: Design and Analysis of Algorithms The General Backtracking Method: Example Consider the following version of the Partition Problem Input: X = {x 1, x 2,..., x n } 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

BacktrackingICS 353: Design and Analysis of Algorithms The General Backtracking Algorithm (1) Each x i in the solution vector belongs to a finite linearly ordered set X i. The backtracking algorithm considers the elements of the Cartesian product X 1  X 2 ...  X n in lexicographic order. Initially starting with the empty vector. Suppose that the algorithm has detected the partial solution (x 1, x 2,..., x j ). It then considers the vector v = (x 1, x 2,..., x j, x j+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 X j+2. 13

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 X j+1, the algorithm sets x j+1 to the next member of X j+1. b.(The Backtrack Step): If there are no more elements to choose from in the set X j+1, the algorithm backtracks by setting x j to the next member of X j. If again there are no more elements to choose from in the set X j, the algorithm backtracks by setting x j  1 to the next member of X j  1, and so on. 14

BacktrackingICS 353: Design and Analysis of Algorithms BacktrackRec 15

BacktrackingICS 353: Design and Analysis of Algorithms BacktrackIter 16