Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_8.doc
Скачиваний:
6
Добавлен:
05.05.2019
Размер:
655.36 Кб
Скачать

8.3. Симплексний метод увігнутого програмування

Як видно із самої назви, цей алгоритм дозволяє одержати оптимальне рішення, якщо функція увігнута; він ґрунтується на звичайному симплексному методі, в який внесені деякі незначні зміни. Власне кажучи, тут сполучаться ідеї симплексного методу з двосторонніми обмеженнями на перемінні та квадратичного симплексного методу. Як у методі з двосторонніми обмеженнями, в цьому методі використовується система тільки лише з т обмеженнями. Вихідні „структурні” перемінні поділяються на базисні та небазисні, причому деякі небазисні перемінні можуть усе ж входити у рішення з позитивними значеннями. Як і в квадратичному симплексному методі тут розглядається результат заміни на кожній ітерації тільки однієї перемінної. Якщо значення обраної небазисної перемінної може бути змінене так, що значення цільової функції збільшується, то ця зміна здійснюється з дотриманням умов збереження допустимості, причому з забезпеченням максимального приросту значення цільової функції. Найбільш важливою відмінністю цього підходу від викладеного вище методу опуклих комбінацій є те, що у цьому методі на кожній ітерації змінюють значення не більше m+1 перемінних, а саме перемінні поточного базису й обрана небазисна перемінна. Якщо не увігнута, метод дозволяє одержати відносну стаціонарну точку.

Нехай xk — припустима крапка, що перевіряється, на ітерації k. Для простоти викладу припустимо, що перемінні пронумеровано таким чином, що у базис на ітерації k входять , а є небазисними. Зверніть увагу на те, що вводиться позначення , так що перемінні, що доповнюють, позначаються тут тим же символом х. Нехай на ітерації k система лінійних обмежень представлена у такому ж вигляді, як при застосуванні симплексного методу:

(8.12)

де для простоти запису опущений надрядковий індекс k. Оскільки при даному алгоритмі деякі з небазисних перемінних можуть мати строго позитивні значення, може бути негативним. Відповідна умова незаперечності для точки xk можна записати таким чином:

(8.13)

Міркування, що дозволяють обґрунтувати застосовність цільової функції у викладеному вище методі опуклих комбінацій, залишаються в силі і тут. Проілюструємо все це на конкретному прикладі.

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

(8.14)

або, представляючи її в тому ж вигляді, як у симплексному методі,

(8.15)

Якби тут застосовувався симплексний метод, то коефіцієнти строки 0 для будь-який перемінної, що входять у поточний базис, були б рівними нулю. Для того щоб і в даному методі забезпечити виконання аналогічної умови, виключимо з (8.15) на основі (8.12). Говорячи конкретно, у випадку кожного i = 1, 2, ..., т помножимо строку і на дс(xk)/дxi та додамо отриманий добуток до (8.15). У результаті цього одержимо

(8.16)

де завдяки використанню процесу виключення

(8.17)

[Якби була лінійною функцією, то кожна її часткова похідна по базисній перемінній xi, проставлена під знаком суми в (8.17), дорівнювала б коефіцієнту cі при цій перемінній у вихідній цільовій функції]. Значення t0j іменується приведеною (або відносною) частковою похідною. Як згадувалося вище, надрядковий індекс k у перемінних t0j опущений для простоти запису. Оскільки константа у правій частині (8.16) не відіграє ролі при подальших розрахунках, умовно позначимо її символом 0.

Як і в симплексному методі, значення t0j може бути витлумачене в такий спосіб.

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

Тут варто зробити кілька зауважень з приводу змістовного і чисельного значень цього тлумачення.

Нехай на ітерації k всі , тобто всі t0j – „позитивні коефіцієнти”. Чи є рішення оптимальним? Так, є, якщо всі небазисні перемінні мають нульові значення, тому що в цьому випадку невелике зростання будь-який небазисної перемінної хj приведе до зменшення у порівнянні з . Відповідно xk – відносна стаціонарна точка, а отже, і оптимальна точка, тому що увігнута. Однак, якщо існує небазисна перемінна хj, що має позитивне значення, і якщо , то, можливо, рішення удасться поліпшити, зменшивши значення . Якщо задовольняються обидві умови

всі та всі , (8.18)

то xk є вірним оптимумом.

Припустимо, що умови (8.18) повністю не виконані: є або негативний коефіцієнт t0j, або позитивний добуток , або те та інше одночасно. Тоді необхідно вибрати небазисну перемінну й змінити її значення, прагнучи поліпшити поточне значення цільової функції. Для цього, по-перше, визначимо, як і при використанні критерію I симплексного методу, найменший з коефіцієнтів t0j:

(8.19)

Очевидно, що і, якщо умова (8.18) не задовольняється, те може мати й негативне значення. По-друге, визначимо найбільше значення :

(8.20)

Якщо (8.18) не задовольняється, і може мати позитивне значення. За умови, що (8.18) не виконується, можна вважати, що або або , або та й інша величини одночасно є ненульовими. Можна показати, що справедливим є наступне правило вибору змінюваної небазисної перемінної.

Правило вибору змінюваної небазисної перемінної. Якщо умова (8.18) не виконується при < – , то варто збільшити значення перемінної хр; у супротивному випадку варто зменшити значення перемінної xq.

Після вибору змінюваної небазисної перемінної необхідно обчислити відповідні напрямки dj. Усі dj = 0, за винятком тих j, що відповідають базисним перемінним та обраній небазисній перемінній. Спочатку розглянемо випадок вибору хр.

Тут можна встановити наступне правило на основі простої модифікації критерію II симплексного методу.

Правило вибору напрямків при збільшенні хр. а) Обчислите відносини xі, визначені за формулою (8.13), до коефіцієнтів tiр (не розглядайте при цьому ті відносини, у яких знаменник є нульовим або негативним). б) Позначте через r значення найменшого з цих відносин. в) Прийміть dp = r і di = – tipr (i = 1, 2, . . ., т).

Тепер перейдемо до випадку вибору xq. Тут правило будується на основі простої модифікації критерію II для симплексного методу з двосторонніми обмеженнями на перемінні.

Правило вибору напрямків при зменшенні xq. а) Обчислите відносини –xі, визначені по формулі (8.13), до коефіцієнтів tip (не розглядайте при цьому відносини, у яких знаменник є нульовим або позитивним). б) Позначте R значення найменшого з цих відносин і . в) Прийміть dq =h r та dі = tip r (i = 1, 2, ..., т).

Відзначимо, що в обох випадках . (Якщо r = 0, то всі dj = 0, але розрахунки припиняти все ж не варто).

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

На кроці 3 нова точка, що перевіряється, xk+l обчислюється як звичайно. Якщо оптимальна довжина кроку tk знаходиться в інтервалі 0 < tk < 1, повернемося до кроку 2 і повторимо процес, переглянувши значення t0j в (8.17) для нової точки, що перевіряється xk+l. (Це завжди можливо, якщо перемінна xq зменшується, а r < R). Однак у випадку оптимальної довжини кроку tk = 1 (що еквівалентно r = 0); перш ніж повернутися до кроку 2, необхідно виконати зміну базису, а саме ввести в базис перемінну хр або xq (ту з них, що визначається правилом вибору змінюваної небазисної перемінної) та виключити з базису ту перемінну, для якої досягається значення відношення, що відповідають r.

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

Ітерація включає наступні операції:

I) Обчислення приведених часток похідних по формулі (8.17) та виконання перевірки на оптимальність згідно з (8.18). Якщо можливо поліпшення, варто вибрати змінювану небазисну перемінну.

II) Визначення напрямку зміни поточних базисних перемінних та обраної небазисної перемінної; ці напрямки обчислюються таким чином, щоб при оптимальній довжині кроку tk = 1 рішення залишалося допустимим.

III) розрахунок, що робиться після визначення напрямків довжини кроку tk, яка максимізує значення цільової функції при русі в обраному напрямку від точки хk, тобто максимізація при 0 < t ≤ 1.

IV) Виконуваний відповідним чином зсув точки, що перевіряється, котрий робиться тоді, коли оптимальна довжина кроку tk = 1; для завершення ітерації k робиться зміна базису.

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

Цей алгоритм володіє тими ж двома корисними властивостями, що й алгоритм опуклих комбінацій. По-перше, при заміні базису можна використовувати спеціальну структуру системи лінійних обмежень, якщо вона є; по-друге, обчислення цільової функції (8.17) спрощуються, якщо нелінійність незначна. Повторимо також зауваження, зроблене на початку розділу: від методу опуклих комбінацій цей алгоритм принципово відрізняється тим, що в методі опуклих комбінацій усі напрямки можуть бути ненульовими, а в симплексному методі увігнутого програмування ненульовими можуть виявитися не більш т + 1 напрямків.

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