600.363 / 600.463
Problem 1.
Homework #2: Solutions
September 25, 2015
Jug Matching (33 points)
Suppose that you are given n red and n blue water jugs, all of dierent shapes and sizes.
All red jugs hold dierent amounts of water, as do all the blue ones. M
600.363 / 600.463
Problem 1.
Homework #1: Solutions
September 9, 2015
Asymptotic Notation (32 points)
For each of the following statements explain if it true or false and prove your answer. The
base of log is 2 unless otherwise specied, and ln is loge .
(
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #3
Fall 2015
Due: September 22, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discu
600.363 / 600.463
Problem 1.
Homework #10: Solutions
December 12, 2015
Integer Linear Programming (33 points)
In class we talked about linear programming, and the fact that it can be solved in polynomial
time. Slightly more formally, we dened the feasibil
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #3
Fall 2015
Due: September 22, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discu
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Matroids and Greedy Algorithms
16.1
Lecturer: Michael Dinitz
Date: 10/22/15
Introduction
We talked a lot the last lecture about greedy algorithms. While both Prim and Kruskal are greedy,
we
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Sorting lower bound and Linear-time sorting
5.1
Lecturer: Michael Dinitz
Date: 9/10/15
Introduction
You should all know a few ways of sorting in O(n log n) time, most notably mergesort and h
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Probabilistic Analysis, randomized quicksort
3.1
Lecturer: Michael Dinitz
Date: 9/3/15
Introduction
As we discussed the rst lecture, one issue with trying to do an average-case analysis of a
15-451/651: Design & Analysis of Algorithms
Lecture #20
October 31, 2013
last changed: October 31, 2013
In the last lecture, we dened the class NP and the notion of NP-completeness, and proved
that the Circuit-SAT problem is NP-complete. In this lecture w
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: NP-Completeness I
21.1
Lecturer: Michael Dinitz
Date: 11/10/15
Introduction
Denition 21.1.1 We say that an algorithm runs in Polynomial time if its running time is O(nc ),
where n is the siz
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Minimum Spanning Trees
15.1
Lecturer: Michael Dinitz
Date: 10/20/15
Introduction
Today were talking about Minimum Spanning Trees (MSTs). For this problem we are given an
undirected, connecte
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Intro to Learning Theory
25.1
Lecturer: Michael Dinitz
Date: 12/1/15
Introduction
Today were going to talk about machine learning, but from an algorithms point of view. Machine learning is a
600.363/463 Introduction to Algorithms / Algorithms I
Topic: Union-Find
7.1
Lecturer: Zeyu Zhang
Date: 9/17/15
Introduction and Problem Denition
In this lecture well talk about the Union-Find problem, which is also sometimes called the disjoint
sets probl
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Algorithms and Game Theory
25.1
Lecturer: Michael Dinitz
Date: 12/3/15
Introduction
Today were going to spend some time discussing game theory and algorithms. There are a lot
of dierent ways
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Basic Graph Algorithms
13.1
Lecturer: Michael Dinitz
Date: 10/8/15
Introduction
Graphs are an incredibly important abstraction in computer science, so there has been a huge
amount of work on
Lecture 17
Linear Programming I
17.1
Overview
In this lecture we describe a very general problem called linear programming that can be used to
express a wide variety of dierent kinds of problems. We can use algorithms for linear programming to solve the m
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Shortest Paths
14.1
Lecturer: Michael Dinitz
Date: 10/13/15
Introduction
Today were going to talk about algorithms for computing shortest paths in graphs. If all edges
have length 1, we saw
600.363/463 Introduction to Algorithms / Algorithms I
Topic: Splay Trees
8.1
Lecturer: Michael Dinitz
Date: 9/22/15
Quick announcements
Grading: sorry were behind already. Well try to catch up quick. HW1 grades should be
released very soon. We are trying
Lecture 10
Universal and Perfect Hashing
10.1
Overview
Our previous data structures treated keys as abstract objects that could only be examined via
comparisons. This lecture we will look at hashing, which uses the fact that keys are often objects
you can
Midterm #1
Introduction to Algorithms/Algorithms 1
600.363/463
Tuesday, September 29th, 1:30-2:45pm
Name:
Class (circle one): 363 463
Ethics Statement
I agree to complete this exam without unauthorized assistance from any person,
materials, or device.
Sig
Midterm #2
Introduction to Algorithms/Algorithms 1
600.363/463
Tuesday, November 3rd, 1:30-2:45pm
Name:
Class (circle one): 363 463
Ethics Statement
I agree to complete this exam without unauthorized assistance from any person,
materials, or device.
Signa
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Linear time selection/median
4.1
Lecturer: Michael Dinitz
Date: 9/8/15
Announcements
1. First homework due right now.
2. Second homework released later today, due in a week.
4.2
Introduction
600.363 Introduction to Algorithms / 600.463 Algorithms I
Topic: Introduction, Karatsuba/Strassen
1.1
Lecturer: Michael Dinitz
Date: 8/27/15
Administrative Stu
Welcome to Algorithms! In this class you will learn the basics of the theory of algorithms. Mos
600.363 / 600.463
Problem 1.
Homework #4: Solutions
October 14, 2015
Hashing (50 points)
We saw in class that universal hashing lets us give guarantees that hold for arbitrary
(i.e. worst case) sets S, in expectation over our random choice of hash functio
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #10
Fall 2015
Due: December 1, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discus
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #9
Fall 2015
Due: November 17, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discus
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #8
Fall 2015
Due: November 10, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discus
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #7
Fall 2015
Due: October 27, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discuss
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #4
Fall 2015
Due: October 20, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discuss
600.363 Introduction to Algorithms / 600.463 Algorithms I
Homework #4
Fall 2015
Due: October 13, 2015, 1:30pm
Remember: you may work in groups of up to three people, but must write up your solution entirely
on your own. Collaboration is limited to discuss