Название задача о рюкзаке возникает в следующей гипотетической ситуации. Представим туриста, который хочет взять с собой в путешествие рюкзак определенной весовой вместимости. Чтобы его заполнить, он может воспользоваться набором предметов заданного веса и ценности. Он может взять предметы, общий вес которых не превышает вместимости рюкзака и хочет, чтобы их суммарная ценность была максимальной.
Постановка задачи
Предполагается, что вместимость рюкзака известна и равна G кг, и для каждого типа i=
предметов заданы вес qi и ценность ci. Не умоляя общности можно считать, что z1<z2<…<zm. Рассматриваемый вопрос об оптимальной загрузке рюкзака сводится к решению следующей задачи.
Задача. При заданных величинах G, qi, ci, i=
требуется максимизировать функцию

на множестве векторов
x = (x1, x2, …, xm),
с целочисленными неотрицательными компонентами, удовлетворяющими условию

Обзор и анализ методов решения Основные процедуры метода ДП
Рассмотрим W аналогичных задач ![]()
={
│
0, целые,
,
} - множество допустимых векторов.
При
множества
содержат единственный нулевой вектор,
причем
для всех таких z.
При
справедливы рекуррентные соотношения:
(9)
Для всех
по формуле (9) последовательно вычисляют
и фиксируют индексы i(z), на которых достигаются максимумы в (9) (если максимум достигается на нескольких индексах, в качестве i(z) берется любой).
Процесс вычисления
удобно представлять в виде табл. 2.
|
|
| … | W |
|
|
| … … |
|
Таблица 2 (информация в таблице - динамическая шкала)
В конце табл. 2 находится искомое значение функции
и номер предмета
, на котором оно достигнуто.
2 этап (обратный ход).
Определяется искомый вектор
,
>0, целые,
, при котором
.
В комплектуемый оптимальный набор в первую очередь включается предмет с номером: ![]()
Далее вычисляем: ![]()
Если
, то процесс заканчивается, иначе в указанный набор включается предмет с номером
.
Комплектование набора заканчивается на некотором шаге j, на котором
.
Пример решения Исходные данные:
=15 – вместимость рюкзака. Данные о предметах в табл.3.
| 1 | 2 | 3 |
| 3 | 4 | 5 |
| 12 | 20 | 15 |
Таблица 3
РешениеОпределим величину
=
=3;
, если
, что означает – ценность рюкзака, вместимость которого
, равна нулю.
Пусть
. Найдем
.
Неравенству
удовлетворяет только предмет 1-го вида, т. к.
=3 ![]()
=![]()
максимум достигается на 1-м предмете, значит
=1.



![]()
![]()
![]()
![]()
![]()
![]()
![]()


