Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТУ теория курсовой дневные 2012.doc
Скачиваний:
8
Добавлен:
20.11.2019
Размер:
744.96 Кб
Скачать

2.2. Задача о рюкзаке. Уравнение Беллмана для задачи о рюкзаке.

Задача о рюкзаке.

Рассмотрим на примере задачи о рюкзаке, что понимается под шагом, состоянием, управлением и выигрышем.

Загрузку рюкзака можно представить себе как процесс, состоящий из n шагов. На каждом шаге требуется ответить на вопрос: взять данный предмет в рюкзак, или нет? Таким образом, шаг процесса – присваивание переменной xi значения 1 или 0.

Теперь определим состояния. Очевидно, что текущее состояние процесса характеризует остаточная грузоподъемность рюкзака – вес, который остался в нашем распоряжении до конца (до полной укладки рюкзака). Следовательно, под состоянием перед i-м шагом понимается величина

si-1 = b - , i=2, . . . , n, (2.6)

при этом s0 является начальным состоянием, которому соответствует величина b – исходная грузоподъемность рюкзака.

Управление на i-м шаге означает присваивание двоичной переменной xi значения 0 или 1. Значит, на каждом шаге имеем всего два управления. Причем допустимость управления ui, устанавливающего xi=1, определяется условием

si = σ(si-1, ui) = si-1 – ai xi =b - ≥ 0 (2.7)

Далее везде вместо переменных x1, x2, . . . , xn будем использовать соответствующие управления u1, u2, . . . , un. Тогда формулы (2.6), (2.7) примут следующий вид:

si-1 = b - , i = 2, . . ., n, (2.8)

si = σ(si-1, ui) = si-1 - ai ui = b - ≥ 0 (2.9)

Шаговый выигрыш можно определить как wi = ci ui. Поэтому

W = = . (2.10)

Требуется найти оптимальное управление U* = ( , , . . . , ), при котором величина выигрыша (2.10) обращается в максимум.

Уравнение Беллмана для задачи о рюкзаке.

Пусть к началу n- шага остаточная грузоподъемность равна s. Оптимальное управление определяется следующим образом:

  • если s-an ≥ 0, то последний предмет можно положить в рюкзак, что соответствует оптимальному управлению Un(s) = un = 1;

  • иначе Un(s) = un = 0.

Ясно, что оптимальный условный выигрыш на n-ом шаге составит

Wn(s) = cn un.

Рассмотрим (n-1)-й шаг. Предположим, что остаточная грузоподъемность равна s. Если на этом шаге выбрать управление u, то на начало последнего шага остается вес s-an-1u. Тогда выигрыш двух последних шагах будет равен

cn-1u + Wn (s –an-1u).

Нужно найти такое u, при котором этот выигрыш максимален

Wn-1(s) = max {cn-1u + Wn(s –an-1u)} ,

Где максимум берется по всем допустимым управлениям – управлениям, для которых верно ограничение (2.9). Напомним, что u может принимать лишь два значения: 0 или 1.

Рассуждая далее аналогичным образом, приходим к рекуррентному уравнению

Wi(s) =max {ciu + Wi+1 (s – aiu)}, (2.11)

которое позволяет для любого i-го шага вычислить условный оптимальный выигрыш и найти соответствующее ему условное оптимальное управление Ui(s)=u*. Здесь u* - значение, при котором достигается максимум в (2.11). [6]