- •"Томский политехнический университет"
- •А.В. Маслов методы экономико-математического моделирования
- •Предисловие
- •Тема 1 Предмет экономико-математического моделирования
- •Моделирование как метод научного познания
- •Классификация экономико-математических моделей
- •Этапы экономико-математического моделирования
- •Взаимосвязи этапов
- •Моделирования
- •Тема 2 Системный подход к изучению экономических явлений Системный анализ как научная дисциплина
- •Вычислительная техника в системном анализе
- •Системный подход Основные определения: элементы, связи, система
- •Принципы системного подхода
- •Об использовании принципов системного подхода
- •Тема 3 Математические методы
- •И основные классы задач оптимизации
- •Общая постановка математической модели задач
- •Оптимизации
- •Тема 4 Линейное программирование
- •Пример решения станковой задачи
- •Симплекс-метод решения задач линейного программирования
- •Свойства опорных решений
- •Решение задач линейного программирования симплекс-методом
- •Конечность симплекс-метода
- •Метод искусственного базиса для отыскания начального опорного решения
- •Двойственность в линейном программировании
- •Виды математических моделей двойственных задач
- •Тема 5 Целочисленное программирование
- •Постановка задачи и метод решения
- •Метод Гомори
- •Составление дополнительного ограничения (сечения Гомори)
- •Тема 6 Транспортная задача
- •Построение первоначального опорного плана
- •Метод минимальной стоимости
- •Определение оптимального плана транспортных задач, имеющих некоторые усложнения в их постановке
- •Тема 7 Нелинейное программирование
- •Теорема Куна – Таккера
- •Список литературы
- •Оглавление
- •Часть I
Решение задач линейного программирования симплекс-методом
Если известно некоторое опорное решение задачи линейного программирования в канонической форме, то её можно решать симплекс-методом. Симплекс-метод – это направленный перебор опорных решений, при котором значение целевой функции на каждом последующем опорном решении меньше, чем на предыдущем (для задачи минимизации).
Для решения симплекс-методом задачи линейного программирования в канонической форме необходимо выполнить ряд последовательных шагов. На каждом шаге либо возникает базис нового опорного решения, причём на новом опорном плане значение целевой функции обязательно меньше, чем на предыдущем (для задачи минимизации), либо меняется базис исходного опорного решения.
Если на очередном шаге удаётся установить оптимальность опорного решения или неограниченность целевой функции на допустимом множестве, то следующий шаг не выполняется.
Предположим, что перед выполнением очередного шага симплекс-таблица для задачи (4.7) приведена к базису
|
(4.8) |
некоторого опорного решения . Можно считать, что среди оценок этого базиса есть положительные оценки (в противном случае- оптимальное решение). Выберем любую из положительных оценок, например,В симплекс-таблице, приведённой к базису (4.8), рассмотрим элементы
|
(4.9) |
s-го столбца и соответствующие свободные члены
|
(4.10) |
Можно считать, что среди элементов (4.9) есть положительные элементы (в противном случае целевая функция не ограничена снизу на допустимом множестве). В этом случае необходимо рассматривать все отношения вида
, где , |
(4.11) |
т. е. отношение свободного члена к соответствующему элементу s-го столбца (4.9) при условии, что последний положителен. Среди отношений (4.11) выбираем наименьшее.
Если , то симплекс-таблицу приводим к новому базису
|
(4.12) |
т.е. из базиса (4.8) исключаем вектор а вместо него вводим векторЕсли(так заведомо случится, если исходное опорное решение не вырождено), то базис (4.12) является базисом нового опорного решениятакого, что. Если же, то (4.12) является новым базисом исходного опорного решения.
Конечность симплекс-метода
Если задача линейного программирования в канонической форме не имеет вырожденных опорных решений, то через конечное число шагов симплекс-метода она будет решена.
При решении задачи, у которой есть вырожденные опорные решения, может случиться, что, перебирая базисы одного и того же опорного решения, через несколько шагов мы вернёмся к исходному базису, т. е. произойдет зацикливание.
Для предотвращения зацикливания необходимо уточнить правило перехода к новому базису. Это сделать можно, например, следующим образом. Среди оценок базиса (4.8) выбираем положительную оценку с наименьшим номером. Если - такая оценка, а наименьшее из отношений (4.11) определено неоднозначно, то берём наименьшее отношениес наименьшим номеромk.
Пример 4.6.
Для изготовления продукции используют 3 вида сырья. При этом можно применять любой из четырех способов производства. Запасы сырья, расход и количество производимой продукции за 1 час работы по каждому способу приведены в таблице 4.9.
Таблица 4.9
Условия задачи линейного программирования примера 4.6
Способ произ- водства Сырьё |
1 |
2 |
3 |
4 |
Запас сырья |
1 |
1 |
2 |
1 |
0 |
18 |
2 |
1 |
1 |
2 |
1 |
30 |
3 |
1 |
3 |
3 |
2 |
40 |
Выпуск продукции |
12 |
7 |
18 |
10 |
|
Требуется найти план производства, при котором будет выпущено наибольшее количество продукции. Обозначим через время использованияj-го способа производства (j=1,2,3,4), получим задачу линейного программирования:
Эту задачу сведём к канонической задаче минимизации:
Cоставим симплекс-таблицу. Симплекс-таблица оказывается приведённой к базису опорного решения(табл. 4.10).
Выбираем положительную и составляем следующие отношения: Так как наименьшее среди них то необходимо перейти к базисуДля этого достаточно выполнить жорданово преобразование всей таблицы с ведущим элементом.
Таблица 4.10
Приведённая к базису симплекс-таблица
-
x1
x2
x3
x4
x5
x6
x7
1
2
1
0
1
0
0
18
1
1
2
1
0
1
0
30
1
3
3
2
0
0
1
40
12
7
18
10
0
0
0
0
Таблица 4.11
Приведённая к базису симплекс-таблица
-
x1
x2
x3
x4
x5
x6
x7
1
2
1
0
1
0
0
18
0
-1
1
1
-1
1
0
12
0
1
2
2
-1
0
1
22
0
-17
6
10
-12
0
0
-216
Базис является базисом опорного решения =(18;0;0;0;0;12;22). При этомв то время, как. Выбираем оценкуи составляем отношенияНаименьшим среди них является. Следовательно, переходим к базисуПолучим таблицу 4.12.
Таблица 4.12
Приведённая к базису симплекс-таблица
-
x1
x2
x3
x4
x5
x6
x7
1
2
1
0
1
0
0
18
0
-3/2
0
0
-1/2
1
-1/2
1
0
1/2
1
1
-1/2
0
1/2
11
0
-22
-4
0
-7
0
-5
-326
Все оценки базиса неположительны. Следовательно,оптимальное решение канонической задачи минимизации. Поэтомуоптимальное решение исходной задачи. При этомf(β)=326. Таким образом, для того чтобы выпустить наибольшее количество продукции при имеющихся запасах сырья, необходимо в течение 18 ч использовать первый способ производства и в течение 11 ч – четвёртый. В результате будет произведено 326 единиц продукции.