Transcript 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)
Sumber 1 4 3 2 3 3 3
Contoh:
4 2 2 5 2 6 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
1 4 3 2 3 3 3 2 4 2 2 5 6
Temporary ={1, 2, 3, 4, 5, 6} Permanent={ } 0 1 4 3 ∞ 2 ∞ 3 3 3 2 Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 3, 4, 5, 6} Permanent={1 } Permanen 0 1 4 3 ∞ 2 ∞ 3 3 3 2 Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 3, 4, 5, 6} Permanent={1 } Permanen 0 1 4 3 ∞ 2 ∞ 3 3 3 2 Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 3, 4, 5, 6} Permanent={1 } Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 4, 5, 6} Permanent={1, 3 } Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 4, 5, 6} Permanent={1, 3 } Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 ∞ 5 2 6 ∞
Temporary ={2, 4, 5, 6} Permanent={1, 3 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 6 5 2 6 ∞
Temporary ={4, 5, 6} Permanent={1, 2,3 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 6 5 2 6 ∞
Temporary ={4, 5, 6} Permanent={1, 2,3 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label ∞ 4 2 6 5 2 6 ∞
Temporary ={4, 5, 6} Permanent={1, 2,3 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label 7 4 2 6 5 2 6 ∞
Temporary ={4, 5, 6} Permanent={1, 2,3 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label 7 4 2 6 5 2 Permanen 6 ∞
Temporary ={4, 6} Permanent={1, 2,3, 5 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label 7 4 2 6 5 2 Permanen 6 ∞
Temporary ={4, 6} Permanent={1, 2,3, 5 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label 7 4 2 6 5 2 Permanen 6 8
Temporary ={4, 6} Permanent={1, 2,3, 5 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label Permanen 7 4 2 6 5 2 Permanen 6 8
Temporary ={6} Permanent={1, 2,3, 4, 5 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label Permanen 7 4 2 6 5 2 Permanen 6 8
Temporary ={6} Permanent={1, 2,3, 4, 5 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label Permanen 7 4 2 6 5 2 Permanen 6 Min (9,8)=8 Permanen
Temporary ={ } Permanent={1, 2,3, 4, 5, 6 } Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label Permanen 7 4 2 6 5 2 Permanen 6 8 Permanen
Permanen Permanen 0 1 4 3 4 2 3 3 3 3 2 Permanen Temporary Distance label Permanen 7 4 2 6 5 2 Permanen 6 8 Permanen Shortest path: 1 – 2 – 5 – 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
1 Cost 1 2 3 4 5 Demand 4 2 3 2 4 2 6 2 3 3 3 5 2 3 4 0 10000 4 5 6 3 10000 10000 10000 Supply 1 3 2 10000 1 10000 0 10000 3 10000 1 10000 10000 10000 10000 10000 1 1 0 10000 1 0 1 2 2 1 1 1
Model LP shortest path sbg transhipment problem
min
z
4
x
12 3
x
13 ...
0
x
55 2
x
56
s
.
t
.
x
12 ...
x
16 1 ...
x
52
x
12 ...
...
x
56
x
52 1 1 ...
x
16 ...
x
56 1 non negativity
Sumber 1 4
Solusi optimal Contoh:
2 3 2 4 6 Tujuan 2 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 3 2 1 2 2 D S 3 a0 a0 jalur buatan untuk conservation flow, outflow = inflow
LP untuk max flow problem
max
z
x
0
s
.
t
.
x s
, 1 2 ,
x s
, 2 3 ,
x
12
x
0
x s
, 1
x s
, 1
x
12
x s
, 2 , node s
x
13 , node 1 3 ,
x
12
x s
, 2
x
2 ,
d
, node 2
x
13
x
13
x
2 ,
d
x
3 ,
d
, node 3
x
3 ,
d
x
0 , node d
x i
,
j
0 4 ,
x
3 ,
d
1 ,
x
2 ,
d
2 ,
Solusi optimal max flow
S 2(1) 1 3(2) 4(1) 3(0) a0 2 3 1(1) 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) : 𝑘 = min (𝑥,𝑦)∈𝐶 𝑖(𝑥, 𝑦) 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 𝑘 1 = min (𝑥,𝑦)∈𝐶 𝑟(𝑥, 𝑦) dan 𝑘 2 = min (𝑥,𝑦)∈𝐶 𝑖(𝑥, 𝑦) Turunkan flow di backward arc dalam C sebesar min 𝑘 1 , 𝑘 2 unit dan tingkatkan flow di forward arc dalam C sebesar min 𝑘 1 , 𝑘 2
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