Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Формулировка транспортной задачи

Поиск

Пусть — пункты производства/потребления, — дуги перевозок, — цены провоза по дугам , — набор базисных столбцов.

Задача формулируется как найти

при условиях

где — стоимости провоза по дугам, — производство (+) / потребление (-)

— решение

Матрица ограничений транспортной задачи состоит из столбцов , содержащих всего два ненулевых элемента — +1 для производителя и −1 для потребителя.

Алгоритм

Метод потенциалов является модификацией симплекс-метода, в котором базисная матрица представлена в виде дерева.

Двойственные переменные симплекс-метода для транспортной задачи называются потенциалами.

Потенциалы вычисляются по формуле , что эквивалентно

Для дуги потенциалы дуг связаны формулой .

Таким образом, потенциал потребителя равна потенциалу производителя + стоимость перевозки. С экономической точки зрения это можно трактовать как стоимость продукта в точке потребления.

Проверка оптимальности плана легко трактуется с экономической точки зрения — если стоимость продукта в точке потребления больше стоимости в точке производства + цена перевоза, по этой дуге следует везти. Величина называется невязкой дуги.

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

Остается только пересчитать потенциалы — добавить (или вычесть — зависит от направления дуги) ко всем вершинам «повисшей ветки» величину невязки

Процесс завершается, когда для всех дуг условие оптимальности выполняется для всех дуг.

 

Алгоритм решения метода потенциалов

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

В показанном выше примере,

§ Для 1-й строки: 30 кг = 20 + 10 кг

§ Для 2-й строки: 40 кг = 20 + 20 кг

§ Для 3-й строки: 20 кг = 10 + 10 кг

§ Для 1-го столбца: 20 кг = 20 кг

§ Для 2-го столбца: 30 кг = 10 + 20 кг

§ Для 3-го столбца: 30 кг = 20 + 10 кг

§ Для 4-го столбца: 10 кг = 10 кг

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

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

 

 

  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 руб.

 

Разделение ячеек на базисные и свободные

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

 

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

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

 

Вычисление потенциалов

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

Ui + Vj = Cij

 

 

для всех занятых (базисных) ячеек таблицы (отмечены зеленым).[3]:89

  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 руб./кг

При компьютерной реализации удобно использовать рекурсию: взаимный вызов двух функций, которые отрабатывают алгоритм, соответственно, по строкам и по столбцам. Если на предыдущем шаге 4 (в разделе «Проверка плана на вырожденность») в базис была введена случайная не занятая ячейка, то вычисление u и v может дать сбой, и в этом случае случайный выбор вводимой в базис нулевой ячейки на предыдущем шаге 4 следует повторить.

 



Поделиться:


Последнее изменение этой страницы: 2016-04-23; просмотров: 536; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.225.95.87 (0.005 с.)