- •Содержание
- •Введение
- •Тема 1 Введение в линейное программирование
- •1.1 Исторический экскурс
- •1.2 Ограничения в модели линейного программирования
- •1.3 Графическое решение задачи линейного программирования
- •1.4 Графический анализ чувствительности
- •1.4.1 Изменение коэффициентов целевой функции
- •1.4.2 Стоимость ресурсов
- •Контрольные вопросы
- •Тема 2 Симплекс-метод
- •2.1 Общая постановка задачи линейного программирования
- •2.2 Некоторые свойства планов
- •2.3 Алгоритм симплекс-метода
- •Контрольные вопросы
- •Тема 3 Двойственная задача и анализ чувствительности
- •3.1 Постановка двойственной задачи
- •3.2 Основные теоремы о двойственности
- •3.3 Решение двойственных задач
- •3.4 Двойственный симплекс-метод
- •Контрольные вопросы
- •Тема 4 Анализ чувствительности оптимального решения
- •4.1 Матричное представление симплекс-таблиц
- •Анализ чувствительности
- •4.2.1 Изменения, влияющие на допустимость решения
- •4.2.2 Изменения, влияющие на оптимальность решения
- •Контрольные вопросы
- •Тема 5 Целочисленное линейное программирование
- •5.1 Метод ветвей и границ
- •Пример 5.1
- •5.2 Метод отсекающих плоскостей
- •Пример 5.2
- •6.1.2 Интерпретация метода потенциалов как симплекс-метода
- •6.1.3 Определение начального решения
- •6.1.4 Метод потенциалов
- •6.2 Задача о назначениях
- •Контрольные вопросы
- •Тема 7 Основы сетевого планирования
- •7.1 Основные понятия теории графов
- •Пример 7.1 График реконструкции промышленного цеха
- •7.2 Метод критического пути
- •Построение временного графика
- •Определение запасов времени
- •Контрольные вопросы
- •Тема 8 Задача о максимальном потоке
- •8.1 Постановка задачи о максимальном потоке
- •8.2 Решение задачи о максимальном потоке. Алгоритм Фалкерсона
- •8.3 Алгоритм Эдмондса-Карпа
- •Контрольные вопросы
- •Приложение а
- •Библиографический список
- •Заключение
6.1.4 Метод потенциалов
После определения начального решения с помощью одного из методов, описанных выше, применяется алгоритм, позволяющий найти оптимальное решение транспортной задачи.
На основе симплексного условия оптимальности среди текущего множества небазисных переменных определяется вводимая в базис переменная, которая улучшит значение целевой функции. Если условие оптимальности выполняется для всех небазисных переменных, вычисления заканчиваются, в противном случае необходимо перейти ко второму шагу.
С помощью симплексного условия допустимости определяется исключаемая из базиса переменная. Происходит изменение базиса и возврат к первому шагу.
При изменении базиса в данном случае не используются вычисления, выполняемые при реализации симплекс-метода, - специальная структура транспортной таблицы позволяет значительно упростить вычисления.
Решим транспортную задачу из примера 6.1, используя начальное решение, полученное методом северо-западного угла (таблица 6.2).
В методе потенциалов каждой i-й строке и каждому j-му столбцу транспортной таблицы ставятся в соответствие числа (потенциалы или двойственные переменные) ui и vj. Для каждой базисной переменной xij потенциалы ui и vj удовлетворяют уравнению ui + vj=cij.
В рассматриваемом примере имеем 7 переменных (потенциалов) и 6 уравнений, соответствующих шести базисным переменным. Чтобы найти значения потенциалов из этой системы уравнений, нужно присвоить одному из них произвольное значение (обычно полагают u1=0) и затем последовательно вычислять значения остальных потенциалов.
Поскольку для базисных клеток верны равенства u1+v1=с11=10 и u1+v2=с12=2, то находим, что v1=10 и v2=2. Далее последовательно находим значения для u2 из равенства u2+v2=с22=7. Оно будет равно u2=5. Далее легко находим потенциалы v3, v4 из равенств u2+v3=с23=9 и u2+v4=с24=20. То есть v3=4 и v4=15. И последний потенциал u3 находим из условия, что u3+v4=с24=18. Он равен u3=3.
Теперь вычислим выражения ui + vj - cij для всех небазисных переменных.
-
Небазисные переменные
Значения ui + vj - cij
х13
u1+v3-c13=0+4-20=-16
х14
u1+v4-c14=0+15-11=4
x21
u2+v1-c21=5+10-12=3
x31
u3+v1-c31=3+10-4=9
x32
u3+v2-c32=3+2-14=-9
x33
u3+v3-c33=3+4-16=-9
Вычисленные значения совместно с нулевыми значениями для базисных переменных (поскольку ui + vj - cij=0 для любой базисной переменной хij) фактически являются коэффициентами z-строки симплекс-таблицы.
базис |
x11 |
x12 |
x13 |
x14 |
x21 |
x22 |
x23 |
x24 |
x31 |
x32 |
x33 |
x34 |
|
z |
0 |
0 |
-16 |
4 |
3 |
0 |
0 |
0 |
9 |
-9 |
-9 |
0 |
|
Поскольку в транспортной задаче ведется поиск минимума стоимости перевозок, то вводимой в базис будет переменная, имеющая наибольший положительный коэффициент в z-строке. В данном случае вводимой будет переменная х31.
Описанные вычисления обычно выполняются непосредственно в транспортной таблице, как показано в таблице 6.4. Для потенциалов в таблицу добавляем еще один столбец справа и строку снизу. В этом случае нет необходимости в явном виде выписывать уравнения потенциалов. Вычисления в транспортной таблице начинаются с присвоения потенциалу u1=0. Затем находим v-потенциалы в первой строке. Потом, используя v2, находим u2 и так далее находим все потенциалы. После этого вычисляем для всех небазисных переменных величины ui + vj - cij и записываем их в правом нижнем углу соответствующей ячейки транспортной таблицы.
Определив вводимую в базис переменную x31, далее следует определить исключаемую переменную. Для этого строим цикл (маршрут перевозок, начинающийся и заканчивающийся во вводимой переменной). Цикл состоит из последовательности горизонтальных и вертикальных отрезков (но не диагональных), соединяющих ячейки, соответствующие текущим базисным переменным, и ячейку, соответствующую вводимой переменной. При этом все ячейки, в которых делается поворот, меняют значения. В нечетных вершинах цикла увеличиваем на перевозки, а в нечетных уменьшаем на . Значение выбирается так, чтобы одна базисная переменная стала равной нулю там, где отнимается и в ячейке, вводимой в базис, значение увеличится на , т.е. она станет базисной.
Таблица 6.4
-
мельницы
1
2
3
4
предло-
элеваторы
жение
1
-
10
+
2
20
11
u1=0
5
10
-16
4
15
2
12
-
7
9
+
20
u1=5
3
5
15
5
25
3
+
4
14
16
-
18
u1=3
9
-9
-9
10
10
Спрос
5
15
15
15
50
v1=10
v2=2
v3=4
v4=15
Понятно, что надо выбрать как минимум всех стоимостей перевозок сij , находящихся на четных вершинах цикла. Тогда выполнятся два условия цикла (маршрута перевозок):
Должны выполняться ограничения на спрос и предложение.
Ни по какому отрезку маршрута не должны выполняться перевозки с отрицательными объемами грузов.
Подобный цикл представлен в таблице 6.4. Он начинается из ячейки (3,1) и там же заканчивается и перевозит по всем отрезкам цикла 5 единиц груза.
Таблица 6.5
-
мельницы
1
2
3
4
предло-
элеваторы
жение
1
10
-
2
20
+
11
u1=0
-9
15
-16
4
15
2
12
+
7
9
-
20
u1=5
-6
0
15
10
25
3
4
14
16
18
u1=3
5
-9
-9
5
10
Спрос
5
15
15
15
50
v1=1
v2=2
v3=4
v4=15
Цикл проходит через ячейки х31, х34, х24, х22, х12, х11 и х31. В каждой ячейке цикла изменяем значения на =min(x34, х22, х11)=5. В нечетных прибавляем 5 единиц, а в четных ячейках уменьшаем на 5единиц. Получится таблица 6.5.
Новая суммарная стоимость перевозок равна
f=15*2+5*4+0*7+15*9+5*18+10*20=475.
В новой транспортной таблице 6.5, используя новые базисные переменные, находим новые потенциалы. Они все будут принимать прежние значения, кроме v1=1. Находим также в небазисных переменных разности ui + vj - cij и записываем в правом нижнем углу. Максимальное положительное значение находится в ячейке (1,4) (оно равно +4), следовательно, вводить будем переменную х14. Строим также цикл через ячейки х14, х12, х22 и х14, по которому перебросим 10 единиц груза. В результате получим транспортную таблицу 6.6.
Таблица 6.6
-
мельницы
1
2
3
4
предло-
элеваторы
жение
1
10
2
20
11
u1=0
-13
5
-16
10
15
2
12
7
9
20
u1=5
-10
10
15
-4
25
3
4
14
16
18
u1=7
5
-5
-5
5
10
Спрос
5
15
15
15
50
v1=-3
v2=2
v3=4
v4=11
Новая суммарная стоимость перевозок равна
f=5*2+5*4+10*7+15*9+10*11+5*18=435.
Найдем для нового базисного решения потенциалы ui и vj. Теперь новые значения величин ui + vj - cij для всех небазисных переменных хij отрицательные. Поэтому решение, представленное в таблице 6.6, оптимально.
На этом вычисления заканчиваются, и выписывается решение транспортной задачи:
От элеватора |
До мельницы |
Количество зерновозов |
1 |
2 |
5 |
1 |
4 |
10 |
2 |
2 |
10 |
2 |
3 |
15 |
3 |
1 |
5 |
3 |
4 |
5 |
Минимальная стоимость перевозок равна 435 тысяч рублей.
