Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы по МетОпт 2024 / Лабораторная работа №5

.pdf
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
537 Кб
Скачать
МИНОБРНАУКИ РОССИИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)
Кафедра МО ЭВМ
ОТЧЁТ
по лабораторной работе №5
Тема: решение транспортной задачи
Студенты гр. 2382
Ивашинников Л.Д.
Ульянова Е.А.
Семененко А.С.
Вакуленко И.Ю.
Щёголева Н.Д.
Преподаватель Балтрашевич В.Э.
Санкт-Петербург
2024

Цель работы

Решение транспортной задачи с использованием метода минимальной
стоимости для построения начального плана и метода потенциалов.

Задание

Существует n истоков (пунктов, из которых вывозится груз) и m стоков
(пунктов, в которые ввозится груз). Они характеризуются количеством
ввозимого или вывозимого груза. Истоки описываются вектором A(n), а стоки –
вектором B(m). Стоки и истоки соединены дугами, причем каждая дуга
характеризуется ценой перевозки единицы груза. Если сток и исток не
соединены, то цена считается равной бесконечности. Матрица C(n, m) содержит
все цены перевозок.
Задача: составить матрицу X(n, m), описывающую количество
перевозимого груза, такую, чтобы сумма C(i, j)*X(i, j) была минимальной (т. е.
минимизировать общую цену перевозок).

Основные теоретические положения

Алгоритм решения классической транспортной задачи:
Если
i=1
n
ai=
j=1
m
b
j
, то задача сбалансирована. В ином случае нужно
добавить фиктивный исток или сток, чтобы задача стала сбалансированной.
I этап: выбор начального базиса методом минимальной стоимости. Для
этого:
a) Выбирается та клетка, в которой цена минимальна; пусть для
определенности это будет клетка (i, j).
b) Ищется минимальное из A(i) и B(j) и его значение заносится в X(i, j). В
случае, если минимальное A(i), вычеркивается i-я строка и B(j) := B(j) – A(i), а в
случае, если минимальное B(j), вычеркивается j-й столбец и A(i) := A(i) – B(j).
С полученными векторами А и В и матрицей С выполняются те же
операции до тех пор, пока не будут вычеркнуты все клетки. Полученный план
необходимо проверить на вырожденность, количество ячеек в базисном
2
решении должно быть m + n – 1, иначе необходимо добавить фиктивные
ячейки.
II этап: нахождение оптимального плана методом потенциалов. Для
этого:
a) Решается система AT * L = F, где L – вектор потенциалов, состоящий из
U(i) и V(j), а F – цена C(i, j). k-я строка матрицы A составляется так: в i-й и j-й
позиции 1, а в остальных 0. Если строк для решения не хватает, добавляются
любые. Другими словами, для базисных ячеек составляется система уравнений
вида: U(i) + V(j) = C(i, j), причём U(1) = 0.
b) Ищется матрица , где = A * L – C. То есть ⬠(i, j) = U(i) + V(j) –
– C(i, j). Если все 0, то базис оптимален.
c) Если базис не оптимален, ту клетку, где максимальна, надо ввести в
базис. Для этого ищется цикл по клеткам, уже введённым в базис. Затем снова
ищется L и считается матрица . Эта процедура выполняется до тех пор, пока
базис не станет оптимальным.

Выполнение работы

На основе общей формулировки транспортной задачи составим частную
со значениями, представленными на рис. 1.
Рисунок 1 – Условие задачи
Метод минимальной стоимости:
Выберем минимальную цену, она находится в ячейке (1, 2) и равна 2, как
показано на рис. 2.
3
Рисунок 2 – Выбор минимальной цены
А(1) = 15 < В(2) = 38, поэтому вычёркиваем строку 1 и В(2)' = В(2) – А(1)
= 38 – 15 = 23, X(1, 2) = 15, как показано на рис. 3.
Рисунок 3 – Первый шаг построения начального плана
4
Следующая минимальная цена находится в ячейке (4, 1) и равна 3. А(4) =
43 > В(1) = 27, поэтому вычёркиваем столбец 1 и А(4)' = А(4) – В(1) = 43 – 27 =
16, X(4, 1) = 27; следующая минимальная цена находится в ячейке (2, 3) и равна
4. А(2) = 48 < В(3) = 52, поэтому вычёркиваем строку 2 и B(3)' = B(3) – A(2) =
52 – 48 = 4, X(2, 3) = 48; следующая минимальная цена находится в ячейке (3, 2)
и равна 7. А(3) = 11 < В(2) = 23, поэтому вычёркиваем строку 3 и B(2)' = B(2) –
A(3) = 23 – 11 = 12, X(3, 2) = 11; следующая минимальная цена находится в
ячейке (4, 3) и равна 8. А(4) = 16 > В(3) = 4, поэтому вычёркиваем столбец 3 и
А(4)' = А(4) – В(3) = 16 – 4 = 12, X(4, 3) = 4; осталась последняя не вычеркнутая
ячейка (4, 2), А(4) = 12 < В(2) = 23, вычеркиваем строку 4 и X(4, 2) = 12.
В итоге получен начальный план, как показано на рис. 4
Рисунок 4 – Начальный план
Количество ячеек в базисе равно 6 4 + 3 – 1, изначальный план
перевозок невырожденный.
Метод потенциалов:
5
Составим систему уравнений для нахождения векторов потенциалов. Из
предложенных программой равенств на рис. 5 нам подходит 3.
Рисунок 5 – Уравнение для нахождение потенциалов
Полная система уравнений с решением представлена на рис. 6.
Рисунок 6 – Векторы потенциалов
6
Как видно на рис. 7 после вычисления , значения во всех ячейках 0,
поэтому полученное решение оптимально.
Рисунок 7 – Оптимальное решение
Рисунок 8 – Сообщение об успешном решении
Придумаем другой пример, в котором найденное допустимое решение не
будет оптимальным. Его условия представлены на рис. 9.
7
Рисунок 9 –Другое условие задачи
Метод минимальной стоимости:
Выберем минимальную цену, она находится в ячейке (1, 1) и равна 1, как
показано на рис. 10.
Рисунок 10 – Поиск минимальной стоимости
8
А(1) = 10 < В(1) = 27, поэтому вычёркиваем строку 1 и В(1)' = В(1) – А(1)
= 27 – 10 = 17, X(1, 1) = 10, как показано на рис. 11.
Рисунок 11 – Первый шаг построения начального плана
Аналогичным образом рассчитываются дальнейшие значения матрицы X.
Получившийся начальный план представлен на рис. 12.
Рисунок 12 – Начальный план
9
Количество ячеек в базисе равно 6 4 + 3 – 1, изначальный план
перевозок невырожденный.
Метод потенциалов:
Составим систему уравнений для нахождения векторов потенциалов. Из
предложенных программой равенств на рис. 13 нам подходит 5.
Рисунок 13 – Уравнение для нахождение потенциалов
Полная система уравнений с решением представлена на рис. 14.
Рисунок 14 – Векторы потенциалов
10