Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Общая характеристика распределительной задачи



Распределительные задачи связаны с распределением ресурсов по работам, которые необходимо выполнить. Задачи этого класса возникают тогда, когда имеющихся в наличии ресурсов не хватает для выполнения каждой работы наиболее эффективным образом. Поэтому целью решения задачи, является отыскание такого распределения ресурсов по работам, при котором либо минимизируются общие затраты, связанные с выполнением работ, либо максимизируется получаемый в результате общий доход.

Большинство распределительных задач можно представить в виде матриц, приведённых в таблице 5.1.1.

Таблица 5.1.1

    Ресурсы Работы, которые нужно выполнить   Объём имеющихся ресурсов
  J1   J2   …   Jj   …   Jn
R1 R2 … Ri … Rm C1,1 C2,1 Ci,1 … Cm,1 C1,2 C2,2 Ci,2 … Cm,2 … … … … … … C1,j C2,j Ci,j … Cm,j … … … … … … C1,n C2,n Ci,n … Cm,n b1 b2 … bi … bm
Объём требуемых ресурсов а1 а2 aj an  

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

Если затраты (или доход), определяемые объёмом Хi,j ресурса I, выделенного на выполнение работы Ji, равны Хi,j*Ci,j , то имеем линейную распределительную задачу.

Основные методы решения распределительных задач, в частности линейного программирования, построены на допущении, что объёмы, имеющихся в наличии ресурсов (bi), требуемые объёмы (aj) и затраты (Ci,j) точно известны.

Если общий объём наличных ресурсов i (i=1…m) равен общей потребности в них ∑aj (i=1…n), то имеет место сбалансированная (закрытая) распределительная задача. Если же ∑aj≠∑bi, то задача называется несбалансированной (открытой). Если ресурсы можно разделить между работами, то некоторые работы можно выполнять с помощью различных комбинаций ресурсов. Если работы и ресурсы измеряются в единицах одной и той же шкалы, то такие задачи обычно называют транспортными или задачами разложения. Если же работы и ресурсы выражаются в различных единицах измерения, то задача называется общей разделительной задачей. Таким образом транспортная задача является частным случаем общей распределительной задачи.

5.2 Транспортная задача.

Транспортная задача ставится следующим образом: имеется m пунктов отправления А1, А2, …,Аm, в которых сосредоточены запасы каких-то однородных грузов в количестве соответственно а1, а2,…,аm единиц. Имеется n пунктов назначения B1, B2,…,Bn подавшие заявки соответственно на b1,b2,…,bn единиц груза. Известны стоимости Ci,j перевозки единицы груза от каждого пункта отправления Аi до каждого пункта назначения Bj. Все числа Ci,j , образующие прямоугольную таблицу заданы. Требуется составить такой план перевозок(откуда, куда и сколько единиц поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна.

Рассмотрим сначала решение закрытой транспортной задачи, т.е. когда сумма всех заявок равна сумме всех запасов.

Решение транспортной задачи начинается с нахождения опорного плана. Для этого существуют различные способы. Например, способ “северо-западного угла”, способ минимальной стоимости по строке, способ минимальной стоимости по столбцу и способ минимальной стоимости таблицы. Рассмотрим простейший, так называемый способ северо-западного угла. Пояснить его проще всего будет на конкретном примере:

Условия транспортной задачи заданы транспортной таблицей.

Таблица 5.2.1

ПН ПО   В1   В2   В3   В4   В5   Запасы аi
А1            
А2            
А3            
А4            
Заявки bj            

Будем заполнять таблицу перевозками постепенно начиная с левой верхней ячейки («северо-западного угла» таблицы). Будем рассуждать при этом следующим образом. Пункт В1 подал заявку на 18 единиц груза. Удовлетворим эту заявку за счет запаса 48, имеющегося в пункту А1, и запишем перевозку 18 в клетке (1,1). После этого заявка пункта В1 удовлетворена, а в пункте А1 осталось еще 30 единиц груза. Удовлетворим за счёт них заявку пункта В2 (27 единиц), запишем 27 в клетке (1,2); оставшиеся 3 единицы пункта А1 назначим пункту В3. В составе заявки пункта В3 остались неудовлетворёнными 39 единиц. Из них 30 покроем за счёт пункта А2, чем его запас будет исчерпан, и ещё 9 возьмём из пункта А3. Из оставшихся 18 единиц пункта А3 12 выделим пункту В4; оставшиеся 6 единиц назначим пункту В5, что вместе со всеми 20 единицами пункта А4 покроет его заявку. На этом распределение запасов закончено; каждый пункт назначения получил груз согласно своей заявки. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце – заявке. Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является опорным решением транспортной задачи:

Таблица 5.2.2

ПН ПО   В1   В2   В3   В4   В5   Запасы ai
А1            
А2            
А3            
А4            
Заявки bj            

Составленный нами план перевозок, не является оптимальным по стоимости, так как при его построении мы совсем не учитывали стоимость перевозок Ci,j .

Другой способ – способ минимальной стоимости по строке – основан на том, что мы распределяем продукцию от пункта Аi не в любой из пунктов Вj, а в тот, к которому стоимость перевозки минимальна. Если в этом пункте заявка полностью удовлетворена, то мы убираем его из расчётов и находим минимальную стоимость перевозки из оставшихся пунктов Вj. Во всем остальном этот метод схож с методом “северо-западного угла”. В результате, опорный план, составленный способом минимальной стоимости по строке выглядит как показано в таблице 5.2.2.

При этом методе может получиться, что стоимости перевозок Ci,j и Ci,k от пункта Аi к пунктам Вj и Вk равны. В этом случае, с экономической точки зрения, выгоднее распределить продукцию в тот пункт, в котором заявка больше. Так, например, в строке 2: С2,12,4, но заявка b1 больше заявки b4, поэтому 4 единицы продукции мы распределим в клетку (1,2).

Таблица 5.2.3

ПН ПО   В1   В2   В3   В4   В5   Запасы аi
А1            
А2            
А3         0  
А4            
Заявки bj            

Способ минимальной стоимости по столбцу аналогичен предыдущему способу. Их отличие состоит в том, что во втором способе мы распределяем продукцию от пунктов Вi к пунктам Аj по минимальной стоимости Cj,i. Опорный план, составленный способами минимальных стоимостей, обычно более близок к оптимальному решению. Так в нашем примере общие затраты на транспортировку по плану, составленному первым способом Z(х0)=1039, а по второму - Z(х0)=723.

Клетки таблицы, в которых стоят ненулевые перевозки, являются базисными. Их число должно равняться m+n-1. Необходимо отметить также, что встречаются такие ситуации, когда количество перевозок равное нулю. Так,например, в таблице5.2.3.:

m+n-1=4+5-1=8,

а базисных клеток 7, поэтому нужно в одну из клеток строки 3 или столбца 2 поставить значение ”0”. Например в клетку (3,5).

Составляя план по способам минимальных стоимостей в отличии от плана по способу “северо-западного угла” мы учитываем стоимости перевозок Ci,j, но все же не можем утверждать, что составленный нами план является оптимальным.

Теперь попробуем улучшить план, составленный способом “северо-западного угла”. Перенесём, например, 18 единиц из клетки (2,3) в клетку (1,3). Получим новый план. Подсчитав стоимость опорного плана (она ровняется 1039) и стоимость нового плана 126 единиц меньше. Таким образом за счёт циклической перестановки 18 единиц груза из одних клеток в другие нам удалось понизить стоимость плана:

Таблица 5.2.4

ПН ПО   В1   В2   В3   В4   В5   Запасы аi
А1            
А2            
А3            
А4            
Заявки bj            

На этом способе уменьшения стоимости в дальнейшем и будет основан алгоритм оптимизации плана перевозок. Циклом в транспортной задаче мы будем называть несколько занятых клеток, соединённых замкнутой ломанной линей, которая в каждой клетке совершает поворот на 900.

Существует несколько вариантов цикла:

1.) 2.) 3.)

           
     
 
 
 
   


Рис.5.1.

Нетрудно убедиться, что каждый цикл имеет четное число вершин и значит, четное число звеньев (стрелок). Условимся отмечать знаком «+» те вершины цикла, в которых перевозки необходимо уменьшить. Цикл с отмеченными вершинами будем называть «означенными». Перенести какое-то количество единиц груза по означенному циклу - это значит увеличить перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки, стоящие в отрицательных вершинах уменьшить на то же количество. Очевидно, при переносе любого числа единиц по циклу равновесие между запасами и заявками не меняется: по прежнему сумма перевозок в каждой строке равна запасам этой строки, а сумма перевозок в каждом столбце – заявке этого столбца. Таким образом при любом циклическом переносе, оставляющем перевозки неотрицательными допустимый план остаётся допустимым. Стоимость же плана при этом может меняться: увеличиваться или уменьшаться. Назовём ценой цикла увеличение стоимости перевозок при перемещении одной единицы груза по означенному циклу. Очевидно цена цикла равна алгебраической сумме стоимостей, стоящих в вершинах цикла, причём стоящие в положительных вершинах берутся со знаком “+”, а в отрицательных со знаком “-”. Обозначим цену цикла через γ. При перемещении одной единицы груза по циклу стоимость перевозок увеличивается на величину γ. При перемещении по нему k единиц груза стоимость перевозок увеличится на kγ. Очевидно, для улучшения плана имеет смысл перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение стоимость плана уменьшается на соответствующую величину kγ. Так как перевозки не могут быть отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых лежат в базисных клетках таблицы, где стоят положительные перевозки. Если циклов с отрицательной ценой в таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, то есть оптимальный план достигнут.

Метод последовательного улучшения плана перевозок и состоит в том, что в таблице отыскиваются циклы с отрицательной ценой, по ним перемещаются перевозки, и план улучшается до тех пор пока циклов с отрицательной ценой уже не останется. При улучшении плана циклическими переносами, как правило, пользуются приемом, заимствованным из симплекс-метода: при каждом шаге (цикле) заменяют одну свободную переменную на базисную, то есть заполняют одну свободную клетку и взамен того освобождают одну из базисных клеток. При этом общее число базисных клеток остается неизменным и равным m + n – 1. Этот метод удобен тем, что для него легче находить подходящие циклы.

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

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

Распределительный метод решения транспортной задачи, с которым мы познакомились обладает одним недостатком: нужно отыскивать циклы для всех свободных клеток и находить их цены. От этой трудоемкой работы нас избавляет специальный метод решения транспортной задачи, который называется методом потенциалов.

Пример. Решить распределенным методом транспортную задачу, исходные данные которой приведены в табл. 5.2.5.

Таблица 5.2.5

bj ai      
       
       
       

Р е ш е н и е. Строим начальное опорное решение методом минимальной стоимости (табл. 5.2.6)

С=

Затем вычисляем значения целевой функции на нем:

Z(X1)=20·1+30·5+10·8+40·15=850

Таблица 5.2.6

bj ai      
  - 20   0 +
  4 + - 30  
    + 10 40 -

Находим цикл для свободной клетки (1,2) таблицы,, он включает клетки (1,2), (1,3), (3,3), (3,2). Вычисляем оценку Δ12=(3+15)-(2+8)=8. Так как Δ12=8>0, переходим к следующей свободной клетке (2,1). Для нее цикл таков: (2,1), (1,1), (1,3), (3,3), (3,2), (2,2). Оценка Δ21=(4+2+8)-(1+15+5)=14-21= -7. Так как Δ21= - 7<0, определяем величину груза, перераспределяемого по циклу, 0=min {20, 40, 30} = 20. Приращение целевой функции ΔZ = -7·20= -140. Получаем новое опорное решение X2 (табл. 5.2.7). Значение целевой функции на нем

Z(X2)=20·2+20·4+10·5+30·8+20·15=710

Таблица 5.2.7

bj ai      
       
    - 10 +
    + 30 20 -

Вычисляем Δ11=(1+15+5) – (2+8+4)=7>0, Δ12=(3+15) – (2+8)=8>0, Δ23=(7+8) – (5+15)= -5<0, Δ31=(6+5) – (4+8)= -1<0. Оценки можно вычислять до первой отрицательной. Так как Δ23= -5<0, осуществляем сдвиг по циклу (2,3), (3,3), (3,2), (2,2) на величину 0=min {10, 20} = 10. Приращение целевой функции ΔZ= -5·10= -50. Поучаем третье опорное решение X3 (табл. 5.2.8).

Значение целевой функции на нем

Z(X3)=20·2+20·4+10·7+40·8+10·15=660

Таблица 5.2.8

bj ai      
       
  20-   10 +
  +   10 -

Вычисляем оценки для свободных клеток: Δ11=(1+7) - (2+4) = 2>0, Δ12=(3+15) – (2+8) = 8>0, Δ22=(5+15) – (7+8) = 5>0, Δ31=(6+7) – (4+15) = -6<0. Так как Δ31= -6<0, осуществляем сдвиг по циклу (3,1), (2,1), (2,3), (3,3) на величину 0=min {20, 10} = 10. Приращение целевой функции ΔZ= -6·10 = -60. Получаем четвертное опорное решение X4 (табл. 5.2.9). Значение целевой функции на нем

Z(X4)=20·2+10·4+20·7+10·6+40·8=600.

Таблица 5.2.9

bj ai      
       
  - 10 +  
  + 10 40 -  

Вычисляем оценки для свободных клеток Δ11=(1+7) – (2+4)=2>0, Δ12=(3+7+6) – (2+4+8)=2>0, Δ22=(5+6) – (4+8)= -1<0. Так как Δ12= -1<0, осуществляем сдвиг по циклу (2,2), (3,2), (3,1), (2,1) на величину 0=min {10, 40}=10. Приращение целевой функции ΔZ= = -1·10= -10. Получаем пятое опорное решение X5 (табл. 5.2.10).

Таблица 5.2.10

bj ai      
       
       
       

Значение целевой функции на нем

Z(X5)=20·2+10·5+20·7+20·6+30·8=590.

Вычисляем оценки для свободных клеток: Δ11=(1+7) – (2+4)=2>0, Δ12=(3+7) – (2+5)=3>0, Δ33=(15+5) – (7+8)=5>0. Все оценки для свободных клеток положительные, следовательно, решение оптимально.

Ответ: min Z(X)=590 при X=

Этот метод позволяет автоматически выделять циклы с отрицательной ценой и определять их цены.

Пусть имеется транспортная задача с балансовыми условиями

Σ xi,j = ai (i=1..m; j=1..n);

Σ xi,j = bj (j=1..n; 1..m).

Причем ∑ai=∑bi

Стоимость перевозки единицы груза из Аi в Вj равна Ci,j; таблица стоимостей задана. Требуется найти план перевозок (xi,j,), который удовлетворял бы балансовым условиям и при этом стоимость всех перевозок была минимальна.

Идея метода потенциалов для решения транспортной задачи сводится к следующему. Представим себе что каждый из пунктов оправления Ai вносит за перевозку единицы груза (все равно куда) какую-то сумму αi; в свою очередь каждый из пунктов назначения Вj также вносит за перевозку груза (куда угодно) сумму βj. Эти платежи передаются некоторому третьему лицу («перевозчику»). Обозначим αij=ci,j (i=1..m; j=1..n) и будем называть величину сi,j «псевдостоимостью» перевозки единицы груза из Аi в Вj. Заметим, что платежи αi и βj не обязательно должны быть положительными; не исключено, что «перевозчик» сам платит тому или другому пункту какую-то премию за перевозку. Также надо отметить, что суммарная псевдостоимость любого допустимого плана перевозок при заданных платежах (αi и βj) одна и та же и от плана к плану не меняется.

До сих пор мы никак не связывали платежи (αi и βj) и псевдостоимости сi,j с истинными стоимостями перевозок Сi,j. Теперь мы установим между ними связь. Предположим, что план (xi,j,) невырожденный (число базисных клеток в таблице перевозок равно (m+n-1). Для всех этих клеток xi,j,>0. Определим платежи (αi и βj) так, чтобы во всех базисных клетках псевдостоимости были равны стоимостям:

αij=Ci,j=ci,j,

а для всех свободных клеток (Xi,j=0)

αij≤Ci,j

то план является оптимальным и никакими способами улучшен быть не может. Нетрудно показать, что это теорема справедлива также для выраженного плана, и некоторые из базисных переменных ровны нулю. План обладающий свойством:

Ci,j=ci,j (для всех базисных клеток) 5.2.1

Ci,j?ci,j (для всех свободных клеток) 5.2.2

называется потенциальным планом, а соответствующие ему платежи (αi и βj) - потенциалами пунктов Аi в Вj (i=1,…,m;j=1,…,n). Пользуясь этой терминологией вышеупомянутую теорему можно сформулировать так: Всякий потенциальный план является оптимальным. Итак, для решения транспортной задачи нам нужно одно – построить потенциальный план. Оказывается его можно построить методом последовательных приближений, задаваясь сначала какой-то произвольной системой платежей, удовлетворяющей условию 5.2.1. При этом в каждой базисной клетке получится сумма платежей, равная стоимости перевозок в данной клетке; затем, улучшая план следует одновременно менять систему платежей. Так, что они приближаются к потенциалам. При улучшении плана нам помогает следующее свойство платежей и псевдостоимостей: Какова бы ни была система платежей (αi в βj) удовлетворяющая условию 5.2.1, для каждой свободной клетки цена цикла перерасчета равна разности между стоимостью и псевдостоимостью в данной клетке: γi,j=ci,j-Ci,j.

Таким образом при использовании методом потенциалов для решения транспортной задачи отпадает наиболее трудоемкий элемент распределительного метода: поиски циклов с отрицательной ценой.

Процедура построения потенциального (оптимального) плана состоит в следующем.

В качестве первого приближения к оптимальному плану берется любой допустимый план (например, построенный способом минимальной стоимости по строке). В этом плане m+n-1 базисных клеток, где m – число строк, n – число столбцов транспортной таблицы. Для этого плана можно определить платежи (αi в βj), так, чтобы в каждой базисной клетке выполнялось условие:

αiji,j (5.2.3)

Уравнений (5.2.3) всего m+n-1, а число неизвестных равно m+n. Следовательно, одну из этих неизвестных можно задать произвольно (например, равной нулю). После этого из m+n-1 уравнений (5.2.3) можно найти остальные платежи αi и βj, а по ним вычислить псевдостоимости: Сi,jij для каждой свободной клетки.

Таблица 5.2.11

ПН ПО   В1   В2   В3   В4   В5   αi
А1 c=7 c=6     c=6  
А2   c=5 c=4 c=5   -1
А3 c=8   c=6 c=7    
А4   5 c=6 4 c=5   c=6  
  βj            

Если оказалось, что все эти псевдостоимости не превосходят стоимостей

Сi,j≤ сi,j,

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

В таблице 5.2.11 мы получили в двух клетках Сi,j≤ сi,j, теперь можно поострить цикл в любой из этих двух клеток. Выгоднее всего строить цикл в той клетке, в которой разность Сi,j- сi,j максимальна. В нашем случае в обоих клетках разность одинакова (равна 1), поэтому, для построения цикла выберем, например, клетку (4,2):

Таблица 5.2.12

ПН ПО   В1   В2   В3   В4   В5   αi
А1            
А2 6 +       5 - -1
А3   7 -     7 +  
А4 7 - 5 + x        
βj            

Теперь будем перемещать по циклу число 14, так как оно является минимальным из чисел, стоящих в клетках, помеченных знаком -. При перемещении мы будем вычитать 12 из клеток со знаком – и прибавлять к клеткам со знаком +.

После этого необходимо подсчитать потенциалы αi и βj и цикл расчетов повторяется.

Итак, мы приходим к следующему алгоритму решения транспортной задачи методом потенциалов:

- взять любой опорный план перевозок, в котором отмечены m+n-1 базисных клеток (остальные клетки свободные);

- определить для этого плана платежи (αi и βj) исходя из условия, чтобы в любой базисной клетке псевдостоимости были равны стоимостям. Один из платежей можно назначить произвольно, например, положить равным нулю.

- подсчитать псевдостоимости Сi,jij для всех свободных клеток. Если окажется, что все они не превышают стоимостей, то план оптимален.

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

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

Так в нашем примере после 2 циклов расчетов получим оптимальный план вида:

X2= ,где 0x – базисный нуль.

При этом стоимость всей перевозки изменялась следующим образом:

Z(X0)=703

Z(X)=709

Z(X2)=Zmin=703.

Следует отметить так же, что оптимальный план может иметь и другой вид, но его стоимость останется такой же Zmin=703.

Однако на практике чаще встречаются задачи с неправильным балансом.

1. Пусть суммарные запасы поставщиков превосходят суммарные запасы потребителей, т.е.

>

Очевидно, что в этом случае при составлении оптимального плана перевозок часть запасов поставщиков, равная

bn+1= -

останется не вывезенной. Поэтому в системе ограничений транспортной задачи первую группу уравнений (i Є1, ) следует заменить неравенствами вида «≤».

Вторая группа уравнений остается без имени, так как запросы всех потребителей удовлетворяются полностью. Для приведения к канонической форме в полученные неравенства вводят дополнительные переменные x1(n+1), x2(n+1),…,xm(n+1). В результате первые m ограничений задачи принимают вид

+xi(n+1)=ai, i=1,2,..,m

В целевую функцию дополнительные переменные не входят (входят с нулевыми коэффициентами). Математическая модель задачи принимает вид

Z(X)= ·xi(n+1) →min, (5.2.4)

+xi(n+1)=ai, i=1,2,…,m, (5.2.5)

=bj, j=1,2,…,n, (5.2.6)

xij≥0, i=1,2,…,m, j=1,2,…,n+1. (5.2.7)

Запишем необходимое и достаточное условие разрешимости задачи:

,

отсюда

.

Следовательно, чтобы задача в рассматриваемом случае имела решение, необходимо ввести фиктивного потребителя с запросами bn+1 равными разности суммарных запасов поставщиков и запросов потребителей, и нулевыми стоимостями перевозок единиц груза ci(n+1)=0 i.

2. Аналогично в случае, когда суммарные запросы потребителей превосходят суммарные запасы поставщиков, т.е. <

часть запросов потребителей, равная am+1= -

останется неудовлетворенной. Поэтому вторая группа уравнений системы ограничений (j Є1. ) транспортной задачи заменяется неравенствами вида «≤».

После введения дополнительных переменных x(m+1)1, x(m+1)2,, …, x(m+1)n в эти неравенства математическая модель задачи примет вид

Z(X)= ·x(m+1)j →min, (5.2.8)

i=1,2, …, m, (5.2.9)

+x(m+1)j=bi, i=1,2,…,n. (5.2.10)

xij≥0, i=1,2,…,m+1, j=1,2,…,n. (5.2.11)

Для того чтобы задача имела решение, необходимо и достаточно, чтобы

,

отсюда

.

Следовательно, чтобы в этом случае задача имела решение, необходимо ввести фиктивного поставщика с запасами am+1, равными разности суммарных запросов потребителей и запасов поставщиков, и нулевыми стоимостями перевозок единиц груза с(m+1)j=0 j.

Транспортная задача с ограничениями на пропускную способность.

Пусть требуется при решении транспортной задачи ограничить перевозки от поставщика с номером l к потребителю с номером k. Возможны ограничения двух типов: 1) xlk≥a; 2) xlk≤b, где a и b – постоянные величины.

1. Если xlk≥a, то необходимо прежде, чем решать задачу, сократить запасы l-го поставщика и запросы k-го потребителя на величину а (зарезервировать перевозку xlk≥a). После решения задачи в оптимальном решении следует увеличить объем перевозки xlk на величину a..

2. Если xlk≤b, то необходимо вместо k-го потребителя с запросами bk ввести двух других потребителей. Один из них с номером k должен иметь запросы bk=b, а другой с номером n+1 – запросы bn+1=bk-b. Стоимости перевозок для этих потребителей остаются прежними, за исключением стоимости cl(n+1), которая принимается равной сколь угодно большому числу М (М>>1). После получения оптимального решения величины грузов, перевозимых к (n+1)-му потребителю, прибавляются к величинам перевозок k-го потребителя. Так как cl(n+1)=M – самая большая стоимость перевозки, то в оптимальном решении клетка с номером (l,n+1) останется пустой, xl(n+1)=0 и объем перевозки xlk не превзойдет b.

Пример. Решить транспортную задачу, исходные данные которой приведены в табл. 5.3.1, при дополнительных условиях: объем перевозки груза от l-го поставщика 2-му потребителю должен быть не менее 100 единиц (x12≥100), а от 3-го 1-му не более 200 единиц (x31≤200).

Таблица 5.3.1

bj ai      
       
       
       

Р е ш е н и е. Для того чтобы в оптимальном решении объем перевозки x12 был не менее 100 единиц, при решении задачи будем предполагать, что запасы 1-го поставщика а1 и запросы 2-го потребителя b2 меньше фактических на 100 единиц. После получения оптимального решения объем перевозки x12 увеличим на 100 единиц.

Для того чтобы удовлетворить требованию x31≤200, вместо 1-го потребителя введем двух других. Один из них под прежним первым номером имеет запасы b1=200 единиц и прежние стоимости перевозок единиц груза. Другому присвоим четвертый номер. Его запросы равны b4=500-200=300 единиц и стоимости перевозок единиц груза те же, что и у 1-го потребителя за исключением с34, которую примем равной сколь угодно большому числу М, т.е. с34=М. После нахождения оптимального решения задачи объемы перевозок для 4-го потребителя необходимо прибавить к соответствующим объемам перевозок для 10го потребителя.

В результате указанных преобразований таблица исходных данных задачи будет иметь вид, представленный в табл. 5.3.2.

Таблица 5.3.2

bj ai        
         
         
        M

Далее задачу решаем обычным методом потенциалов. Проверяем выполнение необходимого и достаточного условия существования решения задачи. Находим суммарные запасы поставщиков и запросы потребителей:

а123=100+300+500=900;

b1+b2+b3+b4=200+300+300+300=1100.

Задача с неправильным балансом. Вводим фиктивного поставщика с запасами а4=1100-900=200.

Составляем начальное опорное решение X1 методом минимальной стоимости. Записываем матрицу стоимостей С:

С=

2 4 6

Кружочками в матрице С отмечены минимальные элементы, а цифрами рядом со строками и столбцами – порядок исключения из рассмотрения поставщиков и потребителей.

Таблица 5.3.3

X1 v1=1 v2=0 v3=1 v4=1

bj ai        
      -   -  
  -   -   - +
    5 +   - M -
      - + -

u1=0

u2=1

u3=7

u4 = -1

Полученное решение X1 имеет m+n-1=4+4-1=7 базисных переменных. Вычисляем значение целевой функции на этом опорном решении:

Z(X1)=100·1+100·2+200·2+300·7+200·8+100·0+100·0=4400.

Для проверки оптимальности опорного решения находим потенциалы. Записываем систему уравнений для нахождения потенциалов и решаем ее:

Система состоит из семи уравнений и имеет восемь переменных. Так одно число неизвестных на единицу больше числа уравнений, то одному из потенциалов можно задать значение произвольно: пусть u1=0. Остальные потенциалы однозначно находятся из системы уравнений:

u1=0;

v1=1-u=1-0=1;

u2=2-v1=2-1=1;

v4=2-u2=2-1=1;

u4=0-v4=0-1=-1;

v3=0-u4=0-(-1)=1;

u3=8-v3=8-1=7;

v3=7-u3=7-7=0.

Находим оценки для свободных клеток таблицы:

Δ12=0+0-5= -5 <0; Δ13=0+1-6= -5<0; Δ14=0+1-1=0;

Δ22=1+0-6= -5<0; Δ23=1+1-7= -5<0; Δ31=7+1-3=5>0;

Δ34=7+1-M<0; Δ41=-1+1-0=0; Δ42=-1+0-0= -1<0.

Опорное решение неоптимальное, так как имеется положительная оценка Δ31=5 для клетки (3,1). Отмечаем эту клетку знаком «+». Находим цикл для улучшения опорного решения (см. табл. 5.3.3). Определяем величину груза для перераспределения по циклу 0=min{11, 200, 100}=100. Осуществляем сдвиг по циклу на величину 0=100. Получаем второе опорное решение X2 (табл. 5.3.4)

Таблица 5.3.4

X2 v1=1 v2=5 v3=6 v4=1

bj ai        
         
           
                     
   
        M -
    -   -     -

u1=0

u2=1

u3=2

u4= -6

В табл. 5.3.4 также записаны потенциалы и оценки для свободных клеток. Решение X2 оптимальное, так как все оценки неположительные. Запишем оптимальное решение исходной задачи. Для этого увеличим объем перевозки x12 на 100 единиц и объединим объемы перевозок 4-го потребителя с объемами перевозок 1-го потребителя.

Получим

X*=

Вычислим значение целевой функции на этом решении:

Z(X*)=100·1+100·5+300·2+100·3+300·7+100·8=4400.

Ответ: min Z(X)=4400 при X*=

В некоторых задачах требуется запретить перевозки от отдельных поставщиков отдельным потребителям. В таких случаях либо зачеркивают клетку таблицы транспортной задачи, либо назначают соответствующую этой клетке стоимость перевозки единицы груза сколь угодно большой, равной М>>1. В остальном задача решается обычным способом. Для разрешимости данной задачи необходимо существование начального опорного решения.

Транспортная задача по критерию времени.

Задача по критерию времени возникает при перевозке срочных грузов. Как и в обычной транспортной задаче, имеется m поставщиков с запасами однородного груза в количестве а1, а2, …, аm и n потребителей, которым этот груз должен быть доставлен в объеме b1, b2, …, bn. Известно tij, i=1, 2, …, m, j=1, 2, …, n – время, за которое груз доставляется от каждого i-го поставщика каждому j-му потребителю. Требуется составить такой план перевозок груза, при котором запасы всех поставщиков вывозятся полностью, запросы всех потребителей удовлетворяются полностью и наибольшее время доставки всех грузов является минимальным.

Составим математическую модель этой задачи. Обозначим xij – объем перевозимого груза от i-го поставщика j-му потребителю. Система ограничений задачи не отличается от системы ограничений обычной транспортной задачи. Пусть X=(xij), i=1, 2, …, m, j=1, 2, …, n – некоторое опорное решение задачи. Запишем целевую функцию задачи. Обозначим через T(X) наибольшее значение элементов матрицы T=(tij), i=1, 2, …, m, j=1, 2, …, n, соответствующих клеткам таблицы, занятым опорным решением: T(X)= . Таким образом, за время T(X) план перевозок будет выполнен полностью. Математическая модель имеет вид:

T(X)= →min, (5.4.1.)

, i=1, 2, …, m, (5.4.2)

, j=1, 2, …, n, (5.4. 3.)

xij≥0, i=1, 2, …, m, j=1, 2, …, n. (5.4.4.)

Задача решается в следующем порядке. Находится начальное опорное решение X1. Определяется значение целевой функции T(X1)= = . Все свободные клетки, которым соответствуют значения tij>T(X1), исключаются из рассмотрения (перечеркиваются). Занимать эти клетки нецелесообразно, так как повысится значение целевой функции. Чтобы понизить ее значение, необходимо освободить клетку (l1, k1), в которой tij достигает максимума. Для этого строят так называемые разгрузочные циклы, которые могут включать в свой состав несколько свободных клеток. В каждом разгрузочном цикле, начиная с разгружаемой клетки (l1, k1), расставляются поочередно знаки «—» и «+» и осуществляется сдвиг на величину 0=max{xij}. Если удается эту клетку разгрузить, то она исключается из рассмотрения (зачеркивается). Получается новое опорное решение X2, на котором значение целевой функции меньше, чем на X1. Далее снова пытаются разгрузить клетку, соответствующую T(X2)= = . Процесс продолжается до тех пор, пока возможность разгрузить соответствующую клетку не исчезнет.

Пример. Найти минимальное время на осуществление всех перевозок для задачи, исходные данные которой приведены в табл. 5.4.1.

Таблица 5.4.1

bj ai        
         
    8 - 30   +
    +   - 10
         

Таблица 5.4.2

bj ai        
  10 - 20 +    
  + 20 -    
         
         

Р е ш е н и е. Составим начальное опорное решение X1 по методу северо-западного угла (см. табл. 5.4.1). Базисные нули не записываем. Максимум целевой функции T(X1)= =12 достигается в клетке (3, 4). Перечеркнем клетку (4, 1), в которой время доставки груза t41= 15 больше T(X1)=12.

Для улучшения решения разгрузим клетку (3, 4) с помощью цикла (3, 4), (2, 4), (2, 2), (3, 2). Обозначим цикл, найдем 0=min{10, 30}=10. Осуществив сдвиг по циклу, получим второе опорное решение X2 (табл. 5.4.2). Максимум целевой функции на этом опорном решении T(X2)= =10 достигается в клетке (1, 1). Перечеркнем клетку (3, 4), так как время t34=12 больше, чем T(X2)=10. Разгрузим клетку (1, 1) с помощью цикла (1, 1), (1, 2), (2, 2), (2, 1). Означим цикл, найдем 0=min{20, 20}=20. Осуществив сдвиг по циклу, получим третье опорное решение X3 (табл. 5.4.3)

Таблица 5.4.3

bj ai        
    20 - +  
         
    + 4 - 5  
         

Таблица 5.4.4

bj ai        
         
         
         
         

Максимум целевой функции на этом опорном решении T(X3)= {6,5,4,4,5,4,}=6 и достигается в клетке (1, 2). Перечеркнем клетки (1, 1), (2, 2), (2, 3) и (4, 3): в них время t11=10, t22=8, t23=7 и t43=9 больше, чем T(X3)=6. Разгрузим клетку (1, 2) с помощью цикла (1, 2), (1, 3), (3, 3), (3, 2). Означим цикл, найдем 0=min {20,20}=20. Осуществив сдвиг по циклу, получим четвертое опорное решение X4 (табл. 5.4.4). Максимум целевой функции на этом опорном решении T(X4)= { 5,4,4,5,4,}=5 и достигается в клетках (2, 1) и (3, 3). Перечеркнем клетки (1, 2) и (4, 2), в которых время перевозок не менее t21=5. С помощью оставшихся невычеркнутых клеток разгрузить клетки (2, 1) и (3, 3) не удается, поэтому X4 является оптимальным решением.

Ответ: min T(X)=5 при X*=

СПИСОК ЛИТЕРАТУРЫ.

1. Ермаков В.И. Общий курс высшей математики для экономистов: Учебник для экон. спец. вузов / Под ред. В.И. Ермакова. М.: ИНФРА-М., 1999.656 с.

2. Зайцев М.В. Прикладная математика: Сборник задач. Ч. 1. / М.В. Зайцев, А.А. Беляев. М.: Изд-во МГУК., 1999. 32 с.

3. Зайцев М.В. Прикладная математика: Сборник задач. Ч. 2. / М.В. Зайцев, А.А. Беляев. М.: Изд-во МГУК., 1999. 39 с.

4. Плотникова С.В. Математика в экономике: Метод. разработки и контр. задания / С.В. Плотникова. Тамбов: Изд-во Тамб. гос. техн. Ун-та, 1997. 52 с.

5. Матвеев В.И. Курс линейного программирования: Учеб. пособие / В.И. Матвеев, Р.В. Сачитов, В.Г. Шершнев. М: Изд-во «Менеджер», 1998. 102 с.





Дата публикования: 2015-11-01; Прочитано: 487 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.061 с)...