100 likes | 216 Views
Pertemuan 25 Network Flow. Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat memilih aplikasi graph yang tepat untuk pemecahan masalah network flow. Outline Materi.
E N D
Pertemuan 25Network Flow Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat memilih aplikasi graph yang tepat untuk pemecahan masalah network flow
Outline Materi • Pengertian dan kegunaan network flow • contoh network flow • implementasi network flow
Network Flow • Weighted Digraph • Weight = edge capacity Jumlah kendaraan yang dapat melewati suatu jalan, debit air yang dapat melalui pipa • Vertices: • Source (s): Verteks sumber aliran • Sink (t): Verteks tempat pembuangan aliran Jumlah outgoing flow di Source = Jumlah incoming flow di Sink • Bukan Source/Sink (v atau w): Incloming flow = Outgoing flow
s 3 2 1 a b 4 3 2 c d 2 3 t s 3 2 0 a b 1 2 2 c d 2 3 t Maximum Flow • Permasalahan Maximum Flow: menentukan jumlah maksimum aliran antara s dan t, hingga terbentuk suatu maximum flow graph Graph Flow Graph
s s s 0 0 3 2 1 0 3 2 a b a b 1 4 0 a b 0 0 3 2 4 3 2 c d c d c d 0 0 2 3 t 2 3 t t Algoritma Maximum Flow (1) Diperlukan 3 graph: graph asal, flow graph Gf dan residual graph Gr Maxflow Graph Gf Residual Graph Gr Graph asal • Pada tahap terakhir weight menyatakan aliran maksimum; graph menjadi maximum flow graph • weight menyatakan aliran yang telah terbentuk sampai tahap tertentu • Weight menyatakan sisa aliran yang belum terpakai dan dapat ditambahkan pada flow graph • (Gr=G – Gf)
Algoritma Maximum Flow (2) Tahap 1: • Gf belum mempunyai aliran pada semua edge • Gr = G • Tahap 2 dan seterusnya: • Cari augmenting path dari s ke t pada Gr. Weight minimum dalam path tsb adalah aliran yang bisa ditambahkan pada Gf. • Update aliran Gf • Update Gr : • Update weight edge searah aliran terakhir Gr = G - Gf • Tambahkan edge yang berlawanan dgn aliran terakhir • Algoritma berakhir jika tidak ada augmenting path lagi pd Gr
Graph asal Maxflow Graph Residual Graph s s s Tahap 1 3 2 0 0 3 2 1 1 0 a b a b a b 4 4 0 3 2 0 0 3 2 c d c d c d 2 3 0 0 2 3 t t t • Tahap 1: • Gf belum mempunyai aliran pada semua edge • Gr = G • Tahap 2: • Pilih satu augmenting path dari Gr • Misalnya s-b-d-t dengan weight minimum 2
Tahap 2 s s s 3 2 0 2 3 2 1 1 0 a b a b a b 4 4 0 3 2 0 2 3 2 c d c d c d 1 2 3 0 2 2 2 t t t • Lanjutan tahap 2 : • Update aliran Gf • Update Gr : • Update weight edge searah aliran terakhir Gr = G - Gf • Tambahkan edge yang berlawanan dgn aliran terakhir • Tahap 3: • Pilih path s-a-c-t dari Gr , weight minimum 2
s s s 2 Tahap 3 3 2 2 2 2 1 1 1 0 a b a b a b 4 4 0 3 2 2 2 2 2 1 c d c d c d 1 2 3 2 2 2 2 t t t Tahap terakhir s s s 3 2 3 2 3 2 1 1 0 a b a b a b 1 3 4 3 2 3 2 2 2 c d c d c d 2 3 2 3 2 3 t t t • Pilih satu path s-a-d-t dari Gr , weight minimum 1 • Tidak ada lagi path dari s ke t pada Gr