Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы решения задач оптимизации. Учебное пособие
.pdf
7.3. Итерационный алгоритм решения транспортной задачи
81
Небазисные переменные
Значения ui + vj – сij
x
14
x
21
x
22
x
31
x
32
x
33
u1 + v4 – c14 = 0 + 5 – 6 = 1
u2 + v1 – c21 = 3 + 2 – 3 = 1
u2 + v2 – c22 = 3 + 7 – 6 = 4
u3 + v1 – c31 = –2 + 2 – 8 = –8
u3 + v2 – c32 = –2 + 7 – 1 = 4
v3 + u4 – c34 = –2 + 2 – 3 = –3
Вычисленные значения совместно с нулевыми значениями для ба-
зисных переменных (поскольку ui + vj – сij = 0 для любой базисной переменной xij) фактически являются коэффициентами f-строки симплекстаблицы.
Базис
x11
x12
x13
x14
x21
x22
x23
x24
x31
x32
x33
x34
f 0 0 0 1 1 4 0 0
–8 4 –3
0
Поскольку в транспортной задаче ведется поиск минимума стоимо-
сти перевозок, вводимой в базис будет переменная, имеющая наибольший
положительный коэффициент в f-строке. В нашем примере в качестве
вводимой можно выбрать либо переменную x22, либо переменную x32.
Пусть вводимой будет переменная x32 (табл. 7.21).
Таблица 7.21
v1 = 2
v2 = 7
v3 = 2
v4 = 5
u1 = 0
2 8 7 8 2
4
6
1
u2 = 3
4
1 6 4
5 6 8
4
u3 = –2
8
–8 1 4 3 –3
3
10
Мы определили, что вводимой в базис переменной является пере-
менная x32. Теперь необходимо выбрать исключаемую из базиса переменную.
Исключаемая из базиса переменная определяется следующим обра-
зом. Выбрав в качестве вводимой переменную x32 мы хотим, чтобы перевозки по маршруту, соответствующему этой переменной, уменьшили общую стоимость перевозок. Какой объем груза можно перевести по этому
маршруту? Обозначим через количество груза, перевозимого по марш-

7. Транспортные модели
82
руту (3, 2) (т.е. x32 = ). Максимально возможное значение определяем
из исходя из выполнения следующих условий.
1. Должны выполняться ограничения на спрос и предложение.
2. Ни по какому маршруту не должны выполняться перевозки с от-
рицательным объемом грузов.
Эти условия позволяют найти значение и определить исключаемую переменную. Сначала построим замкнутый цикл, который начинается и заканчивается в ячейке x32. Цикл должен состоять из последовательности горизонтальных и вертикальных отрезков, соединяющих ячейки,
соответствующие текущим базисным переменным, и ячейку, соответствующую вводимой переменной. В табл. 7.22 показан цикл для вводимой
переменной x32. Для любой вводимой переменной можно построить только один замкнутый цикл.
Теперь найдем значение . Для того чтобы удовлетворить ограничениям по спросу и предложению, надо поочередно отнимать и прибавлять к значениям базисных переменных, расположенных в угловых
ячейках цикла (при этом направление обхода цикла не имеет значения).
Таблица 7.22
v1 = 2
v2 = 7
v3 = 2
v4 = 5
u1 = 0
2
8
7
8 –
2
4 +
6
u2 = 3
4
6 5
6 –
8
4 +
u3 = –2
8
1
3
3
10 –
Новые значения базисных переменных останутся неотрицательными, если будут выполняться следующие неравенства:
x12 = 8 – 0,
х23 = 6 – 0,
х34 = 10 – 0.
Следовательно, наибольшее значение, которое может принять ,
равно 6, при этом переменная х23 обращается в ноль. Затем производим

7.3. Итерационный алгоритм решения транспортной задачи
83
корректировку значений базисных переменных, соответствующих угловым ячейкам замкнутого цикла (табл. 7.23).
Таблица 7.23
v1 = 2
v2 = 7
v3 = 2
v4 = 5
u1 = 0
2 8 7 2 2
10
6
u2 = 3
4 6 5 8
10
u3 = –2
8 1 6 3 3
4
Проверим, как изменилась суммарная стоимость перевозок
f = 82 + 27 + 102 + 108 + 61 + 43 = 148.
Проверим, является ли новое базисное решение оптимальным. Для
этого снова считаем потенциалов строк и столбцов транспортной таблицы.
Таблица 7.24
v1 = 2
v2 = 7
v3 = 2
v4 = 9
u1 = 0
2 8 7 2 2
10
6
u2 = 1
4 6 5 8
10
u3 = –6
8 1 6 3 3
4
Теперь вычислим значения ui + vj – сij для небазисных переменных.
Текущее решение не является оптимальным, вводимой в базис переменной будет переменная x14 (табл. 7.25).
Таблица 7.25
v1 = 2
v2 = 7
v3 = 2
v4 = 9
u1 = 0
2 8 7 2 2
10
6
3
u2 = 1
4
–4 6 2 5 –2
8
10
u3 = –6
8
–12
1
6
3
–7
3
4

7. Транспортные модели
84
Теперь необходимо выбрать исключаемую из базиса переменную.
Для этого строим в текущей транспортной таблице цикл (табл. 7.26) и
определяем максимально возможное количество груза , перевозимого по
маршруту.
Таблица 7.26
v1 = 2
v2 = 7
v3 = 2
v4 = 9
u1 = 0
2
8
7
2 –
2
10
6
u2 = 1
4 6 5 8
10
u3 = –6
8
1
6 +
3
3
4 –
Теперь найдем значение :
x12 = 2 – 0,
х34 = 4 – 0.
Следовательно, наибольшее значение, которое может принять ,
равно 2, при этом переменная х12 обращается в ноль. После корректировки
значений базисных переменных, соответствующих угловым ячейкам замкнутого цикла, получим новое базисное решение (табл. 7.27).
Таблица 7.27
v1 = 2
v2 = 7
v3 = 2
v4 = 9
u1 = 0
2 8 7 2
10 6 2
u2 = 1
4 6 5 8
10
u3 = -6
8 1 8 3 3
2
Проверим, как изменилась суммарная стоимость перевозок:
f = 82 + 102 + 26 + 108 + 81 + 23 = 142.
Проверим, является ли новое базисное решение оптимальным. Для
этого считаем потенциалов строк и столбцов транспортной таблицы
(табл. 7.28).

7.4. Задача о назначениях
85
Таблица 7.28
v1 = 2
v2 = 4
v3 = 2
v4 = 6
u1 = 0
2 8 7 2
10 6 2
u2 = 2
4 6 5 8
10
u3 = –3
8 1 8 3 3
2
Теперь вычислим значения ui + vj – сij для небазисных переменных.
Текущее решение является оптимальным, решение закончено (табл. 7.29).
Таблица 7.29
v1 = 2
v2 = 4
v3 = 2
v4 = 6
u1 = 0
2
8
7
–3
2
10 6 2
u2 = 2
4
0 6 0 5 –1
8
10
u3 = –3
8
–9
1
8
3
–4
3
2
7.4. Задача о назначениях
7.4.1. Венгерский метод
Алгоритм решения задачи о назначениях на основе венгерского ме-
тода может быть записан следующим образом [5].
Шаг 1. В исходной матрице стоимостей определим в каждой стро-
ке минимальную стоимость и отнимем ее от других элементов строки.
Шаг 2. В матрице, полученной на первом шаге, найдем в каждом
столбце минимальную стоимость и отнимем ее от других элементов
столбца.
Шаг 3. Оптимальным назначениям будут соответствовать нулевые
элементы, полученные на предыдущем шаге.
Для представления этого метода используем два примера.
Пример 7.7. Разберем алгоритм решения задачи о назначениях на
основе венгерского метода на следующем примере.

7. Транспортные модели
86
Пусть имеется 3 работника, которых необходимо распределить по
3-м видам работ. Стоимость выполнения каждым работником каждого
вида работ представлена в табл. 7.30.
Таблица 7.30
Начальная матрица стоимостей
Работа 1
Работа 2
Работа 3
Работник 1 5 2
4
Работник 2 1 4
6
Работник 3 4 3
2
Обозначим через рi и qj минимальные стоимости соответственно в
строке i и столбце j.
Таблица 7.31
Работа 1
Работа 2
Работа 3
Минимумы
по строкам
Работник 1
5 2 4
p1 = 2
Работник 2
1 4 6
p2 = 1
Работник 3
4 3 2
p3 = 2
Вычтем минимальные элементы из остальных элементов в строке.
Вычтем минимальные стоимости из элементов соответствующих строк, в
результате получим табл. 7.32.
Таблица 7.32
Работа 1
Работа 2
Работа 3
Работник 1
3 0 2
Работник 2
0 3 5
Работник 3
2 1 0
Минимумы по столбцам
q1 = 0
q2 = 1
q3 = 0
Находим минимальные значения по столбцам и вычитаем их из
элементов соответствующих столбцов. В результате получим табл. 7.33.
Таблица 7.33
Работа 1
Работа 2
Работа 3
Работник 1
3 0 2
Работник 2 0 3
5
Работник 3 2 1
0
В последней матрице подчеркнутые нулевые элементы определяют
оптимальное решение: работник 1 назначен выполнять работу 2, работник

7.4. Задача о назначениях
87
2 – работу 1 и работник 3 – работу 3. Суммарная стоимость выполнения
всех работ 1 + 2 + 2 = 5.
Алгоритм успешно завершен, оптимальное назначение построено.
В некоторых случаях в таблице, полученной после выполнения
первого и второго шагов венгерского метода, невозможно сразу построить
оптимальное назначение. Тогда необходимы выполнить дополнительные
перобразования для нахождения оптимального (допустимого) решения.
Пример 7.8. Пусть имеется пять работников и пять видов работ. В
табл. 7.34 приведена стоимость выполнения каждым работником каждой
работы.
Таблица 7.34
Виды работ
1 2 3 4
5
Работники
1 5 9 2 3
7
2 6 9 5 7
1
3 9 4 7 10
2
4 2 6 1 8
4
5 9 6 3 5
4
Применение первого и второго шагов алгоритма к исходной матрице (при этом p1 = 2, p2 = 1, p3 = 2, p4 = 1, p5 = 3, q1 = 1, q2 = 0, q3 = 0, q4 = 1 и
q5 = 0) приводит к табл. 7.35, 7.36.
Таблица 7.35
Виды работ
1 2 3 4
5
Работники
1 3 7 0 1
5
2 5 8 4 6
0
3 7 2 5 8
0
4 1 5 0 7
3
5 6 3 0 2
1
Таблица 7.36
Виды работ
1 2 3 4
5
Работники
1 2 5
0
0
7
2 4 6 4 5
0
3
6 0 5
7
0
4 0 3 0 6
3
5 5 1 0 1
1

7. Транспортные модели
88
В последней матрице расположение нулевых элементов не позволяет
назначить каждому работнику одну работу. Для решения возникшей проблемы необходимо выполнить дополнительное преобразование таблицы.
Шаг 3. Если после выполнения первого и второго шагов описанно-
го алгоритма не получено допустимое решение:
1) в последней матрице проводим минимальное число горизонталь-
ных и вертикальных прямых по строкам и столбцам с тем, чтобы вычеркнуть в матрице все нулевые элементы;
2) находим наименьший невычеркнутый элемент, вычитаем его из
остальных невычеркнутых элементов и прибавляем к элементам, стоящим
на пересечении проведенных на предыдущем шаге прямых;
3) если новое распределение нулевых элементов не позволяет построить допустимое решение, повторяем данную процедуру.
В табл. 7.37 вычеркиваем нулевые элементы.
Таблица 7.37
1 2 3 4
5
1 2 5 0 0 7 2 4 6 4 5
0
3 6 0 5 7
0
4 0 3 0 6 3 5 5 1 0 1
1
Минимальный элемент среди невычеркнутых – элемент (5, 2) = 1.
Прибавляем 1 к элементам (1, 3), (1, 5), (3, 3), (3, 5), (4, 3), (4, 5), стоящим
на пересечении проведенных линий. И отнимаем от всех невычеркнутых
элементов таблицы. В результате получаем новую табл. 7.38.
Таблица 7.38
1 2 3 4
5
1 2 5
1 0 8
2 3 5 4 4 0 3
6 0 6 7 1
4 0 3 1 6 4 5 4 0 0 0
1
Из табл. 7.38 можем определить оптимальное назначение работников по работам (показано в таблице подчеркнутыми нулями). Первому

7.5. Транспортная модель с промежуточными пунктами
89
работнику назначена работа 4, второму – работа 3, третьему – работа 5,
четвертому – работа 1 и пятому – работа 2. Значение целевой функции
равно 2 + 4 + 3 + 3 + 1 = 13.
7.5. Транспортная модель с промежуточными пунктами
Транспортная модель с промежуточными пунктами соответствует
реальной ситуации, когда между исходными и конечными пунктами перевозок имеются промежуточные пункты для временного хранения грузов
(транзитные пункты) [5]. Эта модель более общая, чем обычная транспортная, где перевозки осуществляются непосредственно между пунктами отправления и назначения.
Пример 7.9. Рассмотрим пример транспортной модели с промежу-
точными пунктами. Два поставщика Р1 и Р2 связаны с тремя потребителями D1, D2 и D3, имеющими два транзитных (перевалочных) центра Т1 и
T2 [5]. Объемы предложения и спроса, а также стоимость перевозок между пунктами показана на рис. 7.1.
Рис. 7.1.
Транспортная модель с промежуточными пунктами
В данной модели перевозки транзитом могут осуществляться через любые пункты (в соответствии с направлением дуг на схеме), даже
через некоторые пункты назначения. Поэтому пункты, которым соответствуют как входящие, так и выходящие дуги на схеме рис. 7.1, назовем
транзитными (пункты T1, T2, D1 и D2). Оставшиеся будут либо истинными пунктами отправления (пункты Р1 и Р2), либо истинными

7. Транспортные модели
90
пунктами назначения (в данной схеме такой пункт только один – D3).
Эту модель можно преобразовать в обычную транспортную модель с
шестью пунктами отправления (P1, P2, T1, T2, D1 и D2) и пятью пунктами назначения (T1, T2, D1, D2 и D3). Объемы спроса и предложения,
соответствующие этим пунктам отправления и назначения, вычисляются
следующим образом [5].
Объем предложения истинного пункта отправления = объему ис-
ходного предложения.
Объем предложения транзитного пункта = объему исходного
предложения + объем буфера.
Объем спроса истинного пункта назначения = объему исходного
спроса.
Объем спроса транзитного пункта = объему исходного спроса +
+ объем буфера.
Объем буфера должен быть таким, чтобы вместить объем всего
предложения (или спроса). Обозначим через B объем буфера. Тогда
В = Общий объем предложения (или спроса) = 1000 + 1200 =
= (или = 800 + 900 + 500) = 2 200.
Построенная транспортная модель [5], эквивалентная исходной задаче, представлена в табл. 7.39. Решение этой транспортной модели показано на рис. 7.2. Отметим "транзитный" эффект решения: дилер D2 получает 1400 единиц товара, из них 900 оставляет себе (для удовлетворения
своего спроса), а 500 отправляет дилеру D3.
Таблица 7.39
T1
T2
D1
D2
D3
P1 3 4 M M
M
1000
P2 2 5 M M
M
1200
T1 0 7 8 6 M B
T2 M 0 M 4 9 B
D1 M M 0 5 M B
D2 M M M 0 3 B
B B
800 + B
900 + B
500
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
