<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2</id>
		<title>Примеры NP-полных языков - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;action=history"/>
		<updated>2026-05-19T14:04:04Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=84333&amp;oldid=prev</id>
		<title>Maintenance script: rollbackEdits.php mass rollback</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=84333&amp;oldid=prev"/>
				<updated>2022-09-04T16:03:42Z</updated>
		
		<summary type="html">&lt;p&gt;rollbackEdits.php mass rollback&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:03, 4 сентября 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;color: red; background-color: black; font-size: 56px; width: 800px;&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|+&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-align=&amp;quot;center&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|'''НЕТ ВОЙНЕ'''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''Антивоенный комитет России''&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== NP-полнота CNFSAT ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== NP-полнота CNFSAT ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=84274&amp;oldid=prev</id>
		<title>185.243.218.46 в 06:36, 1 сентября 2022</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=84274&amp;oldid=prev"/>
				<updated>2022-09-01T06:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:36, 1 сентября 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;color: red; background-color: black; font-size: 56px; width: 800px;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|+&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-align=&amp;quot;center&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|'''НЕТ ВОЙНЕ'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''Антивоенный комитет России''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-style=&amp;quot;font-size: 16px;&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== NP-полнота CNFSAT ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== NP-полнота CNFSAT ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>185.243.218.46</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=25637&amp;oldid=prev</id>
		<title>194.85.160.130: Новая страница: «== NP-полнота CNFSAT == &lt;tex&gt; \mathrm{CNFSAT} &lt;/tex&gt; {{---}} язык булевых формул, заданных в КНФ, таких что для...»</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_NP-%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D1%85_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2&amp;diff=25637&amp;oldid=prev"/>
				<updated>2012-06-18T12:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «== NP-полнота CNFSAT == &amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в &lt;a href=&quot;/wiki/index.php?title=%D0%9A%D0%9D%D0%A4&quot; title=&quot;КНФ&quot;&gt;КНФ&lt;/a&gt;, таких что для...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== NP-полнота CNFSAT ==&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что для них существует подстановка, при которой формула истинна. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{CNFSAT} = \lbrace \varphi(x_1 \ldots x_n) \bigm| \varphi &amp;lt;/tex&amp;gt; задано в КНФ и &amp;lt;tex&amp;gt; \exists x_1 \ldots x_n : \varphi(x_1 \ldots x_n) = 1 \rbrace &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= &amp;lt;tex&amp;gt; \mathrm{CNFSAT} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
#&amp;lt;tex&amp;gt; \mathrm{CNFSAT} \in \mathrm{NP} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Можно написать недетерминированную программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, которая распознает язык &amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt;. Она будет недетерминированно выбирать подстановку, проверять, истинна ли формула при такой подстановке, и выдавать ответ.&lt;br /&gt;
# &amp;lt;tex&amp;gt; \mathrm{CNFSAT} \in \mathrm{NPH} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt;Сведем задачу &amp;lt;tex&amp;gt; \mathrm{SAT} &amp;lt;/tex&amp;gt; к задаче &amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt;. Построим функцию &amp;lt;tex&amp;gt; f(x) &amp;lt;/tex&amp;gt;, которая будет строить по булевой формуле, булевую формулу в [[КНФ]], такую что &amp;lt;tex&amp;gt; x \in \mathrm{SAT} \Leftrightarrow f(x) \in \mathrm{CNFSAT} &amp;lt;/tex&amp;gt;, причем &amp;lt;tex&amp;gt; |f(x)| \le p(|x|) &amp;lt;/tex&amp;gt; для некоторого полинома &amp;lt;tex&amp;gt; p &amp;lt;/tex&amp;gt;. &amp;lt;br&amp;gt; Опишем как будет работать функция &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt;. &lt;br /&gt;
##Для начала преобразуем формулу так, чтобы все отрицания относились только к переменным. Это можно сделать по правилам: &lt;br /&gt;
##* &amp;lt;tex&amp;gt; \neg{(x \lor y)} = \neg{x} \land \neg{y} &amp;lt;/tex&amp;gt;&lt;br /&gt;
##* &amp;lt;tex&amp;gt; \neg{(x \land y)} = \neg{x} \lor \neg{y} &amp;lt;/tex&amp;gt;&lt;br /&gt;
## Далее построим дерево по формуле &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;. Будем строить формулу в [[КНФ]] для поддеревьев рекурсивно. Есть два случая:&lt;br /&gt;
##* Корень дерева {{---}} &amp;lt;tex&amp;gt; \land &amp;lt;/tex&amp;gt;. Пусть левое и правое поддерево &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; {{---}} это &amp;lt;tex&amp;gt; x_l &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; x_r &amp;lt;/tex&amp;gt; соответственно. Тогда &amp;lt;tex&amp;gt; f(x) = f(x_l) \land f(x_r) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
##* Корень дерева {{---}} &amp;lt;tex&amp;gt; \lor &amp;lt;/tex&amp;gt;. Пусть левое и правое поддерево &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; {{---}} это &amp;lt;tex&amp;gt; x_l &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; x_r &amp;lt;/tex&amp;gt; соответственно. Создадим новую переменную &amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt; f(x) = (f(x_l) \lor z) \land (f(x_r) \lor \neg{z}) &amp;lt;/tex&amp;gt;. &amp;lt;tex&amp;gt; f(x_l) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; f(x_r) &amp;lt;/tex&amp;gt; {{---}} формулы в [[КНФ]], поэтому переменную &amp;lt;tex&amp;gt; z &amp;lt;/tex&amp;gt; и ее отрицание можно внести в каждую скобку в &amp;lt;tex&amp;gt; f(x_l) &amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt; f(x_r) &amp;lt;/tex&amp;gt;.&lt;br /&gt;
## Посчитаем какой длины будет &amp;lt;tex&amp;gt; f(x) &amp;lt;/tex&amp;gt;. Это зависит от количества логических операций в формуле. Заметим, что количество скобок в конечной формуле равно количеству операций &amp;lt;tex&amp;gt; \land &amp;lt;/tex&amp;gt;. Количество операций &amp;lt;tex&amp;gt; \land &amp;lt;/tex&amp;gt; не более чем &amp;lt;tex&amp;gt; |x| &amp;lt;/tex&amp;gt;, так как &amp;lt;tex&amp;gt; \land &amp;lt;/tex&amp;gt; добавляется один раз в первом из рассмотренных выше случаев. А во втором из рассмотренных случаев добавляется &amp;lt;tex&amp;gt; \lor &amp;lt;/tex&amp;gt; в том количестве, сколько скобок у нас есть. А количество скобок равно количеству &amp;lt;tex&amp;gt; \land &amp;lt;/tex&amp;gt;, поэтому количество операций &amp;lt;tex&amp;gt; \lor &amp;lt;/tex&amp;gt; не превысит &amp;lt;tex&amp;gt; |x|^2 &amp;lt;/tex&amp;gt;. Поэтому &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt; будет работать за полином.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Значит &amp;lt;tex&amp;gt; \mathrm{CNFSAT} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
== NP-полнота 3-SAT ==&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{3SAT} &amp;lt;/tex&amp;gt; {{---}} язык булевых формул, заданных в [[КНФ]], таких что каждый дизъюнкт состоит ровно из 3 переменных и для этой булевой формулы существует подстановка, при которой она истинна. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{3SAT} = \lbrace \varphi(x_1 \ldots x_n) \bigm| \varphi &amp;lt;/tex&amp;gt; задано в 3КНФ и &amp;lt;tex&amp;gt; \exists x_1 \ldots x_n : \varphi(x_1 \ldots x_n) = 1 \rbrace &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= &amp;lt;tex&amp;gt; \mathrm{3SAT} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
#&amp;lt;tex&amp;gt; \mathrm{3SAT} \in \mathrm{NP} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Можно написать недетерминированную программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, которая распознает язык &amp;lt;tex&amp;gt; \mathrm{3SAT} &amp;lt;/tex&amp;gt;. Она будет недетерминированно выбирать подстановку, проверять, истинна ли формула при такой подстановке, и выдавать ответ.&lt;br /&gt;
# &amp;lt;tex&amp;gt; \mathrm{3SAT} \in \mathrm{NPH} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt;Сведем задачу &amp;lt;tex&amp;gt; \mathrm{CNFSAT} &amp;lt;/tex&amp;gt; к задаче &amp;lt;tex&amp;gt; \mathrm{3SAT} &amp;lt;/tex&amp;gt;. Построим функцию &amp;lt;tex&amp;gt; f(x) &amp;lt;/tex&amp;gt;, которая будет строить по булевой формуле в [[КНФ]], булевую формулу в 3-КНФ, такую что &amp;lt;tex&amp;gt; x \in \mathrm{CNFSAT} \Leftrightarrow f(x) \in \mathrm{3SAT} &amp;lt;/tex&amp;gt;, причем &amp;lt;tex&amp;gt; |f(x)| \le p(|x|) &amp;lt;/tex&amp;gt; для некоторого полинома &amp;lt;tex&amp;gt; p &amp;lt;/tex&amp;gt;. &amp;lt;br&amp;gt; Опишем как будет работать функция &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt;. &amp;lt;br&amp;gt; Заменим каждый дизъюнкт в &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; на может быть несколько дизъюнктов, которые состоят ровно из трех переменных.&lt;br /&gt;
## Дизъюнкт содержит не более трех переменных. Тогда возьмем какую-нибудь переменную из этого дизъюнкта и продублируем ее так, чтобы в нем стало ровно 3 переменных. Например: &amp;lt;tex&amp;gt; f(y \lor z) = (y \lor z \lor y) &amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt; f(y) = (y \lor y \lor y) &amp;lt;/tex&amp;gt;&lt;br /&gt;
## Дизъюнкт содержит больше трех переменных. Пусть он имеет вид: &amp;lt;tex&amp;gt; (x_1 \lor x_2 \lor \ldots \lor x_k) &amp;lt;/tex&amp;gt;, создадим новые переменные &amp;lt;tex&amp;gt; z_1, z_2, \ldots, z_{k - 2} &amp;lt;/tex&amp;gt;, и тогда &amp;lt;br&amp;gt; &amp;lt;tex&amp;gt; f(x_1 \lor x_2 \lor \ldots \lor x_k) = (x_1~\lor~x_2~\lor~z_1)~\land~(x_3~\lor~\neg{z_1}~\lor~z_2)~\land~\ldots~\land~(x_i~\lor~\neg{z_{i - 2}}~\lor~z_{i - 1})~\land~\ldots~\land~(x_{k - 1}~\lor~x_k~\lor~\neg{z_{k - 2}}) &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Можно заметить, что если какое-то &amp;lt;tex&amp;gt; x_i = 1 &amp;lt;/tex&amp;gt;, то существует подстановка для &amp;lt;tex&amp;gt; z_1, z_2, \ldots, z_{k - 1} &amp;lt;/tex&amp;gt;, такая что &amp;lt;tex&amp;gt; f(x_1 \lor x_2 \lor \ldots \lor x_k)&amp;lt;/tex&amp;gt; удовлетворима. Также, если &amp;lt;tex&amp;gt; \forall i : x_i = 0 &amp;lt;/tex&amp;gt;, нельзя удовлетворить все скобки, так как каждая скобка удовлетворяется только переменными &amp;lt;tex&amp;gt; z_1, z_2, \ldots, z_{k - 2} &amp;lt;/tex&amp;gt;, можно понять, что при выборе значения &amp;lt;tex&amp;gt; z_1 &amp;lt;/tex&amp;gt; все переменные восстанавливаются однозначно и значение &amp;lt;tex&amp;gt; z_{k - 2} &amp;lt;/tex&amp;gt; нельзя выбрать так, чтобы удовлетворить последние две скобки одновременно. А значит &amp;lt;tex&amp;gt; x \in CNFSAT \Leftrightarrow f(x) \in 3SAT &amp;lt;/tex&amp;gt;.&lt;br /&gt;
#:Заметим, что размер формулы возрос не более чем в три раза, поэтому функция &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt; будет работать за полином.&lt;br /&gt;
:Значит &amp;lt;tex&amp;gt; \mathrm{3SAT} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== NP-полнота поиска максимального независимого множества ==&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{IND} &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; \mathrm{IND} = \lbrace \langle G, k \rangle \bigm| \exists H \subset V(G) &amp;lt;/tex&amp;gt;, такое что &amp;lt;tex&amp;gt; H &amp;lt;/tex&amp;gt; независимо в &amp;lt;tex&amp;gt; G \rbrace &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= &amp;lt;tex&amp;gt; \mathrm{IND} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
#&amp;lt;tex&amp;gt; \mathrm{IND} \in \mathrm{NP} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Можно написать недетерминированную программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, которая распознает язык &amp;lt;tex&amp;gt; \mathrm{IND} &amp;lt;/tex&amp;gt;. Она будет недетерминированно выбирать множество вершин мощности &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt;, проверять, является ли это множество независимым, это можно сделать за полином, и выдавать ответ.&lt;br /&gt;
# &amp;lt;tex&amp;gt; \mathrm{IND} \in \mathrm{NPH} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt;Сведем задачу &amp;lt;tex&amp;gt; \mathrm{3SAT} &amp;lt;/tex&amp;gt; к задаче &amp;lt;tex&amp;gt; \mathrm{IND} &amp;lt;/tex&amp;gt;. Построим функцию &amp;lt;tex&amp;gt; f(x) &amp;lt;/tex&amp;gt;, которая будет строить по булевой формуле в 3-КНФ, пару &amp;lt;tex&amp;gt; \langle G, k \rangle &amp;lt;/tex&amp;gt;, такую что &amp;lt;tex&amp;gt; x \in \mathrm{3SAT} \Leftrightarrow f(x) \in \mathrm{IND} &amp;lt;/tex&amp;gt;, причем &amp;lt;tex&amp;gt; |f(x)| \le p(|x|) &amp;lt;/tex&amp;gt; для некоторого полинома &amp;lt;tex&amp;gt; p &amp;lt;/tex&amp;gt;. &amp;lt;br&amp;gt; Опишем как будет работать функция &amp;lt;tex&amp;gt; f &amp;lt;/tex&amp;gt;.&lt;br /&gt;
## &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt; {{---}} количество дизъюнктов в &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt;.&lt;br /&gt;
## Для каждого дизъюнкта создадим по три вершины в графе &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt;, каждая из которой будет сопоставлена переменной из этого дизъюнкта. &amp;lt;tex&amp;gt; |V(G)| = 3k &amp;lt;/tex&amp;gt;&lt;br /&gt;
## Соединим вершины из одного дизъюнкта ребрами.&lt;br /&gt;
## Для всех пар вершин, которые сопоставлены переменным, которые являются отрицаниями друг друга, добавим ребро между этими вершинами.&lt;br /&gt;
#: Докажем, что &amp;lt;tex&amp;gt; x \in \mathrm{3SAT} \Leftrightarrow \langle G, k \rangle \in \mathrm{IND} &amp;lt;/tex&amp;gt;&lt;br /&gt;
#* Пусть формула &amp;lt;tex&amp;gt; x &amp;lt;/tex&amp;gt; удовлетворима. Тогда в каждом дизъюнкте будет будет существовать вершина, что сопоставленная ей переменная истинна. Для каждого дизъюнкта выберем ровно одну такую вершину. Это множество будет мощности &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt; и независимым, потому что в каждом дизъюнкте мы выбрали ровно одну переменную и мы не выбрали пару вершин, которые сопоставленны переменным, которые являются отрицаниями друг друга.&lt;br /&gt;
#* Пусть существует независимое множество мощности &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt; в графе &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt;. Тогда известно, что для каждого дизъюнкта не может быть выбрано более одной вершины из нее, значит из каждого дизъюнкта выбрана ровно одна вершина, потому что всего вершин {{---}} &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt;. Теперь если мы удовлетворим каждую переменную, сопоставленная вершина которой в независимом множестве, вся формула удовлетворится. А каждую переменную можно удовлетворить, потому что в независимом множестве нет пары вершин, которым сопоставлены переменные, которые являются отрицаниями друг друга. Значит формула удовлетворима.&lt;br /&gt;
: А значит &amp;lt;tex&amp;gt; \mathrm{IND} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
== NP-полнота поиска минимального вершинного покрытия в графе ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt; \mathrm{VCOVER} &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; \mathrm{VCOVER} = \lbrace \langle G, k \rangle \bigm| \exists H \subset V(G) : \forall vu \in E(G), (v \in H) \lor (u \in H) \rbrace &amp;lt;/tex&amp;gt;&lt;br /&gt;
{{Лемма&lt;br /&gt;
|statement = &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt; {{---}} неориентированный граф. &amp;lt;tex&amp;gt; H \subset G &amp;lt;/tex&amp;gt; является независимым множеством в &amp;lt;tex&amp;gt; G \Rightarrow  G \setminus H &amp;lt;/tex&amp;gt; является вершинным покрытием в &amp;lt;tex&amp;gt; G &amp;lt;/tex&amp;gt;.&lt;br /&gt;
|proof=&lt;br /&gt;
* &amp;lt;tex&amp;gt; \Rightarrow &amp;lt;/tex&amp;gt;&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt; H &amp;lt;/tex&amp;gt; {{---}} независимое множество. Заметим, что по определению независимого множества &amp;lt;tex&amp;gt; \forall vu \in E(G) : (v \notin H) \lor (u \notin H) &amp;lt;/tex&amp;gt;, из чего следует, что &amp;lt;tex&amp;gt; (v \in (G \setminus H)) \lor (u \in (G \setminus H)) &amp;lt;/tex&amp;gt;, это значит, что &amp;lt;tex&amp;gt; G \setminus H &amp;lt;/tex&amp;gt; {{---}} вершинное покрытие.&lt;br /&gt;
* &amp;lt;tex&amp;gt; \Leftarrow &amp;lt;/tex&amp;gt;&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt; H &amp;lt;/tex&amp;gt; {{---}} вершинное покрытие. Заметим, что &amp;lt;tex&amp;gt; \forall vu \in E(G) : (v \in H) \lor (u \in H) &amp;lt;/tex&amp;gt;, из чего следует, что &amp;lt;tex&amp;gt; (v \notin (G \setminus H)) \lor (u \notin (G \setminus H)) &amp;lt;/tex&amp;gt;, это значит, что &amp;lt;tex&amp;gt; G \setminus H &amp;lt;/tex&amp;gt; {{---}} независимое множество.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement= &amp;lt;tex&amp;gt; \mathrm{VCOVER} \in \mathrm{NPC} &amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof=&lt;br /&gt;
#&amp;lt;tex&amp;gt; \mathrm{VCOVER} \in \mathrm{NP} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Можно написать недетерминированную программу &amp;lt;tex&amp;gt;p&amp;lt;/tex&amp;gt;, которая распознает язык &amp;lt;tex&amp;gt; \mathrm{VCOVER} &amp;lt;/tex&amp;gt;. Она будет недетерминированно выбирать множество вершин мощности &amp;lt;tex&amp;gt; k &amp;lt;/tex&amp;gt;, проверять, является ли это множество вершинным покрытием, это можно сделать за полином, и выдавать ответ.&lt;br /&gt;
# &amp;lt;tex&amp;gt; \mathrm{VCOVER} \in \mathrm{NPH} &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt;Сведем задачу &amp;lt;tex&amp;gt; \mathrm{IND} &amp;lt;/tex&amp;gt; к задаче &amp;lt;tex&amp;gt; \mathrm{VCOVER} &amp;lt;/tex&amp;gt;. Построим функцию &amp;lt;tex&amp;gt; f(x) &amp;lt;/tex&amp;gt;, которая будет строить паре &amp;lt;tex&amp;gt; \langle G, k \rangle &amp;lt;/tex&amp;gt;, пару &amp;lt;tex&amp;gt; \langle H, l \rangle &amp;lt;/tex&amp;gt;, такую что &amp;lt;tex&amp;gt; x \in \mathrm{IND} \Leftrightarrow f(x) \in \mathrm{VCOVER} &amp;lt;/tex&amp;gt;, причем &amp;lt;tex&amp;gt; |f(x)| \le p(|x|) &amp;lt;/tex&amp;gt; для некоторого полинома &amp;lt;tex&amp;gt; p &amp;lt;/tex&amp;gt;. &amp;lt;br&amp;gt; &amp;lt;tex&amp;gt; f(\langle G, k \rangle) = \langle G, |V(G)| - k \rangle &amp;lt;/tex&amp;gt; &amp;lt;br&amp;gt; Из доказанной выше леммы, следует, что &amp;lt;tex&amp;gt; \langle G, k \rangle \in \mathrm{IND} \Leftrightarrow \langle G, |V(G)| - k \rangle \in \mathrm{VCOVER} &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;
* [[NP-полнота BH1N]]&lt;br /&gt;
* [[Теорема Кука]]&lt;br /&gt;
* [[Сведение относительно класса функций. Сведение по Карпу. Трудные и полные задачи]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/List_of_NP-complete_problems Список NP-полных задач]&lt;br /&gt;
[[Категория: Теория сложности]]&lt;/div&gt;</summary>
		<author><name>194.85.160.130</name></author>	</entry>

	</feed>