
- •Поиск с помощью метода Штифеля асимптотических решений задачи дробно – линейного программирования
- •1.Составим жорданову таблицу. При этом для функционала предусмотрены две строки: в верхнюю записываем коэффициенты числителя, а в нижнюю – знаменателя (таб.1).
- •3.После нахождения опорного плана вычисляем для каждого столбца значение определителя (3):
- •Об ускорении поиска оптимального опорного плана задачи линейного программирования
- •Задания для студентов
- •Литература
Об ускорении поиска оптимального опорного плана задачи линейного программирования
Теорема (о выборе разрешающего элемента)
Если в нескольких столбцах z-ой строке есть отрицательные элементы, то разрешающим столбцом нужно выбрать тот столбец у которого максимально произведение абсолютного значения коэффициента в z-ой строке и минимально симплексное отношение данном столбце.
Доказательство:
Пусть разрешающим
будет элемент
.
В результате шага модифицированных
жордановых исключений свободным членом
в z-строке будет число
,
равное
.Поскольку
и
,скобка
в этом выражении всегда будет
положительной. А так как значение
функционала всегда равно свободному
члену, эта скобка представляет собой
тот добавок к функционалу, который
получается в результате сделанного
шага.
Чем большее приращение будет получать функционал на каждом шаге, тем меньше потребуется шагов (т.е. вычислений) для достижения оптиума. Величина этого приращения зависит от абсолютной величины коэффициента и от величины наименьшего симплексного отношения . То есть разрешающим столбцом будет столбец, у которого максимально это произведение.
Пример: линейное программирование:
Найдем максимум
функции
при ограничениях
Решение: составим жорданову таблицу.
Поскольку в ней
свободные члены положительны, план
является
опорным. Однако он не оптимален, так как
коэффициенты z-строки
отрицательны. Выбираем из них тот, у
которого наибольшее произведение
абсолютной величины и наименьшее
симплексное отношение. Третий столбец
считаем разрешающим, так как он имеет
наибольшую абсолютную величину 8 и
симплексные отношения:
соответственно (
,
поэтому элемент 1 в третьим столбце
будет разрешающим). Делаем шаг
модифицированных жордановых исключений
и приходим к следующей таблице.
Судя по коэффициентам z-строки, в полученной таблице оптимальное решение не достигнуто. Берём второй столбец с отрицательным коэффициентом в z-строке за разрешающий (разрешающей строкой может быть только первая). С найденным элементом 5 делаем следующий шаг.
В z-строке
все коэффициенты положительны, план,
получаемый приравниванием верхних
переменных нулю, а боковых – свободным
членам, оптимален. Выписываем из таблицы
значения основных неизвестных:
Максимальное
значение функционала считаем в последней
клетке таблицы:
В окончательной таблице
все определители
неотрицательны. Это говорит о том, что
при значениях неизвестных
функционал достигает максимума
Обычно предполагается, что на множестве
планов задачи нет точек, в которых
знаменатель целевой функции равен нулю.
Без ограничения общности, можно считать,
что
.
В задаче дробно-линейного программирования экстремум целевой функции достигается в вершине многогранника решений. Это сходство с линейным программированием позволяет решать дробно-линейные задачи методом Штифеля.
Вычисления оформляются в виде жордановых таблиц. При этом для функционала отводятся две нижние строки: в первую из них записываем коэффициенты числителя, а во вторую – знаменателя. Исходной задаче соответствует таблица 1:
|
–x1 |
–x2 |
… |
–xj |
… |
–xn |
1 |
y1 |
a11 |
a12 |
… |
a1j |
… |
a1n |
a1 |
… |
……………………………………… |
… |
|||||
yi |
ai1 |
ai2 |
… |
aij |
… |
ain |
ai |
… |
……………………………………… |
… |
|||||
ym |
am1 |
am2 |
… |
amj |
… |
amn |
am |
z1 |
–p1 |
–p2 |
… |
–pj |
… |
–pn |
0 |
z2 |
–q1 |
–q2 |
… |
–qj |
… |
–qn |
0 |
Табл. 1.
Через yi обозначаются разности между правыми и левыми частями системы ограничений:
yi = ai – ai1x1 – ai2x2 – ai3x3 – … – ainxn 0.
Свободными переменными мы будем называть
переменные, расположенные в верхней
заглавной строке жордановой таблицы.
Придавая свободным переменным нулевые
значения, мы получим исходное базисное
решение:
.
Данный вектор не может являться опорным
планом, т.к. знаменатель целевого
функционала на нем равен нулю (z2
= 0). Поэтому среди свободных членов
системы ограничений a1,…,
am
обязательно есть отрицательные числа
(иначе базисное решение было бы опорным
планом).
Шагами модифицированных жордановых исключений, точно так же, как при решении задачи линейного программирования (см. [1]), отыскиваем первоначальный план задачи. В результате k шагов мы приходим к таблице 2:
|
–y1 |
… |
–xj |
… |
–xn |
1 |
x1 |
b11 |
… |
b1j |
… |
b1n |
b1 |
.… |
……………………………………… |
|||||
yi |
bi1 |
… |
bij |
… |
bin |
bi |
…. |
……………………………………. |
|||||
ym |
bm1 |
… |
bmj |
… |
bmn |
bm |
z1 |
f1 |
… |
fj |
… |
fn |
F |
z2 |
g1 |
… |
gj |
… |
gn |
G |
Табл. 2.
В таблице 2 все свободные члены bi
неотрицательны, что обеспечивает
неотрицательность базисных переменных
x1,…, ym.
Кроме того
(в силу положительности знаменателя
целевой функции z2
на множестве опорных планов). Первоначальным
опорным планом является вектор
с координатами
.
Значение целевой функции на первоначальном
опорном плане равно
.
Заметим, что если на одном из шагов жордановых исключений какой-либо из свободных членов bi окажется отрицательным, а все остальные элементы i-й строки будут неотрицательными, то задача не будет иметь решения из-за отсутствия планов.
Проследим за тем, как меняется целевая
функция при переходе от одного опорного
плана задачи к другому. Оказывается,
знак разности между новым и старым
значениями функции
совпадает со знаком определителя
.
Если
,
то значение целевой функции при переходе
к новому опорному плану увеличивается,
а если
,
то – уменьшается.
называются оценками свободных переменных.
Предположим, что исходная задача
дробно-линейного программирования
являлась задачей на максимум. Если все
определители
,
вычисленные по таблице 2, неотрицательны,
то оптимальным является опорный план
и
.
Если среди оценок свободных переменных
есть отрицательные числа, например,
(для некоторого j), то план
не является оптимальным. Его можно
улучшить, выбрав в качестве разрешающего
столбца j-й столбец и перейти к плану
.
Т.к. многогранник решений содержит лишь
конечное число опорных планов, то за
конечное число шагов мы придем к
оптимальному опорному плану.
Этому процессу может помешать только неограниченность многогранника решений. В этом случае целевая функция может иметь так называемый асимптотический экстремум (в данном случае – максимум). Асимптотическим максимумом задачи дробно-линейного программирования называется точная верхняя грань целевой функции на множестве планов, которая не достигается ни на одном из планов. В том случае, когда задача имеет асимптотический максимум, в области планов всегда можно найти такой план (не опорный), на котором целевая функция принимает значение сколь угодно близкое к асимптотическому максимуму.
Метод Штифеля позволяет находить не
только максимум, но и асимптотический
максимум задачи дробно-линейного
программирования. Рассмотрим более
подробно переход от плана
к плану
и выясним. Выбирая разрешающий элемент
в j-м столбце, мы должны руководствоваться
принципом минимального симплексного
отношения. Т.е. разрешающий элемент в
j-м столбце должен попасть в ту
строку, для которой симплексное отношение
положительно и минимально.
Т.к. после нахождения первоначального
опорного плана все правые части bi
стали неотрицательными, то разрешающим
элементом j-го столбца может быть
один из его положительных элементов
(
).
Если на каждом шаге этапа поиска
оптимального опорного плана в выбранном
разрешающем столбце присутствует (хотя
бы один) положительный элемент
,
то такая задача имеет максимум (возможно,
что не один).
Однако, если на одном из шагов некоторая
оценка
меньше нуля, и при этом все элементы
j-го столбца
.
Тогда в данном столбце, руководствуясь
принципом минимального симплексного
отношения, разрешающий элемент выбирать
нельзя. Увеличивая значения свободной
переменной xj
от 0 и до
(см. Табл. 2), мы все время остаемся в
области планов. Это связано с тем, что
увеличение переменной xj
не вызывает изменения знака на минус
ни у одной из базисных переменных.
Обозначим через М предел, к которому,
монотонно возрастая, стремится целевая
функция при
:
.
Это число является асимптотическим
максимумом.