- •Введение
- •Часть 1. Линейное программирование
- •1.1. Построение линейных экономико-математических моделей
- •Примеры задач
- •1.2. Формы записи задач линейного программирования
- •1.3. Свойства решений задач линейного программирования
- •1.4. Геометрический смысл и графический метод решения задач линейного программирования
- •1.5. Симплексный метод решения задач линейного программирования
- •1.6. Симплексный метод с искусственым базисом
- •1.7. Элементы теории двойственности
- •А. Симметричная двойственная пара
- •В. Несимметричная двойственная пара
- •1.8. Основные теоремы двойственности
- •1.9. Транспортная задача
- •Алгоритм метода потенциалов
- •1.10. Задача об оптимальных назначениях
- •Часть 2. Нелинейное программирование
- •2.1. Дробно-линейное программирование
- •2.1.1. Постановка задачи
- •Общую задачу дробно-линейного программирования (в дальнейшем длп) обычно записывают в виде:
- •2.1.2. Графическое решение задач длп
- •2.1.3. Симплекс-метод в длп
- •2.2. Общая задача нелинейного программирования. Классификация вычислительных методов
- •Условия (1) и (2), а также
- •По постановке задачи.
- •2. По характерным чертам алгоритмов.
- •2.3. Эффективные методы одномерной минимизации
- •2.4. Графический метод решения задач нелинейного программирования
- •2.5. Методы минимизации для задач без ограничений, использующие производные
- •2.6. Методы минимизации, не использующие производные
- •2.7. Методы решения задач нелинейного программирования с ограничениями
- •2.7.1. Методы линейной аппроксимации
- •2.7.2. Понятие о методах штрафных функций
- •Список использованной литературы:
- •Содержание
- •Часть 1. Линейное программирование 3
- •Часть 2. Нелинейное программирование 47
1.2. Формы записи задач линейного программирования
Задачи линейного программирования (ЛП), возникающие на практике, описываются линейными соотношениями, которые включают в себя:
-
целевую функцию,
-
ограничения, в общем случае, трех видов: равенств, неравенств со знаком и неравенств со знаком .
Следовательно, в самом общем случае задача линейного программирования имеет вид:
(1.2.1)
Рассмотрим два очевидных утверждения, позволяющих упростить (унифицировать) задачу (1.2.1).
Утверждение 1. Задачу максимизации функции Z(X) можно свести к задаче минимизации функции (–Z(Х)), при этом оптимальные решения будут совпадать, т. е.
, где – оптимальное решение.
Утверждение 2. Решение любой линейной системы неравенств и уравнений всегда можно свести к решению системы только линейных уравнений с неотрицательными переменными.
Действительно, мы можем в нашей задаче использовать только неотрицательные переменные, руководствуясь следующими соображениями:
– если на какую-либо переменную наложено условие хk ≤ 0, то можно ввести новую переменную xk’ = –хk, которая будет неотрицательной;
– если на какую-либо переменную xs не наложено никаких условий, то ее можно заменить на разность двух неотрицательных переменных:
xs = xs’– xs’’, xs’ ≥ 0, xs’’ ≥ 0 (известный факт из теории чисел: любое вещественное число можно представить в виде разности двух неотрицательных чисел).
Кроме того, все ограничения–неравенства можно заменить равенствами, вводя так называемые дополнительные переменные (неотрицательные переменные, вводимые в левую часть ограничения-неравенства с коэффициентами +1 или –1 с целью приравнять левую и правую части ограничения). В результате применения всех этих операций задача линейного программирования сведется к так называемому каноническому виду:
(1.2.2)
или в векторно-матричной форме:
(1.2.3)
Обычно принимают соглашение, что все правые части bi 0, в противном случае соответствующее ограничение умножают на (–1). Ограничения из (1.2.3), включающие две и более переменных, называют основными, а ограничения вида xj 0 – условиями неотрицательности.
Пример 1.2.1. Дана задача:
Приведем ее к каноническому виду. Введем новые переменные так, что . Также для превращения неравенств в равенства введем дополнительные переменные x4 и x5. Заменим целевую функцию: . Тогда получим задачу в каноническом виде:
Нам понадобится еще так называемая векторная форма записи канонического вида задачи линейного программирования:
(1.2.4)
1.3. Свойства решений задач линейного программирования
Введем некоторые важные определения относительно задачи ЛП, записанной в форме (1.2.4):
-
Допустимым решением (планом) задачи ЛП будем называть вектор , удовлетворяющий всем ограничениям задачи.
2. Допустимое решение называется базисным, если ему соответствует разложение вектора правых частей по линейно-независимым векторам . Поскольку данные вектора имеют m компонент, в базисе {} содержится m векторов, значит в допустимом базисном решении (ДБР) может присутствовать не более m положительных компонент xj.
3. ДБР называется невырожденным, если оно содержит ровно m положительных компонент.
4. ДБР называется оптимальным решением (планом), если оно доставляет экстремум целевой функции.
5. Компоненты ДБР, соответствующие векторам его базиса, будем называть базисными переменными, остальные – небазисными.
Обозначим через L множество всех допустимых решений и сформулируем относительно него несколько важных теорем, строгое доказательство которых можно найти в [1]:
Теорема 1. Множество L выпукло.
В задачах линейного программирования L представляет собой, как правило, ограниченную или неограниченную многогранную область. Она состоит из внутренних, граничных и крайних (т. е. таких, которые не могут быть представлены в виде выпуклой линейной комбинации внутренних или граничных) точек.
Теорема 2. Множество L содержит в себе конечное число крайних точек.
Теорема 3. Любую точку X ограниченной области L можно представить в виде выпуклой линейной комбинации крайних точек L.
Теорема 4. Целевая функция Z задачи линейного программирования достигает своего экстремума в крайней точке L – области допустимых решений.
Теорема 5. Если Z достигает экстремума одновременно в нескольких крайних точках L, то такое же значение она принимает и в любой точке, являющейся выпуклой линейной комбинацией этих крайних точек.
Теорема 6. Любая крайняя точка L является ДБР соответствующей задачи линейного программирования. Более того, система крайних точек L совпадает с множеством ДБР.
Последняя теорема имеет важное следствие:
С каждой крайней точкой L связано ровно m линейно-независимых векторов из столбцов матрицы А: {} при условии, что rang A = m.
Очевидно, эти m векторов можно выбрать способами, следовательно, это число есть верхняя граница числа ДБР. Напрашивается простейший метод нахождения экстремума – перебор всех решений, однако даже при сравнительно небольших m и n этот метод практически неприменим. Необходим метод упорядоченного перебора ДБР. Таким и является симплекс-метод Дж. Данцига. Он гарантирует получение оптимального решения либо устанавливает неограниченность целевой функции (отсутствие оптимального решения) не более, чем за 2m шагов.