Построение математической модели

ЗАДАЧА 2 / №1

УСЛОВИЕ ЗАДАЧИ

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

Расстояния от базы до каждого  магазина и между магазинами приводятся в таблице 1:

 

Табл. 1

 

база

Т2

Т3

Т4

Т5

Т6

база

15

26

31

16

6

Т2

15

16

14

24

33

Т3

26

16

17

19

25

Т4

31

14

17

26

28

Т5

16

24

19

26

14

Т6

6

33

25

28

14


 

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

ПОСТРОЕНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ

Сеть дорог, связывающих  базу с магазинами области можно  представить в виде неориентированного графа, вершинам которого поставлены в  соответствие название базы и магазинов, ребрам - связывающие их дороги, и  каждому ребру поставлен в  соответствие вес - длина дороги. Для  удобства обозначим название базы через  хьа торговые точки через х2, х3, х3, х5. Расстояния от вершины Х до всех остальных и между вершинами представим в виде матрицы весов неориентированного графа (табл. 2). Для наглядности в матрице весов знаки ∞ (показывающие отсутствие дороги) опустим. Тогда задача сводится к нахождению кратчайших путей от вершины X до всех остальных. Для ее решения используем метод Дейкстры.

 

Табл. 2

 

х1

х2

х3

х4

х5

х6

Х1

15

26

31

16

6

Х2

15

16

14

24

33

Х3

26

16

17

19

25

Х4

31

14

17

26

28

Х5

16

24

19

26

14

Х6

6

33

25

28

14


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РЕШЕНИЕ ЗАДАЧИ

  1. Построение графа

Построим граф (рис. 1), соответствующий  матрице смежности (табл. 2).

 

Рис. 1

  1. Определение кратчайших расстояний от вершиныjcjдо всех остальных

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

 

 

 

 

 

табл. 3

 

0

1

2

3

4

5

х1

  0*

         

х2

         

х3

         

х4

         

х5

         

х6

         

 

Предварительно всем вершинам графа, кроме вершины хь присвоим временные метки, равные бесконечности: L(x2) = L(х3) = L(х4) = L(х5) =L(x6) = ∞, а вершине Х1присвоим постоянную метку L*(x1)= 0. Занесем метки в нулевой столбец табл. 3.

Выполним последовательность следующих шагов:

Шаг 1

а) Определим множество вершин графа, смежных с вершиной x1 (рис. 1, табл. 2):

S(1)= {х2,x345,x6}.

б) Для каждой вершины, принадлежащей множеству S(x1),вычислим новые временные метки L(xj),равные min{ LCT(xj),L*(X]) + R]j},где LCT(xj)- старая временная метка вершины xj, L*(xj)= 0 - постоянная метка вершины xj, Rj-вес ребра (xj, х,). Вычисления выполним в табл. 3-а.

L *(xt) = 0 

 

 

 

 

 

Табл. 3-а

L(Xj)

L*(xi)+R1j

 

min{LCT(xj), ( L*(x1) +R1j}

L(x2) = ∞

L*(x1) + R12 =

0 + 15 = 15

min{∞, 15} = 15

L(x3) = ∞

L*(x1) + R13 =

0 + 26 = 26

min{∞, 26} = 26

L(x4)= ∞

L*(x1) + R14 =

0 + 31 = 31

min{∞, 31} = 31

L(x5)= ∞

L*(x1) + R15 =

0 + 16 = 16

min{∞, 16} = 16

L(x6)= ∞

L*(x1) + R16 =

0 + 6 = 6

min{∞, 6}   = 6


 

Вершинам x2, х3, х4 , х5, х6 присвоим новые временные метки, вычисленные в табл. 3а

 L(x2)=15, L(x3) =26, L(x4)=31, L(x5)=16, L(x6)=6. Занесем новые метки в первый столбец табл. 4. Обновленные метки выделим.

 

в) Из всех имеющихся временных меток в столбце 1 (табл. 4) выберем наименьшую и сделаем ее постоянной для своей вершины: min{15, 26, 31, 16, 6}=6. Эта метка соответствует вершине х6. Отметим ее звездочкой в столбце 1 L*(x6)= 6.

 

Табл. 4

 

0

1

2

3

4

5

х1

  0*

         

х2

15

       

х3

26

       

х4

31

       

х5

16

       

х6

6*

       

 

а) Определим множество вершин графа, смежных с вершиной X6, не имеющих еще постоянных меток (рис. 1, табл. 2):

S(x6)={Х2}.

в) Для вершины Х6, принадлежащей множеству S(x2),вычислим новые временные метку L(x2),равные min{LCT(x2), L*(x6) + R62}, где LCT(x2) - старая временная метка вершины X2, L*(x6) = 6 - постоянная метка вершины Х6 , R62- вес ребра (Х6, Х2;) (см. табл. 4-а).

Табл. 4-а

L(Xj)

L*(xi)+R6j

 

min{LCT(xj), ( L*(x1) +R1j}

L(x2) = 15

L*(x6) + R62 =

6+ 33 = 39

min{15, 39} = 15

L(x3) = 26

L*(x6) + R63 =

6 + 25 = 31

min{26, 31} = 26

L(x4) = 31

L*(x6) + R64 =

6 + 28= 34

min{31, 34} = 31

L(x5) = 16

L*(x6) + R65 =

6 + 14 = 20

min{16, 20} = 16


 

     Занесем их во второй столбец (табл. 5). Из всех имеющихся временных меток в столбце 2 табл. 5 выберем наименьшую и сделаем ее постоянной для своей вершины: min{15, 26, 31, 16} = 15. Эта метка соответствует вершине L(х2) = 15. Отметим ее звездочкой.

 

 

 

 

 

 

 

Табл. 5

 

0

1

2

3

4

5

х1

0*

         

х2

15

  15*

     

х3

26

26

     

х4

31

31

     

х5

16

16

     

х6

6*

       

 

Шаг 3

а) Определим множество вершин графа, смежных с вершиной х2, не имеющих еще постоянных меток (рис. 1, табл. 2):

S(X2) = {Х5}.

б) Для вершины, принадлежащей множеству S(х2), вычислим новую временную метку L(x5), равную min{Lст(x5), L*(x2) + R25 } где LСТ(Х5) ~~ старая временная метка вершины х5, L*(х2) = 15 - постоянная метка вершины х2, R25- вес ребра (Х2, Х5;) (см. табл. 5-а).

 

Табл. 5-а

LCT(Xi)

L*(xi)+R2j

 

min{LCT(xj), ( L*(x1) +R1j}

L(x3) = 26

L*(x2) + R23 =

15 + 16 = 31

min{26, 31} = 26

L(x4) =31

L*(x2) + R24 =

15 + 14 = 29

min{31, 29} = 29

L(x5) =16

L*(x2) + R25 =

15 + 24 = 39

min{16, 39} = 16


 

в) Из всех имеющихся временных меток в третьем столбце табл. 5 выберем наименьшую и сделаем ее постоянной для своей вершины: min{26, 29, 16} = 16. Эта метка соответствует вершине х5: £*(х5) = 16. Отметим ее звездочкой.

 

Табл. 6

 

0

1

2

3

4

5

х1

  0*

         

х2

15

  15*

     

х3

26

26

26

   

х4

31

31

29

   

х5

16

16

  16*

   

х6

6*

       

 

Шаг 4

а) Определим множество вершин графа, смежных с вершиной Х5, не имеющих еще постоянных меток (рис. 1, табл. 2):

S(X5) = {X3}.

б) Для вершины Х3, принадлежащей множеству S(х5), вычислим новую временную метки L(x3), равную min{XCT(x3), L*(x5) + R53}, где LCT(x3) - старая временная метка вершины Х3, L*(х5) = 16 - постоянная метка вершины Х5, R53 – вес ребра (х5, х3)

 

 

Табл. 6-а

LCT(Xi)

L*(xi)+R5j

 

min{LCT(xj), ( L*(x1) +R1j}

L(x3) = 26

L*(x2) + R53 =

16 + 19 = 35

min{26, 35} = 26

L(x4) = 29

L*(x2) + R54 =

16 + 26 = 42

min{29, 42} = 29


 

Вершине Х3 присвоим новую временную метку, т.е. L(x3) = 26. Занесем ее в четвертый столбец (табл. 7).

в) В четвертом столбце табл. 7 одна временная метка. Сделаем ее постоянной. Эта метка соответствует вершине х3: L*(x3) = 26. Отметим ее звездочкой.

Табл. 7

 

0

1

2

3

4

5

х1

0*

         

х2

15

  15*

     

х3

26

26

26

  26*

 

х4

31

31

29

29

 

х5

16

16

  16*

   

х6

6*

       

Шаг 5

а) Определим множество вершин графа, смежных с вершиной Х3, не имеющих еще постоянных меток (рис. 1, табл. 2):

S(X3) = {Х4}.

в)Для вершины Х4, принадлежащей множеству S(х3), вычислим новую временную метку L(x3), равную min{XCT(x4), L*(x3) + R34}, где LCT(x4) - старая временная метка вершины Х4, L*(х3) = 26 - постоянная метка вершины Х3, R34 - вес ребра (Х3, Х4) Табл. 7-а

 

 

 

Табл. 7-а

LCT(Xi)

L*(x3)+R3j

 

min{LCT(xj), ( L*(x1) +R1j}

L(x4) = 29

L*(x3) + R34 =

26 + 17 =

min{29, 43} = 29


 

Вершине Х4 присвоим новую временную метку, т.е. L(x4) = 31. Занесем ее в пятый столбец (табл. 8).

 

0

1

2

3

4

5

х1

0*

         

х2

15

  15*

     

х3

26

26

26

  26*

 

х4

31

31

29

29

29*

х5

16

16

  16*

   

х6

6*

       

 

 

Процесс расстановки меток  закончен. Значения их дают кратчайшие расстояния от исходной вершины Х] до всех остальных:

L(x2) =15 , L(x3) =26 , L(х4) =29 , L(x5) =16 , L(x6)=6.

На рисунке 2 в квадратных скобках укажем найденные кратчайшие расстояния от вершины X1 до всех остальных, т.е. взвесим вершины исходного графа.

Рис. 2

  1. Определение кратчайших путей

Чтобы найти кратчайшие пути от вершины х\ до всех остальных вершин, используем соотношение:

L*(xj) = L*(xi) + Rij

где вершина Xi предшествует вершине Xj.

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

Вершина Х4 имеет пять смежных вершин: х1,х23,х5,х6: S(х1,х23,х5,х6). Определим, какая из этих вершин удовлетворяет соотношению (4).

L*(x4) = L*(Xi) + Ri4.

L*(x4) = 29

L*(x1)=0

R14=31

L*(x4)=L*(x1)+R14=0+31=31

L*(x2)=15

R24=14

L*(x4)≠L*(x2)+R24=15+14=29

L*(x3)=26

R34=17

L*(x4)≠L*(x3)+R34=26+17=43

L*(x5)=16

R54=26

L*(x4)≠L*(x5)+R54=16+26=42

L*(x6)=6

R64=28

L*(x4)≠L*(x6)+R64=6+28=34


Как видно, только вершина  Х2 удовлетворяет соотношению (4). Следовательно, в кратчайшем пути вершине Х4 предшествует X2. Выделем на графе ребро Х24

 

б). Определим, какая вершина предшествует вершине Х2 в кратчайшем пути. Вершина X2 имеет смежные вершины: Х1, Х3,X5,X6 (вершина Х4 уже вошла в искомый путь и поэтому не рассматривается).Определим, какая из этих вершин удовлетворяет соотношению (4).

L*(x2) =15,

L*(x1)=0

R12=15

  L*(x2)=L*(x1)+R12=0+15=15

L*(x3)=26

R32=16

L*(x2)≠L*(x3)+R32=26+16=42

L*(x5)=16

R52=24

L*(x2)≠L*(x5)+R52=16+24=40

L*(x6)=6

R62=33

  L*(x2)≠L*(x6)+R62=6+33=39


 

Как видно, соотношению (4) удовлетворяет  вершина Х1. Следовательно, в кратчайшем пути вершине Х2 предшествует вершина Х1 (рис. 3). Выделим на графе ребро Х1, Х2.

 

 

 

 

Рис. 3

 

 

Таким образом, минимальный  путь от вершины Х1 до вершины Х4 проходит по вершинам x1, x2,x4 и длина этого пути равна 29.

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

 

Найдем кратчайший путь от вершины x1 до вершины х3.

а). Вершина х3 имеет смежные вершины: S(x1,x2,x4,x5,x6 ). Определим, какая из этих вершин удовлетворяет соотношению (4).

L*(x3) = 26,

      L*(x1)=0

R13=26

L*(x3)=L*(x1)+R13=0+26=26

L*(x2)=15

R23=16

 L*(x3)≠L*(x2)+R23=15+16=31

L*(x4)=29

R43=17

 L*(x3)≠L*(x4)+R43=29+17=46

L*(x5)=16

R53=19

 L*(x3)≠L*(x5)+R53=16+19=35

      L*(x6)=6

R63=25

L*(x3)≠L*(x6)+R63=6+25=31


 

 Как видно, соотношению  (4) удовлетворяет только вершина х1 . Следовательно, в кратчайшем пути вершине х3 предшествует вершина x1.

Таким образом, минимальный  путь от вершины х1 до вершины х3 проходит по ребру (х1х3) и длина его равна 26 (весу ребра).

 

Рис. 4

 

 

Найдем кратчайший путь от вершины x1 до вершины х3.

б). Вершина х5 имеет смежные вершины: S(x1,x2,x4,x6 ). Определим, какая из этих вершин удовлетворяет соотношению (4).

L*(x5) = 16,

     

L*(x1)=0

R15=16

             L*(x5)=L*(x1)+R15=0+16=16

 L*(x2)=15

R25=24

L*(x5)≠L*(x2)+R25=15+24=39

 L*(x4)=29

R45=26

L*(x5)≠L*(x4)+R45=29+26=55

L*(x6)=6

R65=14

               L*(x5)≠L*(x6)+R65=6+14=20


 

 Как видно, соотношению  (4) удовлетворяет только вершина х1 . Следовательно, в кратчайшем пути вершине х5 предшествует вершина x1.

Таким образом, минимальный  путь от вершины х1 до вершины х5 проходит по ребру (х1х5) и длина его равна 16 (весу ребра).

 

 

 

 

 

 

 

Рис. 5

 

 

Найдем кратчайший путь от вершины x1 до вершины х3.

в). Вершина х6 имеет смежные вершины: S(x1,x2,x4 ). Определим, какая из этих вершин удовлетворяет соотношению (4).

L*(x6) = 6,

     

L*(x1)=0

R16=6

             L*(x6)=L*(x1)+R16=0+6=6

L*(x2)=15

R26=33

L*(x6)≠L*(x2)+R26=15+33=48

L*(x4)=29

R46=28

L*(x6)≠L*(x4)+R46=29+28=57


 

Как видно, соотношению (4) удовлетворяет  только вершина х1 . Следовательно, в кратчайшем пути вершине х6 предшествует вершина x1.

Таким образом, минимальный  путь от вершины х1 до вершины х6 проходит по ребру (х1х6) и длина его равна 6 (весу ребра).

 

 

 

 

 

 

 

Рис. 6

 


Построение математической модели