Научная статья на тему 'Модификация метода Беллмана решения динамической задачи о ранце'

Модификация метода Беллмана решения динамической задачи о ранце Текст научной статьи по специальности «Математика»

CC BY
493
78
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / ДИСКРЕТНОЕ ПРОГРАММИРОВАНИЕ / ЗАДАЧА О РАНЦЕ

Аннотация научной статьи по математике, автор научной работы — Елизаров Д.Э., Бурковский В.Л.

В статье рассматривается вариант динамической постановки задачи о ранце и алгоритм ее решения на основе модификации метода Беллмана

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE MODIFICATION OF THE BELLMAN METHOD FOR SOLVING DYNAMIC KNAPSACK PROBLEM

The article describes the option of dynamic formulation of the knapsack problem and the algorithm of its solution based on the modification of the Bellman’s method

Текст научной работы на тему «Модификация метода Беллмана решения динамической задачи о ранце»

УДК 004.42

МОДИФИКАЦИЯ МЕТОДА БЕЛЛМАНА РЕШЕНИЯ ДИНАМИЧЕСКОЙ ЗАДАЧИ О РАНЦЕ

Д.Э. Елизаров, В.Л. Бурковский

В статье рассматривается вариант динамической постановки задачи о ранце и алгоритм ее решения на основе модификации метода Беллмана

Ключевые слова: динамическое программирование, дискретное программирование, задача о ранце

Введение

В настоящее время в области теории дискретного программирования актуальность приобретает задача рассмотрения классических оптимизационных моделей в динамической постановке. Практические применения данной задачи связаны с ее реализацией в рамках развивающихся объектов в области 1Т (мультисервисные сети), экологических, энергетических систем и т.д. Ниже предлагается вариант динамической постановки задачи о ранце и алгоритм ее решения на основе модификации метода Беллмана [1,2,3].

Постановка задачи

Сформулируем данную задачу на примере процесса динамического наполнения продуктовой потребительской корзины. Пусть имеется множество продуктов В = {ЪьЬ2,...,Ь1}, каждый из

которых имеет свою стоимость с,, / = 1,1 и энергетическую ценность vi, / = 1,1. На рассматриваемом временном интервале [0;Т ] необходимо спланировать наполнение

индивидуальной продуктовой корзины для каждого

момента времени tk е [0; Т], к = 1, К с учетом минимизации затрат на приобретение продуктов таким образом, чтобы суммарная энергетическая ценность превышала минимально установленную У^ для планируемого рассматриваемого интервала. Формально данная задача может быть сведена к следующей оптимизационной модели [4]:

K I

XS X(tki )Ci ^ min k=1 i=1 KI

SS X(tki )Vi > Vmn

(1) (2)

X(tki ) =

1,

продукт Ъ входит в корзину на подынтервале времени ; (3) 0, в противном случае.

Данная задача является модифицированной версией задачи о ранце [4]. Для ее решения воспользуемся методом динамического

программирования. Будем считать, что решение о включении продукта в корзину для каждого момента времени 1к принимается на отдельной подынтервале времени tkj. Таким образом, временной интервал [0; Т ] можно разбить на отдельные подынтервалы принятия решений ^ е [0; Т], к = \К, I = 17 .

Пусть 5.I,,У') - оптимальное значение целевой функции. Тогда справедливы следующие рекуррентные соотношения [4,6]:

S (tn, V) =

0, V' = 0f c1,0 < V' < v1, + <ю, V' > v

(4)

S (tki ,V') = min

k=1 i=1

S(tki "1,V'), x(th) = 0,

ci + (5)

+ S(tki, - 1,max{0, V'-v,}), x(tkl) = 1

KI

Vmin < V'<XXv, . (6)

k=1 i=1

Пример

Рассмотрим реализацию процедуры решения задачи о наполнении индивидуальной продуктовой корзины на следующем примере.

Пусть временной интервал [0; Т] разбит на

К = 3 подынтервалов и У^ = 9 . Оставшиеся параметры задачи заданы в табл. 1. Для облегчения записи будем считать, что ценность V, и стоимость с, - целочисленные величины.

Таблица 1

Елизаров Дмитрий Эдуардович - ВГТУ, аспирант, e-mail: elizarovdm@list.ru

Бурковский Виктор Леонидович - ВГТУ, д-р техн. наук, профессор, e-mail: bvl@vorstu.ru

i 1 2 3

ci 6 5 4

vi 3 1 2

Тогда решение данной задачи приведет к заполнению таблицы размерности 9x19. Для упрощения отображения разделим данные на 3 таблицы 9x7, 9x6, 9x6. В первой таблице будут содержаться расчетные значения, не удовлетворяющие критерию задачи, однако необходимые для ее решения. Прочерками в таблицах обозначим бесконечно большие величины (когда нет допустимых решений). Так же в таблицах через / будем хранить соответственное условно оптимальное значение х($ы). Если условно оптимальных решений несколько, то будем запоминать только одно из них.

Таблица 2

Таблица 4

'кг \ V' 0 1 2 3 4 5 6

'11 0 6/0 6/0 6/1 - - -

0 5/1 6/0 6/0 11/1 - -

0 4/1 4/1 6/0 10/1 10/1 15/1

'21 0 4/0 4/0 6/1 10/0 10/0 12/1

t22 0 4/0 4/0 6/0 10/0 10/0 12/0

t23 0 4/1 4/1 6/0 8/1 10/1 12/0

0 4/0 4/0 6/1 8/0 10/0 12/0

0 4/0 4/0 6/0 8/0 10/0 12/0

^3 0 4/0 4/0 4/1 8/0 10/1 12/1

Таблица 3

tk1 \ V' 7 8 9 10 11 12

t11 - - - - - -

t12 - - - - - -

t13 - - - - - -

'21 16/1 16/1 21/1 - - -

t22 16/0 16/0 21/0 25/1 - -

t23 14/1 16/1 20/0 20/1 25/1 29/1

t31 14/0 16/0 18/1 20/0 22/1 26/1

t32 14/0 16/0 18/0 20/0 22/0 26/0

t33 14/1 16/1 18/1 20/1 22/1 24/1

'кг \ V' 13 14 15 16 17 18

- - - - - -

к2 - - - - - -

- - - - - -

t21 - - - - - -

t22 - - - - - -

t23 - - - - - -

tзl 26/1 29/1 35/1 - - -

26/0 29/1 34/1 40/1 - -

^3 26/0 29/0 30/1 33/1 38/1 44/1

Исходя из расчетов в табл. 2-4 оптимальное значение целевой функции достигается в состоянии 5" ('33,9) = 18. При этом условно оптимальное решение х('33) = 1. Применим обратный ход алгоритма для получения оптимальных значений х($ы), к = 1, К, I = 1, I [4]. Результаты вычислений представлены в табл. 5:

Таблица 5

'11 '12 '13 '21 '22 '23 '31 '32 '33

х&) 0 0 1 0 0 1 0 0 1

V' 2 3 5 5 5 7 7 7 9

Таким образом, решением данной задачи является вектор х* = (0,0,1,0,0,1,0,0,1).

Алгоритм решения

Предложенный алгоритм решения

динамической задачи о ранце формально предполагает выполнение следующих шагов:

Шаг 1. Формируем таблицу размерности

К I К I

к''у' , 0 - V'решений, не

к=1 г=1 к=1 1=1

учитывая критерий минимизации (2). Двигаясь снизу вверх формируем оптимальное значение целевой функции для каждого подынтервала tk1 ^[0;Т ].

Шаг 2. Выбираем минимальное значение целевой функции для подынтервала времени из таблицы, сформированной на шаге 1.

Шаг 3. Применяем обратный ход алгоритма для получения оптимальных значений х^^),

к = 1К, 1 = 17.

Заключение

Представленная модель поможет в решении задач, основанных на долгосрочном планировании приобретения либо модернизации существующих продуктов с учетом минимизации затрат. При этом формирование рекуррентных соотношений, определяющих работу алгоритма, осуществляется в зависимости от конкретного вида целевой функции [4,6].

Литература

1. Елизаров, Д.Э. Оптимизационные модели формирования структуры развивающихся

Воронежский государственный технический университет

мультисервисных сетей информационного обслуживания населения [Текст] / Д.Э. Елизаров, В.Л. Бурковский // Вестник Воронежского государственного технического университета. - 2015. - Т. 11. - № 1. - С 20-23.

2. Елизаров, Д.Э. Обобщенная оптимизационная модель развития мультисервисных сетей [Текст] / Д.Э. Елизаров, В.Л. Бурковский, А.П. Воропаев // Вестник Воронежского государственного технического университета. - 2015. - Т. 11. - № 3. - С. 28-30.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Елизаров Д.Э., Бурковский В.Л. Модели проектирования развивающихся мультисервисных сетей // Перспективные исследования и разработки в области информационных технологий, Издательство: Научная книга (Воронеж), 2014. - C 409-412.

4. Pisinger D. Knapsack problems / D. Pisinger, H. Kellerer, U. Pferschy. - Springer Science & Business Media, 2013. - 548 c.

5. Беллман Р. Динамическое программирование / Р. Беллман. - М.: ИЛ, 1960. - 400 с.

6. Беллман Р., Прикладные задачи динамического программирования / Р. Беллман, С. Дрейфус. - М.: Наука, 1965. — 460 с.

THE MODIFICATION OF THE BELLMAN METHOD FOR SOLVING DYNAMIC KNAPSACK

PROBLEM

D.E. Elizarov, V.L. Burkovsky

The article describes the option of dynamic formulation of the knapsack problem and the algorithm of its solution based on the modification of the Bellman's method

Key words: dynamic programming, discrete programming, knapsack problem

i Надоели баннеры? Вы всегда можете отключить рекламу.