- •Содержание
- •7. Задача об оптимальном назначении 38
- •Методы оптимизации
- •1. Основные понятия линейного программирования
- •Рассмотрим правила перехода от одной модели к другой.
- •1.1 Переход от стандартной модели злп к канонической
- •1.2. Переход от канонической модели задачи лп к стандартной
- •1.3. Переход от основной модели задачи лп к канонической
- •2. Геометрическая иллюстрация решения задач лп
- •3. Двойственность в задачах линейного программирования
- •3.1. Построение двойственных моделей
- •Правило построения двойственной модели:
- •3.2. Теоремы двойственности
- •3.3. Экономическая интерпретация переменных двойственной задачи
- •4. Симплекс-метод в задачах лп
- •4.1. Основные положения симплекс-метода
- •4.2. Правило преобразования симплекс-таблиц
- •4.3. Геометрическая интерпретация симплекс-метода
- •5. Метод искусственного базиса
- •5.1. Постановка задачи
- •5.2. Теоремы метода
- •Замечания к теоремам
- •5.3. Примеры решения задач
- •Индивидуальные задания Задание 1
- •6. Транспортная задача линейного программирования
- •6.1. Транспортная задача линейного программирования
- •6.1.1. Постановка задачи
- •6.1.2. Математическая модель
- •Функция цели задачи по критерию минимума суммарных затрат –
- •6.2. Методы определения начального опорного плана
- •6.2.1. Метод северо-западного угла
- •6.2.2. Метод наименьшей стоимости
- •6.2.3. Метод двойного предпочтения
- •6.3. Метод потенциалов
- •6.4. Построение цикла и определение величины перераспределения груза
- •6.5. Открытая транспортная задача
- •6.6. Проблема вырожденного плана задачи
- •Индивидуальные задания
- •7. Задача об оптимальном назначении
- •7.1. Постановка задачи
- •7.2. Математическая модель
- •7.3. Решение задачи о назначениях венгерским методом
- •7.4. Решение задачи максимизации
- •Индивидуальные задания
- •Библиографический список
- •Линейное программирование
- •620034 ,Екатеринбург, ул. Колмогорова 66, УрГупс
6.4. Построение цикла и определение величины перераспределения груза
Циклом в таблице перевозок называется ломаная линия с вершинами в клетках и ребрами, расположенными вдоль строк или столбцов, удовлетворяющая двум требованиям:
а) ломаная должна быть связной, т.е. из любой ее вершины можно попасть в другую вершину, двигаясь по ребрам;
б) в каждой вершине цикла сходятся ровно два ребра одно по строке, другое по столбцу.
Замечание: в цикле возможны самопересечения, но они происходят только не в вершинах цикла. Примеры построения циклов показаны ниже.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Теорема 3. Если в таблице перевозок m строк и n столбцов, и перевозками заполнено (m+n-1) клеток, то существует цикл, одна из вершин которого расположена в свободной клетке, а все остальные вершины в занятых клетках. Такой цикл называется циклом пересчета свободной клетки.
Т еорема 4. В таблице перевозок для каждой свободной клетки существует единственный цикл пересчета.
Метод потенциалов позволяет не только оценить оптимальность плана, но и улучшить его с помощью цикла пересчета свободной клетки.
Алгоритм метода потенциалов
Поставим в соответствие каждой станции переменную , а каждой станции – переменную .
Для каждой заполненной клетки ( ) составим уравнение . Придадим значение (можно любое другое) и находим все остальные потенциалы.
Проверим оптимальность опорного решения. Для этого вычисляем сумму потенциалов для свободных клеток. Если найденная сумма (обозначим ее ) меньше стоимости перевозок, то есть для всех свободных клеток, то опорное решение является оптимальным. Запишем решение задачи: план перевозок, минимальное значение функции цели. Если это условие не выполняется хотя бы в одной клетке, то опорное решение не оптимально и надо перейти к следующему опорному плану. Найдем разность (невязку) для всех свободных клеток и будем записывать ее в таблице в нижний правый угол клетки, если . Затем выбираем ту клетку, где невязка максимальна (если два нарушения одинаковы, то выбираем любую из клеток).
В выбранную клетку нужно поставить перевозку. Для этого строим цикл пересчета свободной клетки: этот цикл должен иметь одну вершину в отмеченной свободной клетке, а все остальные – в занятых.
Пронумеруем вершины цикла, начиная с пересчитываемой свободной клетки. Определим величину сдвига по циклу θ, как минимальную из перевозок стоящих в четных вершинах цикла.
Вычтем величину θ из перевозок в четных вершинах цикла и прибавим ее к перевозкам в нечетных вершинах. Получен новый опорный план. После этого переходим к пункту 3.
Пример
Продолжим решение задачи, на примере которой рассмотрены методы нахождения первого опорного плана. Напомним, что за опорное решение мы решили принять решение, полученное при расчете методом двойного предпочтения.
С помощью метода потенциалов найдем оптимальное решение. Придадим потенциалу U2 значение 0, а остальные потенциалы для занятых клеток определим из системы уравнений (6.5):
Из этой системы, подставляя в нее значение , найдем остальные потенциалы и запишем их в таблицу. Например, , и т.д.
Получим таблицу:
Потенциалы |
V1 = 3 |
V2 = 7 |
V3 = 9 |
V4 = 15 |
V5 = 8 |
Запасы |
U1 = -4 |
4
|
3 21 – |
4
|
11 19 + |
9
|
40 |
U2 = 0 |
3 20 |
4 + |
7
|
15 2 – |
8 8 |
30 |
U3 = -7 |
7
|
4
|
2 7 |
8 3 |
15
|
10 |
Потребности |
20 |
21 |
7 |
24 |
8 |
|
Проверим выполнение условия оптимальности плана (1.6):
План не является оптимальным, так как имеются нарушения условий (6.6) в клетках A1-B3, A2-B2 и A2-B3. Наибольшая невязка (нарушение) равна ∆ = 3, следовательно, пересчет начинаем с клетки A2-B2. Этой клетке присваивается номер 1 и строится цикл пересчета по правилам изложенным выше. Все клетки в которых лежат вершины цикла последовательно нумеруются, четным вершинам приписывается знак –, а нечетным +. Величина сдвига по циклу находится как минимальное значение из всех перевозок в четных вершинах цикла и равна . Она вычитается из перевозок в четных вершинах цикла и прибавляется к перевозкам в нечетных. Получаем новый план, для которого вновь находим потенциалы и проверяем условия (6.6):
|
V1 = 3 |
V2 = 4 |
V3 = 6 |
V4 = 12 |
V5 = 8 |
Запасы |
U1 = -1 |
4
|
3 19 |
4 + |
11 21 |
9
|
40 |
U2 = 0 |
3 20 |
4 2 |
7
|
15
|
8 8 |
30 |
U3 = -4 |
7
|
4
|
2 7 |
8 3 + |
15
|
10 |
Потребности |
20 |
21 |
7 |
24 |
8 |
|
План не является оптимальным, так как условие (6.6) не выполняется в клетке A1-B3 с невязкой ∆=1, следовательно, пересчет начинаем с клетки A1-B3. Величина сдвига по циклу вычитается из перевозок в четных вершинах цикла и прибавляется к перевозкам в нечетных. Получаем новый план, для которого вновь находим потенциалы и проверяем условия оптимальности. Из приведенного примера видно, что фактически цикл пересчета освобождает «невыгодные» клетки с большой стоимостью или, по крайней мере, уменьшает величину перевозки в таких клетках.
|
V1 = 3 |
V2 = 4 |
V3 = 5 |
V4 = 12 |
V5 = 8 |
Запасы |
U1 = -1 |
4
|
3 19 |
4 7 |
11 14 |
9
|
40 |
U2 = 0 |
3 20 |
4 2 |
7
|
15
|
8 8 |
30 |
U3 = -4 |
7
|
4
|
2
|
8 10 |
15
|
10 |
Потребности |
20 |
21 |
7 |
24 |
8 |
|
Опорный план оптимален, так как все невязки равны нулю:
В ычисляем функцию цели:
Ответ: , .