Optymalizacja簔y transportowej (19 stron) 6EC3LLYRVZZ276XDISLFM5ETFYA7H4DYMPAEGLQ


Optymalizacja bazy transportowej

  1. Wyznaczanie najkr贸tszej drogi w sieci

Pierwszym zadaniem, kt贸re musi by膰 rozwi膮zane w bazie transportowej, jest przygotowanie bazy podstawowych parametr贸w. Nale偶y do nich wyznaczenie najkr贸tszych dr贸g przejazd贸w z uwzgl臋dnieniem specyfiki sieci po艂膮cze艅. Przyjmuj膮c, 偶e droga z miejscowo艣ci i do miejscowo艣ci j mo偶e by膰 inna ni偶 z miejscowo艣ci j do miejscowo艣ci i, potencjalne trasy przejazdu b臋dziemy przedstawia膰 za pomoc膮 strza艂ek. Gdy kierunek przejazdu nie b臋dzie odgrywa艂 roli, strza艂ki b臋d膮 zast膮pione kraw臋dziami.

W pierwszej kolejno艣ci rozpatrzymy przypadek, gdy kierunek przejazdu jest istotny. Struktur臋 grafu 1.1 i okre艣lone przy strza艂kach odleg艂o艣ci zapiszemy teraz w macierzy, w kt贸rej wiersze i kolumny odpowiadaj膮 w臋z艂om grafu. Przyjmiemy, 偶e w wierszach b臋d膮 reprezentowane w臋z艂y jako pocz膮tki a w kolumnach jako ko艅ce strza艂ek. W uj臋ciu tabelarycznym nasza macierz jest przedstawiona w tabeli 1.1.

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Rys. Graf skierowany z warto艣ciami oznaczaj膮cymi odleg艂o艣ci.

1

2

3

4

5

6

7

1

*

30

*

35

*

*

*

2

*

*

13

*

42

*

*

3

*

14

*

15

38

27

46

4

*

*

12

*

*

34

*

5

*

*

*

*

*

*

18

6

*

*

*

*

*

*

20

7

*

*

*

*

*

*

*

Tab. Macierz odleg艂o艣ci.

Nasze zadanie b臋dzie polega膰 na podaniu algorytmu wyznaczaj膮cego najkr贸tsze drogi mi臋dzy okre艣lon膮 miejscowo艣ci膮 a wszystkimi pozosta艂ymi. B臋dziemy oczywi艣cie zak艂ada膰, 偶e obowi膮zuje nas kierunek przemieszczania zgodny ze wskazaniami strza艂ek.

Najpierw jednak musimy pozna膰 pewne podstawowe poj臋cia i oznaczenia, kt贸rych znajomo艣膰 przyda nam si臋 dla lepszego zrozumienia prowadzonych w dalszej cz臋艣ci oblicze艅.

c(F)= 0x01 graphic
i

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

Rys. Zbi贸r poprzednik贸w P(j)={1,2,3} i nast臋pnik贸w S(j)={4,5}.

Rozpatrzymy og贸lny przypadek, gdy mi臋dzy obiektami i oraz j mog膮 wyst臋powa膰 dwie strza艂ki: od i do j oraz od j do i, przy czym ka偶da z nich mo偶e mie膰 przypisan膮 inn膮 liczb臋, a wi臋c dopuszcza si臋, 偶e cij =cji . Pozwala to rozpatrywa膰 zadania, w kt贸rych rol臋 miary odleg艂o艣ci mo偶e odgrywa膰 czas przejazdu, kt贸ry wcale nie musi by膰 taki sam dla przejazdu w jedn膮 i drug膮 stron臋.

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

Rys. Dwie drogi mi臋dzy w臋z艂ami i oraz j.

Nasze zadanie ujmiemy nast臋puj膮co: w sieci znany jest pewien wyr贸偶niony w臋ze艂, kt贸ry dalej b臋dziemy oznacza膰 symbolem a (np. a=1). Nale偶y wyznaczy膰 najkr贸tsze drogi z tego w臋z艂a do wszystkich innych w臋z艂贸w oraz obliczy膰 odleg艂o艣ci od w臋z艂a do ka偶dego z w臋z艂贸w.

Zastosujemy tu algorytm Dijkstry I.

Algorytm Dijkstry I

Za艂o偶enia startowe:

Znamy w臋ze艂 a.

Przyjmujemy: Q:={a} i da:=0, a dla pozosta艂ych w臋z艂贸w i0x01 graphic
a przyjmujemy: di:=0x01 graphic
.

ITERACJE

Krok I

W zbiorze Q wyznaczamy w臋ze艂 h, dla kt贸rego zachodzi: dh= min di0x01 graphic

Krok II

Ze zbioru Q usuwamy w臋ze艂 h, w wyniku czego Q:=Q\{h}.

Krok III

Wyznaczamy wszystkie w臋z艂y, kt贸re s膮 nast臋pnikami h, a wi臋c S(h).

Krok IV

Kolejno dla ka偶dego w臋z艂a j0x01 graphic
S(h) por贸wnujemy wcze艣niej przyporz膮dkowana odleg艂o艣膰 dj z suma odleg艂o艣ci dh powi臋kszonej o d艂ugo艣膰 przemieszczenia chj. Sprawdzamy wi臋c, czy spe艂niona jest nier贸wno艣膰:

dh+chj<dj

Je偶eli nier贸wno艣膰 jest prawdziwa, to:

W przeciwnym przypadku pozostawiamy dj bez zmiany.

Krok V

Je偶eli Q0x01 graphic
0, to przechodzimy do nast臋pnej iteracji, a wi臋c powracamy do kroku I.

Je偶eli Q = 0, post臋powanie ko艅czy si臋.

W samym post臋powaniu koncentrujemy si臋 na obliczeniach odleg艂o艣ci dj. W celu odczytania ci膮gu w臋z艂贸w le偶膮cych na najkr贸tszych drogach wystarczy odczytywa膰 ich numery w trakcie okre艣lania odleg艂o艣ci. Pomoc膮 b臋d膮 zapami臋tane wskazania bezpo艣rednich poprzednik贸w 0x01 graphic
(i).

Przyk艂ad

Rozpatrzmy przyk艂ad sieci przedstawiony na rysunku 1.1. przyjmijmy, 偶e w臋ze艂 1 odzwierciedla producenta. Nale偶y wyznaczy膰 najkr贸tsze drogi od producenta do wszystkich pozosta艂ych oraz odpowiadaj膮ce im odleg艂o艣ci.

Start

Przyjmujemy: a:=1, Q:={1}, d1:=0, d2:=0x01 graphic
,..., d7:=0x01 graphic
.

ITERACJA I

Poniewa偶 Q={1}, wyb贸r h jest zdeterminowany i mamy h=1.

Wykre艣lamy w臋ze艂 1 ze zbioru Q i otrzymujemy Q=0.

Dla h=1 mamy S(1)={2,4}.

Rozpatrujemy kolejno:

j=2, d2:=0x01 graphic
, d1+c12=30 0x01 graphic
d2:=30 i Q:={2}

j=4, d4:=0x01 graphic
, d1+c14=35 0x01 graphic
d4:=35 i Q:={2,4}

Wyniki przej艣ciowe zawiera tabela 1.2.

i

1

2

3

4

5

6

7

dj

0

30

0x01 graphic

35

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic
(i)

*

1

-

1

-

-

-

Tab. Zapis wynik贸w iteracji 1.

0x01 graphic

ITERACJA 2

W zbiorze Q={2,4} wyznaczamy w臋ze艂 h, dla kt贸rego dh= min di. Korzystaj膮c z wynik贸w pierwszej iteracji otrzymujemy h=2. Wykre艣lamy w臋ze艂 2 ze zbioru Q i otrzymujemy Q={4}. Dla h=2 mamy S(2)={3,5}.

Rozpatrujemy kolejno:

j=3, d3= 0x01 graphic
, d2+c23=30+13=43 0x01 graphic
d3:=43 i Q:={3,4}

j=5, d5= 0x01 graphic
, d2+c25=30+30=60 0x01 graphic
d5:=60 i Q:={3,4,5}.

Wyniki przej艣ciowe zawiera tabela 1.3.

i

1

2

3

4

5

6

7

dj

0

30

43

35

60

0x01 graphic

0x01 graphic

0x01 graphic
(i)

*

1

2

1

2

-

-

Tab. Zapis wynik贸w iteracji 2.

ITERACJA 3

W zbiorze Q={3,4,5} wyznaczamy w臋ze艂 h, dla kt贸rego dh= min di.

Korzystaj膮c z wynik贸w drugiej iteracji otrzymujemy h=4.

Wykre艣lamy w臋ze艂 4 ze zbioru Q i otrzymujemy Q={3,5}.

Dla h=4 mamy S(4)={3,6}.

Rozpatrujemy kolejno:

j=3, d3:=43, d4+c43=35+12=47 0x01 graphic
d3:=43

j=6, d6:=0x01 graphic
, d4+c46=35+34=69 0x01 graphic
d6:=69 i Q:={3,5,6}.

Wyniki przej艣ciowe zawiera tabela 1.4.

i

1

2

3

4

5

6

7

dj

0

30

43

35

60

69

0x01 graphic

0x01 graphic
(i)

*

1

2

1

2

4

-

Tab. Zapis wynik贸w iteracji 3.

ITERACJA 4

W zbiorze Q={3,5,6} wyznaczamy w臋ze艂 h, dla kt贸rego dh= min di.

Korzystaj膮c z wynik贸w trzeciej iteracji otrzymujemy h=3.

Wykre艣lamy w臋ze艂 3 ze zbioru Q i otrzymujemy Q={5,6}.

Dla h=3 mamy S(3)={2,4,5,6,7}.

Rozpatrujemy kolejno:

j=2, d2:=30, d3+c32=43+14=57 0x01 graphic
d2:=30

j=4, d4:=35, d3+c34=43+15=58 0x01 graphic
d4:=35

j=5, d5:=60, d3+c35=43+38=81 0x01 graphic
d5:=60

j=6, d6:=69, d3+c36=43+27=70 0x01 graphic
d6:=69

j=7, d7:=0x01 graphic
, d3+c37=43+46=89 0x01 graphic
d7:=89 i Q:={5,6,7}.

Wyniki przej艣ciowe przedstawia tabela 1.5.

i

1

2

3

4

5

6

7

dj

0

30

43

35

60

69

89

0x01 graphic
(i)

*

1

2

1

2

4

3

Tab. Zapis wynik贸w iteracji 4.

ITERACJA 5

W zbiorze Q={5,6,7} wyznaczamy w臋ze艂 h, dla kt贸rego dh= min di.

Korzystaj膮c z wynik贸w czwartej iteracji otrzymujemy h=5.

Wykre艣lamy w臋ze艂 5 ze zbioru Q i otrzymujemy Q={6,7}.

Dla h=5 mamy S(5)=7.

Dla w臋z艂a 7 otrzymujemy:

j=7, d7:=89, d5+c57=60+18=78 0x01 graphic
d7:=78.

Wyniki przej艣ciowe przedstawia tabela 1.6.

i

1

2

3

4

5

6

7

dj

0

30

43

35

60

69

78

0x01 graphic
(i)

*

1

2

1

2

4

5

Tab. Zapis wynik贸w iteracji 5.

ITERACJA 6

W zbiorze Q={6,7} wyznaczamy w臋ze艂 h, dla kt贸rego dh= min di.

Korzystaj膮c z wynik贸w czwartej iteracji otrzymujemy h=6.

Wykre艣lamy w臋ze艂 6 ze zbioru Q i otrzymujemy Q={7}.

Dla h=6 mamy S(6)={7}.

Dla w臋z艂a 7 otrzymujemy:

j=7, d7:=78, d6+c67=69+20=89 0x01 graphic
d7:=78.

Wyniki przej艣ciowe przedstawia tabela 1.7.

i

1

2

3

4

5

6

7

dj

0

30

43

35

60

69

78

0x01 graphic
(i)

*

1

2

1

2

4

5

Tab. Zapis wynik贸w iteracji 6.

ITERACJA 7

Poniewa偶 Q={7} otrzymujemy natychmiast h=7 i po wykre艣leniu tego w臋z艂a, Q=0.

Dla h=7 mamy S(7)=0.

Post臋powanie ko艅czy si臋, a wyniki odczytujemy z ostatniej tabeli.

Odczytajmy drog臋 od w臋z艂a 1 do w臋z艂a 7. Jej d艂ugo艣膰 wynosi 78. Bezpo艣rednim poprzednikiem w臋z艂a 7 jest w臋ze艂 5, dla w臋z艂a 5 bezpo艣rednim poprzednikiem jest w臋ze艂 2, dla w臋z艂a 2 bezpo艣rednim poprzednikiem jest w臋ze艂 1.Wobec tego drog臋 wyznacza ci膮g w臋z艂贸w [1,2,5,7].

Analogicznie odczytujemy wyniki dla pozosta艂ych w臋z艂贸w:

Algorytm Dijkstry II

W przypadku, gdy w grafie nie wyr贸偶niamy kierunk贸w przemieszczania, a wi臋c gdy rol臋 strza艂ek przejmuj膮 kraw臋dzie, algorytm ulega pewnej modyfikacji, kt贸ra poci膮ga za sob膮 zmiany w zapisie post臋powania. Poniewa偶 w rozpatrywanych zadaniach nie pojawiaj膮 si臋 p臋tle typu [i,j,i], nie b臋dziemy rozpatrywa膰 przemieszcze艅 z i do j i z powrotem. Upraszcza to zapis post臋powania, gdy偶 nie musimy zapami臋tywa膰 bezpo艣rednich poprzednik贸w.

Algorytm

Za艂o偶enia startowe:

Zadany jest graf nie skierowany, warto艣ciowany z wyr贸偶nionym w臋z艂em startowym w, np. w=1.

Ka偶demu w臋z艂owi i b臋dziemy przyporz膮dkowywa膰 cech臋 tymczasow膮 dit oraz cech臋 sta艂膮 dis.

Cecha tymczasowa odpowiada wyznaczonej na bie偶膮co odleg艂o艣ci od w臋z艂a startowego, cecha sta艂a okre艣la ostateczn膮 odleg艂o艣膰, wobec czego po jej wyznaczeniu nie ulega ona zmianie w trakcie dalszego post臋powania. Dla w臋z艂贸w maj膮cych cech臋 sta艂膮, nie rozpatrujemy cechy tymczasowej.

Start

Rozpoczynamy od pewnego okre艣lonego w臋z艂a, np. w=1. Przypisujemy mu cech臋 sta艂膮 d1s=0. Pozosta艂e w臋z艂y nie maja cechy sta艂ej. Jako warto艣ci cech tymczasowych przyjmujemy dit:=0x01 graphic
, i0x01 graphic
1.

Iteracje

Krok I

Rozpatrujemy wszystkie w臋z艂y po艂膮czone bezpo艣rednio z w臋z艂em w, kt贸remu nadali艣my cech臋 sta艂膮. Wykorzystamy tutaj symbol zbioru nast臋pnik贸w i powiemy, 偶e wyznaczamy zbi贸r S(w).

Krok II

Sprawdzamy, czy w zbiorze S(w) wszystkie w臋z艂y maj膮 cech臋 sta艂膮.

Krok III

Rozpatrujemy kolejno wszystkie w臋z艂y zbioru S(w), kt贸re nie maja cechy sta艂ej. Dla ka偶dego z nich obliczamy sum臋 cechy sta艂ej w臋z艂a w i odleg艂o艣ci danego w臋z艂a od w臋z艂a w i sprawdzamy, czy jest spe艂niona nier贸wno艣膰:

dws+cwi<dit.

Je偶eli nier贸wno艣膰 jest prawdziwa, star膮 cech臋 tymczasow膮 zast臋pujemy now膮: dit:=dws+cwi.

W przeciwnym wypadku pozostawiamy dit bez zmiany.

Krok IV

Sprawdzamy, czy istniej膮 w臋z艂y, kt贸re maja cech臋 tymczasow膮.

Je偶eli taki w臋ze艂 nie istnieje - post臋powanie ko艅czy si臋.
W przeciwnym przypadku, spo艣r贸d w臋z艂贸w maj膮cych cech臋 tymczasow膮 wyznaczamy w臋ze艂 o najni偶szej jej warto艣ci. Przyporz膮dkowana cech臋 tymczasow膮 tego w臋z艂a uznajemy za jego cech臋 sta艂膮, a jednocze艣nie w臋ze艂 ten przejmuje rol臋 w臋z艂a w.

Przyk艂ad

Zmodyfikowane post臋powanie przedstawimy na przyk艂adzie, w kt贸rym graf przedstawiony na rysunku 1.4 odzwierciedla rzeczywiste po艂膮czenia mi臋dzy miejscowo艣ciami wok贸艂 Wroc艂awia. Korzystaj膮c z algorytmu Dijkstry II, wyznaczymy najkr贸tsze drogi z Wroc艂awia do ka偶dej z wymienionych miejscowo艣ci.

Odleg艂o艣ci zaznaczone na grafie 1.4 przedstawia tabela 1.8.

W tabeli wymieniamy jedynie odleg艂o艣ci odzwierciedlaj膮ce bezpo艣rednie po艂膮czenia mi臋dzy miastami. Dla po艂膮cze艅 oznaczonych gwiazdkami najkr贸tsze drogi wymagaj膮 przejazdu przez inn膮 miejscowo艣膰.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Rys. Graf po艂膮cze艅.

Miejscowo艣膰

1

2

3

4

5

6

7

8

9

10

11

Wroc艂aw

1

0x01 graphic

34

31

62

56

*

27

*

58

*

*

Brzeg Dolny

2

34

0x01 graphic

58

43

62

*

*

*

*

*

*

Ole艣nica

3

31

58

0x01 graphic

64

51

68

44

*

*

*

*

Rawicz

4

62

43

64

0x01 graphic

41

*

*

*

*

*

*

Milicz

5

56

62

51

41

0x01 graphic

71

*

*

*

*

*

Ostr贸w Wlkp.

6

*

*

68

*

71

0x01 graphic

*

*

*

*

*

O艂awa

7

27

*

44

*

*

*

0x01 graphic

15

60

*

*

Brzeg

8

*

*

*

*

*

*

15

0x01 graphic

73

96

40

Dzier偶oni贸w

9

58

*

*

*

*

*

60

73

0x01 graphic

41

109

K艂odzko

10

*

*

*

*

*

*

*

96

41

0x01 graphic

109

Opole

11

*

*

*

*

*

*

*

40

109

109

0x01 graphic

Tab. Tabela odleg艂o艣ci mi臋dzy miastami wok贸艂 Wroc艂awia.

ITERACJA 1

Mamy w=1 i d1s=0, dit=0x01 graphic
, i0x01 graphic
1.

Identyfikujemy S(1)={2,3,4,5,7,9}. 呕aden z nich nie ma cechy sta艂ej. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮.

d2t:= 0x01 graphic
, d1s+c12=0+34=34, 0x01 graphic
d2t:=34,

d3t:= 0x01 graphic
, d1s+c13=0+31=31, 0x01 graphic
d3t:=31,

d4t:= 0x01 graphic
, d1s+c14=0+62=62, 0x01 graphic
d4t:=62,

d5t:= 0x01 graphic
, d1s+c15=0+56=56, 0x01 graphic
d5t:=56,

d7t:= 0x01 graphic
, d1s+c17=0+27=27, 0x01 graphic
d7t:=27,

d9t:= 0x01 graphic
, d1s+c19=0+58=58 0x01 graphic
d9t:=58.

Wyniki pierwszej iteracji zapisane s膮 w tabeli 1.9.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

1

ds

dt

0

-

-

34

-

31

-

62

-

56

-

-

-

27

-

-

-

58

-

-

-

-

27

Tab. Cechy sta艂e i tymczasowe po pierwszej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 7. Przyporz膮dkowana mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d7s=27. W臋ze艂 7 przejmuje rol臋 w臋z艂a w.

ITERACJA 2

Mamy w=7 i d7s=27.

Identyfikujemy S(7)={1,3,8,9}. Cechy sta艂ej nie maj膮 w臋z艂y 3,8,9. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d3t:=31, d7s+c73=27+44=71 0x01 graphic
d3t:=31,

d8t:=0x01 graphic
, d7s+c78=27+15=42 0x01 graphic
d8t:=42,

d9t:=58, d7s+c79=27+60=87 0x01 graphic
d9t:=58.

Wyniki drugiej iteracji zapisane s膮 w tabeli 1.10.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

2

ds

dt

0

-

-

34

-

31

-

62

-

56

-

-

27

-

-

42

-

58

-

-

-

-

31

Tab. Cechy sta艂e i tymczasowe po drugiej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 3. Przyporz膮dkowana mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d3s=31. W臋ze艂 3 przejmuje rol臋 w臋z艂a w.

ITERACJA 3

Mamy w=3 i d3s=31.

Identyfikujemy S(3)={1,2,4,6,7}. Cechy sta艂ej nie maja w臋z艂y 2,4,6. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d2t:=34, d3s+c32=31+58=89 0x01 graphic
d2t:=34,

d4t:=62, d3s+c34=31+64=95 0x01 graphic
d4t:=62,

d6t:=0x01 graphic
, d3s+c36=31+68=99 0x01 graphic
d6t:=99.

Wyniki trzeciej iteracji przedstawione s膮 w tabeli 1.11.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

3

ds

dt

0

-

-

34

31

-

-

62

-

56

-

99

27

-

-

42

-

58

-

-

-

-

34

Tab. Cechy sta艂e i tymczasowe po trzeciej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 2. Przyporz膮dkowana mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d2s=24. W臋ze艂 2 przejmuje rol臋 w臋z艂a w.

ITERACJA 4

Mamy w=2 i d2s=34.

Identyfikujemy S(2)={1,3,4,5}. Cechy sta艂ej nie maj膮 w臋z艂y 4,5. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowana.

d4t:=62, d2s+c24=34+43=77 0x01 graphic
d4t:=62,

d5t:=56, d2s+c25=34+62=96 0x01 graphic
d5t:=56.

Wyniki czwartej iteracji przedstawia tabela 1.12.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

4

ds

dt

0

-

34

-

31

-

-

62

-

56

-

99

27

-

-

42

-

58

-

-

-

-

42

Tab. Cechy sta艂e i tymczasowe po czwartej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 8. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d8s=42. W臋ze艂 8 przejmuje rol臋 w臋z艂a w.

ITERACJA 5

Mamy w=8 i d8s=42.

Identyfikujemy S(8)={7,9,10,11}. Cechy sta艂ej nie maj膮 w臋z艂y 9,10,11. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d9t:=58, d8s+c89=42+73=115 0x01 graphic
d9t:=58,

d10,t:=0x01 graphic
, d8s+c8,10=42+96=138 0x01 graphic
d10t:=138,

d11,t:=0x01 graphic
, d8s+c8,11=42+40=82 0x01 graphic
d11,t:=82.

Wyniki pi膮tej iteracji przedstawia tabela 1.13.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

5

ds

dt

0

-

34

-

31

-

-

62

-

56

-

99

27

-

42

-

-

58

-

138

-

82

56

Tab. Cechy sta艂e i tymczasowe po pi膮tej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 5. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d5s=56. W臋ze艂 5 przejmuje rol臋 w臋z艂a w.

ITERACJA 6

Mamy w=5 i d5s=56.

Identyfikujemy S(5)={1,2,4,6}. Cechy sta艂ej nie maj膮 w臋z艂y 4,6. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d4t:=62, d5s+c54=56+41=97 0x01 graphic
d4t:=62,

d6t:=99, d5s+c56=56+71=127 0x01 graphic
d4t:=99.

Wyniki sz贸stej iteracji przedstawia tabela 1.14.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

6

ds

dt

0

-

34

-

31

-

-

62

56

-

-

99

27

-

42

-

-

58

-

138

-

82

58

Tab. Cechy sta艂e i tymczasowe po sz贸stej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 9. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d9s=58. W臋ze艂 9 przejmuje rol臋 w臋z艂a w.

ITERACJA 7

Mamy w=9 i d9s=58.

Identyfikujemy S(9)={1,7,8,10,11}. Cechy sta艂ej nie maj膮 w臋z艂y 10,11. Dla ka偶dego z nich okre艣lamy cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d10,t:=138, d9s+c9,10=58+41=99 0x01 graphic
d10,t:=99,

d11,t:=82, d9s+c9,11=58+109=167 0x01 graphic
d4t:=82.

Wyniki si贸dmej iteracji przedstawia tabela 1.15.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

7

ds

dt

0

-

34

-

31

-

-

62

56

-

-

99

27

-

42

-

58

-

-

99

-

82

62

Tab. Cechy sta艂e i tymczasowe po si贸dmej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 4. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d4s=62. W臋ze艂 4 przejmuje rol臋 w臋z艂a w.

ITERACJA 8

Mamy w=4 i d4s=62.

Identyfikujemy S(4)={1,2,3,5}. Wszystkie w臋z艂y maj膮 cech臋 sta艂膮. Przechodzimy wi臋c do analizy tabeli po zmianie cechy dla w臋z艂a 4.

Wyniki przedstawia tabela 1.16.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

8

ds

dt

0

-

34

-

31

-

62

-

56

-

-

99

27

-

42

-

58

-

-

99

-

82

82

Tab. Cechy sta艂e i tymczasowe po 贸smej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Jest nim 11. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d11,s=82. W臋ze艂 11 przejmuje rol臋 w臋z艂a w.

ITERACJA 9

Mamy w=11 i d11,s=82.

Identyfikujemy S(11)={8,9,10}. Cechy sta艂ej nie ma w臋ze艂 10. Okre艣lamy dla niego cech臋 tymczasow膮 po sprawdzeniu z wcze艣niej przyporz膮dkowan膮.

d10,t:=99, d11,s+c11,10=82+109=191 0x01 graphic
d10,t:=99.

Wyniki dziewi膮tej iteracji przedstawia tabela 1.17.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

9

ds

dt

0

-

34

-

31

-

62

-

56

-

-

99

27

-

42

-

58

-

-

99

82

-

99

Tab. Cechy sta艂e i tymczasowe po dziewi膮tej iteracji.

Wskazujemy w臋ze艂 maj膮cy najmniejsz膮 cech臋 tymczasow膮. Z dw贸ch maj膮cych identyczne warto艣ci wybieramy 6. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d6s=99. W臋ze艂 6 przejmuje rol臋 w臋z艂a w.

ITERACJA 10

Mamy w=6 i d6s=99.

Identyfikujemy S(6)={3,5}. Wszystkie w臋z艂y maj膮 cech臋 sta艂膮. Przechodzimy wi臋c do analizy tabeli po zmianie cechy dla w臋z艂a 6.

Wyniki przedstawia tabela 1.18.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

10

ds

dt

0

-

34

-

31

-

62

-

56

-

99

-

27

-

42

-

58

-

-

99

82

-

99

Tab. Cechy sta艂e i tymczasowe po dziesi膮tej iteracji.

Wyb贸r w臋z艂a, kt贸ry przejmuje rol臋 w jest jednoznaczny. Jest nim 10. Przyporz膮dkowan膮 mu cech臋 tymczasow膮 zamieniamy na cech臋 sta艂膮 d10,s=99.

Otrzymujemy tabel臋 1.19.

Iteracja

1

2

3

4

5

6

7

8

9

10

11

min

ds

dt

0

-

34

-

31

-

62

-

56

-

99

-

27

-

42

-

58

-

99

-

82

-

Tab. Cechy sta艂e i tymczasowe po zako艅czeniu post臋powania.

Poniewa偶 wyczerpali艣my tym samym zbi贸r w臋z艂贸w nie maj膮cych cechy sta艂ej, post臋powanie ko艅czy si臋. Cechy sta艂e ostatniej tabeli okre艣laj膮 poszukiwane odleg艂o艣ci.

Zestawienie, kt贸re pozwala szybko odczytywa膰 ka偶da drog臋 zaczynaj膮c膮 si臋 w w臋藕le 1, przedstawia tabela 1.20., w kt贸rej podajemy numer w臋z艂a ko艅cowego, d艂ugo艣膰 drogi do niego i w臋ze艂 bezpo艣rednio go poprzedzaj膮cy.

Odczytujemy teraz przyk艂adowo: dla w臋z艂a 11 poprzednikiem jest 8, dla 8 poprzednikiem jest 7, a dla 7 poprzednikiem jest 1. Mamy wi臋c drog臋 1-7-8-11 o d艂ugo艣ci 82.

W臋ze艂 ko艅cowy

1

2

3

4

5

6

7

8

9

10

11

D艂ugo艣膰 drogi

0

34

31

62

56

99

27

42

58

99

82

W臋ze艂 poprzedzaj膮cy

-

1

1

1

1

3

1

7

1

9

8

Tab. Zestawienie odleg艂o艣ci i dr贸g z Wroc艂awia do pozosta艂ych miast.

  1. Planowanie tras dostaw dla wielu pojazd贸w

2.1 Zasady tworzenia tras

Rozpatrzymy zadanie dostaw produkt贸w do klient贸w. Przyjmujemy, 偶e s膮 spe艂nione nast臋puj膮ce za艂o偶enia:

Nasze zadnie sformu艂ujemy nast臋puj膮co: nale偶y wyznaczy膰 ilo艣膰 艣rodk贸w transportowych od trasy ich przejazd贸w pozwalaj膮ce obs艂u偶y膰 wszystkie zam贸wienia klient贸w przy zachowaniu warunk贸w przewozu tak, aby 艂膮czny czas obs艂ugi wszystkich klient贸w by艂 minimalny. Sformu艂owanie zadania sk艂ada si臋 z dw贸ch zada艅 cz臋艣ciowych:

Jako H oznaczamy dowoln膮 tras臋 rozpoczynaj膮c膮 si臋 w punkcie Lo, czyli od magazynu producenta, przebiegaj膮c膮 przez punkty i1, i2….ir i ko艅cz膮ca si臋 ponownie w punkcie Lo. Niech ty ozncza czas przejazdu z punktu i do punktu j. na mocy przyj臋tego za艂o偶enia o dopuszczalnym czasie trwania przejazdu musimy mie膰 spe艂nion膮 nier贸wno艣膰:

t +t T

reprezentujemy tras臋 H=[0,i1,i2,....ir,o]

Tras臋 H nazwiemy dopuszczalna gdy

B(H) Q i t(H) T

Na pocz膮tku za艂贸偶my, 偶e ka偶dy klient jest obs艂u偶ony indywidualnie. Oznacza to, 偶e dla obs艂ugi wszystkich n klient贸w potrzebujemy n pojazd贸w i ka偶dy z nich ma prosta tras臋 z punktu Lo do swojego klienta i z powrotem. 艁膮czny czas trwania dosta wynosi wtedy:

Z= (t + t )

Teraz rozpatrzmy dw贸ch odbiorc贸w i i produkt贸w, kt贸rych m贸g艂by obs艂u偶y膰 jeden pojazd w ramach ca艂ej trasy, wtedy 艂膮czny czas trwania dostaw przy indywidualnej ich obs艂udze wynosi:

To=(toi+tio)+(toj+tjo)

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

Rys. indywidualna obs艂uga dw贸ch odbiorc贸w

Gdyby jednak w miejsce dw贸ch odr臋bnych tras zaproponowaliby艣my jedna wsp贸ln膮 od 0 do i potem do j i z powrotem do 0. Wtedy czas obs艂ugi wyni贸s艂by:

t1=toi+tij+tjo

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

Rys. Po艂膮czenie obs艂ugi dw贸ch odbiorc贸w

Obliczaj膮c r贸偶nice otrzymujemy:

sij=to-ti=tio+toj-tij

Je艣li sij>0, to sumaryczny czas indywidualnej obs艂ugi trwa d艂u偶ej ni偶 czas obs艂ugi w ramach po艂膮czonej trasy. Warto艣膰 ta okre艣la wielko艣膰 zaoszcz臋dzonego czasu sij<0 oznacza ujemna oszcz臋dno艣膰, tzn. 偶e indywidualny tras nie powinno si臋 艂膮czy膰 we wsp贸ln膮 tras臋.

Rozwa偶amy przypadek dw贸ch tras:

H=[0,h,…i,0]

H=[0,j,….k,0]

W ka偶dej z tych tras wyr贸偶nili艣my dw贸ch klient贸w, kt贸rzy s膮 obs艂ugiwani jako pierwsi (h,j) i jako ostatni (i,k). B臋dziemy ich nazywa膰 odbiorcami kra艅cowymi w swoich trasach. Pozostali to odbiorcy po艣redni. Dokonujemy po艂膮czenia tych dw贸ch tras w jedn膮. Po odwiedzeniu klienta z pierwszej trasy powinien nast膮pi膰 powr贸t do punktu startu. Zamiast tego nast臋puje wizyta u pierwszego klienta drugiej trasy i dalej kontynuacja odwiedzin zgodnie z wytyczona druga tras膮. Wyr贸偶nienie kt贸ra z tras jest pierwsza a kt贸ra druga odgrywa jedynie rol臋 ilustracyjn膮 podobnie jak wyr贸偶nienie strza艂ek na rysunku.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

Rys. Po艂膮czenie dw贸ch tras

Nowa trasa H = [0,h,…i,j….k,0] wymaga realizacji dostaw o 艂膮cznej 艂adowno艣ci:

b(h )=b(H1)+b(H2),

a czas jej przejazdu wynosi:

t(H)=t(H1)+t(H2)-toi-toj+tij=t(H1)+t(H2)-sij

Gdy nast膮pi skr贸cenie 艂膮cznego czasu przejazdu i b臋d膮 zachowane warunki dopuszczalno艣ci przejazdu, czyli b(H )< Q oraz t(H ) < T to tras臋 H uznamy za oszcz臋dn膮. Wraz z oszcz臋dno艣ci膮 czasu przejazdu uzyskujemy zmniejszenie liczby 艣rodk贸w transportu, gdy偶 w miejsce dw贸ch wysy艂amy na tras臋 tylko jeden pojazd. Liczba tras b臋dzie r贸wnoznaczna z liczb膮 pojazd贸w potrzebnych do obs艂ugi klient贸w.

S膮 przypadki w kt贸rych nie ma sensu rozpatrywanie 艂膮czenia tras. S膮 to:

2.2 Oszcz臋dno艣ciowe 艂膮czenie tras

Za艂o偶enia startowe:

Przyk艂ad:

Producent ma sw贸j magazyn we Wroc艂awiu. Odbiorcy maja swe lokalizacje w r贸偶nych miejscach rejonu dystrybucji. Rysunek przedstawia map臋 po艂膮cze艅 komunikacyjnych mi臋dzy miejscowo艣ciami rejonu dystrybucji. W tabeli mamy przedstawione czasy przejazdu mi臋dzy miejscowo艣ciami w minutach oraz wielko艣膰 dostawy do danej miejscowo艣ci z magazynu producenta. Jednostk膮 dostawy jest paleta. Podstawow膮 jednostk膮 transportow膮 jest samoch贸d mog膮cy przewie藕膰 Q=32 palety produkt贸w, a czas przebywania kierowcy w trasie nie mo偶e przekroczy膰 T=16 godzin, czyli 960 minut.

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Rys. Mapa po艂膮cze艅 komunikacyjnych dystrybutora z Wroc艂awia

0

1

2

3

4

5

6

7

8

9

Wroc艂aw

0

0

83

78

198

156

212

309

361

216

131

0

Wa艂brzych

1

83

0

81

273

228

282

380

439

291

63

8

Legnica

2

78

81

0

277

211

292

396

450

307

66

7

Pozna艅

3

198

273

227

0

156

345

466

427

90

288

14

Kalisz

4

156

228

211

156

0

200

338

271

268

274

6

Cz臋stochowa

5

212

282

292

345

200

0

139

157

81

336

5

Krak贸w

6

309

380

396

466

338

139

0

158

93

451

15

Kielce

7

361

439

450

427

271

157

158

0

207

512

12

Katowice

8

216

291

307

390

268

81

93

207

0

346

11

Jelenia G贸ra

9

131

63

66

288

274

336

451

512

346

0

9

Tab. Czasy przejazd贸w mi臋dzy miejscowo艣ciami rejonu dystrybucji

W tym przyk艂adzie zak艂adamy, 偶e mamy okre艣lone czasy przejazdu mi臋dzy ka偶dymi dwoma miejscowo艣ciami, nawet gdy nie ma mi臋dzy nimi bezpo艣redniego po艂膮czenia. Z mapy po艂膮cze艅 mo偶na odczyta膰, 偶e z Wroc艂awia do Krakowa mo偶na dojecha膰 przez Katowice, albo przez Cz臋stochow臋. Pierwsza trasa ma czas przejazdu 216+93=309 min , natomiast druga 212+139=351 min. W tabeli czas贸w przejazdu uwzgl臋dniana jest kr贸tsza, pierwsza trasa.

Wyznaczamy teraz macierz S, kt贸rej elementy sij=tio+tjo-tij, dla i, j=1,…n,i>j oraz sij=0 dla i=j. bierzemy najwi臋ksz膮 warto艣膰 sij i odczytujemy wskazania numer贸w odbiorc贸w. Je偶eli zbi贸r tych warto艣ci jest pusty - post臋powanie si臋 ko艅czy.

0

1

2

3

4

5

6

7

8

9

0

0

0

0

0

0

0

0

0

0

0

1

0

0

80

8

11

13

12

5

8

151

2

0

80

0

-1

23

-2

-9

-11

-13

143

3

0

8

-1

0

198

65

41

132

24

41

4

0

11

23

198

0

168

127

246

104

13

5

0

13

-2

65

168

0

382

416

347

7

6

0

12

-9

41

127

382

0

512

432

-11

7

0

5

-11

132

246

416

512

0

370

-20

8

0

8

-13

24

104

347

432

370

0

1

9

0

151

143

41

13

7

-11

-20

1

0

Tab. Planowanie tras dostaw dla wielu pojazd贸w

Macierz S dla przewoz贸w w rejonie dystrybucji

Tworzymy teraz ci膮g malej膮cych warto艣ci z dodatnich element贸w macierzy S. Jest on nast臋puj膮cy:

S67> S68> S57> S56> S78> S58> S47> S34> S45> S19>

  1. 432> 416> 382> 370> 347> 246> 198> 168> 151>

S29> S37> S46> S48> S12> S35> S39= S36> S38> S24>

143> 132> 127> 104> 80> 65> 41= 41> 24> 23>

S49= S15> S16> S14> S18= S13> S59> S17> S89

13= 13> 12> 11> 8= 8> 7> 5> 1

Rozwi膮zaniem startowym jest indywidualna obs艂uga ka偶dego z klient贸w, co oznacza, 偶e powinni艣my dysponowa膰 9 samochodami. W kolejnych interakcjach b臋dziemy sprawdza膰, czy mo偶na trasy i tym samym zmniejsza膰 liczb臋 samochod贸w.

INTERAKCJA 1

S67=512. Zar贸wno 6 jak i 7 s膮 obs艂ugiwani indywidualnie, a wi臋c tworzymy grup臋 {i,j} i sprawdzamy, czy trasa H=[0,6,7,0] spe艂nia warunki dopuszczalno艣ci przewozu. Gdy warunki s膮 spe艂nione - tworzymy tras臋 [0,6,7,0]. W przeciwnym wypadku skre艣lamy s z listy i przechodzimy do nast臋pnego wska藕nika oszcz臋dno艣ci.

Mamy zatem:

T=309+158+361=828<960 - dopuszczalny czas przewozu

b=15+12=27<32 - 艂adowno艣膰

trasa spe艂nia warunki dopuszczalno艣ci. Przyjmujemy zatem:

H=[0,6,7,0]

INTERAKCJA 2

S62=432. 6 nale偶y do trasy H i jest odbiorc膮 kra艅cowym, a konkretnie - pierwszym. Natomiast 8 jest obs艂ugiwany indywidualnie. Odbiorca i jest wi臋c odbiorc膮 kra艅cowym, sprawdzamy zatem, czy do艂膮czenie odbiorcy j do trasy nie naruszy warunk贸w dopuszczalno艣ci przewozu. Je艣li warunki przewozu s膮 spe艂nione to odbiorc臋 j do艂膮czamy do trasy zawieraj膮cej i przy czym j b臋dzie obs艂ugiwany:

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Rys. Do艂膮czenie j do trasy przed i

Trasa wygl膮da nast臋puj膮co [0,j,i….0]

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

Rys. Do艂膮czenie j do trasy po i

Trasa wygl膮da nast臋puj膮co [0,….,i,j,0]

Mo偶emy w tej interacji rozpatrywa膰 tras臋 H=[0,8,6,7,0]. Dopuszczalny czas przejazdu wynosi:

T=216+93+158+361=828<960

B=11+15+12=38>32

Jeden warunek przewozu dotycz膮cy dopuszczalno艣ci nie zosta艂 spe艂niony i dlatego nie mo偶emy odbiorcy 8 do艂膮czy膰 do trasy.

INTERACJA 3

S67=416. 7 nale偶y do trasy H1 i jest odbiorca kra艅cowym, a konkretnie ostatnim. Natomiast 5 jest obs艂ugiwany indywidualnie. Mo偶emy rozpatrywa膰 tras臋 H=[0,6,7,5,0].

Mamy:

T=309+158+157+212=830<960

b=15+!2+5=32=32

5 do艂膮czamy do trasy H11 i obs艂ugujemy po i, czyli7, gdy偶 i wyst臋powa艂 jako ostatni z obs艂ugiwanych. Otrzymujemy tras臋:

H1=[0,6,7,5,0]

Zauwa偶amy, 偶e pojemno艣膰 samochodu trasy H1 jest w pe艂ni wykorzystana, zatem w nast臋pnych interacjach mo偶emy z g贸ry odrzuca膰 mo偶liwo艣ci po艂膮czenia tej trasy z innymi.

INTERACJA 9

S45=168. 4 nale偶y do trasy H2, natomiast 5 do trasy H1. po艂膮czenie tras ma sens, gdy zar贸wno i jak i j s膮 odbiorcami kra艅cowymi swych tras oraz gdy po po艂膮czeniu tras s膮 spe艂nione warunki przewozu. Zatem po艂膮czenie tych tras jest niemo偶liwe.

INTERACJA 11

S29=143. 2 jest obs艂ugiwana indywidualnie, natomiast 9 nale偶y do trasy H3, gdzie jest odbiorc膮 kra艅cowym - konkretnie ostatnim. Mo偶emy wie膰 rozpatrywa膰 tras臋:

H=[0,1,9,2,0]

Mamy:

T=83+63+66+78=290<960

b=8+9+7=24<32

Modyfikujemy tras臋 H3, gdy偶 warunki przewozu zosta艂y spe艂nione:

H3=[0,1,9,2,0]

INTERACJA 14

S48=104. 4 nale偶y do trasy h2 jako ostatni odbiorca, natomiast 8 jest odbiorca indywidualnym. Tworzymy tras臋:

H=[0,3,4,8,0]

Mamy:

T=198+156+268+216=838<960

b=14+6+11=31<32

Modyfikujemy wi臋c tras臋 H2=[0,3,4,8,0]

Po wyczerpaniu listy mo偶liwych stwierdzimy, 偶e zasadnicze s膮 trasy:

H1=[0,6,7,5,0], dla kt贸rej T=830 min. i b =32 palety

H2=[0,3,4,8,0], dla kt贸rej T=838 min. i b = 31 palety

H2=[0,1,9,2,0], dla kt贸rej T=290 min. i b = 24 palety

Wyznaczone trasy s膮 przedstawione na rysunku.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic
0x08 graphic

0x08 graphic

Rys. Trasy przewozu w rejonie dystrybucji

Wprowadzaj膮c nazwy miejscowo艣ci mamy:

H1: Wroc艂aw-Krak贸w-Kielce-Cz臋stochowa-Wroc艂aw

H2: Wroc艂aw-Pozna艅-Kalisz-Katowice-Wroc艂aw

H3: Wroc艂aw-Wa艂brzych-Jelenia G贸ra-Legnica-Wroc艂aw

3. Rozdzia艂 zada艅 przewozowych

3.1 Zadania przyporz膮dkowania

Okre艣lenie tras przewozu i ilo艣ci pojazd贸w nie gwarantuje, 偶e s膮 to trasy o podobnej skali przewoz贸w. Tak偶e 艂adunki r贸偶ni膮 si臋 sk艂adem produkt贸w, r贸wnie偶 pojazdy nie zawsze s膮 dostosowane do przewozu danego typu 艂adunku. Powstaje wtedy problem odpowiedniego przyporz膮dkowania pojazd贸w do tras przewoz贸w. Jest to zadanie og贸lniejsze, znane w literaturze, jako zadanie przyporz膮dkowania.

U艣ci艣lijmy najpierw za艂o偶enia problemu:

  1. mamy n jednostek wykonawczych Ri , i = ,....,n (os贸b, maszyn, samochod贸w) oraz n zada艅 Zj , j = ,....,n do wykonania

  2. przyjmijmy, 偶e ka偶da jednostka Ri mo偶e w艂a艣ciwie wykona膰 dowolne zadanie Zj, ale efektywno艣膰 wykonania ka偶dego z nich jest r贸偶na

  3. efektywno艣膰 wykonania zadania Zj przez Ri mo偶e by膰 wyra偶ona albo przez miar臋 korzy艣ci - oznaczamy j膮 dij albo przez miar臋 nak艂adu - oznaczamy j膮 kij

Cel zadania sformu艂ujemy nast臋puj膮co: nale偶y jednostkom Ri tak przyporz膮dkowa膰 zadania Zj, aby efekt sumaryczny by艂 jak najkorzystniejszy.

Nale偶y wprowadzi膰 zmienne x, i = ,....,n; j = 1,....,n, kt贸re b臋d膮 odzwierciedla膰 czy jednostce wykonawczej Ri zosta艂o przyporz膮dkowane zadanie Zj czy te偶 nie.

0x08 graphic

1, gdy Ri otrzymuje zadanie Zj

xij =

0, w przeciwnym przypadku

Gdy efektywno艣膰 jest wyra偶ana poprzez miary korzy艣ci, najkorzystniej efekt wyra偶a funkcja kryterium:

0x08 graphic
ZL = dij * xij max

Gdy efektywno艣膰 jest wyra偶ona przez miary nak艂ad贸w, najkorzystniejszy efekt wyra偶a funkcja kryterium:

0x08 graphic
Zk = kij * xij min

Algorytmy rozwi膮zywania zada艅 tej klasy s膮 na og贸艂 formu艂owane przy za艂o偶eniu poszukiwania minimum. Zadanie, w kt贸rym poszukiwane jest maksimum efektywno艣ci mo偶na zast膮pi膰 zadaniem poszukiwania minimum w nast臋puj膮cy spos贸b:

0x08 graphic
ZL max

Mo偶emy teraz wprowadzi膰 standardowe oznaczenia wsp贸艂czynnik贸w funkcji kryterium, mianowicie cij. Zadanie przyporz膮dkowania mo偶emy zatem sformu艂owa膰 nast臋puj膮co:

(Jest to tzw. Zadanie prymalne)

Wprowadzone zmienne xij s膮 zmiennymi binarnymi, czyli xij = 1 lub xij = 0. Praktycznie zapis zadania sprowadza si臋 do macierzowego uj臋cia zmiennych xij oraz wsp贸艂czynnik贸w cij

0x08 graphic
c11 c1j c1n

C = cil cij cin

cn1 cnj cnn

Wskazane przyporz膮dkowanie jest, w tej konwencji r贸wnoznaczne ze wskazaniem elementu macierzy C. Je偶eli zostanie wskazany np. element c23 to odczytujemy, 偶e jednostka wykonawcza R2 otrzyma艂a zadanie Z3.

Gdy zadanie (minimalizacja) nie jest symetryczne tzn. gdy liczba wykonawc贸w nie jest r贸wna liczbie zada艅, sprowadzamy go do symetrycznego wprowadzaj膮c pomocnicze kolumny lub wiersze z elementami b臋d膮cymi liczbami „du偶ymi” zwanymi „big - M”. W zadaniu z maksymalizacj膮 wprowadzane wsp贸艂czynniki musz膮 by膰 r贸wne 0. Gdy chcemy zablokowa膰 pewien przedzia艂, przyjmujemy, 偶e warto艣膰 wsp贸艂czynnika c jest r贸wna „big - M”.

3.2 W艂asno艣ci zada艅 przyporz膮dkowa艅

Zadania przyporz膮dkowania nale偶膮 do klasy zada艅 liniowych o specjalnej strukturze. Poniewa偶 w omawianym dalej post臋powaniu b臋dziemy korzysta膰 z zapisu macierzy C, w pierwszej kolejno艣ci musimy odpowiednio przeformu艂owa膰 interpretacj臋 bazowego rozwi膮zania dopuszczalnego. Podobnie jak w klasycznych zadaniach transportowych wprowadzamy macierz przyporz膮dkowa艅 X, kt贸rej elementami s膮 poszukiwane zmienne xij;
i = 1,....,n; j = 1,...., n. Ma ona posta膰 zgodn膮 z zapisem macierzy C (zwany wektorem przyporz膮dkowa艅).

0x08 graphic

x11 x1j x1n

X = xi1 xij xin

Xn1 xnj xnn

W trakcie wyznaczania rozwi膮zania b臋dziemy dokonywa膰 przekszta艂ce艅 macierzy C. B臋d膮 to przekszta艂cenia nie maj膮ce wp艂ywu na wyznaczanie wektora przyporz膮dkowa艅 x.

1 w艂asno艣膰 przekszta艂ce艅 macierzy C - je偶eli w macierzy C do ka偶dego elementu pewnego wiersza dodamy liczb臋 伪 lub do ka偶dego elementu pewnej kolumny dodamy liczb臋 尾 nie ma to 偶adnego wp艂ywu na wektor przyporz膮dkowa艅 x. Zmienia si臋 jedynie warto艣膰 funkcji kryterium.

Istotne warunki komplementarno艣ci wi膮偶膮ce rozwi膮zania obu zada艅. S膮 one okre艣lane przez r贸wnanie:

(ui + vj - cij) * xij = 0, i = 1,....,n; j = 1,....,n.

Wykorzystamy zale偶no艣ci mi臋dzy zadaniami dualnymi, aby poprzez zadanie dualne uzyska膰 rozwi膮zanie zadania prymalnego. W tym celu przeprowadzimy redukcj臋 element贸w macierzy C.

Po redukcji macierzy C w ka偶dej kolumnie i w ka偶dym wierszu otrzymujemy co najmniej jedno 0. Przekszta艂cenia macierzy C sprawiaj膮, 偶e otrzymujemy w niej elementy r贸wne 0, kt贸re maj膮 r贸偶ne znaczenie. Wyr贸偶niamy wi臋c pewne kategorie zer:

Macierz, w kt贸rej wyst臋puj膮 elementy zerowe ma w艂asno艣膰, kt贸r膮 przedstawia twierdzenie K枚niga i Egerv谩ry'ego. Je偶eli macierz zawiera elementy zerowe, to maksymalna liczba mo偶liwych do wybrania zer niezale偶nych jest r贸wna minimalnej liczbie linii, kt贸rymi mo偶na pokry膰 te wszystkie zera.

Linie tworz膮 minimalne pokrycie zer w macierzy. Wykorzystujemy je do sprawdzenia czy wyznaczyli艣my optymalne przyporz膮dkowanie. Je偶eli bowiem liczba linii b臋dzie mniejsza od n, b臋dzie to oznacza艂o, 偶e poszukiwanie rozwi膮zania nale偶y kontynuowa膰.

Przyjmijmy, 偶e mamy zmodyfikowan膮 macierz Ck i wprowadzone linie pokrycia.

Wyr贸偶niamy teraz:

W macierzy Ck rozpatrujemy elementy ckcj, kt贸re znajduj膮 si臋 w nie pokrytych wierszach, a wi臋c i nale偶膮ce do Inp i nie pokrytych kolumnach czyli j nale偶膮ce do Jnp.

Mamy nast臋puj膮ce proste regu艂y modyfikacji element贸w macierzy Ck:

3.3 Algorytm w臋gierski

Za艂o偶enia startowe:

Znamy macierz kwadratow膮 C, kt贸rej elementy s膮 nie ujemne. W zadaniu poszukujemy minimum funkcji kryterium

Start

Wyznaczamy zredukowan膮 macierz C1 dokonuj膮c operacji:

ui = min cij i = 1,....,n

i tworzymy macierz C o elementach

cij = cij - ui i = 1,....,n j = 1,....,n;

vj = min cij i = 1,....,n j = 1,....,n

i tworzymy macierz C1 o elementach:

ckij = cij - vj i = 1,....,n j = 1,....,n.

W macierzy C1 a w nast臋pnych interacjach w macierzach Ck, otrzymujemy zera, kt贸re podzielimy na r贸偶ne kategorie. Wyr贸偶niamy zera, kt贸re podzielimy na r贸偶ne kategorie. Wyr贸偶niamy zera:

Interacje

Krok 1

Wskazujemy wiersz lub kolumn臋 o najmniejszej liczbie zer „swobodnych”. Jedno z tych zer uznajemy za „wskazuj膮ce przyporz膮dkowanie” wszystkie inne zera zamieniamy na „wykluczone”

Powtarzamy ten krok a偶 do uzyskania sytuacji, gdy w macierzy nie b臋dzie zer „swobodnych.

Krok 2

Sprawdzamy liczb臋 zer „wskazuj膮cych przyporz膮dkowanie”

Krok 3

Oznaczamy wszystkie wiersze, kt贸re nie zawieraj膮 偶adnego zera „wskazuj膮cego przyporz膮dkowanie”

Krok 4

Wykonujemy na przemian nast臋puj膮ce operacje:

  1. oznaczamy wszystkie kolumny, kt贸re w ju偶 oznaczonych wierszach maj膮 przynajmniej jedno zero „wykluczone”

  2. oznaczamy wszystkie wiersze, kt贸re w kolumnach oznaczonych w 1 podpunkcie maj膮 przynajmniej jedno zero „wskazuj膮ce przyporz膮dkowanie”

Operacje 1) i 2) powtarzamy na przemian dop贸ki nie wyczerpiemy mo偶liwo艣ci oznaczania

Krok 5

Pokrywamy liniami oznaczone wiersze oraz oznaczone kolumny

Krok 6

W艣r贸d nie pokrytych element贸w wierszy i kolumn wyznaczamy

Krok 7

Dokonujemy modyfikacji macierzy Ck

Jako wynik otrzymujemy macierz Ck+1 dla kt贸rej powtarzamy interacj臋.

2

3

4

1

7

6

5

1

2

3

j

4

5

i

j

4

5

6

2

3

1

9

7

8

1111111

10

0

j

i

0

j

i

0

h

k

j

i

3

4

7

6

8

5

1

9

2

0

0

j

i

i

j

0

9

2

3

4

0

1

8

6

7

5



Wyszukiwarka

Podobne podstrony:
Finanse publiczne zagadnienia (19 stron)
podatkowa ksi臋ga przychod贸w i rozchod贸w (19 stron) VVDJDRJ3Z4KS3XQJJ5VRP33ONNX3HK4Z44ZE6VQ
Rynak kapita艂owo pieni臋偶ny zagadnienia (19 stron) (12)
Rynek finansowy (19 stron) L7S3ITLSVY5UWL4VXQXPLVPHK7VJKOPDP4JU2BA
Teorie motywacji (19 stron) YJ6EHTZCPOG7KQDY3CDUP5AEMYV2JQAXI55PGHI
Finanse publiczne Finanse publiczne (19 stron)
Miedzynarodowe stosunki gospodarcze (19 stron)
Polityka gospodarcza (19 stron)
Analiza sektora (19 stron) 27PDVSQOREYQGAJPTEBXU56SS57INB7ILMNUDTA
Rewolucja przemys艂owa na ziemiach polskich (19 stron) 3E2J6YSUPCCPTGL7NYBHHQIONRCAXDMT55PLYIQ
Prawo cywilne (19 stron) XAMKACQIHUCTCP5VRA6TWY2WULKCPZBDEJJWZLA
Ustalenie pozycji konkurencyjnej wybranych gmin (19 stron) XYXLMN33WAJCCPQ54WBVTM7X57AD3L3UW2YGJJY
Dzia艂alno艣膰 kredytowa banku (19 stron)
Stosunki wsp贸艂dzia艂ania w przedsi臋biorstwie (19 stron), Wy偶sza Szko艂a Administracji i Zarz膮dzania
Stosunki wsp贸艂dzia艂ania w przedsi臋biorstwie (19 stron), Wy偶sza Szko艂a Administracji i Zarz膮dzania

wi臋cej podobnych podstron