Материал из Викиконспекты
|
|
Строка 12: |
Строка 12: |
| {{Определение | | {{Определение |
| |definition= | | |definition= |
− | Пусть <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> \mathrm{C} </tex> {{---}} сложностный класс, <tex> f </tex> {{---}} функция. Тогда <tex> \mathrm{C}/f = \{L| </tex> существуют подсказки <tex> a_0, a_1, \ldots , a_n, \ldots </tex> и программа <tex> p </tex>, удовлетворяющая ограничениям <tex> \mathrm{C} </tex>: |
| #<tex>|a_i| \leqslant \mathrm{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> \mathrm{P/poly} = \bigcup\limits_{p \in poly} \mathrm{P/p} </tex>. | + | <tex> \mathrm{P/poly} = \bigcup\limits_{p \in poly} \mathrm{P}/p </tex>. |
| }} | | }} |
| | | |
Версия 21:22, 31 мая 2012
Определения
Определение: |
[math] \mathrm{PSIZE} [/math] — класс языков, разрешимых семейством логических схем [math] \{C_n\}_{n\gt 0} [/math] полиномиального размера с n входами и одним выходом, то есть: [math] \mathrm{PSIZE} =\{L | \forall n [/math] [math] \exists C_n [/math]:
- [math] |C_n| \leqslant p(n)[/math], где [math] p [/math] — полином;
- Input [math] (C_n) = n [/math];
- Output [math] (C_n) = 1 [/math];
- [math]x \in L \iff C_{|x|}(x) = 1 \}[/math].
|
Определение: |
Пусть [math] \mathrm{C} [/math] — сложностный класс, [math] f [/math] — функция. Тогда [math] \mathrm{C}/f = \{L| [/math] существуют подсказки [math] a_0, a_1, \ldots , a_n, \ldots [/math] и программа [math] p [/math], удовлетворяющая ограничениям [math] \mathrm{C} [/math]:
- [math]|a_i| \leqslant \mathrm{f}(i) [/math];
- [math] x \in L \iff p(x, a_{|x|})=1 \}[/math].
|
Определение: |
[math] \mathrm{P/poly} = \bigcup\limits_{p \in poly} \mathrm{P}/p [/math]. |
Теоремы
Теорема: |
[math] \mathrm{P} \subset \mathrm{PSIZE} [/math]. |
Доказательство: |
[math]\triangleright[/math] |
Пусть [math] L \in \mathrm{P} [/math]. Тогда существует машина Тьюринга [math] M [/math], распознающая язык [math] L [/math]. Составим логическую схему для [math] M [/math], как мы сделали в теореме Кука, ее размеры ограничены полиномом, она допускает только слова из языка. Отсюда следует, что [math] \mathrm{P} \subset \mathrm{PSIZE} [/math]. |
[math]\triangleleft[/math] |
Теорема: |
[math] \mathrm{PSIZE} = \mathrm{P/poly} [/math]. |
Доказательство: |
[math]\triangleright[/math] |
[math] \Rightarrow [/math].
Докажем, что [math] \mathrm{PSIZE} \subset \mathrm{P/poly} [/math].
Пусть [math] L \in \mathrm{PSIZE} [/math], [math] x [/math] — входная строка. Тогда для [math] L [/math] существуют логические схемы [math] C_0, C_1, .., C_n, .. [/math]. В качестве подсказки для x предоставим логическую схему [math] C_{|x|} [/math]. Программа [math] p [/math] получает на вход [math] x [/math] и [math] C_{|x|} [/math] и возвращает значение, вычисляемое [math] C_{|x|} [/math] для входа [math] x [/math]. Запишем программу
[math] p(x, C_{|x|}) [/math]:
return [math]C_{|x|}(x) [/math]
Логическая схема [math] C_{|x|} [/math] имеет полиномиальный размер. Оба условия для [math] \mathrm{P/poly} [/math] выполнены, [math] \mathrm{PSIZE} \subset \mathrm{P/poly} [/math].
[math]\Leftarrow [/math].
Докажем, что [math] \mathrm{P/poly} \subset \mathrm{PSIZE} [/math].
Пусть [math] L \in \mathrm{P/poly} [/math], [math] x [/math] — входная строка. Тогда для [math] L [/math] существуют подсказки [math] a_0, a_1, .. , a_n, .. [/math]. Программа [math] p [/math] по входу [math] x [/math] и подсказке [math] a_{|x|} [/math] определяет принадлежность [math] x [/math] языку [math] L [/math]. Зафиксируем длину входной строки [math] x [/math] как [math] n [/math]. Теперь запишем [math] p [/math] в виде логической схемы [math] C_m [/math] ( [math] m = n + |a_n| [/math]), которая принимает на вход слова длины [math] n [/math] и подсказку [math] a_n [/math]. Полученная схема будет полиномиального размера. Зашьем подсказку в самой схеме, то есть впишем в нее значения битов подсказки. Получим схему [math] C_n [/math] полиномиального размера, принимающую слова длины [math] n [/math] и определяющую их принадлежность языку [math] L [/math]. Такие схемы можно получить для любой длины входа. Значит, [math] \mathrm{P/poly} \subset \mathrm{PSIZE} [/math]. |
[math]\triangleleft[/math] |