today’s agenda --- the last class various administrative issues on the final exam course...

71
Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Upload: jasper-todd

Post on 13-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Today’s Agenda --- the Last Class

Various administrative issues on the final exam

Course evaluation

Review for the final exam

Page 2: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Final Exam

Time : 2:00pm-4:30pm, Friday December 15

Place: SWGN 2A21 (This room)

Note: • closed-book and closed-note• one letter-size cheat sheet, you can use both sides• coverage: all materials covered discussed in the class, around

50% of points for the material before the second midterm exam

• bonus points (4%) for good cheat sheets, as in two midterm exams. You need to turn in your cheat sheet to qualify for bonus points

Page 3: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Additional Office Hours

2:30pm-4:00pm Tuesday December 12

2:30pm-4:00pm Thursday December 14

You may also ask question through the forum

Page 4: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Course Evaluation Information

Semester: Fall 2005

Instructor Code: 5024

Course Prefix: CSCE

Course #: 350

Section #: 001

Note: Answer all the questions 1- 29 on both sides

Page 5: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Review For the Final Exam

An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time.

“computer”

problem

algorithm

input output

Page 6: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Some Important Points

Each step of an algorithm is unambiguous

The range of inputs has to be specified carefully

The same algorithm can be represented in different ways

The same problem may be solved by different algorithms

Different algorithms may take different time to solve the same problem – we may prefer one to the other

Page 7: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Some Well-known Computational Problems

Sorting

Searching

Shortest paths in a graph

Minimum spanning tree

Primality testing

Traveling salesman problem

Knapsack problem

Chess

Towers of Hanoi …

Page 8: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Algorithm Design Strategies

Brute force

Divide and conquer

Decrease and conquer

Transform and conquer

Greedy approach

Dynamic programming

Backtracking and branch and bound

Space and time tradeoffs

Page 9: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Analysis of Algorithms

How good is the algorithm?• Correctness• Time efficiency• Space efficiency

Does there exist a better algorithm?• Lower bounds• Optimality

Page 10: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Data Structures

Array, linked list, stack, queue, priority queue (heap), tree, undirected/directed graph, set

Graph Representation: adjacency matrix / adjacency linked list

0 0 1 1 0 00 0 1 0 0 11 1 0 0 1 01 0 0 0 1 00 0 1 1 0 10 1 0 0 1 0

abcdef

c dc f

b eaea

d fceb

Page 11: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Binary Tree and Binary Search Tree

Binary tree – each vertex has no more than two children

Binary search tree – the number associated with the parent is larger than its children.

The height of a binary tree (from the root to the leaf) is

We use this later in information-theoretic lower bound estimation!

1log2 nhn

Page 12: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Theoretical Analysis of Time Efficiency

Time efficiency is analyzed by determining the number of repetitions of the basic operation as a function of input size

Basic operation: the operation that contributes most towards the running time of the algorithm.

T(n) ≈ copC(n)running time execution time

for basic operation

Number of times basic operation is

executed

input size

Page 13: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Best-case, Average-case, Worst-case

For some algorithms efficiency depends on type of input:

Worst case: W(n) – maximum over inputs of size n

Best case: B(n) – minimum over inputs of size n

Average case: A(n) – “average” over inputs of size n• Number of times the basic operation will be executed on typical

input• NOT the average of worst and best case• Expected number of basic operations repetitions considered as a

random variable under some assumption about the probability distribution of all possible inputs of size n

Page 14: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Order of growth

Most important: Order of growth within a constant multiple as n→∞

Asymptotic Growth Rate: A way of comparing functions that ignores constant factors and small input sizes

• O(g(n)): class of functions f(n) that grow no faster than g(n)

• Θ (g(n)): class of functions f(n) that grow at same rate as g(n)

• Ω(g(n)): class of functions f(n) that grow at least as fast as g(n)

Page 15: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Establishing rate of growth – using limits

limn→∞ T(n)/g(n) =

0 order of growth of T(n) ___ order of growth of g(n)

c>0 order of growth of T(n) ___ order of growth of g(n)

∞ order of growth of T(n) ___ order of growth of g(n)

)('

)('lim

)(

)(lim

ng

nf

ng

nfnn

L’Hôpital’s Rule

Page 16: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Basic Asymptotic Efficiency Classes

1 constant

log n logarithmic

n linear

n log n n log n

n2 quadratic

n3 cubic

2n exponential

n! factorial

Page 17: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Analyze the Time Efficiency of An Algorithm

Nonrecursive Algorithm

Recursive Algorithmf

i*ff

ni

f

nFactorial

return

do to for

ALGORITHM

1

1

)(

n*nFactorial

n

nFactorial

)1(

1

0

)(

return

else

return

if

ALGORITHM

Page 18: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Time efficiency of Nonrecursive Algorithms

Steps in mathematical analysis of nonrecursive algorithms:

• Decide on parameter n indicating input size

• Identify algorithm’s basic operation

• Determine worst, average, and best case for input of size n

• Set up summation for C(n) reflecting algorithm’s loop structure

• Simplify summation using standard formulas (see Appendix A)

Page 19: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Useful Formulas in Appendix A

...)(

)(2

)1(...21

)(

1

1

2

1

111

11

kn

i

k

n

i

n

ii

n

ii

n

iii

n

ii

n

ii

ni

nnn

ni

baba

acca

Make sure to be familiar with them

Prove by Induction

Page 20: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Time Efficiency of Recursive Algorithms

Steps in mathematical analysis of recursive algorithms:

Decide on parameter n indicating input size

Identify algorithm’s basic operation

Determine worst, average, and best case for input of size n

Set up a recurrence relation and initial condition(s) for C(n)-the number of times the basic operation will be executed for an input of size n (alternatively count recursive calls).

Solve the recurrence to obtain a closed form or estimate the order of magnitude of the solution (see Appendix B)

Page 21: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Important Recurrence Types:

One (constant) operation reduces problem size by one.T(n) = T(n-1) + c T(1) = dSolution: T(n) = (n-1)c + d linear

A pass through input reduces problem size by one.T(n) = T(n-1) + cn T(1) = dSolution: T(n) = [n(n+1)/2 – 1] c + d quadratic

One (constant) operation reduces problem size by half. T(n) = T(n/2) + c T(1) = dSolution: T(n) = c lg n + d logarithmic

A pass through input reduces problem size by half.T(n) = 2T(n/2) + cn T(1) = dSolution: T(n) = cn lg n + d n n log n

Page 22: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 1: Brute-Force

Bubble sort, sequential search, brute-force string matching, closest pair and convex hull, exhaustive search for TSP, knapsack, and assignment problem

90

?

?

? ?

?

?

173429896845

17903429896845

17349029896845

17342990896845

17342990688945

17342990684589

Page 23: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 2: Divide and Conquer

subproblem 2 of size n/2

subproblem 1 of size n/2

a solution to subproblem 1

a solution tothe original problem

a solution to subproblem 2

a problem of size n

Page 24: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Mergesort

8 3 2 9 7 1 5 4

8 3 2 9 7 1 5 4

8 3 2 9 7 1 5 4

8 3 2 9 7 1 5 4

3 8 2 9 1 7 4 5

2 3 8 9 1 4 5 7

1 2 3 4 5 7 8 9

Recurrence

C(n)=2C(n/2)+Cmerge(n) for n>1, C(1)=0

Basic operation is a comparison and we have

Cmerge(n)=n-1

Using the Master Theorem, the complexity of mergesort algorithm is

Θ(n log n)

It is more efficient than SelectionSort, BubbleSort and InsertionSort, where the time complexity is Θ(n2)

Page 25: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Quicksort

Basic operation: key comparison

Best case: split in the middle — Θ( n log n)

Worst case: sorted array! — Θ( n2)

Average case: random arrays — Θ( n log n)

p

A[i] ≤ p A[i] p

Page 26: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Binary Search

T(n)=T(n/2)+1 for n>1, T(1)=1

T(n) --- Θ(logn)

Search for K=70

rmliter

rmliter

rmliter

value

index

,3#

2#

1#

9893858174705542393127143

1211109876543210

Page 27: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Other Divide-and-Conquer Applications

Binary-tree traversal

Large integer multiplication

Strassen’s Matrix Multiplication

Closest pair through divide and conquer

quickhull

Page 28: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 3: Decrease and Conquer

problem of size n

subproblemof size n-1

solution tothe subproblem

solution tothe original problem

problem of size n

subproblemof size n/2

solution tothe subproblem

solution tothe original problem

Page 29: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Insertion Sort

We have talked about this algorithm before (See Lecture 6)

This is a typical decrease-by-one technique

Assume A[0..i-1] has been sorted, how to achieve the sorted A[0..i]?

Solution: insert the last element A[i] to the right position

Algorithm complexity:

A[0] A[j] A[i-1] A[n-1]. . . . . .. . .smaller than or equal to A[i]

A[j+1] A[i]greater than A[i]

)()(),()( 2 nnTnnT bestworst

Page 30: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

DFS Traversal: DFS Forest and Stack

a c

h

g

e

f

b d

8,76,1

7,85,64,2

3,41,3

2,5

ca

deb

gf

h

Stack push/pop

a b

e f

c d

g h

Page 31: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Topological Sorting

Problem: find a total order consistent with a partial order

DFS-based algorithm:DFS traversal: note the order with which the vertices are popped off stack (dead end)Reverse order solves topological sortingBack edges encountered?→ NOT a DAG!

Note: problem is solvable iff graph is dag

C1

C2 C5

C4

C3

Page 32: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 4: Transform-and Conquer

Solve problem by transforming into:

a more convenient instance of the same problem (instance simplification)

• presorting• Gaussian elimination

a different representation of the same instance (representation change)

• balanced search trees• heaps and heapsort• polynomial evaluation by Horner’s rule• Fast Fourier Transform

a different problem altogether (problem reduction)• reductions to graph problems• linear programming

Page 33: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Balanced Trees: AVL trees

For every node, difference in height between left and right subtree is at most 1

5 20

124 7

2

(a)

10

1

8

10

1

0

-1

0

0

5 20

4 7

2

(b)

10

2

8

00

1

0

-1

0

An AVL tree Not an AVL tree

The number shown above the node is its balance factor, the difference between the heights of the node’s left and right subtrees.

Page 34: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Maintain the Balance of An AVL Tree

Insert a new node to a AVL binary search tree may make it unbalanced. The new node is always inserted as a leaf

We transform it into a balanced one by rotation operations

A rotation in an AVL tree is a local transformation of its subtree rooted at a node whose balance factor has become either +2 or -2 because of the insertion of a new node

If there are several such nodes, we rotate the tree rooted at the unbalanced node that is closest to the newly inserted leaf

There are four types of rotations and two of them are mirror images of the other two

Page 35: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Heap and Heapsort

Definition:

A heap is a binary tree with the following conditions:

(1) it is essentially complete: all its levels are full except possibly the last level, where only some rightmost leaves may be missing

(2) The key at each node is ≥ keys at its children

Page 36: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Heap Implementation

A heap can be implemented as an array H[1..n] by recording its elements in the top-down left-to-right fashion.

Leave H[0] empty

First elements are parental node keys and the last elements are leaf keys

i-th element’s children are located in positions 2i and 2i+110

5

4 2

7

1 10 5 7 4 2 1

0 1 2 3 4 5 6Index

value

2/n 2/n

Page 37: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Heap Construction -- Bottom-up Approach

7

2

9

6 5 8

>

2

9

6 5

8

7

2

9

6 5

8

7

2

9

6 5

8

7

>

9

2

6 5

8

7

9

6

2 5

8

7

>

)(

))1(log(22)(2)(2)( 2

1

0

1

0 keyslevel

n

nnihihnTh

i

ih

i iworst

Page 38: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Insert a new key 10 into the heap with 6 keys [9 6 8 2 5 7]

9

6

2 5

8

7 10

9

6

2 5

10

7 8

> >

10

6

2 5

9

7 8

Heap Construction – Top-down Approach

)log(log1

nnin

i

Page 39: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Heapsort

Two Stage algorithm to sort a list of n keys

First, heap construction

Second, sequential root deletion (the largest is deleted first, and the second largest one is deleted second, etc …)

Therefore, the time efficiency of heapsort is in the worst case, which is the same as mergesort

Note: Average case efficiency is also

)(n

)log(log2)(1

12 nninC

n

i

)log( nn

)log( nn

Page 40: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 5: Space-Time Tradeoffs

For many problems some extra space really pays off:

extra space in tables (breathing room?)• hashing• non comparison-based sorting

input enhancement• indexing schemes (eg, B-trees)• auxiliary tables (shift tables for pattern matching)

tables of information that do all the work• dynamic programming

Page 41: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Horspool’s Algorithm

Shift Table for the pattern “BARBER”

otherwise character, last its to pattern the of characters

1- first the among rightmost the from distance the

pattern the of characters 1- first the among not is if

, length spattern' the

mc

mc

m

ct )(

c A B C D E F … R … Z _

t(c) 4 2 6 6 1 6 6 3 6 6 6

Page 42: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Example

See Section 7.2 for the pseudocode of the shift-table construction algorithm and Horspool’s algorithm

Example: find the pattern BARBER from the following text

J I M _ S A W _ M E _ I N _ A _ B A R B E R S H O

B A R B E R

B A R B E R

B A R B E R

B A R B E R

B A R B E R

B A R B E R

Page 43: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Open Hashing

Store student record into 10 bucket using hashing function

h(SSN)=SSN mod 10

xxx-xx-6453

xxx-xx-2038

xxx-xx-0913

xxx-xx-4382

xxx-xx-9084

xxx-xx-2498

0 1 2 3 4 5 6 7 8 9

6453

0913

4382 9084

2038

2498

Page 44: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Closed Hashing (Linear Probing)

xxx-xx-6453

xxx-xx-2038

xxx-xx-0913

xxx-xx-4382

xxx-xx-9084

xxx-xx-2498

4382 6453 0913 9084 2038 2498

0 1 2 3 4 5 6 7 8 9

Page 45: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 6: Dynamic Programming

Dynamic Programming is a general algorithm design technique

Invented by American mathematician Richard Bellman in the 1950s to solve optimization problems

“Programming” here means “planning”

Main idea: • solve several smaller (overlapping) subproblems• record solutions in a table so that each subproblem is only

solved once• final state of the table will be (or contain) solution

Page 46: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Warshall’s Algorithm: Transitive Closure

• Computes the transitive closure of a relationComputes the transitive closure of a relation

• (Alternatively: all paths in a directed graph)(Alternatively: all paths in a directed graph)

• Example of transitive closure:Example of transitive closure:

3

42

1

0 0 1 01 0 0 10 0 0 00 1 0 0

0 0 1 01 1 11 1 10 0 0 011 1 1 11 1

3

42

1

Page 47: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Warshall’s Algorithm

In the kth stage determine if a path exists between two vertices i, j using just vertices among 1,…,k

R(k-1)[i,j] (path using just 1 ,…,k-1) R(k)[i,j] = or

(R(k-1)[i,k] and R(k-1)[k,j]) (path from i to k and from k to i using just 1 ,…,k-1)

i

j

k

kth stage

{

Page 48: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Floyd’s Algorithm: All pairs shortest paths

In a weighted graph, find shortest paths between every pair of vertices

Same idea: construct solution through series of matrices D(0), D(1), … using an initial subset of the vertices as intermediaries.

2

43

12

3 6

7

1064

1073

022

301

4321

091664

10773

65022

431001

4321

Page 49: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Similar to Warshall’s Algorithm

in is equal to the length of shortest path among all paths from the ith vertex to jth vertex with each intermediate vertex, if any, numbered not higher than k

)(kijd )(kD

v i v j

v k

di k

(k-1)d

k j

(k-1)

di j

(k-1)

ijijk

kjk

ikk

ijk

ij wdkdddd )0()1()1()1()( ,1},min{ for

Page 50: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategy 7: Greedy algorithms

The greedy approach constructs a solution through a sequence of steps until a complete solution is reached, On each step, the choice made must be

• Feasible: Satisfy the problem’s constraints• locally optimal: the best choice• Irrevocable: Once made, it cannot be changed later

Optimal solutions:• change making• Minimum Spanning Tree (MST)• Single-source shortest paths • simple scheduling problems• Huffman codes

Approximations:• Traveling Salesman Problem (TSP)• Knapsack problem• other combinatorial optimization problems

Page 51: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Prim’s MST algorithm

Start with tree consisting of one vertex

“grow” tree one vertex/edge at a time to produce MST• Construct a series of expanding subtrees T1, T2, …

at each stage construct Ti+1 from Ti: add minimum weight edge connecting a vertex in tree (Ti) to one not yet in tree

• choose from “fringe” edges • (this is the “greedy” step!)

algorithm stops when all vertices are included

Page 52: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Step 4:

b

dfa

c

3

1

64 4

5 5

e

26 8

Add the minimum-weight fringe edge f(b,4) into T

Remaining vertices: d(f,5), e(f,2)

Page 53: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Another Greedy algorithm for MST: Kruskal

Start with empty forest of trees

“grow” MST one edge at a time• intermediate stages usually have forest of trees (not connected)

at each stage add minimum weight edge among those not yet used that does not create a cycle

• edges are initially sorted by increasing weight• at each stage the edge may:

– expand an existing tree– combine two existing trees into a single tree– create a new tree

• need efficient way of detecting/avoiding cycles

algorithm stops when all vertices are included

Page 54: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Step 5: add the next edge (without getting a cycle)

b

dfa

c

3

1

64 4

5 5

e

26 8

bc ef ab bf cf af df ae cd de

1 2 3 4 4 5 5 6 6 8

Page 55: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Single-Source Shortest Path: Dijkstra’s Algorithm

Similar to Prim’s MST algorithm, with the following difference:• Start with tree consisting of one vertex• “grow” tree one vertex/edge at a time to produce spanning tree

– Construct a series of expanding subtrees T1, T2, …• Keep track of shortest path from source to each of the vertices

in Ti

• at each stage construct Ti+1 from Ti: add minimum weight edge connecting a vertex in tree (Ti) to one not yet in tree– choose from “fringe” edges – (this is the “greedy” step!)

• algorithm stops when all vertices are included

edge (v,w) with lowest d(s,v) + d(v,w)

Page 56: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Step 3:

Tree vertices: a(-,0), b(a,3), d(b,5)

Remaining vertices: c(b,3+4), e (-,∞)e(d,5+4)

b

eda

c

3

4

62 5

7 4

Page 57: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

),,(

*);*,(

)*,(

*oadjacent t is that in ex every vert

*}{

elementpriority minimum the//Delete)(*

10

with ofpriority //update),,(;0

)

;

in ex every vert

empty toqueuepriority vertex ze//initiali)(

),(

*

*

u

uuu

uu

T

TT

T

sss

vv

duQDecrease

upuuwdd

duuwd

uV-Vu

uVV

QDeleteMinu

Vi

V

dsdsQDecreased

Q,v,dInsert

pd

Vv

QInitialize

sGDijkstra

if

do for

do to for

(

null

do for

ALGORITHM

v

Page 58: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Huffman Coding Algorithm

Step 1: Initialize n one node trees and label them with the characters of the alphabet. Record the frequency of each character in its tree’s root to indicate the tree’s weight

Step 2: Repeat the following operation until a single tree is obtained. Find two trees with the smallest weights. Make them the left and right subtrees of a new tree and record the sum of their weights in the root of the new tree as its weight

Example: alphabet {A, B, C, D, _} with frequency

character A B C D _

probability 0.35 0.1 0.2 0.2 0.15

Page 59: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

0.25

0.1

B

0.15

_

0.2

C

0.2

D

0.35

A

0.2

C

0.2

D

0.35

A

0.1

B

0.15

_

0.4

0.2

C

0.2

D

0.6

0.25

0.1

B

0.15

_

0.6

1.0

0 1

0.4

0.2

C

0.2

D0.25

0.1

B

0.15

_

0 1 0

0

1

1

0.25

0.1

B

0.15

_

0.35

A

0.4

0.2

C

0.2

D

0.35

A

0.35

A

Page 60: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

0.25

0.1

B

0.15

_

0.2

C

0.2

D

0.35

A

0.2

C

0.2

D

0.35

A

0.1

B

0.15

_

0.4

0.2

C

0.2

D

0.6

0.25

0.1

B

0.15

_

0.6

1.0

0 1

0.4

0.2

C

0.2

D0.25

0.1

B

0.15

_

0 1 0

0

1

1

0.25

0.1

B

0.15

_

0.35

A

0.4

0.2

C

0.2

D

0.35

A

0.35

A

Page 61: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

The Huffman Code is

Therefore,

‘DAD’ is encoded as 011101 and

100110110111010 is decoded as BAD_AD

character A B C D _

probability 0.35 0.1 0.2 0.2 0.15

codeword 11 100 00 01 101

Page 62: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Limitations of Algorithm Power: Information-Theoretic Arguments

The number of leaves: n!

The lower bound: log n! n log2n. Is this tight?

a < b

a < c b < cyes

yes no

noyesno

b < c b < ayes no

b < aa < cyes no

a < b < c a < c < b c < a < b b < a < c b < c < a c < b < a

no yes

abc

abc abc

cbabaccbaabc

Selection Sort

Page 63: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

P, NP, and NP-Complete Problems

As we discussed, problems that can be solved in polynomial time are usually called tractable and the problems that cannot be solved in polynomial time are called intractable, now

Is there a polynomial-time algorithm that solves the problem?

P: the class of decision problems that are solvable in O(p(n)), where p(n) is a polynomial on n

NP: the class of decision problems that are solvable in polynomial time on a nondeterministic machine

A decision problem D is NP-complete (NPC) iff1. D ∈ NP2. every problem in NP is polynomial-time reducible to D

Page 64: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Design Strategies for NP-hard Problems

exhaustive search (brute force)• useful only for small instances

backtracking• eliminates some cases from consideration

branch-and-bound• further cuts down on the search• fast solutions for most instances • worst case is still exponential

Approximation algorithms• greedy strategy (accuracy ratio and performance ratio)

Page 65: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Branch and Bound

An enhancement of backtracking. Applicable to optimization problems

Uses a lower bound for the value of the objective function for each node (partial solution) so as to:

• guide the search through state-space• rule out certain branches as “unpromising”

Page 66: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Select one element in each row of the cost matrix C so that: • no two selected elements are in the same column; and • the sum is minimized

For example:Job 1 Job 2 Job 3 Job 4

Person a 9 2 7 8Person b 6 4 3 7Person c 5 8 1 8Person d 7 6 9 4

Lower bound: Any solution to this problem will have total cost of at least:

Example: The assignment problem

Page 67: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Assignment problem: lower bounds

Page 68: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

State-space levels 0, 1, 2

Page 69: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Complete state-space

Page 70: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Traveling salesman example:

Page 71: Today’s Agenda --- the Last Class Various administrative issues on the final exam Course evaluation Review for the final exam

Thank you!

Good luck in your final exam!