<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://discopal.ispras.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5%3A%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC</id>
		<title>Задача о рюкзаке:жадный алгоритм - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://discopal.ispras.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5%3A%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC"/>
		<link rel="alternate" type="text/html" href="https://discopal.ispras.ru/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5:%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC&amp;action=history"/>
		<updated>2026-05-03T03:34:05Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://discopal.ispras.ru/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5:%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC&amp;diff=1119&amp;oldid=prev</id>
		<title>WikiSysop: 1 версия</title>
		<link rel="alternate" type="text/html" href="https://discopal.ispras.ru/index.php?title=%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D1%8E%D0%BA%D0%B7%D0%B0%D0%BA%D0%B5:%D0%B6%D0%B0%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC&amp;diff=1119&amp;oldid=prev"/>
				<updated>2008-08-04T09:55:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Жадный алгоритм для [[задача о рюкзаке|задачи о рюкзаке]]&lt;br /&gt;
состоит в следующем (считаем, что все предметы помещаются в рюкзак):&lt;br /&gt;
&lt;br /&gt;
* Выбрать максимально дорогой предмет, стоимости ''C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;'' .&lt;br /&gt;
* Упорядочить предметы по «удельной стоимости» (стоимости деленной на вес), и набивать рюкзак наиболее «удельно дорогими» предметами, пока они влезают. Пусть стоимость этого решения ''C&amp;lt;sub&amp;gt;greedy&amp;lt;/sub&amp;gt;'' &lt;br /&gt;
* В зависимости от того, что больше, ''C&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;'' или ''C&amp;lt;sub&amp;gt;greedy&amp;lt;/sub&amp;gt;'', выбрать первое или второе решение.&lt;br /&gt;
&lt;br /&gt;
Этот алгоритм имеет сложность ''O(n log(n))'', и гарантирует нахождение решения, не хуже чем в два раза от оптимального.&lt;br /&gt;
&lt;br /&gt;
Реализация на языке [[Python]] и примеры выполнения алгоритма приведены ниже:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code-python&amp;gt;&lt;br /&gt;
# Жадный алгоритм для задачи о рюкзаке.&lt;br /&gt;
def knapsack_greedy(A,B,C):&lt;br /&gt;
    print &amp;quot;A=&amp;quot;,A,&amp;quot;B=&amp;quot;,B,&amp;quot;C=&amp;quot;,C&lt;br /&gt;
    T={}&lt;br /&gt;
    for i in range(0,len(A)):&lt;br /&gt;
        T[float(A[i])/float(C[i])]=i&lt;br /&gt;
&lt;br /&gt;
    #Сортируем ключи - &amp;quot;удельную привлекательность&amp;quot; - по убыванию&lt;br /&gt;
    K=T.keys(); K.sort() &lt;br /&gt;
    print &amp;quot;K=&amp;quot;,K&lt;br /&gt;
&lt;br /&gt;
    # Набиваем рюкзак до наполнения, предметами в порядке их полезности.&lt;br /&gt;
    C_greedy=0; W_greedy=0;&lt;br /&gt;
    for i in K:&lt;br /&gt;
        if W_greedy+A[T[i]]&amp;lt;=B:&lt;br /&gt;
          W_greedy=W_greedy+A[T[i]]&lt;br /&gt;
          print &amp;quot;Get item (&amp;quot;,C[T[i]],&amp;quot;/&amp;quot;,A[T[i]],&amp;quot;)&amp;quot;  &lt;br /&gt;
          C_greedy=C_greedy+C[T[i]]&lt;br /&gt;
    &lt;br /&gt;
    C_max=max(C)&lt;br /&gt;
    print &amp;quot;C_greedy=&amp;quot;,C_greedy,&amp;quot;C_max=&amp;quot;,C_max&lt;br /&gt;
    &lt;br /&gt;
    C_result=max(C_greedy,C_max)         &lt;br /&gt;
    print &amp;quot;Result=&amp;quot;,C_result&lt;br /&gt;
    return C_result    &lt;br /&gt;
&amp;lt;/code-python&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 A= [6, 3, 2, 5, 5, 1] B= 10 C= [3, 4, 5, 6, 7, 8] &lt;br /&gt;
 K= [0.125, 0.40000000000000002, 0.7142857142857143, 0.75, 0.83333333333333337, 2.0]&lt;br /&gt;
 Get item ( 8 / 1 )&lt;br /&gt;
 Get item ( 5 / 2 )&lt;br /&gt;
 Get item ( 7 / 5 )&lt;br /&gt;
 C_greedy= 20 C_max= 8&lt;br /&gt;
 Result= 20&lt;br /&gt;
&lt;br /&gt;
 A= [1, 100, 40, 20] B= 100 C= [10, 150, 50, 40]&lt;br /&gt;
 K= [0.10000000000000001, 0.5, 0.66666666666666663, 0.80000000000000004]&lt;br /&gt;
 Get item ( 10 / 1 )&lt;br /&gt;
 Get item ( 40 / 20 )&lt;br /&gt;
 Get item ( 50 / 40 )&lt;br /&gt;
 C_greedy= 100 C_max= 150&lt;br /&gt;
 Result= 150&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Алгоритмы]]&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>	</entry>

	</feed>