Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_ЛР_СРМ_14_14.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.53 Mб
Скачать

Лабораторна робота №3 Динамічне програмування

Мета.

Навчитись формалізувати оптимізаційну задачу динамічного програмування і розв’язувати її.

Завдання.

Згідно з варіантом виконати розв’язання задачі динамічного програмування.

Склад звіту

Завдання, послідовність таблиць розв’язання задачі, висновки.

Теоретичні відомості

Алгоритм

  1. Вся множина вершин розбивається на етапи. В перший етап включається вихідна вершина 1. В другу – вершини, в які входять дуги, що виходять з вершини 1. В третю – вершини, в які входять дуги, що виходять з вершин другої множини і т.д.

  2. Етапи нумеруються від кінцевого до вихідного.

  3. Починаючи з кінцевої вершини знаходиться умовно-оптимальне рішення для кожної вершини етапу: через яку вершину потрібно рухатись, щоб шлях до неї був мінімальний.

Приклад виконання роботи

На рис.3.1 представлений граф задачі динамічного програмування.

Рис. 3.1. Граф задачі динамічного програмування

Спочатку розіб’ємо вершини на сукупність етапів (табл..3.1).

Таблиця 3.1. Етапи

Етапи

Вершини

1

1

2

2

4

3

3

5

7

6

4

8

9

5

10

Нехай вартість перевезення з вершини S в вершину J є вагою відповідної дуги, Fn(s) мінімальні затрати на перевезення з S в кінцеву, якщо до кінцевої n етапів; Jn(S) номер вершини, через яку потрібно рухатись на етапі n, щоб вартість була Fn(s).

Вершина 10 є останньої. Для попереднього до неї етапу таблиця 3.2 показує пошук умовно оптимального рішення.

Таблиця 3.2. Крок 1

S/j

10

F1(s)

J1(S)

8

5+0

5

10

9

3+0

3

10

Таблиці 3.3 – 3.5 показують наступні кроки пошуку оптимізації

Таблиця 3.3. Крок 2.

S/j

8

9

F2(s)

J2(S)

5

9+5

8+3

11

9

6

5+3

8

9

7

7+5

12+3

12

8

Таблиця 3.4. Крок 3.

S/j

5

6

7

F3(s)

J3(S)

2

3+11

4+8

12

6

3

1+11

6+8

12

5

4

4+11

6+8

3+14

14

6

Таблиця 3.5. Крок 4.

S/j

2

3

4

F3(s)

J3(S)

1

4+12

11+12

3+12

16

2

Після того, як ми дійшли до вихідної вершини, необхідно, почавши з цієї вершини побудувати маршрут до кінцевої по вершинам, які відповідають умовно-оптимальним рішенням. В даному випадку це буде 1–>2–>6–>9–>10. Цей маршрут і буде відповідати мінімальній вартості, яка вже отримана як F3(s)=16.

Варіанти завдань

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

Контрольні питання

  1. Що таке оптимізація?

  2. Способи розв’язання оптимізаційної задачі з обмеженнями.

  3. Особливі випадки оптимізаційних задач.

  4. Оцінка ефективності оптимізаційних методів.

  5. Основні проблеми при оптимізації

  6. Сформулювати задачу динамічного програмування.

  7. Суть розв’язання задачі динамічного програмування.

  8. Алгоритм розв’язання задачі динамічного програмування.

  9. Практичний висновок щодо оптимізації багатостадійних процесів із теорії динамічного програмування.

Література

1. Кузнецов А.В., Холод Н.И., Костевич Л.С. Руководство к решению задач по математическому программированию –Мн.: Вышэйш. школа, 1978. –256с.

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