4.3 Algoritma Ford-Fulkerson
Secara garis besar, prosedur algoritma Ford-Fulkerson sudah tersirat dalam bukti teorema 4.3 dan prosedur untuk mengkonstruksi aliran baru yang nilainya
lebih besar dari nilai aliran lama sudah tersirat dalam lemma 4.2. Namun prosedur untuk mendapatkan lintasan peningkatan tidak tersirat dalam lemma
maupun bukti teorema sebelumnya. Untuk mendapatkan lintasan yang
demikian, akan digunakan teknik pelabelan titik, yang pada prinsipnya melabel titik-titik
dengan teknik tertentu dimulai dari titik , kemudian dilanjutkan melabel titik yang lain. Jika dengan teknik tersebut bisa melabel titik , maka
dengan teknik “prosedur balik” lintasan ditemukan. Tetapi sebaliknya, jika titik tidak bisa dilabel, maka tidak ada lintasan seperti itu pada . Secara sistematis
algoritmanya adalah sebagai berikut. Langkah 1: misalkan sebuah aliran dari ke pada . Boleh dimulai dengan
aliran bernilai nol, yaitu , = 0, ∀ , �ΓN. Dilanjutkan ke
Routin-Pelabelan. Langkah 2: Routin-Pelabelan
2.1 Label
= , +, = ~. Titik
telah terlabel dan belum teramati. Sebuah titik dikatakan telah teramati jika semua titik
yang dapat dilabel dari titik sudah terlabel. 2.2
Pilih sebarang titik yang terlabel tetapi belum teramati, misalkan titik tersebut
. Untuk ∀ ∃ , ΓN, belum berlabel dan
, 0, maka label = ,
−, dengan
= , , . Sekarang titik telah terlabel, tetapi belum
teramati. Untuk ∀
∃ , ΓN, belum berlabel dan
, , , maka label = , +,
dengan =
min , , − , . Sekarang titik
terlabel tetapi belum teramati, sedangkan titik
telah terlabel dan teramati. 2.3
Ulangi langkah 2.2 sampai: 1
titik terlabel, atau; 2
semua titik terlabel telah teramati tetapi titik tak terlabel; 3
jika titik terlabel, lanjut ke langkah 3; 4
jika semua titik terlabel telah teramati tetapi titik tak terlabel, maka BERHENTI. Aliran adalah aliran maksimum
pada jaringan . Langkah 3: dengan prosedur “balik”, temukan lintasan peningkatan dengan
iP adalah label . Langkah 4: tingkatkan nilai aliran
sebesar label , berdasarkan lintasan
peningkatan dengan menggunakan “Routine-Peningkatan”:
4.1 Misal: = lanjutkan ke langkah 4.2.
4.2 Jika label
= , +, tingkatkan nilai
, dengan = . Jika label
= , −,
turunkan nilai ,
dengan = .
4.3 Jika = , hapus semua label. Pada tahap ini diperoleh aliran
baru dengan nilai = iP + nilai aliran lama. Ganti aliran dengan aliran yang baru, dan kembali ke langkah 1 Budayasa, 2007:
240-242.
4.4 Algoritma Preflow-Push