
- •Н. В. Алексенко р. И. Воробьева
- •Оглавление
- •Введение
- •1. Основные методы решения задач линейного программирования
- •1.1. Введение в линейное программирование
- •1.1.1. Общая задача оптимизации
- •1.1.2. Задачи линейного программирования
- •1.1.3. Стандартная и каноническая задачи линейного программирования
- •1.2. Графический метод решения задачи линейного программирования
- •1.3. Симплекс-метод
- •1.3.1. Идея симплекс-метода
- •1.3.2. Алгоритм симплекс-метода
- •Алгоритм симплекс-метода
- •Алгоритм поиска первоначального опорного плана
- •1.4. Двойственность в линейном программировании
- •1.4.1. Постановка двойственной задачи
- •1.4.2. Теоремы двойственности
- •1.4.3. Двойственный симплекс-метод
- •1.4.4. Экономическая интерпретация задачи, двойственной задаче об использовании ресурсов
- •Исходная задача
- •Двойственная задача
- •1.5. Вопросы для самопроверки
- •2.1. Постановка задачи
- •2.2. Построение первоначального опорного плана транспортной задачи методом наименьших затрат
- •2.3. Проверка найденного опорного плана на оптимальность
- •2.4. Переход от одного опорного плана транспортной задачи к другому
- •2.5. Альтернативный оптимум
- •2.6. Открытая модель транспортной задачи
- •2.7. Приложение транспортной задачи к решению некоторых экономических задач
- •2.8. Вопросы для самопроверки
- •3. Целочисленное программирование
- •3.1. Общая постановка задачи
- •3.2. Метод отсечения Гомори
- •3.3. Графический метод решения задачи целочисленного программирования
- •3.4. Вопросы для самопроверки
- •4. Теория игр
- •4.1. Основные понятия
- •4.2. Решение игр 2 х 2 в смешанных стратегиях графическим способом
- •4.3. Решение игр 2 х n графическим способом
- •4.4. Решение игры n х 2 графическим способом
- •4.5. Сведение матричной игры m X n к задаче линейного программирования (решение любой матричной игры)
- •Функции дохода
- •6.2. Способы представления графов
- •6. 3. Некоторые задачи теории графов
- •6.3.1. Поиск кратчайшего пути в графе
- •Алгоритм поиска кратчайшего пути
- •6.3.2. Поиск кратчайшего гамильтонова цикла
- •6.4. Вопросы и задачи для самопроверки
- •7. Оптимизация сетевого графика
- •7. 1. Сетевая модель. Основные понятия
- •7.2. Основные требования к сетевому графику
- •7.3. Расчет временных параметров сетевого графика
- •7.3.1. Расчет параметров событий
- •Учитывая введенное в п.7.1 определение критического пути и введенные формулы (7.1–7.3), можно записать алгоритм нахождения критического пути.
- •7.3.2. Расчет параметров работ
- •7.3.3. Сетевое планирование в условиях неопределенности
- •7.4. Вопросы и задачи для самопроверки
- •8. Решение задач на компьютере
- •8.1. Решение задач с использованием системы Mathcad
- •8.2. Решение задач линейного программирования с помощью приложения Excel
- •Заключение
- •Библиографический список
- •Приложение
- •Алексенко Наталья Владимировна
- •Воробьева Раиса Ивановна
- •Математика
- •Основные задачи
- •Математического программирования
- •И реализация их на компьютере
- •644099, Омск, ул. Красногвардейская, 9
1.3. Симплекс-метод
1.3.1. Идея симплекс-метода
Как уже указывалось, реальные задачи линейного программирования содержат, как правило, большое число ограничений и неизвестных. К числу общих универсальных методов, позволяющих найти решение любой задачи линейного программирования относится прежде всего так называемый симплекс-метод или метод последовательного улучшения плана.
С самого начала отметим, что симплекс-метод предназначен для решения канонической задачи линейного программирования (п. 1.1.3). Итак, рассмотрим задачу линейного программирования с ограничениями в виде уравнений:
(1.3.1)
Среди неотрицательных решений системы уравнений (1.3.1) нужно найти такое, которое максимизирует функцию f. Для начала работы по симплекс-методу требуется, чтобы заданная система уравнений была приведена к виду, когда какие-то из неизвестных выражены через остальные неизвестные, причем свободные члены этих выражений неотрицательны.
Неизвестные системы, которые выражены через остальные, называются базисными. Остальные неизвестные называются свободными.
Д
(ограничение
по ресурсу
(ограничение
по ресурсу
),
Приведем
ее к каноническому виду, вводя
дополнительные неотрицательные
переменные
.
(1.3.2)
Заметим,
что переменные
несут определенный экономический смысл,
они определяют остатки ресурсов
и
соответственно. Полученную систему
уравнений (1.3.2) можно легко разрешить
относительно переменных
.
Таким образом, переменные – базисные, а – свободные. Придавая свободным переменным произвольные значения, будем получать значения базисных переменных .
Пусть
тогда
.
Решение системы соответствующее нулевым значениям свободных переменных, называется базисным решением.
В нашем примере (0; 0; 150; 300) – базисное решение.
Очевидно,
разрешив систему (1.3.2) относительно
другого набора свободных и базисных
переменных, получим другое базисное
решение. Например, разрешив систему
(1.3.2) относительно базисных переменных
:
и придавая свободным переменным
и
нулевые значения, получим второе базисное
решение – (300; 0; –150; 0).
Обратим внимание, что второе базисное решение не удовлетворяет условию неотрицательности.
Базисное решение, удовлетворяющее условию неотрицательности называется опорным планом.
В нашем примере первое базисное решение (0; 0; 150; 300) является опорным планом, а второе базисное решение (300; 0; –150; 0) не является опорным планом. Важность понятия опорного решения определяет следующая основная теорема линейного программирования. Если каноническая задача линейного программирования разрешима, то её оптимальный план содержится среди конечного числа её опорных планов.
Из этой теоремы следует, что оптимальное решение канонической задачи линейного программирования может быть найдено путем перебора ее опорных планов, число которых конечно. Теоретически возможен такой подход к решению задачи линейного программирования: найти все опорные планы и выбрать из них оптимальный, т. е. тот, на котором f максимальна.
Идея симплекс-метода состоит в отказе от простого перебора и состоит из следующих этапов:
построение начального опорного плана;
проверка опорного плана на оптимальность;
если опорный план не является оптимальным, то переходим к новому опорному плану, на котором значение целевой функции f больше, чем на предыдущем плане.
После нескольких шагов достигается оптимальный опорный план.
Рассмотрим реализацию идеи симплекс-метода на примере задачи об оптимальном использовании ресурсов.
Ранее
мы получили опорный план (0; 0; 150; 300), он
соответствует системе
(1.3.3)
значение
целевой функции на этом плане
.
В этом плане переменные
принимают минимально возможные значения
равные нулю. Легко понять, что этот
опорный план не оптимален, т. к.
можно увеличить за счет увеличения
любой из свободных переменных
.
Это связано с тем, что коэффициенты при
и
в записи f
положительны. При этом более выгодно
увеличивать
,
т. к. коэффициент при
в записи f
больше, чем
при
.
Не меняя значении
будем увеличивать
до максимально возможного значения.
Из
условия неотрицательности
и
,
учитывая что
,
получаем:
Откуда
с учетом неотрицательности
.
Следовательно
.
При
переменная
окажется равной нулю, а
=
150 –100 = 50. Таким образом, мы получили
новый опорный план
,
который соответствует системе, в которой
базисные переменные
выражены через свободные –
.
Чтобы записать систему в новых базисных
переменных из второго уравнения системы
(1.3.3) выразим
и подставим полученное для
выражение в первое уравнение:
откуда
(1.3.4)
П
ереход
от системы (1.3.3) к новой системе (1.3.4)
будем кратко описывать так: мы ввели в
базис переменную
и вывели из базиса переменную
,
т. е. поменяли местами
с
в наборе базисных и наборе свободных
переменных, и обозначать .
Заметим,
что
при этом
,
что больше чем значение
,
т. е. новый опорный план лучше предыдущего.
Чтобы
узнать является ли новый опорный план
оптимальным нужно выразить
через новые свободные переменные
,
откуда
.
Из формулы для видно, что значение можно увеличивать только за счет увеличения , так как при увеличении целевая функция будет уменьшаться, т. к. переменная входит в выражение для с отрицательным коэффициентом.
Определим
границу роста переменной
,
сохраняющую неотрицательности переменных
и
,
при этом
как свободная переменная:
следовательно,
диапазон изменения переменной
определяется неравенством
,
а её максимально возможное значение
.
При
переменная
,
а
.
Таким
образом,
вводим в базис, а
выводим из базиса и получаем следующий
опорный план
Чтобы проверить его на оптимальность
нужно определить знаки коэффициентов
при свободных переменных
в записи
,
предварительно разрешив систему (1.3.4)
относительно базисных переменных
и
:
откуда
.
Так как в записи целевой функции все
коэффициенты при свободных переменных
отрицательны, то дальнейшее улучшение
f
невозможно.
То есть план
является оптимальным и
.