The area of communication complexity studies measures communication as computational resource—a mathematical abstraction that encompasses all the problems with communication bottleneck. The basic model of communication complexity deals with two parties, namely Alice and Bob. Their task is to compute a function on input which is distributed among them. For doing so, they communicate between each other adhering to a set of rules which they agree upon a priori, and what we measure is the number of bits they need to communicate in order to compute the function. This problem, and many of its variants, appear frequently in practice in many guises and in different levels of abstractions—in network protocols where the goal is to minimize the communication (and thereby error in communication) between two network hubs, in VLSI circuit design where the goal is to minimize energy used and to pack efficiently by decreasing the amount of wires required, also in data-structure, circuit complexity, auctions and a plethora of other interesting areas of study.
In this course, we will discuss the classical results in communication complexity and also cover the recent developments and important open problems. We will discuss different models of communication complexity—deterministic, nondeterministic, asymmetric, randomized, and multiparty—and their inter-relationship. We will mostly be interested in showing combinatorial, algebraic and information theoretic techniques for showing communication complexity lower bounds, i.e., for showing that certain functions cannot be computed without a lot of communication no matter how clever the communication algorithm is.