ICS 353: Design and Analysis of Algorithms - PowerPoint PPT Presentation

Loading...

PPT – ICS 353: Design and Analysis of Algorithms PowerPoint presentation | free to download - id: 7b63f2-ZDg4Z



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

ICS 353: Design and Analysis of Algorithms

Description:

King Fahd University of Petroleum & Minerals Information & Computer Science Department ICS 353: Design and Analysis of Algorithms Backtracking Reading Assignment M ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 17
Provided by: Was137
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: ICS 353: Design and Analysis of Algorithms


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

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

3
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.

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

5
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

6
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?)
7
Example
a
b
c
d
e
8
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

9
Algorithm 3-ColorRec
10
Algorithm 3-ColorIter
11
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.

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

13
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, xj1).
    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 Xj2.

14
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 Xj1, the algorithm sets xj1 to the
    next member of Xj1.
  • (The Backtrack Step) If there are no more
    elements to choose from in the set Xj1, 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.

15
BacktrackRec
16
BacktrackIter
About PowerShow.com