русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Повторення дій починаючи з п. 3. Розглянемо докладніше кожний з етапів алгоритму.


Дата додавання: 2014-04-05; переглядів: 1189.


1. Визначення першого опорного плану починають із запису задачі лінійного програмування в канонічній формі, тобто у вигляді обмежень-рівнянь з невід'ємними правими частинами. Якщо в умові задачі присутні обмеження-нерівності, то перетворення їх на рівняння виконується за допомогою додаткових змінних, які вводяться до лівої частини обмежень типу « £ » зі знаком « + », а до обмежень типу « ³ » — зі знаком « - ». У цільовій функції задачі додаткові змінні мають коефіцієнт нуль.

Після зведення задачі до канонічного вигляду її записують у векторній формі. За означенням опорного плану задачі лінійного програмування його утворюють т одиничних лінійно незалежних векторів, які становлять базис m - вимірного простору (де т — кількість обмежень у задачі лінійного програмування).

На цьому етапі розв'язування задачі можливі такі випадки:

• після запису задачі у векторній формі в системі обмежень є необхідна кількість одиничних векторів. Тоді початковий опорний план визначається безпосередньо без додаткових дій;

• у системі обмежень немає необхідної кількості одиничних незалежних векторів. Тоді для побудови першого опорного плану застосовують метод штучного базису. Ідея його полягає в тому, що відсутні одиничні вектори можна дістати, увівши до відповідних обмежень деякі змінні з коефіцієнтом +1, які називаються штучними. У цільовій функції задачі лінійного програмування штучні змінні мають коефіцієнт (для задачі на min) або (для задачі на max), де М—досить велике додатне число.

Визначені одиничні лінійно незалежні вектори утворюють базис, і змінні задачі, що відповідають їм, називають базисними, а всі інші змінні – вільними. Їх прирівнюють до нуля та з кожного обмеження задачі визначають значення базисних змінних. У такий спосіб отримують початковий опорний план задачі лінійного програмування.

Подальший обчислювальний процес та перевірку опорного плану на оптимальність подають у вигляді симплексної таблиці.

У першому стовпчику таблиці – «Базис» – записують базисні змінні опорного плану, причому в тій послідовності, в якій вони розміщуються в системі обмежень задачі.

Наступний стовпчик симплексної таблиці – «Сбаз» – коефіцієнти при базисних змінних у цільовій функції задачі.

У третьому стовпчику – «План» – записують значення базисних змінних і відшукуванні у процесі розв'язування задачі компоненти оптимального плану.

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

Перевіряють опорний план на оптимальність згідно з наведеною далі теоремою.

! Теорема (ознака оптимальності опорного плану). Опорний план задачі лінійного програмування є оптимальним, якщо для всіх виконується умова

(для задачі на max)

або

(для задачі на min)

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

Значення оцінок визначають за формулою

або безпосередньо із симплексної таблиці як скалярний добуток векторів-стовпчиків «Сбаз» та «xj» мінус відповідний коефіцієнт Сj. Розраховані оцінки записують в окремий рядок симплексної таблиці, який називають оцінковим.

У процесі перевірки умови оптимальності можливі такі випадки:

а) усі задовольняють умову оптимальності, і тоді визначений опорний план є оптимальним;

б) не всі задовольняють умову оптимальності, і тоді потрібно виконати перехід до наступного, нового опорного плану задачі.

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

Змінна, яка включається до нового базису, відповідає тій оцінці , що не задовольняє умову оптимальності. Якщо таких оцінок кілька, серед них вибирають найбільшу за абсолютною величиною і відповідну їй змінну вводять до базису. Припустимо, що індекс зазначеної змінної j = k. Відповідний стовпчик симплексної таблиці називають напрямним.

Для визначення змінної, що має бути виключена з базису, знаходять для всіх додатних аik напрямного стовпчика величину . Вибирають найменше значення , яке вказує на змінну, що виводиться з базису. Припустимо, що це виконується для і = r. Відповідний рядок симплексної таблиці називатиметься напрямним.

Перетином напрямного стовпчика та напрямного рядка визначається число симплексної таблиці аrk, яке називають розв'язувальним елементом. За допомогою елемента аrk, і методу Жордана-Гаусса розраховують нову симплексну таблицю.

Далі ітераційний процес повторюють доти, доки не буде визначено оптимальний план задачі.

У разі застосування симплекс-методу для розв'язування задач лінійного програмування можливі такі випадки.

1. Якщо в оцінковому рядку останньої симплексної таблиці оцінка відповідає вільній (небазисній) змінній, то це означає, що задача лінійного програмування має альтернативний оптимальний план. Отримати його можна, вибравши розв'язувальний елемент у зазначеному стовпчику таблиці та здійснивши один крок симплекс-методом.

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

Якщо для опорного плану задачі лінійного програмування

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


 

ТЕМА 3

ТЕОРІЯ ДВОЇСТОСТІ ТА АНАЛІЗ ЛІНІЙНИХ МОДЕЛЕЙ ОПТИМІЗАЦІЙНИХ ЗАДАЧ

3.1. Основна та двоїста задачі як пара взаємоспряженних задач ЛП.

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

Якщо пряма задача лінійного програмування має вигляд

то двоїста задача записується так:

за обмежень

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

1. Кожному обмеженню прямої задачі відповідає змінна двоїс­тої задачі. Кількість невідомих двоїстої задачі дорівнює кількості обмежень прямої задачі.

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

3. Якщо цільова функція прямої задачі задається на пошук найбільшого значення (max), то цільова функція двоїстої задачі — на визначення найменшого значення (min), і навпаки.

4. Коефіцієнтами при змінних в цільовій функції двоїстої за­дачі є вільні члени системи обмежень прямої задачі.


<== попередня лекція | наступна лекція ==>
Теоретичні відомості | 


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн