Теорема о связи вопросов EXP=NEXP и P=NP — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 5: Строка 5:
  
 
=== Доказательство ===
 
=== Доказательство ===
Рассмотрим <tex>\text{NEXP---}</tex> полный язык <tex>\text{BH}_{2N}=\{\langle m, x, t \rangle ~|~ m(x)=1, T(m, x) \le t \}</tex>.
+
Рассмотрим [[Классы_EXP,_NEXP._Полнота_языков_EXP_и_NEXP|NEXP]] &mdash; полный язык <tex>\text{BH}_{2N}=\{\langle m, x, t \rangle ~|~ m(x)=1, T(m, x) \le t \}</tex>.
 
Докажем, что при условии выполнения равенства <tex>\text{P=NP,~BH}_{2N} \in \text{EXP}</tex>.
 
Докажем, что при условии выполнения равенства <tex>\text{P=NP,~BH}_{2N} \in \text{EXP}</tex>.
  
Сведем <tex>\text{BH}_{2N}</tex> к <tex>\text{BH}_{1N}</tex> по Карпу за экпоненциальное время <tex>\left( \text{BH}_{2N} \le_{\tiny{\text{EXP}}} \text{BH}_1N \right)</tex>.
+
Сведем <tex>\text{BH}_{2N}</tex> к <tex>\text{BH}_{1N}</tex> по Карпу за экпоненциальное время <tex>\left( \text{BH}_{2N} \le_{\tiny{\text{EXP}}} \text{BH}_{1N} \right)</tex>.
 
Для этого запишем <tex>\text{t}</tex> в унарной системе счисления: <tex>\langle m, x, t \rangle \rightarrow \langle m, x, 1^t \rangle</tex>.
 
Для этого запишем <tex>\text{t}</tex> в унарной системе счисления: <tex>\langle m, x, t \rangle \rightarrow \langle m, x, 1^t \rangle</tex>.
Ясно, что для выполнение этого сведения потребуется выполнить <tex>O(2^{p_1(t)})</tex> операций, где <tex>p_1\text{---}</tex> полином.
+
Ясно, что для выполнение этого сведения потребуется выполнить <tex>O(2^{p_1(t)})</tex> операций, где <tex>p_1</tex> &mdash; полином.
  
 
Поскольку мы предположили, что <tex>\text{P=NP}</tex>, то существует детерминированная машина Тьюринга <tex>M</tex>, разрешающая <tex>\text{BH}_{1N}</tex> за полиномиальное от длины
 
Поскольку мы предположили, что <tex>\text{P=NP}</tex>, то существует детерминированная машина Тьюринга <tex>M</tex>, разрешающая <tex>\text{BH}_{1N}</tex> за полиномиальное от длины
Строка 18: Строка 18:
 
:<tex>T(M', \langle m, x, t \rangle) ~=~ O(2^{p_1(t)}) + O(p_2(|\langle m, x, 1^t \rangle|)) = O(2^{poly(|\langle m, x, t \rangle|)})</tex>
 
:<tex>T(M', \langle m, x, t \rangle) ~=~ O(2^{p_1(t)}) + O(p_2(|\langle m, x, 1^t \rangle|)) = O(2^{poly(|\langle m, x, t \rangle|)})</tex>
  
Полученное равенство означает, что <tex>\text{BH}_{2N} \in \text{EXP}</tex>, откуда в силу [[NEXP-полнота|NEXP-полноты]] языка <tex>\text{BH}_{2N}</tex> вытекает включение <tex>\text{NEXP} \subset \text{EXP}</tex>. Поскольку обратное включение <tex>\left(\text{NEXP} \supset \text{EXP}\right)</tex> тривиально, то это и означает, что <tex>\text{EXP=NEXP}</tex>
+
Полученное равенство означает, что <tex>\text{BH}_{2N} \in \text{EXP}</tex>, откуда в силу [[Классы_EXP,_NEXP._Полнота_языков_EXP_и_NEXP|NEXP-полноты]] языка <tex>\text{BH}_{2N}</tex> вытекает включение <tex>\text{NEXP} \subset \text{EXP}</tex>. Поскольку обратное включение <tex>\left(\text{NEXP} \supset \text{EXP}\right)</tex> тривиально, то это и означает, что <tex>\text{EXP=NEXP}</tex>

Версия 16:00, 15 апреля 2010

Формулировка

[math]\text{P=NP} \Rightarrow \text{EXP=NEXP}[/math]

Доказательство

Рассмотрим NEXP — полный язык [math]\text{BH}_{2N}=\{\langle m, x, t \rangle ~|~ m(x)=1, T(m, x) \le t \}[/math]. Докажем, что при условии выполнения равенства [math]\text{P=NP,~BH}_{2N} \in \text{EXP}[/math].

Сведем [math]\text{BH}_{2N}[/math] к [math]\text{BH}_{1N}[/math] по Карпу за экпоненциальное время [math]\left( \text{BH}_{2N} \le_{\tiny{\text{EXP}}} \text{BH}_{1N} \right)[/math]. Для этого запишем [math]\text{t}[/math] в унарной системе счисления: [math]\langle m, x, t \rangle \rightarrow \langle m, x, 1^t \rangle[/math]. Ясно, что для выполнение этого сведения потребуется выполнить [math]O(2^{p_1(t)})[/math] операций, где [math]p_1[/math] — полином.

Поскольку мы предположили, что [math]\text{P=NP}[/math], то существует детерминированная машина Тьюринга [math]M[/math], разрешающая [math]\text{BH}_{1N}[/math] за полиномиальное от длины входа время [math]\left( T(M, \langle m, x, 1^t \rangle) ~=~ O(p_2(|\langle m, x, 1^t \rangle|)),~ p_2 \in \text{\textit{\large{poly}}} \right)[/math]. Имея ее, легко построить машину [math]M'[/math], которая сначала выполняла бы описанное выше сведение, а затем подавала бы полученный результат на вход машине [math]M[/math]. То есть [math]M'(\langle m, x, t \rangle) ~=~ M(\langle m, x, 1^t \rangle)[/math].

Заметим, что время работы машины [math]M'[/math] складывается из времени, необходимого на преобразование входа, и времени работы машины [math]M[/math].

[math]T(M', \langle m, x, t \rangle) ~=~ O(2^{p_1(t)}) + O(p_2(|\langle m, x, 1^t \rangle|)) = O(2^{poly(|\langle m, x, t \rangle|)})[/math]

Полученное равенство означает, что [math]\text{BH}_{2N} \in \text{EXP}[/math], откуда в силу NEXP-полноты языка [math]\text{BH}_{2N}[/math] вытекает включение [math]\text{NEXP} \subset \text{EXP}[/math]. Поскольку обратное включение [math]\left(\text{NEXP} \supset \text{EXP}\right)[/math] тривиально, то это и означает, что [math]\text{EXP=NEXP}[/math]