<?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=Yoprst</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=Yoprst"/>
		<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/Yoprst"/>
		<updated>2026-04-23T10:27:22Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_NP&amp;diff=75076</id>
		<title>Класс NP</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_NP&amp;diff=75076"/>
				<updated>2020-10-04T11:22:32Z</updated>
		
		<summary type="html">&lt;p&gt;Yoprst: Исправлена опечатка в формуле: l переименована в x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В теории сложности '''Класс NP''' &amp;amp;mdash; класс языков (задач), ответ на которые можно проверить за полиномиальное время.&lt;br /&gt;
&lt;br /&gt;
===Определение===&lt;br /&gt;
Формальное определение класса '''NP''' через класс '''[[NTIME]]''' выглядит так:&lt;br /&gt;
&lt;br /&gt;
'''NP'''=&amp;lt;tex&amp;gt;\bigcup_{i=0}^{\infty}&amp;lt;/tex&amp;gt; '''NTIME'''&amp;lt;tex&amp;gt;(in^i)=\bigcup_{i=0}^{\infty}\bigcup_{k=0}^{\infty}&amp;lt;/tex&amp;gt; '''NTIME'''&amp;lt;tex&amp;gt;(in^k)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Класс &amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt;===&lt;br /&gt;
Альтернативным определением класса '''NP''' является определение на языке сертификатов.&lt;br /&gt;
&lt;br /&gt;
Будем говорить, что &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; является сертификатом принадлежности &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; языку &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, если существует полиномиальное отношение (верификатор) &amp;lt;tex&amp;gt;R&amp;lt;/tex&amp;gt;, такое что &amp;lt;tex&amp;gt;R(x,y)=1&amp;lt;/tex&amp;gt; тогда и только тогда, когда &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; принадлежит &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Классом &amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt; называется класс языков (задач) &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;, таких что для каждого из них существует полиномиальный верификатор &amp;lt;tex&amp;gt;R&amp;lt;/tex&amp;gt;, а также полином &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, такие что слово &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt; принадлежит языку &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; тогда и только тогда, когда существует сертификат &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt;, длина которого не превосходит заданного полинома &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, и сертификат &amp;lt;tex&amp;gt;y&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;\Sigma_1 = \{L|\exists R(x,y) \in P, p \in Poly | x \in L \Leftrightarrow \exists y, |y| \le p(x) | R(x,y)=1\}&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Теорема о равенстве &amp;lt;tex&amp;gt;\Sigma_1 &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; NP&amp;lt;/tex&amp;gt;==&lt;br /&gt;
===Формулировка===&lt;br /&gt;
&amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt; = '''NP'''&lt;br /&gt;
===Доказательство===&lt;br /&gt;
Построим доказательство равенства из доказательств двух взаимных включений.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt; &amp;amp;sub; '''NP'''&lt;br /&gt;
&lt;br /&gt;
Построим программу, работающую за полином (из свойств машины Тьюринга, возможно построить аналогичную машину Тьюринга, работающюю за полиномиальное время, возможно большее), которая будет проверять решение задачи, входящей в класс &amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt;. Таким образом покажем вхождение класса &amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt; в '''NP'''.&lt;br /&gt;
&lt;br /&gt;
Вхождение доказано.&lt;br /&gt;
&lt;br /&gt;
'''NP''' &amp;amp;sub; &amp;lt;tex&amp;gt;\Sigma_1&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt; &amp;amp;isin; '''NP''' . Тогда существует НМТ &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;, распознающая &amp;lt;tex&amp;gt;L&amp;lt;/tex&amp;gt;. Построим сертификат &amp;lt;tex&amp;gt;y&amp;lt;/tex&amp;gt; как последовательность недетерминированных выборов машины &amp;lt;tex&amp;gt;m&amp;lt;/tex&amp;gt;, приводящих к допуску слова. Верификатором сертификата &amp;lt;tex&amp;gt;R&amp;lt;/tex&amp;gt; выберем структуру, симулирующую НМТ, возвращающую 0 при ошибке выполнения или завершении работы в недопускающем состоянии, и 1, если работа НМТ завершилась корректно в допускающем состоянии. Таким образом, &amp;lt;tex&amp;gt; L \in \Sigma_1 &amp;lt;/tex&amp;gt;, что и требовалось доказать.&lt;br /&gt;
&lt;br /&gt;
Теорема доказана.&lt;br /&gt;
&lt;br /&gt;
==Примеры задач класса NP==&lt;br /&gt;
* [[NP-полнота задачи BH1N|Задача BH1N]].&lt;br /&gt;
* Задача о [[NP-полнота задач о вершинном покрытии, клике и независимом множестве|вершинном покрытии, клике и независимом множестве]].&lt;br /&gt;
* Задача о [[NP-полнота задачи о выполнимости булевой формулы в форме КНФ|удовлетворении булевой формулы, заданной в КНФ]]. SAT&lt;br /&gt;
&lt;br /&gt;
[[Category:NP]]&lt;/div&gt;</summary>
		<author><name>Yoprst</name></author>	</entry>

	</feed>