Изменения
→Теоремы
== Определения ==
{{Определение
|definition=
<tex>P/poly=\mathrm{L | \forall n PSIZE} </tex> существует {{---}} класс языков, разрешимых семейством [[Реализация_булевой_функции_схемой_из_функциональных_элементов|логическая схемалогических схем]] <tex> \{C_n \}_{n>0} </tex> полиномиального размера с <tex> n </tex> входами и одним выходом такая, что: #размеры <tex> C_n \leqslant p(n)</tex>, где <tex> p </tex> {{---}} полином;#<tex>x \in L \iff C_{|x|}(x) = 1 \}</tex>. }}
}}
{{Определение
|definition=
Пусть <tex> \mathrm{C } </tex> {{---}} сложностный класс, <tex> f </tex> {{---}} функция. Тогда <tex> \mathrm{C}/f = \{L\bigm| </tex> существуют подсказки <tex> a_0, a_1, .. \ldots , a_n, .. \ldots </tex> {{---}} подсказки, и программа <tex> p</tex>, удовлетворяющая ограничениям <tex> \mathrm{C} </tex>:
#<tex>|a_i| \leqslant f(i) </tex>;
#<tex> x \in L \iff Leftrightarrow p(x, a_{|x|})=1 \}</tex>.
}}
{{Определение
|definition=
}}
{{Теорема
|statement=
<tex> \mathrm{P } \subset P/poly \mathrm{PSIZE} </tex>.
|proof=
Пусть <tex> L \in \mathrm{P \Rightarrow \exists } </tex> . Тогда существует машина Тьюринга m такая<tex> M </tex>, что распознающая язык <tex> L(m)=L </tex>. Составим логическую схему для m<tex> M </tex>, как мы сделали в [[Примеры_NP-полных_языков._Теорема_Кука|теореме Кука]], ее размеры ограничены полиномом, она допускает только слова из языка. Отсюда следует, что <tex> \mathrm{P } \subset P/poly \mathrm{PSIZE} </tex>.
}}
{{Теорема
|statement=
|proof=
Докажем, что <tex> \mathrm{PSIZE} \subset \mathrm{P/poly} </tex>. <br>Пусть <tex> L \in \mathrm{PSIZE} </tex> схемная сложность полином, <tex> x </tex> {{---}} входная строка. Тогда для <tex> L </tex> существуют логические схемы <tex> \exists C_0, C_1, .., C_n, .. </tex>. В качестве подсказки для <tex> x </tex> предоставим логическую схему <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>:
'''return''' <tex>C_{|x|}(x) </tex>
}}
{{ТеоремаЛемма|statement=Любой унарный язык принадлежит <tex> \mathrm{P/poly} </tex>.|proof=Рассмотрим произвольный унарный язык <tex> L \subset \{1\}^* </tex>. Подсказкой для слова <tex> x </tex> будет единица, если слово длины <tex> |x| </tex> есть в <tex> L </tex>, иначе ноль. Машина Тьюринга получит на вход слово <tex> x </tex> и подсказку для слов длины <tex> |x| </tex>. Теперь произведем проверку, что <tex> x </tex> действительно из нашего унарного алфавита. Если это не так, то сразу же не допустим слово, иначе выведем значение подсказки. <br>Таким образом, любой унарный язык принадлежит <tex> \mathrm{P/poly} </tex>. }} {{Лемма
|statement=
<tex> \mathrm{P/poly \subset } </tex> схемная сложность полиномсодержит неразрешимые языки.
|proof=
}}
[[Категория: Теория сложности]]