15
Lecture 12: Algorithm Review

Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Embed Size (px)

Citation preview

Page 1: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Lecture 12:

Algorithm Review

Page 2: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

General Problem Solving Methods

Divide & Conquer

Greedy Method

Dynamic Programming

Graph & Tree Traversal

Backtracking

Branch & Bound

Constraint Relaxation

Reduction Methods

Page 3: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Searching & Sorting

Binary Search

Merge Sort

Quicksort

Topological sort

Page 4: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Graph & Tree Traversal

Prim's Algorithm Minimum Spanning Tree

Dijkstra's Single-Source Shortest-Path

Depth-First Search

Hamiltonian Circuits

Maximal Matching

Graph Coloring algorithm

B&B TSP

B&B TSP with Constraint Relaxation

Max-Flow Min-Cut (Ford-Fulkerson)

Dijkstra's Single-Source Shortest-Path (SSSP)

Floyd's All-Pairs Shortest-Path (APSP)

Natural Clustering (Dendrograms)

Page 5: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Greedy Matching

Greedy Coin Changing

Prim's Algorithm Minimum Spanning Tree

Track Correlation

Greedy Euclidean TSP

Floyd's All-Pairs Shortest-Path (APSP)

Simplex Method

Greedy Methods

Page 6: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Dijkstra's Single-Source Shortest-Path

Making Change (non-Greedy)

Davis-Putnam 3-SAT Algorithm

0/1 Knapsack Problem

Dynamic Programming

Page 7: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Augmenting Path Algorithm

Maximal Matching

Munkres Assignment - Hungarian algorithm

Track Correlation

B&B TSP with Constraint Relaxation

Max-Flow Min-Cut (Ford-Fulkerson)

Simplex Method

Natural Clustering (Dendrograms)

Constraint Relaxation Methods

Page 8: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

General Combinatorial Algorithms

Depth-First Search

Hamiltonian Circuits

Next Permutation

Graph Coloring algorithm

Optimal Traveling Salesperson Problem

Algorithms

Cross & Insert Heuristics for Routing

Davis-Putnam 3-SAT Algorithm

Solution-Set Enumeration (3-SAT)

Sum-of-Subsets

N-Queens Problem Methods

Backtracking Algorithms

Page 9: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Dictionary of Algorithms and Data Structures

This web site is hosted in part by the Software and Systems Division, Information Technology Laboratory.

This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions. Algorithms include common functions, such as Ackermann's function. Problems include traveling salesman and Byzantine generals.

Some entries have links to implementations and more information. Index pages list entries by area and by type. The two-level index has a total download 1/20 as big as this page.

http://www.itl.nist.gov/div897/sqg/dads/

Page 10: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

A D F

C H

B E G

Graph Traversals

depth-first from node ___ : ___ ___ ___ ___ ___ ___ ___ ___

breadth-first from node ___ : ___ ___ ___ ___ ___ ___ ___ ___

hamiltonian path ___ ___ ___ ___ ___ ___ ___ ___

Page 11: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

Greedy Tour

greedy tour starting from node ___ : ___ ___ ___ ___ ___ ___ ___ ___

lower bound heuristic computing minimum cost to leave each city _______

lower bound heuristic computing minimum cost to enter each city _______

Page 12: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

2

C

D

F

E

A

G

B

4

2

3

5

1

2

1

2

1

2

1

Graph Representations

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

___ ___ ___ ___ ___ ___ ___

adjacency matrix

___ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ___

edge list

Page 13: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

2

C

D

F

E

A

G

B

4

2

3

5

1

2

1

2

1

2

1

Minimal Spanning Tree

___ ___ ______ ___ ______ ___ ______ ___ ______ ___ ______ ___ ___

edge list of MST

Page 14: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch

2

C

D

F

E

A

G

B

4

2

3

5

1

2

1

2

1

2

1

Single-Source Shortest Path

___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___

from node ____

{__}{__ __}

{__ __ __}{__ __ __ __}

{__ __ __ __ __}{__ __ __ __ __ __}

Page 15: Lecture 12: Algorithm Review. General Problem Solving Methods Divide & Conquer Greedy Method Dynamic Programming Graph & Tree Traversal Backtracking Branch