ICS 353: Design and Analysis of Algorithms

Slides:



Advertisements
Similar presentations
1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.
Advertisements

The Theory of NP-Completeness
© 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.
The Theory of NP-Completeness
Ch 13 – Backtracking + Branch-and-Bound
Backtracking Reading Material: Chapter 13, Sections 1, 2, 4, and 5.
CSE 589 Applied Algorithms Spring Colorability Branch and Bound.
GRAPH Learning Outcomes Students should be able to:
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.
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.
Design Techniques for Approximation Algorithms and Approximation Classes.
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.
Contents of Chapter 7 Chapter 7 Backtracking 7.1 The General method
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Graphs and MSTs Sections 1.4 and 9.1. Partial-Order Relations Everybody is not related to everybody. Examples? Direct road connections between locations.
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
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
ICS 353: Design and Analysis of Algorithms Backtracking King Fahd University of Petroleum & Minerals Information & Computer Science Department.
Approximation Algorithms Department of Mathematics and Computer Science Drexel University.
Unit – 5: Backtracking For detail discussion, students are advised to refer the class discussion.
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.
The Theory of NP-Completeness
Limitation of Computation Power – P, NP, and NP-complete
More NP-Complete and NP-hard Problems
P & NP.
8.3.2 Constant Distance Approximations
Mathematical Foundations of AI
Hard Problems Some problems are hard to solve.
Shortest Path Problems
Backtracking And Branch And Bound
EMGT 6412/MATH 6665 Mathematical Programming Spring 2016
Circuit Lower Bounds A combinatorial approach to P vs NP
Design and Analysis of Algorithm
Haim Kaplan and Uri Zwick
Computability and Complexity
ICS 353: Design and Analysis of Algorithms
Analysis and design of algorithm
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
Objective of This Course
INTRODUCTION TO THE THEORY OF COMPUTATION
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
ICS 353: Design and Analysis of Algorithms
Chapter 11 Limitations of Algorithm Power
ICS 353: Design and Analysis of Algorithms
Algorithms for Budget-Constrained Survivable Topology Design
ICS 353: Design and Analysis of Algorithms
3. Brute Force Selection sort Brute-Force string matching
NP-Completeness Yin Tat Lee
3. Brute Force Selection sort Brute-Force string matching
Backtracking and Branch-and-Bound
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
The Greedy Approach Young CS 530 Adv. Algo. Greedy.
ICS 353: Design and Analysis of Algorithms
ICS 253: Discrete Structures I
ICS 353: Design and Analysis of Algorithms
Complexity Theory: Foundations
3. Brute Force Selection sort Brute-Force string matching
Presentation transcript:

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

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

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.

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

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

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?)

Example a b c d e

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

Algorithm 3-ColorRec

Algorithm 3-ColorIter 3

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.

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 = 60. There is more than one solution to this problem: What are they and what is their length?

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: 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. (The advance Step): If v represents a partial solution, the algorithm advances by choosing the least element in the set Xj+2.

The General Backtracking Algorithm (2) If v is neither a final nor a partial solution, we have two sub-cases: 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. (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 xj1 to the next member of Xj1, and so on.

BacktrackRec

BacktrackIter