15-451 Algorithms, Fall 2012
Homework # 2
due: Mon-Wed, September 24-26, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Saturday, September 22 at 11:59pm your group should sign up for
Lecture 2
Selection (deterministic &
randomized): nding the median in
linear time
2.1
Overview
Given an unsorted array, how quickly can one nd the median element? Can one do it more quickly
than by sorting? This was an open question for some time, solved
15-451 Algorithms, Fall 2012
Homework # 5
due: Tuesday November 6, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each sheet. You will be handing each problem into a separate box,
and w
15-451 Algorithms, Fall 2012
Homework # 3
Due: October 9, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each page. You will be handing each problem into a separate box in
lecture, and
15-451 Algorithms, Fall 2012
Homework # 1
Due: September 11, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each page. You will be handing each problem into a separate box in
lecture, a
15-451 Algorithms, Fall 2012
Homework # 6
Due: Sun-Wed, Nov 18-21, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Saturday, Nov 17 11:59pm your group should sign up for a 1-hour time
s
15-451 Algorithms, Fall 2012
Homework # 4
Due: Wed-Fri, October 24-26, 2012
Ground rules:
This is an oral presentation assignment. You should work in groups of three. At some
point before Monday, October 22 at 11:59pm your group should sign up for a 1-ho
15-451 Algorithms, Fall 2012
Homework # 7
due: Thursday December 6, 2012
Please hand in each problem on a separate sheet and put your name and recitation (time
or letter) at the top of each sheet. You will be handing each problem into a separate box,
and
Lecture 4
Selection (deterministic &
randomized): nding the median in
linear time
4.1
Overview
Given an unsorted array, how quickly can one nd the median element? Can one do it more quickly
than by sorting? This was solved armatively in 1972 by (Manuel) B
Lecture 3
Probabilistic Analysis and
Randomized Quicksort
3.1
Overview
In this lecture we begin by introducing randomized (probabilistic) algorithms and the notion of
worst-case expected time bounds. We make this concrete with a discussion of a randomized
Lecture 5
Concrete models and tight
upper/lower bounds
5.1
Overview
In this lecture, we will examine some simple, concrete models of computation, each with a precise
denition of what counts as a step, and try to get tight upper and lower bounds for a numb
Lecture 11
Dynamic Programming
11.1
Overview
Dynamic Programming is a powerful technique that allows one to solve many dierent types of
problems in time O(n2 ) or O(n3 ) for which a naive approach would take exponential time. In this
lecture, we discuss t
Lecture 7
Universal and Perfect Hashing
7.1
Overview
Hashing is a great practical tool, with an interesting and subtle theory too. In addition to its use as
a dictionary data structure, hashing also comes up in many dierent areas, including cryptography
a
Lecture 5
Amortized Analysis
5.1
Overview
In this lecture we discuss a useful form of analysis, called amortized analysis, for problems in which
one must perform a series of operations, and our goal is to analyze the time per operation. The
motivation for
Lecture 11
Dynamic Programming II
11.1
Overview
In this lecture we continue our discussion of dynamic programming, focusing on using it for a
variety of path-nding problems in graphs. Topics in this lecture include:
The Bellman-Ford algorithm for single-
Lecture 12
Network Flow I
12.1
Overview
In these next two lectures we are going to talk about an important algorithmic problem called the
Network Flow Problem. Network ow is important because it can be used to express a wide variety
of dierent kinds of pr
15-451/651: Design & Analysis of Algorithms
Lecture #10 (draft!)
September 26, 2013
Dynamic Programming is a powerful technique that allows one to solve many dierent types of
problems in time O(n2 ) or O(n3 ) for which a naive approach would take exponent
15-451/651: Design & Analysis of Algorithms
Lecture #14
October 10, 2013
last changed: October 21, 2013
Todays highlights:
1
Flows and preows
The Push-Relabel Algorithm
An improved algorithm using the rst-in-rst-out policy
Minimum-Cost Matchings and Min-C
15-451/651: Design & Analysis of Algorithms
Lecture #13
October 8, 2013
last changed: October 8, 2013
The Ford-Fulkerson algorithm discussed in the last class takes time O(F (n + m), where F is the
value of the maximum ow, when all capacities are integral
15-451/651: Design & Analysis of Algorithms
Lecture #9
September 24, 2013
Preview of coming attractions:
An introduction to the data streaming model, and its concerns.
An algorithm for heavy hitters in the arrivals-only model.
An algorithm for heavy hi
15-451/651: Design & Analysis of Algorithms
Lecture #4 (draft!)
September 5, 2013
Todays menu:
Randomized Algorithms that may make mistakes (though rarely).
The Minimum Cut problem.
A simple, fast randomized algorithm for minimum cut.
1
Monte Carlo ver
Lecture 3
Concrete models and tight
upper/lower bounds
3.1
Overview
In this lecture, we will examine some simple, concrete models of computation, each with a precise
denition of what counts as a step, and try to get tight upper and lower bounds for a numb
Appendix A
Asymptotic Analysis and Recurrences
A.1
Overview
We discuss the notion of asymptotic analysis and introduce O, , , and o notation. We then turn
to the topic of recurrences, discussing several methods for solving them. Recurrences will come up
i
Lecture 6
Union-Find
6.1
Overview
In this lecture we describe the union-nd problem. This is a problem that captures a key task one
needs to solve in order to eciently implement Kruskals minimum-spanning-tree algorithm. We
then give two data structures for
Lecture 1
Introduction to Algorithms
1.1
Overview
The purpose of this lecture is to give a brief overview of the topic of Algorithms and the kind of
thinking it involves: why we focus on the subjects that we do, and why we emphasize proving
guarantees. We
Game Theory
15-451
- Zero-sum games
- General-sum games
10/17/13
Game Theory
(and its connections to Algorithm
Analysis and Computer Science)
Plan for Today
2-Player Zero-Sum Games (matrix games)
Minimax optimal strategies
Connection to randomized algo