- •Линейное программирование
- •Часть I Содержание:
- •1. Основные понятия
- •1.1. Примеры моделей, приводящих к задачам линейного программирования
- •Задача о диете
- •1.2. Стандартная и каноническая формы задачи линейного программирования
- •Первая стандартная форма задачи линейного программирования имеет вид
- •Канонической формой задачи линейного программирования называется задача вида
- •5. Ограничения на неотрицательность переменных.
- •1.3. Геометрическая интерпретация задач линейного программирования
- •Решение
- •Решение
- •Решение
- •2. Симплекс-метод
- •2.1. Выпуклые множества и многогранники
- •Доказательство
- •Доказательство.
- •Доказательство
- •2.2. Вершины выпуклого многогранника
- •Определение. Вершиной или крайней точкой выпуклого многогранника называется любая его точка, которая не является внутренней точкой никакого отрезка, целиком принадлежащего этому многограннику.
- •Доказательство
- •Доказательство
- •Доказательство
- •Доказательство
- •2.3. Переход от вершины к вершине
- •2.4. Переход к новому базису
- •2.5. Отыскание оптимального плана
- •Доказательство:
- •Доказательство:
- •2.6. Алгоритм симплекс-метода
- •Этап 1 Просматривается дополнительная строка снизу, где записаны разности .
- •Первая итерация
- •И он достигается на векторе , то этот вектор подлежит выводу из базиса и соответствующая ему строка и будет направляющей строкой.
- •Вторая итерация
- •2.7. Метод искусственного базиса
- •Вариант 1
- •Вариант 2
- •Первая итерация Так как из базиса выводится вектор , то в получающейся симплекс-таблице соответствующий столбец сразу удаляется.
- •Вторая итерация
- •Третья итерация Мы вернулись к исходной задаче и продолжаем решать ее по стандартной схеме.
- •3. Двойственные задачи
- •3.1. Постановка двойственных задач Симметричные двойственные задачи
- •Несимметричная двойственная задача
- •Переменные называется по-разному. Часто их называют учетными, неявными или фиктивными ценами.
- •3.2. Свойства двойственных задач
- •Доказательство.
- •1. Симметричная пара
- •2. Несимметричная пара Доказательство в этом случае почти дословно повторяет предыдущее.
- •Теорема 3. ( в формулировке для несимметричной двойственной задачи)
- •Доказательство.
- •Теорема 3. (в формулировке для симметричной двойственной задачи).
- •3.3. Двойственный симплекс-метод
- •4. Транспортная задача
- •4.1. Постановка задачи
- •Приведение открытой транспортной задачи к сбалансированной
- •4.2. Простейшие свойства транспортной задачи
- •Доказательство
- •Доказательство
- •Доказательство
- •4.3. Методы определения первоначального опорного плана
- •4.3.1. Построение исходного опорного плана (метод северо-западного угла)
- •Пример 1
- •Пример 2
- •4.3.2. Метод минимального (максимального) элемента
- •Пример № 2
- •Решение:
- •4.3.3. Метод аппроксимации Фогеля
- •Решение:
- •4.3.4. Метод двойного предпочтения
- •4.4. Методы проверки опорного плана на оптимальность
- •4.4.1. Потенциалы. Критерий оптимальности плана
- •4.4.2. Дельта-метод
- •4.5. Алгоритм улучшения плана
- •Вторая итерация Этап 1
- •Третья итерация Этап 1
- •Теорема Если все запасы и все потребности целые числа, то оптимальный план перевозок тоже целочисленный. Доказательство
- •4.6. Снятие вырожденности
- •4.6.1. Эпсилон-прием
- •Построение исходного опорного плана.
- •Первая итерация
- •Вторая итерация Этап 1
- •Третья итерация Этап 1
4.4. Методы проверки опорного плана на оптимальность
4.4.1. Потенциалы. Критерий оптимальности плана
Итак, наша транспортная задача имеет вид:
Распишем нашу задачу в векторной форме. Для этого введем векторы
Тогда ограничения задачи (3) могут быть записаны в виде
Как уже говорилось выше, одно из этих ограничений является лишним, и оно может быть вычеркнуто.
Рассмотрим теперь двойственную задачу. Так как ограничений всего m + n, то и соответствующие переменные двойственной задачи обозначим так: (переменные, соответствующие первым m ограничениям) и (переменные, соответствующие последним n ограничениям). Тогда, учитывая вид векторов и вид вектора , запишем двойственную задачу в следующем виде:
Величины называются потенциалами складов, а величины потенциалами пунктов потребления.
Так как одно из ограничений является лишним, то на самом деле одного из потенциалов нет. Для сохранения симметрии всех формул и обозначений
можно просто полагать, скажем, . |
|
Пусть теперь оптимальный опорный план транспортной задачи. Тогда, согласно теореме двойственности, должно выполняться условие
Это и позволяет проверить оптимальность любого опорного плана.
Сам алгоритм выглядит следующим образом:
Один из потенциалов задается произвольно, скажем, полагается .
Рассматривается система линейных уравнений вида для тех наборов индексов i , j , для которых , и находятся потенциалы и всех складов и всех пунктов потребления.
Для всех остальных наборов индексов i , j (для которых ) проверяется условие
.
Если это условие выполняется для всех наборов индексов i , j , для которых , то рассматриваемый план является оптимальным. Если же, хотя бы
для одной пары , |
то план не оптимален. |
Прежде, чем приводить пример, расскажем о том, как реализуется пункт 2 этого алгоритма, когда находятся потенциалы и . Обычно он реализуется следующим образом:
1. Одна из величин или задается произвольно, например, полагается .
2. Затем рассматриваются уравнения вида для тех j , для которых
. Так как известно, то находятся для некоторого множества индексов
3. Для этих индексов рассматриваются уравнения вида:
для тех , которые больше нуля. Так как известны, тот находятся величины для некоторого множества индексов .
4. Далее повторяются пункты 2 (движение по строкам) и 3 (движение по столбцам), пока не определятся все потенциалы.
Проиллюстрируем этот процесс примером, а заодно покажем форму записи результатов при ручном счете.
Пример
Пусть имеется три склада с запасами и четыре пункта потребления с потребностями . Коэффициенты , определяющие стоимость перевозок, заданы матрицей:
Таблица стоимостей перевозок
|
Пункты потребления |
|||
Ск |
3 |
5 |
4 |
5 |
ла |
1 |
2 |
4 |
3 |
ды |
1 |
5 |
6 |
3 |
Построим исходный опорный план методом северо-западного угла. Он имеет вид
2 |
3.1 |
0 |
0 |
0 |
3.9 |
4.2 |
0 |
0 |
0 |
2.8 |
6.3 |
План имеет 6=3+4-1 компонент, поэтому он является невырожденным. Заметим, что для него транспортные расходы равны .
Заготовим матрицу размером (в нашем случае размером 3 4), в которую впишем те коэффициенты , которые соответствуют ненулевым перевозкам нашего плана (смотрите следующую страницу).
Далее действуем следующим образом:
Полагаем .
|
|
|
|
|
|
3 |
5 |
|
|
|
|
2 |
4 |
|
|
|
|
6 |
3 |
Идем по строке.
, следовательно ;
, следовательно . |
Идем по столбцу.
, следовательно .
Идем по строке.
, следовательно .
Идем по столбцу.
, следовательно .
Идем по строке.
, следовательно . |
Таким образом, определились потенциалы всех пунктов и складов и пунктов потребления. Теперь можно закончить заполнение этой таблицы, вписав в пустые клетки суммы , то есть суммы соответствующих потенциалов. В результате получим:
|
3 |
5 |
7 |
4 |
0 |
3 |
5 |
7 |
4 |
-3 |
0 |
2 |
4 |
1 |
|
2 |
4 |
6 |
3 |
В ней жирным шрифтом помечены те , которые использовались для нахождения потенциалов.
Сравнивая с матрицей величин, мы видим, что условие оптимальности плана нарушено в двух местах для и . Следовательно, построенный нами план перевозок не является оптимальным.