Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы оптимизации.pdf
Скачиваний:
127
Добавлен:
05.06.2015
Размер:
710.9 Кб
Скачать

====================|==================

Y3 F ( : , j ) Y ( : , j ) | Y4=4 Y4=5 Y4=6

====================|==================

8 . 6 . 6 . 8 . 9 . 6 .

====================|==================

Этап 3

====================|======

Y2 F ( : , j ) Y ( : , j ) | Y3=8

====================|======

7 . 1 2 . 8 . 1 2 . 8 . 6 . 8 . 6 .

====================|======

Этап 2

====================|============

Y1 F ( : , j ) Y ( : , j ) | Y2=7 Y2=8

====================|============

5 .

1 9 .

8 .

2 0 .

1 9 .

6 .

1 7 .

8 .

1 8 .

1 7 .

7 .

1 2 .

7 .

1 2 .

1 5 .

8 .

9 .

8 .

1 2 .

9 .

====================|============

Этап 1

====================|========================

Y0 F ( : , j ) Y ( : , j ) | Y1=5 Y1=6 Y1=7 Y1=8

====================|========================

5 . 1 9 . 5 . 1 9 . 2 6 . 2 6 . 2 8 .

====================|========================

ответ * * * * * * * * * * ДП * * * * * * * * * * * *

f _ o p t

=

19

 

 

 

 

y _ o p t ,

b

=

 

 

 

 

5

8

8

6

6

 

 

5

7

8

4

6

 

 

========= P e r e b o r =========

 

>>>>>>>>>>>>>>>>>>>>>>>>>

 

f _ o p t =

22

 

 

 

 

 

y _ o p t =

 

5

7

8

4

6

>>>>>>>>>>>>>>>>>>>>>>>>>

 

f _ o p t =

20

 

 

 

 

 

y _ o p t =

 

5

7

8

6

6

>>>>>>>>>>>>>>>>>>>>>>>>>

 

f _ o p t =

19

 

 

 

 

 

y _ o p t =

 

5

8

8

6

6

===========

 

 

 

 

ответ

 

 

 

 

 

===========

 

 

 

 

f _ o p t

равно

19

 

 

 

y0

равно

5

 

 

 

 

 

 

 

 

 

 

>d i a r y ( 0 )

7. Задача о дилижансах

Задача 5 Путешественник собирается пересечь нашу страну с востока на запад и добраться из Владивостока в далекий Калининград. Перед ним лежит карта, на которой указаны все маршруты. Для каждого маршрута указана цена билета. Выбрать самый дешевый маршрут, соединяющий Владивосток и Калининград.

38

Карта, которая лежит перед нашим путешественником, приведена на рисунке 9. Карта немножко своеобразная, потому что любой маршрут, соединяющий город Владивосток (y5 = 10) и город Калининград (y1 = 1), состоит из 4 участков. Никаких прямых рейсов нет. Решить графически такую задачу не составляет никакого труда, это и сделано на рисунке. Решать задачу надо сначала для городов 7, 8 и 9 обычным способом. Это будет этап 4. Далее решается задача динамического программирования для городов 5 и 6 (этап 3). Затем надо выполнить для городов 2, 3 и 4(этап 2). Последним выполняется этап 1. Он соответствует самому западному городу Калиниграду, который имеет номер y1 = 1 на рисунке.

Этап 1. Этап 2.

Этап 3. Этап 4.

 

 

14 j 5

5 j 10

y2=2 7 7 j 8 5 y4=7

14 j 3,4 7 12 j 6 6 y3=5 1 6 j 10 5 0 j

y1=1 2 y2=3 5 7 j 9 2 y4=8 6y5=10

3 11 j 6 4 y3=6 3 4 j 10 4

y2=4 y4=9

Рис. 9: Задача о дилижансах.

Мы еще не написали ни одной формулы, а уже решили задачу. Ответ сейчас можно написать так. Минимальные расходы равны 14 денежных единиц. Что такое денежная единица, уточнять не будем, так как при езде на дилижансах денежная единица может быть и не совсем традиционной. Один из оптимальных маршрутов – это набор городов (y1 ; : : : ; y5 ) = (1; 3; 6; 9; 10):

Эту же задачу можно решить и с помощью таблиц. В этом случае без формул уже не обойтись.

Уравнение Беллмана будет выглядеть следующим образом:

fj (yj ) =

min

fR(yj ; yj+1) + fj+1(yj+1)g:

yj+1jмаршрут

(yj;yj+1) существует

Здесь нет традиционных переменных xj , хотя нет никаких сомнений, что мы только что решили задачу динамического программирования. Состояния здесь – это yj ; fj (yj ) – минимальные расходы на переезд в соответствующий город этапа j. Что же здесь является управлением? Да, конечно же, переменная yj+1, по которой мы ищем минимум.

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

— перечисляются все значения управлений.

Этап 4:

f4(y4) = min fR(y4; y5) + f5(y5)g:

y5=10

 

 

Оптимальное

 

R(y4; y5) + 0

решение

y4

y5 = 10

f4(y4)

y5

7

5

5

10

8

6

6

10

9

4

4

10

Таблица 25: Задача о дилижансах, этап 4

39