Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Teoria_igr_i_issled_operatsy.doc
Скачиваний:
211
Добавлен:
07.06.2015
Размер:
5 Мб
Скачать
☆

7. Динамическое программирование и потоки в сетях

Динамическое програмиирование возникло и сформировалось в пятидесятых годах прошлого столетия благодаря работам Беллмана и его сотрудников. Первые задачи, которые привели к появлению вычислительного метода динамического программирования, являлись динамическими задачами управления запасами. Сущность вычислительного метода динамического программирования рассмотрена в представленных в данной главе лабораторных работах.

7.1. Задача оптимизации многошаговых процессов, задача о ранце.

Задача оптимизации многошаговых процессов имеет вид

(7.1)

при ограничениях

x0=0X0={0},

(7.2)

xi=f i(xi–1, ui), i=1,2,3,...,n,

(7.3)

xiXi , i= 1,2,3,...,n,

(7.4)

uiUi , i=1,2,3,...,n,

(7.5)

где Xi, Ui , i=1,2,3,...,n, – конечные множества.

Обозначим через Wi(xi) максимум в следующей задаче:

при ограничениях

xiXi,

xk=f k(xk–1, uk), k=i+1,2,3,...,n,

xkXk , k=i+1,2,3,...,n,

ukUk , k=i+1,2,3,...,n,

где Xk, Uk , k=i+1,2,3,...,n, – конечные множества.

Справедливо следующее функциональное соотношение Беллмана:

Для того, чтобы решение ((xi) i=0,1,2,...,n, (ui)i=1,2,3,...,n), удовлетворяющее ограничениям (7.1) – (7.5) было оптимальным, необходимо и достаточно, чтобы

Таким образом, получаем следующий алгоритм решения оптимизации многошаговых процессов.

Алгоритм.

Первый этап.

1. Для всехxXn положить Wn(x)=0;

2. Последовательно дляi=n–1, n–2, n–3,…,0 выполнить:

     для всех xXi положить:

Второй этап.

1. Положить x0:=0;

2. Последовательно для i=1, 2,3,…,n положить :

Полученное в результате работы алгоритма решение ((xi) i=0,1,2,...,n, (ui)i=1,2,3,...,n) будет оптимальным для задачи (7.1) – (7.5). Оптимальное значение функционала будет равноW0(0).

Задача о ранце имеет вид

(7.6)

при ограничениях

(7.7)

где ui–целые числа i =1,2,3,...,n. Числаaiтакже будем рассматривать целыми, i=1,2,3,...,n.

Введем переменные x0=0, . Из задачи (7.6) – (7.7) получим эквивалентную задачу

,

(7.8)

при ограничениях

x0=0,

(7.9)

xi=f(xi–1, ui)=xi–1+ai ui,    i=1,2,3,..., n,

(7.10)

xiXi={0,1,2,...,b}, i=1,2,3,..., n,

(7.11)

uiUi={0,1,2,...,b}, i=1,2,3,..., n.

(7.12)

Задача (7.8) – (7.12) имеет такой же вид, как и задача (7.1) – (7.5), поэтому для ее решения можно применить алгоритм, описанный выше. Легко показать, что для задачи о ранце

при ограничениях

Соотношение Беллмана примет вид

где [a] – целая часть числаa.

Пример. Решить задачу:

u1

+2u2

max

2u1

+u2

3

u1, u2 – целые.

В этой задаче n=2,b=3, поэтому таблица с результатами вычислений будет иметь вид:

i

0

1

2

W0

u1

W1

u2

W2

x

0

6

0

6

3

0

1

 

 

4

2

0

2

 

 

2

1

0

3

 

 

0

0

0

Приведем пояснения к заполнению этой таблицы в соответствии с выполнением алгоритма.

Первый этап.

Заполнение столбца W2понятно, оно соответствует выполнению пункта 1 первого этапа алгоритма. Покажем, как заполнялась клетка (x,i)=(0,1). Ее заполнение соответствует вычислению

для x=0, i=0,

или

В соответствии с этим, Так какW2(x)0 (см. таблицу), то

Аналогично получены все остальные элементы этого столбца.

Покажем вычисления для клетки (0,0). Для нее

При u=0,

При u=1,

Таким образом, W0(0)=6,u1(0)=0.

Остальные клетки столбца 0 не заполняем, так как X0={0}.

Второй этап.

1. x0=0. (в следующей таблице клетка (0,0) выделена )

2. u1=u1(x0)= u1(0)=0,x1=x0+2 u1=0 (клетка (0,1) выделена )

3. u2=u2(x1)= u2(0)=3,x2=x1+1 u2=3 (клетка (3,2) выделена )

 

i

0

1

2

W0

u1

W1

u2

W2

x

0

6

0

6

3

0

1

 

 

4

2

0

2

 

 

2

1

0

3

 

 

0

0

0

Ответ.Максимальное значение функционала в задаче равно 6,u1=0,u2=3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]