
- •Рецензенты:
- •Содержание
- •1. Программа курса Введение
- •Математические основы программирования
- •Общий вид задачи линейного программирования
- •Методы решения общей задачи линейного программирования
- •Двойственные задачи линейного программирования
- •Распределительные методы
- •Элементы нелинейного программирования
- •Элементы теории игр
- •Введение
- •Классификация задач математического программирования
- •2. Математическое программирование
- •2.1. Постановка задач линейного программирования
- •Алгоритм графического метода решения злп
- •2.3. Симплекс-метод решения задачи линейного программирования
- •Алгоритм симплекс-метода решения злп
- •Пример 2.3.1. Решить злп (2.2.1), (2.2.5) симплекс-методом.
- •Критерий оптимальности опорного плана:
- •Переход к следующей симплекс-таблице осуществляют по правилам:
- •2.4. Двойственная задача линейного программирования
- •2.5. Элементы теории матричных игр
- •Алгоритм принципа максимина (минимакса)
- •Решение. Эта матричная игра имеет размерность (3х4), т.Е. Игрок а имеет три стратегии, а игрок в – четыре. Запишем ее в нормальной форме.
- •Последовательность действий при решении игры
- •2.6. Транспортная задача. Метод потенциалов
- •Алгоритм метода потенциалов состоит из следующих этапов:
- •Критерий оптимальности плана перевозок
- •2.7. Задача о назначениях
- •Алгоритм метода Фогеля
- •Алгоритм венгерского метода решения задачи о назначениях
- •2.8. Дробно-линейное программирование
- •Правила решения задачи дробно-линейного программирования графическим методом
- •2.9. Целочисленное программирование
- •2.10. Параметрическое программирование
- •Алгоритм решения задачи параметрического программирования
- •3. Задания для самостоятельной работы
2.8. Дробно-линейное программирование
Если в задаче с линейными ограничениями задана дробно-линейная целевая функция, то такая задача может быть преобразована к традиционному виду путем алгебраических преобразований. Преобразованная задача может быть разрешена симплексным методом, а найденное решение трансформировано в решение исходной задачи дробно-линейного программирования. Все этапы алгоритма проиллюстрируем на конкретном примере.
Пример 2.8.1. Решить задачу дробно-линейного программирования
(2.8.1)
(2.8.2)
Решение. Систему ограничений (2.8.1) приведем к каноническому виду:
(2.8.3)
где х1, х2 – основные переменные, х3, х4, х5 – дополнительные переменные; х6, х7 – искусственные переменные.
Знаменатель целевой функции (2.8.2)
обозначим через
,
тогда
или
(2.8.4)
Равенство (2.8.4) является новым дополнительным ограничением, которое нужно ввести в систему (2.8.3).
В этом случае целевая функция (2.8.2) приобретет вид:
.
Все
ограничения системы (2.8.3) умножим на
и введем в нее дополнительное ограничение
(2.8.4), получим систему (2.8.5):
(2.8.5)
Введем следующие обозначения (2.8.6)
,
,
,
,
,
,
.
(2.8.6)
С
учетом обозначений (2.8.6), нужно упорядочить
систему (2.8.5), перенося из правой части
слагаемые, содержащие
.
Кроме того, для образование единичного
базиса, в дополнительное ограничение
(2.8.4), нужно ввести искусственную
переменную со следующим номером. В
данном случае введем искусственную
переменную
.
В результате указанных преобразований
получим следующую задачу:
(2.8.7)
.
Найти
решение полученной задачи (2.8.7) можно
симплекс-методом. Поскольку индексы
векторов должны соответствовать индексам
переменных (,
,
и т.д.), вектор свободных членов обозначим
.
Векторы коэффициентов при неизвестных и вектор свободных членов таковы:
,
,
,
,
,
,
,
,
,
Первая симплексная таблица будет иметь вид:
Таблица 2.8.1
Первая симплексная таблица
Б |
С |
|
0 |
2 |
5 |
0 |
0 |
0 |
М |
М |
М |
С.О. |
р0 |
р1 |
р2 |
р3 |
р4 |
р5 |
р6 |
р7 |
р8 |
||||
р6 |
М |
0 |
-5 |
5 |
1 |
-1 |
0 |
0 |
1 |
0 |
0 |
0 |
р7 |
М |
0 |
-6 |
1 |
6 |
0 |
-1 |
0 |
0 |
1 |
0 |
0 |
р5 |
0 |
0 |
-20 |
4 |
5 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
р8 |
М |
1 |
0 |
4 |
3 |
0 |
0 |
0 |
0 |
0 |
1 |
1/4 |
z - строка |
0 |
0 |
-2 |
-5 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
М-строка |
1 |
-11 |
10 |
10 |
-1 |
-1 |
0 |
0 |
0 |
0 |
|
Этой симплексной таблице соответствует следующее решение:
,
,
,
,
,
,
,
,
.
Это решение не является оптимальным. При выборе разрешающей строки нужно выбрать ту, которая соответствует наибольшему элементу разрешающего столбца. В данном случае выберем строку р6 и генеральный элемент равен 5. Вторая симплексная таблица будет иметь вид:
Таблица 2.8.2
Вторая симплексная таблица
-
Б
С
0
2
5
0
0
0
М
М
С.О.
р0
р1
р2
р3
р4
р5
р7
р8
р1
2
0
-1
1
1/5
-1/5
0
0
0
0
0
р7
М
0
-5
0
29/5
1/5
-1
0
1
0
0
р5
0
0
-16
0
21/5
4/5
0
1
0
0
0
р8
М
1
4
0
11/5
4/5
0
0
0
1
5/11
z - строка
0
-2
0
-23/5
-2/5
0
0
0
0
М-строка
1
-1
0
8
1
-1
0
0
0
Этой симплексной таблице соответствует следующее решение:
,
,
,
,
,
,
,
,
.
Это решение не является оптимальным. Переход к следующей симплексной таблице производим по правилам симплекс-метода и с учетом комментария по выбору разрешающей строки. Третья симплексная таблица будет иметь вид:
Таблица 2.8.3
Третья симплексная таблица
-
Б
С
0
2
5
0
0
0
М
С.О.
р0
р1
р2
р3
р4
р5
р8
р1
2
0
-24/29
1
0
-1/29
1/29
0
0
0
р2
5
0
-25/29
0
1
1/29
-5/29
0
0
0
р5
0
0
-359/29
0
0
19/29
21/29
1
0
0
р8
М
1
171/29
0
0
21/29
11/29
0
1
29/171
z - строка
0
-173/29
0
0
-7/29
-23/29
0
0
М-строка
1
171/29
0
0
21/29
11/29
0
0
Этой симплексной таблице соответствует следующее решение:
,
,
,
,
,
,
,
,
.
Это решение также не является оптимальным. Переходим к четвертой симплекс таблице:
Таблица 2.8.4
Четвертая симплексная таблица
-
Б
С
0
2
5
0
0
0
С.О.
р0
р1
р2
р3
р4
р5
р1
2
24/171
0
1
0
-18/171
15/171
0
-
р2
5
25/171
0
0
1
24/171
-20/171
0
25/24
р5
0
359/171
0
0
0
372/171
260/171
1
359/372
р0
0
29/171
1
0
0
21/171
11/171
0
29/21
z - строка
173/171
0
0
0
84/171
-70/171
0
Этой симплекс-таблице соответствует следующее решение:
,
,
,
,
,
.
Это решение также не является оптимальным. Переходим к пятой симплекс таблице:
Таблица 2.8.5
Пятая симплексная таблица
-
Б
С
0
2
5
0
0
0
р0
р1
р2
р3
р4
р5
р1
2
90/372
0
1
0
0
р2
5
4/372
0
0
1
0
р3
0
359/372
0
0
0
1
р0
0
19/372
1
0
0
0
z - строка
200/372
0
0
0
0
-280/372
-84/372
Этой симплексной таблице соответствует следующее решение:
,
,
,
,
.
Найдем значения исходных переменных, используя формулы (2.8.6):
,
.
Таким образом, решение данной задачи дробно-линейного программирования имеет вид:
,
,
.
Задачу дробно-линейного программирования с двумя переменными можно решать графическим методом.