Anda di halaman 1dari 30

Algoritma Ford

Pengertian Algoritma Ford Fulkerson


? Pelabelan aliran maksimum dengan algoritma FordFulkerson telah diperkenalkan pada pertengahan

1950,

Algoritma Ford-Fulkerson merupakan salah satu dari algoritma yang dipakai dalam aplikasi graph. Berdasarkan pengertiannya algoritma Ford-Fulkerson yaitu algoritma untuk memaksimumkan aliran (flow) dengan kapsitas dan biaya yang terbatas pada jaringan.

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

kapasitas
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 sumber 2. vertex t dengan out-degree 0 disebut dengan tujuan (sink)
4 27 s= 12 12

24

12

15

t=6

kapasitas tiap edge (i,j) adalah c(i,j) 0. 3

flow ? 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) .
? 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.


4

maximum flow ? The Ford-Fulkerson algorithm determines the

maximum flow of the network.


? Jika f merupakan feasible flow dalam G. maka

Edge (i,j) dikatakan :


a) saturasi jika f(i,j) = c(i,j) ? b) bebas jika f(i,j) = 0

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

flow ? flow

? flow (aliran) dlm jaringan adalah nilai integer fungsi f yg didefinisikan di tiap edge. ? 0 f(i,j) (i,j) .
? Conservation Condition

c(i,j) untuk setiap edge

? 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

Algoritma Ford-Fulkerson

? tiga hal penting yang perlu diperhatikan dalam kaitannya dengan metode menggunakan algoritma Ford-Fulkerson, yaitu:

? Residual network ? Flow Augmenting Path

? Minimum Cutset

residual capacity
? 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.
flow/cap

i i

flow/cap

j j

flow

rc
i

rc

flow
j i Backward edge 8 j

Forward edge

Residual network

? Residual network berisikan edges dengan flow yang lebih. Berikut diberikan contoh dari grafik residual network

?Gambar : Residual Network


9

Flow Aughmenting Path ? Flow Aughmenting Path merupakan suatu lintasan yang memungkinkan terjadinya suatu penambahan aliran.

? Syarat dilakukan Flow Aughmenting Path

= ci,j fi,j 0

? Langkah Flow Aughmenting Path:

? Menaikkan flow forward link sampai menuju ci,j ? Menurunkan flow arah backward link sampai menuju 0 (kapasitas terendah)
10

11

Flow Aughmenting Path

? 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

12

Example: Augmenting Path


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

s t
5 3 1 6 2 4 5 4

s t
Kita dapat meningkatkan flow pada path s ke t dengan

menentukan excess flow capacity dari path ini.


Dari kiri ke kanan, residual capacities (jumlah masing edge. 13 flow yg dapat ditingkatkan pada edge) adalah huruf pertama pada masing-

excess flow capacity

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

s t

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

Theorema: flow dalam sebuah capacitated network adalah maximum

Theorema:

flow jika dan hanya jika tidak terdapat augmenting path dalam jaringan 3

4 s 6
Z

5 4 4
Y

4 0

s
6

X
0 5

W
5 0 0 0

4 0

15

Augmenting path ? Augmenting path: s->X->W->t

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


0 3

3 1 3 3 6

X 5

2 3 0

t
0

4 0

Z Y

16

Augmenting path ? Augmenting path: s->X->t

? Excess capacity of s->X->t = min(1, 5) = 1

X
4 0

3 4

W
2 3

s
6 4 0 0

t
0

17

Augmenting path ? Augmenting path: s->Z->Y->t

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


0 3 4 X 4 0 8 8 2 0 4 4 Z Y 0 4 3 1 W 2

18

Augmenting path ? At this point, there are no remaining augmenting paths! Therefore the flow

is a maximum = 8.

X
W

3/3

4/4

3/5 1 / 5

4/6 4/4

t Z Y

19

Minimum cut-set

? Minimum cut-set yaitu suatu metode pemecahan jaringan menjadi beberapa subnet. Minimum cut-set akan membentuk suatu partisi

(membentuk dua buah jaringan baru)

20

21

Algoritma Ford-Fulkerson
? algoritma Ford and Fulkerson mempunyai dua bagian, yang dinamakan Routine A and 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 flow augmenting path,maka : menemukan sebuah
? 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:
22

Theorem.
Sebuah flow f mempunyai nilai

maksimum jika dan hanya jika tidak terdapat flow augmenting path

23 Tahapan-Tahapan Algoritma Ford- Fulkerson

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

1.

Tahap pelabelan, terdiri atas beberapa tahap a. 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)) di mana e(j) = min (e(i), ci,j - fi,j ). Arah aliran dari i ke j 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

a.

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


24 Tahapan-Tahapan Algoritma Ford- Fulkerson

2. Pengubahan aliran, terdiri atas beberapa

a. untuk simpul-simpul yang terlabelkan dengan prosedur 1.b, maka aliran ditambah fi,j = fi,j + e(t)

tahap:

b. untuk simpul-simpul yang terlabelkan dengan

c.

cara 1.c maka aliran dikurangi fj,i=fi,j e(t) Setelah prosedur selesai, hapus label-label tadi.
Kemudian ulangi prosedur hingga tidak ditemukan lagi aughmenting path.

25 Tahapan-Tahapan Algoritma Ford- Fulkerson

? Jika kita mulai dengan setiap feasible flow (e.g., f = 0). Secara umum, sebuah node dalam tiga kondisi berikut:

? ? ?

unlabeled, labele da d labele n da d n

scanned, atau

u ns ca

n ne d.

26

contoh
aliran
kapasitas

(6,3)

4
7 7

1 6

3
(8,7)

Sumber di simpul 1 dan tujuan di simpul 6

27

Prosedur pelabelan 1. Labelkan simpul satu dengan (+0,)

2. Pilih simpul yg SL (sudah label) tapi BS ( belum ?simpul 1 scan)dipilih 3. Simpul 1 sebagai simpul i. simpul i SL dan 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

28

Contoh pelabelan

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 Labelkan simpul sumber dengan (+0,) e(i) (+1,3) 2 (6,3) (+2,3)

4
7 7 (+0,)

1 6
(+5,2)

3
(8,7)
Bila i merupakan simpul yang sudah dilabelkan, j simpul yang belum dilabelkan dan fj,i > 0, buat label di j dengan (-4,2)

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


29

Contoh penambahan aliran


Tujuan SL (sudah label)

Tambahkan fij+e=7+2=9
(+1,3) 2 (6,3) (+2,3)

4
7 7 (+0,)

1 6
(+5,2)

3
5

(8,7)

(-4,2)
30

Contoh penambahan aliran


2 4
9 9

( 6 , 5 )

1 6

3
(8,7) 5

Tambahkan 2 satuan ke tujuan

Tambahkan 2 satuan aliran f56 Kurangkan 2 satuan aliran f54 Tambahkan 2 satuan aliran ke f24 Tambahkan 2 satuan aliran ke f12

31

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

32

Pelabelan lagi
(+1,1) 2 (6,5) (+2,1)

4
(+0,)

9 9

1 6

3
(8,7) 5

? Tidak bisa dilabelkan sampai tujuan, artinya aliran jaringan sudah optimal

33

Soal : tentukan aliran yang bisa ditambahkan pd jaringan berikut


( 8 , 7

2 4
(2,2) 9

1 6

3
(8,1) 5

? Sumber di node 1 dan tujuan di node 6


34

Contoh lain

35

We start with the flow set equal to 0 everywhere:

36

Anda mungkin juga menyukai