Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДО - відповіді 1-18, 22-30.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

3. Задача про найкоротший шлях. Метод Мінті.

Розглянемо мережу, що визначається графом g, з означеною на U функцією вартості . Розглянемо також дві фіксовані вершини , графа g та довільний шлях, що з'єднує та :

(1.4)

де .

Розглянемо функцію

, (1.5)

яка інтерпретується або як собівартість перевезення вантажу по шляху l, або як довжина шляху l. В останньому випадку – довжина дуги (i,j)U.

Задача про найкоротший шлях (про вибір найбільш економного шляху) полягає в пошуку шляху (1.4), що мiнiмiзує цільову функцію (1.5). Шуканий шлях називається найкоротшим (оптимальним).

З формальної точки зору сформульована задача є частинним випадком задачі про оптимальний потік. Для цього розглядається мережа, вершина якої є джерелом одиничної інтенсивності, вершина – стоком одиничної інтенсивності, решта вершин – нейтральні.

Дугам приписуються необмежені пропускні спроможності, а собівартість перевезення по дузі дорівнює її довжині. Для потоку у побудованій мережі

Задача зводиться до знаходження потоку, що мiнiмiзує цільову функцію

.

Легко зрозуміти, що для оптимального потоку величини будуть рівними 1 або 0 в залежності від того, входить чи ні дуга (i,j) до найкоротшого шляху. Тому дорівнює довжині найкоротшого шляху, що з'єднує вершини та .

Для розв'язання задачі про найкоротший шлях розроблені методи, що враховують її специфіку. Одним з них є метод Мiнтi (метод позначок). Згідно цього методу процес розв'язування задачі складається із скiнченного числа елементарних кроків, на кожному з яких позначаються вершини мережі та виділяються деякі її дуги.

4. Алгоритм методу Мiнтi.

Крок 1. Позначається вершина (коренева вершина) позначкою , – множина позначених вершин.

Нехай після виконання r кроків є множина позначених вершин , кожній з яких поставлена у відповідність позначка .

Крок (r+1). Розглянемо множину непозначених вершин : , , , . Для кожної з таких дуг знаходимо суму

,

виділяємо ті дуги, для яких ця сума мінімальна. При цьому з декількох дуг, що підлягають виділенню i закінчуються в одній i тій же вершині, виділяється лише одна (рис. 1.5).

Позначаємо кінці виділених дуг числом, що дорівнює мінімальному значенню . За рахунок позначених вершин множина розширюється до множини .

Вказаний процес продовжується до тих пір, поки серед позначених не з'явиться вершина , або подальше позначення неможливе.

За побудовою в кожній з позначених вершин (крім кореневої) закінчується одна виділена дуга. Тому рух від вершини вздовж виділених дуг у напрямку, протилежному їх орієнтації, реалізується однозначно. Крім того, початок виділеної дуги позначається раніше її кінця. Отже, послідовність виділених дуг, утворена в процесі руху від вершини , утворює деякий шлях з початком в та кінцем в .

Теорема 1.2. Побудований методом Мiнтi шлях є найкоротшим, що з'єднує вершини та , причому .

Зауваження.

1. Сформульований вище алгоритм методу Мiнтi розрахований на знаходження єдиного найкоротшого шляху, що з'єднує вершини та . Щоб знайти всю множину найкоротших шляхів, на кожному кроці слід виділяти всі дуги з мінімальним показником , навіть якщо декілька з них закінчуються в одній i тій же вершині. А при зворотному русі з вершини вздовж виділених дуг у кожній з вершин слід розглядати всі можливі продовження.

2. Насправді метод Мiнтi розв'язує більш загальну задачу: він знаходить найкоротший шлях з кореневої в кожну з позначених вершин.

3. Якщо процес позначення вершин методом Мiнтi продовжувати до тих пір, поки не припиниться розширення множини позначених вершин, то буде розв'язана задача знаходження найкоротшого шляху з початкової вершини у кожну позначену. Якщо при цьому деяка вершина мережі не попала до числа позначених, то немає шляху з в .