Основы линейного программирования
Покупка
Авторы:
Чистов Валерий Васильевич, Аксенова Мария Владимировна, Аксенов Николай Васильевич, Булатова Ирина Георгиевна, Правдина Анна Дмитриевна
Год издания: 2017
Кол-во страниц: 68
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7038-4628-5
Артикул: 842150.01.99
Изложены методы решения задач линейного программирования симплекс-методом. Рассмотрены задачи планирования производства, принятия решений в условиях неопределенности, задачи теории игр и транспортные задачи.
Для студентов, изучающих курс «Исследование операций». Пособие может быть использовано при изучении других курсов, посвященных разработке программного и математического обеспечения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Основы линейного программирования Учебное пособие
УДК 519.8
ББК 22.18
О-75
Издание доступно в электронном виде на портале ebooks.bmstu.ru
по адресу: http://ebooks.bmstu.ru/catalog/193/book1755.html
Факультет «Информатика и системы управления»
Кафедра «Системы обработки информации и управления»
Рекомендовано Редакционно-издательским советом
МГТУ им. Н.Э. Баумана в качестве учебного пособия
Авторы:
В.В. Чистов, М.В. Аксенова, Н.В. Аксенов,
И.Г. Булатова, А.Д. Правдина
Рецензент Т.Н. Захарова
О-75
Основы линейного программирования : учебное пособие /
[В. В. Чистов и др.]. — Москва : Издательство МГТУ им. Н. Э. Баумана, 2017. — 64, [4] с. : ил.
ISBN 978-5-7038-4628-5
Изложены методы решения задач линейного программирования
симплекс-методом. Рассмотрены задачи планирования производства,
принятия решений в условиях неопределенности, задачи теории игр и
транспортные задачи.
Для студентов, изучающих курс «Исследование операций». Пособие
может быть использовано при изучении других курсов, посвященных
разработке программного и математического обеспечения.
УДК 519.8
ББК 22.18
© МГТУ им. Н.Э. Баумана, 2017
© Оформление. Издательство
МГТУ им. Н.Э.Баумана, 2017
ISBN 978-5-7038-4628-5
ПРЕДИСЛОВИЕ В учебном пособии изложены принципы и примеры решения задач линейного программирования (ЗЛП). Цель пособия — научить студентов формулировать и решать подобные задачи. В первой главе пособия рассмотрен симплекс-метод решения ЗЛП, описан алгоритм решения, включающий поиск опорного и оптимального планов, введено понятие двойственности ЗЛП, а также приведены примеры решения с помощью табличного симплекс-метода. Во второй главе представлены задачи и критерии принятия решений в условиях неопределенности, а также элементы теории игр. Изложение подкреплено рассмотрением конкретного примера решения ЗЛП. В третьей главе дано определение транспортной задачи как разновидности ЗЛП, указаны ее особенности, предложены два способа решения указанной задачи. Рассмотрен распределительный метод решения транспортной задачи, уделено внимание практическому применению метода «северо-западного угла». В приложении приведены курсовые задания. Учебное пособие предназначено для студентов, изучающих курс «Исследование операций», а также курсы, связанные с разработкой математического обеспечения. Приведенные в учебном пособии материалы позволят студентам освоить навыки и приемы, необходимые для выполнения и защиты курсового задания.
1. АНАЛИТИЧЕСКИЙ МЕТОД РЕШЕНИЯ
ЗАДАЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
Задача линейного программирования (ЗЛП) формулируется
следующим образом: найти экстремальное значение целевой
функции
n
F
a
a
x
j
j
=
+
⋅
j
=
∑
00
1
0
,
удовлетворяющее системе ограничений Ω:
n
ij
j
i
a
x
b
j
1
,
∀
∈
…
{
}
i i
m
:
, ,
,
.
1 2
=
∑
⋅
≤
1.1. Симплекс-метод
Схема общего алгоритма решения ЗЛП представлена на рис 1.1.
Рассмотрим подробнее требования (A, B, C, D) и операторы (K,
L, M, N, P), которые позволяют найти решение ЗЛП.
Требование А
Найти наибольшее значение целевой функции — [max]F. Если
речь идет о минимизации функции F, то достаточно записать, что
необходимо максимизировать (–F ), а именно:
min F = max (–F ) (оператор М).
Требование В
Любое ограничение из множества ограничений Ω имеет знак
«≤», т. е.
n
ij
j
i
a
x
b
j
1
,
∀
∈
…
{
}
i i
m
:
, ,
,
.
1 2
=
∑
⋅
≤
4
Рис 1.1. Общий алгоритм решения ЗЛП:
A, B, C, D — требования; K, L, M, N, P — операторы
Если существует ограничение вида
n
ij
j
i
a
x
b
j
1
,
=
∑
⋅
≥
то достаточно умножить его на (–1), чтобы требование В выполнялось (оператор N).
Требование C
Должны быть неотрицательными значения переменных
x
j
n
j ≥
∀∈
…
{
}
0
1 2
,
, ,
,
.
Если существуют переменные, принимающие отрицательные значения, то достаточно произвести замену:
x j = ′ −′′
x
x
j
j, где
′
′′ >
x
x
j
j
,
0 (оператор P).
Требование D
Должны быть неотрицательными значения свободных членов
в множестве ограничений Ω:
b
i
i
m
i ≥
∀
∈
…
{
}
0
1 2
,
:
, ,
,
.
Если существует отрицательный свободный член, то следует
выполнить оператор K (поиск опорного решения), в противном
случае необходимо выполнить оператор L (поиск оптимального
решения).
5
Bведем понятие основной задачи линейного программирования
(ОЗЛП).
Смысл перехода к ОЗЛП заключается в замене всех неравенств
в ограничениях множества равенствами с помощью введения новых переменных.
Пусть задана ЗЛП:
[max] F + a00 = a
x
01
1
⋅
+ a
x
02
2
⋅
,
a
x
31
1
⋅
+ a
x
32
2
⋅
≤ a30,
a
x
41
1
⋅
+ a
x
42
2
⋅
≤ a40.
Необходимо перейти к ОЗЛП.
Решение:
[max] F + a00 = a
x
01
1
⋅
+ a
x
02
2
⋅
+
0
⋅
+
x3
0
⋅x4 ,
a
x
31
1
⋅
+ a
x
x
32
2
3
1
⋅
+ ⋅
+
0
⋅x4 = a30,
a
x
41
1
⋅
+ a
x
x
42
2
3
0
⋅
+ ⋅
+
1
⋅x4 = a40.
Вновь введенные переменные x j (n + 1 ≤ j ≤ n + m), обозначающие разность между левой и правой частями неравенства,
называют базисными. Остальные переменные xi (1 ≤ i ≤ n) называют свободными, а множество индексов, которыми помечены
базисные переменные, — базисом В = {n + 1, n + 2, …, n + m}.
В нашем примере В = {3, 4}, свободные переменные — x
x
1
2
,
,
базисные переменные — x
x
3
4
,
. Сформируем исходную симплекстаблицу (табл. 1.1). В нулевую строку таблицы заносим коэффициенты целевой функции. Остальные строки таблицы заполняем
коэффициентами уравнений-ограничений.
Таблица 1.1
Исходная симплекс-таблица
1
2
3
4
0
0
a01
a02
0
0
a00
3
a31
a32
1
0
a30
4
a41
a42
0
1
a40
Обычно в симплекс-таблицах не записывают столбцы при
базисных переменных, тогда табл. 1.1 принимает вид табл. 1.2.
6
Таблица 1.2
Симплекс-таблица
1
2
0
0
a01
a02
a00
3
a31
a32
a30
4
a41
a42
a40
Далее перейдем к рассмотрению операторов L и K, которые
позволяют найти решение любой ОЗЛП.
Оператор L (поиск оптимального решения)
Пусть ОЗЛП ([max] F, Ω) имеет решение R = (
,
x1 x2, …, xn m
+
).
Предположим, что найден такой оператор L, который позволит
записать эту задачу в виде ([max] F ′, Ω′), т. е. L([max] F, Ω) =
= ([max] F ′, Ω′), где все коэффициенты при свободных переменных
в F ′ отрицательны, а свободные члены в уравнениях-ограничениях положительны.
Тогда по внешнему виду этой задачи можно будет легко определить ее решение, и это решение будет оптимальным, так как
улучшить его по причине отрицательности коэффициентов при
свободных переменных нельзя.
Действительно, все коэффициенты при свободных переменных
в функции F ′ отрицательны. Учитывая, что xi ≥ 0, увеличивая xi,
мы не можем увеличить F ′. Cледовательно, при xi = 0 (xi — свободные переменные ) получаем максимальное значение целевой
функции F ′ = a00, и тогда решением будет следующее:
R: { xi = 0, ∀
∈
…
{
}
i
i
n
:
, ,
,
1 2
(xi — свободные переменные),
x j = aj
j
0,
:
∀
j ∈ B (x j — базисные переменные)}.
Оператор L позволяет записать задачу ([max] F, Ω) в виде
([max] F ′, Ω′) за несколько итераций. Итерация возможна в том
случае, когда существует положительный коэффициент при свободной переменной в целевой функции. Тогда действие оператора
L на каждой итерации сводится к эквивалентному преобразованию,
заключающемуся во введении свободной переменной, у которой
коэффициент в целевой функции положительный, в базис и исключении другой переменной из базиса, что делает ее свободной.
Указанные эквивалентные преобразования удобно проводить
7