<?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=94.25.193.125&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=94.25.193.125&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/94.25.193.125"/>
		<updated>2026-05-05T23:11:29Z</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=20639</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=20639"/>
				<updated>2012-04-14T12:33:50Z</updated>
		
		<summary type="html">&lt;p&gt;94.25.193.125: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
&amp;lt;tex&amp;gt;LSAT=\{\langle\phi,y\rangle | \exists x: x&amp;lt;_{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;LSAT \in NPC&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
#Очевидно, что &amp;lt;tex&amp;gt;LSAT \in NP&amp;lt;/tex&amp;gt;.&lt;br /&gt;
#Сведём &amp;lt;tex&amp;gt;SAT&amp;lt;/tex&amp;gt; к &amp;lt;tex&amp;gt;LSAT&amp;lt;/tex&amp;gt;. Для этого рассмотрим отображение &amp;lt;tex&amp;gt;\phi \mapsto \langle \phi, 1^m\rangle&amp;lt;/tex&amp;gt;, где &amp;lt;tex&amp;gt;m&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 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 &amp;lt;_{lex} 1^m, \phi(x)=1&amp;lt;/tex&amp;gt;. Следовательно, &amp;lt;tex&amp;gt;\langle \phi, 1^m\rangle \in LSAT&amp;lt;/tex&amp;gt;.&lt;br /&gt;
#*Если &amp;lt;tex&amp;gt;\langle \phi, 1^m\rangle \in LSAT&amp;lt;/tex&amp;gt;, то &amp;lt;tex&amp;gt;\exists x: x &amp;lt;_{lex} 1^m, \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 SAT&amp;lt;/tex&amp;gt;.&lt;br /&gt;
:Таким образом, &amp;lt;tex&amp;gt;SAT \le LSAT&amp;lt;/tex&amp;gt;. Но &amp;lt;tex&amp;gt;SAT \in NPC&amp;lt;/tex&amp;gt;, а значит &amp;lt;tex&amp;gt;\forall L \in NP \; L \le SAT&amp;lt;/tex&amp;gt;. Тогда в силу транзитивности &amp;lt;tex&amp;gt;\forall L \in NP \; L \le LSAT&amp;lt;/tex&amp;gt;, то есть &amp;lt;tex&amp;gt;LSAT \in NPH&amp;lt;/tex&amp;gt;.&lt;br /&gt;
Итого мы доказали, что &amp;lt;tex&amp;gt;LSAT \in NPH&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;LSAT \in NP&amp;lt;/tex&amp;gt;. Тогда по определению &amp;lt;tex&amp;gt;LSAT \in 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 LSAT, y&amp;lt;_{lex}z&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\langle\phi,z\rangle \in LSAT&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&amp;lt;tex&amp;gt;\langle\phi,y\rangle \in LSAT&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;\exists x: x&amp;lt;_{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 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;NPC \cap SPARSE \ne \varnothing \Rightarrow P=NP&amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=Пусть &amp;lt;tex&amp;gt;S \in NPC \cap SPARSE&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Так как &amp;lt;tex&amp;gt;S\in NPC&amp;lt;/tex&amp;gt;, и &amp;lt;tex&amp;gt;LSAT \in NP&amp;lt;/tex&amp;gt;, то существует полиномиальная функция сведения &amp;lt;tex&amp;gt;f:LSAT \mapsto S&amp;lt;/tex&amp;gt; такая, что &amp;lt;tex&amp;gt;\langle \phi, y \rangle \in LSAT \iff 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;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 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\, |\, |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|&amp;lt;/tex&amp;gt;.  Разобьём множество бинарных строк длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;r+1&amp;lt;/tex&amp;gt; подотрезок так, чтобы каждый подотрезок содержал не более &amp;lt;tex&amp;gt;\frac{2^n}{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;i&amp;lt;/tex&amp;gt;, все пары &amp;lt;tex&amp;gt;\langle\phi, w_i\rangle \in 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 i&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;w_0&amp;lt;/tex&amp;gt; или &amp;lt;tex&amp;gt;w_1&amp;lt;/tex&amp;gt; лежат в &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;, то все последующие &amp;lt;tex&amp;gt;w_i&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; её размера. Будем повторять эту процедуру до тех пор, пока не останется не более &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;LSAT&amp;lt;/tex&amp;gt; за полиномиальное время, найдя лексиграфически минимальную строку, удовлетворяющую формулу, и сравнив её с нашим аргументом. Так как &amp;lt;tex&amp;gt;LSAT\in NPC&amp;lt;/tex&amp;gt;, то мы можем решить любую задачу из &amp;lt;tex&amp;gt;NP&amp;lt;/tex&amp;gt; за полиномиальное время, а значит &amp;lt;tex&amp;gt;P=NP&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>94.25.193.125</name></author>	</entry>

	</feed>