Транспортная задача линейного программирования. 3

 

СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………………… 4

1.ТРАНСПОРТНАЯ ЗАДАЧА………………………………………………. 5

1.1 Общая постановка задачи………………………………………… 5

1.2 Нахождение исходного  опорного решения……………………... 8

1.3 Проверка найденного  опорного решения на оптимальность…... 9

1.4 Переход от одного  опорного решения к другому………………. 9

2. РЕШЕНИЕ ТРАНСПОРТНЫХ  ЗАДАЧ…………………………………. 10

2.1 Пример решения задачи  транспортным методом………………. 10

2.2 Экономический вывод  задачи……………………………………. 19

ЗАКЛЮЧЕНИЕ………………………………………………………………. 20

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ………………………………………………...21

 

ВВЕДЕНИЕ

Я выбрал эту тему курсовой работы, потому что каждый человек, ежедневно не всегда осознавая это  решает проблему: как получить наибольший эффект, обладая ограниченными средствами. Наши средства и ресурсы всегда ограничены. Жизнь была бы менее интересной, если бы это было не так. Чтобы достичь  наибольшего эффекта, имея ограниченные средства, надо составить план, или  программу действий. В середине ХХ века был создан специальный математический аппарат помогающий это делать «по науке». Соответствующий раздел математики называется математическим программированием. С программированием для ЭВМ математическое программирование имеет лишь то общее, что большинство возникающих на практике задач математического программирования слишком громоздки для ручного счета, решить их можно только с помощью ЭВМ, предварительно составив программу.

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

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

Для реализации данной цели в работе необходимо решить следующие  задачи;

-рассмотреть транспортную  задачу, общую постановку, цели, задачи;

-изучить основные типы, виды моделей;

-охарактеризовать методы  решения транспортной задачи;

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

1.ТРАНСПОРТНАЯ ЗАДАЧА

1.1 Общая постановка задачи

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

          В общем виде задачу можно  представить следующим образом:  в m пунктах производства A1, A2 ,…, Am имеется однородный груз в количестве соответственно a1, a2,…,am. Этот груз необходимо доставить в n пунктов назначения B1, B2,…, Bn в количестве соответственно b1, b2,…, bn. Стоимость перевозки единицы груза (тариф) из пункта Ai в пункт Bj равна cij.

          Требуется составить план перевозок,  позволяющий вывезти все грузы  и имеющий минимальную стоимость.

           В зависимости от соотношения  между суммарными запасами груза  и суммарными потребностями в  нем транспортные задачи могут  быть закрытыми и открытыми.

Если

 

 

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

то открытой.

 

Обозначим через хij количество груза, перевозимого из пункта Ai в пункт Bj. Рассмотрим закрытую транспортную задачу. Ее условия запишем в распределительную таблицу которую будем использовать для нахождения решения.

 

Bj

Ai

B1

B2

…

Bj

…

Bn

b1

b2

…

bj

…

bn

 

A1     a1

c11

x11

c12

x12

…

c1j

x1j

…

c1n

x1n

 

A2     a2

c21

x21

c22

x22

…

c2j

x2j

…

c2n

x2n

…

…

…

…

…

…

…

 

Ai      ai

ci1

xi1

ci2

xi2

…

cij

xij

…

cin

xin

…

…

…

…

…

…

…

 

Am   am

cm1

xm1

cm2

xm2

…

cmj

xmj

…

cmn

xmn


Таблица 1

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

при ограничениях:

Оптимальным решением задачи является матрица

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

- нахождение исходного  опорного решения

- проверка этого решения  на оптимальность

- переход от одного  опорного решения к другому

Рассмотрим каждый из этих этапов.

 

1.2 Нахождение исходного  опорного решения

      Условия  задачи и ее исходное опорное  решение будем записывать в  распределительную таблицу. Клетки, в которые поместим грузы, называются  занятыми, им соответствуют базисные  переменные опорного решения.  Остальные клетки незанятые, или  пустые, им соответствуют свободные  переменные. В верхнем правом  углу каждой клетки будем записывать  тарифы. Существует несколько способов  исходного опорного решения.

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

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

Найденное исходное опорное  решение проверяется на оптимальность  методом потенциалов по следующему критерию: если опорное решение транспортной задачи является оптимальным, то ему  соответствует система m+n действительных чисел ui и vj, удовлетворяющих условиям ui + vj= cij, для занятых клеток и ui +vi – cij ≤ 0 для свободных клеток. Одному из потенциалов дается произвольное значение, например u1 = 0, тогда остальные потенциалы определяются однозначно. Так, если известен потенциал vj, то ui = cij - vj.

Обозначим ∆ij = ui+vj-cij. Эту оценку называют оценкой свободных клеток. Если ∆ij ≤ 0, то опорное решение является оптимальным. Если хотя бы одна из оценок ∆ij > 0, то опорное решение не является оптимальным и его можно улучшить перейдя от одного опорного решения к другому.

1.4 Переход от одного  опорного решения к другому

Наличие положительной оценки свободной клетки ( ∆ij > 0) при проверке опорного решения на оптимальность свидетельствует о том, что полученное решение не оптимально и для уменьшения значения целевой функции надо перейти к другому опорному решению. Свободная клетка становится занятой становится занятой, а одна из ранее занятых - свободной.

Для свободной клетки с  ∆ij > 0 строится цикл (цепь, многоугольник), все вершины которого кроме одной находятся в занятых клетках; углы прямые, число вершин четное. Около свободной клетки цикла ставится знак (+), затем поочередно проставляют знаки (-) и (+). У вершин со знаком (-) выбирают минимальный груз, его прибавляют к грузам, стоящим у вершин со знаком (+), и отнимают от грузов у вершин со знаком (-). В результате перераспределения груза получим новое опорное решение. Это решение проверяем на оптимальность, и т.д. с тех пор, пока не получим оптимальное решение.

2. РЕШЕНИЕ ТРАНСПОРТНЫХ  ЗАДАЧ

2.1 Пример решения задачи  транспортным методом

В качестве примера возьмём  следующую задачу:

Четыре предприятия данного  технологического района для производства продукции используют три вида сырья, потребности в сырье каждого  из предприятий соответственно равны  150, 120, 80, 50 единиц. Сырьё сосредоточено в трёх местах его получения, а запасы соответственно  100, 130, 170 единиц. Тарифы перевозок известны и заданы матрицей:

2

1

8

12

5

3

7

5

3

7

14

4


 

Для начала выясним, какая  это задача, а для этого сравним  общее количество сырья на складах  и общее количество потребления:

А = 100+130+170=400

В = 150+120+80+50 = 400

А = В – из этого следует, что задача является закрытой.

 

 

 

 

 

 

 

 

 

 

 

 

Шаг 1.

Составим таблицу, расставим  тарифы и сделаем распределение:

Ai

Bj

b1

b2

b3

b4

Ui

150

120

80

50

a1

100

2

100

1

 

8

 

12

   
       

a2

130

5

50

3

80

7

 

5

   
       

a3

170

3

 

7

40

14

80

4

   
       

Vg

               

Таблица 2

Распределение выполнили. Можно  найти коэффициент затрат на перевозки  сырья F. С ходом решения этот коэффициент должен только уменьшаться, по сравнению с предыдущим.

 F = 2*100+5*30+3*80+7*40+14*80 = 2290 единиц.

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

cij=ui+vj

 

В итоге у нас получится  вот такая таблица:

 

Ai

Bj

b1

b2

b3

b4

Ui

150

120

80

50

a1

100

2

 

1

 

8

 

12

 

0

       

a2

130

5

 

3

 

7

 

5

 

3

       

a3

170

3

 

7

 

14

 

4

 

7

       

Vg

 

2

0

7

-3

 

Таблица 3

Теперь мы можем выяснить, можем ли мы уменьшить коэффициент  F, а для этого теперь работает с пустыми клетками.

Стоило сказать, что поля данных идентифицируются как на координатной плоскости, то есть к примеру самая  левая верхняя ячейка данных будет  иметь координату (1:1), чуть правее ячейка (1:2), а если ячейка а 1 ниже первой, то координаты (2:1).

Теперь производим оценку свободных клеток. Для этого мы находим пустую клетку, далее складываем потенциалы из полей Ai и Bg , А затем из тарифа вычитаем полученную сумму потенциалов. Если видно, что результат получится меньше нуля, то вычисления можно опустить и сделать запись об этом. Это действие нужно произвести со всеми пустыми клетками:

∆12 = 0+0-1=(-1)

∆13 = 0+7-8=(-1)

∆14 = 0-3-12=(-15)

∆23 = 3+7-7=3

∆24 = -3+3-5=(-5)

∆31 = 2+7-3=6

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

Вернёмся к самой таблице  и возьмём выбранную нами клетку как 1 из вершин прямоугольника. Теперь перед нами стоит задача: составить  прямоугольник, у которого 3 вершины  будут являться заполненными клетками, но наша 1 выбранная вершина будет, как очевидно, принадлежать пустой клетке. Согласно их физическому расположению, вырисуем для удобства этот прямоугольник и вынесем на его вершины значения выбранных клеток. Присвоим вершине со значением 0 и вершине, противоположной вершине со значением 0 – знак «+», что означает, что вершины положительные, а остальным вершинам знак «-», что значит вершины отрицательные, т. е. получится вот так:

 

50

 

80

 

-

 

+

 

+

-

0

 

40


 

 Среди 2 отрицательных  вершин находим наименьшее число.  В данном примере это число  40. Теперь к положительным вершинам прибавляем это число, а из отрицательных - отнимаем. Получится так:

 

50-40

 

80+40

 

-

 

+

 

+

-

0+40

 

40-40


 

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

 

Шаг 2.

Опираясь на полученные значения из предыдущего шага, необходимо составить  новое распределение.

Составим таблицу, расставим  тарифы и сделаем распределение:

 

Ai

Bj

b1

b2

b3

b4

Ui

150

120

80

50

a1

100

2

100

1

 

8

 

12

 

0

       

a2

130

5

 

3

120

7

10

5

 

2

       

a3

170

3

50

7

 

14

70

4

50

1

       

Vg

 

2

1

 

5

 

3

 

Таблица 4

 

Найдём коэффициент F:

F = 2*100+3*120+7*10+3*50+14*70+4*50=1960 единиц.

Находим потенциалы занятых  клеток. Их я уже вписал в таблицу  сразу.

 

 

Теперь выясним оптимальность  этого решения, оценив свободные  клетки.

∆12 = 0+0-1=(-1)

∆13 = 13+0-8=5

∆14 = 3+0-12=(-9)

∆21 = 2+3-5 =0

∆24 =3+3-5=1

∆32 = 0+1-7=(-6)

Положительное значение у  клетки (1;3) – с ним и станем производить цикл.

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

100-70

 

0+70

 

-

 

+

 

+

-

50+70

 

70-70


  В следующем шаге  вносим значения в таблицу  согласно данным, полученным только  что.

 

Шаг 3.

Опираясь на полученные значения из предыдущего шага, необходимо составить  новое распределение.

Составим таблицу, расставим  тарифы и сделаем распределение:

 

Ai

Bj

b1

b2

b3

b4

Ui

150

120

80

50

a1

100

2

30

1

 

8

70

12

 

0

       

a2

130

5

 

3

120

7

10

5

 

-1

       

a3

170

3

120

7

 

14

 

4

50

1

       

Vg

 

2

4

 

8

 

3

 

Таблица 5

 

Найдём коэффициент F:

F = 2*30+3*120+8*70+3*120+7*10+3*120+4*50=1610 единиц.

Находим потенциалы занятых  клеток. Их я уже вписал в таблицу  сразу.

Теперь выясним оптимальность  этого решения, оценив свободные  клетки.

∆12 = 4+0-1=3

∆14 = 3+0-12=(-9)

∆21 = 2+(-1)-5=(-4)

∆24 = 3+(-1)-5=(-3)

∆32 =4+1-7=(-2)

∆33 = 8+1-14=(-5)

Положительное значение у  клетки (1;2) – с ним и станем производить цикл.

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

0+70

 

70-70

 

+

 

-

 

-

+

120

 

10+70


  В следующем шаге  вносим значения в таблицу  согласно данным, полученным только  что.

 

Шаг 4.

Опираясь на полученные значения из предыдущего шага, необходимо составить  новое распределение.

Составим таблицу, расставим  тарифы и сделаем распределение:

 

Ai

Bj

b1

b2

b3

b4

Ui

150

120

80

50

a1

100

2

30

1

70

8

 

12

 

0

       

a2

130

5

 

3

50

7

80

5

 

2

       

a3

170

3

120

7

 

14

 

4

50

1

       

Vg

 

2

1

 

5

 

3

 

Таблица 6

 

Найдём коэффициент F:

F = 2*30+1*70+3*50+7*80+3*120+4*50=1400 единиц.

Находим потенциалы занятых  клеток. Их я уже вписал в таблицу  сразу.

Теперь выясним оптимальность  этого решения, оценив свободные  клетки.

∆13 = 5+0-8=(-3)

∆14 = 3+0-12=(-9)

∆21 = 2+2-5=(-1)

∆24 = 3+2-5=0

∆32 =1+1-7=(-5)

∆33 = 5+1-14=(-8)

Положительных чисел нет, мы нашли оптимальное решение  этой задачи.

2.2 Экономический вывод задачи

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

На целых 39% снизили стоимость перевозки:

  1. Потребителю b1, потребовалось взять 30 единиц сырья со склада a1 и 120 единиц сырья со склада a3;
  2. Потребителю b2, потребовалось взять 70 единиц сырья со склада a1 и 50 единиц сырья со склада a2;
  3. Потребителю b3, потребовалось взять 80 единиц сырья со склада a2;
  4. Потребителю b4, потребовалось взять 50 единиц сырья со склада a3.

 

ЗАКЛЮЧЕНИЕ

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

 

СПИСОК  ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. Апатенок Р.Ф. Математика для экономистов. М, Просвещение, 2004.
  2. Баумоль. У. Экономическая теория и исследование операций. – М.; Наука, 2004.
  3. Большев Л.Н., Смирнов Н.В. Таблицы математической статистики. М.: Наука, 2004.
  4. Боровков А.А. Математическая статистика. М.: Наука, 2004.
  5. Акулич И.Л. Математическое программирование в примерах и задачах: учебное пособие для ВУЗов. – М.: Высшая школа, 2004.