Постановка и математическая модель транспортной задачи
Начнём с постановки транспортной задачи и её математической модели.
Имеется сеть поставщиков P1, P2, …, Pm некоторого однородного груза, и сеть потребителей П1, П2, …, Пn этого груза. Известны: запасы поставщиков a1, a2, …, am, соответственно; потребности потребителей b1, b2, …, bn, соответственно; стоимость cij перевозки единицы груза от i-го поставщика к j-му потребителю. Требуется составить такой план перевозок (то есть определить, кто, кому и в каком количестве должен отгрузить груз), чтобы запасы поставщиков были полностью использованы, потребности потребителей полностью были удовлетворены, и суммарная стоимость перевозок была минимальной.
Условия задачи обычно даются в следующей транспортной таблице:
bj ai | b1 | b2 | … | bj | … | bn |
a1 | c11 | c12 | … | c1j | … | c1n |
… | … | … | … | … | … | … |
ai | ci1 | ci2 | … | cij | … | cin |
… | … | … | … | … | … | … |
am | cm1 | cm2 | … | cmj | … | cmn |
К клетке, стоящей на пересечении строки ai и столбца bj, будем ссылаться как к клетке (i, j).
Пример 1.
Таблица 8.1 | ||||
bj ai | ||||
В таблице имеем m=3, n=4, a1=90, a2=30, a3=40 - запасы поставщиков, b1=70, b2=30, b3=20, b4=40 - потребности потребителей. Также, например, c12=3 означает, что перевозка единицы груза от первого поставщика ко второму потребителю обходится в 3 условные единицы, а, например, c33=4 означает, что перевозка единицы груза от третьего поставщика к третьему потребителю обходится в 4 условные единицы.
Составим математическую модель задачи.
Пусть xij - количество груза, перевозимого от i-го поставщика к j-му потребителю. Так как cij - стоимость перевозки единицы груза от i-го поставщика к j-му потребителю, то перевозки от i-го поставщика к j-му потребителю обойдутся в cijxij условных единиц, а в сумме перевозки обойдутся в c11x11+c12x12+…= условных единиц. Таким образом, - целевая функция, которую необходимо минимизировать (суммарная стоимость перевозок должна быть минимальной): ® min.
Далее, 1-й поставщик отгружает потребителям x11+x12+…+x1n единиц груза, и он должен отгрузить все свои запасы: x11+x12+…+x1n=a1. И, вообще, рассуждая относительно i-го поставщика, получаем уравнение xi1+xi2+…+xin=ai (i=1, 2, …, m).
Аналогично рассуждая по j-му потребителю (j=1, 2, …, n), получаем уравнения x1j+x2j+…+xmj=bj (j=1, 2, …, n).
Наконец, количество xij перевозимого груза не может быть отрицательным: xij³0.
Таким образом, математическая модель транспортной задачи - следующая:
® min
(8.1)
Как видим, задача (8.1) - это задача линейного программирования. Поэтому на неё распространяются все понятия общей задачи линейного программирования: базис, опорное решение и т.д. В частности, к ней можно применить теорию двойственности. Наконец, к ней можно применить симплекс-метод. Тем не менее, задача имеет свою специфику, заключающуюся в первую очередь в том, что её матрица ограничений состоит из 0 и 1, причём в каждом столбце имеется в точности по две 1. Поэтому естественно ожидать, что для её решения применим метод, более эффективный, чем симплекс-метод. Таким методом является метод потенциалов. Прежде, чем привести алгоритм этого метода, приведём некоторые необходимые теоретические сведения.