
- •3 Задача про найкоротший шлях 8
- •7.2.3 Стани 50
- •7.2.4 Основне рекурентне співвідношення 51
- •1 Загальна характеристика динамічного програмування
- •1.1 Геометрична інтерпретація задач дп
- •1.2 Приклад багатоетапної операції
- •2 Основні положення поетапного оптимального управліНня
- •2.1 Загальна схема алгоритму динамічного планування n-крокової операції
- •3 Задача про найкоротший шлях
- •3.1 Схема алгоритму зворотньої прогонки (азп) по дугах, що виходять
- •3.2 Приклад застосування алгоритму азп по дугах, що виходять
- •3.3 Завдання для самостійної роботи
- •3.4 Схема алгоритму прямої прогонки (апп) по дугах, що входять
- •3.5 Приклад застосування алгоритму апп по дуга, що входять х
- •3.6. Завдання для самостійної роботи
- •3.7 Схема алгоритму зворотної прогонки (азп) по дугах, що входять
- •3.8 Відмінності алгоритмів прямої і зворотної прогонок
- •3.9 Контрольні завдання
- •4. Задача про оптимальне використання ресурсу
- •4.1 Змістовна інтерпретація задачі про оптимальне використання ресурсу
- •4.2 Побудова рекурентного співвідношення задачі 4.1.1
- •4.3 Побудова рекурентного співвідношення задачі 4.1.2
- •4.4 Схема апп для зовк
- •4.5 Приклад розв’язання зовк
- •4.6 Завдання для самостійної роботи
- •4.7 Контрольні завдання
- •5 Задача про використання робочої сили
- •5.1 Постановка задачі
- •5.2 Теоретичне обґрунтування алгоритму зворотньої прогонки для розв’язку задачі про найм робочої сили
- •5.3 Алгоритм пп розв’язку задачі
- •5.4 Приклад розв’язання зврс
- •5.5 Контрольні завдання
- •6 Основні елементи і принципи динамічного програмування
- •6.1 Адитивність цільової функції і етапи задачі
- •6.2 Принцип занурення
- •6.3 Основне рекурентне співвідношення
- •6.4 Стани
- •6.5 Умова марковості (відсутність післядії)
- •6.6 Принцип оптимальності Белмана
- •6.7 Загальна схема застосування алгоритму дп
- •7 Задача управліНня запасами
- •7.1 Постановка задачі
- •7.2 Елементи динамічної моделі
- •7.2.1 Етапи
- •7.2.2 Варіанти розв’язків
- •7.2.3 Стани
- •7.2.4 Основне рекурентне співвідношення
- •7.3 Приклади розв’язання зуз
- •7.4 Контрольні завдання
- •8 Задача про надійність
- •8.1 Змістовна постановка задачі
- •8.2 Математична модель задачі
- •8.3 Елементи динамічної моделі
- •Основне рекурентне співвідношення
- •8.4 Приклад розв’язання задачі
- •8.5 Контрольні завдання
- •Список літератури
3.6. Завдання для самостійної роботи
1. За допомогою алгоритма прямої прогонки, знайти найкоротший шлях між вершинами 1 і 9 мережі, зображеної на рис. 14.
Рис. 14
Відповідь: найкоротший шлях 1—2—6—7—9, довжина шляху 10.
2. За допомогою алгоритма прямої прогонки, знайти найкоротший шлях між вершиною A й однієї з вершин останнього слою (вершинами G, H або I) наступної мережі (рис. 15).
Рис. 15
Відповідь: найкоротші шляхи: A—B—E—G; A—D—F—G; A—D—F—I, їх довжина 5.
3.7 Схема алгоритму зворотної прогонки (азп) по дугах, що входять
Покласти
;
.
(
- допоміжний
масив.
У ньому будемо зберігати поточну довжину
найкоротшого шляху від всіх вершин не
останнього слою. Початкове значення
цієї довжини вважаємо рівним
).
2. Планування кроку
Виділити всі можливі стани, які можуть мати місце наприкінці кроку : всі
. Для кожного стану
виконати наступне:
По кожній дузі (k,s), що входить у вершину знайти
Вважаємо
j=j –1. Якщо j=0, то перейти до пункту 4, інакше – перейти до пункту 2.
Формування оптимального розв’язку.
Процес розв’язку ЗЗНШ АЗП по дугах, що входять, проілюстрований на рис. 16.
Рис. 16
У
прямокутниках вказані
значення, що
послідовно
принімалися
величинами
.
3.8 Відмінності алгоритмів прямої і зворотної прогонок
Вибір того чи іншого напрямку розрахунків (що співпадає з напрямком мережі або є зворотнім до нього) залежить від постановки вихідної задачі ЗНШ. Розглянемо чотири можливі ситуації, що впливають на цей вибір.
Потрібно знайти найкоротшу відстань між двома конкретними вершинами мережі. У цьому випадку вибір може бути довільним, тому що жоден з алгоритмів не має переваги над іншим.
Потрібно знайти найкоротшу відстань між вершиною 1 і однією з вершин множини
.
У
цьому випадку рекомендується застосовувати
АЗП
і
у пункті 1 алгоритму вважати,
що
.
Потрібно знайти найкоротшу відстань між однією з вершин множини
і вершиною
. У цьому випадку рекомендується застосовувати АПП і у пункті 1 вважати, що
.
Потрібно знайти найкоротшу відстань у мережі такого типу (рис. 17):
|
|
|
|
|
|
|
S
finish
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
S
start
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Рис. 17
тобто
від однієї (довільної)
з вершин із множини
до однієї (довільної)
з вершин множини
.
У цьому випадку вибір напрямку прогонки
довільний.
Для випадків 1 і 4 схеми АПП й АЗП розв’язку ЗЗНШ еквівалентні.
Отже, у загальному випадку, для розв’язку задач ДП можливе застосування чотирьох алгоритмів (зворотньої і прямої прогонки по дугах, що виходять і входять). Для розв’язку задачі ЗНШ обрати можна кожний з них. Однак, при розв’язанні деяких інших задач динамічного програмування можливі ситуації, коли відмінності між цими алгоритмами, пов'язані з ефективністю обчислень, виявляються істотними. Алгоритми по дугах, що виходять можна узагальнити й використати для розв’язання задач, у яких є елемент випадковості. Для алгоритмів по дугах,що входять цього зробити не можна.
Досвід практичного застосування АЗП показує, що процедура зворотньої прогонки більш ефективна.