CSE 291, Communication Complexity, Winter 2019

Communication complexity is a computational model which captures communication bottlenecks in algorithm design. The model consists of two or more players, each having their own input. The goal is to accomplish some distributed task based on the inputs, while minimizing communication. This model captures many real-life scenarios, such as time-space tradeoffs for data structures, streaming algorithms, sketching algorithms, sub-linear time algorithms, and many more. This class will cover both the theory of communication complexity, as well as some of the applications of it.

Information:

Topics:

Evaluation:

4 homework sets and a final project, each worth 20%. The homework sets are standard problem solving. The final project is to read a relevant paper and write a short survey (6-10 pages) about it. Both the homework and the final project can be done individually or in pairs.

Textbooks:

There are several good textbooks and surveys that we will partially follow: The following lecture notes from similar classes might also be useful:

Lecture notes:

I will prepare lecture notes and post them here when available. However, their main goal is to help me prepare for class, so they might be concise at points.
  1. Deterministic communication
  2. Non-deterministic communication
  3. Randomized communication
  4. Unbounded error communication
  5. Multi-party protocols

Homework:

  1. Homework 1, due January 28, 2019
  2. Homework 2, due February 11, 2019
  3. Homework 3, due March 4, 2019
  4. Homework 4, due March 18, 2019