<?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=176.117.137.156&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=176.117.137.156&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/176.117.137.156"/>
		<updated>2026-05-26T02:03:47Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=NP-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5&amp;diff=53583</id>
		<title>NP-полнота задачи о рюкзаке</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=NP-%D0%BF%D0%BE%D0%BB%D0%BD%D0%BE%D1%82%D0%B0_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5&amp;diff=53583"/>
				<updated>2016-05-03T13:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;176.117.137.156: /* syntax error fix in Формулировка задачи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Формулировка задачи==&lt;br /&gt;
В '''задаче о рюкзаке''' (Knapsack problem) входными данными являются набор &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; пар целых чисел &amp;lt;math&amp;gt;P = \{(w_{i},v_{i})\}^{n}_{i=1}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;w_{i}&amp;lt;/math&amp;gt; - вес i-го предмета, а &amp;lt;math&amp;gt;v_{i}&amp;lt;/math&amp;gt; - стоимость, и также два целых числа &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; - максимальный вес и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; - минимальная стоимость. Требуется определить, можно ли выбрать такой набор предметов, что их суммарная стоимость больше либо равна &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;, а вес меньше или равен &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\exists P' \subseteq P: ((\sum_{(w_{i},v_{i}) \in P'}{v_{i}} \geq p) \wedge (\sum_{(w_{i},v_{i}) \in P'}{w_{i}} \leq c))&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Доказательство NP-полноты==&lt;br /&gt;
Для доказательства того, что Knapsack problem &amp;lt;math&amp;gt;\in&amp;lt;/math&amp;gt; [[NPC]], необходимо доказать два факта:&lt;br /&gt;
*Knapsack problem &amp;lt;math&amp;gt;\in&amp;lt;/math&amp;gt; [[NP]] &lt;br /&gt;
*Knapsack problem &amp;lt;math&amp;gt;\in&amp;lt;/math&amp;gt; [[NPH]] &lt;br /&gt;
===Доказательство принадлежности к NP===&lt;br /&gt;
В качестве сертификата возьмем удовлетворяющее условию задачи подмножество пар &amp;lt;math&amp;gt;P'&amp;lt;/math&amp;gt; с суммарным весом, не большим &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; и стоимостью не меньше &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;. Очевидно, оно удовлетворяет всем требованиям, налагаемым на сертификат. Проверяющая функция строится очевидным образом и работает за полиномиальное от размера входа время.&lt;br /&gt;
===Доказательство принадлежности к NPH===&lt;br /&gt;
Сведем [[NP-полнота задачи о сумме подмножества|задачу о сумме подмножества]] к задаче о рюкзаке. Пусть &amp;lt;math&amp;gt;f\!\!:(S,s) \to (P,c,p)&amp;lt;/math&amp;gt; - функция, осуществляющее сведение. Она будет устроена так:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;f(S,s) = ((S,S),s,s)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
То есть, для каждого числа &amp;lt;math&amp;gt;q \in S&amp;lt;/math&amp;gt; создадим предмет &amp;lt;math&amp;gt;(q,q)&amp;lt;/math&amp;gt; с весом и стоимостью, равными значению числа &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt;.&lt;br /&gt;
А значения &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; возьмем равными &amp;lt;math&amp;gt;s&amp;lt;/math&amp;gt;.&lt;br /&gt;
*Очевидно, &amp;lt;math&amp;gt;f~&amp;lt;/math&amp;gt; работает за полиномиальное от длины входа время.&lt;br /&gt;
*Если исходная [[NP-полнота задачи о сумме подмножества|задача о сумме подмножества]] имела решение &amp;lt;math&amp;gt;S'&amp;lt;/math&amp;gt;, то набор пар &amp;lt;math&amp;gt;P'&amp;lt;/math&amp;gt; с весами, равными числам из &amp;lt;math&amp;gt;S'&amp;lt;/math&amp;gt;, будет решением задачи о рюкзаке.&lt;br /&gt;
*В обратную сторону - аналогично.&lt;/div&gt;</summary>
		<author><name>176.117.137.156</name></author>	</entry>

	</feed>