Коммуникационная сложность: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Метка: редактор вики-текста 2017
Нет описания правки
Метка: редактор вики-текста 2017
Строка 3: Строка 3:
В [[Теоретическая информатика|теоретической информатике]] '''коммуникационная сложность''' изучает количество коммуникации, необходимое для решения задачи, условие которой [[Распределённые вычисления|распределено]] между двумя или более сторонами. Это понятие было введено [[Яо, Эндрю|Эндрю Яо]] в 1979 году<ref name="yao1979">{{Citation|last=Yao|first=A. C.|title=Some Complexity Questions Related to Distributed Computing|journal=Proc. of 11th STOC|volume=14|pages=209–213|year=1979}}</ref>, который исследовал следующую задачу для двух участников, традиционно называемых [[Алиса и Боб|Алисой и Бобом]]. Алиса получает ''n-''[[Бит|битную]] строку ''x,'' а Bob — ''n-''битную строку ''y'', и их цель состоит в том, чтобы один из них (например, Боб) вычислил определенную и известную обоим участникам функцию <math>f(x,y)</math>, при этом с наименьшим количеством [[Общение|коммуникации]] между ними. Конечно, они всегда могут вычислить <math>f(x,y)</math>следующим образом: Алиса отправляет всю свою n-битную строку Бобу, который затем вычисляет [[Функция (математика)|функцию]] <math>f(x,y)</math>. Поэтому в данной постановке задачи интересно, для каких функций ''f'' существует способ вычислить <math>f(x,y)</math>передав менее n битов. Важное отметить, что в данной задаче нас не интересует [[Вычислительная сложность|сложность вычислений,]] выполненных Алисой или Бобом, или размер используемой для этих вычислений памяти.
В [[Теоретическая информатика|теоретической информатике]] '''коммуникационная сложность''' изучает количество коммуникации, необходимое для решения задачи, условие которой [[Распределённые вычисления|распределено]] между двумя или более сторонами. Это понятие было введено [[Яо, Эндрю|Эндрю Яо]] в 1979 году<ref name="yao1979">{{Citation|last=Yao|first=A. C.|title=Some Complexity Questions Related to Distributed Computing|journal=Proc. of 11th STOC|volume=14|pages=209–213|year=1979}}</ref>, который исследовал следующую задачу для двух участников, традиционно называемых [[Алиса и Боб|Алисой и Бобом]]. Алиса получает ''n-''[[Бит|битную]] строку ''x,'' а Bob — ''n-''битную строку ''y'', и их цель состоит в том, чтобы один из них (например, Боб) вычислил определенную и известную обоим участникам функцию <math>f(x,y)</math>, при этом с наименьшим количеством [[Общение|коммуникации]] между ними. Конечно, они всегда могут вычислить <math>f(x,y)</math>следующим образом: Алиса отправляет всю свою n-битную строку Бобу, который затем вычисляет [[Функция (математика)|функцию]] <math>f(x,y)</math>. Поэтому в данной постановке задачи интересно, для каких функций ''f'' существует способ вычислить <math>f(x,y)</math>передав менее n битов. Важное отметить, что в данной задаче нас не интересует [[Вычислительная сложность|сложность вычислений,]] выполненных Алисой или Бобом, или размер используемой для этих вычислений памяти.


Эта абстрактная проблема с двумя участниками (называемая коммуникационной сложностью с двумя участниками) и ее общая форма с [[Multiparty communication complexity|большим количеством участников]] актуальна во многих контекстах: например, при проектировании схем [[Интегральная схема|больших интегральных схем]] требуется минимизировать используемую энергию, путем уменьшения количества электрических сигналов между различными компонентами во время распределенных вычислений. Коммуникационная сложность используется также при изучении структур данных и алгоритмов, при оптимизации компьютерных сетей, в теории вычислительной сложности и сложности доказательств и в других областях. Для обзора области см. {{Harvtxt|Kushilevitz|Nisan|2006}} .
Эта абстрактная проблема с двумя участниками (называемая коммуникационной сложностью с двумя участниками) и ее общая форма с большим количеством участников актуальна во многих контекстах: например, при проектировании схем [[Интегральная схема|больших интегральных схем]] требуется минимизировать используемую энергию, путем уменьшения количества электрических сигналов между различными компонентами во время распределенных вычислений. Коммуникационная сложность используется также при изучении структур данных и алгоритмов, при оптимизации компьютерных сетей, в теории вычислительной сложности и сложности доказательств и в других областях. Для обзора области см. {{Harvtxt|Kushilevitz|Nisan|2006}} .


== Формальное определение ==
== Формальное определение ==

Версия от 20:06, 12 марта 2019


В теоретической информатике коммуникационная сложность изучает количество коммуникации, необходимое для решения задачи, условие которой распределено между двумя или более сторонами. Это понятие было введено Эндрю Яо в 1979 году[1], который исследовал следующую задачу для двух участников, традиционно называемых Алисой и Бобом. Алиса получает n-битную строку x, а Bob — n-битную строку y, и их цель состоит в том, чтобы один из них (например, Боб) вычислил определенную и известную обоим участникам функцию , при этом с наименьшим количеством коммуникации между ними. Конечно, они всегда могут вычислить следующим образом: Алиса отправляет всю свою n-битную строку Бобу, который затем вычисляет функцию . Поэтому в данной постановке задачи интересно, для каких функций f существует способ вычислить передав менее n битов. Важное отметить, что в данной задаче нас не интересует сложность вычислений, выполненных Алисой или Бобом, или размер используемой для этих вычислений памяти.

Эта абстрактная проблема с двумя участниками (называемая коммуникационной сложностью с двумя участниками) и ее общая форма с большим количеством участников актуальна во многих контекстах: например, при проектировании схем больших интегральных схем требуется минимизировать используемую энергию, путем уменьшения количества электрических сигналов между различными компонентами во время распределенных вычислений. Коммуникационная сложность используется также при изучении структур данных и алгоритмов, при оптимизации компьютерных сетей, в теории вычислительной сложности и сложности доказательств и в других областях. Для обзора области см. Kushilevitz & Nisan (2006) .

Формальное определение

Пусть изначально задана некоторая функция , где в наиболее типичной постановке . Алиса получает элемент , Боб получает . Обмениваясь друг с другом сообщениями по одному биту (используя некоторый заранее определённый протокол связи ), Алиса и Боб хотят вычислить значение так, чтобы они оба знали значение в конце общения. Коммуникационная сложность вычисления функции , обозначатся , определяется как минимальное количество бит коммуникации, которого достаточно для решения поставленной задачи в худшем случае (т.е. этого количества битов должно быть достаточно для любой пары ).

  1. Yao, A. C. (1979), "Some Complexity Questions Related to Distributed Computing", Proc. of 11th STOC, 14: 209—213