Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.11 Mб
Скачать
    1. Транспортная задача

Классическая модель транспортной задачи формулируется следующим образом.

Некоторый однородный продукт, сосредоточенный у m поставщиков Аi в количестве ai единиц соответственно, необходимо доставить к потребителям Вj в количестве bj единиц. Известна стоимость cij перевозки единицы груза от i-го поставщика к j-му потребителю. Необходимо составить план перевозок, позволяющий вывезти все грузы, полностью удовлетворить потребности и имеющий минимальную стоимость.

Решим задачу для условного случая, когда фамилия студента записана в журнале группы под № 42. Исходные данные выбираем из табл. 5 раздела 3.

Так как 42 число чётное, то принимаем число поставщиков равным пяти , а число потребителей Вj, равным четырём . При этом число десятков в номере а = 4, а число единиц b = 2. Подставив эти значения в табл. 5, получим исходные данные задачи. ai, bj, cij:

Таблица 5.1

B1

B2

B3

B4

ai

A1

6

6

7

8

22

A2

7

8

4

8

26

A3

7

5

9

8

48

A4

11

11

7

7

14

A5

8

6

4

4

40

bj

14

27

36

17

Обозначим через хij количество единиц груза, запланированных к перевозке от i-го поставщика к j-му потребителю. Тогда математическую модель задачи можно записать следующим образом. Найти такую матрицу X=( хij) , чтобы функция

— общая стоимость перевозок достигала наименьшего значения при ограничениях:

(4.27)

Так как минимизируемая функция f(x) есть линейная относительно переменных хij и ограничения задачи (4.27) также линейны, то сформулированная задача является задачей ЛП. Коротко её можно записать

так:

(4.28)

(4.29)

Транспортная задача называется закрытой, если выполняется условие равенства суммарного объёма запасов и суммарного объёма потребностей , (т.е. если = ) и называется открытой в противном случае (т.е. если ).

Справедлива следующая

Теорема 7. Любая закрытая транспортная задача имеет решение.

Задача (4.26) – (4.29) является открытой задачей, так как

Сведём задачу к закрытой, введя фиктивного B5=Dф потребителя с потребностью единиц продукции. При этом стоимость перевозок от любого из поставщиков Аi к потребителю B5 полагаем равными нулю, т.е.ci5=0, . Согласно теореме 7 такая задача разрешима. Новая задача коротко запишется так:

(4.30)

(4.31)

Исходные данные «новой» задачи запишем в табл. 5.2, указывая запасы ai= , потребности bj= и в левом верхнем углу клетки cij — стоимости перевозок от i-го поставщика к j-му потребителю .

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

  1. построение первоначального опорного плана;

  2. проверка построенного плана на оптимальность; если план оптимальный, то задача решена, если нет, то — шаг 3;

  3. построение нового плана (с использованием системы потенциалов), на котором значение функции стоимости перевозок будет меньше, чем на предыдущем.

Таблица 5.2

Ai

Bj

B1

B2

B3

B4

B5

ai

6

6

2

1

-7

A1

0

14 6

8 6

7

8

0

22

A2

2

1 7

19 8

7 4

8

0

26

A3

7

6 7

8 5

29 9

17 8

2 0

48

A4

7

2 11

2 11

2 7

1 7

14 0

14

A5

7

5 8

7 6

5 4

4 4

40 0

40

bj

14

27

36

17

56

Для построения первоначального опорного плана применим метод «северо-западного угла». Начинаем распределять продукцию с клетки (1.1).

Поместим в эту клетку наименьшее из чисел a1 и b1, т.е. x11=min (a1, b1)=

=min (22,14)=14 (запишем его в левый нижний угол клетки). Тогда запрос первого потребителя В1 будет полностью удовлетворен, и первый столбец исключается из рассмотрения. Двигаемся далее по первой строке вправо. В клетку (1.2) запишем x12=min(a1-b1, b2)=min(22-14,27)=8, исключаем из рассмотрения первую строку, так как все запасы поставщика А1 использованы.

Переходим ко второй строке. В клетку (2.2) запишем x22=min(a2, b2-x12)=min(26,27-8)=19 единиц продукции из запасов поставщика А2, тогда запрос потребителя В2 будет удовлетворен, а остаток продукции у поставщика А2 , равный 26–19=7 единицам, помещаем в клетку (2.3) (х23 = 7). Исключаем из рассмотрения вторую строку и второй столбец. Двигаясь по третьему столбцу вниз, полагаем х33=29, тогда удовлетворен полностью запрос потребителя В3, остаток продукта у А3, равный 48–29=19, распределяем между клетками (3.4) (х34=17) и (3.5) (х35=2). При этом полностью удовлетворены потребности потребителя В4. Остальную продукцию распределим, положив х45=14 и х55=40. Остальные хij полагаем равными нулю, им соответствуют свободные клетки табл. 5.2. Построенный таким образом план является допустимым, так как позволяет удовлетворить запросы всех потребителей (сумма хij по столбцам равна bj) и использовать запасы всех поставщиков .

При этом переменные хij>0, соответствующие занятым клеткам, являются базисными, а переменные хij=0, соответствующие пустым клеткам таблицы, — свободными. Напомним, что допустимый план транспортной задачи (Т3) называется невырожденным, если число базисных переменных хij равно рангу m+n-1 матрицы ограничений (4.31). При m=5, n=5 число базисных переменных должно быть равно 5+5-1=9. Таким образом, построенный план х11 =14, х12 =8, х22 =19, х23 =7, х33 =29, х34 =17, х35 =2, х45=14, х55 =40 является невырожденным.

Отметим, что если план получился вырожденным, т.е. число базисных переменных хij меньше m+n-1, то в соответствующие свободные клетки записывают нулевые значения хij и эти клетки считаются занятыми, т.е. базисными.

Вычислим значение целевой функции f(x) на первом опорном плане:

f(x1)=14·6+8·6+19·8+7·4+29·9+17·8=709 (единиц стоимости).

Переходим ко второму этапу итерационного метода, т.е. построенный план проверим на оптимальность. Для этого каждой строке таблицы 5.2 поставим в соответствие переменную ui , называемую потенциалом строки (или потенциалом поставщика) и каждому столбцу — переменную vjпотенциал столбца (или потребителя). Потенциалы ui и vj — это двойственные переменные к переменным хij задачи (4.30), (4.31). Справедлива

Теорема 8 (критерий оптимальности опорного плана теоремы 3). Если для некоторого опорного плана x*=(хij) ТЗ существуют такие числа ui и vj , что ui + vj = cij для х*ij > 0 и ui + vj cij для х*ij = 0 для всех и , то x*=(хij) — оптимальный план ТЗ.

Теорема 8 позволяет проверить первый опорный план на оптимальность. Определим сначала потенциалы строк и столбцов таблицы 5.2, используя условие ui + vj = cij для всех базисных клеток таблицы. Получаем систему уравнений:

Система состоит из девяти уравнений с десятью неизвестными, поэтому положим u1=0, а остальные неизвестные определим последовательно, рассматривая уравнения системы:

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

Далее для каждой свободной клетки табл. 5.2, т.е. для всех хij=0, определим числа :

По теореме 8 для оптимального плана все числа должны быть неположительны . Среди чисел , вычисленных по таблице 5.2, есть положительные, следовательно, первый опорный план х1 не является оптимальным. Значения >0 также внесены в табл. в левом верхнем углу клетки и обведены рамкой.

Напомним, что сумму потенциалов свободной клетки ui+vj называют фиктивной стоимостью перевозки единицы продукции от i-го поставщика к j-му потребителю. По известному критерию, если фиктивная стоимость меньше или равна реальной стоимости для всех свободных клеток, то план оптимальный.

Переходим к третьему этапу метода потенциалов — построим новый опорный план, улучшающий значение целевой функции. Для этого среди чисел >0 выбираем наибольшее и свободную переменную x32 введём в число базисных переменных, т.е. перераспределим перевозки так, чтобы клетка (3.2) стала базисной, а одна из занятых клеток — свободной, но при этом не нарушился баланс запасов и заявок. Построим цикл, содержащий клетку (3.2). Напомним прежде, что циклом в табл. ТЗ называется ломаная линия, вершины которой расположены в занятых клетках таблицы, а звенья — вдоль строк и столбцов, причём в каждой вершине цикла встречаются ровно два звена, одно из которых находится в строке, а другое в столбце. Для пустой клетки (3.2) существует единственный цикл из занятых клеток (3.3), (2.3), (2.2), включающих эту пустую клетку (рис. 4 а)

Рис. 4

Производим перераспределение объёмов поставок грузов по данному циклу так, чтобы клетка (3.2) стала занятой и при этом сохранился баланс объёмов грузов по строкам и столбцам. Для этого присвоим знак «+» клетке (3.2), а остальным клеткам цикла поочерёдно знаки минус и плюс. Знак «+» означает, что объем поставок в эту клетку будет увеличен на Т>0 единиц груза , «-» — объём будет уменьшаться на Т единиц. Максимальный объём груза Т, который можно переместить по циклу пустой клетки, равен наименьшему объему поставок в клетках цикла, отмеченных знаком «-», т.е.

Т=min(29.19)=19.

В результате получим новый преобразованный цикл клетки (3.2) (рис. 4 б). Заменяя в таблице 5.2 исходный цикл преобразованным, получим новый опорный план, который записан в табл. 5.3.

Таблица 5.3

6

6

10

9

1

ai

0

14 6

8 6

3 7

8

1 0

22

-6

7

8

26 4

8

0

26

-1

7

19 5

10 - 9

17 8

2 + 0

48

-1

11

11

2 7

1 7

14 0

14

-1

8

6

5 + 4

4 4

40 0

40

bj

14

27

36

17

56

Для новой таблицы проверим, равна ли сумма элементов i-ой строки числу ai, а сумма элементов j-го столбца — bj. Вычислим значение целевой функции на новом опорном плане:

f(x2)=14·6+8·6+26·4+19·5+10·9+17·8=557 (ед).

Стоимость перевозок уменьшилась на величину (ед). Новый опорный план следует проверить на оптимальность; для этого вычислим потенциалы строк и столбцов табл. 5.3, по занятым клеткам из условия Результаты записываем в таблицу. Для свободных клеток вычисляем числа и положительные значения записываем в левом верхнем углу клетки и обводим рамкой. Так как среди последних есть положительные, то план х2 не является оптимальным. Наибольшим из положительных чисел является . Строим цикл для клетки (5.3), в табл. 5.3 он отмечен сплошной линией, вершинам цикла приписываем знаки «+» и «-». Объем перевозок

Новый опорный план и соответствующие ему данные занесены в табл. 5.4.

Таблица 5.4

6

6

5

9

1

0

16

14

6

8

7

1 8

1 0

22

-1

7

8

26 4

8

0

26

-1

7

19 5

9

17 - 8

12 + 0

48

-1

11

11

7

1 7

14 0

14

-1

8

6

10 4

4 + 4

30 - 0

40

14

27

36

17

56

Новое значение целевой функции

Проверим построенный план на оптимальность, вычисляя новые значения потенциалов строк и столбцов и новые значения для незанятых клеток таблицы. Среди чисел есть положительные, следовательно, план х3 не оптимальный. Наибольшее из положительных чисел равно , строим цикл для клетки (5.4),

Новый опорный план заносим в табл. 5.5 и вычисляем соответствующее значение целевой функции:

Таблица 5.5

6

6

5

5

1

0

14 6

8 - 6

7

8

1 + 0

22

-1

7

8

26 4

8

0

26

-1

7

19 + 5

9

8

29 - 0

48

-1

11

11

7

7

14 0

14

-1

8

6

10 4

17 4

13 0

40

14

27

36

17

56

Вычисляем потенциалы строк и столбцов табл. 5.5, а также числа . Среди них есть положительное, поэтому план не оптимальный. Строим цикл для клетки (1,5) при

Таблица 5.6

6

6

5

5

1

0

14 6

8 - 6

7

8

1 + 0

22

-1

7

8

26 4

8

0

26

-1

7

19 + 5

9

8

29 0

48

-1

11

11

7

7

14 0

14

-1

8

6

10 4

17 4

13 0

40

14

27

36

17

56

Вычисляем потенциалы строк и столбцов табл. 5.6, . Так как для таблицы 5.6 все числа , то план х5 — оптимальный, при этом оптимальная стоимость перевозок равна 431 денежной единице.

Для поставленной ТЗ рассчитаем первоначальный опорный план х1 методом «минимальной стоимости».

Таблица 5.7

В1

В2

В3

В4

В5

А1

14 6

6

7

8

8 0

22

А2

7

8

26 4

8

0

26

А3

7

27 5

9

8

21 0

48

А4

11

11

7

7

14 0

14

А5

8

6

10 4

17 4

13 0

40

14

27

36

17

56

Согласно этому методу в таблице стоимостей cij находим минимальный элемент (без учёта фиктивных перевозок) с23=4 и все запасы поставщика А2 — 26 единиц груза — перевозим к потребителю В3. Строку вторую вычёркиваем. Из оставшихся берём наименьшее cij (с53=4) и, чтобы удовлетворить запрос В3, перебрасываем 10 единиц груза от А5 к В3. Столбец третий вычёркиваем. Так как с54=4, то запрос потребителя В4 удовлетворим за счет А5, столбец четвёртый вычёркиваем. Из оставшихся — наименьшее значение с32=5, поэтому 27 единиц груза перевозим от А3 к В2, вычёркиваем столбец второй и неудовлетворенный запрос первого потребителя — 14 единиц — удовлетворим за счёт А1 с минимальной стоимостью перевозок с11=6 денежных единиц. Таким образом, удовлетворены запросы всех действительных потребителей, а остатки продукции поставщиков А1 (8 единиц), А3 (21 единица), А4 (14) и А5 (13) можно направить фиктивному потребителю. Получим оптимальный план, совпадающий с полученным ранее в табл. 5.6.

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