V teoretické informatice komplexnost komunikace studuje množství komunikace potřebné k vyřešení problému, jehož parametry jsou sdíleny dvěma nebo více stranami. Tento pojem zavedl Andrew Yao v roce 1979 [1] , který zkoumal následující problém pro dva účastníky, tradičně nazývané Alice a Bob . Alice obdrží n - bitový řetězec x a Bob n - bitový řetězec y a jejich cílem je, aby jeden z nich (například Bob) vypočítal funkci definovanou a známou oběma stranám , s co nejmenším množstvím komunikace mezi nimi . . Samozřejmě mohou vždy počítat takto: Alice pošle celý svůj n-bitový řetězec Bobovi, který pak vyhodnotí funkci . Proto je v této formulaci problému zajímavé, pro které funkce f existuje způsob, jak vypočítat přenosem méně než n bitů. Je důležité si uvědomit, že v tomto problému nás nezajímá složitost výpočtů provedených Alicí nebo Bobem, ani velikost paměti použité pro tyto výpočty.
Tento abstraktní problém dvou účastníků (nazývaný složitost komunikace dvou účastníků) a jeho obecná podoba s mnoha účastníky vyvstává v různých oblastech informatiky: například při návrhu velkých integrovaných obvodů je potřeba minimalizovat spotřebu energie snížením počet elektrických signálů mezi různými součástmi během distribuovaného výpočtu. Komunikační složitost se využívá také při studiu datových struktur a algoritmů, při optimalizaci počítačových sítí, v teorii výpočetní složitosti a důkazové složitosti a v dalších oblastech.
Nechť je zpočátku uvedena nějaká funkce , kde v nejtypičtějším příkazu . Alice dostane , Bob dostane . Tím, že si Alice a Bob vyměňují zprávy po jednotlivých bitech (pomocí nějakého předem určeného komunikačního protokolu ), chtějí vypočítat hodnotu tak, aby na konci komunikace alespoň jeden z nich hodnotu znal .
Komunikační složitost výpočtu funkce , označovaná , je definována jako minimální počet komunikačních bitů, který postačuje k vyřešení problému v nejhorším případě (to znamená, že tento počet bitů by měl stačit pro libovolný pár ).
Na základě této definice je vhodné uvažovat o funkci f jako o funkci dané maticí A , ve které jsou řádky indexovány elementy a sloupce elementy . V každé buňce této matice, indexované prvky x a y , je zapsána odpovídající hodnota f , tedy . Alice a Bob znají funkci f a proto znají matici A . Dále dostane Alice číslo řádku x a Bob číslo sloupce y a jejich úkolem je určit hodnotu zapsanou v odpovídající buňce. Pokud tedy v určité chvíli jeden z hráčů zná číslo sloupce i číslo řádku zároveň, pak bude znát i hodnotu v odpovídající buňce. Na začátku komunikace každý hráč neví nic o čísle druhého hráče, takže z pohledu Alice může být odpovědí jakákoliv hodnota v řádku x a z pohledu Boba jakákoliv hodnota ve sloupci y . . V procesu komunikace s každým přenášeným bitem se objevují nové informace, které hráčům umožňují odříznout některé z možných buněk. Pokud například v určitém okamžiku Alice přenese bit b , pak z Bobova pohledu jsou všechny možné vstupy Alice v tom okamžiku rozděleny do dvou sad: ty, pro které by Alice poslala , a ty, pro které by Alice poslala . Bob, který zná hodnotu bitu b , odřízne některé z Aliciných možných vstupů a zúží tak množinu možných buněk ze svého pohledu. V tomto případě se z pohledu vnějšího pozorovatele po každé zprávě zúží buď množina možných řádků nebo množina možných sloupců a tím se zúží množina možných buněk o nějakou podmatici matice A .
Formálněji budeme množinu nazývat (kombinatorický) obdélník , pokud to vyplývá z toho , že a . Potom je každá podmatice matice A spojena s kombinatorickým obdélníkem R tak, že , kde a . Nyní zvažte situaci, kdy již bylo mezi účastníky přeneseno k bitů. Nechť těchto prvních k bitů je dáno řetězcem . Pak je možné definovat množinu párů vstupů , na kterých se první k rovnají
- komunikační bit na vstupech je rovenPak je kombinatorický obdélník, to znamená, že definuje podmatici matice A .
Nechte _ Zvažte problém, ve kterém Alice a Bob chtějí zjistit, zda mají stejné řetězce, to znamená, že chtějí zkontrolovat, že . Je snadné ukázat, že k vyřešení tohoto problému testu rovnosti (EQ) potřebujeme v nejhorším případě přenést n bitů, pokud chceme na tuto otázku odpovědět přesně pro všechny možné dvojice x a y .
Pro případ se řetězce x a y skládají ze tří bitů. Funkce rovnosti je v tomto případě definována následující maticí, kde řádky jsou indexovány vstupy Alice a řádky jsou indexovány vstupy Boba.
EQ | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
---|---|---|---|---|---|---|---|---|
000 | jeden | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
001 | 0 | jeden | 0 | 0 | 0 | 0 | 0 | 0 |
010 | 0 | 0 | jeden | 0 | 0 | 0 | 0 | 0 |
011 | 0 | 0 | 0 | jeden | 0 | 0 | 0 | 0 |
100 | 0 | 0 | 0 | 0 | jeden | 0 | 0 | 0 |
101 | 0 | 0 | 0 | 0 | 0 | jeden | 0 | 0 |
110 | 0 | 0 | 0 | 0 | 0 | 0 | jeden | 0 |
111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | jeden |
Jak vidíme, funkce je rovna 1 pouze v buňkách, kde x je rovno y (tedy na diagonále).
Důkaz. Předpokládejme , že existuje protokol, který řeší problém kontroly rovnosti pro všechny páry bitových řetězců délky n , přičemž nepřenáší více než bit. Vypišme pro každou možnou dvojici shodných řetězců (pro ně ) do řádku všechny bity, které byly odeslány v protokolu. Přesně takové odlišné páry existují a existují nanejvýš odlišné bitové řetězce délky . Podle Dirichletova principu existují dva páry a , pro které jsou získány stejné řetězce, to znamená, že v protokolu byly odeslány stejné bity. Protože množina párů řetězců, pro které byly odeslány stejné bity, definuje obdélník, pak a musí být také rovno 1, což je v rozporu se skutečností, že . Náš předpoklad je tedy chybný, což znamená
Jinými slovy, pokud je menší než n , pak bychom měli být schopni pokrýt všechny jedničky matice EQ méně jednobarevnými obdélníky (jejichž všechny buňky jsou označeny jedničkami). V matici EQ jsou však přesně jedničky a žádné dvě nemohou ležet ve stejném jednobarevném obdélníku, protože buňky označené nulami nevyhnutelně spadnou do tohoto obdélníku. Proto takové pokrytí neexistuje, a tedy alespoň n .