Курская академия государственной и муниципальной службы

Кафедра «информационной и техносферной безопасности»

Реферат

по дисциплине «Методы оптимальных решений»

на тему «Идея симплекс-метода»

Выполнила: студентка 2 курса

Специальности «экономика»

Москалева О. С.

Проверил: к.ф.м.н., доцент Погосян С. Л.

Курск – 2012

Введение……………………………………………………………………..3

1. Идея симплекс-метода…………………………………………….…4

2. Реализация симплекс-метода на примере……………………..……6

3. Табличная реализация простого симплекс-метода ……………….10

Заключение………………………………………………………………….15

Список использованной литературы………………………………..…….16

Введение.

Симлекс-метод - это характерный пример итерационных вычислений, используемых при решении большинства оптимизационных задач.

В вычислительной схеме симплекс-метода реализуется упорядоченный процесс, при котором, начиная с некоторой исходной допустимой угловой точки (обычно начало координат), осуществляются последовательные переходы от одной допустимой экстремальной точки к другой до тех пор, пока не будет найдена точка, соответствующая оптимальному решению.

Идея симплекс-метода

Рассмотрим универсальный метод решения канонической задачи линейного программирования, с n переменными и m ограничениями-равенствами, известный как симплекс-метод.

Множество планов канонической задачи - выпуклое многогранное множество, имеющее конечное число угловых точек. И если эта задача имеет оптимальное решение, то оно достигается хотя бы в одной угловой точке.

С любой угловой точкой связан базисный план задачи, в котором переменных равны нулю, а оставшимся переменным соответствуют линейно независимые столбцы матрицы условий. Эти линейно независимые столбцы образуют невырожденную базисную матрицу.

Перебор всех угловых точек сопряжен с большими вычислительными затратами и поэтому не эффективен. В 1947 году Дж. Данциг предложил упорядоченную процедуру перебора угловых точек, при которой для нахождения оптимального решения достаточно исследовать лишь небольшую их часть. Эта процедура называется симплекс-методом .

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

Оказывается, геометрически такая замена приводит к переходу от одной угловой точки к смежной (соседней), связанной с предыдущей точкой общим ребром.

Из всех соседних точек выбирается та, в которой целевая функция возрастает более всего. Поскольку число угловых точек конечно, через конечное число переходов будет найдена вершина с наибольшим значением целевой функции, либо будет установлена неограниченность целевой функции на неограниченном множестве планов.

Общая схема симплекс-метода состоит из следующих основных шагов: шаг 0 . Определение начального базиса и соответствующей ему начальной угловой точки (базисного плана).

шаг 1 . Проверка текущего базисного плана на оптимальность. Если критерий оптимальности выполнен, то план оптимален и решение закончено. Иначе переход на шаг 2.

шаг 2 . Нахождение переменной, вводимой в состав базисных. (Из условия увеличения целевой функции).

шаг 3 . Нахождение переменной, исключаемой из состава базисных переменных (Из условия сохранения ограничений задачи).

шаг 4 . Нахождение координат нового базисного плана (смежной угловой точки). Переход на шаг 1.

Повторяющиеся шаги 1-4 образуют одну итерацию симплекс-метода.

Из этой схемы следует, что во-первых, для начала работы симплекс-метода надо иметь какую-то угловую точку - начальный базисный план, а во-вторых, надо уметь исследовать текущую угловую точку на оптимальность, не вычисляя всех смежных вершин. Эти проблемы легко решаются, если каноническая задача ЛП имеет некий специальный вид.

Определение . Будем говорить, что каноническая задача ЛП имеет "предпочтительный вид", если: правые части уравнений; матрица условий содержит единичную подматрицу размера.

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

Реализация симплекс-метода на примере

Продемонстрируем применение симплекс-метода на примере. Рассмотрим каноническую задачу ЛП

f(x) = x 1 + 2x 2 + 0 x 3 + 0 x 4 > max

-x 1 + 2x 2 + x 3 = 4,

3 x 1 + 2x 2 + x 4 = 12,

x j ? 0, j = 1,2,3,4.

Матрица условий A = (A 1 , A 2 , A 3 , A 4), где

Целевой вектор c =(c 1 , c 2 , c 3 , c 4 ) = (1, 2, 0, 0); вектор правых частей b =(b 1 , b 2) = (4, 12).

Шаг 0. Нахождение начальной угловой точки (базисного плана).

Задача имеет предпочтительный вид, так как правые части уравнений положительны, а столбцы матрицы условий A 3, A 4 образуют единичную подматрицу. Значит начальная базисная матрица = (A 3 , A 4); x 3 и x 4 - базисные переменные, x 1 и x 2 - небазисные переменные, c Б = (c 3, c 4) = = (0, 0).

Начальный базисный план имеет вид x 0 = (0, 0, x 3 , x 4) = (0, 0, 4, 12); f(x o ) = 0.

Шаг 1. Проверка базисного плана на оптимальность.

Подсчитаем симплексные оценки для небазисных переменных по формуле (5.1)

? 1 = 1 > - c 1 = 0 ·(-1) + 0 ·3 - 1 = -1.

? 2 = 2 > - c 2 = 0 ·2 + 0 · 2 - 2 = -2.

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

Шаг 2 . Нахождение переменной вводимой в базис.

Целевую функцию можно увеличить, если ввести в состав базисных переменных (сделать положительной) одну из небазисных переменных x 1 или x 2 , поскольку обе оценки ? j x 2.

Шаг 3. Определение переменной выводимой из базиса.

После ввода в базис переменной x 2 новый план будет иметь вид

x" = (0, x 2, x 3 , x 4).

Этот план не является базисным, так как он содержит только одну нулевую координату, значит надо сделать нулевой (исключить из базиса) одну из переменных x 3 или x 4 . Подставим координаты плана x" = (0, x 2, x 3 , x 4) в ограничения задачи. Получим

2x 2 + x 3 = 4,

2x 2 + x 4 = 12.

Выразим отсюда базисные переменные x 3 и x 4 через переменную x 2 , вводимую в базис.

x 3 = 4 - 2x 2,

x 4 = 12 - 2x 2 .

Так переменные x 3 и x 4 должны быть неотрицательны, получим систему неравенств

4 - 2x 2 ? 0,

12 - 2x 2 ? 0.

Чем больше значение x 2 , тем больше возрастает целевая функция. Найдем максимальное значение новой базисной переменной, не нарушающее ограничения задачи, то есть удовлетворяющее условиям (2.8), (2.9).

Перепишем последние неравенства в виде

2x 2 ? 4,

2x 2 ? 12,

откуда максимальное значение x 2 = min { 4/2, 12/2 } = 2. Подставляя это значение в выражения (2.6), (2.7) для x 3 и x 4 , получаем x 3 = 0. Следовательно x 3 выводится из базиса.

Шаг 4. Определение координат нового базисного плана.

Новый базисный план (смежная угловая точка) имеет вид

x" = (0, x 2, 0, x 4)

Базис этой точки состоит из столбцов A 2 и A 4 , так что = (A 2, A 4). Этот базис не является единичным, так как вектор A 2 = (2,2), и следовательно задача (2.2)-(2.5) не имеет предпочтительного вида относительно нового базиса. Преобразуем условия задачи (2.3), (2.4) таким образом, чтобы она приняла предпочтительный вид относительно новых базисных переменных x 2, x 4, то есть чтобы переменная x 2 входила в первое уравнение с коэффициентом, равным единице, и не присутствовала во втором уравнении. Перепишем уравнения задачи

- x 1 + 2 x 2 + x 3 = 4, (p 1)

3x 1 +2 x 2 + x 4 = 12. (p 2)

Поделим первое уравнение на коэффициент при x 2 . Получим новое уравнение = p 1 / 2, эквивалентное исходному

1/2 x 1 + x 2 + 1/2 x 3 = 2. ()

Используем это уравнение, которое назовем разрешающим, для исключения переменной x 2 из второго уравнения. Для этого надо уравнение умножить на 2 и вычесть из p 2 . Получим = p 2 - 2 = p 2 - p 1:

4 x 1 - x 3 + x 4 = 8. ()

В итоге получили новое "предпочтительное" представление исходной задачи относительно новых базисных переменных x 2 , x 4:

f (x ) = x 1 + 2 x 2 + 0 x 3 + 0 x 4 ? max

1/2 x 1 + x 2 + 1/2 x 3 = 2 ()

4 x 1 - x 3 + x 4 = 8 ()

x j ? 0, j = 1,2,3,4

Подставляя сюда представление нового базисного плана x 1 = (0, x 2, 0, x 4), сразу найдем его координаты, так как значения базисных переменных равны правым частям уравнений

x" = (0, 2, 0, 8); f (x 1)=4.

На этом завершается первая итерация простого симплекс-метода. Далее процесс решения задачи продолжается с шага 1, состоящем в проверке найденного плана на оптимальность. Решение заканчивается тогда, когда все симплексные оценки текущего базисного плана окажутся неотрицательными.

Мы не будем проводить вторую итерацию по схеме первой, поскольку все вычисления симплекс-метода удобнее проводить в табличном виде.

Табличная реализация простого симплекс-метода

Табличную реализацию продемонстрируем на том же примере (2.2)-(2.5).

Шаг 0 . Решение начинается с построения начальной симплекс-таблицы. Сначала заполняется правая часть таблицы с третьей колонки. В двух верхних строках записываются имена переменных задачи (x 1, ...,x 4) и коэффициенты целевой функции при этих переменных. Ниже записываются коэффициенты уравнений - элементы матрицы условий А , так что под переменной x 1 располагается столбец A 1 , под переменной x 2 - столбец A 2 и т.д. В правый столбец заносятся правые части ограничений (числа b i > 0).

Затем находим столбцы матрицы условий, образующие единичный базис - в нашем примере это A 3 и A 4 - и соответствующие им базисные переменные x 3, x 4 записываем во вторую колонку. Наконец, в первом столбце записываем коэффициенты целевой функции при базисных переменных.

Таблица 1 - Начальная симплекс-таблица

Базисные переменные

Значения базисных перем. (x Б =b )

x 1

x 2

x 3

x 4

x 3

a 11 =-1

x 4

Строка оценок ? j

? 1 = -1

? 2 = -2

Так как задача имеет предпочтительный вид, то значения базисных переменных равны правым частям уравнений, расположенным в последнем столбце. Поскольку небазисные переменные равны нулю, то начальный базисный план равен

x o = (0, 0, x 3 , x 4) = (0, 0, 4, 12).

Шаг 1. Для проверки плана x o на оптимальность подсчитаем симплексные оценки для небазисных переменных x 1 и x 2 по формуле

? j = Б , A j > - c j .

? 1 = Б , A 1 > - c 1 = 0 ·(-1) + 0 ·3 - 1 = -1.

При табличной реализации для подсчета оценки ? 1 надо найти сумму произведений элементов первого столбца (c Б ) на соответствующие элементы столбца A 1 при небазисной переменной x 1 . Аналогично подсчитывается оценка ? 2 , как скалярное произведение первого столбца (c Б ) на столбец при переменной x 2 .

? 2 = 2 > - c 2 = 0 ·2 + 0 · 2 - 2 = -2.

Симплексные оценки записываются в последней строке симплекс-таблицы, которая называется дельта-строкой. При этом заполняются не только клетки при небазисных переменных, но и базисные клетки. Легко проверить, что для базисных единичных столбцов матрицы условий симплексные оценки равны нулю. В последней клетке строки оценок записываем значение целевой функции в точке x o . Заметим, что, так как небазисные координаты базисного плана равны нулю, то подсчет целевой функции удобно производить по формуле

f (x )= c Б, x Б >,

перемножая скалярно первый и последний столбцы таблицы.

Так как среди оценок ? j есть отрицательные, то план x o - не оптимальный, и надо найти новый базисный план, заменив одну из базисных переменных на новую из числа небазисных.

Шаг 2. Поскольку обе оценки ? 1 и ? 2 то в базис можно включить любую из переменных x 1, x 2 . Введем в базис переменную с наибольшей по модулю отрицательной оценкой, то есть x 2 .

Столбец симплекс-таблицы, в котором находится вводимая в базис переменная называется ведущим столбцом .

В примере ведущим будет столбец при x 2 .

Шаг 3. Если в ведущем столбце все элементы отрицательны, то решения задачи не существует и max f (x ) ???. В примере все элементы ведущего столбца положительны, следовательно, можно найти максимальное значение x 2 , при котором одна из старых базисных переменных обратится в ноль. Напомним, что максимальное значение x 2 = min{4/2, 12/2}=2.

По таблице это значение вычисляется как наименьшее из отношений компонент базисного плана (из последнего столбца) к соответствующим положительным элементам ведущего столбца.

Наименьшее отношение находится в строке с базисной переменной x 3. Значит переменная x 3 исключается из состава базисных переменных (x 3 = 0).

Строка, содержащая переменную, исключаемую из базиса, называется ведущей строкой.

В примере ведущей строкой будет первая строка.

Элемент, находящийся на пересечение ведущей строки и ведущего столбца, называется ведущим элементом.

В нашем случае ведущий элемент a 12 = 2.

Табл. 2 - Начальная симплекс-таблица с ведущими строкой и столбцом

Базисные перемен.

Значения базисных перем.

Уравнения

x 2

c 3 =0

x 3

-1

2

1

0

4

2

Строка оценок ? j

? 1 = -1

? 2 = -2

Шаг 4 . Для получения нового базисного плана приведем задачу к новому предпочтительному виду относительно новых базисных переменных.

Для этого построим новую симплекс-таблицу, во втором столбце которой вместо исключаемой переменной x 3 запишем новую базисную переменную x 2 , а в первом столбце (с Б ) вместо с 3 запишем коэффициент целевой функции при x 2 : c 2 =2 . В новой симплекс таблице столбец при x 2 должен стать единичным (ведущий элемент должен равняться единице, а все остальные элементы должны обратиться в ноль). Это достигается следующими преобразованиями строк таблицы.

a. Все элементы ведущей строки делим на ведущий элемент и записываем в той же строке новой симплекс- таблицы.

Полученную строку p 1 " назовем разрешающей.

b. К оставшейся второй строке прибавим разрешающую строку, умноженную на такое число, чтобы элемент, стоящий в ведущем столбце обратился в ноль.

p 2 " = p 2 + (- 2) p 1 " = p 2 - p 1.

c. Заполним последнюю строку, вычислив оценки ? j " = - - c j , где c Б ", A j " - соответствующие столбцы новой симплекс-таблицы, и значение целевой функции f(x)= .

Получим вторую симплекс-таблицу с новым базисом.

Таблица 3 - Результат первой итерации

Базисные перемен.

Значения базисных перем.

Уравнения

-1/2

x 4

4

0

-1

1

8

p 2 " =p 2 - p 1

оценки ? j "

-2

Новый базисный план x " = (0, x 2 , 0, x 4) = (0, 2, 0, 8 ). Поскольку оценка ? 1 = -2 то план x " не оптимален. Для перехода к новому базисному плану (соседней угловой точки) проведем еще одну итерацию симплекс - метода.

Так как ? 1 то в базис вводится переменная x 1 . Первый столбец, содержащий x 1 - ведущий.

Находим отношения компонент базисного плана к соответствующим положительным элементам ведущего столбца и в качестве ведущей строки берем строку с наименьшим отношением. В таблице 2 в ведущем столбце только второй элемент больше нуля (= 4), следовательно, вторая строка будет ведущей , а расположенная в ней базисная переменная x 4 подлежит исключению из базиса .

Выделяем ведущий столбец и ведущую строку и на их пересечении находим ведущий элемент (= 4) .

Строим новую (третью) симплекс-таблицу, заменяя в ней базисную переменную x 4 на x 1 , и снова преобразуя строки таблицы таким образом, чтобы ведущий элемент стал равным единице, а остальные элементы ведущего столбца обратились в ноль. Для этого ведущую (вторую) строку делим на 4, а к первой строке прибавляем полученную вторую строку, деленную на 2. Последнюю строку вычисляем по формулам для симплексных оценок ? j "" = "", A j "" > - c j , где c Б "", A j "" - соответствующие столбцы новой симплекс-таблицы. Значение целевой функции на новом базисном плане находим по формуле f(x "")= "", x Б "" >.

Таблица 4 - Результат второй итерации

Базисн. перемен.

Значения базисных перем.

уравнения

p 1 ""= p 1 "+p 2 ""/2

p 2 "" = p 2 "/4

оценки ? j ""

f(x "")= 8

Новый базисный план x "" = (x 1 , x 2 , 0, 0) = (2, 3, 0, 0 ). Поскольку все оценки неотрицательны, то план x "" - оптимальный план.

Таким образом, x* = (2, 3, 0, 0 ), f(x*) = 8.

ЗАКЛЮЧЕНИЕ

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

математическая модель всегда беднее реальной экономической системы. Она описывает эту систему лишь приблизительно, выделяя одни свойства и пренебрегая другими. Для компенсации указанного недостатка в математической экономике разрабатывается несколько типов моделей, каждый из которых призван отразить какую-то одну определённую сторону экономической действительности с тем, чтобы при решении конкретной экономической задачи можно было подобрать такую модель, которая лучше всего к ней подходит.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Ашманов С.А. Линейное программирование. - М.: Наука, 1981.

Симплекс-метод


1. Идея симплекс-метода


Рассмотрим универсальный метод решения канонической задачи ЛП.



известный как симплекс-метод.

Как было установлено в главе 2, множество планов канонической задачи - выпуклое многогранное множество, имеющее конечное число угловых точек. И если эта задача имеет оптимальное решение, то оно достигается хотя бы в одной угловой точке.

С любой угловой точкой связан базисный план задачи, в котором переменных равны нулю, а оставшимся переменным соответствуют линейно независимые столбцы матрицы условий. Эти линейно независимые столбцы образуют невырожденную базисную матрицу.

Перебор всех угловых точек сопряжен с большими вычислительными затратами и поэтому не эффективен. В 1944 году Дж. Данциг предложил упорядоченную процедуру перебора угловых точек, при которой для нахождения оптимального решения достаточно исследовать лишь небольшую их часть. Эта процедура называется симплекс-методом.

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

Оказывается, геометрически такая замена приводит к переходу от одной угловой точки к смежной (соседней), связанной с предыдущей точкой общим ребром.

Из всех соседних точек выбирается та, в которой целевая функция возрастает более всего. Поскольку число угловых точек конечно, через конечное число переходов будет найдена вершина с наибольшим значением целевой функции, либо будет установлена неограниченность целевой функции на неограниченном множестве планов.

Общая схема симплекс-метода состоит из следующих основных шагов.

·0 шаг . Определение начального базиса и соответствующей ему начальной угловой точки (базисного плана) .

·1 шаг . Проверка текущего базисного плана на оптимальность. Если критерий оптимальности выполнен, то план оптимален и решение закончено. Иначе переход на шаг 2.

·2 шаг . Нахождение переменной, вводимой в состав базисных. (Из условия увеличения целевой функции).

·3 шаг . Нахождение переменной, исключаемой из состава базисных переменных (Из условия сохранения ограничений задачи).

·4 шаг . Нахождение координат нового базисного плана (смежной угловой точки). Переход на шаг 1.

Повторяющиеся шаги 1-4 образуют одну итерацию симплекс-метода.

Из этой схемы следует, что, во-первых, для начала работы симплекс-метода надо иметь какую-то угловую точку - начальный базисный план, а во-вторых, надо уметь исследовать текущую угловую точку на оптимальность, не вычисляя всех смежных вершин. Эти проблемы легко решаются, если каноническая задача ЛП имеет некий специальный вид.

Определение . Будем говорить, что каноническая задача ЛП имеет «предпочтительный вид», если

1.правые части уравнений, .

Матрица условий содержит единичную подматрицу размера


Другими словами, в любом уравнении есть переменная с коэффициентом равным единице, отсутствующая в остальных уравнениях. Условие 1 не является обременительным, так как в случае отрицательной правой части некоторого уравнения, достаточно умножить его на (-1). В задаче предпочтительного вида начальный базисный план находится очень просто.

Пример.

Матрица условий и вектор правых частей ограничений имеют вид



Сразу очевидна одна базисная матрица: с единичными векторами



Следовательно, - базисные переменные, а x2, x4 - небазисные. Полагая в системе уравнений x2=x4 =0, немедленно находим x1 =10, x3 =20, x5 =8. Видим, что значения базисных переменных равны правым частям ограничений. Из этого понятно требование положительности правых частей bi.

В дальнейшем, базисные переменные будем объединять в вектор x Б.

Таким образом, в канонической задаче предпочтительного вида в качестве начальной базисной матрицы берется единичная подматрица AБ =E, а соответствующие ей базисные переменные равны правым частям ограничений: xБ =b.


. Простейшая реализация симплекс-метода


Простейшая реализация симплекс-метода («простой С-метод») применяется к канонической задаче ЛП, имеющей «предпочтительный вид». Не умаляя общности, будем считать, что единичная подматрица содержится в первых m столбцах. Тогда каноническая задача запишется следующим образом


f(x) = c1x1 + c2x2 +… + cmxm + cm+1xm+1 +… + cnxn ??max(3.1)x1 + a1m+1 xm+1 + … + a1n xn = b1(3.2)x2 + a2m+1 xm+1 + … + a2n xn = b2………………………………………………………….xm + amm+1 xm+1 + … + amn xn = bmxj³ 0, j=1,2,…, n.(3.3)

Матрица условий

содержит единичную подматрицу размера m x m в первых m столбцах, следовательно AБ ={A1, A2,…, Am}=E.

Основные шаги симплекс-метода (теория)

Поскольку единичная базисная матрица находится в первых m столбцах матрицы условий, то первые m координат начального базисного плана являются базисными, а последние n - m координат являются небазисными, то есть равны нулю:

o = (x1, x2,…, xm, 0,…, 0).


Подставляя координаты точки xo в ограничения (3.2) и учитывая, чтоm+1 =… = xn = 0, получаем: x1 = b1, x2 = b2,…, xm = bm, то есть xoБ = b.

Значит начальный базисный план имеет вид:


xo = (b1,…, bm, 0,…, 0),


где сБ = (с1,…, сm) - вектор, составленный из коэффициентов целевой функции при базисных переменных.

1 шаг.

Из системы ограничений (3.2) выразим базисные переменные через небазисные:


x1= b1 - a1m+1xm+1 - … - a1nxn, x2 = b2 - a2m+1xm+1 - … - a2nxn, ………………………………………… xm = bm - amm+1xm+1 - … - amnxn,(3.4)

Подставим эти выражения в целевую функцию (3.1).


f (x) = c1 (b1 - a1m+1xm+1 - … - a1nxn) + c2 (b2 - a2m+1xm+1 - … - a2nxn) +

………………………………………………..

Cm (bm - amm+1xm+1 - … - amnxn) + cm+1xm+1 +… + cnxn.

Сгруппируем слагаемые при одинаковых небазисных переменных:


f (x) = - (c1 a1m+1 + c2 a2m+1 + … + cm amm+1 - cm+1).xm+1 - …-

- (c1 a1n + c2 a2n + … + cm amn - cn). xn.(3.5)

Заметим, что выражения в круглых скобках можно записать в виде


c1 a1m+1 + c2 a2m+1 + … + cm amm+1 - cm+1 = < cБ, Am+1 > - cm+1 = Dm+1,

…………………………………………………………………………………………………………………………1 a1n + c2 a2n + … + cm amn - cn = < cБ, An > - cn = Dn,


где сБ = (с1,…, сm) - вектор, составленный из коэффициентов целевой функции при базисных переменных, Am+1,…, An - столбцы матрицы условий А при небазисных переменных xm+1,…, xn.

Выражения


D j = < сБ, Aj > - cj, j = m+1,…, n,(3.6)

называются симплексными разностями или симплексными оценками базисного плана.

С учетом (3.6), формулу (3.5) для целевой функции можно переписать в виде



Эта формула позволяет получить признак оптимальности базисного плана. Если все симплексные оценки с небазисными номерами D j ³ 0, то текущий базисный план - оптимален.

Действительно, если хотя бы одна оценка, например, ?k строго отрицательна, то придавая соответствующей небазисной переменной xk положительное значение, а остальные небазисные переменные плана x полагая равными нулю, получим


f (x) = f (xo) - Dk xk = f (xo) + | D k | xk > f (xo),(3.7)

то есть в этом случае план xo может быть улучшен.

Легко проверить, что симплексные оценки, соответствующие единичным базисным столбцам всегда равны 0.

2 шаг . Нахождение переменной вводимой в состав базисных переменных.

Как следует из формулы (3.7), целевую функцию можно увеличить, если ввести в состав базисных переменных (сделать положительной) небазисную переменную xj, которой соответствует отрицательная оценка?j < 0. Если таких оценок несколько, то обычно в состав базисных вводят небазисную переменную хк с наибольшей по модулю отрицательной оценкой, то есть такую, для которой



где D j = < CБ, Aj > - cj, j = m+1,…, n (номера небазисных переменных).

Таким образом мы получим новый план


x1 = (x1,…, xm,0,…, xk,…, 0,…, 0).


Но х1 - небазисный план, так как число положительных координат равно m+1, число нулевых координат равно n - m -1.

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

3 шаг.

Подставим координаты точки х1 в условия (3.4) и учтем, что переменные xj должны быть неотрицательны


x1 = b1 - a1kxk³ 0 x2 = b2 - a2kxk³ 0 …………………………. xm = bm - amkxk³ 0(3.8)

Из формулы (3.7) видно, что чем больше величина хк > 0, тем больше возрастает целевая функция. Постараемся найти максимальное значение хк, не нарушая ограничений задачи и выполняя условия неотрицательности (3.8).

Неравенства (3.8) можно переписать в виде


A1kxk£ b1 a2kxk£ b2 ……………… amkxk £ bm(3.9)

При решении системы неравенств (3.9) возможны два случая:) среди коэффициентов при хк нет положительных: aik£ 0, i=1,2,…, m. Так как bi> 0, то неравенства (3.9) выполняются при любом сколь угодно большом значении хк. Это говорит о том, что целевая функция не ограничена на множестве планов (max f(x) ® ¥) и следовательно, решения задачи ЛП не существует.) среди коэффициентов при хк есть положительные aik > 0. Решая систему неравенств (3.9) получим:


хк £ bi /aik, для всех i, для которых aik > 0.(3.10)

Наибольшее значение хк, удовлетворяющее всем ограничениям (3.10), равно наименьшему из отношений в правых частях этих неравенств

хк = min {bi /aik} по всем i: aik > 0.


Пусть минимум достигается при i = r, то есть хк ? br /ark. Это означает, что базисная переменная хr в условиях (3.8) обращается в нуль.


хr = br - ark xk = br - ark (br /ark) = 0, 1 ??r ??m.


Переменная xr исключается из базиса. Следовательно, получили новый состав базисных и небазисных переменных, отличающийся от исходного одной базисной и одной небазисной координатой.

4 шаг.

Новый базисный план будет иметь вид

1 = (x1, x2,…, 0,…, xm, 0,…, хk,0,…, 0),


где на месте хr стоит ноль, а хк > 0.тому базисному плану соответствует новая базисная матрица:

Для нахождения координат новой угловой точки х1 каноническая задача ЛП приводится к новому предпочтительному виду, то есть к такой форме, чтобы матрица стала единичной (= E). Для этого столбец Аk нужно преобразовать к единичному представлению,


R-я строка,


в котором коэффициент = 1, а все остальные элементы =0, i ??r. Этого можно добиться с помощью элементарных операций над уравнениями системы. Решение заканчивается тогда, когда для некоторой точки все оценки Dj ³ 0.


3. Реализация симплекс-метода на примере


Продемонстрируем применение симплекс-метода на примере из главы 2.

Рассмотрим каноническую задачу ЛП


f(x) = x1+ 2x2 +0 x3 + 0 x4 max(3.11)-x1+ 2x2+ x3 = 4,(3.12)3 x1 +2x2 + x4 = 12,(3.13)xj ? 0, j = 1,2,3,4.(3.14)

Матрица условий A = (A1, A2, A3, A4), где



Целевой вектор c =(c1, c2, c3, c4)=(1, 2, 0, 0); вектор правых частей b=(b1, b2) = (4, 12).

0 шаг. Нахождение начальной угловой точки (базисного плана).

Задача имеет предпочтительный вид, так как правые части уравнений положительны, а столбцы матрицы условий A3, A4 образуют единичную подматрицу. Значит начальная базисная матрица = (A3, A4); x3 и x4 - базисные переменные, x1 и x2 - небазисные переменные, cБ = (c3, c4) = (0, 0).

Начальный базисный план имеет вид


x0 = (0, 0, x3, x4) = (0, 0, 4, 12); f(xo) = 0.


1 шаг. Проверка базисного плана на оптимальность.

Подсчитаем симплексные оценки для небазисных переменных по формуле (3.6)

D1 = < cБ, A1 > - c1 = 0 ·(-1) + 0 ·3 - 1 = -1.

D2 = < cБ, A2 > - c2 = 0 ·2 + 0 · 2 - 2 = -2.

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

2 шаг . Нахождение переменной вводимой в базис.

Целевую функцию можно увеличить, если ввести в состав базисных переменных (сделать положительной) одну из небазисных переменных x1 или x2, поскольку обе оценки Dj < 0. Обычно в состав базисных вводят небазисную переменную с наибольшей по модулю отрицательной оценкой, поэтому будем вводить в базис переменную x2.

3 шаг. Определение переменной выводимой из базиса.

После ввода в базис переменной x2 новый план будет иметь вид1 = (0, x2, x3, x4).

Этот план не является базисным, так как он содержит только одну нулевую координату, значит надо сделать нулевой (исключить из базиса) одну из переменных x3 или x4.

Подставим координаты плана x1 = (0, x2, x3, x4) в ограничения задачи. Получим



Выразим отсюда базисные переменные x3 и x4 через переменную x2, вводимую в базис.


x3 = 4 - 2x2,(3.15)x4 = 12 - 2x2.(3.16)

Так переменные x3 и x4 должны быть неотрицательны, получим систему неравенств


4 - 2x2 ³ 0,(3.17)12 - 2x2 ³ 0.(3.18)

Чем больше значение x2, тем больше возрастает целевая функция. Найдем максимальное значение новой базисной переменной, не нарушающее ограничения задачи, то есть удовлетворяющее условиям (3.17), (3.18).

Перепишем неравенства в виде

x2£ 4,

x2£12,

откуда максимальное значение x2 = min {4/2, 12/2} = 2. Подставляя это значение в выражения (3.15), (3.16) для x3 и x4, получаем x3 = 0. Следовательно x3 выводится из базиса.


4 шаг. Определение координат нового базисного плана.

Новый базисный план (смежная угловая точка) имеет вид


x1 = (0, x2, 0, x4).

Базис этой точки состоит из столбцов A2 и A4, так что = (A2, A4). Заметим, что этот базис не является единичным, так как вектор A2 = (2, 2), и следовательно задача (3.11) - (3.14) не имеет предпочтительного вида относительно нового базиса. Преобразуем условия задачи (3.12), (3.13) таким образом, чтобы она приняла предпочтительный вид относительно новых базисных переменных x2, x4, то есть чтобы переменная x2 входила в первое уравнение с коэффициентом, равным единице, и не присутствовала во втором уравнении. Перепишем уравнения задачи


x1+ 2x2+ x3 = 4, (p1)

x1 +2x2 + x4 = 12. (p2)


Поделим первое уравнение на коэффициент при x2. Получим новое уравнение = p1 / 2, эквивалентное исходному


1/2 x1+ x2+ 1/2 x3 = 2. ()


Используем это уравнение, которое назовем разрешающим, для исключения переменной x2 из второго уравнения. Для этого надо уравнение умножить на 2 и вычесть из p2. Получим уравнение = p2 - 2 = p2 - p1.


x1 - x3 + x4 = 8. ()


В итоге получили новое «предпочтительное» представление исходной задачи (3.11) - (3.14) относительно новых базисных переменных x2, x4:


f(x) = x1+ 2x2 + 0 x3 + 0 x4® max

1/2 x1+ x2+ 1/2 x3 = 2. ()

x1 - x3 + x4 = 8. ()

xj ³ 0, j = 1,2,3,4.


Подставляя сюда представление нового базисного плана x1 = (0, x2,0, x4), сразу найдем его координаты, так как значения базисных переменных равны правым частям уравнений


x1 = (0,2,0,8); f(x1)=4.


На этом завершается первая итерация простого симплекс-метода. Далее процесс решения задачи продолжается с шага 1, состоящем в проверке найденного плана на оптимальность. Решение заканчивается тогда, когда все симплексные оценки текущего базисного плана окажутся неотрицательными.

Мы не будем проводить вторую итерацию по схеме первой, поскольку все вычисления симплекс-метода удобнее проводить в табличном виде.

симплекс переменная канонический программирование

Литература


1. Эконометрика: Учебник / Под ред. И.И. Елисеевой. - М.: Финансы и статистика, 2002. - 344 с.: ил.

Практикум по эконометрике: Учеб. пособие / И.И. Елисеева, С.В. Курышева, Н.М. Гордеенко и др.; Под ред. И.И. Елисеевой. - М.: Финансы и статистика, 2002. - 192 с.: ил.

Кремер Н.Ш., Путко Б.А. Эконометрика: Учебник для вузов. - М.: ЮНИТИ-ДАНА, 2002. - 311 с.

Магнус Я.Р., Катышев П.К., Пересецкий А.А. Эконометрика. Начальный курс: учебник. - М.: Дело, 2001. - 400 с.

Катышев П.К., Магнус Я.Р., Пересецкий А.А. Сборник задач к начальному курсу эконометрики. - 3-е изд., испр. - М.: Дело, 2003. - 208 с.

Доугерти К. Введение в эконометрику. - М.: Финансы и статистика, 1999.

Джонстон Дж. Эконометрические методы. - М.: Статистика, 1980.

Кейн Э. Экономическая статистика и эконометрия. Введение в количественный экономический анализ. Вып. 1. - М.: Статистика, 1977.

Ланге О. Введение в эконометрику / Пер. с польск. - М.: Прогресс, 1964.

Лизер С. Эконометрические методы и задачи. - М.: Статистика, 1971.

Маленво Э. Статистические методы эконометрии. - М.: Статистика, 1976.

Тинтнер Г. Введение в эконометрию. - М.: Финансы и статистика, 1965.

Айвазян С.А., Мхитарян В.С. Прикладная статистика и основы эконометрики: учебник для вузов. - М.: ЮНИТИ, 1998.

Вентцель Е.С. Теория вероятностей: Учебник для вузов. - 6-е изд. - М.: Высш. шк., 1999.


Универсальный метод решения задач ЛП называется симплекс-методом. Применение этого метода и его наиболее часто встречающейся модификации - двухфазного симплекс-метода мы поясним на примерах.
Пример . Решить следующую задачу ЛП в канонической форме симплекс-методом. (5.5) (5.6)
x i ≥ 0, i = 1,…,6 (5.7)
Говорят, что задача ЛП имеет каноническую форму, если все ограничения (кроме условий неотрицательности переменных) имеют вид равенств, а все свободные члены неотрицательны. Так что мы имеем задачу в канонической форме.
Идея симплекс-метода заключается в следующем. Сначала нужно найти некоторую (начальную) вершину многогранника допустимых решений (начальное допустимое базисное решение). Затем нужно проверить это решение на оптимальность. Если оно оптимально, то решение найдено; если нет, то перейти к другой вершине многогранника и вновь проверить на оптимальность. Ввиду конечности вершин многогранника (следствие конечности ограничений задачи ЛП) за конечное число "шагов" мы найдем искомую точку минимума или максимума. Надо заметить, что при переходе от одной вершины к другой значение целевой функции убывает (в задаче на минимум) или возрастает (в задаче на максимум).
Таким образом, идея симплекс-метода основывается на трех свойствах задачи ЛП.
Решение. Чтобы найти начальное допустимое базисное решение, т.е. чтобы определить базисные переменные, систему (5.6) нужно привести к "диагональному" виду. Применяя метод Гаусса (метод последовательного исключения неизвестных), получаем из (5.6): (5.8)
Следовательно, базисными являются переменные x 2 , x 4 , x 5 , x 6 , им придаем значения, равные свободным членам соответствующих строк: x 2 =40, x 4 =20, x 5 =10, x 6 =30, . Переменные x 1 и x 3 являются небазисными: x 1 =0, x 3 =0 .
Построим начальное допустимое базисное решение
x 0 = (0,40,0,20,10,30) (5.9)
Для проверки на оптимальность найденного решения x 0 нужно из целевой функции исключить базисные переменные (с помощью системы (5.8)) и построить специальную симплекс таблицу.
После исключения переменных целевую функцию удобно записать в виде:
f(x) = -7x 1 – 14x 3 +880 (5.10)
Теперь при помощи (5.8) –(5.10) составляем начальную симплекс-таблицу:

В нулевую строчку записаны коэффициенты с обратным знаком соответствующих переменных при целевой функции. Критерий оптимальности (для задачи на поиск минимума): допустимое базисное решение(x 0 ) оптимально, если в нулевой строчке нет ни одного строго положительного числа (не считая значения целевой функции (880)). Это правило распространяется и на следующие итерации (таблицы). Элементы нулевой строки будем называть оценками столбцов.
Так что начальное допустимое базисное решение (5.9) неоптимально: 7>0, 14>0 .
В нулевом столбике записаны значения базисных переменных. Они обязательно должны быть неотрицательными (см. уравнение (5.7)). От первой по четвертую строки написаны коэффициенты переменных из системы (5.8).
Так как x 0 неоптимально, то надо перейти к другой вершине многогранника допустимых решений (построить новое д.б.р.). Для этого нужно найти ведущий элемент и провести определенное преобразование (симплексное преобразование).
Сначала находим ведущий элемент таблицы, который стоит в пересечении ведущего столбика (столбец с наибольшей положительной оценкой) и ведущей строки (строки, соответствующей минимальному соотношению элементов нулевого столбика к соответствующим элементам (строго положительным) ведущего столбика).
В таблице 1 ведущий столбик - третий столбик, и ведущая строка - четвертая строка (min{40/1,30/1}=30/1) обозначены стрелками, а ведущий элемент - кружочком. Ведущий элемент показывает, что базисную переменную x 6 нужно заменить на небазисную x 3 . Тогда новыми базисными переменными будут x 2 , x 3 , x 4 , x 5 , , а небазисными -x 1 , x 6 , . Это и означает переход к новой вершине многогранника допустимых решений. Чтобы найти значения координат нового допустимого базисного решения x 00 нужно строить новую симплекс-таблицу и провести в ней элементарные преобразования:
а) все элементы ведущей строки поделить на ведущий элемент, превратив этим самым ведущий элемент в 1 (для простоты выкладок);
б) с помощью ведущего элемента (равного 1) все элементы ведущего столбика превратить в нули (аналогично методу исключения неизвестных);
В результате в нулевом столбце получены значения новых базисных переменных x 2 , x 3 , x 4 , x 5 , (см. таблицу 2) - базисные компоненты новой вершины x 00 (небазисные компоненты x 1 =0, x 6 =0, ).

Как показывает таблица 2, новое базисное решение x 00 =(0,10,30,20,40,0) неоптимально (в нулевой строке есть неотрицательная оценка 7). Поэтому с ведущим элементом 1 (см. таблицу 2) строим новую симплекс-таблицу, т.е. строим новое допустимое базисное решение

Таблице 3 соответствует допустимое базисное решение x 000 =(10,0,30,10,50,0) и оно оптимально, т.к. в нулевой строчке нет положительных оценок. Поэтому f(x 000)=390 есть минимальное значение целевой функции.
Ответ: x 000 =(10, 0, 30, 10, 50, 0) - точка минимума, f(x 000)=390 .

Идея симплекс– метода

Симплекс– метод

В предыдущем разделе было показано, что если задача линейного программирования имеет оптимальное решение, то одним из оптимальных решений является допустимое базисное решение ее системы ограничений, которое соответствует некоторой угловой точке многогранника допустимых решений системы. Было показано, как с помощью конечного перебора базисных решений системы ограничений задачи, найти это оптимальное решение. Однако с ростом размерности n системы ограничений задачи объем вычислений решения задачи методом полного перебора базисных решений растет экспоненциально и становится непригодным на практике. Можно организовать перебор только допустимых базисных решений и число перебираемых решений резко сократить, если каждое следующее допустимое базисное решение выбирать так, чтобы соответствующее значение целевой функции улучшалось или хотя бы не ухудшалось. Такой подход позволяет сократить число шагов при отыскании оптимального базисного решения. Эту идею поясним графически.

Пусть многоугольник ABCDEFGH изображает множество допустимых решений ЗЛП с двумя переменными, а вектор градиент целевой функции.

Нужно найти точку этого многоугольника, в которой целевая функция принимает наименьшее значение. Пусть определено начальное допустимое базисное решение задачи, соответствующее угловой точке B. При полном переборе всех допустимых базисных решений придется исследовать восемь таких решений, соответствующих восьми угловым точкам многоугольника. Однако из рисунка видно, что, учитывая направление градиента , выгоднее перейти к соседней вершине C, затем к соседней вершине D, которой соответствует оптимальное базисное решение задачи. Таким образом, вместо восьми решений придется перебрать только три допустимых базисных решения.

Идея последовательного улучшения решения и положена в основу универсального метода решения задач линейного программирования симплекс–метода.

Геометрический смысл симплекс–метода состоит в том, что выполняется последовательный переход от одной вершины многогранника допустимых решений задачи к соседней, в которой целевая функция принимает значение не худшее, чем в предыдущей вершине. Этот переход продолжается до тех пор, пока не будет найдено оптимальное решение или не будет обнаружено, что задача его не имеет.

Впервые симплекс–метод и его название были предложены американским математиком Джоном Данцигом в 1947 году, хотя идеи метода были опубликованы российским математиком Л.В. Канторовичем еще в 1939 году в статье «Математические методы организации и планирования производства».

Симплекс–метод состоит из трех основных элементов.

Симплекс-метод заключается в нахождении и тестировании вершины (угла), являющейся решением задачи ЛП . На каждом этапе метод выделяет вершину и соответствующие ей переменные, которые обеспечивают движение к минимуму (максимуму) с наибольшей скоростью. Выбранная переменная заменяет другую, наиболее ограничивающую. Симплекс-метод позволяет также определить, существует ли решение. Реализующий симплекс-метод алгоритм можно записать в виде:

Шаг 1. Определяется некоторая вершина в ОДР, соответствующая базисным допустимым решениям (переменным), найденным путем выделения из матрицы т - линейно независимых столбцов и приравнивания нулю всех других переменных, соответствующих другим столбцам матрицы.

Шаг 2. Выбирается из всех возможных оставшихся п - т ребер, соответствующих небазисным переменным, ребро (переменная), которое приводит при движении по нему к наискорейшему уменьшению целевой функции.

Шаг 3. Осуществляется как бы движение от начальной вершины вдоль выбранного ребра к другой вершине, которая дает новое решение, имеющее меньшее значение ЦФ. Новая вершина образуется путем замены базисной переменной (ребра) на новую базисную переменную (ребро).

Столбцы и элементы векторов обычно упорядочиваются и записываются в виде симплекс-таблицы, образование которой будет показано ниже.

Симплекс-метод решает задачу Л П в стандартной форме.

Минимизировать (максимизировать) функцию при условиях х > 0; Ах = Ь.

Матрица А действительная, имеет размерность т х «и ранг т.

Сформулированную задачу ЛП можно также записать в виде

Исходя из записи задачи ЛП в виде (8Л) можно сказать, что расширенная матрица

размерности (т + 1) (п + 2) соответствует решениям[х/] т.

Представим матрицу А в виде совокупности столбцов

Так как матрица А имеет ранг т, то найдутся т линейно независимых столбцов матрицы А, например {а У1 ,...,а У/и Рассмотрим вектор х° > 0, такой, что все его п - т элементов равны 0 и Ах° = Ь. Пусть это будут элементы с номерами... , i n _ m . Предположим также, что место расположения aw линейно независимых столбцов матрицы А соответствует месту расположения ненулевых элементов векторах 0 . Геометрически, согласно утверждению 3 § 7.6, это означает, что х° является вершиной (углом) ОДР и, кроме того, удовлетворяет заданным условиям. Такое решение называется допустимым базисным решением. Углы допустимого множества являются допустимыми базисными решениями.

Напомним, что множество базисных решений содержит всю информацию, необходимую для оптимального решения задачи ЛП. Для рассмотренного в § 7.6 двумерного случая базисными решениями являются все 6 точек, а допустимыми базисными решениями являются точки Л, В, Си 0.

Таким образом, любой аналогичный х° вектор х можно записать как

где х в - вектор, элементы которого сответствуют линейно независимым столбцам матрицы A; x F - вектор с нулевыми элементами.

Аналогично определим векторы

Переменные, являющиеся элементами вектора х в, называются базисными переменными, а переменные, являющиеся элементами вектора x F , называются свободными (небазисными) переменными.

Так как x° F =0, то значение целевой функции для начального вектора х° будет равно

где/° - значение /в точке х°.

Решение (8.1) вида [х°/°] т при х > 0 называется очевидным {явным) решением. Таким образом, если приравнять нулю небазисные переменные, получается очевидное решение.

Для удобства переставим т линейно независимых столбцов матрицы А в левую часть и запишем матрицу в виде

Здесь матрица В соответствует т линейно независимым столбцам имеет размерность тх т и ранг т, а матрица F

является тх (п - т) матрицей. Так как матрица В состоит из линейно независимых столбцов, то она имеет обратную В -1 и detB ф 0. Отметим, что для образования матрицы В можно выбрать любые т линейно независимых столбцов матрицы А.

Представим задачу (8.1) с учетом введенных обозначений

Данному представлению соответствует расширенная матрица Предположим, что

откуда следует

Если вектор х в будет решением системы Вх й =Ь, то он будет базисным решением. Если выполняется неравенство в = В -1 Ь > О, тогда х в будет допустимым решением.

Таким образом, текущее решение удовлетворяет следующему уравнению:

Рассмотрим матрицу (8.4). Базисные переменные будут представлены в явном виде, если заменить матрицу В единичной матрицей I. Умножив первую строку матрицы (8.4) слева на В~ 1 , получим

где В _1 Ь > О, т.е. т верхних элементов в правом столбце неотрицательны и представляют собой текущее значение переменных.

В левой стороне верхней строки получилась единичная матрица: В -1 В = I. Данное представление очень удобно, так как при умножении на вектор х в каждая переменная будет находиться в отдельной строке.

Таким образом, базисное решение, которое будем считать допустимым и соответствующим базису В, есть х т = [х в 0], где х в = = В _1 Ь. Базисное решение является результатом предположения, что x F = 0. Однако, если x F * 0, то х^может быть вычислено какх 5 = = B~"b - B^"Fx/r. Подставив это выражение в целевую функцию (функцию стоимости), получим

Так как необходимо определить зависимость стоимости от небазисных переменных, одну из которых затем включить в базисные, то нижняя строка под матрицей I должна быть нулевой. Для этого в (8.7) умножим первую строку (матрицы) на с в и сложим со второй

где - значение целевой функции для начального век

тора х 0 из (8.3).

Матрица (8.8) называется симплекс-таблицей. Приведение ее к данному виду является начальным этапом симплекс-алгоритма. В процессе выполнения алгоритма осуществляется переход от одной таблицы к другой, пока нижний правый элемент таблицы не станет максимальным или минимальным.

С использованием симплекс-таблицы легко увидеть допустимое решение. Переменные x F соответствуют нулевой подматрице, переменные х в - единичной матрице:

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

Тогда - решение задачи (8.1). Так

как b > О, это решение базисное допустимое.

Представим матрицу (8.9) в более удобном виде, сохранив основные обозначения:

Рассмотрим отдельно задачи максимизации и минимизации.