
2к4с Исследование операций / МУ к практической работе 2
.pdfАпробация
РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ С ПОМОЩЬЮ СИМПЛЕКСМЕТОДА
Методические указания к выполнению практической работы для студентов направления
230400 очной, заочной и заочно-сокращенной форм обучения

Цель работы: формирование навыков решения задач линейного программирования симплекс-методом.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКМЕ СВЕДЕНИЯ
Определение 1. Задача линейного программирования – это задача оптимизации линейной функции в области, задавае-
мой линейными ограничениями.
В общем виде задача линейного программирования вы-
глядит следующим образом:
f (x) (c, x) |
|
max (min) |
||||||||||
|
|
|
|
|
|
|
|
|
|
|||
(Ai , x) bi , i 1, m1 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||
(Ai , x) bi , i m1 |
1,m2 |
(1) |
||||||||||
|
|
|
|
|
|
|
|
|||||
(Ai , x) bi , i m2 |
|
1,m |
||||||||||
|
|
|
|
|
|
|
||||||
x j |
0 , |
j 1, n1 |
||||||||||
|
|
|
|
|
|
|||||||
x j |
, j |
n1 |
1, n |
Определение 2. Оптимизируемая функция f(x) называется критерием, функцией цели или целевой функцией задачи.
Определение 3. Допустимым решением задачи называет-
ся точка x (x1, x 2 ,..., x n ) , удовлетворяющая всем ограниче-
ниям задачи. Допустимые решения образуют область допусти-
мых решений задачи (ОДР).
2

Определение 4. Оптимальным решением задачи называ-
ется допустимое решение, доставляющее целевой функции наи-
большее (наименьшее) значение.
Указанное в определении наибольшее (наименьшее) зна-
чение называется оптимальным значением целевой функции.
Решить задачу линейного программирования означает следующее:
1) если задача разрешима, то необходимо найти среди до-
пустимых решений задачи оптимальные решения и вычислить оптимальное значение целевой функции;
2) если задача неразрешима, то требуется установить при-
чину неразрешимости задачи.
Решение задачи линейного программирования сим-
плексметодом
Таблица 1
Эквивалентные преобразования
Название пре- |
До преобразования |
После преобразования |
|
образования |
|
|
|
|
|
|
|
Преобразование |
n |
n |
|
неравенства в |
ai, jx j bi |
ai, jx j ui bi , |
|
j 1 |
j 1 |
||
|
|||
равенство |
|
u i 0 |
|
|
|
||
|
|
|
3

Преобразование |
n |
|
n |
|
|
|
|
|
||
неравенства |
в |
ai, jx j |
bi |
|
|
ai, jx j |
ui |
bi , |
|
|
j 1 |
|
j 1 |
|
|
|
|||||
|
|
|
|
|
|
|
||||
равенство |
|
|
|
u i |
0 |
|
|
|
||
|
|
|
|
|
|
|
|
|||
Переход |
от |
ре- |
n |
|
|
|
n |
|
|
|
шения |
задачи |
c jx j |
min |
|
|
c jx j |
|
max |
|
|
j 1 |
|
|
j 1 |
|
|
|
||||
|
|
|
|
|
|
|
|
|||
минимизации к |
|
|
|
|
|
|
|
|
||
решению |
зада- |
|
|
|
|
|
|
|
|
|
чи максимиза- |
|
|
|
|
|
|
|
|
||
ции |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переход |
|
от |
x j |
|
x |
j |
x1 |
x 2 |
, x1 |
0, x 2 |
|
|
|
|
|
|
j |
j |
j |
j |
|
свободной |
пе- |
|
|
|
|
|
|
|
|
|
ременной к пе- |
|
|
|
|
|
|
|
|
||
ременным, |
ог- |
|
|
|
|
|
|
|
|
|
раниченным по |
|
|
|
|
|
|
|
|
||
знаку |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Использование перечисленных преобразований (табл. 1)
позволяет любую задачу линейного программирования
свести к следующему виду:
1)требуется максимизировать целевую функцию,
2)все ограничения, кроме ограничений на знак, имеют вид равенств,
4

3) все переменные предполагаются неотрицательными.
Математическая модель такой задачи выглядит сле-
дующим образом
f (x) (c, x) |
|
max (min) |
|
|||||
|
|
|
|
|
|
|
|
( 2) |
(Ai , x) |
bi |
, i |
|
1,m |
||||
|
|
|
|
|
|
|
||
x j |
0 , |
j |
1, n |
|
Этот вид задачи линейного программирования
будем называть канонической формой.
Алгоритм 1 - построение начальной симплекс-
таблицы
1)Используя преобразования таблицы 1, свести за-
дачу к каноническому виду (2).
2)Преобразовать все ограничения–равенства к виду,
при котором правая часть ограничения – неотри-
цательное число.
3)Выписать матрицу ограничений и проверить,
есть ли в этой матрице набор столбцов, образую-
щих единичную матрицу.
5

4) Если такого набора нет, то перейти к пункту 7.
5) Набор есть. Разбейте переменные x j ( j 1, n)
на две группы: базисные переменные и небазис-
ные переменные. Базисные переменные – это те,
которые соответствуют столбцам, образующим единичную матрицу. Остальные переменные – небазисные.
Полагая всякую небазисную переменную равной нулю, а базисную правой части ограничения, в
котором эта переменная присутствует, получаем опорное решение.
6)Построить симплекс-таблицу, отвечающую по-
лученному опорному решению. Базисные пере-
менные записать в крайнем левом столбце, а не-
базисные – в самой верхней строке. Завершить работу алгоритма 1.
7)Сделать вывод: для построения начальной сим-
плекс-таблицы необходимо применить метод ис-
кусственного базиса.
6
8) Завершить работу алгоритма 1.
Алгоритм 2 - решение симплекс-методом зада-
чи линейного программирования
Начальная симплекс-таблица построена.
1)Если оценки симплекс-таблицы неотрица-
тельны, то таблица оптимальная, и соответствующее ей опорное решение оптимальное.
Полагая всякую небазисную переменную равной нулю, а базисную равной элементу из столб-
ца свободных членов, получаем оптимальное опор-
ное решение.
Алгоритм завершает работу.
2) Если в таблице есть столбец с отрицательной оценкой, и все элементы в нем не положительны, то оп-
тимальное решение не существует, так как целевая функция неограниченна сверху в ОДР (Неразреши-
мость 2). Алгоритм завершает работу.
3)Если в таблице есть столбец с отрицатель-
ной оценкой, и в нем есть положительные элементы,
то среди этих элементов выбираем главный. Для этого
7
находим для каждого такого элемента частное от деле-
ния правой части ограничения на этот элемент. Полу-
ченные частные сравним для того, чтобы главным эле-
ментом выбрать тот, которому соответствует наимень-
шее частное. Главный элемент определяет главную строку и главный столбец, так как он стоит на их пере-
сечении.
4)Выполним жордановы преобразования сим-
плекс-таблицы относительно выбранного главного эле-
мента и перейдем к пункту 1.
Жордановы преобразования симплекс-таблицы
относительно выбранного главного элемента
1)Поменять местами переменные, стоящие в главной строке и главном столбце.
2)Главный элемент заменить ему обратным.
3)Все остальные элементы главной строки раз-
делить на главный элемент.
8
4)Все остальные элементы главного столбца разделить на главный элемент и поменять у них знаки на противоположные.
5)Все оставшиеся элементы пересчитать по правилу, сходному с правилом вычисления определите-
ля второго порядка (в качестве главной диагонали нуж-
но брать ту, на которой стоит главный элемент), и раз-
делить на главный элемент.
Замечание. Во всех перечисленных действиях ис-
пользуйте числа из старой таблицы, а результаты вы-
числений записывайте в новую таблицу.
Метод искусственного базиса
Алгоритм 3 - построение начальной симплекс-
таблицы с помощью метода искусственного базиса.
1) Используя эквивалентные преобразования,
преобразовать задачу к каноническому виду (I).
2) Преобразовать все ограничения–равенства к виду, когда правая часть – неотрицательное число.
9

3) Построить вспомогательную задачу. Для
этого из исходной преобразованной задачи возьмем только ограничения. Прибавим по необходимости к
левым |
частям ограничений |
новые переменные |
Wi ( Wi |
0) , которые назовем искусственными. Необ- |
ходимость диктуется желанием иметь в матрице огра-
ничений столбцы, образующие единичную матрицу. В
качестве целевой функции вспомогательной задачи возьмем сумму искусственных переменных со знаком минус. Эту целевую функцию всегда требуется мак-
симизировать.
4) Используя алгоритм 1 построения начальной симплекс-таблицы, построить для вспомогательной
задачи начальную симплекс-таблицу.
5) Используя алгоритм 2 решения симплекс-
методом, решить вспомогательную задачу.
6) Если оптимальное значение целевой функции
вспомогательной задачи окажется отрицательным числом, то сделать вывод: исходная задача не имеет
10