Jaringan (Shortest Path dan Maximum Flow)

Download Report

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