Метод потенциалов

Автор работы: Пользователь скрыл имя, 07 Июня 2013 в 04:38, практическая работа

Описание работы

Цена перевозки (например, в рублях за 1 килограмм груза) Cij записывается в ячейки таблицы на пересечении соответствующего потребителя и поставщика (цена может быть и отрицательной — в этом случае она представляет собой прибыль). Неизвестной (искомой) величиной в задаче являются такие объемы перевозки xij от поставщиков к потребителям, чтобы минимизировать общие затраты на транспортировку.
Для поиска начального решения применяют метод северо-западного угла, метод минимальных тарифов или метод Фогеля, а для окончательной оптимизации — метод потенциалов.

Файлы: 1 файл

Метод потенциалов.docx

— 22.67 Кб (Скачать файл)

Метод потенциалов

 

Потребитель 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 руб./кг


Цена перевозки (например, в рублях за 1 килограмм груза) Cij записывается в ячейки таблицы на пересечении соответствующего потребителя и поставщика (цена может быть и отрицательной — в этом случае она представляет собой прибыль). Неизвестной (искомой) величиной в задаче являются такие объемы перевозки xij от поставщиков к потребителям, чтобы минимизировать общие затраты на транспортировку.

Для поиска начального решения  применяют метод северо-западного угла, метод минимальных тарифов или метод Фогеля, а для окончательной оптимизации — метод потенциалов.

Метод потенциалов позволяет  за несколько шагов (итераций) найти  полностью оптимальное решение  транспортной задачи. Перед решением задачи этим методом нужно найти  допустимое начальное решение одним  из методов, описанных в разделе выше.

Вычисление общей  стоимости транспортировки

Этот шаг также не входит в сам алгоритм метода потенциалов, но он полезен для распечатки результатов  и показа, что алгоритм движется в правильном направлении, уменьшая на каждом (или не на каждом) шаге общую  себестоимость перевозки. Для всех ячеек цена умножается на объем перевозки  и полученный результат суммируется.

 

B1, 20 кг

B2, 30 кг

B3, 30 кг

B4, 10 кг

A1, 30 кг

С11=2 руб./кг, 
X11=20 кг

С12=3 руб./кг, 
Х12=10 кг

С13=2 руб./кг

С14=4 руб./кг

A2, 40 кг

С21=3 руб./кг

С22=2 руб./кг, 
Х22=20 кг

С23=5 руб./кг, 
Х23=20 кг

С24=1 руб./кг

A3, 20 кг

С31=4 руб./кг

С32=3 руб./кг

С33=2 руб./кг, 
Х33=10 кг

С34=6 руб./кг, 
Х34=10 кг


В нашем  примере, сумма затрат на перевозку  груза составляет

2×20 + 3×10 + 2×20 + 5×20 + 2×10 + 6×10 = 290 руб.

Ячейки (клетки) транспортной таблицы с ненулевыми перевозками  называются базисными, а клетки с нулевыми объемами перевозки — свободными.

Проверка плана на вырожденность

Базисных (см. выше) ячеек таблицы  должно быть не менее m+n−1, где m и n — соответственно, число поставщиков и потребителей, иначе решение считается вырожденным и требует введения в базис одной из ячеек с нулевой перевозкой (чтобы алгоритм не впал в бесконечный цикл, эта ячейка должна быть случайной).Для исключения ситуаций с вырожденностью к объемам потребления добавляют небольшие возмущения — числа, заведомо ничтожные при перевозках (такие как 0.00001), при этом к объему поставки одного из поставщиков добавляют их сумму (или наоборот).

Каждому поставщику Aсоответствует потенциал Ui, а каждому потребителю Bj соответствует потенциал Vj. Данциг называет потенциалы Uи Vсимплекс-множителями или неявными ценами. Чтобы определить эти потенциалы, полагают, что U1=0, а остальные потенциалы вычисляют из соотношения Ui + Vj = Cij для всех занятых (базисных) ячеек таблицы.

 

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 = Сij – U– Vj, где Uи Vjберутся из вычислений, выполненных в разделе выше (здесь они вписаны в заголовки таблицы).

Для всех занятых ячеек (с ненулевыми объемами перевозки, отмечены зеленым  цветом) полагают Δ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, то план перевозок оптимален и задача решена. В нашем примере есть отрицательные значения. Наличие отрицательных значений Δij означает, что решение не оптимально.

Наименьшее отрицательное значение Δ24=–8 (начальная вершина для цикла перераспределения поставок, о котором см. ниже) отмечено красным цветом. Если одинаковых отрицательных значений несколько, то берется любое.

Построение цикла

Цикл перераспределения  поставок представляет собой замкнутую  ломаную линию, которая соединяет  начальную вершину (отмечена красным  цветом) и занятые (отмеченные в нашем  примере зеленым цветом) ячейки транспортной таблицы по определенным правилам.

  1. Все вершины, кроме начальной, находятся в занятых ячейках таблицы (ячейки с ненулевыми перевозками или «введенные в базис» на шаге 4 (в разделе «Проверка плана на вырожденность» ячейки с нулевой перевозкой — здесь они отмечены в примерах зеленым цветом), при этом охвачены циклом могут быть не все, а лишь некоторые занятые ячейки.
  2. В каждой вершине цикла встречаются ровно два звена ломаной линии, причем одна из них находится по строке, а другая — по столбцу. Иначе говоря, они пересекаются под прямым углом.
  3. Линия может пересекать занятые ячейки, не включая их в цикл (включение их в цикл не допускается). Другими словами, никакие три последовательные вершины не могут находиться в одной и той же строке или одном и том же столбце.
  4. Линия может пересекать саму себя, при этом точка пересечения не включается в цикл (исходя из п.2).

Перераспределение поставок по циклу

«Красной» ячейке цикла присваиваем  знак (+), следующей по циклу (начать двигаться можно в любом направлении) — знак (–), следующей ячейке цикла — опять (+) и так далее. Находим минимальную поставку по отмеченным знаком (–) вершинам цикла и обозначаем ее θ. Эта вершина цикла Х34=10 кг помечена желтым цветом. Значение θ вычитаем из вершин цикла, которые помечены знаком (–) и прибавляем его к вершинам цикла, которые помечены знаком (+).

 

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.


Информация о работе Метод потенциалов