Jaringan (Shortest Path dan Maximum Flow)

Network Model
Semester Genap 2011/2012

DR Rahma Fitriani, S.Si., M.Sc.,
Riset Operasi 2011

1

Definisi Dasar
Graph atau Network ditentukan oleh 2 set simbol
yaitu node dan arc
Node : simpul dari graph atau network
Arc : terdiri dari sepasang simpul yang berurutan dan
merepresentasikan arah pergerakan yang mungkin
yang dapat terjadi di antara simpul – simpul.
Untuk arc (j,k), arah yang mungkin adalah node j ke
node k. Node j disebut initial node dan node k
disebut terminal node

Contoh :


1

4

2

3

V = { 1,2,3,4}
A = {(1,2), (2,3), (3,4), (4,1), (4,3)}

Chain : Barisan dari arc sedemikian hingga setiao
arc memiliki tepat satu simpul yang sama
dengan arc sebelumnya
Path : Chain dimana terminal node setiap arc
sama dengan initial node dari arc berikutnya

Shortest Path Problem
• Pengiriman dari titik ke titik
• Supply, transhipment (substation), dan

demand nodes
• Shortest path problem
– Biaya proportional dengan jarak
– Masalah pemilihan jarak terpendek (biaya
minimum)

Contoh:
3

2

4
2

4

Sumber

2


6

1
2

3
3

5
3

Tujuan

Algoritma Djikstra
1. Beri label node 1 dengan label permanen o.
Kemudian beri label node – node yang
berhubungan dengan node 1 dengan
temporary label yang sama dengan panjang
arc yang menghubungkan node 1 dengan
node i. Node yang lain diberi label .Pilih

node dengan temporary label terkecil dan
jadikan permanen label

2. Misalkan node I adalah node ke (k+1) yang diberi
permanen label. Untuk setiap node j yang sekarang
mempunyai temporary label dan dihubungkan
dengan node I, ganti temporary label j dengan
min {temporary label node j yang sekarang ,
permanen label node I +panjang arc(I,j)}
Ubah temporary label terkecil dengan permanen
label. Lanjutkan sampai semua node mempunyai
permanen label

3. Untuk menemukan path terpendek dari node
node 1 ke node j, bekerjalah terbalik dari
node j dengan menemukan selisih label yang
sama dengan panjang arc yang
menghubungkan node

3


2

4

4

2

2

1

2
3

3

3


5

6

Temporary ={1, 2, 3, 4, 5, 6}
Permanent={ }




3

2

4

4

0
1


2


3

Distance label

3

3


5


2

2


6

Temporary ={2, 3, 4, 5, 6}
Permanent={1 }





Permanen

3

2

4

4

0

1

2


3

Distance label

3

3


5


2

2


6

Temporary ={2, 3, 4, 5, 6}
Permanent={1 }





Permanen

3

2

4

4


0
1

2


3

Distance label

3

3


5


2

2

6

Temporary ={2, 3, 4, 5, 6}
Permanent={1 }

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3


5


2

2

6

Temporary ={2, 4, 5, 6}
Permanent={1, 3 }

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3


5


2

2

6

Temporary ={2, 4, 5, 6}
Permanent={1, 3 }

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3


5


2

2

6

Temporary ={2, 4, 5, 6}
Permanent={1, 3 }

Permanen

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5


2

2

6

Temporary ={4, 5, 6}
Permanent={1, 2,3 }

Permanen

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5


2

2

6

Temporary ={4, 5, 6}
Permanent={1, 2,3 }

Permanen

4



Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5


2

2

6

Temporary ={4, 5, 6}
Permanent={1, 2,3 }

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5


2

2

6

Temporary ={4, 5, 6}
Permanent={1, 2,3 }

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen


2

2

6

Temporary ={4, 6}
Permanent={1, 2,3, 5 }

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen


2

2

6

Temporary ={4, 6}
Permanent={1, 2,3, 5 }

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen

8
2

2

6

Temporary ={4, 6}
Permanent={1, 2,3, 5 }

Permanen

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen

8
2

2

6

Temporary ={6}
Permanent={1, 2,3, 4, 5 }

Permanen

Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen

8
2

2

6

Temporary ={6}
Permanent={1, 2,3, 4, 5 }

Permanen

Permanen
Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen

Min (9,8)=8
2

2

6

Temporary ={ }
Permanent={1, 2,3, 4, 5, 6 }

Permanen

Permanen
Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

6
5
Permanen

8
2

2

6

Permanen

Permanen
Permanen

4

7

Permanen

3

2

4

4

0
1

2

3
3

3
Permanen

Temporary
Distance label

3

8
2

6
5
Permanen

Shortest path:
1–2–5–6

2

6

Shortest Path sebagai Transhipment Problem

• Transhipment problem dengan setiap demand
dan supply sama dengan 1
• Jalur yang tidak terdefinisi dikenai biaya besar
• Biaya nol untuk jalur dari node i ke node i

3

2

4

2

4
1

2
3

Cost

3

2

5

3

3

4

1

4

2

0 10000

5

Supply
1

3

2 10000

1

0 10000

3 10000

1

10000

4

10000 10000

5

10000 10000 10000
1

6

3 10000 10000 10000

3

Demand

6

2

1

0 10000

1

2

1

0

2

1

1

1

Model LP shortest path sbg transhipment
problem
min z 4 x12  3 x13  ...  0 x55  2 x56
s.t.
x12  ...  x16 1
...
x52  ...  x56 1
x12  ...  x52 1
...
x16  ...  x56 1
non negativity

Solusi optimal Contoh:
2

4

4

Sumber

2

6

1

Tujuan

2
3

5

Total distance (cost) = 8

Max Flow Problem
• Model network di mana kapasitas jalur
diperhitungkan
• Memaksimumkan jumlah pengiriman dari
source ke destination dengan kendala
kapasitas setiap jalur

Contoh: dengan kapasitas setiap jalur
3
1

4

2
S

3

1

2

2

D

3
a0

a0 jalur buatan untuk conservation flow, outflow = inflow

LP untuk max flow problem
max z  x0
s.t.
xs ,1 2, xs , 2 3, x12 3, x13 4, x3, d 1, x2 , d 2,
x0  xs ,1  xs , 2 , node s
xs ,1  x12  x13 , node 1
x12  xs , 2  x2 , d , node 2
x13  x3, d , node 3
x2 , d  x3, d  x0 , node d
xi , j 0

Solusi optimal max flow
3
1(1)

4(1)

2(1)
S

3(0)

1

2

3(2)
a0

2(2)

D

The Ford – Fulkerson Method
• Metode ini digunakan untuk menyelesaikan
masalah maximum flow
• Asumsi: feasible flow telah ditemukan (misal :
flow pada setiap arc adalah nol)
Yang menjadi pertanyaan
?? Apakah sudah merupakan optimal flow
?? Jika belum, bagaimana memodifikasi flow
supaya didapatkan feasible flow baru yang
mempunyai flow yang lebih besar

Jawaban untuk Pertanyaan Kedua
I. Tentukan property mana yang dimiliki setiap
arc dalam network
P1. Flow melalui arc (I,j) dibawah kapasitas
arc (I,j), sehingga flow yang melalui (I,j) bisa
ditingkatkan. Memiliki property I atau
increase
P2. Flow di arc(I,j) positif, sehingga flow di
arc (I,j) bisa dikurangi. Memiliki property R
atau reduce

II. Labeling procedure
1. Labeli So
2. Labeli node dan arc dengan aturan
- Jika node x sudah dilabeli, node y belum dilabeli, arc(I,j)
anggota I, maka labeli node y dan arc (x,y). Arc (x,y) disebut
forward arc
- Jika node y belum dilabeli, node x sudah dilabeli, arc (y,x)
anggota R, maka labeli node y dan arc(y,x). Arc (y,x) disebut
bacward arc
3. Lanjutkan proses pelabelan sampai Si dilabeli atau sampai
tidak ada node yang bisa dilabeli

Jika proses pelabelan sampai ke sink, maka akan
terbentuk chain (C) dari arc yang telah dilabeli
dari So ke Si.
Chain harus terdiri dari salah satu kasus berikut :
Case 1. C terdiri dari hanya forward arc
Case 2. C terdiri dari forward arc dan backward
arc

III. Penyesuaian feasible flow dan peningkatan flow dari So ke Si

•Dalam
 
Case 1.
Misalkan i(x,y) adalah jumlah dimana flow di arc
(x,y) dapat ditingkatkan tanpa melanggar
capacity constraint untuk arc (x,y) :
Tingkatkan flow melalui setiap arc di C sebesar k

•Dalam
 
Case 2.
Misalkan r(x,y) adalah jumlah dimana flow
melalui arc (x,y) dapat dikurangi
dan
Turunkan flow di backward arc dalam C sebesar
tingkatkan flow di forward arc dalam C sebesar

Rangkuman The Ford – Fulkerson Method
1. Temukan feasible flow
2. Gunakan labeling procedure, coba untuk
melabeli sink. Jika sink tak bisa dilabeli,
feasible flow adalah maximum flow
3. Sesuaikan feasible flow dan tingkatkan flow
dari source ke sink. Kembali ke langkah 2