Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММДО.DO_ukr_new.doc
Скачиваний:
164
Добавлен:
16.05.2015
Размер:
5.09 Mб
Скачать

3.8 Задача про найкоротший шлях на мережi. Метод Мiнтi

Постановка задачі про найкоротший шлях на мережі.

На мережі, що задається графом (I,U), де I – множина вершин, U – множина дуг, з визначеною на ній функцією вартості cij ((i,j) –дуга з U), для фіксованих i1 та is знайти шлях

L = ((i1,i2),(i2,i3),...,(is-1,is))

із вершини i1 у вершину is, довжина якого

найменша.

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

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

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

Нехай Pr – множина вершин, позначених на кроцi r, а Ir – множина вершин, позначених за r кроків.

Крок 0. Корiнь дерева (вершина i1) позначається сталою величиною h1=0; i1(h1)=i1(0). Пiсля нульового кроку P0={i1(0)}, I0={i1(0)}.

Нехай виконано r кроків, за які побудована множина

Ir={i1(0),...,ik(hk),...}

позначених вершин ik(hk), кожній з яких поставлене у відповідність число hk (чисельно рівне довжині найкоротшого шляху із вершини i1 у вершину ik).

Крок r+1. Будується розріз мережі, який породжується множиною позначених вершин Ir i визначається множина Jr={...,im,...} непозначених вершин im мережі, в які заходять дуги розрізу. Для кожної дуги (ik,im) розрізу обчислюють суму hk+i позначають ті з дуг, для яких ця сума мінімальна. Потім, виділяють позначені дуги так, щоб в кожну непозначену вершину множиниJr, в яку заходять позначені дуги розрізу, заходила б тільки одна виділена дуга. Пiсля виділення дуг позначають вершини – кінці виділених дуг. Величина позначки рівна мінімальній із сум hk+, обчислених для всіх дуг розрізу. Об'єднуючи множинуIr з множиною Pr+1 вершин, позначених на (r+1)-у кроцi, отримують множину Ir+1 вершин, позначених за (r+1) кроків. Переходять до наступного кроку, якщо існує розріз, що породжується множиною Ir+1.

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

Якщо деяка вершина in мережі залишилась непозначеною після закінчення процедури Мiнтi, то шляху, що починається у вершині i1 i закінчується у вершині in, не існує.

Розділ 4. Дискретне програмування

Під час розв’язання задач ЛП часто висувається вимога дискретності (цілочисельності) змінних, що входять у розв’язок. Множиною планів такої задачі буде система точок із цілочисловими координатами, що належать опуклому багатокутнику допустимих розв’язків відповідної недис­кретної задачі. Якби можна було визначити гіперплощини, що проходять через зовнішні точки такої системи точок цілочислової задачі, причому так, щоб зовнішні точки цієї системи потрапили до нового опуклого багатокутника, то задачу можна було б розв’язати за допо­могою звичайного симплекс-методу. У цьому випадку всі крайні точки опуклого багатокутника були б цілочисловими і розв'язок можна було б знайти за скінчене число кроків. Ця ідея послідовного відсікання частин вихідного багатокутника планів, що не містять допустимих цілочислових планів, покладена в основу методів Гоморі, які реалізуються за рахунок побудови додаткових обмежень-нерів­но­стей, які визначають гіперплощини, що відсікають. Ці обмеження мають задовольняти дві умови: відсікання, що полягає у тому, що вони не повинні задовольняти план недискретної задачі; правильності відсікання, що полягають у тому, що вони ма­ють задовольняти всі цілочислові плани задачі.

Існує, також, широкий клас досить універсальних методів, основою яких є пошук оптимуму на дискретній множині пла­нів задачі, на кожному кроці якого виключається з розгляду значна кількість неоптимальних планів. Такі методи мають назву гілок і границь. Їх суть полягає в тому, що множину планів задачі розбива­ють на ряд підмножин, для кожної з яких знаходять оцінку цільової функції. Процедуру повторюють до тих пір, поки не знаходять підмножину, що містить оптимальний план.