Chapter 4 Greedy
Algorithms
Kyle Diederich
The University of Iowa
Section 4.7: Clustering
Clustering
Clustering. Given a set of objects labeled 1, , , classify into coherent groups.
Photos, documents, micro-organisms
Distance function. Numeric value speci
Chapter 7 Network
Flow
Kyle Diederich
The University of Iowa
Maximum Flow and Minimum Cut
Max flow and min cut.
Two very rich algorithmic problems.
Cornerstone problems in combinatorial optimization.
Beautiful mathematical duality.
Nontrivial applications
Chapter 4 Greedy
Algorithms
Kyle Diederich
The University of Iowa
Section 4.1: Interval Scheduling
Interval Scheduling
Interval scheduling.
Job starts at and finishes at .
Two jobs compatible if they don't overlap.
Goal: find maximum subset of mutually c
Chapter 5 Divide and
Conquer
Kyle Diederich
The University of Iowa
Divide-and-Conquer
Divide-and-conquer.
Break up problem into several parts.
Solve each part recursively.
Combine solutions to sub-problems into overall solution.
Most common usage.
Break u
Chapter 1 Stable Matching
Kyle Diederich
The University of Iowa
Section 1.1: Stable Matching
Matching Residents to Hospitals
Goal. Given a set of preferences among hospitals and medical school students,
design a self-reinforcing admissions process.
Unstab
Chapter 2 Basics of
Algorithm Analysis
Kyle Diederich
The University of Iowa
Section 2.1: Computational Tractability
Polynomial-Time
Brute force. For many non-trivial problems, there is a natural brute force
search algorithm that checks every possible so
Chapter 6 Dynamic
Programming
Kyle Diederich
The University of Iowa
Section 6.7: Sequence Alignment
in Linear Space
Sequence Alignment: Linear Space
Q. Can we avoid using quadratic space?
Easy. Optimal value in ( + ) space and () time.
Compute (,) from (
Chapter 6 Dynamic
Programming
Kyle Diederich
The University of Iowa
Algorithmic Paradigms
Greedy. Build up a solution incrementally, myopically optimizing some local
criterion.
Divide-and-conquer. Break up a problem into two sub-problems, solve each subpr