Теорема о непринадлежности XOR классу AC⁰ — различия между версиями
(→Теорема) |
(→Теорема) |
||
Строка 17: | Строка 17: | ||
<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>\oplus</tex> распознающая его схема должна зависить от всех своих входов. Однако воспользовавшись леммой, можно с большой вероятностью представить эту схему в виде КНФ или ДНФ. Заметим, что значение КНФ или ДНФ можно сделать постоянным, зафиксировав значение лишь одного дизъюнкта или конъюнкта соответственно. А значит, с высокой вероятностью произвольная схема из класса <tex>\mathrm{AC^0}</tex> не распознает язык <tex>\oplus</tex>, поскольку зависит не от всех входных значений. | + | Рассмотрим произвольную схему из [[Классы NC и AC| класса]] <tex>\mathrm{AC^0}</tex>. Допустим, что эта схема распознает язык <tex>\oplus</tex>. В силу особенности языка <tex>\oplus</tex>, распознающая его схема должна зависить от всех своих входов. Однако воспользовавшись леммой, можно с большой вероятностью представить эту схему в виде КНФ или ДНФ. Заметим, что значение КНФ или ДНФ можно сделать постоянным, зафиксировав значение лишь одного дизъюнкта или конъюнкта соответственно. А значит, с высокой вероятностью произвольная схема из класса <tex>\mathrm{AC^0}</tex> не распознает язык <tex>\oplus</tex>, поскольку зависит не от всех входных значений. |
Покажем, как представить схему из класса <tex>\mathrm{AC^0}</tex> в виде КНФ или ДНФ. Не умаляя общности, будем считать, что: | Покажем, как представить схему из класса <tex>\mathrm{AC^0}</tex> в виде КНФ или ДНФ. Не умаляя общности, будем считать, что: | ||
# Выходная степень каждого элемента равна <tex>1</tex>. | # Выходная степень каждого элемента равна <tex>1</tex>. | ||
− | # Схема не содержит элементов <tex>\neg</tex>. Вместо этого удвоим число входов, причем значения, подаваемые на добавленные входы будут противоположны значениям, подаваемым на исходные входы. | + | # Схема не содержит элементов <tex>\neg</tex>. Вместо этого удвоим число входов, причем значения, подаваемые на добавленные входы будут противоположны значениям, подаваемым на исходные входы схемы. |
# Элементы <tex>\lor</tex> и <tex>\land</tex> чередуются. Значит, схему можно разбить на уровни так, что на каждом уровне все элементы будут одинаковыми. | # Элементы <tex>\lor</tex> и <tex>\land</tex> чередуются. Значит, схему можно разбить на уровни так, что на каждом уровне все элементы будут одинаковыми. | ||
# Все входы лежат на одном уровне. Нижний уровень схемы состоит из <tex>\land</tex> элементов с единичной степенью входа. | # Все входы лежат на одном уровне. Нижний уровень схемы состоит из <tex>\land</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> | + | Построим итеративный процесс, на каждом шаге которого можно с высокой вероятностью уменьшить глубину схемы на <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>-ом шаге.]] | [[Файл:beforeHastadSwitchingTransformation.png|600x250px|thumb|center|Схема на <tex>i</tex>-ом шаге.]] | ||
− | + | Докажем по индукции, что после <tex>i</tex>-ого шага с высокой вероятностью глубина схемы будет <tex>d - i</tex>, причем наибольшая степень входа элемента на нижнем уровне не будет превосходить <tex>k_i</tex>. | |
+ | * База индукции верна. Для исходной схемы верно, что её глубина равна <tex>d</tex>, а входная степень каждого элемента равна <tex>1</tex>, что меньше <tex>k_0 = 10b.</tex> | ||
+ | * Индукционный переход. Допустим, что после <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>-ДНФ. Воспользуемся леммой. Пусть <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|Схема после применения леммы.]] | [[Файл:afterHastadSwitchingTransformation.png|600x250px|thumb|center|Схема после применения леммы.]] |
Версия 00:17, 18 июня 2012
Hastad’s switching lemma
Лемма: |
представима в виде - |
Замечание. Для функции
можно получить такой же результат, изменив КНФ на ДНФ и наоборот.Теорема
Определение: |
язык над алфавитом , состоящий из слов, содержащих нечетное число |
Теорема: |
. |
Доказательство: |
Рассмотрим произвольную схему из класса . Допустим, что эта схема распознает язык . В силу особенности языка , распознающая его схема должна зависить от всех своих входов. Однако воспользовавшись леммой, можно с большой вероятностью представить эту схему в виде КНФ или ДНФ. Заметим, что значение КНФ или ДНФ можно сделать постоянным, зафиксировав значение лишь одного дизъюнкта или конъюнкта соответственно. А значит, с высокой вероятностью произвольная схема из класса не распознает язык , поскольку зависит не от всех входных значений. Покажем, как представить схему из класса в виде КНФ или ДНФ. Не умаляя общности, будем считать, что:
Построим итеративный процесс, на каждом шаге которого можно с высокой вероятностью уменьшить глубину схемы на . Пусть глубина схемы, а число входов схемы. Выберем минимальное целое так, чтобы было не меньше, чем число элементов в схеме. Обозначим число входов схемы после -го шага. ВозьмемДокажем по индукции, что после -ого шага с высокой вероятностью глубина схемы будет , причем наибольшая степень входа элемента на нижнем уровне не будет превосходить .
|
Источники
- Sanjeev Arora, Boaz Barak. Computational Complexity: A Modern Approach