Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


П. 2. Математические основы симплексного метода



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

Z = C X ® max,

A1 x1 + A2 x2 + … + An xn = A0, (4.1)

где С = (С1, С2, …, Сn), Х = (х1, х2, …, хn), Aj = (a1j, a2j, …, anj), A0 = (b1, b2, …, bm).

Предположим, что согласно правилу, сформулированному в § 2, найдено некоторое первоначальное решение задачи ЛП

.

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

Условие (4.1) можно переписать следующим образом:

,

где , , …, – линейно независимые единичные векторы m-мерного векторного пространства. Они образуют базис данного пространства.

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

, (4.2)

(k = m + 1, …, n). (4.3)

Каждому из векторов можно поставить в соответствие значение

, (4.4)

(k = m + 1, …, n). (4.5)

Сформулируем главное утверждение данного раздела.

Теорема 4.1. (Теорема об оптимальности плана) Если для некоторого вектора выполняется условие , то план не является оптимальным и можно построить такой план Х*, для которого выполняется условие Z(X*) > Z(X0).

Доказательство. Зададим некоторое число q > 0. Умножим уравнение (4.3) на q и вычтем из уравнения (4.2). Получим

. (4.6)

Поскольку значения положительны, то всегда можно подобрать такие значения q, чтобы координаты ( ) (i = 1, …, m) были неотрицательны. (Точнее все значения, кроме одного, будут положительны. Одно значение будет равно нулю, и соответствующий ему вектор выйдет из базиса.) Выражение (4.6) представляет собой разложение вектора А0 по новому базису. Таким образом, получен новый опорный план

.

Значение целевой функции, соответствующей новому опорному плану, найдем по формуле

.

Для того, чтобы выяснить, как изменилась целевая функция, проведем следующие преобразования:

По предположению . Значит

Z(X*) > Z(X0),

Что и требовалось доказать.

Из результатов теоремы 4.1 несложно получить утверждение.

Следствие 4.1. Если для некоторого плана Х разложение всех векторов Ak (k = 1, …, n) в данном базисе удовлетворяют условию

Zk – Ck ³ 0,

то план Х является оптимальным.

Действительно, как было показано при доказательстве теоремы 4.1 при изменении базиса в задаче ЛП, целевая функция изменяется на величину – q(Zk – Ck). Следовательно, при неотрицательных Zk – Ck план Х улучшить нельзя.

Теорема 4.2. Пусть для задачи ЛП

Z = C X ® min,

A1 x1 + A2 x2 + … + An xn = A0, xi ³ 0 (i = 1, …, n),

Найден некоторый первоначальный план Х0( ), тогда, если для некоторого вектора выполняется условие Zk – Ck > 0, то план не является оптимальным. Можно построить такой план Х*, для которого будет выполняться условие Z(X*) < Z(X0).

Следствие 4.2. Если для некоторого плана Х разложения всех векторов Ak (k = 1, …, n) в данном базисе удовлетворяют условию

Zk – Ck £ 0,

то план Х является оптимальным.

Доказательство данных утверждений рекомендуется провести самостоятельно.

Приведенные теоремы и их сведения составляют теоретическую основу симплексного метода. С их помощью можно сформировать три основных этапа симплексного метода.

1. находится любое опорное решение (базис m-мерного пространства) системы уравнений, соответствующих ограничениям задачи ЛП.

2. Для того, чтобы проверить полученный план на оптимальность, необходимо для каждого вектора Aj определить значение Zj – Cj. В дальнейшем значение Zj – Cj будем называть оценкой вектора Aj. Если в задаче на максимум среди оценок есть отрицательные, то данный опорный план не оптимальный. В задаче на минимум на оптимальность плана указывают положительные оценки.

3. В случае, если план не оптимальный, согласно результатам теоремы 4.1 и теоремы 4.2, нужно ввести в базис вектор Aj, оценка которого нас не устраивает. При этом целевая функция улучшится на величину |q(Zi – Ci)|. То есть она увеличится в задаче на максимум или уменьшится в задаче на минимум. Если имеется несколько векторов с «плохими» оценками, то для введения в базис выбирается тот, для которого соответствующее значение |q(Zi – Ci)| наибольшее.

 

П. 3. Примеры

Рассмотрим работу симплексного метода на примерах.

П р и м е р 4.1. Найти максимальное значение целевой функции

Z = - 2х1 + 10х2 + 8х3 – 12х4

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

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

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

Составим симплексную таблицу.

 

Таблица 4.1.

Базис Сбазиса А0 С1=-2 С2=10 С3=8 С4=-12 С5=0 С6=0 С7=0
А1 А2 А3 А4 А5 А6 А7
А5 -4 -5
А6 -1
А7 -2
Zj – Cj –10 -8

 

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

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

Векторы в базис должны записываться в определенном порядке. Каждый вектор находится в той же строке, что единица в единичном столбике этого вектора. Например, вектор А6 базисный. Он записывается во второй строке, поскольку единица в столбце А6 находится во второй строке.

Во втором столбце записывается для базисного вектора Aj соответствующее значение Cj из целевой функции.

Третий столбец А0 – это столбец свободных членов.

Последующие столбцы – это координаты векторов Aj (j = 1, 2, …, 7).

Над столбцами А1, …, А7 подставлены для удобства С1, …, С7. В строке Zj – Cj происходит оценка плана на оптимальность. С ее помощью выбирается очередной вектор для введения в базис.

Итак, начнем решение задачи. В данном случае векторы А5, А6, А7 добавленных переменных х5, х6, х7 образуют базис трехмерного векторного пространства. Таким образом первоначальный опорный план Х(х1 = 0, х2 = 0,
х3 = 0, х4 = 0, х5 = 1, х6 = 3, х7 = 2) получился, можно сказать, автоматически.

Проверим его на оптимальность. Для этого нужно заполнить строку
Zj – Cj, используя формулы

Z(X0) = Сб А0,

Zj – Cj = Сб Аj – Cj,

где Сб – вектор, составленный из коэффициентов целевой функции векторов, находящихся в базисе. В нашем случае Сб5 = 0, С6 = 0, С7 = 0). Сб А0 и
Сб Аj – скалярные произведения соответствующих векторов.

Получим:

Z0 = 0× 1 + 0× 3 + 0× 2 = 0 (записываем значение в ячейку (Zj – Cj; А0)),

Z1 – С1 = 0× 2 + 0× 5 + 0× 4 – (–2) = 2 (записываем значение в ячейку
(Zj – Cj; А1))

Z2 – С2 = 0× 3 + 0× 6 + 0× 1 – 10 = –10 и т.д.,

.........

Z7 – С7 = 0× 0 + 0× 0 + 0× 1 – 0 = 0.

Обратите внимание, что в строке Zj – Cj базисным векторам обязаны соответствовать нулевые оценки. Если это не так, ищите ошибку. Вы неправильно заполнили столбцы «Базис» и «Сбазиса».

Первоначальный опорный план не является оптимальным, поскольку оценки векторов А2 и А3 отрицательны. Согласно теореме 4.1, чтобы улучшить план нужно ввести в базис вектора, имеющие отрицательные оценки. В данной задаче таких векторов два. Из них нужно выбрать один, который при введении в базис дает наибольшую прибыль.

Рассмотрим вектор А2 = . Найдем отношения координат вектора А0 к соответствующим координатам вектора А2 и выберем из соотношений наименьшее.

.

Найдем прибыль, которая будет получена от введения вектора А2 в базис

.

Рассмотрим вектор А3. Проведем для него аналогичные вычисления.

(две оставшихся координаты вектора отрицательны).

.

Поскольку Z3 > Z2, то введение в базис вектора А3 принесет большую выгоду. Таким образом, на следующем шаге решения в базис вводится вектор А3, причем разрешающим элементом является координата 1 (она выделена в таблице). Заметим, что в той же строке, где находится разрешающий элемент, стоит единица базисного вектора А6. Именно этому вектору суждено «проститься» с базисом. Составим вторую симплексную таблицу.

Таблица 4.2.

Базис Сбазиса А0 С1=-2 С2=10 С3=8 С4=-12 С5=0 С6=0 С7=0
А1 А2 А3 А4 А5 А6 А7
А5 -9
А3 -1
А7
Zj – Cj

 

При составлении таблицы 4.2 были проведены следующие преобразования.

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

2. К первой строке прибавляется вторая, умноженная на четыре (I+ 4II).

3. К третьей строке прибавляется вторая, умноженная на два (III + 2II).

Оценим план Х21 = 0, х2 = 0, х3 = 3, х4 = 0, х5 = 13, х6 = 0, х7 = 8) на оптимальность.

Z1 – С1 = 8× 5 – (–2) = 42;

Z2 – С2 = 8× 6 – 10 = 38;

..........

Z7 – С7 = 0.

Поскольку среди полученных оценок нет отрицательных, то план Х2 является оптимальным. Максимальное значение целевой функции находится в клетке (Zj – Cj; A0), т.е. max Z = 24.

Заметим, что при итерации мы получим прибыль 24, на которую и рассчитывали. Если при решении задачи рассчитанное при выборе разрешающего элемента значение Δ Z не совпадает с полученным в таблице, вы ошиблись в расчетах.

П р и м е р 4.2. Минимизировать функцию

Z = 66х1 + 37х2 + 70х3

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

Решение. Приведем задачу к каноническому виду

Z = 66х1 + 37х2 + 70х3 + 0х4 +0х5,

Составим симплексную таблицу

Таблица 4.3.

Базис Сбазиса А0 С1=66 С2=37 С3=70 С4=0 С5=0  
А1 А2 А3 А4 А5  
- - - - -1 -1  
А1 - - 1/2 9/2 1/3 1/6 27/2 -1/12 1/4 -1 I: 12 II – 3I
А1 А2 1/5 9/10 -11/15 27/10 -1/10 1/20 1/5 -1/5 I – 1/3 II II: 5
Zj – Cj 46, 5 -18, 5 -5, 75 -3  

 

Дадим необходимые пояснения.

Во-первых, в отличие от примера 4.1 в данном случае первоначального опорного плане не было. Поэтому надо получить первоначальный опорный план. Векторы выбирались наугад, поскольку не было возможности оценить выгоду от введения того или иного вектора в базис. Случайно для базиса А1, А2 не оказалось положительных оценок, т.е. план Х(х1 = 0, 2, х2 = 0, 9, х3 = 0, х4 = 0, х5 = 0) является оптимальным. Соответствующее значение целевой функции

Zmin = 66 × 0, 2 + 37 × 0, 9 = 46, 5.

 


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 581; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.044 с.)
Главная | Случайная страница | Обратная связь