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

8.5. Узагальнений алгоритм програмування

Цей метод має багато загального з методом сепарабельного програмування, викладеним раніше, оскільки в ньому теж використовується як лінійна апроксимація на основі мережі точок, так і симплексний метод – для відшукання рішення відповідної задачі лінійного програмування. Але узагальнений алгоритм програмування більш ускладнений у тому відношенні, що дає можливість по ходу ітеративного процесу поліпшувати мережу. Даний підхід може бути реалізований різноманітними способами; тому опис, що приводиться нижче, варто розглядати як не більш ніж пояснення загальної ідеї. Як і раніше передбачається, що нелінійні функції задовольняють допущенням I) — VI) і характеристиці системи обмежень, приведеним вище.

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

Нехай перша група включає R обмежень, що запишемо в наступній формі:

(8.40)

деякі з цих обмежень можуть являти собою умови незаперечності. Не виключено, що в (8.40) входять всі обмеження задачі; тоді R = т + п, й друга група є порожньою. Якщо ж R < т + п, то область допустимих точок, що задовольняють обмеженням другої групи, опукла та включає усі свої граничні точки, оскільки на цю систему поширюється допущення I). Для зручності введемо символ

(Якщо R = т + п, S являє собою весь евклідовий n-мірний простір). Отже, оптимізаційну задачу можна сформулювати у такий спосіб:

Максимізувати (8.41)

при тій умові, що точка х буде задовольняти обмеженням (8.40) і знаходитися в області S.

Розглянемо ітерацію k алгоритму. Нехай поточна апроксимуюча мережа має вигляд причому кожна з цих точок задовольняє обмеженням S, принаймні одна допустима відносно (8.40), а для кожного нелінійного нерівність є строгою. (Згадаємо, що в характеристиці системи обмежень, приведеної вище, постульовано існування такої точки.) Володіючи цією мережею, ми вирішуємо так називану звужену координуючу задачу, що представляє собою лінійну апроксимацію вихідної моделі:

Максимізувати (8.42)

при умовах

(8.43)

(8.44)

Термін „звужена” відноситься до тієї обставини, що задача (8.42) – (8.44) будується не для всіх можливих точок Xt, допустимих відносно S, а лише для підмножини S + 1 точок мережі. Кожне wt є вагою відповідної крапки Xt. Звужена координуюча задача – задача лінійного програмування, так що вона має базисне допустиме рішення та кінцеве максимальне значення сk. Оскільки – опуклі функції, а множина S опукла, неважко показати, що будь-яке допустиме рішення системи обмежень (8.43) – (8.44) являє собою точку з координатами

(8.45)

яка є допустимим рішенням вихідної задачі.

Тепер розглянемо задачу, двоїсту задачі (8.42) – (8.44), а саме:

Мінімізувати (8.46)

при умовах

(8.47)

(8.48)

на знак не накладається ніяких обмежень.

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

Нехай точка wk оптимальна для звуженої координуючої задачі (8.42) – (8.44); відповідну точку xk знайдемо, обчисливши середньозважені хj по формулі (8.45). Нехай yk – відповідне оптимальне рішення двоїстої задачі. Легко показати, що якщо

або, що еквівалентно,

(8.49) для всіх х в S, то xk є дійсним оптимумом вихідної задачі. Але, якщо в S існує , така, що

(8.50)

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

Підведемо підсумки. Ітерація k вимагає виконання наступних операцій.

Крок 1. Знайдемо оптимальне рішення звуженої координуючої задачі. Відповідну точку, що перевіряється, xk визначимо по формулі (8.45).

Крок 2. З’ясуємо, чи існує в S така точка , для якої виконується нерівність (8.50). Якщо ні, припинимо розрахунки; xk є дійсним оптимумом. Якщо така точка існує, перейдемо до кроку 3.

Крок 3. Додамо точку до звуженої координуючої задачі, увівши нову вагу з коефіцієнтами з ( ) у (8.42), у (8.43) та 1 у (8.44). Перейдемо від k до k + 1 і повернемося до кроку 1.

Можна довести, що оптимальні значення ck цільової функції звуженої координуючої задачі монотонно зростають, сходячись до оптимального значення цільової функції вихідної задачі.

Оскільки увігнута, значення принаймні є настільки ж великим, як і .

Рішення підзадачи. Знаходження , що задовольняє нерівності (8.50), саме може розглядатися як оптимізаційна задача: знайти х в S, при якому

Максимізується (8.51)

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

Якщо – рішення (8.51), то можна стверджувати, що

(8.52)

де, як і вище, ck – максимальне значення цільової функції звуженої координуючої задачі. Далі, розрахунки алгоритму можна припинити на ітерації k + 1, якщо є оптимальним значенням. Однак необхідно відзначити, що значення зазвичай не є допустимим для всіх R обмежень; відповідно не буде допустимим у звуженій координуючій задачі. Таким чином, у загальному випадку алгоритм не забезпечує збіжності за кінцеве число ітерацій; розрахунки можна припинити, як тільки поточне значення виявиться досить близьким до найменшого з отриманих значень виразу, що знаходиться у правій частині (8.52).

Якщо R включає всі т + п обмежень, узагальнений алгоритм програмування можна розглядати як систематизований пошук сідлової точки функції Лагранжа. Говорячи не строго, при використанні цього алгоритму поперемінно відшукується поліпшена точка, що перевіряється, при заданих значеннях множників Лагранжа, які перевіряються, та переглядаються значення множників Лагранжа у відповідності до поточного рішення, котре перевіряється.

Сепарабельна задача. Даний алгоритм досить ефективний стосовно до моделей із сепарабельною цільовою функцією та сепарабельними обмеженнями:

Максимізувати (8.53

при умовах (8.54)

де S тепер включає тільки умови незаперечності перемінних. Тут кожна увігнута й кожна опукла.

У цьому випадку підзадача (8.51) розпадається на п окремих оптимізаційних задач:

(8.55)

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

Існує більш ускладнений варіант алгоритму рішення сепарабельних задач, при якому збіжність зазвичай прискорюється, але за рахунок збільшення розмірності звуженої координуючої задачі. Власне кажучи, це та ж постановка, що була приведена для задач сепарабельного програмування в розділі 7.6. Ваги вводяться для кожного хj, й для кожного набору ваг включаються суми ваг, аналогічні (8.44). Підзадача (8.55) залишається без зміни, однак застосовується критерій (8.50) і двоїста перемінна використовується для побудови підсумовуючого рівняння ваг, що визначають xj.

  • Запитання для самоконтролю

  1. Які існують методи удосконалення лінійного програмування ?

  2. В чому полягають крупнокрокові методи?

  3. Яка основна ідея алгоритму методу опуклих комбінацій ?

  4. Що дозволяє одержати симплексний метод увігнутого програмування ?

  5. Які теоретичні властивості оптимального рішення ?

  6. В чому полягає узагальнений алгоритм програмування ?

148

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