Схемная сложность и класс P/poly — различия между версиями
Vincent (обсуждение | вклад) (→Определения) |
(→Теоремы) |
||
| (не показано 6 промежуточных версий 2 участников) | |||
| Строка 7: | Строка 7: | ||
<tex> \mathrm{PSIZE} =\{L \bigm| \forall n </tex> <tex> \exists C_n </tex>: | <tex> \mathrm{PSIZE} =\{L \bigm| \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> {{---}} полином; | ||
| − | #Число входов в схеме <tex> | + | #Число входов в схеме <tex> C_n </tex> равно <tex> n </tex>; |
| − | #Каждая схема <tex> | + | #Каждая схема <tex> C_n </tex> имеет один выход; |
#<tex>x \in L \Leftrightarrow C_{|x|}(x) = 1 \}</tex>. | #<tex>x \in L \Leftrightarrow C_{|x|}(x) = 1 \}</tex>. | ||
}} | }} | ||
| Строка 48: | Строка 48: | ||
}} | }} | ||
| + | {{Лемма | ||
| + | |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} </tex> содержит неразрешимые языки. | ||
| + | |proof= | ||
| + | Рассмотрим произвольный неразрешимый язык <tex> L \subset \{0, 1\}^* </tex>. Построим язык <tex> A </tex> следующим образом: <tex> A = \{ 1^n | </tex> бинарное представление <tex> n </tex> принадлежит <tex> L \} </tex>. Унарный язык <tex> A \in \mathrm{P/poly} </tex>, но то же время <tex> A </tex> неразрешим, иначе можно было бы разрешить <tex> L </tex>. <br> | ||
| + | Получается, что <tex> \mathrm{P/poly} </tex> содержит неразрешимые языки. | ||
| + | }} | ||
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] | ||
Текущая версия на 15:31, 5 июня 2012
Определения
| Определение: |
| — класс языков, разрешимых семейством логических схем полиномиального размера с n входами и одним выходом.
:
|
| Определение: |
Пусть — сложностный класс, — функция. Тогда существуют подсказки и программа , удовлетворяющая ограничениям :
|
| Определение: |
| . |
Теоремы
| Теорема: |
. |
| Доказательство: |
| Пусть . Тогда существует машина Тьюринга , распознающая язык . Составим логическую схему для , как мы сделали в теореме Кука, ее размеры ограничены полиномом, она допускает только слова из языка. Отсюда следует, что . |
| Теорема: |
. |
| Доказательство: |
|
Докажем, что . : return Логическая схема имеет полиномиальный размер. Оба условия для выполнены, . |
| Лемма: |
Любой унарный язык принадлежит . |
| Доказательство: |
|
Рассмотрим произвольный унарный язык . Подсказкой для слова будет единица, если слово длины есть в , иначе ноль. Машина Тьюринга получит на вход слово и подсказку для слов длины . Теперь произведем проверку, что действительно из нашего унарного алфавита. Если это не так, то сразу же не допустим слово, иначе выведем значение подсказки. |
| Лемма: |
содержит неразрешимые языки. |
| Доказательство: |
|
Рассмотрим произвольный неразрешимый язык . Построим язык следующим образом: бинарное представление принадлежит . Унарный язык , но то же время неразрешим, иначе можно было бы разрешить . |