Схемная сложность и класс P/poly — различия между версиями
Vincent (обсуждение | вклад) |
|||
Строка 3: | Строка 3: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | <tex> PSIZE </tex> {{---}} класс языков, | + | <tex> \mathrm{PSIZE} </tex> {{---}} класс языков, разрешимых семейством [[Реализация_булевой_функции_схемой_из_функциональных_элементов|логических схем]] <tex> \{C_n\}_{n>0} </tex> полиномиального размера с n входами и одним выходом, то есть: <tex> \mathrm{PSIZE} =\{L | \forall n </tex> <tex> \exists C_n </tex>: |
#<tex> |C_n| \leqslant p(n)</tex>, где <tex> p </tex> {{---}} полином; | #<tex> |C_n| \leqslant p(n)</tex>, где <tex> p </tex> {{---}} полином; | ||
#Input <tex> (C_n) = n </tex>; | #Input <tex> (C_n) = n </tex>; | ||
Строка 12: | Строка 12: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Пусть C {{---}} сложностный класс, f {{---}} функция. Тогда <tex> C/f = \{L| </tex> существуют <tex> a_0, a_1, .. , a_n, .. </tex> {{---}} подсказки | + | Пусть <tex> \mathrm{C} </tex> {{---}} сложностный класс, <tex> \mathrm{f} </tex> {{---}} функция. Тогда <tex> \mathrm{C/f} = \{L| </tex> существуют <tex> a_0, a_1, .. , a_n, .. </tex> {{---}} подсказки и программа <tex> p </tex>, удовлетворяющая ограничениям <tex> \mathrm{C} </tex>: |
− | #<tex>|a_i| \leqslant f(i) </tex>; | + | #<tex>|a_i| \leqslant \mathrm{f}(i) </tex>; |
#<tex> x \in L \iff p(x, a_{|x|})=1 \}</tex>. | #<tex> x \in L \iff p(x, a_{|x|})=1 \}</tex>. | ||
}} | }} | ||
Строка 19: | Строка 19: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | <tex> P/poly = \bigcup\limits_{p \in poly} P/p </tex>. | + | <tex> \mathrm{P/poly} = \bigcup\limits_{p \in poly} \mathrm{P/p} </tex>. |
}} | }} | ||
Строка 26: | Строка 26: | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | <tex> P \subset PSIZE </tex>. | + | <tex> \mathrm{P} \subset \mathrm{PSIZE} </tex>. |
|proof= | |proof= | ||
− | Пусть <tex> L \in P </tex>. Тогда существует машина Тьюринга | + | Пусть <tex> L \in \mathrm{P} </tex>. Тогда существует машина Тьюринга <tex> M </tex>, распознающая язык <tex> L </tex>. Составим логическую схему для <tex> M </tex>, как мы сделали в [[Примеры_NP-полных_языков._Теорема_Кука|теореме Кука]], ее размеры ограничены полиномом, она допускает только слова из языка. Отсюда следует, что <tex> \mathrm{P} \subset \mathrm{PSIZE} </tex>. |
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | <tex> PSIZE \subset P/poly</tex>. | + | <tex> \mathrm{PSIZE} \subset \mathrm{P/poly} </tex>. |
|proof= | |proof= | ||
− | Пусть <tex> L \in PSIZE </tex>, x {{---}} входная строка. Тогда для L существуют логические схемы <tex> C_0, C_1, .., C_n, .. </tex>. В качестве подсказки для x предоставим логическую схему <tex> C_{|x|} </tex>. Программа p получает на вход x и <tex> C_{|x|} </tex> и возвращает значение, вычисляемое <tex> C_{|x|} </tex> для входа x. Запишем программу | + | Пусть <tex> L \in \mathrm{PSIZE} </tex>, <tex> x </tex> {{---}} входная строка. Тогда для <tex> L </tex> существуют логические схемы <tex> C_0, C_1, .., C_n, .. </tex>. В качестве подсказки для x предоставим логическую схему <tex> C_{|x|} </tex>. Программа <tex> p </tex> получает на вход <tex> x </tex> и <tex> C_{|x|} </tex> и возвращает значение, вычисляемое <tex> C_{|x|} </tex> для входа <tex> x </tex>. Запишем программу |
<tex> p(x, C_{|x|}) </tex>: | <tex> p(x, C_{|x|}) </tex>: | ||
'''return''' <tex>C_{|x|}(x) </tex> | '''return''' <tex>C_{|x|}(x) </tex> | ||
− | Логическая схема <tex> C_{|x|} </tex> имеет полиномиальный размер. Оба условия для <tex> P/poly </tex> выполнены, <tex> PSIZE \subset P/poly</tex>. | + | Логическая схема <tex> C_{|x|} </tex> имеет полиномиальный размер. Оба условия для <tex> \mathrm{P/poly} </tex> выполнены, <tex> \mathrm{PSIZE} \subset \mathrm{P/poly} </tex>. |
}} | }} | ||
{{Теорема | {{Теорема | ||
|statement= | |statement= | ||
− | <tex> P/poly \subset PSIZE</tex>. | + | <tex> \mathrm{P/poly} \subset \mathrm{PSIZE} </tex>. |
|proof= | |proof= | ||
− | Пусть <tex> L \in P/poly </tex>, x {{---}} входная строка. Тогда для L существуют подсказки <tex> a_0, a_1, .. , a_n, .. </tex>. Программа p по входу x и подсказке <tex> a_{|x|} </tex> определяет принадлежность x языку L. Зафиксируем длину входной строки x как n. Запишем p в виде логической схемы <tex> C_m </tex> ( <tex> m = n + |a_n| </tex>), которая принимает на вход слова длины n и подсказку <tex> a_n </tex>. Полученная схема будет полиномиального размера. Зашьем подсказку в самой схеме, то есть впишем в нее значения битов подсказки. Получим схему <tex> C_n </tex> полиномиального размера, принимающую слова длины n и определяющую их принадлежность языку L. Такие схемы можно получить для любой длины входа. Значит, <tex> P/poly \subset PSIZE </tex>. | + | Пусть <tex> L \in \mathrm{P/poly} </tex>, <tex> x </tex> {{---}} входная строка. Тогда для <tex> L </tex> существуют подсказки <tex> a_0, a_1, .. , a_n, .. </tex>. Программа <tex> p </tex> по входу <tex> x </tex> и подсказке <tex> a_{|x|} </tex> определяет принадлежность <tex> x </tex> языку <tex> L </tex>. Зафиксируем длину входной строки <tex> x </tex> как <tex> n </tex>. Запишем <tex> p </tex> в виде логической схемы <tex> C_m </tex> ( <tex> m = n + |a_n| </tex>), которая принимает на вход слова длины <tex> n </tex> и подсказку <tex> a_n </tex>. Полученная схема будет полиномиального размера. Зашьем подсказку в самой схеме, то есть впишем в нее значения битов подсказки. Получим схему <tex> C_n </tex> полиномиального размера, принимающую слова длины <tex> n </tex> и определяющую их принадлежность языку <tex> L </tex>. Такие схемы можно получить для любой длины входа. Значит, <tex> \mathrm{P/poly} \subset \mathrm{PSIZE} </tex>. |
}} | }} | ||
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] |
Версия 16:24, 31 мая 2012
Определения
Определение: |
логических схем полиномиального размера с n входами и одним выходом, то есть: :
| — класс языков, разрешимых семейством
Определение: |
Пусть
| — сложностный класс, — функция. Тогда существуют — подсказки и программа , удовлетворяющая ограничениям :
Определение: |
. |
Теоремы
Теорема: |
. |
Доказательство: |
Пусть теореме Кука, ее размеры ограничены полиномом, она допускает только слова из языка. Отсюда следует, что . | . Тогда существует машина Тьюринга , распознающая язык . Составим логическую схему для , как мы сделали в
Теорема: |
. |
Доказательство: |
Пусть , — входная строка. Тогда для существуют логические схемы . В качестве подсказки для x предоставим логическую схему . Программа получает на вход и и возвращает значение, вычисляемое для входа . Запишем программуЛогическая схема : return имеет полиномиальный размер. Оба условия для выполнены, . |
Теорема: |
. |
Доказательство: |
Пусть | , — входная строка. Тогда для существуют подсказки . Программа по входу и подсказке определяет принадлежность языку . Зафиксируем длину входной строки как . Запишем в виде логической схемы ( ), которая принимает на вход слова длины и подсказку . Полученная схема будет полиномиального размера. Зашьем подсказку в самой схеме, то есть впишем в нее значения битов подсказки. Получим схему полиномиального размера, принимающую слова длины и определяющую их принадлежность языку . Такие схемы можно получить для любой длины входа. Значит, .