 
        
        - •Методические указания по изучению методов математического программирования содержание
- •Общие рекомендации к использованию программного обеспечения
- •Элементарные преобразования матриц. Метод гаусса
- •Задача линейного программирования. Симплекс-метод Постановка задачи линейного программирования в стандартной форме (сзлп).
- •Задача линейного программирования. Модифицирован симплекс-метод.
- •Задача линейного программирования. Двойственный симплекс-метод
- •Транспортная задача. Метод потенциалов
- •Транспортная задача с ограниченными пропускными
- •Способностями. Метод потенциалов
- •Постановка транспортной задачи с ограниченными
- •Пропускными способностями (тзо).
- •Задача о кратчайшем пути на сети. Метод минти
- •Задача о максимальном потоке на сети. Метод форда-фалкерсона
- •Задача целочисленного линейного программирования. Метод гомори-1
- •Задача частично целочисленного линейного программирования. Метод гомори-2 Постановка частично целочисленной задачи линейного программирования (чцзлп).
- •Задача целочисленного линейного програмування. Метод гомори-3
- •Задача частично дискретного линейного программирования. Метод дальтона-ллевелина Постановка частично дискретной задачи линейного программирования (чдзлп).
- •Задача целочисленного линейного программирования. Метод ветвей и границ.
- •Лабораторная работа 14. Задача о назначении. Венгерский метод
- •Лабораторная работа 15. Задача о назначении. Метод мака Постановка задачи такая же самая, как и в предыдущем разделе (14.1–14.4).
- •6. Если каждый столбец матрицы расходов имеет элемент с отметкой *, тогда задача об оптимальных назначениях решена. Иначе переходим к следующему пункту.
- •Матричные игры. Связь с задачей линейного программирования. Метод брауна-робiнсон
- •Лабораторная работа 17. Методы одномерной оптимiзации
- •Лабораторная работа 18. Задача выпуклого квадратичного программирования. Квадратичный симплекс-метод
- •Задача безусловной оптимизации. Метод самого быстрого спуску
- •Лiтература
Задача линейного программирования. Двойственный симплекс-метод
Изложение двойственного симплекс-метода.
Двойственный симплекс-метод (ДСМ) непосредственно применяется к решению почти каноничной задачи линейного программирования (МКЗЛП), которая формулируется таким образом:
Найти вектор x = (x1...,xn), что минимизирует линейную функцию
L(x)= c1x1 + ... + cnxn (4.1)
и удовлетворяет систему линейных ограничений
xi + ai,m+1 xm+1 + ... + ainxn = ai0, i=1...,m (4.2)
xj0, j=1...,n (4.3)
(компоненты ai0 вектора ограничений A0 могут быть отрицательными) при дополнительном условии: относительные оценки (симплекс - разницы) j переменных xj неотъемлемые.
Вектор x=(x1...,xn) называется почти допустимым базисным решением (МДБР) МКЗЛП, если его компоненты удовлетворяют ограничение (4.2), и ненулевым компонентам xj отвечают линейно независимые векторы условий Aj.
Базис и базисная матрица МДБР определяются подобно тому, как это делается для СЗЛП.
МКЗЛП является случаем части СЗЛП. Существуют методы сведения произвольной ЗЛП к почти каноничному виду.
Признак оптимума: Если на некотором шаге ДСМ компоненты МДБР x* неотъемлемые, то x* — оптимальное решение МКЗЛП.
Признак отсутствия решения: Оптимального решения МКЗЛП не существует, если на каком-либо шаге ДСМ в строке с ai0<0 все компоненты aij0, j=1...,n. В этом случае допустимое множество решений МКЗЛП пустое.
Алгоритм двойственного симплекс-метода.
На каждом шагу ДСМ выполняются такие действия (расчетные формулы наводятся лишь для первого шага).
1. Рассматривается МДБР x=(a10...,am0,0,...,0).
Вычисляются относительные оценки (симплекс - разницы) j небазисных переменных xj, j=m+1...,n, за формулой:
j=cj – (cб, Aj)
где cб=(c1...,cm), Aj — вектор условий, что отвечает переменной xj (относительные оценки базисных переменных равняются нулю).
Если для всех i=1...,m выполняется условие ai00, то МДБР x будет оптимальным решением МКЗЛП. Конец вычислений.
Если существует такое и, что ai0<0, а коэффициенты aij0, j=1...,n, то МКЗЛП не имеет допустимых решений. Конец вычислений.
2. Если существуют индексы и, для которых ai0<0, а среди соответствующих компонент aij, j=1...,n, есть отрицательные, то находят l:
l=argmin ai0
и: ai0<0
вычисляют отношение j=–jalj для всех alj<0 и определяют k:
k=argmin j.
и: alj<0
3. Переходят к новому МДБР, исключая из базиса вектор Al и вводя к базису вектор Ak. Упомянутый переход осуществляется с помощью симплекс - превращений (элементарных превращений Жордана - Гаусса с ведущим элементом alk) над элементами расширенной матрицы условий. Переход к пункту 1.
Программное обеспечение.
Обучающий модуль, с помощью которого ЗЛП Решается в диалоге с пользователем за выложенным алгоритмом, вызывается из раздела «ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ» главного меню пакета ПО–МО.
Задание.
Решить двойственным симплекс-методом задачи линейного программирования, условия которых задаются модулем с помощью команды «Данные» главного меню (задачи №1–№9), а также следующие задачи.
Во всех задачах, которые предлагаются дальше, все переменные неотъемлемые.
| 1) | 6 x1 + 4 x2  min | 2) | 2 x1 + 3 x2  min | 3) | –6 x1 – 4 x2  max | 
| 
 | 2 x1 + x2  3 | 
 | x1 + 5 x2  16 | 
 | 2 x1 + x2  3 | 
| 
 | x1 – x2  1 | 
 | 3 x1 + 2 x2  12 | 
 | x1 – 2 x2  2 | 
| 
 | – x1 + 2 x2  1; | 
 | 2 x1 + 4 x2  16; | 
 | 3 x1 + 2 x2  1; | 
| 4) | 6 x1 + 4 x2  min | 5) | 7 x1 + x2  min | 6) | 7 x1 + 10 x2  min | 
| 
 | 2 x1 + x2  3 | 
 | x1 + x2  3 | 
 | 2 x1 + 28 x2  17 | 
| 
 | 3 x1 + 2 x2  1 | 
 | 5 x1 + x2  5 | 
 | x1 + 2 x2  3; | 
| 
 | – x1 – x2  6; | 
 | x1 + 5 x2  5; | 
 | x1 + 17 x2  19; | 
| 7) | x1 + x2 + 2 x3  min | 8) | –15x1 – 33 x2  max | 
| 
 | 2 x1 – x2 – 3 x3 + x4 = – 3 | 
 | 3 x1 + 2 x2  6 | 
| 
 | x1 – 3 x2 – 4 x3 + x5 = – 1; | 
 | 6 x1 + x2  6; | 
| 9) | x1 + 2 x2  min | 10) | 78 x1 + 52 x2  min | 11) | 5 x1 + 4 x2  min | 
| 
 | 2 x1 + x2  18 | 
 | 6 x1 + 2 x2  9 | 
 | x1 + x2  6 | 
| 
 | x1 + 2 x2  14 | 
 | 10 x1 + 14 x2 13 | 
 | 2 x1 + x2  9 | 
| 
 | x1 – 2 x2  10; | 
 | 11 x1  x2  6; | 
 | 3 x1 + x2  11. | 
Ответы:
1) x* = (1; 1), L(x*)= 10.
2) x* = (2; 3), L(x*)= 13.
3) x* = (1.5; 0), L(x*)= 9.
4) Решения нет ( D =  ).
5) x* = (0; 5), L(x*)= 5.
6) x* = (0; 1.5), L(x*)= 15.
7) x* = (0; 0; 1; 0; 3), L(x*)= 2.
8) x* = (2; 0), L(x*)= 30.
9) x* = (7.33; 3.33), L(x*)= 14.
10) x* = (0.96; 1.62), L(x*)= 159.12.
11) x* = (4.5; 0), L(x*)= 22.5.
Лабораторная работа 5.
