Chapter 6
Dynamic Programming
We began our study of algorithmic techniques with greedy algorithms, which in some sense form the most natural approach to algorithm design. Faced with a new computational problem, weve seen that its not hard to propose multi

1 Algorithm Design Jon Kleinberg and Eva Tardos Table of Contents 1 Introduction: Some Representative Problems 1.1 A First Problem: Stable Matching 1.2 Five Representative Problems 1.3 Solved Exercises 1.4 Excercises 1.5 Notes and Further Reading 2 Basics

Shortest paths in graphs with negative edge weights
Let G = (V, E ) be a directed graph with edge weights cuv for each edge (u, v ) E . Let |V | = n and |E | = m. Cost c(p) of a path p = (v0 , v1 , . . . , vk ) is
k i=1 cvi1 ,vi .
Shortest path from s t

Dynamic Programming
Optimal substructure property. Characterizing the solution. Recurrence. Bottom up computation.
1
Sequence alignment
Let X = x1 , x2 , . . . , xm and Y alphabet . = y1 , y2 , . . . , yn be two sequences of characters from a nite
Cons

Chapter 13
Randomized Algorithms
The idea that a process can be random is not a modern one; we can trace the notion far back into the history of human thought and certainly see its reections in gambling and the insurance business, each of which reach into

Chapter 5 Divide and Conquer
Divide-and-conquer refers to a class of algorithmic techniques in which one breaks the input into several parts, solves the problem in each part recursively, and then combines the solutions to these sub-problems into an overal

Chapter 1
Introduction: Some Representative Problems
1.1 A First Problem: Stable Matching
As an opening topic, we look at an algorithmic problem that nicely illustrates many of the themes we will be emphasizing. It is motivated by some very natural and pr

All Pairs Shortest Paths
Let G = (V, E ) be a directed graph with edge weights cuv for each edge (u, v ) E . Let V = cfw_1, 2, , n and |E | = m. Cost c(p) of a path p = (v0 , v1 , . . . , vk ) is
k i=1 cvi1 ,vi .
Shortest path from s to t is a path with