Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran...

52
1

Transcript of Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran...

Page 1: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

1

Page 2: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Pelabelan aliran maksimum dengan algoritma Ford-Fulkerson telah diperkenalkan pada pertengahan 1950,

Merupakan algoritma untuk memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada jaringan.

Algoritma Ford-Fulkerson juga merupakan metode yang dipakai untuk melakukan penambahan aliran dalam suatu jaringan.

2

Page 3: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

3

Sebuah digraph G = (V,E), yang mempunyai fungsi kapasitas pada tiap sisi (edge) disebut dengan jaringan berkapasitas

Pada jaringan ini terdapat dua vertex yg berbeda, 1. Vertex s dengan in-degree 0 disebut dengan sumber2. vertex t dengan out-degree 0 disebut dengan tujuan

(sink)

Page 4: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

4

kapasitas

s=

1

32

54

t=

6

27

12 15

246

12

12

8

6

kapasitas tiap edge (i,j)

adalah c(i,j) 0.

Page 5: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

flow• flow (aliran) dlm jaringan adalah nilai integer

fungsi f yg didefinisikan di tiap edge.• 0 f(i,j) c(i,j) untuk setiap edge (i,j) .

5

Page 6: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Conservation Condition• Untuk setiap vertex j , dimana j bukan sumber s

atau tujuan t, maka penjumlahan aliran yg masuk

ke j sama dengan aliran yang ke luar dari j.

feasible flow. • Aliran yang memenuhi disebut conservation

condition feasible flow.

6

Page 7: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Algoritma Ford-Fulkerson menentukan maximum

flow pada jaringan.

Jika f merupakan feasible flow dalam G. maka

Edge (i,j) dikatakan : saturasi jika f(i,j) = c(i,j)

bebas jika f(i,j) = 0

positif if 0 < f(i,j) < c(i,j).

7

Page 8: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

tiga hal penting yang perlu diperhatikan dalam

kaitannya dengan metode menggunakan

algoritma Ford-Fulkerson, yaitu:

• Residual network

• Flow Augmenting Path

• Minimum Cutset

8

Page 9: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

residual capacity (rc) dari sebuah edge (i,j)

• sama dengan c(i,j) – f(i,j) ketika (i,j) adalah

forward edge, dan

• sama dengan f(i,j) ketika (i,j) adalah backward

edge.

9

Page 10: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

10

i jflow/cap

i jflowrc

i jflow/cap

i jrcflow

Forward edge Backward edge

Page 11: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

11

Page 12: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Flow Aughmenting Path merupakan suatu

lintasan yang memungkinkan terjadinya

suatu penambahan aliran.

Syarat dilakukan Flow Aughmenting Path • ∆ = ci,j – fi,j ≠ 0

12

Page 13: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Langkah Flow Aughmenting Path:• Menaikkan flow forward link sampai menuju ci,j

• Menurunkan flow arah backward link sampai

menuju 0 (kapasitas terendah)

13

Page 14: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

14

Page 15: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

augmenting path• Adalah urutan alternatif dari vertex dan edge

s, e1, v1, e2, v2, …, ek, t

• Dengan syarat tidak ada vertex yang diulang

dan tidak ada forward edge yg saturasi dan

tidak ada backward edge yg bebas

15

Page 16: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

16

s t

3/8 6/7 2/6 4/9

s t

5 3 1 6 2 4 5 4

Page 17: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Kita dapat meningkatkan flow pada path

s ke t dengan menentukan excess flow

capacity dari path ini.

Dari kiri ke kanan, residual capacities

(jumlah flow yg dapat ditingkatkan pada

edge) adalah huruf pertama pada

masing-masing edge.

17

Page 18: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

excess flow capacity dari sebuah augmenting path sama dengan minimum dari residual capacities dari setiap edge dalam path.

18

s t

4 4 0 7 1 5 4 5

minimum(5, 1, 2, 5) = 1

s t

5 3 1 6 2 4 5 4

Page 19: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

19

s

X

Z Y

W

t

4

6

3

55

4 4

Theorema: flow dalam sebuah capacitated network adalah maximum flow jika dan hanya jika tidak terdapat augmenting path dalam jaringan

Angka menunjukkan

kapasitas tiap link

Page 20: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

20

s

X

Z Y

W

t

4

0

3 0

5

0

5

0

6

04 0

4

0

0 0

Page 21: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Augmenting path: s->X->W->t Excess capacity of s->X->W->t = min(4, 3, 5) = 3

21

s

X

Z Y

W

t

1

3

0 3

2

3

5

0

6

04 0

4

0

3 3

Page 22: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Augmenting path: s->X->t Excess capacity of s->X->t = min(1, 5) = 1

22

s

X

Z Y

W

t

0

4

0 3

2

3

4

1

6

04 0

4

0

4 4

Page 23: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Augmenting path: s->Z->Y->t Excess capacity of s->Z->Y->t = min(6, 4, 4) = 4

23

s

X

Z Y

W

t

0

4

0 3

2

3

4

1

2

40 4

0

4

8 8

Page 24: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

At this point, there are no remaining augmenting paths! Therefore the flow is a maximum = 8.

24

s

X

Z Y

W

t

4/4

3/3

3/5

1/5

4/64/4

4/4

Page 25: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Minimum cut-set yaitu suatu metode

pemecahan jaringan menjadi beberapa

subnet. Minimum cut-set akan

membentuk suatu partisi (membentuk

dua buah jaringan baru)

25

Page 26: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

26

Page 27: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

algoritma Ford-Fulkerson mempunyai dua bagian, yang dinamakan Routine A dan Routine B,

Routine A• Yg pertama adalah proses labeling yang mencari sebuah

flow augmenting path { i.e., path dari s ke t yg mempunyai f < c untuk seluruh arah foward dan f > 0 untuk seluruh arah backward. Jika Routine A menemukan sebuah flow augmenting path,maka :

Routine B• Routine B mengubah flow yg sesuai. Dengan kata lain,

jika sudah tidak terdapat augmenting path , maka flow sudah dipastikan optimal, sesuai dengan teorema:

27

Page 28: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Sebuah flow f mempunyai nilai maksimum

jika dan hanya jika tidak terdapat flow

augmenting path

28

Page 29: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Terdapat dua tahapan dalam melakukan algoritma Ford-Fulkerson, yaitu:

1. Tahap pelabelan, terdiri atas beberapa langkaha. simpul sumber dengan (0,∞)

b. Bila i merupakan simpul yang sudah dilabelkan dengan fi,j< ci,j , maka beri label untuk simpul j dengan (i, e(j)) dimana

a. e(j) = min (e(i), ci,j - fi,j ).

b. Arah aliran dari i ke j

c. Bila i merupakan simpul yang sudahdilabelkan, j simpul yang belumdilabelkan dan fj,i > 0, buat label di j dengan (-i, e(j)) dengan

a. e(j)= min (e(i), fj,i )

29

Page 30: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

2. Pengubahan aliran, terdiri atas beberapa

tahap:

a. untuk simpul-simpul yang terlabelkan dengan

prosedur 1.b, maka aliran ditambah fi,j = fi,j + e(t)

b. untuk simpul-simpul yang terlabelkan dengan

cara 1.c maka aliran dikurangi fj,i=fi,j – e(t)

c. Setelah prosedur selesai, hapus label-label tadi.

Kemudian ulangi prosedur hingga tidak

ditemukan lagi aughmenting path.

30

Page 31: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Jika kita mulai dengan setiap feasible

flow (e.g., f = 0). Secara umum, sebuah

node dalam tiga kondisi berikut:• unlabeled,

• labeled dan scanned, atau

• labeled dan unscanned.

31

Page 32: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

32

1 6

5

4

3

2(6,3)

(8,7)

7 7

Sumber di simpul 1 dan tujuan di simpul 6

kapasitas

aliran

Page 33: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

1. Labelkan simpul satu dengan (+0,∞)

2. Pilih simpul yg SL (sudah label) tapi BS ( belum scan)simpul 1 dipilih

3. Simpul 1 sebagai simpul i. simpul i SL dan labelkan setiap simpul j yg BL (belum label) Cari fij < cij, kalau tidak ada cari fji > 0.

Jika fij < cij maka labelkan simpul j dengan (+i,(ej)) dengan e(j)=min (e(i), ci,j -fi,j ).

Jika fji>0, maka labelkan simpul j dgn (-i,e(j)) dimana e(j)=min (e(i),fji)

Sekarang simpul i SS (sudah scan), simpul j SL dan BS

4. Cek apakah simpul tujuan SL. Bila SL berarti sudah ditemukan ‘jalan aliran yg diperbesar’ tambahkan fij + e, bila belum, ulangi langkah 2 & 3

33

Page 34: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

34

Contoh pelabelan

1 6

5

4

3

2(6,3)

(8,7)

7 7(+0,∞)

Labelkan simpul sumber dengan (+0,∞)

(+1,3)

Bila i merupakan simpul yang sudah dilabelkan dan fi,j < ci,j , maka beri label untuk simpul j dengan (i, e(j)) di mana e(j) = min (e(i), ci,j -fi,j ). Arah aliran dari i ke j

e(i) (+2,3)

(-4,2)

(+5,2)

Page 35: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

35

Contoh pelabelan

1 6

5

4

3

2(6,3)

(8,7)

7 7(+0,∞)

(+1,3)(+2,3)

(-4,2)

(+5,2)

Bila i merupakan simpul yang sudah dilabelkan, j simpul yang belum dilabelkan dan fj,i > 0, buat label di j dengan

(-i, e(j)) dengan e(j)= min (e(i), fj,i )

Page 36: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

36

1 6

5

4

3

2(6,3)

(8,7)

7 7(+0,∞)

(+1,3)(+2,3)

(+5,2)

•Tujuan SL (sudah label)•Tambahkan fij+e=7+2=9

(-4,2)

Page 37: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

37

Contoh penambahan aliran

1 6

5

4

3

2(6,5)

(8,7)

9 9

Tambahkan 2 satuan ke tujuanTambahkan 2 satuan aliran f56Kurangkan 2 satuan aliran f54Tambahkan 2 satuan aliran ke f24Tambahkan 2 satuan aliran ke f12

Page 38: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

38

Setelah prosedur selesai, hapus label-label tadi. Kemudian ulangi prosedur hingga tidak ditemukan lagi aughmenting path.

Page 39: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Tidak bisa dilabelkan sampai tujuan, artinya aliran jaringan sudah optimal

39

1 6

5

4

3

2(6,5)

(8,7)

9 9

(+1,1)

(+0,∞)

(+2,1)

Page 40: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

Sumber di node 1 dan tujuan di node 6

40

1 6

5

4

3

2(8,7)

(2,2

)

(8,1)

9 9

Page 41: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

41

Page 42: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

42

s

2

3

4

5 t10

10

9

8

4

10

1062

0

0

0

0 0 0

0

0

G:

Flow value = 0

0

flow

capacity

Page 43: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

43

residual capacity

s

2

3

4

5 t10 9

4

1062

Gf:

10 8

10

Page 44: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

44

s

2

3

4

5 t10

4

106

Gf:

8

8

8

9

22

2

Flow value = 8

Page 45: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

45

s

2

3

4

5 t

4

2

Gf:

10

810

2

10 7

106

Flow value = 10

Page 46: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

46

s

2

3

4

5 t1

6

Gf:

10

810

8

6

6

4

4

4

2

Flow value = 16

Page 47: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

47

s

2

3

4

5 t

62

Gf:

10

10

88

8

2

2 1

2

8 2

Flow value = 18

Page 48: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

48

s

2

3

4

5 t1 9

1

162

Gf:

10

710

9

9

3

1

Flow value = 19

Page 49: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

49

3

s

2

3

4

5 t1 9

1

162

Gf:

10

710

9

91

Flow value = 19Cut capacity = 19

Page 50: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

1. Dengan algoritma ford fulkerson, tentukan

penambahan aliran yang dapat dilakukan

untuk graph berikut (sumber di node 1 dan

tujuan di node 6):

50

(8)

(3)

(4)

(4)(2)

(8)

(8)

(4)

(8)

1

2

3

6

4

5

Page 51: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6

2. Dengan algoritma ford fulkerson, tentukan

penambahan aliran yang dapat dilakukan untuk

graph berikut (sumber di node 1 dan tujuan di node

6):

51

9

9

(8,1)

(2,2)(3,1)

(3,1)

(8,3)

(8,6)

(9,3)

(8,7)

(7,6) 2

3

4

5

61

Page 52: Pelabelan aliran maksimum dengan · Pelabelan aliran maksimum dengan ... memaksimumkan aliran (flow) dengan kapasitas dan biaya yang terbatas pada ... Contoh penambahan aliran 1 6