Автор работы: Пользователь скрыл имя, 07 Июня 2013 в 04:38, практическая работа
Цена перевозки (например, в рублях за 1 килограмм груза) Cij записывается в ячейки таблицы на пересечении соответствующего потребителя и поставщика (цена может быть и отрицательной — в этом случае она представляет собой прибыль). Неизвестной (искомой) величиной в задаче являются такие объемы перевозки xij от поставщиков к потребителям, чтобы минимизировать общие затраты на транспортировку.
Для поиска начального решения применяют метод северо-западного угла, метод минимальных тарифов или метод Фогеля, а для окончательной оптимизации — метод потенциалов.
Метод потенциалов
Потребитель B1, |
Потребитель B2, |
Потребитель B3, |
Потребитель B4, | |
Поставщик A1, |
С11=2 руб./кг |
С12=3 руб./кг |
С13=2 руб./кг |
С14=4 руб./кг |
Поставщик A2, |
С21=3 руб./кг |
С22=2 руб./кг |
С23=5 руб./кг |
С24=1 руб./кг |
Поставщик A3, |
С31=4 руб./кг |
С32=3 руб./кг |
С33=2 руб./кг |
С34=6 руб./кг |
Цена перевозки (например,
в рублях за 1 килограмм груза) Cij записывае
Для поиска начального решения применяют метод северо-западного угла, метод минимальных тарифов или метод Фогеля, а для окончательной оптимизации — метод потенциалов.
Метод потенциалов позволяет за несколько шагов (итераций) найти полностью оптимальное решение транспортной задачи. Перед решением задачи этим методом нужно найти допустимое начальное решение одним из методов, описанных в разделе выше.
Вычисление общей стоимости транспортировки
Этот шаг также не входит в сам алгоритм метода потенциалов, но он полезен для распечатки результатов и показа, что алгоритм движется в правильном направлении, уменьшая на каждом (или не на каждом) шаге общую себестоимость перевозки. Для всех ячеек цена умножается на объем перевозки и полученный результат суммируется.
B1, 20 кг |
B2, 30 кг |
B3, 30 кг |
B4, 10 кг | |
A1, 30 кг |
С11=2 руб./кг, |
С12=3 руб./кг, |
С13=2 руб./кг |
С14=4 руб./кг |
A2, 40 кг |
С21=3 руб./кг |
С22=2 руб./кг, |
С23=5 руб./кг, |
С24=1 руб./кг |
A3, 20 кг |
С31=4 руб./кг |
С32=3 руб./кг |
С33=2 руб./кг, |
С34=6 руб./кг, |
В нашем примере, сумма затрат на перевозку груза составляет
2×20 + 3×10 + 2×20 + 5×20 + 2×10 + 6×10 = 290 руб.
Ячейки (клетки) транспортной таблицы с ненулевыми перевозками называются базисными, а клетки с нулевыми объемами перевозки — свободными.
Базисных (см. выше) ячеек таблицы должно быть не менее m+n−1, где m и n — соответственно, число поставщиков и потребителей, иначе решение считается вырожденным и требует введения в базис одной из ячеек с нулевой перевозкой (чтобы алгоритм не впал в бесконечный цикл, эта ячейка должна быть случайной).Для исключения ситуаций с вырожденностью к объемам потребления добавляют небольшие возмущения — числа, заведомо ничтожные при перевозках (такие как 0.00001), при этом к объему поставки одного из поставщиков добавляют их сумму (или наоборот).
Каждому поставщику Ai соответствует потенциал Ui,
а каждому потребителю Bj
соответствует потенциал Vj.
Данциг называет потенциалы Ui и Vj симплекс-
V1 |
V2 |
V3 |
V4 | |
U1=0 |
С11=2 руб./кг |
С12=3 руб./кг |
||
U2 |
С22=2 руб./кг |
С23=5 руб./кг |
||
U3 |
С33=2 руб./кг |
С34=6 руб./кг |
U1+V1=2. Поскольку U1=0, 0+V1=2, следовательно, V1=2 руб./кг
U1+V2=3. Поскольку U1=0, 0+V2=3, следовательно, V2=3 руб./кг
U2+V2=2. Поскольку V2=3, U2+3=2, следовательно, U2=–1 руб./кг
U2+V3=5. Поскольку U2=–1, –1+V3=5, следовательно, V3=6 руб./кг
U3+V3=2. Поскольку V3=6, U3+6=2, следовательно, U3=–4 руб./кг
U3+V4=6. Поскольку U3=–4, –4+V4=6, следовательно, V4=10 руб./кг
Для всех не занятых ячеек (с нулевым
объемом перевозки) вычисляют оценки
клеток распределительной таблицы Δij
Для всех занятых ячеек (с ненулевыми объемами перевозки, отмечены зеленым цветом) полагают Δij=0, поскольку на следующем шаге нам потребуется значение с минимальной оценкой в незанятых ячейках.
V1=2 |
V2=3 |
V3=6 |
V4=10 | |
U1=0 |
Δ11=0 |
Δ12=0 |
Δ13 = 2–0–6 = –4 |
Δ14=4–0–10 = –6 |
U2=–1 |
Δ21=3–(–1)–2 = 2 |
Δ22=0 |
Δ23=0 |
Δ24=1–(–1)–10 = –8 |
U3=–4 |
Δ31=4–(–4)–2 = 6 |
Δ32=3–(–4)–3 = 4 |
Δ33=0 |
Δ34=0 |
Если в получившейся таблице
нет отрицательных значений Δij
Наименьшее отрицательное
Цикл перераспределения поставок представляет собой замкнутую ломаную линию, которая соединяет начальную вершину (отмечена красным цветом) и занятые (отмеченные в нашем примере зеленым цветом) ячейки транспортной таблицы по определенным правилам.
«Красной» ячейке цикла присваиваем
знак (+), следующей по циклу (начать
двигаться можно в любом
B1, 20 кг |
B2, 30 кг |
B3, 30 кг |
B4, 10 кг | |
A1, 30 кг |
X11=20 кг |
Х12=10 кг |
||
A2, 40 кг |
Х22=20 кг |
(–) Х23=20 кг |
(+) | |
A3, 20 кг |
(+) Х33=10 кг |
(–) Х34=10 кг |
Поскольку алгоритм является циклическим (итерационным), переходим к пункту 1.