<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.27.55&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.27.55&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/178.178.27.55"/>
		<updated>2026-05-17T23:30:36Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9C%D0%B0%D1%85%D1%8D%D0%BD%D0%B8&amp;diff=24061</id>
		<title>Теорема Махэни</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9C%D0%B0%D1%85%D1%8D%D0%BD%D0%B8&amp;diff=24061"/>
				<updated>2012-06-05T14:58:37Z</updated>
		
		<summary type="html">&lt;p&gt;178.178.27.55: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Введём вспомогательный язык &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{LSAT}=\{\langle\phi,y\rangle \bigm| \exists x: x\le_{lex}y, \phi(x) = 1\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
#Очевидно, что &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt; (в качестве сертификата можно запросить &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;).&lt;br /&gt;
#Сведём &amp;lt;tex&amp;gt;\mathrm{SAT}&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt;. Для этого рассмотрим отображение &amp;lt;tex&amp;gt;\phi \mapsto \langle \phi, 1^{|\phi|}\rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;|\phi|&amp;lt;/tex&amp;gt; — количество различных переменных в формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;. Ясно, что данное преобразование можно сделать за полиномиальное время. Теперь докажем, что сведение верное. &lt;br /&gt;
#*Если &amp;lt;tex&amp;gt;\phi \in \mathrm{SAT}&amp;lt;/tex&amp;gt;, то формула &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; удовлетворима, а значит &amp;lt;tex&amp;gt;\exists x: x \le_{lex} 1^{|\phi|}, \phi(x)=1&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt;\langle \phi, 1^{|\phi|}\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
#*Если &amp;lt;tex&amp;gt;\langle \phi, 1^{|\phi|}\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\exists x: x \le_{lex} 1^{|\phi|}, \phi(x)=1&amp;lt;/tex&amp;gt;. Значит формула &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; удовлетворима, и &amp;lt;tex&amp;gt;\phi \in \mathrm{SAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
:Таким образом, &amp;lt;tex&amp;gt;\mathrm{SAT} \le \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;\mathrm{SAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;, а значит &amp;lt;tex&amp;gt;\forall L \in \mathrm{NP} \; L \le \mathrm{SAT}&amp;lt;/tex&amp;gt;. Тогда в силу транзитивности &amp;lt;tex&amp;gt;\forall L \in \mathrm{NP} \; L \le \mathrm{LSAT}&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPH}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Итого мы доказали, что &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPH}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt;. Тогда по определению &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;\langle\phi,y\rangle \in \mathrm{LSAT}, y&amp;lt;_{lex}z&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\langle\phi,z\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&amp;lt;tex&amp;gt;\langle\phi,y\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\exists x: x\le_{lex}y, \phi(x) = 1&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;y&amp;lt;_{lex}z&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\exists x: x&amp;lt;_{lex}z, \phi(x) = 1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;\langle\phi,z\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|author=Махэни&lt;br /&gt;
|statement=&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{NPC} \cap \mathrm{SPARSE} \ne \varnothing \Rightarrow \mathrm{P}=\mathrm{NP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=Пусть &amp;lt;tex&amp;gt;S \in \mathrm{NPC} \cap \mathrm{SPARSE}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;S\in \mathrm{NPC}&amp;lt;/tex&amp;gt;, и &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt;, то существует полиномиальная функция сведения &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;\langle \phi, y \rangle \in \mathrm{LSAT} \Leftrightarrow f(\langle \phi, y \rangle) \in S&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как функция &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; работает полиномиальное время, и &amp;lt;tex&amp;gt;|\phi|=|y|&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;|y|&amp;lt;/tex&amp;gt; — длина вектора &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;), то &amp;lt;tex&amp;gt;f(\langle\phi,y\rangle) \le q(|\phi|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — полином.&lt;br /&gt;
&amp;lt;tex&amp;gt;S\in \mathrm{SPARSE}&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;\forall n \; |S \cap \Sigma^n|\le p(n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; — некоторый полином. &lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;tex&amp;gt;|\{x\in S \bigm| |x| \le q(|\phi|)\}| \le \sum\limits_{i=1}^{q(|\phi|)} p(i) = r(|\phi|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; — также полином.&lt;br /&gt;
&lt;br /&gt;
Опишем алгоритм для нахождения лексикографически минимальной строки &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, удовлетворяющей формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;n=|\phi|, r=r(|\phi|)&amp;lt;/tex&amp;gt;. Изначально область поиска для &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; — все строки длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. Опишем одну итерацию поиска.&lt;br /&gt;
&lt;br /&gt;
Разобьём текущее множество строк на &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; подотрезок примерно равной длины. Обозначим концы полученных подотрезков &amp;lt;tex&amp;gt;w_0,...,w_{r+1}&amp;lt;/tex&amp;gt;. Пусть теперь &amp;lt;tex&amp;gt;z_i=f(\langle\phi,w_i\rangle)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Из леммы (2) мы знаем, что, начиная с некоторого &amp;lt;tex&amp;gt;l&amp;lt;/tex&amp;gt;, все пары &amp;lt;tex&amp;gt;\langle\phi, w_l\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Тогда по сведению &amp;lt;tex&amp;gt;z_j \in S&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j\ge l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два случая:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;tex&amp;gt;\exists i \ne j : z_i=z_j&amp;lt;/tex&amp;gt;. Строки &amp;lt;tex&amp;gt;z_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; либо обе лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;, либо обе не лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;. Тогда по вышеуказанной причине &amp;lt;tex&amp;gt;x\notin (w_i, w_j]&amp;lt;/tex&amp;gt;. Значит мы можем исключить этот полуинтервал из рассматриваемого множества. Таким образом, мы удаляем не менее &amp;lt;tex&amp;gt;\frac 1{r+1}&amp;lt;/tex&amp;gt; часть множества подстановок.&lt;br /&gt;
# &amp;lt;tex&amp;gt;z_i \ne z_j \, \forall i \ne j&amp;lt;/tex&amp;gt;. Как было показано выше, если &amp;lt;tex&amp;gt;x \in [w_0, w_1]&amp;lt;/tex&amp;gt;, то все &amp;lt;tex&amp;gt;z_i&amp;lt;/tex&amp;gt;, начиная с &amp;lt;tex&amp;gt;z_1&amp;lt;/tex&amp;gt;, лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;, но тогда &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; содержит &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; строку длины не более, чем &amp;lt;tex&amp;gt;q(|\phi|)&amp;lt;/tex&amp;gt;, что противоречит условию &amp;lt;tex&amp;gt;|\{x\in S\, |\, |x| \le q(|\phi|)\}| \le r(|\phi|)&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt;x\notin[w_0,w_1]&amp;lt;/tex&amp;gt;, то есть его можно убрать из рассмотрения.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях мы сузили область поиска как минимум на &amp;lt;tex&amp;gt;\frac 1{r+1}&amp;lt;/tex&amp;gt; её размера. &lt;br /&gt;
&lt;br /&gt;
Будем повторять эту процедуру до тех пор, пока не останется не более &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; строки, которые мы можем проверить за полиномиальное время. Если какая-то из них удовлетворила формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x=min(w_i), w_i&amp;lt;/tex&amp;gt; удовлетворяет &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;. Иначе, &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; не существует.&lt;br /&gt;
&lt;br /&gt;
Оценим время работы нашего алгоритма. После &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; итераций у нас останется не более &amp;lt;tex&amp;gt;2^n(1-\frac1{r+1})^k&amp;lt;/tex&amp;gt; строк. Оценим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2^n(1-\frac1{r+1})^k \simeq 1&amp;lt;/tex&amp;gt;. Отсюда &amp;lt;tex&amp;gt;k=O(rn)&amp;lt;/tex&amp;gt; (это можно получить, выразив &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; и воспользовавшись [http://ru.wikipedia.org/wiki/Ряд_Тейлора#.D0.A0.D1.8F.D0.B4.D1.8B_.D0.9C.D0.B0.D0.BA.D0.BB.D0.BE.D1.80.D0.B5.D0.BD.D0.B0_.D0.BD.D0.B5.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9 формулой Тейлора] для логарифма). &lt;br /&gt;
&lt;br /&gt;
Таким образом, мы можем разрешить язык &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt; за полиномиальное время, найдя лексикографически минимальную строку, удовлетворяющую формуле, и сравнив её с нашим аргументом. Так как &amp;lt;tex&amp;gt;\mathrm{LSAT}\in \mathrm{NPC}&amp;lt;/tex&amp;gt;, то мы можем решить любую задачу из &amp;lt;tex&amp;gt;\mathrm{NP}&amp;lt;/tex&amp;gt; за полиномиальное время, а значит &amp;lt;tex&amp;gt;\mathrm{P}=\mathrm{NP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Класс P]]&lt;br /&gt;
*[[Классы NP и Σ₁]]&lt;br /&gt;
*[[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]]&lt;br /&gt;
*[[Теорема Бермана — Форчуна]]&lt;br /&gt;
&lt;br /&gt;
== Литература и источники информации ==&lt;br /&gt;
* [http://blog.computationalcomplexity.org/2011/09/mahaneys-theorem.html Блог Computational Complexity]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория сложности]]&lt;/div&gt;</summary>
		<author><name>178.178.27.55</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9C%D0%B0%D1%85%D1%8D%D0%BD%D0%B8&amp;diff=24060</id>
		<title>Теорема Махэни</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9C%D0%B0%D1%85%D1%8D%D0%BD%D0%B8&amp;diff=24060"/>
				<updated>2012-06-05T14:56:56Z</updated>
		
		<summary type="html">&lt;p&gt;178.178.27.55: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Введём вспомогательный язык &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{LSAT}=\{\langle\phi,y\rangle \bigm| \exists x: x\le_{lex}y, \phi(x) = 1\}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|about=1&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
#Очевидно, что &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt; (в качестве сертификата можно запросить &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;).&lt;br /&gt;
#Сведём &amp;lt;tex&amp;gt;\mathrm{SAT}&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt;. Для этого рассмотрим отображение &amp;lt;tex&amp;gt;\phi \mapsto \langle \phi, 1^{|\phi|}\rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;|\phi|&amp;lt;/tex&amp;gt; — количество различных переменных в формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;. Ясно, что данное преобразование можно сделать за полиномиальное время. Теперь докажем, что сведение верное. &lt;br /&gt;
#*Если &amp;lt;tex&amp;gt;\phi \in \mathrm{SAT}&amp;lt;/tex&amp;gt;, то формула &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; удовлетворима, а значит &amp;lt;tex&amp;gt;\exists x: x \le_{lex} 1^{|\phi|}, \phi(x)=1&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt;\langle \phi, 1^{|\phi|}\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
#*Если &amp;lt;tex&amp;gt;\langle \phi, 1^{|\phi|}\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\exists x: x \le_{lex} 1^{|\phi|}, \phi(x)=1&amp;lt;/tex&amp;gt;. Значит формула &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt; удовлетворима, и &amp;lt;tex&amp;gt;\phi \in \mathrm{SAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
:Таким образом, &amp;lt;tex&amp;gt;\mathrm{SAT} \le \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;\mathrm{SAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;, а значит &amp;lt;tex&amp;gt;\forall L \in \mathrm{NP} \; L \le \mathrm{SAT}&amp;lt;/tex&amp;gt;. Тогда в силу транзитивности &amp;lt;tex&amp;gt;\forall L \in \mathrm{NP} \; L \le \mathrm{LSAT}&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPH}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Итого мы доказали, что &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPH}&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt;. Тогда по определению &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NPC}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Лемма&lt;br /&gt;
|about=2&lt;br /&gt;
|statement=&amp;lt;tex&amp;gt;\langle\phi,y\rangle \in \mathrm{LSAT}, y&amp;lt;_{lex}z&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\langle\phi,z\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&amp;lt;tex&amp;gt;\langle\phi,y\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\exists x: x\le_{lex}y, \phi(x) = 1&amp;lt;/tex&amp;gt;. Так как &amp;lt;tex&amp;gt;y&amp;lt;_{lex}z&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\exists x: x&amp;lt;_{lex}z, \phi(x) = 1&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;\langle\phi,z\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|author=Махэни&lt;br /&gt;
|statement=&lt;br /&gt;
&amp;lt;tex&amp;gt;\mathrm{NPC} \cap \mathrm{SPARSE} \ne \varnothing \Rightarrow \mathrm{P}=\mathrm{NP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=Пусть &amp;lt;tex&amp;gt;S \in \mathrm{NPC} \cap \mathrm{SPARSE}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;S\in \mathrm{NPC}&amp;lt;/tex&amp;gt;, и &amp;lt;tex&amp;gt;\mathrm{LSAT} \in \mathrm{NP}&amp;lt;/tex&amp;gt;, то существует полиномиальная функция сведения &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;\langle \phi, y \rangle \in \mathrm{LSAT} \Leftrightarrow f(\langle \phi, y \rangle) \in S&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как функция &amp;lt;tex&amp;gt;f&amp;lt;/tex&amp;gt; работает полиномиальное время, и &amp;lt;tex&amp;gt;|\phi|=|y|&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;|y|&amp;lt;/tex&amp;gt; — длина вектора &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;), то &amp;lt;tex&amp;gt;f(\langle\phi,y\rangle) \le q(|\phi|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;q&amp;lt;/tex&amp;gt; — полином.&lt;br /&gt;
&amp;lt;tex&amp;gt;S\in \mathrm{SPARSE}&amp;lt;/tex&amp;gt;, следовательно &amp;lt;tex&amp;gt;\forall n \; |S \cap \Sigma^n|\le p(n)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt; — некоторый полином. &lt;br /&gt;
&lt;br /&gt;
Тогда &amp;lt;tex&amp;gt;|\{x\in S \bigm| |x| \le q(|\phi|)\}| \le \sum\limits_{i=1}^{q(|\phi|)} p(i) = r(|\phi|)&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; — также полином.&lt;br /&gt;
&lt;br /&gt;
Опишем алгоритм для нахождения лексикографически минимальной строки &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;, удовлетворяющей формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;n=|\phi|, r=r(|\phi|)&amp;lt;/tex&amp;gt;. Изначально область поиска для &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; — все строки длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;. Опишем одну итерацию поиска.&lt;br /&gt;
&lt;br /&gt;
Разобьём текущее множество строк на &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; подотрезок примерно равной длины. Обозначим концы полученных подотрезков &amp;lt;tex&amp;gt;w_0,...,w_{r+1}&amp;lt;/tex&amp;gt;. Пусть теперь &amp;lt;tex&amp;gt;z_i=f(\langle\phi,w_i\rangle)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Из леммы (2) мы знаем, что, начиная с некоторого &amp;lt;tex&amp;gt;l&amp;lt;/tex&amp;gt;, все пары &amp;lt;tex&amp;gt;\langle\phi, w_l\rangle \in \mathrm{LSAT}&amp;lt;/tex&amp;gt;. Тогда по сведению &amp;lt;tex&amp;gt;z_j \in S&amp;lt;/tex&amp;gt; для всех &amp;lt;tex&amp;gt;j\ge l&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим два случая:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;tex&amp;gt;\exists i \ne j : z_i=z_j&amp;lt;/tex&amp;gt;. Строки &amp;lt;tex&amp;gt;z_i&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;z_j&amp;lt;/tex&amp;gt; либо обе лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;, либо обе не лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;. Тогда по вышеуказанной причине &amp;lt;tex&amp;gt;x\notin (w_i, w_j]&amp;lt;/tex&amp;gt;. Значит мы можем исключить этот полуинтервал из рассматриваемого множества. Таким образом, мы удаляем не менее &amp;lt;tex&amp;gt;\frac 1{r+1}&amp;lt;/tex&amp;gt; часть множества подстановок.&lt;br /&gt;
# &amp;lt;tex&amp;gt;z_i \ne z_j \, \forall i \ne j&amp;lt;/tex&amp;gt;. Как было показано выше, если &amp;lt;tex&amp;gt;x \in [w_0, w_1]&amp;lt;/tex&amp;gt;, то все &amp;lt;tex&amp;gt;z_i&amp;lt;/tex&amp;gt;, начиная с &amp;lt;tex&amp;gt;z_1&amp;lt;/tex&amp;gt; лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;, но тогда &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; содержит &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; строку длины не более, чем &amp;lt;tex&amp;gt;q(|\phi|)&amp;lt;/tex&amp;gt;, что противоречит условию &amp;lt;tex&amp;gt;|\{x\in S\, |\, |x| \le q(|\phi|)\}| \le r(|\phi|)&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt;x\notin[w_0,w_1]&amp;lt;/tex&amp;gt;, то есть его можно убрать из рассмотрения.&lt;br /&gt;
&lt;br /&gt;
В обоих случаях мы сузили область поиска как минимум на &amp;lt;tex&amp;gt;\frac 1{r+1}&amp;lt;/tex&amp;gt; её размера. &lt;br /&gt;
&lt;br /&gt;
Будем повторять эту процедуру до тех пор, пока не останется не более &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; строки, которые мы можем проверить за полиномиальное время. Если какая-то из них удовлетворила формуле &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;x=min(w_i), w_i&amp;lt;/tex&amp;gt; удовлетворяет &amp;lt;tex&amp;gt;\phi&amp;lt;/tex&amp;gt;. Иначе, &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; не существует.&lt;br /&gt;
&lt;br /&gt;
Оценим время работы нашего алгоритма. После &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; итераций у нас останется не более &amp;lt;tex&amp;gt;2^n(1-\frac1{r+1})^k&amp;lt;/tex&amp;gt; строк. Оценим &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;2^n(1-\frac1{r+1})^k \simeq 1&amp;lt;/tex&amp;gt;. Отсюда &amp;lt;tex&amp;gt;k=O(rn)&amp;lt;/tex&amp;gt; (это можно получить, выразив &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; через &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; и воспользовавшись [http://ru.wikipedia.org/wiki/Ряд_Тейлора#.D0.A0.D1.8F.D0.B4.D1.8B_.D0.9C.D0.B0.D0.BA.D0.BB.D0.BE.D1.80.D0.B5.D0.BD.D0.B0_.D0.BD.D0.B5.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9 формулой Тейлора] для логарифма). &lt;br /&gt;
&lt;br /&gt;
Таким образом, мы можем разрешить язык &amp;lt;tex&amp;gt;\mathrm{LSAT}&amp;lt;/tex&amp;gt; за полиномиальное время, найдя лексикографически минимальную строку, удовлетворяющую формуле, и сравнив её с нашим аргументом. Так как &amp;lt;tex&amp;gt;\mathrm{LSAT}\in \mathrm{NPC}&amp;lt;/tex&amp;gt;, то мы можем решить любую задачу из &amp;lt;tex&amp;gt;\mathrm{NP}&amp;lt;/tex&amp;gt; за полиномиальное время, а значит &amp;lt;tex&amp;gt;\mathrm{P}=\mathrm{NP}&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
*[[Класс P]]&lt;br /&gt;
*[[Классы NP и Σ₁]]&lt;br /&gt;
*[[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]]&lt;br /&gt;
*[[Теорема Бермана — Форчуна]]&lt;br /&gt;
&lt;br /&gt;
== Литература и источники информации ==&lt;br /&gt;
* [http://blog.computationalcomplexity.org/2011/09/mahaneys-theorem.html Блог Computational Complexity]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Теория сложности]]&lt;/div&gt;</summary>
		<author><name>178.178.27.55</name></author>	</entry>

	</feed>