Редактирование: Схемная сложность и класс P/poly

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 3: Строка 3:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
<tex> \mathrm{PSIZE} </tex> {{---}} класс языков, разрешимых семейством [[Реализация_булевой_функции_схемой_из_функциональных_элементов|логических схем]] <tex> \{C_n\}_{n>0} </tex> полиномиального размера с n входами и одним выходом.
+
<tex> \mathrm{PSIZE} </tex> {{---}} класс языков, разрешимых семейством [[Реализация_булевой_функции_схемой_из_функциональных_элементов|логических схем]] <tex> \{C_n\}_{n>0} </tex> полиномиального размера с n входами и одним выходом, то есть: <tex> \mathrm{PSIZE} =\{L | \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> C_n </tex> равно <tex> n </tex>;
+
#Input <tex> (C_n) = n </tex>;
#Каждая схема <tex> C_n </tex> имеет один выход;
+
#Output <tex> (C_n) = 1 </tex>;
#<tex>x \in L \Leftrightarrow C_{|x|}(x) = 1 \}</tex>.  
+
#<tex>x \in L \iff C_{|x|}(x) = 1 \}</tex>.  
 
}}  
 
}}  
  
 
{{Определение
 
{{Определение
 
|definition=
 
|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> \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 f(i) </tex>;
+
#<tex>|a_i| \leqslant \mathrm{f}(i) </tex>;
#<tex> x \in L \Leftrightarrow p(x, a_{|x|})=1 \}</tex>.  
+
#<tex> x \in L \iff p(x, a_{|x|})=1 \}</tex>.  
 
}}
 
}}
  
Строка 38: Строка 36:
 
|proof=
 
|proof=
 
Докажем, что <tex> \mathrm{PSIZE} \subset \mathrm{P/poly} </tex>. <br>
 
Докажем, что <tex> \mathrm{PSIZE} \subset \mathrm{P/poly} </tex>. <br>
Пусть <tex> L \in \mathrm{PSIZE} </tex>, <tex> x </tex> {{---}} входная строка. Тогда для <tex> L </tex> существуют логические схемы <tex> 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> 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>
Строка 48: Строка 46:
 
}}
 
}}
  
{{Лемма
 
|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> содержит неразрешимые языки.
 
}}
 
 
[[Категория: Теория сложности]]
 
[[Категория: Теория сложности]]

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)