Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
П. 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.
Поясним устройство симплексной таблицы. Первый столбец таблицы содержит наименование векторов, которые на данной итерации являются базисными. Векторы в базис должны записываться в определенном порядке. Каждый вектор находится в той же строке, что единица в единичном столбике этого вектора. Например, вектор А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, Проверим его на оптимальность. Для этого нужно заполнить строку Z(X0) = Сб А0, Zj – Cj = Сб Аj – Cj, где Сб – вектор, составленный из коэффициентов целевой функции векторов, находящихся в базисе. В нашем случае Сб(С5 = 0, С6 = 0, С7 = 0). Сб А0 и Получим: Z0 = 0× 1 + 0× 3 + 0× 2 = 0 (записываем значение в ячейку (Zj – Cj; А0)), Z1 – С1 = 0× 2 + 0× 5 + 0× 4 – (–2) = 2 (записываем значение в ячейку 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.
При составлении таблицы 4.2 были проведены следующие преобразования. 1. Вторая строка осталась неизменной, поскольку разрешающий элемент равен единице, что и требуется. 2. К первой строке прибавляется вторая, умноженная на четыре (I+ 4II). 3. К третьей строке прибавляется вторая, умноженная на два (III + 2II). Оценим план Х2(х1 = 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.
Дадим необходимые пояснения. Во-первых, в отличие от примера 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; Просмотров: 608; Нарушение авторского права страницы