9.4 KiB
| title | chunk | source | category | tags | date_saved | instance |
|---|---|---|---|---|---|---|
| Communication complexity | 1/8 | https://en.wikipedia.org/wiki/Communication_complexity | reference | science, encyclopedia | 2026-05-05T14:40:16.151030+00:00 | kb-cron |
In theoretical computer science, communication complexity studies the amount of communication required to solve a problem when the input to the problem is distributed among two or more parties. The study of communication complexity was first introduced by Andrew Yao in 1979, while studying the problem of computation distributed among several machines. The problem is usually stated as follows: two parties (traditionally called Alice and Bob) each receive a (potentially different)
n
{\displaystyle n}
-bit string
x
{\displaystyle x}
and
y
{\displaystyle y}
. The goal is for Alice to compute the value of a certain function,
f
(
x
,
y
)
{\displaystyle f(x,y)}
, that depends on both
x
{\displaystyle x}
and
y
{\displaystyle y}
, with the least amount of communication between them. While Alice and Bob can always succeed by having Bob send his whole
n
{\displaystyle n}
-bit string to Alice (who then computes the function
f
{\displaystyle f}
), the idea here is to find clever ways of calculating
f
{\displaystyle f}
with fewer than
n
{\displaystyle n}
bits of communication. Note that, unlike in computational complexity theory, communication complexity is not concerned with the amount of computation performed by Alice or Bob, or the size of the memory used, as we generally assume nothing about the computational power of either Alice or Bob. This abstract problem with two parties (called two-party communication complexity), and its general form with more than two parties, is relevant in many contexts. In VLSI circuit design, for example, one seeks to minimize energy used by decreasing the amount of electric signals passed between the different components during a distributed computation. The problem is also relevant in the study of data structures and in the optimization of computer networks. For surveys of the field, see the textbooks by Rao & Yehudayoff (2020) and Kushilevitz & Nisan (2006).
== Formal definition == Let
f
:
X
×
Y
→
Z
{\displaystyle f:X\times Y\rightarrow Z}
where we assume in the typical case that
X
=
Y
=
{
0
,
1
}
n
{\displaystyle X=Y=\{0,1\}^{n}}
and
Z
=
{
0
,
1
}
{\displaystyle Z=\{0,1\}}
. Alice holds an
n
{\displaystyle n}
-bit string
x
∈
X
{\displaystyle x\in X}
while Bob holds an
n
{\displaystyle n}
-bit string
y
∈
Y
{\displaystyle y\in Y}
. By communicating to each other one bit at a time (adopting some communication protocol that is agreed upon in advance), Alice and Bob wish to compute the value of
f
(
x
,
y
)
{\displaystyle f(x,y)}
such that at least one party knows the value at the end of the communication. At this point the answer can be communicated back so that at the cost of one extra bit, both parties will know the answer. The worst case communication complexity of this communication problem of computing
f
{\displaystyle f}
, denoted as
D
(
f
)
{\displaystyle D(f)}
, is then defined to be
D
(
f
)
=
{\displaystyle D(f)=}
minimum number of bits exchanged between Alice and Bob in the worst case. As observed above, for any function
f
:
{
0
,
1
}
n
×
{
0
,
1
}
n
→
{
0
,
1
}
{\displaystyle f:\{0,1\}^{n}\times \{0,1\}^{n}\rightarrow \{0,1\}}
, we have
D
(
f
)
≤
n
{\displaystyle D(f)\leq n}
. Using the above definition, it is useful to think of the function
f
{\displaystyle f}
as a matrix
A
{\displaystyle A}
(called the input matrix or communication matrix) where the rows are indexed by
x
∈
X
{\displaystyle x\in X}
and columns by
y
∈
Y
{\displaystyle y\in Y}
. The entries of the matrix are
A
x
,
y
=
f
(
x
,
y
)
{\displaystyle A_{x,y}=f(x,y)}
. Initially both Alice and Bob have a copy of the entire matrix
A
{\displaystyle A}
(assuming the function
f
{\displaystyle f}
is known to both parties). Then the problem of computing the function value can be rephrased as "zeroing-in" on the corresponding matrix entry. This problem can be solved if either Alice or Bob knows both
x
{\displaystyle x}
and
y
{\displaystyle y}
. At the start of communication, the number of choices for the matrix position corresponding to the inputs is the size of matrix, i.e.
2
2
n
{\displaystyle 2^{2n}}
. Then, as and when each party communicates a bit to the other, the number of choices for the position reduces, as this eliminates a set of rows/columns, resulting in a submatrix of
A
{\displaystyle A}
. More formally, a set
R
⊆
X
×
Y
{\displaystyle R\subseteq X\times Y}
is called a (combinatorial) rectangle if whenever
(
x
1
,
y
1
)
∈
R
{\displaystyle (x_{1},y_{1})\in R}
and
(
x
2
,
y
2
)
∈
R
{\displaystyle (x_{2},y_{2})\in R}
then
(
x
1
,
y
2
)
∈
R
{\displaystyle (x_{1},y_{2})\in R}
. Equivalently,
R
{\displaystyle R}
is a combinatorial rectangle if it can be expressed as
R
=
M
×
N
{\displaystyle R=M\times N}
for some
M
⊆
X
{\displaystyle M\subseteq X}
and
N
⊆
Y
{\displaystyle N\subseteq Y}
. Consider the case when
k
{\displaystyle k}
bits are already exchanged between the parties. Now, for a particular
h
∈
{
0
,
1
}
k
{\displaystyle h\in \{0,1\}^{k}}
, let us define a matrix
T
h
=
{
(
x
,
y
)
:
the
k
-bits exchanged on input
(
x
,
y
)
is
h
}
{\displaystyle T_{h}=\{(x,y):{\text{ the }}k{\text{-bits exchanged on input }}(x,y){\text{ is }}h\}}
Then
T
h
⊆
X
×
Y
{\displaystyle T_{h}\subseteq X\times Y}
, and it is not hard to show that
T
h
{\displaystyle T_{h}}
is a combinatorial rectangle in
A
{\displaystyle A}
.