Динамическое программирование для задачи о рюкзаке/Задачи/Худший случай для алгоритма с отбором «легких» решений — различия между версиями
Материал из DISCOPAL
Tsyganova (обсуждение | вклад) |
Tsyganova (обсуждение | вклад) (→Цыганова Светлана, 974гр.) |
||
Строка 3: | Строка 3: | ||
<big>Решение:</big> | <big>Решение:</big> | ||
+ | |||
+ | <latex> | ||
Алгоритм с отбором "легких" решений работает аналогично алгоритму с отбором "дорогих" решений, только будет запоминать единственную частичную сумму не с данным весом, а с данной стоимостью, те для каждой возможной стоимости набора будем запоминать наилучшую частичную сумму с наименьшим весом. | Алгоритм с отбором "легких" решений работает аналогично алгоритму с отбором "дорогих" решений, только будет запоминать единственную частичную сумму не с данным весом, а с данной стоимостью, те для каждой возможной стоимости набора будем запоминать наилучшую частичную сумму с наименьшим весом. | ||
− | Теперь при каких данных алгоритм будет работать экспоненциальное время: при таких же, как и для алгоритма с отбором "дорогих" решений, только теперь все веса предметов из набора будут равны 1, а стоимость будет геометрической прогрессией с q = 2. | + | Теперь при каких данных алгоритм будет работать экспоненциальное время: при таких же, как и для алгоритма с отбором "дорогих" решений, только теперь все веса предметов из набора будут равны 1, а стоимость будет геометрической прогрессией с $q = 2$: |
+ | Список предметов (над чертой стоимость, под чертой вес, обозначения, как в книге): | ||
+ | $\frac{1}{1};\frac{2}{1};\frac{4}{1};\frac{8}{1}...\frac{2^n}{1}$. Объем рюкзака будет $B = n$. | ||
+ | |||
+ | Тогда на каждой итерации у нас будет в 2 раза больше новых частичных сумм, чем на предыдущей: | ||
+ | |||
+ | 0) $\frac{0}{0}$ | ||
+ | |||
+ | 1) $\frac{0}{0}; \frac{1}{1}$ | ||
+ | |||
+ | 2) $\frac{0}{0}; \frac{1}{1}; \frac{2}{0}; \frac{3}{2}$ | ||
+ | |||
+ | 3) $\frac{0}{0}; \frac{1}{1}; \frac{2}{0}; \frac{3}{2}; \frac{4}{1}; \frac{5}{2}; \frac{6}{2}; \frac{7}{2}$ | ||
+ | |||
+ | ... | ||
+ | |||
+ | Таким образом каждый раз число частичных сумм увеличивается вдвое, и в конце их становится $2^n$, следовательно, время работы алгоритма становится экспоненциальным (при рассмотре нового элемента надо перебирать все частичные суммы и из всех сумм одной стоимости оставляем самую легкую - это экспоненциальное время). | ||
+ | |||
+ | </latex> | ||
[[Category:На проверку]] | [[Category:На проверку]] |
Версия 21:02, 9 октября 2014
Цыганова Светлана, 974гр.
Придумайте входные наборы для этого алгоритма, на которых он будет работать экспоненциальное время.
Решение: