Теорема о непринадлежности XOR классу AC⁰ — различия между версиями
Rost (обсуждение | вклад) (→Теорема) |
м (rollbackEdits.php mass rollback) |
||
(не показано 39 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
− | + | {{В разработке}} | |
− | {{ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
Строка 13: | Строка 5: | ||
}} | }} | ||
+ | Предположим, что [[ДНФ]] <tex>C</tex> распознает язык <tex>\oplus</tex>. Каждый [[ДНФ|конъюнкт]] <tex>C</tex> зависит от всех входных значений. В противном случае допустим, что некоторый конъюнкт <tex>C</tex> не зависит от значения <tex>x_i</tex>. Тогда можно подобрать такие входные значения, при которых значение этого конъюнкта (а значит и <tex>C</tex>) будет равно <tex>1</tex> и не зависить от значения <tex>x_i</tex>. Однако при различных значениях <tex>x_i</tex> значение <tex>C</tex> должно изменяться, так как <tex>C</tex> распознает <tex>\oplus</tex>. Значит, предположение неверно, поэтому каждый конъюнкт <tex>C</tex> зависит от всех входных значений. Пусть <tex>C</tex> состоит из конъюнктов <tex>A_1</tex>, ..., <tex>A_t</tex>. Тогда для случайного входа <tex>x \sim \left\{ 0, 1 \right\} ^n</tex> верно, что <tex>P\left[C(x)=1\right] \le \sum\limits^{t}_{i=1} {P\left[ A_i(x) = 1 \right]} \le t\cdot2^{-n}</tex>. Поскольку <tex>P\left[x \in \oplus\right] = \frac{1}{2}</tex>, то <tex>t \ge 2^{n - 1}</tex>. Аналогичный результат можно получить и для [[КНФ]]. | ||
+ | |||
+ | Отсюда и возникает вопрос: можно ли распознавать <tex>\oplus</tex> схемой полиномиального размера и постоянной глубиной? | ||
+ | |||
+ | ===Теорема=== | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
<tex>\oplus \notin \mathrm{AC^0}</tex>. | <tex>\oplus \notin \mathrm{AC^0}</tex>. | ||
|proof= | |proof= | ||
− | + | ===Основная идея=== | |
+ | Допустим, что схема из [[Классы NC и AC| класса]] <tex>\mathrm{AC^0}</tex> распознает язык <tex>\oplus</tex>. Оказывается, что с высокой вероятностью схему из класса <tex>\mathrm{AC^0}</tex> можно представить в виде <tex>k</tex>-КНФ или <tex>k</tex>-ДНФ, причем <tex>k</tex> не зависит от числа входов схемы. Для этого строится [[Теорема о непринадлежности XOR классу AC⁰#Технические подробности|итеративный процесс]], на каждом шаге которого некоторые случайно выбранные входные значения заменяются случайными. Поскольку степень входа не ограничена, то рассмотрим содержательный случай, когда <tex>k</tex> меньше числа входов схемы. Если с вероятностью <tex>\frac{1}{2}</tex> входу полученной схемы назначается значение, то с вероятностью не менее <tex>\frac{1}{2^k}</tex> значение схемы будет постоянным. Поскольку эта вероятность больше нуля, то для произвольной схемы из класса <tex>\mathrm{AC^0}</tex> можно подобрать значения части входов так, чтобы значение функции было постоянным и не зависит от остальных входных значений, поэтому ни одна схема из этого класса не может распознавать язык <tex>\oplus</tex>. | ||
+ | |||
+ | ===Технические подробности=== | ||
+ | Покажем, как представить схему из класса <tex>\mathrm{AC^0}</tex> в виде <tex>k</tex>-КНФ или <tex>k</tex>-ДНФ. Не умаляя общности, будем считать, что: | ||
# Выходная степень каждого элемента равна <tex>1</tex>. | # Выходная степень каждого элемента равна <tex>1</tex>. | ||
− | # Схема | + | # Схема не содержит элементов <tex>\neg</tex>. В самом деле, вместо схемы с элементами <tex>\neg</tex> можно рассмотреть эквивалентную ей схему из класса <tex>\mathrm{AC^0}</tex> с удвоенным числом входов, причем значения, подаваемые на добавленные входы будут противоположны значениям, подаваемым на исходные входы схемы. |
# Элементы <tex>\lor</tex> и <tex>\land</tex> чередуются. Значит, схему можно разбить на уровни так, что на каждом уровне все элементы будут одинаковыми. | # Элементы <tex>\lor</tex> и <tex>\land</tex> чередуются. Значит, схему можно разбить на уровни так, что на каждом уровне все элементы будут одинаковыми. | ||
− | # Нижний уровень схемы состоит из <tex>\land</tex> элементов с единичной степенью входа. | + | # Все входы лежат на одном уровне. Нижний уровень схемы состоит из <tex>\land</tex> элементов с единичной степенью входа. |
− | Построим итеративный процесс, на каждом шаге которого можно с высокой вероятностью уменьшить глубину схемы на <tex>1</tex> | + | Построим итеративный процесс, на каждом шаге которого можно с высокой вероятностью уменьшить глубину схемы на <tex>1</tex>. Пусть <tex>d~-</tex> глубина схемы, а <tex>n_0~-</tex> число входов схемы. Выберем минимальное целое <tex>b</tex> так, чтобы <tex>n_0^b</tex> было не меньше, чем число элементов в схеме. Обозначим <tex>n_i~-</tex> число входов схемы после <tex>i</tex>-го шага. Возьмем <tex>k_i=10b\cdot2^i.</tex> |
− | + | [[Файл:beforeHastadSwitchingTransformation.png|600x250px|thumb|center|Схема на <tex>i</tex>-ом шаге.]] | |
+ | |||
+ | Докажем по индукции, что после <tex>i</tex>-ого шага с достаточно большой вероятностью глубина схемы будет <tex>d - i</tex>, причем наибольшая степень входа элемента на нижнем уровне не будет превосходить <tex>k_i</tex>. | ||
+ | |||
+ | 1. База индукции верна. Глубина исходной схемы равна <tex>d</tex>, а входная степень каждого элемента равна <tex>1</tex>, что меньше <tex>k_0 = 10b.</tex> | ||
+ | |||
+ | 2. Индукционный переход. Допустим, что после <tex>i</tex>-ого шага глубина схемы будет <tex>d - i</tex>, причем наибольшая степень входа элемента на нижнем уровне не будет превосходить <tex>k_i</tex>. Если нижний уровень схемы состоит из <tex>\land</tex> элементов, тогда уровень выше <tex>-</tex> из элементов <tex>\lor</tex>. Каждый <tex>\lor</tex> элемент можно считать <tex>k_i</tex>-ДНФ. Воспользуемся следующей леммой: | ||
+ | <div style="border:1px solid #00A; padding: 4px; padding-left: 10px; margin: 10px;"> | ||
+ | {{Лемма | ||
+ | |about=Hastad’s switching lemma | ||
+ | |statement= | ||
+ | Пусть функция <tex>f(x_1, ...,x_n)</tex> представима в виде <tex>k</tex>-ДНФ, а <tex>p~-</tex> случайное назначение <tex>t</tex> случайно выбранным аргументам случайных значений. Тогда при <tex>s \ge 2</tex> верно, что: <br><tex>P[f|_p</tex> не представима в виде <tex>s</tex>-КНФ<tex>]\le\left(\frac{(n - t)k^{10}}{n}\right) ^ {s/2}</tex>, где <tex>f|_p</tex> получено при подстановке в функцию <tex>f</tex> значений из <tex>p</tex>. | ||
+ | |proof= | ||
+ | }} | ||
+ | '''Замечание.''' Для функции <tex>\overline{f}</tex> можно получить такой же результат, изменив КНФ на ДНФ и наоборот. | ||
+ | </div> | ||
+ | Пусть <tex>s = k_{i+1}</tex>, <tex>n~-</tex> число входов схемы, соответствующих рассматриваемому элементу <tex>\lor</tex>. Тогда в качестве <tex>t</tex> возьмем <tex>n - \frac{n}{\sqrt{n_i}}</tex>. Значит, с вероятностью не менее <tex>\left(\frac{k_i^{10}}{\sqrt{n_i}}\right) ^ {k_{i+1}/2}</tex> функцию нельзя представить в виде <tex>k_{i+1}</tex>-КНФ. Поскольку <tex>t</tex> выбиралось таким образом, то при переходе к следующему шагу число входов схемы уменьшилось в <tex>\sqrt{n_i}</tex> раз, поэтому <tex>n_i = n_0^{1/2^i}.</tex> Тогда при достаточно больших <tex>n_0</tex> верно, что <tex>\left(\frac{k_i^{10}}{\sqrt{n_i}}\right) ^ {k_{i+1}/2} = \left(\frac{k_i^{10}}{n_0^{1/2^{i+1}}}\right) ^ {k_{i+1}/2} \le \frac{1}{10n_0^b}</tex>. В итоге получаем, что <tex>k_i</tex>-ДНФ можно переписать в виде <tex>k_{i+1}</tex>-КНФ с вероятностью не менее <tex>1 - \frac{1}{10n_0^b}</tex>. Поскольку верхний уровень КНФ состоит из <tex>\land</tex> элементов, также как и уровень над КНФ, то их можно объединить, уменьшив при этом глубину схемы на <tex>1</tex>. Аналогично рассматриваем случай, когда нижний уровень схемы состоит из <tex>\lor</tex> элементов. | ||
− | [[Файл: | + | [[Файл:afterHastadSwitchingTransformation.png|600x250px|thumb|center|Схема после применения леммы.]] |
− | Заметим, что лемма применяется не более, чем к <tex>n_0^b</tex> элементам исходной схемы. Тогда с вероятностью не менее <tex>1 - \frac{n_0^b}{10n_0^b} = 9 | + | Заметим, что лемма применяется не более, чем к <tex>n_0^b</tex> элементам исходной схемы. Тогда с вероятностью не менее <tex>1 - \frac{n_0^b}{10n_0^b} = \frac{9}{10}</tex> после (<tex>d-2</tex>)-ого шага получаем схему глубины <tex>2</tex>, у которой максимальная степень входа на нижнем уровне не больше <tex>k_{d-2}</tex>. По построению эта формула либо <tex>k_{d - 2}</tex>-КНФ, либо <tex>k_{d - 2}</tex>-ДНФ. |
}} | }} | ||
Текущая версия на 19:15, 4 сентября 2022
Определение: |
язык над алфавитом , состоящий из слов, содержащих нечетное число |
Предположим, что ДНФ распознает язык . Каждый конъюнкт зависит от всех входных значений. В противном случае допустим, что некоторый конъюнкт не зависит от значения . Тогда можно подобрать такие входные значения, при которых значение этого конъюнкта (а значит и ) будет равно и не зависить от значения . Однако при различных значениях значение должно изменяться, так как распознает . Значит, предположение неверно, поэтому каждый конъюнкт зависит от всех входных значений. Пусть состоит из конъюнктов , ..., . Тогда для случайного входа верно, что . Поскольку , то . Аналогичный результат можно получить и для КНФ.
Отсюда и возникает вопрос: можно ли распознавать
схемой полиномиального размера и постоянной глубиной?Теорема
Теорема: | ||
. | ||
Доказательство: | ||
Основная идеяДопустим, что схема из класса распознает язык . Оказывается, что с высокой вероятностью схему из класса можно представить в виде -КНФ или -ДНФ, причем не зависит от числа входов схемы. Для этого строится итеративный процесс, на каждом шаге которого некоторые случайно выбранные входные значения заменяются случайными. Поскольку степень входа не ограничена, то рассмотрим содержательный случай, когда меньше числа входов схемы. Если с вероятностью входу полученной схемы назначается значение, то с вероятностью не менее значение схемы будет постоянным. Поскольку эта вероятность больше нуля, то для произвольной схемы из класса можно подобрать значения части входов так, чтобы значение функции было постоянным и не зависит от остальных входных значений, поэтому ни одна схема из этого класса не может распознавать язык . Технические подробностиПокажем, как представить схему из класса в виде -КНФ или -ДНФ. Не умаляя общности, будем считать, что:
Построим итеративный процесс, на каждом шаге которого можно с высокой вероятностью уменьшить глубину схемы на . Пусть глубина схемы, а число входов схемы. Выберем минимальное целое так, чтобы было не меньше, чем число элементов в схеме. Обозначим число входов схемы после -го шага. ВозьмемДокажем по индукции, что после -ого шага с достаточно большой вероятностью глубина схемы будет , причем наибольшая степень входа элемента на нижнем уровне не будет превосходить .1. База индукции верна. Глубина исходной схемы равна , а входная степень каждого элемента равна , что меньше2. Индукционный переход. Допустим, что после -ого шага глубина схемы будет , причем наибольшая степень входа элемента на нижнем уровне не будет превосходить . Если нижний уровень схемы состоит из элементов, тогда уровень выше из элементов . Каждый элемент можно считать -ДНФ. Воспользуемся следующей леммой:
Замечание. Для функции можно получить такой же результат, изменив КНФ на ДНФ и наоборот.Пусть , число входов схемы, соответствующих рассматриваемому элементу . Тогда в качестве возьмем . Значит, с вероятностью не менее функцию нельзя представить в виде -КНФ. Поскольку выбиралось таким образом, то при переходе к следующему шагу число входов схемы уменьшилось в раз, поэтому Тогда при достаточно больших верно, что . В итоге получаем, что -ДНФ можно переписать в виде -КНФ с вероятностью не менее . Поскольку верхний уровень КНФ состоит из элементов, также как и уровень над КНФ, то их можно объединить, уменьшив при этом глубину схемы на . Аналогично рассматриваем случай, когда нижний уровень схемы состоит из элементов. Заметим, что лемма применяется не более, чем к элементам исходной схемы. Тогда с вероятностью не менее после ( )-ого шага получаем схему глубины , у которой максимальная степень входа на нижнем уровне не больше . По построению эта формула либо -КНФ, либо -ДНФ. | ||
Источники
- Sanjeev Arora, Boaz Barak. Computational Complexity: A Modern Approach