- •Выпускная квалификационная работа
- •Глава 1. Теория линейного программирования 4
- •Глава 2. Применение симплекс-метода для составления плана производства (на примере нэрз) 23
- •Введение
- •Глава 1. Теория линейного программирования
- •1.1. Линейное программирование — инструмент исследования линейных моделей
- •3. Выражаем базисные переменные через небазисные1
- •1.2. Основы симплекс-метода
- •1. Описываем целевую функцию уравнением
- •2. Выбираем исходное базисное допустимое решение
- •4. Выражаем целевую функцию через небазисные переменные
- •5. Проверяем оптимальность текущего базисного решения
- •6. Проверяем ограниченность задачи
- •7. Переход к другому базису 2
- •8. Конечность симплекс-метода
- •9. Построение исходного базисного допустимого решения 3
- •1.3. Симплекс-таблицы
- •1.4. Двойственность в линейном программировании
- •Глава 2. Применение симплекс-метода для составления плана производства (на примере нэрз)
- •2.1. Общая характеристика предприятия
- •2.2. Моделирование экономической ситуации в инструментальном цехе
- •2.3. Решение задачи
- •2.3. Разработка рекомендаций по улучшению найденного плана производства
- •Заключение
- •Обозначения
- •Литература
- •Источники
4. Выражаем целевую функцию через небазисные переменные
Из каждого уравнения (21) выразим xj(i) и подставим в (19):
или
22
,
где
и
.
(22)
Из (22) получаем выражение для z, в котором участвуют только небазисные переменные:
23
.
(23)
Замечание 4. Если
(x,
z)
удовлетворяет условию (17), то z =
f
(x)
для любого х.
Если же для (x,
z)
выполнено (22) или (23), то z =
f
(x)
только для х,
удовлетворяющих (21) (и, следовательно,
допустимых в исходной задаче), так как
соотношения (21) использовались при
выводе (22). В частности, при х =
х0
имеем
для j
N()
(см. замечание 3) и из (22) следует, что
24
.
(24)
Таким образом, F есть значение ЦФ (14) на векторе х0 = х (см. определение 6), который на этом этапе является текущим БДР. □
Определение 8. Рассмотрим задачу ЛП с матрицей А размерности m × n, — произвольный базис матрицы А и N() = { j(1),…, j(m)}. Задача приведена к базису , если:
(а) она записана в канонической форме;
(б) целевая функция выражена через небазисные переменные;
(в) в каждом уравнении есть базисная переменная (xj(i) для уравнения i), которая входит в него с коэффициентом 1 и не входит в другие уравнения. □
Замечание 5. Задачу (14) – (16) можно привести к базису , т. е. преобразовать в эквивалентную задачу, приведенную к базису :
(а) систему уравнений A0 =
b0
умножить слева на
(если базис
допустим, то правые части уравнений
преобразованной системы будут
неотрицательны);
(b) условие неотрицательности переменных сохранить;
(c)
целевую функцию представить в виде
,
где j =
0 для j
N(),
а j
для j
N()
и константа F рассчитаны
по формулам (22).
По замечанию 4 значение ЦФ на базисном решении системы уравнений (15), порожденном базисом , равно F. □
Формулы (21) и (22) описывают результат приведения задачи (14) – (16) к текущему базису.
5. Проверяем оптимальность текущего базисного решения
Теорема 1 (признак оптимальности). Если в (22) j 0 для всех j, то текущее БДР является оптимальным решением задачи (14) – (16).
Доказательство в [9, с. 144]. □
Эта теорема оправдывает следующее определение.
Определение 9. Если в (22) j 0 для всех j, то текущий допустимый базис назовем оптимальным. □
Если все j неотрицательны, то найден оптимальный базис, текущее БДР оптимально и задача решена. Если же некоторые j отрицательны, то переходим к следующему шагу.
6. Проверяем ограниченность задачи
Теорема 2 (признак неограниченности задачи). Если существует такое s, что s < 0 в (22) и ais ≤ 0 в (21) для всех i, то задача (14) – (16) неограниченна.
Доказательство в [9, с. 145]. □
Если выполнены условия теоремы 2, то задача неограниченна, процесс решения закончен; иначе переходим к следующему шагу.
7. Переход к другому базису 2
Если мы дошли до этого этапа, то по теоремам 1 и 2 существует такое s, что s N(), s < 0 и ars > 0 для какого-то r.
Заметим, что a
s
не является
линейной комбинацией столбцов a
j(i),
i
r
(так как в отличие от
a
s
они имеют нули в
строке r).
Поэтому столбцы a
j(i),
i
r
и a
s
линейно независимы.
Тогда и в исходной матрице А0
соответствующие столбцы линейно
независимы и образуют базис
,
где k(i) =
j(i)
при i
r
и k(r) =
s
(вводим в базис столбец
вместо
).
Базису
соответствует вектор
(см. определение 6). Выясним, является ли
допустимым решением и как изменяется
значение ЦФ при переходе от х0
к
.
Замечание 6. Чтобы это выяснить, достаточно уравнение (21) с номером r разделить на ars, выразить из него переменную хs (в этом выражении не будут участвовать базисные переменные xj(i) для j r), а результат подставить в остальные уравнения (21) – (22). Тогда хs станет базисной переменной для уравнения r (войдет в него с коэффициентом 1 и исчезнет из других уравнений и из ЦФ). Коэффициенты при переменных xj(i) для j r не изменятся. Другими словами, мы приведем задачу к новому базису (см. определение 8). Тогда, в соответствии с замечанием 3, справа в преобразованных ограничениях (21) окажутся базисные (относительно базиса ) компоненты вектора . Если они неотрицательны, то есть БДР. А правая часть (22) после подстановки укажет значение ЦФ на (см. замечание 5). □
Способ, которым мы исключим хs из уравнений (21) с отличными от r номерами и из (22), называется жордановым исключением и является составной частью метода Жордана–Гаусса для решения систем линейных алгебраических уравнений. Столбец as и строку ar матрицы А будем называть направляющими, а ее элемент ars — разрешающим. Подчеркнем, что направляющий столбец as и направляющую строку ar мы выбрали так, что s < 0 и ars > 0.
Не принимая пока во внимание специфическую структуру матрицы А, запишем уравнения (21) в общем виде, выделив переменную xs:
25
(25)
Разделим обе части уравнения (25) с номером r на ars 0:
26
(26)
Для каждого i r умножим (26) на ais и результат вычтем из (25) (исключим xs):
27
(27)
В результате уравнения (25)
примут вид
,
где
28
при
при i
r
(28)
29
(29)
30
(30)
Здесь (28) описывает преобразованные элементы направляющей строки r в соответствии с (26) и направляющего столбца s с учетом того, что xs отсутствует в (27); соотношения (29) получены из (27); наконец, выражения (30) для правых частей преобразованных уравнений очевидным образом следуют из (26) и (27).
Итак,
(см. замечание 6). При каких условиях этот
вектор неотрицателен? Вспомним, что b
0 (так как это базисная
часть БДР х0,
порожденного базисом )
и ars
> 0. Тогда и
по (30). В соответствии с (30),
при i
r
эквивалентно неравенству
Если ais ≤ 0, то последнее неравенство выполняется, так как его левая часть неположительна, а правая — неотрицательна. Если же ais > 0, то разделив на это число обе части неравенства, получим условие
31
(31)
Мы получили правило выбора
направляющей строки: если направляющий
столбец зафиксирован, то из строк, где
он имеет положительные элементы, следует
выбрать ту, для которой отношение правой
части к элементу направляющего столбца
минимально. Из (30) следует, что это
минимальное отношение равно
—
значению переменной xs
в новом БДР
(в предшествующем БДР х0
она была равна нулю как небазисная).
Напротив, переменная xj(r),
которая в х0
могла иметь положительное значение,
теперь стала небазисной и равна нулю.
Таким образом, при правильном
выборе направляющей строки мы построим
новое БДР
с базисом
,
который получается из
заменой столбца
столбцом
;
переменная xs
становится базисной для строки r
(вместо xj(r)).
Понятно, что
32N( ) \ {s} = N() \ {j(r)}. (32)
Запишем (22) в виде
,
где
j для j N() определены в (22) и j = 0 для j N(). Вычтем отсюда уравнение (26), умноженное на s . Получим
33
(33)
Пусть j
N(
)
и j
s.
Тогда j
N()
по (32) и j =
0. Матрица А соответствует
системе уравнений, приведенной к базису
,
переменная xj
является базисной для некоторой строки
i,
j =
j(i),
поэтому столбец a
j
имеет ненулевой элемент только в этой
строке. Но i
r,
так как из (32) следует j
j(r).
Поэтому arj =
0. Следовательно,
при j
N(
)
в (33), в левую часть этого равенства с
ненулевыми коэффициентами входят только
небазисные (для базиса
)
переменные, которые в соответствующем
БДР
равны нулю.
По замечанию 4 z = f (x) в (33) для любого допустимого решения х. При х = из (33) и (24) следует, что
34
(34)
Замечание 7. Вспомним,
что b
0
(так как базис
допустим), s
< 0 и ars
> 0 по выбору r
и
s.
Поэтому (34) влечет
.
Если
,
то значение ЦФ при переходе к новому
БДР возрастает. Если же br =
0, то
,
а БДР х0
вырожденно (см. определение 7), так как
br —
значение его базисной компоненты
.
Кроме того, при br = 0
из (30) следует
для всех i,
а тогда
:
построен новый базис для той же вершины.
□
В любом случае задача приведена к новому базису, он становится текущим, становится текущим БДР, и мы возвращаемся к проверке оптимальности текущего БДР.
