20110925 circuit complexity_seminar_lecture01_kulikov

86
Семинар по сложности булевых функций Лекция 1: Введение А. Куликов Computer Science клуб при ПОМИ http://compsciclub.ru 25.09.2011 А. Куликов 1. Введение 25.09.2011 1 / 26

Upload: computer-science-club

Post on 09-Jul-2015

1.822 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20110925 circuit complexity_seminar_lecture01_kulikov

Семинар по сложности булевых функцийЛекция 1: Введение

А. Куликов

Computer Science клуб при ПОМИhttp://compsciclub.ru

25.09.2011

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 1 / 26

Page 2: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 2 / 26

Page 3: 20110925 circuit complexity_seminar_lecture01_kulikov

Теория сложности вычислений

Структурная теория сложности изучает следующие вопросы: являетсяли память более мощным ресурсом, чем время?улучшают ли случайные числа мощь вычислительныхресурсов? легче ли проверить доказательство, чем найтиего? Мы до сих пор не знаем ответов на эти вопросы.Большинство результатов в структурной теориисложности — условные, то есть опираются нанедоказанные предположения (такие, как P ̸=NP).

Схемная сложность изучает нижние оценки на вычислительнуюсложность конкретных задач (например, умножениематриц или проверка наличия больших клик в графе).Рассматриваются конкретные модели вычисления —такие, как разрешающие деревья, ветвящиесяпрограммы, булевы формулы, различные классы булевыхсхем, коммуникационные протоколы. Целью даннойобласти являются безусловные нижние оценки.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 3 / 26

Page 4: 20110925 circuit complexity_seminar_lecture01_kulikov

Теория сложности вычислений

Структурная теория сложности изучает следующие вопросы: являетсяли память более мощным ресурсом, чем время?улучшают ли случайные числа мощь вычислительныхресурсов? легче ли проверить доказательство, чем найтиего? Мы до сих пор не знаем ответов на эти вопросы.Большинство результатов в структурной теориисложности — условные, то есть опираются нанедоказанные предположения (такие, как P ̸=NP).

Схемная сложность изучает нижние оценки на вычислительнуюсложность конкретных задач (например, умножениематриц или проверка наличия больших клик в графе).Рассматриваются конкретные модели вычисления —такие, как разрешающие деревья, ветвящиесяпрограммы, булевы формулы, различные классы булевыхсхем, коммуникационные протоколы. Целью даннойобласти являются безусловные нижние оценки.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 3 / 26

Page 5: 20110925 circuit complexity_seminar_lecture01_kulikov

Нижние оценки

Простейшие булевы функции: конъюнкция (произведение) x · y ,исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y ,отрицание ¬x = 1− x .

Центральная задача: сколько таких базовых операций необходимодля того, чтобы вычислить данную булеву функциюf : {0, 1}n → {0, 1}?Сложность доказательства нижних оценок идёт от нашегопротивника — схемы. Схемы небольшого размера могутпроизводить вычисления очень контринтуитивно.Как доказать, что нет хитрого способа вычислить функцию?Данная задача лежит на стыке математики и computer science:нижние оценки очень важны для computer science, а ихдоказательства требуют методов комбинаторики, алгебры, мат.анализа и других областей математики.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 4 / 26

Page 6: 20110925 circuit complexity_seminar_lecture01_kulikov

Нижние оценки

Простейшие булевы функции: конъюнкция (произведение) x · y ,исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y ,отрицание ¬x = 1− x .Центральная задача: сколько таких базовых операций необходимодля того, чтобы вычислить данную булеву функциюf : {0, 1}n → {0, 1}?

Сложность доказательства нижних оценок идёт от нашегопротивника — схемы. Схемы небольшого размера могутпроизводить вычисления очень контринтуитивно.Как доказать, что нет хитрого способа вычислить функцию?Данная задача лежит на стыке математики и computer science:нижние оценки очень важны для computer science, а ихдоказательства требуют методов комбинаторики, алгебры, мат.анализа и других областей математики.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 4 / 26

Page 7: 20110925 circuit complexity_seminar_lecture01_kulikov

Нижние оценки

Простейшие булевы функции: конъюнкция (произведение) x · y ,исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y ,отрицание ¬x = 1− x .Центральная задача: сколько таких базовых операций необходимодля того, чтобы вычислить данную булеву функциюf : {0, 1}n → {0, 1}?Сложность доказательства нижних оценок идёт от нашегопротивника — схемы. Схемы небольшого размера могутпроизводить вычисления очень контринтуитивно.

Как доказать, что нет хитрого способа вычислить функцию?Данная задача лежит на стыке математики и computer science:нижние оценки очень важны для computer science, а ихдоказательства требуют методов комбинаторики, алгебры, мат.анализа и других областей математики.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 4 / 26

Page 8: 20110925 circuit complexity_seminar_lecture01_kulikov

Нижние оценки

Простейшие булевы функции: конъюнкция (произведение) x · y ,исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y ,отрицание ¬x = 1− x .Центральная задача: сколько таких базовых операций необходимодля того, чтобы вычислить данную булеву функциюf : {0, 1}n → {0, 1}?Сложность доказательства нижних оценок идёт от нашегопротивника — схемы. Схемы небольшого размера могутпроизводить вычисления очень контринтуитивно.Как доказать, что нет хитрого способа вычислить функцию?

Данная задача лежит на стыке математики и computer science:нижние оценки очень важны для computer science, а ихдоказательства требуют методов комбинаторики, алгебры, мат.анализа и других областей математики.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 4 / 26

Page 9: 20110925 circuit complexity_seminar_lecture01_kulikov

Нижние оценки

Простейшие булевы функции: конъюнкция (произведение) x · y ,исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y ,отрицание ¬x = 1− x .Центральная задача: сколько таких базовых операций необходимодля того, чтобы вычислить данную булеву функциюf : {0, 1}n → {0, 1}?Сложность доказательства нижних оценок идёт от нашегопротивника — схемы. Схемы небольшого размера могутпроизводить вычисления очень контринтуитивно.Как доказать, что нет хитрого способа вычислить функцию?Данная задача лежит на стыке математики и computer science:нижние оценки очень важны для computer science, а ихдоказательства требуют методов комбинаторики, алгебры, мат.анализа и других областей математики.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 4 / 26

Page 10: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 5 / 26

Page 11: 20110925 circuit complexity_seminar_lecture01_kulikov

Булевы функции

Bn — это множество всех булевых функций f : {0, 1}n → {0, 1} отn переменных.

Булева функция f ∈ Bn принимает вектор a ∈ {0, 1}n, еслиf (a) = 1, и отвергает в противном случае.Булева функция зависит от своей i-й переменной xi , еслинайдутся такие константы a1, . . . , ai−1, ai+1, . . . , an, что

f (a1, . . . , ai−1, 0, ai+1, . . . , an) ̸= f (a1, . . . , ai−1, 1, ai+1, . . . , an).

Количество |Bn| различных булевых функций от n переменныхравно 22n

, то есть дважды экспоненциально.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 6 / 26

Page 12: 20110925 circuit complexity_seminar_lecture01_kulikov

Булевы функции

Bn — это множество всех булевых функций f : {0, 1}n → {0, 1} отn переменных.Булева функция f ∈ Bn принимает вектор a ∈ {0, 1}n, еслиf (a) = 1, и отвергает в противном случае.

Булева функция зависит от своей i-й переменной xi , еслинайдутся такие константы a1, . . . , ai−1, ai+1, . . . , an, что

f (a1, . . . , ai−1, 0, ai+1, . . . , an) ̸= f (a1, . . . , ai−1, 1, ai+1, . . . , an).

Количество |Bn| различных булевых функций от n переменныхравно 22n

, то есть дважды экспоненциально.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 6 / 26

Page 13: 20110925 circuit complexity_seminar_lecture01_kulikov

Булевы функции

Bn — это множество всех булевых функций f : {0, 1}n → {0, 1} отn переменных.Булева функция f ∈ Bn принимает вектор a ∈ {0, 1}n, еслиf (a) = 1, и отвергает в противном случае.Булева функция зависит от своей i-й переменной xi , еслинайдутся такие константы a1, . . . , ai−1, ai+1, . . . , an, что

f (a1, . . . , ai−1, 0, ai+1, . . . , an) ̸= f (a1, . . . , ai−1, 1, ai+1, . . . , an).

Количество |Bn| различных булевых функций от n переменныхравно 22n

, то есть дважды экспоненциально.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 6 / 26

Page 14: 20110925 circuit complexity_seminar_lecture01_kulikov

Булевы функции

Bn — это множество всех булевых функций f : {0, 1}n → {0, 1} отn переменных.Булева функция f ∈ Bn принимает вектор a ∈ {0, 1}n, еслиf (a) = 1, и отвергает в противном случае.Булева функция зависит от своей i-й переменной xi , еслинайдутся такие константы a1, . . . , ai−1, ai+1, . . . , an, что

f (a1, . . . , ai−1, 0, ai+1, . . . , an) ̸= f (a1, . . . , ai−1, 1, ai+1, . . . , an).

Количество |Bn| различных булевых функций от n переменныхравно 22n

, то есть дважды экспоненциально.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 6 / 26

Page 15: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.

Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 16: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 17: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 18: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 19: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 20: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 21: 20110925 circuit complexity_seminar_lecture01_kulikov

Симметрические булевы функции

Функция f называется симметрической, если её значение зависиттолько от суммы входных битов.Всего есть 2n+1 различных симметрических функций.

Примеры

пороговая функция: Thnk(x) = 1⇔ x1 + · · ·+ xn ≥ k ;

функция голосования: Majn(x) = 1⇔ x1 + · · ·+ xn ≥ ⌈n/2⌉;

функция чётности: ⊕n(x) = 1⇔ x1 + · · ·+ xn ≡ 1 (mod 2);

функция остатка по модулю: MODnk = 1⇔ x1 + · · ·+ xn ≡ 0 (mod k).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 7 / 26

Page 22: 20110925 circuit complexity_seminar_lecture01_kulikov

Ещё примеры булевых функций

В общем-то, любое свойство можно задать с помощью булевойфункции.

Например, свойство числа”быть простым“ задаёт булеву

функцию PRIME: PRIME(x) = 1⇔∑︀n

i=1 xi2i−1 — простое число.Не так давно было доказано, что эта функция может бытьдетерминированно вычислена за полиномиальное от n время[Agrawal, Kayal, Saxena, 2004].Чтобы описать свойство графа, надо задать функцию на C 2

nпеременных. Каждый вектор x длины C 2

n задает граф Gx :переменная xij отвечает за наличие ребра между вершинами i и j .Пример сложного для вычисления свойства графа — функцияклики: CLIQUE(n, k) принимает вектор x тогда и только тогда,когда Gx содержит клику размера k .До сих пор не известно, может ли данная функция бытьвычислена за полиномиальное время. Из доказательстваотрицательного ответа будет тут же следовать P̸=NP.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 8 / 26

Page 23: 20110925 circuit complexity_seminar_lecture01_kulikov

Ещё примеры булевых функций

В общем-то, любое свойство можно задать с помощью булевойфункции.Например, свойство числа

”быть простым“ задаёт булеву

функцию PRIME: PRIME(x) = 1⇔∑︀n

i=1 xi2i−1 — простое число.Не так давно было доказано, что эта функция может бытьдетерминированно вычислена за полиномиальное от n время[Agrawal, Kayal, Saxena, 2004].

Чтобы описать свойство графа, надо задать функцию на C 2n

переменных. Каждый вектор x длины C 2n задает граф Gx :

переменная xij отвечает за наличие ребра между вершинами i и j .Пример сложного для вычисления свойства графа — функцияклики: CLIQUE(n, k) принимает вектор x тогда и только тогда,когда Gx содержит клику размера k .До сих пор не известно, может ли данная функция бытьвычислена за полиномиальное время. Из доказательстваотрицательного ответа будет тут же следовать P̸=NP.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 8 / 26

Page 24: 20110925 circuit complexity_seminar_lecture01_kulikov

Ещё примеры булевых функций

В общем-то, любое свойство можно задать с помощью булевойфункции.Например, свойство числа

”быть простым“ задаёт булеву

функцию PRIME: PRIME(x) = 1⇔∑︀n

i=1 xi2i−1 — простое число.Не так давно было доказано, что эта функция может бытьдетерминированно вычислена за полиномиальное от n время[Agrawal, Kayal, Saxena, 2004].Чтобы описать свойство графа, надо задать функцию на C 2

nпеременных. Каждый вектор x длины C 2

n задает граф Gx :переменная xij отвечает за наличие ребра между вершинами i и j .

Пример сложного для вычисления свойства графа — функцияклики: CLIQUE(n, k) принимает вектор x тогда и только тогда,когда Gx содержит клику размера k .До сих пор не известно, может ли данная функция бытьвычислена за полиномиальное время. Из доказательстваотрицательного ответа будет тут же следовать P̸=NP.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 8 / 26

Page 25: 20110925 circuit complexity_seminar_lecture01_kulikov

Ещё примеры булевых функций

В общем-то, любое свойство можно задать с помощью булевойфункции.Например, свойство числа

”быть простым“ задаёт булеву

функцию PRIME: PRIME(x) = 1⇔∑︀n

i=1 xi2i−1 — простое число.Не так давно было доказано, что эта функция может бытьдетерминированно вычислена за полиномиальное от n время[Agrawal, Kayal, Saxena, 2004].Чтобы описать свойство графа, надо задать функцию на C 2

nпеременных. Каждый вектор x длины C 2

n задает граф Gx :переменная xij отвечает за наличие ребра между вершинами i и j .Пример сложного для вычисления свойства графа — функцияклики: CLIQUE(n, k) принимает вектор x тогда и только тогда,когда Gx содержит клику размера k .

До сих пор не известно, может ли данная функция бытьвычислена за полиномиальное время. Из доказательстваотрицательного ответа будет тут же следовать P̸=NP.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 8 / 26

Page 26: 20110925 circuit complexity_seminar_lecture01_kulikov

Ещё примеры булевых функций

В общем-то, любое свойство можно задать с помощью булевойфункции.Например, свойство числа

”быть простым“ задаёт булеву

функцию PRIME: PRIME(x) = 1⇔∑︀n

i=1 xi2i−1 — простое число.Не так давно было доказано, что эта функция может бытьдетерминированно вычислена за полиномиальное от n время[Agrawal, Kayal, Saxena, 2004].Чтобы описать свойство графа, надо задать функцию на C 2

nпеременных. Каждый вектор x длины C 2

n задает граф Gx :переменная xij отвечает за наличие ребра между вершинами i и j .Пример сложного для вычисления свойства графа — функцияклики: CLIQUE(n, k) принимает вектор x тогда и только тогда,когда Gx содержит клику размера k .До сих пор не известно, может ли данная функция бытьвычислена за полиномиальное время. Из доказательстваотрицательного ответа будет тут же следовать P̸=NP.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 8 / 26

Page 27: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 9 / 26

Page 28: 20110925 circuit complexity_seminar_lecture01_kulikov

Пример схемы

g1 = x1 ⊕ x2

g2 = x2 ∧ x3

g3 = g1 ∨ g2

g4 = g2 ∨ 1g5 = g3 ≡ g4

x1 x2 x3 1

⊕g1 ∧g2

∨g3 ∨g4

≡g5

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 10 / 26

Page 29: 20110925 circuit complexity_seminar_lecture01_kulikov

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

Итак, булева схема от n переменных над базисом Φ — этопоследовательность g1, . . . , gt из t ≥ n булевых функций, такаячто первые n функций являются просто входными переменнымиg1 = x1, . . . , gn = xn, а каждая следующая функция gi являетсяприменением gi = 𝜑(gi1 , . . . , gud ) базовой функции 𝜑 ∈ Φ кнекоторым из предыдущих функций.Размером схемы называется количество (t − n) её гейтов(функциональных элементов). Глубиной называется длина самогодлинного пути от входной переменной до выхода.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 11 / 26

Page 30: 20110925 circuit complexity_seminar_lecture01_kulikov

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

Итак, булева схема от n переменных над базисом Φ — этопоследовательность g1, . . . , gt из t ≥ n булевых функций, такаячто первые n функций являются просто входными переменнымиg1 = x1, . . . , gn = xn, а каждая следующая функция gi являетсяприменением gi = 𝜑(gi1 , . . . , gud ) базовой функции 𝜑 ∈ Φ кнекоторым из предыдущих функций.

Размером схемы называется количество (t − n) её гейтов(функциональных элементов). Глубиной называется длина самогодлинного пути от входной переменной до выхода.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 11 / 26

Page 31: 20110925 circuit complexity_seminar_lecture01_kulikov

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

Итак, булева схема от n переменных над базисом Φ — этопоследовательность g1, . . . , gt из t ≥ n булевых функций, такаячто первые n функций являются просто входными переменнымиg1 = x1, . . . , gn = xn, а каждая следующая функция gi являетсяприменением gi = 𝜑(gi1 , . . . , gud ) базовой функции 𝜑 ∈ Φ кнекоторым из предыдущих функций.Размером схемы называется количество (t − n) её гейтов(функциональных элементов). Глубиной называется длина самогодлинного пути от входной переменной до выхода.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 11 / 26

Page 32: 20110925 circuit complexity_seminar_lecture01_kulikov

Формулы и схемы де Моргана

Формулой называется схема, соответствующий граф которойявляется деревом. Основное отличие от схем заключается в том,что результат вычислений каждого гейта не может бытьиспользован более одного раза. Формула может быть записана водну строчку.Схемой де Моргана называется схема над базисом {∧,∨},входами которой являются литералы, то есть переменные и ихотрицания. Другими словами, отрицания применяются только ковходам. Используя правила де Моргана ¬(x ∨ y) = ¬x ∧ ¬y и¬(x ∧ y) = ¬x ∨ ¬y , любую схему над базисом {∧,∨,¬} можнопреобразовать в схему де Моргана, увеличив размер не более, чемвдвое.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 12 / 26

Page 33: 20110925 circuit complexity_seminar_lecture01_kulikov

Формулы и схемы де Моргана

Формулой называется схема, соответствующий граф которойявляется деревом. Основное отличие от схем заключается в том,что результат вычислений каждого гейта не может бытьиспользован более одного раза. Формула может быть записана водну строчку.

Схемой де Моргана называется схема над базисом {∧,∨},входами которой являются литералы, то есть переменные и ихотрицания. Другими словами, отрицания применяются только ковходам. Используя правила де Моргана ¬(x ∨ y) = ¬x ∧ ¬y и¬(x ∧ y) = ¬x ∨ ¬y , любую схему над базисом {∧,∨,¬} можнопреобразовать в схему де Моргана, увеличив размер не более, чемвдвое.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 12 / 26

Page 34: 20110925 circuit complexity_seminar_lecture01_kulikov

Формулы и схемы де Моргана

Формулой называется схема, соответствующий граф которойявляется деревом. Основное отличие от схем заключается в том,что результат вычислений каждого гейта не может бытьиспользован более одного раза. Формула может быть записана водну строчку.Схемой де Моргана называется схема над базисом {∧,∨},входами которой являются литералы, то есть переменные и ихотрицания. Другими словами, отрицания применяются только ковходам. Используя правила де Моргана ¬(x ∨ y) = ¬x ∧ ¬y и¬(x ∧ y) = ¬x ∨ ¬y , любую схему над базисом {∧,∨,¬} можнопреобразовать в схему де Моргана, увеличив размер не более, чемвдвое.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 12 / 26

Page 35: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 13 / 26

Page 36: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 14 / 26

Page 37: 20110925 circuit complexity_seminar_lecture01_kulikov

Функция Шэннона

Функция Шэннона (для некоторой модели схем): 𝜇(n) — этомаксимальный размер схемной сложности функции от nпеременных. Другими словами, 𝜇(n) есть такое минимальноечисло t, что любая функция от n переменных может бытьвычислена схемами размера t.Как правило, под функцией f подразумевается бесконечнаяпоследовательность функций f = {fn | n = 1, 2, . . . }.Замечание: в дальнейшем рассматриваем схемы над полнымбинарным базисом B2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 15 / 26

Page 38: 20110925 circuit complexity_seminar_lecture01_kulikov

Функция Шэннона

Функция Шэннона (для некоторой модели схем): 𝜇(n) — этомаксимальный размер схемной сложности функции от nпеременных. Другими словами, 𝜇(n) есть такое минимальноечисло t, что любая функция от n переменных может бытьвычислена схемами размера t.

Как правило, под функцией f подразумевается бесконечнаяпоследовательность функций f = {fn | n = 1, 2, . . . }.Замечание: в дальнейшем рассматриваем схемы над полнымбинарным базисом B2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 15 / 26

Page 39: 20110925 circuit complexity_seminar_lecture01_kulikov

Функция Шэннона

Функция Шэннона (для некоторой модели схем): 𝜇(n) — этомаксимальный размер схемной сложности функции от nпеременных. Другими словами, 𝜇(n) есть такое минимальноечисло t, что любая функция от n переменных может бытьвычислена схемами размера t.Как правило, под функцией f подразумевается бесконечнаяпоследовательность функций f = {fn | n = 1, 2, . . . }.

Замечание: в дальнейшем рассматриваем схемы над полнымбинарным базисом B2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 15 / 26

Page 40: 20110925 circuit complexity_seminar_lecture01_kulikov

Функция Шэннона

Функция Шэннона (для некоторой модели схем): 𝜇(n) — этомаксимальный размер схемной сложности функции от nпеременных. Другими словами, 𝜇(n) есть такое минимальноечисло t, что любая функция от n переменных может бытьвычислена схемами размера t.Как правило, под функцией f подразумевается бесконечнаяпоследовательность функций f = {fn | n = 1, 2, . . . }.Замечание: в дальнейшем рассматриваем схемы над полнымбинарным базисом B2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 15 / 26

Page 41: 20110925 circuit complexity_seminar_lecture01_kulikov

Схемная сложность случайной функции

Из соображений мощности (Shannon, 1949): оценим, какоеколичество функций от n переменных могут быть вычисленысхемам размера t, и сравним полученное число с числом 22n

всехфункций от n переменных.Число F (n, t) схем размера ≤ t от n переменных не превосходит(︀

16(t + n + 2)2)︀t

.

Каждый из t гейтов вычисляет одну из 16 возможных бинарныхбулевых функций и зависит от двух предыдущих гейтов, которыемогут быть гейтов (≤ t возможностей) или же переменной иликонстантой (≤ n + 2 возможностей).Для t = 2n/(10n), F (n, t) приблизительно равно 22n/5, что ≪ 22n

.Таким образом, схемная сложность почти всех функций от nпеременных экспоненциальна по n. В то же время не известно ниодной явной функции, требующей схем более чем линейногоразмера.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 16 / 26

Page 42: 20110925 circuit complexity_seminar_lecture01_kulikov

Схемная сложность случайной функции

Из соображений мощности (Shannon, 1949): оценим, какоеколичество функций от n переменных могут быть вычисленысхемам размера t, и сравним полученное число с числом 22n

всехфункций от n переменных.

Число F (n, t) схем размера ≤ t от n переменных не превосходит(︀16(t + n + 2)2

)︀t.

Каждый из t гейтов вычисляет одну из 16 возможных бинарныхбулевых функций и зависит от двух предыдущих гейтов, которыемогут быть гейтов (≤ t возможностей) или же переменной иликонстантой (≤ n + 2 возможностей).Для t = 2n/(10n), F (n, t) приблизительно равно 22n/5, что ≪ 22n

.Таким образом, схемная сложность почти всех функций от nпеременных экспоненциальна по n. В то же время не известно ниодной явной функции, требующей схем более чем линейногоразмера.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 16 / 26

Page 43: 20110925 circuit complexity_seminar_lecture01_kulikov

Схемная сложность случайной функции

Из соображений мощности (Shannon, 1949): оценим, какоеколичество функций от n переменных могут быть вычисленысхемам размера t, и сравним полученное число с числом 22n

всехфункций от n переменных.Число F (n, t) схем размера ≤ t от n переменных не превосходит(︀

16(t + n + 2)2)︀t

.

Каждый из t гейтов вычисляет одну из 16 возможных бинарныхбулевых функций и зависит от двух предыдущих гейтов, которыемогут быть гейтов (≤ t возможностей) или же переменной иликонстантой (≤ n + 2 возможностей).

Для t = 2n/(10n), F (n, t) приблизительно равно 22n/5, что ≪ 22n.

Таким образом, схемная сложность почти всех функций от nпеременных экспоненциальна по n. В то же время не известно ниодной явной функции, требующей схем более чем линейногоразмера.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 16 / 26

Page 44: 20110925 circuit complexity_seminar_lecture01_kulikov

Схемная сложность случайной функции

Из соображений мощности (Shannon, 1949): оценим, какоеколичество функций от n переменных могут быть вычисленысхемам размера t, и сравним полученное число с числом 22n

всехфункций от n переменных.Число F (n, t) схем размера ≤ t от n переменных не превосходит(︀

16(t + n + 2)2)︀t

.

Каждый из t гейтов вычисляет одну из 16 возможных бинарныхбулевых функций и зависит от двух предыдущих гейтов, которыемогут быть гейтов (≤ t возможностей) или же переменной иликонстантой (≤ n + 2 возможностей).Для t = 2n/(10n), F (n, t) приблизительно равно 22n/5, что ≪ 22n

.

Таким образом, схемная сложность почти всех функций от nпеременных экспоненциальна по n. В то же время не известно ниодной явной функции, требующей схем более чем линейногоразмера.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 16 / 26

Page 45: 20110925 circuit complexity_seminar_lecture01_kulikov

Схемная сложность случайной функции

Из соображений мощности (Shannon, 1949): оценим, какоеколичество функций от n переменных могут быть вычисленысхемам размера t, и сравним полученное число с числом 22n

всехфункций от n переменных.Число F (n, t) схем размера ≤ t от n переменных не превосходит(︀

16(t + n + 2)2)︀t

.

Каждый из t гейтов вычисляет одну из 16 возможных бинарныхбулевых функций и зависит от двух предыдущих гейтов, которыемогут быть гейтов (≤ t возможностей) или же переменной иликонстантой (≤ n + 2 возможностей).Для t = 2n/(10n), F (n, t) приблизительно равно 22n/5, что ≪ 22n

.Таким образом, схемная сложность почти всех функций от nпеременных экспоненциальна по n. В то же время не известно ниодной явной функции, требующей схем более чем линейногоразмера.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 16 / 26

Page 46: 20110925 circuit complexity_seminar_lecture01_kulikov

План лекции

1 Булевы функции

2 Булевы схемы

3 Почти все функции имеют большую схемную сложностьНижняя оценкаВерхняя оценка

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 17 / 26

Page 47: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 48: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).

Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 49: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 50: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 51: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 52: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 53: 20110925 circuit complexity_seminar_lecture01_kulikov

Представление функции многочленом над GF(2)

Любую функцию f ∈ Bn можно представить (причёмединственным образом) многочленом над GF(2).Чтобы представить функцию многочленом, достаточно взять всевектора, принимаемые этой функцией, и сложитьсоответствующие им элементарные конъюнкции.

Пример: Thr32

Рассмотрим функцию Thr32: Thr32(x1, x2, x3) = 1⇔ x1 + x2 + x3 ≥ 2 .

Соответствующий многочлен:x1x2x3 + (1 − x1)x2x3 + x1(1 − x2)x3 + x1x2(1 − x3) = x1x2 + x2x3 + x3x1 .

Итак, любая функция представляется многочленом. Чтобыпонять, что такой многочлен единственен, достаточно заметить,что количество различных функций и количество различныхмногочленов совпадают и равны 22n

.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 18 / 26

Page 54: 20110925 circuit complexity_seminar_lecture01_kulikov

Очевидная верхняя оценка

Из представления функции многочленом сразу следует, чтосхемная сложность любой функции не превосходит n2n.Такую же верхнюю оценку можно получить, заметив, что любуюфункцию можно представить в виде конъюнктивной нормальнойформы (КНФ), то есть конъюнкции дизъюнкций литералов, иликонъюнктивной нормальной формы (КНФ), то есть дизъюнкцииконъюнкций литералов.

Пример: ДНФ для Thr32x1x2x3 ∨ x̄1x2x3 ∨ x1x̄2x3 ∨ x1x2x̄3

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 19 / 26

Page 55: 20110925 circuit complexity_seminar_lecture01_kulikov

Очевидная верхняя оценка

Из представления функции многочленом сразу следует, чтосхемная сложность любой функции не превосходит n2n.

Такую же верхнюю оценку можно получить, заметив, что любуюфункцию можно представить в виде конъюнктивной нормальнойформы (КНФ), то есть конъюнкции дизъюнкций литералов, иликонъюнктивной нормальной формы (КНФ), то есть дизъюнкцииконъюнкций литералов.

Пример: ДНФ для Thr32x1x2x3 ∨ x̄1x2x3 ∨ x1x̄2x3 ∨ x1x2x̄3

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 19 / 26

Page 56: 20110925 circuit complexity_seminar_lecture01_kulikov

Очевидная верхняя оценка

Из представления функции многочленом сразу следует, чтосхемная сложность любой функции не превосходит n2n.Такую же верхнюю оценку можно получить, заметив, что любуюфункцию можно представить в виде конъюнктивной нормальнойформы (КНФ), то есть конъюнкции дизъюнкций литералов, иликонъюнктивной нормальной формы (КНФ), то есть дизъюнкцииконъюнкций литералов.

Пример: ДНФ для Thr32x1x2x3 ∨ x̄1x2x3 ∨ x1x̄2x3 ∨ x1x2x̄3

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 19 / 26

Page 57: 20110925 circuit complexity_seminar_lecture01_kulikov

Очевидная верхняя оценка

Из представления функции многочленом сразу следует, чтосхемная сложность любой функции не превосходит n2n.Такую же верхнюю оценку можно получить, заметив, что любуюфункцию можно представить в виде конъюнктивной нормальнойформы (КНФ), то есть конъюнкции дизъюнкций литералов, иликонъюнктивной нормальной формы (КНФ), то есть дизъюнкцииконъюнкций литералов.

Пример: ДНФ для Thr32x1x2x3 ∨ x̄1x2x3 ∨ x1x̄2x3 ∨ x1x2x̄3

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 19 / 26

Page 58: 20110925 circuit complexity_seminar_lecture01_kulikov

Улучшение

Чтобы получить более сильную оценку, нужно заметить, чтофункцию f ∈ Bn всегда можно представить как

f (x1, . . . , xn) = f0(x1, . . . , xn−1) + xnfΔ(x1, . . . , xn−1) ,

где fΔ = f0 + f1, а f0 = f |xn=0 и f1 = f |xn=1.Это даёт нам следующее рекуррентное соотношение:

𝜇(n) ≤ 2𝜇(n − 1) + 2, 𝜇(1) = 1 .

Из данного соотношения следует верхняя оценка 𝜇(n) ≤ 342

n − 2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 20 / 26

Page 59: 20110925 circuit complexity_seminar_lecture01_kulikov

Улучшение

Чтобы получить более сильную оценку, нужно заметить, чтофункцию f ∈ Bn всегда можно представить как

f (x1, . . . , xn) = f0(x1, . . . , xn−1) + xnfΔ(x1, . . . , xn−1) ,

где fΔ = f0 + f1, а f0 = f |xn=0 и f1 = f |xn=1.

Это даёт нам следующее рекуррентное соотношение:

𝜇(n) ≤ 2𝜇(n − 1) + 2, 𝜇(1) = 1 .

Из данного соотношения следует верхняя оценка 𝜇(n) ≤ 342

n − 2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 20 / 26

Page 60: 20110925 circuit complexity_seminar_lecture01_kulikov

Улучшение

Чтобы получить более сильную оценку, нужно заметить, чтофункцию f ∈ Bn всегда можно представить как

f (x1, . . . , xn) = f0(x1, . . . , xn−1) + xnfΔ(x1, . . . , xn−1) ,

где fΔ = f0 + f1, а f0 = f |xn=0 и f1 = f |xn=1.Это даёт нам следующее рекуррентное соотношение:

𝜇(n) ≤ 2𝜇(n − 1) + 2, 𝜇(1) = 1 .

Из данного соотношения следует верхняя оценка 𝜇(n) ≤ 342

n − 2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 20 / 26

Page 61: 20110925 circuit complexity_seminar_lecture01_kulikov

Улучшение

Чтобы получить более сильную оценку, нужно заметить, чтофункцию f ∈ Bn всегда можно представить как

f (x1, . . . , xn) = f0(x1, . . . , xn−1) + xnfΔ(x1, . . . , xn−1) ,

где fΔ = f0 + f1, а f0 = f |xn=0 и f1 = f |xn=1.Это даёт нам следующее рекуррентное соотношение:

𝜇(n) ≤ 2𝜇(n − 1) + 2, 𝜇(1) = 1 .

Из данного соотношения следует верхняя оценка 𝜇(n) ≤ 342

n − 2.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 20 / 26

Page 62: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 63: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.

Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 64: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .

Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 65: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.

Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 66: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.

Тогда 𝜇(n) ≤ 22k+ 2 · 2n−k − 2.

Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 67: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.

Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 68: 20110925 circuit complexity_seminar_lecture01_kulikov

Дальнейшее улучшение

Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивноспускаться до n = 1, предвычислим все булевы функции от k ≪ nпеременных.Это даст нам рекуррентное соотношение вида𝜇′(n) ≤ 2𝜇′(n − 1) + 2, 𝜇′(k) = 0 .Тогда после предвычисления нам понадобится не более𝜇′(n) ≤ 2 · 2n−k − 2 гейтов.Ниже мы покажем, что на предвычисление понадобится не более22k

гейтов.Тогда 𝜇(n) ≤ 22k

+ 2 · 2n−k − 2.Взяв k = ⌊log2 n − 𝜖⌋, получим, что 𝜇(n) ≤ 22+𝜖 · 2n/n + o(2n/n).

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 21 / 26

Page 69: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 70: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.

Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 71: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.

Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 72: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.

Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 73: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.

Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 74: 20110925 circuit complexity_seminar_lecture01_kulikov

Вычисление всех функций одновременно

Итак, осталось показать, как вычислить все функции от kпеременных за 22k

гейтов.Сначала вычислим все мономы, последовательно увеличивая ихразмер. Потом вычислим все суммы мономов, последовательноувеличивая количество членов в сумме. Таким образом, получимвсе 22k

многочленов от k переменных.Мономы степени 0 и 1 у нас уже есть — это просто две константыи k входных переменных.Чтобы получить моном степени d , достаточно одного гейта:нужно взять моном степени d −1 и домножить его на переменную.Чтобы получить сумму s мономов, достаточно одного гейта:нужно взять сумму (s − 1) мономов и прибавить к ней моном.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 22 / 26

Page 75: 20110925 circuit complexity_seminar_lecture01_kulikov

Более точная оценка

Используя более хитрую конструкцию, Лупанов (1958) доказал, что

𝜇(n) ≤(︂1+ O

(︂log n

n

)︂)︂2n

n.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 23 / 26

Page 76: 20110925 circuit complexity_seminar_lecture01_kulikov

Текущие рекорды

Итак, мы узнали, что схемная сложность почти любой функциииз Bn есть Θ(2n/n).Лучшие доказанные на данный момент оценки для явныхфункций:

схемы формулыполный бинарный базис B2 3n − o(n) n2−o(1)

[Blum] [Нечипорук]базис U2 = B2 ∖ {⊕,≡} 5n − o(n) n3−o(1)

[Iwama et al.] [Hastad]экспоненциальная

монотонный базис M2 = {∨,∧} [Разборов; Alon, Boppana;Андреев; Karchmer, Wigderson]

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 24 / 26

Page 77: 20110925 circuit complexity_seminar_lecture01_kulikov

Текущие рекорды

Итак, мы узнали, что схемная сложность почти любой функциииз Bn есть Θ(2n/n).

Лучшие доказанные на данный момент оценки для явныхфункций:

схемы формулыполный бинарный базис B2 3n − o(n) n2−o(1)

[Blum] [Нечипорук]базис U2 = B2 ∖ {⊕,≡} 5n − o(n) n3−o(1)

[Iwama et al.] [Hastad]экспоненциальная

монотонный базис M2 = {∨,∧} [Разборов; Alon, Boppana;Андреев; Karchmer, Wigderson]

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 24 / 26

Page 78: 20110925 circuit complexity_seminar_lecture01_kulikov

Текущие рекорды

Итак, мы узнали, что схемная сложность почти любой функциииз Bn есть Θ(2n/n).Лучшие доказанные на данный момент оценки для явныхфункций:

схемы формулыполный бинарный базис B2 3n − o(n) n2−o(1)

[Blum] [Нечипорук]базис U2 = B2 ∖ {⊕,≡} 5n − o(n) n3−o(1)

[Iwama et al.] [Hastad]экспоненциальная

монотонный базис M2 = {∨,∧} [Разборов; Alon, Boppana;Андреев; Karchmer, Wigderson]

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 24 / 26

Page 79: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 80: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.

Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 81: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 82: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.

Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 83: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.

Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 84: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 85: 20110925 circuit complexity_seminar_lecture01_kulikov

Упражнения

Докажите, что для любой функции от n переменных естьвычисляющая её формула де Моргана, в которой не более4 · 2n − 2 листьев.Пусть m = ⌈log2(n + 1)⌉ и пусть Sumn : {0, 1}n → {0, 1}m по входуx выдаёт бинарное представление суммы его битов. Рассмотримсхемы над полным бинарным базисом.

Покажите, что C (Sum3) ≤ 5.Покажите, что C (Sumn) ≤ 5n.Покажите, что C (fn) ≤ 5n + o(n), где fn — симметрическаяфункция от n переменных.

(Схемы как линейные программы.) Пусть F (x) — схема над{∨,∧,¬} с m гейтами. Покажите, что найдётся система L(x , y) изO(m) линейных неравенств с коэффициентами ±1, такая что длявсех x ∈ {0, 1}n, F (x) = 1 тогда и только тогда, когда найдётсятакой вектор y , что все неравенства системы L(x , y) выполнены.

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 25 / 26

Page 86: 20110925 circuit complexity_seminar_lecture01_kulikov

Спасибо за внимание!

А. Куликов (Computer Science клуб)1. Введение 25.09.2011 26 / 26