Общая формулировка транспортной задачи |
||
Пусть имеется m-пунктов производства с объемом производства аi (i=1,m) и n пунктов потребления с объемом потребления bj (j=1,n). Сбалансированной моделью называется транспортная задачи, в которой Si=1 m ai= S j=1n bj (Сколько произвели, столько и продали). Стоимость транспортировки Cij, тогда задача заключается в нахождении таких Xij, которые удовлетворяют следующим соотношениям: Sj=1nXij=ai>0 (i=1,m) Si=1mXij=bj (j=1,n) Необходимо минимизировать функцию C=Si=1mSj=1nCijXij Так как выполняются условия Si=1mai=Si=1mSj=1nXij=Sj=1nSi=1mXij=Sj=1nbj, то имеется (m+n-1) ограничений, следовательно (m+n-1) базисных переменных. Если задача не сбалансирована, то для приведения ее к стандартному виду вводят фиктивные пункты производства или потребления, стоимость перевозки на которые полагается равной нулю. Решение транспортной задачи похоже на симплекс-метод. Шаги: 1)нахождение начального допустимого решения 2)выделение из числа небазисных переменных новой, вводимой в базис переменной 3)выбор выводимой из базиса переменной с нахождением нового базисного решения и переходом на шаг 2. Для шага 1 применяют три метода: 1.правило северо-западного угла 2.метод минимальной стоимости 3.метод Фогеля. 1 метод- начинают решение с левого верхнего элемента. 2 метод- выбирают переменную, которой соответствует наименьшая стоимость (самая дешевая продукция реализуется первой). 3 метод основан на понятии штрафа для каждой строки. Шага 2 делается с помощью метода потенциалов. Пример: Рассмотрим 2 склада и 2 магазина. Ограничения на неотрицательность x11>=0,x12>=0,x21>=0,x22>=0 x11+x12=a1 ai- количество грузов у поставщика i x21+x22=a2 bi-количество грузов, необходимое x11+x12=b1 потребителю j x12+x22=b2 Стоимость перевозки Cij Z=C11+x11+C12x12+C21x21+C22x22 a1+a2=b1+b2- модель сбалансирована Алгоритм решения задачи (вещ Z, вещтаб C[1:2,1:2],X[1:2,1:2],A[1:2},B[1:2],лит y) арг C,A,B рез X,Y,Z начало вещ v1,v2,v3,v4,x v1=-b(1)+A(2) v2=c(1,1)+C(2,2)-C(2,1)-C(1,2) v3=c(1,2)*A(1)+C(2,1)*B(1)+C(2,2)*v1 если A(1)<B(1) то v4=A(1) иначе v4=B(1) все если v2<=0 то если V4+v1>=0 то v4=v1 все все если v2<>0 то y="решение одно" иначе y="решений много" все если v2>0 то x=0;Z=v3 иначе h=v4;Z=v3+v2*v4 все X(1,1)=x;X(1,2)=A(1)-x;X(2,1)=B(1)-x;X(2,2)=A(2)-B(1)+x конец |
||