SlideShare a Scribd company logo
1 of 83
Download to read offline
Семинар по сложности булевых функций
           Лекция 1: Введение

                        А. Куликов

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


                        25.09.2011




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



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


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


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




       А. Куликов     (Computer Science клуб)
                                 1. Введение        25.09.2011   2 / 25
Теория сложности вычислений




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   3 / 25
Теория сложности вычислений
Структурная теория сложности изучает следующие вопросы: является
            ли память более мощным ресурсом, чем время?
            улучшают ли случайные числа мощь вычислительных
            ресурсов? легче ли проверить доказательство, чем найти
            его? Мы до сих пор не знаем ответов на эти вопросы.
            Большинство результатов в структурной теории
            сложности условные, то есть опираются на
            недоказанные предположения (такие, как P̸=NP).




      А. Куликов     (Computer Science клуб)
                                1. Введение           25.09.2011   3 / 25
Теория сложности вычислений
Структурная теория сложности изучает следующие вопросы: является
            ли память более мощным ресурсом, чем время?
            улучшают ли случайные числа мощь вычислительных
            ресурсов? легче ли проверить доказательство, чем найти
            его? Мы до сих пор не знаем ответов на эти вопросы.
            Большинство результатов в структурной теории
            сложности условные, то есть опираются на
            недоказанные предположения (такие, как P̸=NP).
Схемная сложность изучает нижние оценки на вычислительную
            сложность конкретных задач (например, умножение
            матриц или проверка наличия больших клик в графе).
            Рассматриваются конкретные модели вычисления
            такие, как разрешающие деревья, ветвящиеся
            программы, булевы формулы, различные классы булевых
            схем, коммуникационные протоколы. Целью данной
            области являются безусловные нижние оценки.
      А. Куликов     (Computer Science клуб)
                                1. Введение           25.09.2011   3 / 25
Нижние оценки




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

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




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

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




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

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




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

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




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

   Простейшие булевы функции: конъюнкция (произведение) 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 / 25
План лекции



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


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


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




       А. Куликов     (Computer Science клуб)
                                 1. Введение        25.09.2011   5 / 25
Булевы функции




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   6 / 25
Булевы функции


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




    А. Куликов       (Computer Science клуб)
                                1. Введение            25.09.2011   6 / 25
Булевы функции


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




    А. Куликов       (Computer Science клуб)
                                1. Введение            25.09.2011   6 / 25
Булевы функции


   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 ).




     А. Куликов                (Computer Science клуб)
                                          1. Введение                                25.09.2011         6 / 25
Булевы функции


   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 переменных
           n
   равно 22 , то есть дважды экспоненциально.



     А. Куликов                (Computer Science клуб)
                                          1. Введение                                25.09.2011         6 / 25
Симметрические булевы функции




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   7 / 25
Симметрические булевы функции



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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   7 / 25
Симметрические булевы функции



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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   7 / 25
Симметрические булевы функции



   Функция f называется симметрической, если её значение зависит
   только от суммы входных битов.
   Всего есть 2n+1 различных симметрических функций.
Примеры
   пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k;
                        k




     А. Куликов         (Computer Science клуб)
                                   1. Введение             25.09.2011   7 / 25
Симметрические булевы функции



   Функция f называется симметрической, если её значение зависит
   только от суммы входных битов.
   Всего есть 2n+1 различных симметрических функций.
Примеры
   пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k;
                        k

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




     А. Куликов         (Computer Science клуб)
                                   1. Введение                25.09.2011   7 / 25
Симметрические булевы функции



   Функция f называется симметрической, если её значение зависит
   только от суммы входных битов.
   Всего есть 2n+1 различных симметрических функций.
Примеры
   пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k;
                        k

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




     А. Куликов         (Computer Science клуб)
                                   1. Введение                   25.09.2011   7 / 25
Симметрические булевы функции



   Функция f называется симметрической, если её значение зависит
   только от суммы входных битов.
   Всего есть 2n+1 различных симметрических функций.
Примеры
   пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k;
                        k

   функция голосования: Majn (x) = 1 ⇔ x1 + · · · + xn ≥ ⌈n/2⌉;
   функция чётности: ⊕n (x) = 1 ⇔ x1 + · · · + xn ≡ 1 (mod 2);
   функция остатка по модулю: MODn = 1 ⇔ x1 + · · · + xn ≡ 0 (mod k).
                                 k




     А. Куликов         (Computer Science клуб)
                                   1. Введение                   25.09.2011   7 / 25
Ещё примеры булевых функций




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   8 / 25
Ещё примеры булевых функций
   В общем-то, любое свойство можно задать с помощью булевой
   функции.




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   8 / 25
Ещё примеры булевых функций
   В общем-то, любое свойство можно задать с помощью булевой
   функции.
   Например, свойство числа быть простым“ задаёт булеву
                               ”
   функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1
                                     ∑︀
                                        i=1      простое число.
   Не так давно было доказано, что эта функция может быть
   детерминированно вычислена за полиномиальное от n время
   [Agrawal, Kayal, Saxena, 2004].




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   8 / 25
Ещё примеры булевых функций
   В общем-то, любое свойство можно задать с помощью булевой
   функции.
   Например, свойство числа быть простым“ задаёт булеву
                               ”
   функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1
                                     ∑︀
                                        i=1         простое число.
   Не так давно было доказано, что эта функция может быть
   детерминированно вычислена за полиномиальное от n время
   [Agrawal, Kayal, Saxena, 2004].
   Чтобы описать свойство графа, надо задать функцию на Cn   2

   переменных. Каждый вектор x длины Cn   2 задает граф G :
                                                         x
   переменная xij отвечает за наличие ребра между вершинами i и j.




    А. Куликов       (Computer Science клуб)
                                1. Введение           25.09.2011   8 / 25
Ещё примеры булевых функций
   В общем-то, любое свойство можно задать с помощью булевой
   функции.
   Например, свойство числа быть простым“ задаёт булеву
                               ”
   функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1
                                     ∑︀
                                        i=1         простое число.
   Не так давно было доказано, что эта функция может быть
   детерминированно вычислена за полиномиальное от n время
   [Agrawal, Kayal, Saxena, 2004].
   Чтобы описать свойство графа, надо задать функцию на Cn   2

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




    А. Куликов       (Computer Science клуб)
                                1. Введение           25.09.2011   8 / 25
Ещё примеры булевых функций
   В общем-то, любое свойство можно задать с помощью булевой
   функции.
   Например, свойство числа быть простым“ задаёт булеву
                               ”
   функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1
                                     ∑︀
                                        i=1         простое число.
   Не так давно было доказано, что эта функция может быть
   детерминированно вычислена за полиномиальное от n время
   [Agrawal, Kayal, Saxena, 2004].
   Чтобы описать свойство графа, надо задать функцию на Cn   2

   переменных. Каждый вектор x длины Cn   2 задает граф G :
                                                         x
   переменная xij отвечает за наличие ребра между вершинами i и j.
   Пример сложного для вычисления свойства графа функция
   клики: CLIQUE(n, k) принимает вектор x тогда и только тогда,
   когда Gx содержит клику размера k.
   До сих пор неизвестно, может ли данная функция быть
   вычислена за полиномиальное время. Из доказательства
   отрицательного ответа будет тут же следовать P̸=NP.
    А. Куликов       (Computer Science клуб)
                                1. Введение           25.09.2011   8 / 25
План лекции



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


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


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




       А. Куликов     (Computer Science клуб)
                                 1. Введение        25.09.2011   9 / 25
Пример схемы



                                              x1     x2     x3       1
         g1 = x1 ⊕ x2
                                              g1 ⊕ g2 ∧
         g2 = x2 ∧ x3
         g3 = g1 ∨ g2                              g3 ∨ g4 ∨
         g4 = g2 ∨ 1
         g5 = g3 ≡ g 4                               g5 ≡




    А. Куликов      (Computer Science клуб)
                               1. Введение                     25.09.2011   10 / 25
Формальное определение




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   11 / 25
Формальное определение



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




    А. Куликов        (Computer Science клуб)
                                 1. Введение             25.09.2011   11 / 25
Формальное определение



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




    А. Куликов        (Computer Science клуб)
                                 1. Введение             25.09.2011   11 / 25
Формулы и схемы де Моргана




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   12 / 25
Формулы и схемы де Моргана


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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   12 / 25
Формулы и схемы де Моргана


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



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



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


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


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




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



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


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


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




       А. Куликов     (Computer Science клуб)
                                 1. Введение       25.09.2011   14 / 25
Функция Шэннона




    А. Куликов    (Computer Science клуб)
                             1. Введение    25.09.2011   15 / 25
Функция Шэннона



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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   15 / 25
Функция Шэннона



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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   15 / 25
Функция Шэннона



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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   15 / 25
Схемная сложность случайной функции




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   16 / 25
Схемная сложность случайной функции
   Из соображений мощности (Shannon, 1949): оценим, какое
   количество функций от n переменных могут быть вычислены
                                                           n
   схемам размера t, и сравним полученное число с числом 22 всех
   функций от n переменных.




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   16 / 25
Схемная сложность случайной функции
   Из соображений мощности (Shannon, 1949): оценим, какое
   количество функций от n переменных могут быть вычислены
                                                             n
   схемам размера t, и сравним полученное число с числом 22 всех
   функций от n переменных.
   Число F (n, t) схем размера ≤ t от n переменных не превосходит
                                            )︀t
                              16(t + n + 2)2 .
                           (︀

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




    А. Куликов      (Computer Science клуб)
                               1. Введение          25.09.2011   16 / 25
Схемная сложность случайной функции
   Из соображений мощности (Shannon, 1949): оценим, какое
   количество функций от n переменных могут быть вычислены
                                                             n
   схемам размера t, и сравним полученное число с числом 22 всех
   функций от n переменных.
   Число F (n, t) схем размера ≤ t от n переменных не превосходит
                                            )︀t
                              16(t + n + 2)2 .
                           (︀

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




    А. Куликов        (Computer Science клуб)
                                 1. Введение            25.09.2011   16 / 25
Схемная сложность случайной функции
   Из соображений мощности (Shannon, 1949): оценим, какое
   количество функций от n переменных могут быть вычислены
                                                             n
   схемам размера t, и сравним полученное число с числом 22 всех
   функций от n переменных.
   Число F (n, t) схем размера ≤ t от n переменных не превосходит
                                            )︀t
                              16(t + n + 2)2 .
                           (︀

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



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


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


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




       А. Куликов     (Computer Science клуб)
                                 1. Введение       25.09.2011   17 / 25
Представление функции многочленом над GF(2)




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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




    А. Куликов     (Computer Science клуб)
                              1. Введение       25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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




    А. Куликов      (Computer Science клуб)
                               1. Введение        25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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

Пример: Thr3
           2




     А. Куликов      (Computer Science клуб)
                                1. Введение        25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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

Пример: Thr3
           2

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




      А. Куликов         (Computer Science клуб)
                                    1. Введение                  25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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

Пример: Thr3
           2

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

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




      А. Куликов            (Computer Science клуб)
                                       1. Введение                       25.09.2011   18 / 25
Представление функции многочленом над GF(2)

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

Пример: Thr3
           2

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

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

    Итак, любая функция представляется многочленом. Чтобы
    понять, что такой многочлен единственен, достаточно заметить,
    что количество различных функций и количество различных
                                     n
    многочленов совпадают и равны 22 .
      А. Куликов            (Computer Science клуб)
                                       1. Введение                       25.09.2011   18 / 25
Очевидная верхняя оценка




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   19 / 25
Очевидная верхняя оценка



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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   19 / 25
Очевидная верхняя оценка



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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   19 / 25
Очевидная верхняя оценка



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

Пример: ДНФ для Thr3         2
x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3
           ¯             ¯             ¯




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




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


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

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

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




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


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

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

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

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




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


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

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

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

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


                                                         3
   Из данного соотношения следует верхняя оценка ������(n) ≤ 4 2n − 2.



     А. Куликов              (Computer Science клуб)
                                        1. Введение                             25.09.2011   20 / 25
Дальнейшее улучшение




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   21 / 25
Дальнейшее улучшение


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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   21 / 25
Дальнейшее улучшение


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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   21 / 25
Дальнейшее улучшение


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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   21 / 25
Дальнейшее улучшение


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




    А. Куликов      (Computer Science клуб)
                               1. Введение         25.09.2011   21 / 25
Дальнейшее улучшение


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




    А. Куликов         (Computer Science клуб)
                                  1. Введение      25.09.2011   21 / 25
Дальнейшее улучшение


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



     А. Куликов        (Computer Science клуб)
                                  1. Введение               25.09.2011   21 / 25
Вычисление всех функций одновременно




    А. Куликов   (Computer Science клуб)
                            1. Введение    25.09.2011   22 / 25
Вычисление всех функций одновременно


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




    А. Куликов      (Computer Science клуб)
                               1. Введение           25.09.2011   22 / 25
Вычисление всех функций одновременно


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




    А. Куликов      (Computer Science клуб)
                               1. Введение           25.09.2011   22 / 25
Вычисление всех функций одновременно


   Итак, осталось показать, как вычислить все функции от k
                    k
   переменных за 22 гейтов.
   Сначала вычислим все мономы, последовательно увеличивая их
   размер. Потом вычислим все суммы мономов, последовательно
   увеличивая количество членов в сумме. Таким образом, получим
         k
   все 22 многочленов от k переменных.
   Мономы степени 0 и 1 у нас уже есть        это просто две константы
   и k входных переменных.




    А. Куликов      (Computer Science клуб)
                               1. Введение               25.09.2011   22 / 25
Вычисление всех функций одновременно


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




    А. Куликов      (Computer Science клуб)
                               1. Введение               25.09.2011   22 / 25
Вычисление всех функций одновременно


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


    А. Куликов      (Computer Science клуб)
                               1. Введение               25.09.2011   22 / 25
Более точная оценка




Используя более хитрую конструкцию, Лупанов (1958) доказал, что
                          (︂     (︂       )︂)︂ n
                                    log n     2
                   ������(n) ≤ 1 + O                 .
                                      n        n




      А. Куликов     (Computer Science клуб)
                                1. Введение          25.09.2011   23 / 25
Текущие рекорды




    А. Куликов    (Computer Science клуб)
                             1. Введение    25.09.2011   24 / 25
Текущие рекорды

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




    А. Куликов      (Computer Science клуб)
                               1. Введение        25.09.2011   24 / 25
Текущие рекорды

   Итак, мы узнали, что схемная сложность почти любой функции
   из 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 / 25
Спасибо за внимание!




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

More Related Content

What's hot

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenkoComputer Science Club
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Technosphere1
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокTechnosphere1
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Technosphere1
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Technosphere1
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблейTechnosphere1
 
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlinComputer Science Club
 
логические элементы пк
логические элементы пклогические элементы пк
логические элементы пкRushitech
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Technosphere1
 
Derivative lesson
Derivative lessonDerivative lesson
Derivative lessonmarinarum
 
презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12galinalevna
 
20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnevComputer Science Club
 
20110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture1020110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture10Computer Science Club
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияTechnosphere1
 

What's hot (20)

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko20111120 circuit complexity_seminar_lecture09_alexeenko
20111120 circuit complexity_seminar_lecture09_alexeenko
 
Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии" Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №6 "Линейные модели для классификации и регрессии"
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin20111023 circuit complexity_seminar_lecture04_mihajlin
20111023 circuit complexity_seminar_lecture04_mihajlin
 
логические элементы пк
логические элементы пклогические элементы пк
логические элементы пк
 
Soboland Sat
Soboland SatSoboland Sat
Soboland Sat
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
вычислительная практика
вычислительная практикавычислительная практика
вычислительная практика
 
Derivative lesson
Derivative lessonDerivative lesson
Derivative lesson
 
презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12
 
20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev20111106 circuit complexity_seminar_lecture06_golovnev
20111106 circuit complexity_seminar_lecture06_golovnev
 
20110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture1020110409 quantum algorithms_vyali_lecture10
20110409 quantum algorithms_vyali_lecture10
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 

Viewers also liked

How can executives use social media to achieve organization strategic goals?
How can executives use social media to achieve organization strategic goals?How can executives use social media to achieve organization strategic goals?
How can executives use social media to achieve organization strategic goals?Rendani Nevhulaudzi
 
Profil SD Negeri Karangampel Kidul IV
Profil SD Negeri Karangampel Kidul IVProfil SD Negeri Karangampel Kidul IV
Profil SD Negeri Karangampel Kidul IVGhian Velina
 
Motoclinic
MotoclinicMotoclinic
MotoclinicJo Maia
 
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...Gobierno Abierto Paraguay
 
Complacency in the Face of Evolving Cybersecurity Norms is Hazardous
Complacency in the Face of Evolving Cybersecurity Norms is HazardousComplacency in the Face of Evolving Cybersecurity Norms is Hazardous
Complacency in the Face of Evolving Cybersecurity Norms is HazardousEthan S. Burger
 
recent resume 2016
recent resume 2016recent resume 2016
recent resume 2016Anna Kuzieva
 

Viewers also liked (12)

How can executives use social media to achieve organization strategic goals?
How can executives use social media to achieve organization strategic goals?How can executives use social media to achieve organization strategic goals?
How can executives use social media to achieve organization strategic goals?
 
Mohave
MohaveMohave
Mohave
 
MS_Degree
MS_DegreeMS_Degree
MS_Degree
 
Profil SD Negeri Karangampel Kidul IV
Profil SD Negeri Karangampel Kidul IVProfil SD Negeri Karangampel Kidul IV
Profil SD Negeri Karangampel Kidul IV
 
Motoclinic
MotoclinicMotoclinic
Motoclinic
 
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...
(El Índice de Democracia Ambiental La Iniciativa de Acceso y el Instituto Mun...
 
Exercicio.
Exercicio. Exercicio.
Exercicio.
 
Brinquedos papagueno
Brinquedos papaguenoBrinquedos papagueno
Brinquedos papagueno
 
Complacency in the Face of Evolving Cybersecurity Norms is Hazardous
Complacency in the Face of Evolving Cybersecurity Norms is HazardousComplacency in the Face of Evolving Cybersecurity Norms is Hazardous
Complacency in the Face of Evolving Cybersecurity Norms is Hazardous
 
Trabajo ingles Luz Mercedes Rincon Pinto
Trabajo ingles Luz Mercedes Rincon Pinto Trabajo ingles Luz Mercedes Rincon Pinto
Trabajo ingles Luz Mercedes Rincon Pinto
 
recent resume 2016
recent resume 2016recent resume 2016
recent resume 2016
 
ATELIER INES.K
ATELIER INES.KATELIER INES.K
ATELIER INES.K
 

Similar to 20110925 circuit complexity_seminar_lecture01_kulikov

20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02Computer Science Club
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03Computer Science Club
 
20071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture0520071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture05Computer Science Club
 
20071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture1120071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture11Computer Science Club
 
ИНТЕГРАЛ ТАЛБАЙ /Integral/
 ИНТЕГРАЛ ТАЛБАЙ /Integral/ ИНТЕГРАЛ ТАЛБАЙ /Integral/
ИНТЕГРАЛ ТАЛБАЙ /Integral/Khishighuu Myanganbuu
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлKirill Netreba
 
20091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture0320091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture03Computer Science Club
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015LIPugach
 
20091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture0520091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture05Computer Science Club
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийTheoretical mechanics department
 
Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Sergey Tihon
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравненийTheoretical mechanics department
 
20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikovComputer Science Club
 
20091206 algorithmsfornphardproblems kulikov_lecture11
20091206 algorithmsfornphardproblems kulikov_lecture1120091206 algorithmsfornphardproblems kulikov_lecture11
20091206 algorithmsfornphardproblems kulikov_lecture11Computer Science Club
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08Computer Science Club
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08Computer Science Club
 

Similar to 20110925 circuit complexity_seminar_lecture01_kulikov (20)

20090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture0220090913 algorithmsfornphardproblems kulikov_lecture02
20090913 algorithmsfornphardproblems kulikov_lecture02
 
20110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture0320110403 quantum algorithms_vyali_lecture03
20110403 quantum algorithms_vyali_lecture03
 
20071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture0520071111 efficientalgorithms kulikov_lecture05
20071111 efficientalgorithms kulikov_lecture05
 
20071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture1120071202 efficientalgorithms kulikov_lecture11
20071202 efficientalgorithms kulikov_lecture11
 
ИНТЕГРАЛ ТАЛБАЙ /Integral/
 ИНТЕГРАЛ ТАЛБАЙ /Integral/ ИНТЕГРАЛ ТАЛБАЙ /Integral/
ИНТЕГРАЛ ТАЛБАЙ /Integral/
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёл
 
20091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture0320091025 algorithmsfornphardproblems kulikov_lecture03
20091025 algorithmsfornphardproblems kulikov_lecture03
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
20091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture0520091101 algorithmsfornphardproblems kulikov_lecture05
20091101 algorithmsfornphardproblems kulikov_lecture05
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
презентация к уроку 1
презентация к уроку 1презентация к уроку 1
презентация к уроку 1
 
Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.Haskell Type System with Dzmitry Ivashnev.
Haskell Type System with Dzmitry Ivashnev.
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление. Урок 6. Чистое лямбда-исчисление.
Урок 6. Чистое лямбда-исчисление.
 
20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov20111002 circuit complexity_seminar_lecture03_kulikov
20111002 circuit complexity_seminar_lecture03_kulikov
 
20091206 algorithmsfornphardproblems kulikov_lecture11
20091206 algorithmsfornphardproblems kulikov_lecture1120091206 algorithmsfornphardproblems kulikov_lecture11
20091206 algorithmsfornphardproblems kulikov_lecture11
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08
 
20110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture0820110409 quantum algorithms_vyali_lecture08
20110409 quantum algorithms_vyali_lecture08
 
Урок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графовУрок 8. Введение в редукцию графов
Урок 8. Введение в редукцию графов
 
урок 1
урок 1урок 1
урок 1
 

More from Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20110925 circuit complexity_seminar_lecture01_kulikov

  • 1. Семинар по сложности булевых функций Лекция 1: Введение А. Куликов Computer Science клуб при ПОМИ http://compsciclub.ru 25.09.2011 А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 1 / 25
  • 2. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 2 / 25
  • 3. Теория сложности вычислений А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 3 / 25
  • 4. Теория сложности вычислений Структурная теория сложности изучает следующие вопросы: является ли память более мощным ресурсом, чем время? улучшают ли случайные числа мощь вычислительных ресурсов? легче ли проверить доказательство, чем найти его? Мы до сих пор не знаем ответов на эти вопросы. Большинство результатов в структурной теории сложности условные, то есть опираются на недоказанные предположения (такие, как P̸=NP). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 3 / 25
  • 5. Теория сложности вычислений Структурная теория сложности изучает следующие вопросы: является ли память более мощным ресурсом, чем время? улучшают ли случайные числа мощь вычислительных ресурсов? легче ли проверить доказательство, чем найти его? Мы до сих пор не знаем ответов на эти вопросы. Большинство результатов в структурной теории сложности условные, то есть опираются на недоказанные предположения (такие, как P̸=NP). Схемная сложность изучает нижние оценки на вычислительную сложность конкретных задач (например, умножение матриц или проверка наличия больших клик в графе). Рассматриваются конкретные модели вычисления такие, как разрешающие деревья, ветвящиеся программы, булевы формулы, различные классы булевых схем, коммуникационные протоколы. Целью данной области являются безусловные нижние оценки. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 3 / 25
  • 6. Нижние оценки А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 4 / 25
  • 7. Нижние оценки Простейшие булевы функции: конъюнкция (произведение) x · y , исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y , отрицание ¬x = 1 − x. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 4 / 25
  • 8. Нижние оценки Простейшие булевы функции: конъюнкция (произведение) x · y , исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y , отрицание ¬x = 1 − x. Центральная задача: сколько таких базовых операций необходимо для того, чтобы вычислить данную булеву функцию f : {0, 1}n → {0, 1}? А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 4 / 25
  • 9. Нижние оценки Простейшие булевы функции: конъюнкция (произведение) x · y , исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y , отрицание ¬x = 1 − x. Центральная задача: сколько таких базовых операций необходимо для того, чтобы вычислить данную булеву функцию f : {0, 1}n → {0, 1}? Сложность доказательства нижних оценок идёт от нашего противника схемы. Схемы небольшого размера могут производить вычисления очень контринтуитивно. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 4 / 25
  • 10. Нижние оценки Простейшие булевы функции: конъюнкция (произведение) x · y , исключающее ИЛИ (сумма по модулю 2) x ⊕ y , ИЛИ x ∨ y , отрицание ¬x = 1 − x. Центральная задача: сколько таких базовых операций необходимо для того, чтобы вычислить данную булеву функцию f : {0, 1}n → {0, 1}? Сложность доказательства нижних оценок идёт от нашего противника схемы. Схемы небольшого размера могут производить вычисления очень контринтуитивно. Как доказать, что нет хитрого способа вычислить функцию? А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 4 / 25
  • 11. Нижние оценки Простейшие булевы функции: конъюнкция (произведение) 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 / 25
  • 12. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 5 / 25
  • 13. Булевы функции А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 6 / 25
  • 14. Булевы функции Bn это множество всех булевых функций f : {0, 1}n → {0, 1} от n переменных. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 6 / 25
  • 15. Булевы функции Bn это множество всех булевых функций f : {0, 1}n → {0, 1} от n переменных. Булева функция f ∈ Bn принимает вектор a ∈ {0, 1}n , если f (a) = 1, и отвергает в противном случае. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 6 / 25
  • 16. Булевы функции 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 ). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 6 / 25
  • 17. Булевы функции 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 переменных n равно 22 , то есть дважды экспоненциально. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 6 / 25
  • 18. Симметрические булевы функции А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 19. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 20. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. Всего есть 2n+1 различных симметрических функций. Примеры А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 21. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. Всего есть 2n+1 различных симметрических функций. Примеры пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k; k А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 22. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. Всего есть 2n+1 различных симметрических функций. Примеры пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k; k функция голосования: Majn (x) = 1 ⇔ x1 + · · · + xn ≥ ⌈n/2⌉; А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 23. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. Всего есть 2n+1 различных симметрических функций. Примеры пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k; k функция голосования: Majn (x) = 1 ⇔ x1 + · · · + xn ≥ ⌈n/2⌉; функция чётности: ⊕n (x) = 1 ⇔ x1 + · · · + xn ≡ 1 (mod 2); А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 24. Симметрические булевы функции Функция f называется симметрической, если её значение зависит только от суммы входных битов. Всего есть 2n+1 различных симметрических функций. Примеры пороговая функция: Thn (x) = 1 ⇔ x1 + · · · + xn ≥ k; k функция голосования: Majn (x) = 1 ⇔ x1 + · · · + xn ≥ ⌈n/2⌉; функция чётности: ⊕n (x) = 1 ⇔ x1 + · · · + xn ≡ 1 (mod 2); функция остатка по модулю: MODn = 1 ⇔ x1 + · · · + xn ≡ 0 (mod k). k А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 7 / 25
  • 25. Ещё примеры булевых функций А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 26. Ещё примеры булевых функций В общем-то, любое свойство можно задать с помощью булевой функции. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 27. Ещё примеры булевых функций В общем-то, любое свойство можно задать с помощью булевой функции. Например, свойство числа быть простым“ задаёт булеву ” функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1 ∑︀ i=1 простое число. Не так давно было доказано, что эта функция может быть детерминированно вычислена за полиномиальное от n время [Agrawal, Kayal, Saxena, 2004]. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 28. Ещё примеры булевых функций В общем-то, любое свойство можно задать с помощью булевой функции. Например, свойство числа быть простым“ задаёт булеву ” функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1 ∑︀ i=1 простое число. Не так давно было доказано, что эта функция может быть детерминированно вычислена за полиномиальное от n время [Agrawal, Kayal, Saxena, 2004]. Чтобы описать свойство графа, надо задать функцию на Cn 2 переменных. Каждый вектор x длины Cn 2 задает граф G : x переменная xij отвечает за наличие ребра между вершинами i и j. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 29. Ещё примеры булевых функций В общем-то, любое свойство можно задать с помощью булевой функции. Например, свойство числа быть простым“ задаёт булеву ” функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1 ∑︀ i=1 простое число. Не так давно было доказано, что эта функция может быть детерминированно вычислена за полиномиальное от n время [Agrawal, Kayal, Saxena, 2004]. Чтобы описать свойство графа, надо задать функцию на Cn 2 переменных. Каждый вектор x длины Cn 2 задает граф G : x переменная xij отвечает за наличие ребра между вершинами i и j. Пример сложного для вычисления свойства графа функция клики: CLIQUE(n, k) принимает вектор x тогда и только тогда, когда Gx содержит клику размера k. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 30. Ещё примеры булевых функций В общем-то, любое свойство можно задать с помощью булевой функции. Например, свойство числа быть простым“ задаёт булеву ” функцию PRIME: PRIME(x) = 1 ⇔ n xi 2i−1 ∑︀ i=1 простое число. Не так давно было доказано, что эта функция может быть детерминированно вычислена за полиномиальное от n время [Agrawal, Kayal, Saxena, 2004]. Чтобы описать свойство графа, надо задать функцию на Cn 2 переменных. Каждый вектор x длины Cn 2 задает граф G : x переменная xij отвечает за наличие ребра между вершинами i и j. Пример сложного для вычисления свойства графа функция клики: CLIQUE(n, k) принимает вектор x тогда и только тогда, когда Gx содержит клику размера k. До сих пор неизвестно, может ли данная функция быть вычислена за полиномиальное время. Из доказательства отрицательного ответа будет тут же следовать P̸=NP. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 8 / 25
  • 31. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 9 / 25
  • 32. Пример схемы x1 x2 x3 1 g1 = x1 ⊕ x2 g1 ⊕ g2 ∧ g2 = x2 ∧ x3 g3 = g1 ∨ g2 g3 ∨ g4 ∨ g4 = g2 ∨ 1 g5 = g3 ≡ g 4 g5 ≡ А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 10 / 25
  • 33. Формальное определение А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 11 / 25
  • 34. Формальное определение Итак, булева схема от n переменных над базисом Φ это последовательность g1 , . . . , gt из t ≥ n булевых функций, такая что первые n функций являются просто входными переменными g1 = x1 , . . . , gn = xn , а каждая следующая функция gi является применением gi = ������(gi1 , . . . , gud ) базовой функции ������ ∈ Φ к некоторым из предыдущих функций. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 11 / 25
  • 35. Формальное определение Итак, булева схема от n переменных над базисом Φ это последовательность g1 , . . . , gt из t ≥ n булевых функций, такая что первые n функций являются просто входными переменными g1 = x1 , . . . , gn = xn , а каждая следующая функция gi является применением gi = ������(gi1 , . . . , gud ) базовой функции ������ ∈ Φ к некоторым из предыдущих функций. Размером схемы называется количество (t − n) её гейтов (функциональных элементов). Глубиной называется длина самого длинного пути от входной переменной до выхода. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 11 / 25
  • 36. Формулы и схемы де Моргана А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 12 / 25
  • 37. Формулы и схемы де Моргана Формулой называется схема, соответствующий граф которой является деревом. Основное отличие от схем заключается в том, что результат вычислений каждого гейта не может быть использован более одного раза. Формула может быть записана в одну строчку. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 12 / 25
  • 38. Формулы и схемы де Моргана Формулой называется схема, соответствующий граф которой является деревом. Основное отличие от схем заключается в том, что результат вычислений каждого гейта не может быть использован более одного раза. Формула может быть записана в одну строчку. Схемой де Моргана называется схема над базисом {∧, ∨}, входами которой являются литералы, то есть переменные и их отрицания. Другими словами, отрицания применяются только ко входам. Используя правила де Моргана ¬(x ∨ y ) = ¬x ∧ ¬y и ¬(x ∧ y ) = ¬x ∨ ¬y , любую схему над базисом {∧, ∨, ¬} можно преобразовать в схему де Моргана, увеличив размер не более, чем в двое. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 12 / 25
  • 39. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 13 / 25
  • 40. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 14 / 25
  • 41. Функция Шэннона А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 15 / 25
  • 42. Функция Шэннона Функция Шэннона (для некоторой модели схем): ������(n) это максимальный размер схемной сложности функции от n переменных. Другими словами, ������(n) есть такое минимальное число t, что любая функция от n переменных может быть вычислена схемами размера t. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 15 / 25
  • 43. Функция Шэннона Функция Шэннона (для некоторой модели схем): ������(n) это максимальный размер схемной сложности функции от n переменных. Другими словами, ������(n) есть такое минимальное число t, что любая функция от n переменных может быть вычислена схемами размера t. Как правило, под функцией f подразумевается бесконечная последовательность функций f = {fn | n = 1, 2, . . . }. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 15 / 25
  • 44. Функция Шэннона Функция Шэннона (для некоторой модели схем): ������(n) это максимальный размер схемной сложности функции от n переменных. Другими словами, ������(n) есть такое минимальное число t, что любая функция от n переменных может быть вычислена схемами размера t. Как правило, под функцией f подразумевается бесконечная последовательность функций f = {fn | n = 1, 2, . . . }. Замечание: в дальнейшем рассматриваем схемы над полным бинарным базисом B2 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 15 / 25
  • 45. Схемная сложность случайной функции А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 16 / 25
  • 46. Схемная сложность случайной функции Из соображений мощности (Shannon, 1949): оценим, какое количество функций от n переменных могут быть вычислены n схемам размера t, и сравним полученное число с числом 22 всех функций от n переменных. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 16 / 25
  • 47. Схемная сложность случайной функции Из соображений мощности (Shannon, 1949): оценим, какое количество функций от n переменных могут быть вычислены n схемам размера t, и сравним полученное число с числом 22 всех функций от n переменных. Число F (n, t) схем размера ≤ t от n переменных не превосходит )︀t 16(t + n + 2)2 . (︀ Каждый из t гейтов вычисляет одну из 16 возможных бинарных булевых функций и зависит от двух предыдущих гейтов, которые могут быть гейтов (≤ t возможностей) или же переменной или константой (≤ n + 2 возможностей). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 16 / 25
  • 48. Схемная сложность случайной функции Из соображений мощности (Shannon, 1949): оценим, какое количество функций от n переменных могут быть вычислены n схемам размера t, и сравним полученное число с числом 22 всех функций от n переменных. Число F (n, t) схем размера ≤ t от n переменных не превосходит )︀t 16(t + n + 2)2 . (︀ Каждый из t гейтов вычисляет одну из 16 возможных бинарных булевых функций и зависит от двух предыдущих гейтов, которые могут быть гейтов (≤ t возможностей) или же переменной или константой (≤ n + 2 возможностей). n n Для t = 2n /(10n), F (n, t) приблизительно равно 22 /5 , что ≪ 22 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 16 / 25
  • 49. Схемная сложность случайной функции Из соображений мощности (Shannon, 1949): оценим, какое количество функций от n переменных могут быть вычислены n схемам размера t, и сравним полученное число с числом 22 всех функций от n переменных. Число F (n, t) схем размера ≤ t от n переменных не превосходит )︀t 16(t + n + 2)2 . (︀ Каждый из t гейтов вычисляет одну из 16 возможных бинарных булевых функций и зависит от двух предыдущих гейтов, которые могут быть гейтов (≤ t возможностей) или же переменной или константой (≤ n + 2 возможностей). n n Для t = 2n /(10n), F (n, t) приблизительно равно 22 /5 , что ≪ 22 . Таким образом, схемная сложность почти всех функций от n переменных экспоненциальна по n. В то же время неизвестно ни одной явной функции, требующей схем более чем линейного размера. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 16 / 25
  • 50. План лекции 1 Булевы функции 2 Булевы схемы 3 Почти все функции имеют большую схемную сложность Нижняя оценка Верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 17 / 25
  • 51. Представление функции многочленом над GF(2) А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 52. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 53. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). Чтобы представить функцию многочленом, достаточно взять все вектора, принимаемые этой функцией, и сложить соответствующие им элементарные конъюнкции. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 54. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). Чтобы представить функцию многочленом, достаточно взять все вектора, принимаемые этой функцией, и сложить соответствующие им элементарные конъюнкции. Пример: Thr3 2 А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 55. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). Чтобы представить функцию многочленом, достаточно взять все вектора, принимаемые этой функцией, и сложить соответствующие им элементарные конъюнкции. Пример: Thr3 2 Рассмотрим функцию Thr3 : Thr3 (x1 , x2 , x3 ) = 1 ⇔ x1 + x2 + x3 ≥ 2 . 2 2 А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 56. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). Чтобы представить функцию многочленом, достаточно взять все вектора, принимаемые этой функцией, и сложить соответствующие им элементарные конъюнкции. Пример: Thr3 2 Рассмотрим функцию Thr3 : Thr3 (x1 , x2 , x3 ) = 1 ⇔ x1 + x2 + x3 ≥ 2 . 2 2 Соответствующий многочлен: x1 x2 x3 + (1 − x1 )x2 x3 + x1 (1 − x2 )x3 + x1 x2 (1 − x3 ) = x1 x2 + x2 x3 + x3 x1 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 57. Представление функции многочленом над GF(2) Любую функцию f ∈ Bn можно представить (причём единственным образом) многочленом над GF(2). Чтобы представить функцию многочленом, достаточно взять все вектора, принимаемые этой функцией, и сложить соответствующие им элементарные конъюнкции. Пример: Thr3 2 Рассмотрим функцию Thr3 : Thr3 (x1 , x2 , x3 ) = 1 ⇔ x1 + x2 + x3 ≥ 2 . 2 2 Соответствующий многочлен: x1 x2 x3 + (1 − x1 )x2 x3 + x1 (1 − x2 )x3 + x1 x2 (1 − x3 ) = x1 x2 + x2 x3 + x3 x1 . Итак, любая функция представляется многочленом. Чтобы понять, что такой многочлен единственен, достаточно заметить, что количество различных функций и количество различных n многочленов совпадают и равны 22 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 18 / 25
  • 58. Очевидная верхняя оценка А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 19 / 25
  • 59. Очевидная верхняя оценка Из представления функции многочленом сразу следует, что схемная сложность любой функции не превосходит n2n . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 19 / 25
  • 60. Очевидная верхняя оценка Из представления функции многочленом сразу следует, что схемная сложность любой функции не превосходит n2n . Такую же верхнюю оценку можно получить, заметив, что любую функцию можно представить в виде конъюнктивной нормальной формы (КНФ), то есть конъюнкции дизъюнкций литералов, или конъюнктивной нормальной формы (КНФ), то есть дизъюнкции конъюнкций литералов. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 19 / 25
  • 61. Очевидная верхняя оценка Из представления функции многочленом сразу следует, что схемная сложность любой функции не превосходит n2n . Такую же верхнюю оценку можно получить, заметив, что любую функцию можно представить в виде конъюнктивной нормальной формы (КНФ), то есть конъюнкции дизъюнкций литералов, или конъюнктивной нормальной формы (КНФ), то есть дизъюнкции конъюнкций литералов. Пример: ДНФ для Thr3 2 x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ¯ ¯ ¯ А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 19 / 25
  • 62. Улучшение А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 20 / 25
  • 63. Улучшение Чтобы получить более сильную оценку, нужно заметить, что функцию f ∈ Bn всегда можно представить как f (x1 , . . . , xn ) = f0 (x1 , . . . , xn−1 ) + xn fΔ (x1 , . . . , xn−1 ) , где fΔ = f0 + f1 , а f0 = f |xn =0 и f1 = f |xn =1 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 20 / 25
  • 64. Улучшение Чтобы получить более сильную оценку, нужно заметить, что функцию f ∈ Bn всегда можно представить как f (x1 , . . . , xn ) = f0 (x1 , . . . , xn−1 ) + xn fΔ (x1 , . . . , xn−1 ) , где fΔ = f0 + f1 , а f0 = f |xn =0 и f1 = f |xn =1 . Это даёт нам следующее рекуррентное соотношение: ������(n) ≤ 2������(n − 1) + 2, ������(1) = 1 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 20 / 25
  • 65. Улучшение Чтобы получить более сильную оценку, нужно заметить, что функцию f ∈ Bn всегда можно представить как f (x1 , . . . , xn ) = f0 (x1 , . . . , xn−1 ) + xn fΔ (x1 , . . . , xn−1 ) , где fΔ = f0 + f1 , а f0 = f |xn =0 и f1 = f |xn =1 . Это даёт нам следующее рекуррентное соотношение: ������(n) ≤ 2������(n − 1) + 2, ������(1) = 1 . 3 Из данного соотношения следует верхняя оценка ������(n) ≤ 4 2n − 2. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 20 / 25
  • 66. Дальнейшее улучшение А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 67. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 68. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. Это даст нам рекуррентное соотношение вида ������′ (n) ≤ 2������′ (n − 1) + 2, ������′ (k) = 0 . А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 69. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. Это даст нам рекуррентное соотношение вида ������′ (n) ≤ 2������′ (n − 1) + 2, ������′ (k) = 0 . Тогда после предвычисления нам понадобится не более ������′ (n) ≤ 2 · 2n−k − 2 гейтов. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 70. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. Это даст нам рекуррентное соотношение вида ������′ (n) ≤ 2������′ (n − 1) + 2, ������′ (k) = 0 . Тогда после предвычисления нам понадобится не более ������′ (n) ≤ 2 · 2n−k − 2 гейтов. Ниже мы покажем, что на предвычисление понадобится не более k 22 гейтов. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 71. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. Это даст нам рекуррентное соотношение вида ������′ (n) ≤ 2������′ (n − 1) + 2, ������′ (k) = 0 . Тогда после предвычисления нам понадобится не более ������′ (n) ≤ 2 · 2n−k − 2 гейтов. Ниже мы покажем, что на предвычисление понадобится не более k 22 гейтов. k Тогда ������(n) ≤ 22 + 2 · 2n−k − 2. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 72. Дальнейшее улучшение Идея улучшения (Shannon, 1949): вместо того, чтобы рекурсивно спускаться до n = 1, предвычислим все булевы функции от k ≪ n переменных. Это даст нам рекуррентное соотношение вида ������′ (n) ≤ 2������′ (n − 1) + 2, ������′ (k) = 0 . Тогда после предвычисления нам понадобится не более ������′ (n) ≤ 2 · 2n−k − 2 гейтов. Ниже мы покажем, что на предвычисление понадобится не более k 22 гейтов. k Тогда ������(n) ≤ 22 + 2 · 2n−k − 2. Взяв k = ⌊log2 n − ������⌋, получим, что ������(n) ≤ 22+������ · 2n /n + o(2n /n). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 21 / 25
  • 73. Вычисление всех функций одновременно А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 74. Вычисление всех функций одновременно Итак, осталось показать, как вычислить все функции от k k переменных за 22 гейтов. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 75. Вычисление всех функций одновременно Итак, осталось показать, как вычислить все функции от k k переменных за 22 гейтов. Сначала вычислим все мономы, последовательно увеличивая их размер. Потом вычислим все суммы мономов, последовательно увеличивая количество членов в сумме. Таким образом, получим k все 22 многочленов от k переменных. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 76. Вычисление всех функций одновременно Итак, осталось показать, как вычислить все функции от k k переменных за 22 гейтов. Сначала вычислим все мономы, последовательно увеличивая их размер. Потом вычислим все суммы мономов, последовательно увеличивая количество членов в сумме. Таким образом, получим k все 22 многочленов от k переменных. Мономы степени 0 и 1 у нас уже есть это просто две константы и k входных переменных. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 77. Вычисление всех функций одновременно Итак, осталось показать, как вычислить все функции от k k переменных за 22 гейтов. Сначала вычислим все мономы, последовательно увеличивая их размер. Потом вычислим все суммы мономов, последовательно увеличивая количество членов в сумме. Таким образом, получим k все 22 многочленов от k переменных. Мономы степени 0 и 1 у нас уже есть это просто две константы и k входных переменных. Чтобы получить моном степени d , достаточно одного гейта: нужно взять моном степени d − 1 и домножить его на переменную. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 78. Вычисление всех функций одновременно Итак, осталось показать, как вычислить все функции от k k переменных за 22 гейтов. Сначала вычислим все мономы, последовательно увеличивая их размер. Потом вычислим все суммы мономов, последовательно увеличивая количество членов в сумме. Таким образом, получим k все 22 многочленов от k переменных. Мономы степени 0 и 1 у нас уже есть это просто две константы и k входных переменных. Чтобы получить моном степени d , достаточно одного гейта: нужно взять моном степени d − 1 и домножить его на переменную. Чтобы получить сумму s мономов, достаточно одного гейта: нужно взять сумму (s − 1) мономов и прибавить к ней моном. А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 22 / 25
  • 79. Более точная оценка Используя более хитрую конструкцию, Лупанов (1958) доказал, что (︂ (︂ )︂)︂ n log n 2 ������(n) ≤ 1 + O . n n А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 23 / 25
  • 80. Текущие рекорды А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 24 / 25
  • 81. Текущие рекорды Итак, мы узнали, что схемная сложность почти любой функции из Bn есть Θ(2n /n). А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 24 / 25
  • 82. Текущие рекорды Итак, мы узнали, что схемная сложность почти любой функции из 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 / 25
  • 83. Спасибо за внимание! А. Куликов (Computer Science клуб) 1. Введение 25.09.2011 25 / 25