Курсовая работа: Аналіз методів рішення задачі лінійного програмування симплекс методом
2. Функціональне призначення
Задача лінійного програмування широко використовується для рішення задач прикладної математики.
В сучасній ринковій економіці в умовах жорсткої конкуренції і боротьби за кожен відсоток рентабельності – а, значить, конкурентної здатності – ефективність вирішення задач з багатьма взаємопов’язаними факторами набуває вирішального значення, коли потрібно прорахувати ефективність виробничого процесу з огляду на різні фактори ризику – кон’юнктуру ринку, наявність сировини, доступ до джерел енергії, демографічну ситуацію та навіть наслідки глобального потепління.
3. Аналіз методів розв’язання даної задачі
3.1 Метод потенціалів
Метод потенціалів — розроблений в 1940 радянськими вченими Канторовічем Л. В. та Гавуріним Л. В. в застосуванні до транспортної задачі;
Розглянемо алгоритм даного методу:
1. Порівнюють загальний запас вантажу з сумарним попитом іі у випадку порушення балансу приводять задачу до закритої моделі.
2. Умову задачі записують у формі транспортної таблиці.
3. Будують початковий опорний план перевезень
4. Перевіряють умову для базисних клітин (їх повинно бути m+n-1): якщо ця умова не виконується, то в одну з вільних клітинок (як правило, в клітинку з найменшим тарифом) вписуюють число 0, і така клітина вважається базисною. Однак число 0 записуюють тільки в ті вільні клітинки, які не утворюють циклів з раніше зайнятими клітинками.
5. Обчислюють потенціали ui ivj . Кожному постачальнику (кожній стрічці) ставлять у відповідність деяке число ui , яке називають потенціалом постачальника Аі (і=1,m), і записуюють праворуч таблиці, а кожному споживачу (або стовпчику) – деяке число vj , яке називають потенціалом споживача Вj (j=1,n), і записують під таблицею. Числа ui ivj вибирають так, щоб у будь-якій базисній клітинці їх сума дорівнювала тарифу, тобто ui +vj =сі j . Так, як кількість всіх потенціалів ui ivj складає m+n, а зайнятих клітинок m+n-1, то для визначення чисел ui ivj доведется вирішувати систему із m+n-1 рівнянь з m+n невідомими. Тому одному із невідомих потенціалів надають довільне значення. Тоді інші визначаються однозначно.
6. Для перевірки оптимальності плану переглядають вільні клітинки, для яких визначають оцінки ∆і j – різниця між тарифом клітинки і сумою потенціалів строки і стовпчика, тобто ∆і j = сі j -( ui +vj ). Економічно, оцінка покаже на скільки грошових одиниць змінятся транспортні витрати від завантаження даної клітинки одиницею вантажу. Якщо всі оцінки невід′ємні, тобто ∆і j ≥0, то план оптимальний і залишається підрахувати транспортні витрати. Інакше переходять до пункту 7.
7. З від′ємних оцінок ∆і j ≤0 вибирають мінімальну. Нехай це буде ∆і k . Тоді клітинку (1, k) вводять в число базисних, тобто будують цикл по завантаженим клітинкам з початком в цій клітинці і перерозподіляють поставки так, щоб баланс циклу зберігався. Для цьогго вершинам циклу приписують знаки „+” і ”-”, які чергуються, (вільній клітинці (1, k) приписують позитивний знак „+”). В „мінусових” клітинках віднаходять найменший вантаж w , тобто w =minxі j =xst , який і переміщається клітинками замкнутого циклу, тобто додається до перевозок xі j в клітинках зі знаком „+” (включаючи вільну) і віднімається з перевозок xі j в клітинках із знаком ”-”. З цього слідує, що клітинка (s, t) стане вільною і змінна xst вийде з базису. Значення інших базисних змінних переписуюються. Таким чином, отримуюють або одержують нову транспортну таблицю с поліпшеним планом, для якого транспортні витрати змінюються на величину ∆1 k *xst . Переходять до пункту №4.
3.2 Симплекс-метод
Симплекс-метод — цей метод є узагальненням методу потенціалів для випадку загальної задачі лінійного програмування. Розроблений американським вченим Данциґом Дж.-Б. в 1949 році.
Симплекс-метод — метод розв'язання задачі лінійного програмування, в якому здійснюється скерований рух по опорних планах до знаходження оптимального розв'язку; симплекс-метод також називають методом поступового покращення плану.
Розглянемо опис методу:
Нехай невироджену задачу лінійного програмування представлено в канонічному вигляді:
(3.2.1)
(3.2.2)
де X = (x1 , …, xn ) — вектор змінних, C = (c1 , …., cn ), B = (b1 , …, bm )T, Aj = (a1 j , …, amj )T, j = 1, …, n — задані вектори, T — знак транспонування, та відмінні від нуля компоненти опорного плану, для полегшення пояснення розташовані на перших m місцях вектору X. Базис цього плану — Тоді
(3.2.3)
(3.2.4)
де значення лінійної форми на даному плані. Так як вектор-стовпці матриці A лінійно незалежні, будь який із векторів умов Aj розкладається по ним єдиним чином:
(3.2.5)
(3.2.6)
(3.2.7)
де xij - коефіцієнт розкладання. Система умов