Решение транспортной задачи методом потенциалов

Курсовая работа

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

заключается в нахождении такого плана поставок, при котором его цена минимальна.

Условия задачи задаются в виде таблицы:

поставщик

потребитель

Запас груза

В1

В2

Вn

А1

C11

X11

C12

X12

C1n

X1n

a1

А2

C21

X21

C22

X22

C2n

X2n

a2

Аm

Cm1

Xm1

Cm2

Xm2

Cmn

Xmn

am

Потребность в грузе

b1

b2

bn

Матрица (c ij )m*n называется матрицей тарифов. Планом транспортной задачи называется матрица х=(xij )m*n , где каждое число обозначает количество единиц груза, которое надо доставить из i–го пункта отправления в j–й пункт назначения.

Транспортная задача ставится следующим образом: имеется m пунктов отправления, в которых сосредоточены запасы каких-то однородных грузов. Имеется n пунктов назначения подавшие заявки соответственно на груза. Известны стоимости р ij перевозки единицы груза от каждого пункта отправления до каждого пункта назначения. Все числа р ij , образующие прямоугольную таблицу заданы. Требуется составить такой план перевозок (откуда, куда и сколько единиц поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна.

Далее, предполагается, что

Транспортная задача 1 (1)

b i

Замечание.

Если Замечание  1 то потребность не может быть покрыта. В этом случае начальные условия должны быть изменены таким образом, чтобы потребность в продукции могла быть обеспечена.

x ij

Замечание  2

Замечание  3 (2)

Замечание  4

Замечание  5

Замечание  6

транспортной таблицей

а1

аn

b1

bm

p11

p1n

pm1

pmn

Допустимый план перевозок

а1

аn

b

bm

Допустимый план перевозок 1

Допустимый план перевозок 2

Допустимый план перевозок 3

Допустимый план перевозок 4

Cумма элементов строки i должна быть равна b i , а сумма элементов столбца j должна быть равна aj , и все Допустимый план перевозок 5 должны быть неотрицательными.

Пример 1.

20

5

10

10

5

15

15

20

5

6

3

5

9

6

4

7

3

5

2

5

3

1

8

Мы получаем следующую задачу:

х 1112131415 =15,

х 2122232455 =15,

х 3132333435 =20,

х 112131 =20,

х 122232 =5,

х 132333 =10,

х 142434 =10,

х 152535 =5;

х ij 0 для i = 1,2,3; j = 1,2,3,4,5;

К min =5х11 +6х12 +3х13 +5х14 +9х15 +6х21 +4х22 +7х23 +3х24 +5х25 +2х31 +5х32 +3х3334 +8х35 ;

метода потенциалов

оптимальное решение

1.1 Составление опорного плана

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

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

а

b

20

5

10

10

5

15

5

6

3

5

9

15

6

4

7

3

5

20

2

5

3

1

8

а 1

5

6

4

7

3

1

8

На этом распределение запасов закончено; каждый пункт назначения получил груз, согласно своей заявки. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце — заявке. Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является опорным решением транспортной задачи. Составленный нами план перевозок, не является оптимальным по стоимости, так как при его построении мы совсем не учитывали стоимость перевозок С ij .

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

Далее, нам требуется таблица расходов с заданными pij .

Отыскание симплекс множителей.

pll

plj

pln

ul

pil

pij

pin

ui

pml

pmj

pmn

um

vl

vj

vn

Для всех базисных решений эта система имеет треугольный вид, ранг её матрицы равен n + m – 1 . Следовательно, систему всегда можно решить следующим способом.

v n

u i

Пример 2.

5

u1

6

4

7

u2

3

1

8

u3

v1

v2

v3

v4

v5

v 5 = 0 ® u 3 = 8, так как u 3 + u 5 = p 35 = 8, ® v 4 = -7, так как u 3 + v 4 = p 34 = 1, ® v 3 = -5, так как u 3 + v 3 = 3, ® u 2 = 12 ® v 2 = -8, ® v 1 = -6 ® u 1 = 11.

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

Для определения симплекс – множителей мы вносим на свободные места в таблице значения

p ¢ ij = pij ui vj

(коэффициенты целевой функции, пересчитанные для свободных переменных).

Если все p ¢ ij 0, то базисное решение оптимально. В противном случае мы выбираем произвольное p ¢ a b < 0, чаще всего наименьшее. Индексом a b помечено свободное переменное х a b , которое должно войти в базис. Соответствующую ячейку транспортной таблицы мы отметим знаком +.

Кроме ячейки (a, b) транспортной таблицы, мы пометим значками – и + другие занятые числами ячейки таким образом, чтобы в каждой строке и в каждом столбце транспортной таблицы число знаков + было равно числу знаков -. Это всегда можно сделать единственным образом, причем в каждой строке и в каждом столбце будет содержаться максимум по одному знаку = и по одному знаку -.

Затем мы определяем минимум М из всех элементов, помеченных знаком -, и выбираем ячейку (g, d), где этот минимум достигается.

В нашем примере с М = 5 можно выбрать (g, d) = (2, 3); при этом (g, d) определяет базисное переменное, которое должно стать свободным, т.е. базисное переменное, соответствующее индексу разрешающей строки симплекс – метода.

20

5

10

10

5

15

15

15

5

5

5-

+

20

5+

10

5-

¯

15

5-

5

5+

+

10

10

0-

¯

15-

+

5

5

5

0+

10-

10

¯

5

10

5-

5

+

5

10+

10-

¯

5

10

5

5

5

15

5

К опт = 150

Переход к новой транспортной таблице (замена базиса) происходит следующим образом:

а).

В ячейку (a, b) новой таблицы записывается число М.

б).

Ячейка (g, d) остается пустой.

в).

В других ячейках помеченных знаками – или +, число М вычитается из стоящего в ячейке числа (-) или складывается с ним (+).

Результат вносится в соответствующую ячейку новой таблицы.

г).

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

2.1 Обоснование выбора языка программирования

Мною был выбран язык программирования Turbo Pascal по следующим соображениям:

  • Изучение данного языка в школе
  • Наличие литературы по данному языку программирования

2.2 Разработка

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

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

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

2.3 Руководство пользователей

При запуске программа предлагает ввести количество поставщиков (не меньше 2, но не больше 5), затем количество потребителей (условие тоже).

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

Карманов В.Г. Математическое программирование. — М.; Наука, 1986г

А.В.Кузнецов, Г.И.Новикова, И.И.Холод — «Сборник задач по математическому программированию». Минск, Высшая школа, 1985г

Боборыкин В.А. Математические методы решения транспортных задач. Л.: СЗПИ, 1986

Кузнецов Ю.Н., Кузубов В.И., Волощснко А. Б. Математическое программирование. М.: Высшая школа, 1980