Материал из Викиконспекты
Определения
Определение: |
[math]P/poly=\{L | \forall n [/math] существует логическая схема [math] C_n [/math] с [math] n [/math] входами и одним выходом такая, что:
- размеры [math] C_n \leqslant p(n)[/math];
- [math]x \in L \iff C_{|x|}(x) = 1 \}[/math].
|
Определение: |
Пусть C — сложностный класс, f — функция. Тогда [math] C/f = \{L| [/math] существуют [math] a_0, a_1, .. , a_n, .. , {{---}} подсказки [/math] программа p, удовлетворяющая ограничениям C:
- [math]|a_i| \leqslant f(i) [/math];
- [math] x \in L \iff p(x, a_{|x|})=1 \}[/math].
|
Определение: |
Пусть [math] F = \{f_i\}[/math]. Тогда [math] C/F = \bigcup\limits_{f \in F} C/f [/math]. |
Теоремы
Теорема: |
[math] P \subset P/poly [/math]. |
Доказательство: |
[math]\triangleright[/math] |
[math] L \in P \Rightarrow \exists [/math] машина Тьюринга m такая, что [math] L(m)=L [/math]. Составим логическую схему для m, как мы сделали в теореме Кука. Отсюда следует, что [math] P \subset P/poly [/math]. |
[math]\triangleleft[/math] |
Теорема: |
Схемная сложность полином [math] \subset P/poly[/math]. |
Доказательство: |
[math]\triangleright[/math] |
[math] L \in [/math] схемная сложность полином. Тогда [math] \exists C_0, C_1, .., C_n, .. [/math]. Запишем программу
[math] p(x, C_{|x|}) [/math]:
return [math]eval(x, C_{|x|}) [/math]
Теорема выполняется. |
[math]\triangleleft[/math] |
Теорема: |
[math] P/poly \subset [/math] схемная сложность полином. |
Доказательство: |
[math]\triangleright[/math] |
Пусть [math] L \in P/poly [/math]. Тогда существуют [math] a_0, a_1, .. , a_n, .. [/math] — подсказки. Зафиксируем n. Пусть подсказка [math] a_n [/math] позволяет определить, удовлетворяет ли вход x длины n логической схеме. Зашьем эту подсказку в логическую схему [math] C_n [/math]. Теперь логическая схема удовлетворяет только словам из языка. |
[math]\triangleleft[/math] |