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

3.1. Описание

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

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

Уравнение W(x) = c, где W(x) – максимизируемый (или минимизируемый) линейный функционал, порождает гиперплоскость L(c). Зависимость от c порождает семейство параллельных гиперплоскостей. При этом экстремальная задача приобретает следующую формулировку: требуется найти такое наибольшее c, что гиперплоскость L(c) пересекает многогранник хотя бы в одной точке. Заметим, что пересечение оптимальной гиперплоскости и многогранника будет содержать хотя бы одну вершину, причем их будет более одной, если пересечение содержит ребро или k-мерную грань. Поэтому максимум функционала можно искать в вершинах многогранника. Принцип симплекс-метода состоит в том, что выбирается одна из вершин многогранника, после чего начинается движение по его рёбрам от вершины к вершине в сторону увеличения значения функционала. Когда переход по ребру из текущей вершины в другую вершину с более высоким значением функционала невозможен, считается, что оптимальное значение c найдено.

Сущность симплекс-метода состоит в том, что если число неизвестных больше числа уравнений, то данная система неопределенная с бесчисленным множеством решений. Для решения системы все неизвестные произвольно подразделяются на базисные и свободные. Число базисных переменных определяется числом линейно-независимых уравнений. Остальные неизвестные свободные. Им придаются произвольные значения и затем подставляются в систему. Любому набору свободных неизвестных можно придать бесчисленное множество произвольных значений, которые дадут бесчисленное множество решений. Если все свободные неизвестные приравнять к нулю, то решение будет состоять из значений базисных неизвестных. Такое решение называется базисным.

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

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

1. нахождение исходной вершины множества допустимых решений;

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

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

двухфазный .

3.2. Алгоритм симплекс-метода

Усиленная постановка задачи

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

Теперь поставим эту задачу в эквивалентной усиленной форме. Необходимо максимизировать Z, где:

Здесь x – переменные из исходного линейного функционала; x s – новые переменные, дополняющие старые таким образом, что неравенство переходит в равенство; c – коэффициенты исходного линейного функционала; Z – переменная, которую необходимо максимизировать. Полупространства и в пересечении образуют многогранник, представляющий множество допустимых решений. Разница между числом переменных и уравнений даёт число степеней свободы. Проще говоря, если рассматривать вершину многогранника, это есть число рёбер, по которым можно продолжать движение.

Тогда можно присвоить такому числу переменных значение 0 и назвать

Рассмотрим метод решения задачи ЦП, использующий идеи симплексного метода. Основная особенность задач ЦП заключается в конструкции целевой функции и в переменных, которые показывают отклонения от желаемого уровня достижения целей. Если учесть эти особенности, то для решения таких задач может быть применён обычный симплексный метод. Проиллюстрируем это на рассмотренном ранее примере. Алгоритм в некоторой степени упрощается из-за того, что исходное базисное решение здесь очевидно. Роль базисных переменных для начального плана здесь играют отрицательные отклонения «d », которые включены в модель с коэффициентами +1. Сложнее со строкой для коэффициентов целевой функции, т.е. с оценочной строкой. Как мы знаем, коэффициентами для отклонений в целевой функции задачи ЦП служат веса, ранжирующие цели по приоритетам. Их численные значения, как правило, не определены. Важно, чтобы коэффициент при отклонении для целевого ограничения с более высоким приоритетом был бы значимо больше коэффициента при отклонении от цели с более низким приоритетом. Поэтому для удобства расчетов оценочная строка разбивается на несколько строк (по числу приоритетов), и вычисления ведутся по каждой строке в отдельности.

Итак, пусть решается задача min Z = P 1 d 1 - + P 2 d 2 - + P 3 d 3 + + P 4 d 4 - ,

при условии, что

7x 1 + 6x 2 + d 1 - – d 1 + = 30;

2x 1 + 3x 2 + d 2 - – d 2 + = 12;

6x 1 + 5x 2 + d 3 - – d 3 + = 30;

x 2 + d 4 - – d 4 + = 7;

x 1 , x 2 , d i - , d i + ³ 0 (i = ).

Составим исходную симплексную таблицу (таблица 5.1.)

Таблица 5.1 – Исходная симплексная таблица

C j C B Базис Реше-ние 0 x 1 0 x 2 P 1 d 1 - P 2 d 2 - d 3 - P 4 d 4 - d 1 + d 2 + P 3 d 3 + d 4 + q
P 1 P 2 P 4 d 1 - d 2 - d 3 - d 4 - 7 -1 -1 -1 -1 30/7 30/6 -
Z j – С j P 4 P 3 P 2 P 1 -1 -1 -1 -1

Как известно, элементы оценочной строки (Z j – C j) рассчитываются по правилу: «от суммы произведений элементов столбца «С в » на элементы соответствующего столбца отнимается элемент верхней строки». Например, для столбца «решение» элемент «Z j – C j » равен: Р 1 *30 + Р 2 *12 + 0* 30 + р 4 *7 – 0 = 30Р 1 + 12Р 2 + 7Р 4 и коэффициенты при соответствующих P i (i = ) выписаны в этом столбце в блоке «Z j – C j » (читать снизу вверх). Для столбца «х 1 »: Р 1 *7 + Р 2 *2 + 0 * 6 + Р 4 *0 – 0 = 7Р 1 + 2Р 2 , а это и есть коэффициенты при Р 1 и Р 2 в блоке «Z j – C j » и т.д.

Поскольку задача ЦП всегда решается на минимум, то решение будет оптимальным, если все элементы оценочной строки будут не положительны. В нашем случае две оценки (в столбцах «х 1 » и «х 2 ») положительны, следовательно, план не оптимальный. Для определения переменной, входящей в базис, на первой итерации определяем наибольшую положительную оценку. Определяется она по знаку коэффициента при Р 1 , т.к. P 1 >> P 2 >> P 3 >> P 4 . При равных коэффициентах при Р 1 , «поднимаемся» на строку выше и выбираем наибольший коэффициент там. В случае полного равенства по всем строкам – выбирается любой из них. В нашем случае разрешающим столбцом будет столбец «х 1 » (т.к. 7 > 6). Разрешающая строка выбирается так же как и в симплексном методе – по наименьшему симплексному отношению q (элементы столбца «решение» делим на положительные элементы разрешающего столбца). В таблице 5.1 наименьшее отношение q находится в первой строке. Итак, на следующей итерации в базис вводится переменная «х 1 », выводится «d 1 - ». Пересчитываем таблицу как в обычном симплекс-методе (таблица 5.2.)

Таблица 5.2 – Вторая симплексная таблица

C j C B Базис Решение x 1 x 2 P 1 d 1 - P 2 d 2 - d 3 - P 4 d 4 - d 1 + d 2 + P 3 d 3 + d 4 + q
P 2 P 4 x 1 d 2 - d 3 - d 4 - 30/7 24/7 30/7 6/7 9/7 1/7 1/7 2/7 6/7 1/7 2/7 6/7 -1 -1 -1 30/6 24/9 -
Z j – C j P 4 P 3 P 2 P 1 24/7 9/7 2/7 -1 2/7 -1 -1 -1

Как видим, на второй итерации из базиса выводится d 2 - , в базис вводится х 2 . И т.д., пока не получим оптимальное решение. После 4-й итерации получим таблицу 5.3.

Таблица 5.3 – Итоговая симплексная таблица

C j C B Базис Реше-ние x 1 x 2 P 1 d 1 - P 2 d 2 - d 3 - P 4 d 4 - d 1 + d 2 + P 3 d 3 + d 4 +
P 4 d 2 + x 2 d 1 + d 4 - 1,6 1,2 0,2 -1,2 -1 -1 0,6 0,2 1,2 -0,2 -0,6 -0,2 -1,2 0,2 -1
Z j – C j P 4 P 3 P 2 P 1 -1,2 -1 -1 -0,2 0,2 -1 -1

Тот факт, что в строке при P 4 имеется положительный элемент (в столбце d 3 +) означает, что четвёртая цель выполнена не полностью. При этом, целевая функция равна Р 4 , это минимально возможное её значение. В целом оценка переменной d 3 + равна (0,2 Р 4 – Р 3), и поскольку Р 3 >> Р 4 , то в итоге она отрицательна. Все остальные оценки неположительны, следовательно, план с точки зрения симплексного метода оптимален.



Решение этой задачи можно прокомментировать следующим образом. Для выполнения поставленной задачи необходимо выпустить вторую продукцию в объёме 6 ед. (х 2 = 6). Первую продукцию не выпускать. При этом первая и вторая цели перевыполнены на 6 ед. (d 1 + = d 2 + = 6), а четвёртая недовыполнена на 1ед. (d 4 - =1). Таким образом, прибыли получили на 6 ед. больше желаемого уровня, первый ресурс использован сверх нормального лимита на 6 ед., а продукцию 2-го вида выпустить в желаемом объёме не получилось – вместо 7 ед. выпустили 6 (не хватило 2-го ресурса; его «экономия» – цель более высокого приоритета).

В заключение в качестве примера составления модели задачи ЦП составим модель ещё одной задачи.

Пример 5.2 . Администрация города планирует расширить спортивную базу. На эти цели в городском бюджете выделено 5,4 млн руб. Было запланировано дополнительно построить четыре типа спортивных сооружений: теннисные корты, плавательные бассейны, микростадионы (атлетические площадки) и гимнастические залы. Данные относительно этих проектов следующие (таблица 5.4).

Таблица 5.4 – Информация о строящихся объектах

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

1) уложиться в отведённую бюджетом сумму;

2) построенные спортивные сооружения должны обеспечить не менее 14 000 посещений в неделю;

3) по возможности удовлетворить ожидаемый спрос на спортивные сооружения. При формировании целевой функции для этих целевых ограничений использовать веса, пропорциональные ожидаемому использованию;

4) при осуществлении проекта по возможности не занимать более отведённого свободного пространства в 20 га.

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

Переменные задачи: х 1 , х 2 , х 3 , х 4 – соответственно количество построенных сооружений: теннисных кортов, плавательных бассейнов, атлетических площадок и гимнастических залов.

Все ограничения будут целевыми, системных ограничений нет.

Первая цель – уложиться в отведённую сумму:

120х 1 + 600х 2 + 480х 3 + 1 200х 4 + d 1 - – d 1 + = 5 400 .

Минимизируем «перерасход»: min Z = P 1 d 1 + .

Вторая цель – не менее 14 000 посещений в неделю:

500 x 1 + 1 000x 2 + 2 000x 3 + 1 500x 4 + d 2 - – d 2 + = 14 000

Минимизируем «недопосещения». С учётом первой цели имеем:

min Z = P 1 d 1 + + P 2 d 2 - .

Реализация третьей цели потребует выполнения 4 ограничений по каждому виду сооружений:

x 1 + d 3 - – d 3 + = 8;

x 2 + d 4 - – d 4 + = 3;

x 3 + d 5 - – d 5 + = 3;

x 4 + d 6 - – d 6 + = 2.

Минимизируем «недовыполнение». Это третья по важности цель, поэтому в целевой функции все 4 слагаемых будут иметь коэффициент Р 3 , но с разными весами:

min Z = P 1 d 1 + + P 2 d 2 - + 0,5P 3 d 3 - + P 3 d 4 - + 2P 3 d 5 - + 1,5P 3 d 6 - .

Четвёртая цель: 0,8x 1 + 5x 2 + 3,2x 3 + 1,6x 4 + d 7 - – d 7 + = 20.

Целевая функция с учётом всех целей:

min Z = P 1 d 1 + + P 2 d 2 - + 0,5P 3 d 3 - + P 3 d 4 - + 2P 3 d 5 - + 1,5P 3 d 6 - + P 4 d 7 + .

Итак, модель задачи примет вид:

Найти min Z = P 1 d 1 + + P 2 d 2 - + 0,5P 3 d 3 - + P 3 d 4 - + 2P 3 d 5 - + 1,5P 3 d 6 - + P 4 d 7 +

при условии, что

120x 1 + 600x 2 + 480x 3 + 1200x 4 + d 1 - – d 1 + = 5 400,

500x 1 + 1 000x 2 + 2 000x 3 + 1 500x 4 + d 2 - – d 2 + = 14 000,

x 1 + d 3 - – d 3 + = 8,

x 2 + d 4 - – d 4 + = 3,

x 3 + d 5 - – d 5 + = 3,

x 4 + d 6 - – d 6 + = 2,

0,8x 1 + 2x 2 + 3,2x 3 + 1,6x 4 + d 7 - – d 7 + = 20.

x j ³ 0 (j = ) ; d i - , d i + ³ 0 (i = ).

Если эту задачу решать обычным симплексным методом, то весам P i надо придавать конкретные значения, но учитывать, что P 1 >> P 2 >>…>> P 7 . Разработаны специальные программы для решения таких задач. Реализуя одну из них (программа QM for Window), получим следующее оптимальное решение (таблица 5.5):

Таблица 5.5 – Решение задачи из примера 5.2.

(Целевое программирование)

x 1 = 8, x 2 = 3, x 3 = 3, x 4 = 1, d 2 + = 500, d 6 - = 1, d 7 + = 3,6. (d 7 + = –653 994 – это закодированное число 3,6 – оно указано в строке Priority 4). Указанное недовыполнение (Nonachievement) в строке Priority 3, равное 1,5 – это с учётом весового коэффициента в целевой функции при ).

Итак, на выделенные средства можно построить 8 теннисных кортов, 3 плавательных бассейна, 3 министадиона и один гимнастический зал. Как видим, четвёртая цель недовыполнена на 1 (d = 1), т.е. вместо двух запланированных будет построен один гимнастический зал. Вторая цель перевыполнена (d 2 + = 500), т.е. вместо 14 000 посещений возможны 14 500. Перевыполнена так же 4-я цель (d 7 + = 3,6), т.е. вместо отведённых 20 га под эти спортивные сооружения потребуется 23,6 га.

Глава 6. Методы сетевого планирования и управления

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

Анализ любого проекта осуществляется в три этапа:

1. Расчленение проекта на ряд отдельных работ (или операций), из которых затем составляется логическая схема.

2. Оценка продолжительности выполнения каждой операции; составление календарного плана выполнения проекта и выделение работ, которые определяют завершение выполнения проекта в целом.

3. Оценка потребностей каждой операции в ресурсах; пересмотр плана выполнения операций с учётом обеспечения ресурсами либо
перераспределение денежных или других ресурсов, которое улучшит план.

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

МОДИФИЦИРОВАННЫЙ СИМПЛЕКС МЕТОДСимплекс-метод – не самая эффективная
компьютерная процедура, так как она вычисляет и
хранит информацию, которая не нужна для текущей
итерации и может вообще не использоваться для
принятия решений при последующих итерациях. Для
коэффициентов неосновных переменных в уравнении
(0), коэффициентов введенных основных переменных
в других уравнениях и правых частях уравнений при
каждой итерации используется только релевантная
информация. Поэтому нужна процедура, которая
может получать эту информацию эффективно, без
вычислений и хранения всех других коэффициентов
(это и есть модифицированный симплекс-метод).

Он вычисляет и хранит только информацию,
необходимую на данный момент, а важные данные
передает в более компактной форме.
Он использует операции с матрицами, поэтому
необходимо описывать задачу используя матрицы.
ЗАГЛАВНЫЕ буквы, выделенные жирным шрифтом
представляют матрицы, прописные буквы,
выделенные жирным шрифтом представляют
векторы.
Курсив – это скалярные величины, выделенный ноль
(0) обозначает нулевой вектор (его элементы равны
нулю, как строки, так и столбцы), ноль (0)
представляет обычное число 0. С использованием
матриц стандартная форма модели линейного
программирования принимает форму:

Максимизировать Z = c x,
согласно
A x ≤ b and x ≥ 0,
где c вектор-строка
x, b, и 0 векторы-столбцы

A - матрица
Для дополненной формы, вектор-столбец
фиктивных переменных:
Ограничения:
I = (m × m единичная матрица)
0 = (n + m элементы нулевого вектора)

Нахождение базового допустимого решения
Общий подход симплекс-метода – получение
последовательности улучшающихся ОД решений до
тех пор, пока не будет найдено оптимальное
решение. Одна из ключевых особенностей
модифицированного симплекс-метода – то, как он
находит новое ОД решение после определения его
основных (базисных) и неосновных (небазисных)
переменных. Имея эти переменные, получающееся
основное решение – решение m уравнений
В котором n небазисных переменных из n + m
элементов
устанавливаются равными нулю.

Исключая эти n переменных приравниванием к нулю,
получаем систему уравнений m с m переменными
(основными (базисными) переменными):
где вектор базисных переменных:
получен исключением небазисных (неосновных)
переменных:

И базисная матрица
Полученная исключением столбцов, соответствующих
коэффициентам небазисных переменных из .
(В дополнение, элементы xB, и столбцы B в разном
порядке). Симплекс метод вводит только базисные
переменные, такие что B - невырожденная, так что
обратная матрица B-1 всегда будет существовать.
Чтобы решить B x B = b, обе стороны умножаются на B-1:
B-1 B x B = B-1 b.

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

Пример:
- Итерация 0
so
so

10.

- Итерация 1
so
so

11.

- Итерация 2
so
so

12. Матричная форма для текущего множества уравнений

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

13.

14.

Эта матрица будет иметь те же элементы, что и единичная
матрица, за исключением того, что каждое произведение
для определенной алгебраической операции займет
место, необходимое для выполнения этой операции,
используя перемножение матриц. Даже после серии
алгебраических операций в течение нескольких итераций,
мы все еще можем сделать вывод, что эта матрица
должна быть для всей серии, используя то, что мы знаем о
правой стороны новой системы уравнений. После любой
итерации, xB = B-1b и Z = cB B-1b, поэтому правые стороны
новой системы уравнений приняли вид

15.

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

16.

Example: матричная форма, полученная после итерации 2
для задачи о стекольном заводе, используя B-1 и cB:

17.

Используя величины xB = B-1 b и Z = cB B-1 b:

18.

Только B-1 должна быть получена для вычисления
всех чисел симплекс-таблицы из исходных
параметров задачи (A, b, cB). Любое из этих чисел
может быть получено индивидуально, как
правило, выполняют только векторное умножение
(одна строка на один столбец) вместо полного
матричного умножения. Необходимые числа для
выполнения итераций симплекс-метода можно
получить по мере необходимости, не проводя
ненужные вычисления, чтобы получить все числа.

19. Краткий обзор модифицированного симплекс метода

1. Инициализация: Как в исходном симплекс методе.
2. Итерация: Шаг 1 Определить введенные базисные (основные)
переменные: Как в исходном симплекс методе.
Шаг 2 Определить уходящие базисные переменные: Как в исходном
симплекс методе, за исключением подсчета только необходимых для
этого чисел [коэффициенты введенных базисных переменных в
каждом уравнении за исключением Ур. (0), а затем, для каждого строго
положительного коэффициента, правая часть этого уравнения].
Шаг 3 Определить новое ОД решение: Получить B-1 и задать xB=B-1b.
3. Анализ на оптимальность: Как в исходном симплекс методе, за
исключением подсчета только необходимых для этого анализа чисел,
т.е., коэффициентов небазисных (неосновных) переменных в
Уравнении (0).
На шаге 3 итерации, B-1 можно получить каждый раз используя
стандартную компьютерную программу для обращения (инверсии)
матрицы. Так как B (затем B-1) мало изменяется от одной итерации к
другой, более эффективно получать новое B-1 (обозначаем B-1 new) из
B-1 на предыдущей итерации (B-1 old). (Для исходного ОД решения).

Для решения задач линейного программирования существует множество методов. Рассмотрим один из них улучшенный (модифицированный) симплекс-метод

Для начала расскажем, что такое симплекс-метод. Слово SIMPLEX в обычном смысле означает простой, несоставной, в противоположность слову COMPLEX.

Данный метод получил несколько различных форм (модификаций) и был разработан в 1947 году Г. Данцигом.

Сущность симплекс-метода заключается в том, что если число неизвестных больше числа уравнений, то данная система неопределенная с бесчисленным множеством решений. Для решения системы все неизвестные произвольно подразделяют на базисные и свободные. Число базисных переменных определяется числом линейно-независимых уравнений. Остальные неизвестные свободные. Им придают произвольные значения и подставляют в систему. Любому набору свободных неизвестных можно придать бесчисленное множество произвольных значений, которые дадут бесчисленное множество решений. Если все свободные неизвестные приравнять к нулю, то решение будет состоять из значений базисных неизвестных. Такое решение называется базисным.

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

Одним из модификаций симплекс-метода является улучшенный симплекс-метод. В литературе этот метод встречается также под названием метода обратной матрицы или модифицированного симплекс-метода.

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

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

Рассмотрим поэтапно шаги решения задачи линейного программирования улучшенным симплекс-методом:

  • 1. В начале первого цикла нам известны обратная матрица (единичная матрица), базисное решение x b = b.
  • 2. Образуем для каждой небазисной переменной характеристическую разность j , используя уравнение:

j = c j -- = c j -- P j , (2)

где - двойственные переменные, которые можно найти следующим образом:

где c x - вектор коэффициентов целевой функции при базисных переменных.

3. Предполагая, что используется стандартное правило выбора вводимого столбца, находим:

  • 4. Если s 0 - процедура останавливается. Текущее базисное решение является оптимальным.
  • 5. Если s 0, вычисляем преобразованный столбец:

= (, ...,) . (2.4)

Если все 0 - процедура останавливается: оптимум неограничен.

7. В противном случае находим выводимую из базиса переменную:

8. Строим увеличенную матрицу:

и трансформируем ее с ведущим элементом. Первые m столбцов дают матрицу, обратную новому базису.

9. Преобразуем базисное решение:

x b i x b i -- * , i r, (2.7)

и переходим к этапу 2.

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

Для этого нужно:

  • 1. Сохранять исходную запись задачи на протяжении всей работы метода, это та цена, которую приходится платить за больше быстродействие;
  • 2. Использовать так называемые симплекс - множители р - коэффициенты для непосредственного перехода от исходной записи задачи к ее текущей канонической форме базиса;
  • 3. Использовать обращенный базис ВО№ - матрицу размера m x m, позволяющую вычислять на каждом шаге ведущий столбец aґs и обновлять симплекс - множители р.

Улучшенный симплекс-метод, обладает значительными преимуществами по сравнению со стандартной формой. Это относится к точности, скорости и требованиям к памяти. Большая часть этих преимуществ определяется тем фактором, что, как правило, матрицы больших линейных задач (то есть с n>m>100) являются слабо заполненными, содержат малый процент ненулевых элементов.

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

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