Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бухаров экзамен.doc
Скачиваний:
17
Добавлен:
21.12.2018
Размер:
4.36 Mб
Скачать

Постановка задачи лп в канонической форме:

      Найти          max{(c,x)}            (1)

при ограничениях

      Ax = b,                    (2)         x >=0,                    (3)

где x = (x1, . . . ,xn) - вектор неизвестных;      b = (b1, . . . bm) - вектор ограничений ;      c = (c1, . . . , cn) - вектор коэффициентов функции цели;     A = {aij}, i = 1,m; j = 1,n - матрица коэффициентов системы линейных уравнений (2).

Основные шаги симплекс алгоритма.

 Для решения задачи модифицированным симплекс методом исходную задачу (1) - (3) преобразуют к следующему виду

максимизировать      f(x) = cTB B-1b -(cB TB-1N - cT N)xN           (4) при ограничениях     xB =  B-1b - B-1NxN   (xN >=0).                (5)

В выражениях (4),(5)            xB = (xBj), j=1,m - вектор базисных переменных,           xN = (xNj), - вектор небазисных переменных;           cB = (cBj), j = 1,m - коэффициенты функции цели соответствующие базисным                    переменным;           cN = (cNj), j = m+1,n  - коэффициенты функции цели соответствующие небазисным                    переменным;           В - матрица составленная из столбцов матрицы А соответствующих базисным переменным                и образующих линейно независимую систему.          N - матрица составленная из столбцов матрицы А соответствующих небазисным                  переменным.

Преобразование исходной задачи к виду (4), (5) называется приведением ее к каноническому виду и если при этом  вектор β =  B-1b>= 0 , то форма (4), (5) называется канонически допустимой. Допустимое базисное решение получается если положить xN = 0. Если вектор β > 0 то решение называется невырожденным, в противном случае вырожденным.

Шаг 1.Выбор ведущего столбца. Определяется переменная которая должна быть введена в базис.  Вычисляется вектор строка относительных оценок небазисных переменных                                          dT = (cB TB-1N - cT N). Если все dj >=0 , то решение оптимально, иначе выбирается ведущий столбец и соответствующая ему базисная переменная для ввода в базис  dq = min{dj},  (dj < 0).

Шаг 2. Выбор ведущей строки. На этом шаге определяется переменная которая должна быть выведена из базиса. Если  все элементы ведущего столбца aiq <= 0 , то решение прекращается так как целевая функция не ограничена на множестве допустимых решений. Иначе определяется βp/apq = min{βι/aiq}  (aiq > 0). Переменная xp выводится из базиса.

Шаг 3. Формируется новая матрица В. Столбец соответствующий переменной xq вводится в матрицу В , а столбец соответсвующий переменной xp выводится из нее. Решение повторяется с шага 1. 

Правило приведения задачи линейного программирования к каноническому виду состоит в следующем:

  • если в исходной задаче требуется определить максимум линейной функции, то следует изменить знак и искать минимум этой функции;

  • если в ограничениях правая часть отрицательна, то следует умножить это ограничение на -1;

  • если среди ограничений имеются неравенства, то путем введения дополнительных неотрицательных переменных они преобразуются в равенства;

  • если некоторая переменная xj не имеет ограничений по знаку, то она заменяется (в целевой функции и во всех ограничениях) разностью между двумя новыми неотрицательными переменными: x3 = x3+ - x3-, где x3+, x3- ≥ 0.

Допустимым решением (планом) задачи линейного программирования называется любой n-мерный вектор X=(X1, X2,...,Xn), удовлетворяющий системе ограничений и условиям неотрицательности.

Множество допустимых решений (планов) задачи образует область допустимых решений (ОДР).

Оптимальным решением (планом) задачи линейного программирования называется такое допустимое решение (план) задачи, при котором целевая функция достигает экстремума.

В том случае, когда все ограничения являются уравнениями и все переменные удовлетворяют условию неотрицательности, задачу линейного программирования называют канонической.

Приведем математическую модель задачи к каноническому виду.Для этого избавимся от знаков неравенств посредством ввода дополнительных переменных и замены знака неравенства на знак равенства. Дополнительная переменная добавляется для каждого неравенства эксклюзивно, причем эта переменная указывается в целевой функции с нулевым коэффициентом. Правило ввода дополнительных переменых: при ">=" - переменная вводится в неравенство с коэффициентом +1; при "<=" - с коэффициентом (-1).

Причем иногда, когда в уравнении нет базисной переменной, чтобы сделать отрицательную дополнительную переменную базисной можно умножить все уравнение на (-1).

Также можно переориентировать целевую функцию с минимума на максимум или наоборот умножив все коэффициенты при переменных в этой функции на (-1).

13. Двойственные задачи ЛП

Понятие двойственной задачи ЛП.

Пусть задана каноническая задача ЛП

    (5.1)

Если целевая функция f(x) = cx достигает максимального значения на множестве D, то обоснованным представ­ляется вопрос о том, каким образом можно построить верхнюю оценку для нее. Очевидно, что если через и обозначить некото­рый m-мерный вектор, то

cx = cx+u(-Ax+b) = (c-uA)x+bu

Предположим, что и можно выбрать таким образом, чтобы иА ≥ с. Тогда при любых х≥0 справедливо неравенство

сх≤bи                          (5.2)

Стремясь получить наилучшую оценку (5.2), мы приходим к формулировке некоторой новой экстремальной задачи, кото­рая в некотором смысле логически сопряжена с задачей (5.1) и называется двойственной.

Общая схема построения двойственной задачи.

Если задана общая задача ЛП

    (5.5)50

где D определяется системой уравнений и неравенств

то двойственной по отношению к ней называется общая задача ЛП

  (5.6)

где D* определяется системой уравнений и неравенств

Как следует из приведенной схемы при переходе от прямой задачи ЛП к двойственной:

1.  Тип оптимума меняется на противоположный, т. е. максимум на минимум, и наоборот.

2.  Вектор коэффициентов целевой функции c и столбец ограничений b меняются местами.

3.  Матрица ограничений задачи А транспонируется.

4.  Множество индексов переменных, на которые наложено условие неотрицательности в прямой задаче (например, хj≥0 или ui≥0), определяют номера ограничений, имеющих форму неравенств в двойственной задаче (аjи≥сj или aixbi).

5.  Множество номеров ограничений, имеющих форму неравенств в прямой задаче (например, aixbi или аjи≥сj), определяют множество индексов переменных, на которые накладывается условие неотрицательности, в двойственной задаче (ui≥0 или хj≥0).

Из приведенного определения вытекает важное свойство — симметричность отношения двойственности, т. е. задача, двойственная по отношению к двойственной, со­впадает с прямой (исходной) задачей:

((D*)*, (f*)*)≡(D, f),

Тем самым имеет смысл говорить о паре взаимно двой­ственных задач.

 

Пример построения двойственной задачи

Рассмотрим процесс построения двойственной задачи на конкретном примере. Пусть задана ОЗЛП

fmax(x)= 5x1 -2x2 +7x3 +4x4 -3x5

D={xcR5 |

4x1 +x2 -x3 +x4                  ≤2,

       5x2 +x3 -6x4 +2x5 =4,

2x1 +3x2 +6x3 +x4 -3x5≤5,

x2, x5≥0 }

тогда двойственной к ней будет задача

f*min(u)= 2u1 +4u2 +5u3

D={ucR3 |

4u1          +2u3=5,

  u1 +5u2 +3u3≥ -2,

 -u1 +  u2 +6u3=7,

  u1 -6u2 +  u3=4,

        2u2  -3u3≥ -3,

u1, u3≥0 }