- •Методы оптимальных решений курс лекций
- •Введение
- •Тема 1. Основы исследования операций
- •Основные определения
- •Типичные задачи исследования операций
- •Общая постановка задачи исследования операции.
- •Классификация задач исследования операций
- •Тема 2. Задачи линейного программирования
- •Общая задача линейного программирования
- •Допустимые базисные решения и многогранник решений
- •Симплексный метод
- •Решение задачи отыскания максимума линейной функции
- •Отыскание минимума линейной функции
- •Определение первоначального допустимого базисного решения
- •Особые случаи симплексного метода
- •Неединственность оптимального решения
- •Вырожденное базисное решение
- •Отсутствие конечного оптимального решения
- •Метод искусственного базиса (м-метод)
- •Двойственные задачи
- •Симметричная пара
- •Несимметричная пара
- •Смешанная пара
- •Экономическая интерпретация двойственной задачи
- •Решение двойственной задачи и определение интервалов устойчивости двойственных оценок оптимального решения.
- •Задачи целочисленного программирования
- •Тема 3. Транспортная задача
- •Экономико-математическая модель транспортной задачи
- •Первоначальное распределение поставок методом наименьших затрат
- •Метод «северо-западного угла»
- •Проверка плана на оптимальность. Метод потенциалов
- •Тема 4. Задачи динамического программирования
- •Общая постановка задачи
- •Принцип оптимальности и уравнения Беллмана
- •Пример выбора оптимального маршрута
- •Заключение
- •Литература
- •Содержание
- •Тема 1. Основы исследования операций 3
- •1.1. Основные определения 3
- •Тема 2. Задачи линейного программирования 9
- •Тема 3. Транспортная задача 35
- •Тема 4. Задачи динамического программирования 49
Проверка плана на оптимальность. Метод потенциалов
Определение первоначального опорного плана фактически соответствует выбору начального базисного решения задачи линейного программирования при использовании симплексного метода. Количество заполненных клеток равно n+m-1.
После определения первоначального опорного плана выполняем следующий этап решения транспортной задачи. Каждой строке матрицы поставок назначим потенциал Ui (i=1…m), каждому столбцу матрицы поставок назначим потенциал Vj (j=1…n). Потенциалы назначаются таким образом, чтобы для заполненных клеток таблицы выполнялись равенства:
(3.5)
В теории исследования
операций показано, что суммы
соответствует коэффициентам при
переменных xij
в выражении
целевой функции. Эти суммы также называют
оценками
клеток.
Система (3.5) является системой из (n+m-1) линейно независимых уравнений относительно (n+m) неизвестных потенциалов. Значение одного из потенциалов может быть выбрано произвольным образом, тогда остальные будут определены однозначно. Можно показать, что оценки клеток не зависят от произвола в выборе первого потенциала.
После назначения потенциалов следует вычислить оценки для всех свободных клеток. Транспортная задача является задачей минимизации целевой функции, поэтому если среди свободных клеток есть клетки с отрицательными оценками, то план поставок не является оптимальным и может быть улучшен за счет изменения базисного решения, а именно за счет перевода в базис соответствующей переменной. В решении транспортной задачи этот этап называется «передачей поставки по циклу».
Для нового опорного плана вновь вычисляются оценки клеток и, при необходимости выполняется новая передача поставки. Критерием оптимальности полученного решения является неотрицательность оценок всех клеток таблицы поставок.
Пример 14. Пусть имеется первоначальный опорный план, полученный методом наименьших затрат:
|
Потребители |
МЗ 1 |
МЗ 2 |
МЗ 3 |
Поставщики |
Мощности |
90 |
80 |
130 |
Ферма 1 |
100 |
6
|
5
|
4 100 |
Ферма 2 |
75 |
3 75 |
7
|
5
|
Ферма 3 |
125 |
5 15 |
6 80 |
4 30 |
Составим систему уравнений, соответствующую системе (3.5):
(3.6)
Пусть U1=0. Из первого уравнения системы (3.6) следует, что V3= – 4. Следовательно, из последнего уравнения системы получим U3=0. Далее из четвертого уравнения следует, что V2= – 6. Решая третье уравнение, получаем V1= – 5. И, наконец, из второго уравнения определяем, что U2=2.
Удобно записывать потенциалы строк и столбцов непосредственно в таблице (в дополнительном столбце и дополнительной строке), указывая в скобках номер шага в решении системы:
|
Потребители |
МЗ 1 |
МЗ 2 |
МЗ 3 |
Потенциалы строк |
Поставщики |
Мощности |
90 |
80 |
130 |
Ui (i=1, 2, 3) |
Ферма 1 |
100 |
6
|
5
|
4 100 |
0 (1) |
Ферма 2 |
75 |
3 75 |
7
|
5
|
2 (6) |
Ферма 3 |
125 |
5 15 |
6 80 |
4 30 |
0 (3) |
Потенциалы столбцов Vj (j=1, 2, 3) |
-5 (5) |
-6 (4) |
-4 (2) |
|
|
Вычислим оценки клеток, запишем их во вспомогательную таблицу:
1 |
-1 |
0 |
0 |
3 |
3 |
0 |
0 |
0 |
Клетка (1,2) имеет отрицательную оценку -1. Следовательно, включив в план поставок клетку (1,2) и организовав перевозку x12 единиц продукции по соответствующему маршруту, получим изменение значения целевой функции на величину (-1) x12. Определим величину передаваемой поставки. Введем следующие понятия.
Циклом в матрице называется замкнутая ломаная с вершинами в клетках и звеньями, лежащими вдоль строк и столбцов матрицы, в каждой вершине которой встречаются два звена, одно из них располагается по строке, другое по столбцу.
Циклом пересчета называется такой цикл в таблице с базисным распределением поставок, при котором одна из его вершин лежит в свободной клетке, остальные – в заполненных. Цикл пересчета называется означенным, если в его вершинах расставлены знаки «+» и «–» так, что в свободной клетке стоит «+», а любые две соседние вершины имеют разные знаки.
Для каждой свободной клетки базисного распределения поставок существует единственный корректный в плане расстановки знаков цикл пересчета.
Поставка, передаваемая по циклу, определяется как минимум среди поставок в клетках цикла со знаком «–». Для перехода к новому базисному решению в клетках со знаком «+» следует увеличить значения поставок на величину поставки, передаваемой по циклу, а в клетках со знаком «–» уменьшить на ту же величину.
Для нашего примера в цикл пересчета будут включены клетки (1,2), (1,3), (3,2), (3,3). Расставим знаки в клетках-вершинах цикла:
|
Потребители |
МЗ 1 |
МЗ 2 |
МЗ 3 |
Поставщики |
Мощности |
90 |
80 |
130 |
Ферма 1 |
100 |
6
|
5 +
|
4 – 100 |
Ферма 2 |
75 |
3 75 |
7
|
5
|
Ферма 3 |
125 |
5 15 |
6 – 80 |
4 + 30 |
Величина поставки, передаваемой по циклу, равна min(80, 100) = 80. Определяем новое базисное распределение поставок и определяем потенциалы строк и столбцов:
|
Потребители |
МЗ 1 |
МЗ 2 |
МЗ 3 |
Потенциалы строк |
Поставщики |
Мощности |
90 |
80 |
130 |
Ui (i=1, 2, 3) |
Ферма 1 |
100 |
6
|
5 80 |
4 20 |
0 (1) |
Ферма 2 |
75 |
3 75 |
7
|
5
|
2 (5) |
Ферма 3 |
125 |
5 15 |
6
|
4 110 |
0 (3) |
Потенциалы столбцов Vj (j=1, 2, 3) |
-5 (4) |
-5 (6) |
-4 (2) |
|
|
Вычислим оценки клеток, запишем их во вспомогательную таблицу:
1 |
0 |
0 |
0 |
4 |
3 |
0 |
1 |
0 |
Оценки всех клеток неотрицательные, т.е. выполнен критерий оптимальности. Найденное базисное распределение поставок является оптимальным. Суммарные затраты на перевозку продукции равны
F=1300+(–1)∙80=1220.
Замечание 1. Поставка, передаваемая по циклу, не может быть меньше минимума поставок в клетках цикла со знаком «–». Если она будет меньше указанного минимума, то ни одна из клеток цикла не будет иметь нулевой поставки, а, следовательно, число заполненных клеток станет равным n+m и решение не будет базисным.
Замечание 2. Поставка, передаваемая по циклу, не может быть больше минимума поставок в клетках цикла со знаком «–». Если она будет больше указанного минимума, то решение становится недопустимым.
Замечание 3. Если минимум поставок клеток цикла со знаком «–» одновременно достигается в нескольких клетках, то после передачи поставки по циклу сразу в нескольких клетках получаем нулевую поставку. Для того чтобы решение оставалось базисным, число заполненных клеток должно оставаться равным n+m–1. Поэтому только одну из освободившихся клеток считаем свободной, а в остальных необходимо поставить нулевые поставки, т.е. считать эти клетки заполненными значением 0. Подобное решение является вырожденным, оно уже рассматривалось в задачах линейного программирования.
Замечание 4. Если после нахождения оптимального решения среди оценок свободных клеток есть нулевые, то решение является неединственным. В выражении целевой функции через неосновные (свободные) переменные коэффициенты при соответствующих свободных переменных равны нулю. Перераспределение поставки в клетку с нулевой оценкой не изменяет оптимальное значение суммарных затрат.
