Замечание(для открытых задач)




Математическая модель

где xij количество продукции, поставляемое со склада i потребителю j, а С i j издержки (стоимость перевозок со склада i потребителю j).

Если условие равны, то транспортная задача называется сбалансированной т. е. закрытой.

Если данное условие не выполняется, то задача называется несбалансированной или открытой и вводится либо фиктивный пункт производства, либо фиктивный пункт назначения.

 

Далее,

где ai есть количество продукции, находящееся на складе i, и bj - потребность потребителя j.

 

Замечание(для открытых задач)

1. Если сумма запасов в пунктах отправления превышает сумму поданных заявок то количество продукции, равное остается на складах. В этом случае мы введем "фиктивного" потребителя n +1 с потребностью и положим транспортные расходы pi,n +1 равными 0 для всех i.

2. Если сумма поданных заявок превышает наличные запасы то потребность не может быть покрыта. Эту задачу можно свести к обычной транспортной задаче с правильным балансом, если ввести фиктивный пункт отправления m + 1 с запасом и стоимость перевозок из фиктивного пункта отправления во все пункты назначения принять равным нулю.

 

1.3.2 Опорный план транспортной задачи

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

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

1.3.3 Метод северо- западного угла

Таблица № 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 покроет его заявку. На этом распределение запасов закончено; каждый пункт назначения получил груз, согласно своей заявки. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце - заявке.

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

1.3.4 Минимальной стоимости по строке

Таблица № 2

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

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

Другой способ - способ минимальной стоимости по строке - основан на том, что мы распределяем продукцию от пункта Ai не в любой из пунктов Bj, а в тот, к которому стоимость перевозки минимальна. Если в этом пункте заявка полностью удовлетворена, то мы убираем его из расчетов и находим минимальную стоимость перевозки из оставшихся пунктов Bj. Во всем остальном этот метод схож с методом северо-западного угла. В результате, опорный план, составленный способом минимальной стоимости по строке выглядит, так как показано в таблице № 3. При этом методе может получиться, что стоимости перевозок Cij и Cik от пункта Ai к пунктам Bj

и Bk равны. В этом случае, с экономической точки зрения, выгоднее распределить продукцию в тот пункт, в котором заявка больше. Так, например, в строке 2: C21 = C24, но заявка b1 больше заявки b4, поэтому 4 единицы продукции мы распределим в клетку (2,1).

1.3.5 Минимальной стоимости по столбцу

Т аблица № 3

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

Способ минимальной стоимости по столбцу аналогичен предыдущему способу. Их отличие состоит в том, что во втором способе мы распределяем продукцию от пунктов Bi к пунктам Aj по минимальной стоимости Cji.

Опорный план, составленный способами минимальных стоимостей, обычно более близок к оптимальному решению. Так в нашем примере общие затраты на транспортировку по плану, составленному первым способом F0 = 1039, а по второму F0 = 723. Клетки таблицы, в которых стоят ненулевые перевозки, являются базисными. Их число должно равняться m + n - 1. Необходимо отметить также, что встречаются такие ситуации, когда количество базисных клеток меньше чем m + n - 1. В этом случае распределительная задача называется вырожденной. И следует в одной из свободных клеток поставить количество перевозок равное нулю. Так, например, в таблице № 3:

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

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

 

1.4 Распределительный метод оптимального плана

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

 

Таблица №4

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

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

1.) 2.) 3.)

           
   
     
       
         

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

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

При перемещении одной единицы груза по циклу стоимость перевозок увеличивается на величину g. При перемещении по нему k единиц груза стоимость перевозок увеличиться на kg. Очевидно, для улучшения плана имеет смысл перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение, стоимость плана уменьшается на соответствующую величину kg. Так как перевозки не могут быть отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых лежат в базисных клетках таблицы, где стоят положительные перевозки.

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

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

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

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

Метод потенциалов является модификацией симплекс-метода решения задачи линейного программирования применительно к транспортной задаче. Он позволяет, отправляясь от некоторого допустимого решения, получить оптимальное решение за конечное число итераций.

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

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

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

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

при условиях

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

— решение

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

Алгоритм

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

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

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

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

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

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

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

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

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

 

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

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

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

§ Для 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 кг

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

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

 

 

  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.4 Разделение ячеек на базисные и свободные

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

 

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

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

 

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

Каждому поставщику 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 следует повторить.

 

1.5.7 Проверка решения на оптимальность

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

В нашем примере есть отрицательные значения. Наличие отрицательных значений Δij означает, что решение не оптимально.

  B1 B2 B3 B4
A1 Δ11=0 Δ12=0 Δ13=–4 Δ14=–6
A2 Δ21=2 Δ22=0 Δ23=0 Δ24= –8
A3 Δ31=6 Δ32=4 Δ33=0 Δ34=0

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

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

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

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

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

2. В каждой вершине цикла встречаются ровно два звена ломаной линии, причем одна из них находится по строке, а другая — по столбцу. Иначе говоря, они пересекаются под прямым углом.

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

4. Линия может пересекать саму себя, при этом точка пересечения не включается в цикл (исходя из п.2).

 

 

  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.5.9 Перераспределение поставок по циклу

«Красной» ячейке цикла присваиваем знак (+), следующей по циклу (начать двигаться можно в любом направлении) — знак (–), следующей ячейке цикла — опять (+) и так далее. Находим минимальную поставку по отмеченным знаком (–) вершинам цикла и обозначаем ее θ. Эта вершина цикла Х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.5.10 Зацикливание решения

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

Примечание: есть опасность, что алгоритм впадет в бесконечный цикл из-за вырожденности или каких-либо ошибок реализации, поэтому полезно предусмотреть проверку на максимальное число шагов или максимальное время, которое будет исполняться программа. Впрочем, по мнению Данцига, те меры, которые можно предпринять для исключения вырожденности приводят к успеху в 100 % случаев. Для подстраховки можно применить метод Фогеля, который не склонен «впадать» в бесконечные циклы, и выдает более или менее приближенное к оптимальному решение за ограниченное число шагов.

 

1.6 Пример решения задачи

Решение:
Проверим необходимое и достаточное условие разрешимости задачи.
∑ a = 4 + 6 + 10 + 10 = 30
∑ b = 7 + 7 + 7 + 7 + 2 = 30
Условие баланса соблюдается. Запасы равны потребностям. Следовательно, модель транспортной задачи является закрытой.
Занесем исходные данные в распределительную таблицу.

  1 2 3 4 5 Запасы
1 26 30 17 10 16 4
2 30 37 26 9 23 6
3 13 4 32 3 1 10
4 3 1 5 14 24 10
Потребности 7 7 7 7 2  


1. Используя метод наименьшей стоимости, построим первый опорный план транспортной задачи.
Искомый элемент равен 1.
Для этого элемента запасы равны 10, потребности 2. Поскольку минимальным является 2, то вычитаем его.

26 30 17 10 x 4
30 37 26 9 x 6
13 4 32 3 1 8
3 1 5 14 x 10
7 7 7 7 0 0


Искомый элемент равен 1.
Для этого элемента запасы равны 10, потребности 7. Поскольку минимальным является 7, то вычитаем его.

 

26 x 17 10 x 4
30 x 26 9 x 6
13 x 32 3 1 8
3 1 5 14 x 3
7 0 7 7 0 0


Искомый элемент равен 3.
Для этого элемента запасы равны 8, потребности 7. Поскольку минимальным является 7, то вычитаем его.

26 x 17 x x 4
30 x 26 x x 6
13 x 32 3 1 1
3 1 5 x x 3
7 0 7 0 0 0


Искомый элемент равен 3.
Для этого элемента запасы равны 3, потребности 7. Поскольку минимальным является 3, то вычитаем его.

26 x 17 x x 4
30 x 26 x x 6
13 x 32 3 1 1
3 1 x x x 0
4 0 7 0 0 0


Искомый элемент равен 13.
Для этого элемента запасы равны 1, потребности 4. Поскольку минимальным является 1, то вычитаем его.

 

26 x 17 x x 4
30 x 26 x x 6
13 x x 3 1 0
3 1 x x x 0
3 0 7 0 0 0


Искомый элемент равен 17.
Для этого элемента запасы равны 4, потребности 7. Поскольку минимальным является 4, то вычитаем его.

x x 17 x x 0
30 x 26 x x 6
13 x x 3 1 0
3 1 x x x 0
3 0 3 0 0 0


Искомый элемент равен 26.
Для этого элемента запасы равны 6, потребности 3. Поскольку минимальным является 3, то вычитаем его.

x x 17 x x 0
30 x 26 x x 3
13 x x 3 1 0
3 1 x x x 0
3 0 0 0 0 0


Искомый элемент равен 30.
Для этого элемента запасы равны 3, потребности 3. Поскольку минимальным является 3, то вычитаем его.

 

x x 17 x x 0
30 x 26 x x 0
13 x x 3 1 0
3 1 x x x 0
0 0 0 0 0 0

 

  1 2 3 4 5 Запасы
1 26 30 17[4] 10 16 4
2 30[3] 37 26[3] 9 23 6
3 13[1] 4 32 3[7] 1[2] 10
4 3[3] 1[7] 5 14 24 10
Потребности 7 7 7 7 2  


В результате получен первый опорный план, который является допустимым, так как все грузы из баз вывезены, потребность магазинов удовлетворена, а план соответствует системе ограничений транспортной задачи.
2. Подсчитаем число занятых клеток таблицы, их 8, а должно быть m + n - 1 = 8. Следовательно, опорный план является невырожденным.
4. Проверим оптимальность опорного плана. Найдем потенциалы ui и viпо занятым клеткам таблицы, в которых ui + vi = cij, полагая, что u1 = 0.
u1 + v3 = 17; 0 + v3 = 17; v3 = 17
u2 + v3 = 26; 17 + u2 = 26; u2 = 9
u2 + v1 = 30; 9 + v1 = 30; v1 = 21
u3 + v1 = 13; 21 + u3 = 13; u3 = -8
u3 + v4 = 3; -8 + v4 = 3; v4 = 11
u3 + v5 = 1; -8 + v5 = 1; v5 = 9
u4 + v1 = 3; 21 + u4 = 3; u4 = -18
u4 + v2 = 1; -18 + v2 = 1; v2 = 19

 

  v1=21 v2=19 v3=17 v4=11 v5=9
u1=0 26 30 17[4] 10 16
u2=9 30[3] 37 26[3] 9 23
u3=-8 13[1] 4 32 3[7] 1[2]
u4=-18 3[3] 1[7] 5 14 24


Опорный план не является оптимальным, так как существуют оценки свободных клеток, для которых lang=EN-US>i > cij
(1;4): 0 + 11 > 10; ∆14 = 0 + 11 - 10 = 1
(2;4): 9 + 11 > 9; ∆24 = 9 + 11 - 9 = 11
(3;2): -8 + 19 > 4; ∆32 = -8 + 19 - 4 = 7
max(1,11,7) = 11

Выбираем максимальную оценку свободной клетки (2;4): 9.
Для этого в перспективную клетку (2;4) поставим знак «+», а в остальных вершинах многоугольника чередующиеся знаки «-», «+», «-». Цикл приведен в таблице.

  1 2 3 4 5 Запасы
1 26 30 17[4] 10 16 4
2 30[3][-] 37 26[3] 9[+] 23 6
3 13[1][+] 4 32 3[7][-] 1[2] 10
4 3[3] 1[7] 5 14 24 10
Потребности 7 7 7 7 2  


Из грузов хij стоящих в минусовых клетках, выбираем наименьшее, т.е. у = min (2, 1) = 3. Прибавляем 3 к объемам грузов, стоящих в плюсовых клетках и вычитаем 3 из Хij, стоящих в минусовых клетках. В результате получим новый опорный план.

 

  1 2 3 4 5 Запасы
1 26 30 17[4] 10 16 4
2 30 37 26[3] 9[3] 23 6
3 13[4] 4 32 3[4] 1[2] 10
4 3[3] 1[7] 5 14 24 10
Потребности 7 7 7 7 2  

4. Проверим оптимальность опорного плана. Найдем потенциалы ui и viпо занятым клеткам таблицы, в которых ui + vi = cij, полагая, что u1 = 0.
u1 + v3 = 17; 0 + v3 = 17; v3 = 17
u2 + v3 = 26; 17 + u2 = 26; u2 = 9
u2 + v4 = 9; 9 + v4 = 9; v4 = 0
u3 + v4 = 3; 0 + u3 = 3; u3 = 3
u3 + v1 = 13; 3 + v1 = 13; v1 = 10
u4 + v1 = 3; 10 + u4 = 3; u4 = -7
u4 + v2 = 1; -7 + v2 = 1; v2 = 8
u3 + v5 = 1; 3 + v5 = 1; v5 = -2

  v1=10 v2=8 v3=17 v4=0 v5=-2
u1=0 26 30 17[4] 10 16


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: