GRAF BERARAH
7.1 Definisi-Definisi
Diberikan himpunan anak laki-laki dengan anggotanya Alan, Bill, Charlie dan Don dan
himpunan anak perempuan dengan anggota Ethel, Florence, dan Gail. Alan hanya perhatian
kepada Ethel, Bill dan Charlie keduanya sangat menyukai Florence, tapi Charlie juga tertarik
dengan Gail. Don seorang sarjana dan tidak bersama dengan gadis siapapun. Hati Ethel milik
Alan, Gail menyukai Don dan Florence tidak peduli dengan siapapun dari mereka.
Permasalahan ini dapat direpresentasikan dengan diagram pada gambar 7.1. diagram
digambarkan dengan garis berpanah dari sebuah titik di x ke sebuah titik di y, dimana panah
dari x ke y jika x menyukai y.
Cara lain untuk mendeskripsikan kesukaan ini adalah dengan mendaftar sebagai sebuah
himpunan pasangan berurutan:
Dimana (x, y) pada daftar menandakan bahwa x menyukai y. Urutan pada pasangan (x, y)
adalah penting, X yang pertama, Y yang kedua, sehingga (x, y) adalah berbeda dengan (y, x)
jika x berbeda dengan y. Oleh sebab itu, digunakan istilah pasangan berurutan. Pasangan
berurutan pada gambar 7.1 direpresentasikan dengan panah berarah.
Hal ini membawa pada konsep sebuah graf berarah:
Sebuah graf berarah D = (V, A) adalah suatu pasangan berurutan dari dari dua himpunan
berhingga yaitu
V, himpunan titik, sebuah himpunan tak kosong yang anggotanya disebut titik dari D dan
A, himpunan busur, sebuah himpunan yang boleh kosong dengan anggotanya disebut busur-
busur dari D,
Sedemikian sehingga setiap busur a di A adalah sebuah pasangan berurutan dari dua titik (u,
v).
Jika a adalah sebuah busur pada graf berarah D, yang menghubungkan pasangan berurutan
dari titik (u, v), maka a dikatakan menghubungkan u ke v, u disebut titik asal atau titik awal
atau ekor dari a dan v disebut titik ujung atau titik tujuan atau kepala dari a.
1
Graf berarah digambarkan dengan diagram seperti graf kecuali busurnya digambarkan
dengan garis berarah. Sebagai contoh, gambar 7.2 merupakan graf berarah D dengan
himpunan titik V = {u, v, w, x} dan himpunan busur A = {a1, a2, a3, a4, a5, a6, a7} dimana
a1 menghubungkan u ke v dan sehingga menguhubungkan pasangan berurutan (u, v)
a2 menghubungkan v ke v dan sehingga menguhubungkan pasangan berurutan (v, v)
a3 menghubungkan v ke w dan sehingga menguhubungkan pasangan berurutan (v, w)
a4 menghubungkan w ke v dan sehingga menguhubungkan pasangan berurutan (w, v), dan
yang lainnya.
Istilah graf berarah (Directed Graph) kadang disingkat sebagai digraph dan kadang busur
disebutkan sebagai sisi berarah atau lebih sederhana disebut sisi.
Jika lebih dari satu digraf yang dipertimbangkan, himpunan titik dari sebuah digraf D di
notasikan dengan V(D) dan begitu juga dengan himpunan busur dinotasikan dengan A(D).
Diberikan sebuah digraf D, kemudian diperoleh sebuah graf G dari D dengan menghapus
semua panah dari busur. Graf G ini memiliki himpunan titik yang sama dengan himpunan
titik pada D dan setiap busur a dalam D dengan pasangan berurutan titik (u, v) menjadi sisi e
pada graf G dengan pasangan tak berurutan (u, v). G kemudian disebut graf dasar dari D.
Gambar 7.3 menunjukan graf dasar dari digraf D pada gambar 7.2.
2
Banyak dari definisi pada graf yang dapat disamakan untuk digraf. Beberapa diantaranya
Dimana secara berurutan titik dan busur sedemikian sehingga untuk i = 1, 2, ..., k busur ai
memiliki titik asal vi-1 dan titik tujuan vi.
Sama seperti pada graf, jalan berarah W ini sering dituliskan secara sederhana sebagai barisan
dari titik
Bilangan k dari busur di W disebut panjang dari W dan jalan berarah dengan panjang 0
dimana barisan terdiri dari hanya satu titik dan tanpa busur, sebagai contoh W = v0.
Definisi yang sama untuk jejak berarah, lintasan berarah, sikel berarah, dan tour berarah.
Sebagai contoh, pada digraf D pada gambar 7.2.
Adalah sebuah jalan berarah dengan panjang 5. Tapi bukan sebuah jejak berarah karena busur
a3 dilalui dua kali. Juga
Adalah jejak berarah dengan panjang 4. Tapi bukan jalan berarah karena titik v dilalui dua
kali (begitu juga titik w). Dengan cara yang sama
Jalan W yang diberikan pada definisi diatas dikatakan sebagi sebuah jalan v0 vk atau sebuah
jalan dari v0 ke vk. Titik v0 disebut titik asal dari jalan W sementara vk disebut titik akhir dari
W.
Sebuah titik v dari digraf D dikatakan dapat dicapai dari sebuah titik u jika terdapat sebuah
lintasan berarah di D dari u ke v.
Pada digraf D di gambar 7.2, u, v, dan w semuanya dapat dicapai dari x tapi x tidak dapat
dicapai dari semua titik kecuali dirinya sendiri.
Pada digraf, ada dua macam keterhubungan
Sebuah digraf D dikatakan terhubung lemah (connected) jika graf dasarnya terhubung.
3
Sebuah digraf D dikatakan terhubung kuat (diconnected) jika untuk setiap pasang dari titik
u dan v di D terdapat lintasan berarah dari u ke v atau yaitu setiap pasang titik di D dapat
dicapai dari yang lainnya.
Karena titik x tidak dapat dicapai dari titik lainnya, digraf pada gambar 7.2 tidak terhubung
kuat. Tetapi, digraf pada gambar 7.4 adalah terhubung kuat.
Diberikan sebuah graf G. Sebuah digraf D dapat diperoleh dari G dengan menentukan untuk
setiap sisi di G urutan ke ujung titik. Digraf D disebut orientasi dari G.
Graf K3 memiliki 8 orientasi berbeda, ditunjukkan sebagai D1, ..., D8 pada gambar 7.5,
meskipun disini hanya dua yang terhubung kuat yaitu D1 dan D8.
Dua digraf Dl dan D2 dikatakan isomorfik jika ada korespondensi satu-satu antara V(D1) dan
V(D2) dan juga korespondensi satu-satu antara E(D1) dan E(D2) sedemikian sehingga jika
busur e1 pada D1 pergi dari titik ul ke v1 maka busur yang sesuai e2 di D2 pergi dari titik u2 ke
titik v2 dimana u2 dan v2 adalah titik di D2 yang masing-masing sesuai
dengan ul dan v1. Sepasang korespondensi disebut isomorfisma (digraph).
Dapat dilihat dengan mudah bahwa, diantara orientasi K3 yang ditunjukkan pada Gambar 7.5,
D1 dan D5 isomorfik dengan korespondensi titik yang sesuai yang diberikan oleh
4
Sedangkan D2, D3, ..., D7 semuanya isomorfik satu sama lain. Misalnya untuk D2 dan D6
korespondensi titik adalah
Komponen kuat S dari digraf D adalah subdigraf D yang terhubung kuat dan bukan subdigraf
yang tepat dari subdigraf D yang lain yang terhubung kuat.
Gagasan ini sesuai dengan komponen yang terhubung dalam graf. Menggunakan argumen
serupa dengan yang digunakan untuk graf, dapat ditunjukkan bahwa jika titik u adalah
komponen kuat S dari digraf D maka S terdiri dari semua titik v dari D sedemikian sehingga v
dapat dicapai dari u dan u dapat dicapai dari v bersama-sama dengan semua busur di D yang
bergabung dengan titik tersebut. Gambar 7.6 menunjukkan digraf D dan keempat
komponennya yang kuat.
Sebuah digraf D disebut sederhana jika, untuk sepasang titik u dan v dari D, paling banyak
ada sebuah busur dari u ke v dan tidak ada busur dari u ke dirinya sendiri.
Sebagai contoh, digraf D dari Gambar 7.2 tidak sederhana namun dari Gambar 7.4 adalah
sederhana.
5
7.2 Derajat Masuk dan Derajat Keluar
Misalkan v adalah sebuah titik pada graf D, titikderajat masuk id(v) dari v adalah jumlah dari
busur dari D yang mengarah ke v, jumlah busur yang menuju ke v. Demikian pula derajat
keluar od(v) dari v adalah jumlah busur di D yang memiliki ekor v, keluar dari v.
Gambar 7.13
id (v1 ) 0 id (v2 ) 3 id ( v 3 ) 1 id (v4 ) 1 id (v5 ) 1 od (v1 ) 1 od (v 2 ) 2
, , , , , sedangkan , ,
od (v3 ) 2 od (v 4 ) 1 od (v5 ) 0
, , .
Teorema 7.1: dipunyai D graph terhubung dengan n titik dan q busur. Jika {v1,...,vn} adalah
n n
id (v1 ) od (v1 ) q
i 1 i 1
himpunan titik di D maka
Bukti: Bila dalam derajat titik dijumlah, masing-masing busur dihitung dengan tepat sekali
n
id (v ) q
i 1
i
karena setiap busur menuju ke satu titik. maka . Dengan cara yang sama diperoleh
n
od (v ) q
i 1
i
Misalkan D adalah sebuah graf berarah terhubung lemah. Maka jejak euler berarah di D
adalah jejak terbuka berarah D yang memuat semua busur di D (sekali dan hanya sekali).
Tour berarah D adalah jejak tertutup berarah di D yang memuat semua busur di D (sekali dan
hanya sekali). Graf berarah D yang memuat tour euler berarah disebut graf euler berarah.
D1
Sebagai contoh, pada gambar 7.14, graf berarah adalah euler dengan tour euler berarah
a1 a 2 a3 a 4 a5 a6 a7 a8 a9 a10 a11
Sementara itu, meskipun graf berarah D2 bukan euler, namun mempunyai jejak euler
a1a 2 a3 a4 a5
6
Gambar 7.14
Teorema 7.2: D graf berarah yang terhubung lemah dengan lebih dari satu busur. Maka D
euler jika dan hanya jika od(v) = id(v) untuk setiap titik v di D.
Teorema 7.3: D graf berarah yang terhubung lemah yang terdiri lebih dari dua titik. Maka D
jejak euler berarah jika dan hanya jika D mempunyai dua titik u dan v sedemikian sehingga
od(u) = id(u) + 1 dan id(v) = od(v) + 1
Dan untuk semua titik w yang lain di D, od(w) = id(w), selanjutnya didalam kasus ini jejak
dimulai u dan diakhiri v.
Huruf dari = {0, ..., n 1} sedemikian rupa sehingga setiap kata w dengan panjang k dari
bisa ditulis dalam bentuk
w ai ai 1 ...ai k 1
i {0,..., t 1}. i t 1 k
yang unik (didalam kasus dimana bentuk ini diartikan dengan
ai ai 1 ...ai k t 1
,
a0 a1 ...at 1
maka berakibat barisan adalah cyclical).
7
Dn , k
himpunan semua kata dengan panjang k 1 dari huruf = {0, ..., n 1}, sehingga
n k 1
memiliki titik. Kami sekarang memperkenalkan busur dari setiap titik (kata) tersebut
b1b2 ...bk 1 b2 b3 ...bk
Ke setiap titik (kata) dari bentuk , (sehingga kita membatalkan dari istilah
pertama ekor busur dan tambahkan pada istilah terakhir yang baru untuk mendapatkan kepala
b1b2 ...bn nk
busur). Kami memberi label busur ini jelas oleh . Perhatikan bahwa ada busur
tersebut, dan itu masing-masing sesuai secara unik dengan urutan (n, k) de Bruijn.
Gambar 7.15
Gambar 7.16
Teorema 7.4 Untuk masing-masing pasangan bilangan bulat positif n dan k, keduanya lebih
Dn ,k
besar dari satu, diagram de Bruijn memiliki tur Euler berarah.
Untuk menggambarkan pembahasan di atas, kita membangun urutan (3,3) de Bruijn dengan
menggunakan Diagram de Bruijn pada Gambar 7.17. Dengan mudah memeriksa dari
D3,3
Gambar, Tur Euler berarah dari diberikan oleh barisan busur
200, 000, 001, 011, 111, 112, 122, 222 220,
8
202, 022, 221, 212, 121, 211, 110, 101, 010,
100, 002, 021, 210, 102, 020, 201, 012, 120.
Jadi, dengan mengambil istilah pertama dari busur ini pada gilirannya, kita mendapatkan
barisan de Bruijn
200011122202212110100210201.
Demikian pula, dengan menggunakan diagram de Bruijn pada Gambar 7.16, kita dapat
membuat (2, 3) barisan de Bruijn.
000 11 1 0 1.
7.3 Turnamen
Dengan kata lain, sebuah turnamen adalah digraf (berarah) tanpa loop di mana
setiap dua titik yang berbeda dihubungkan dengan tepat satu busur.
Jumlah turnamen non-isomorfik meningkat tajam sesuai dengan jumlah
titik. Sebagai contoh, hanya ada satu turnamen dengan tepat 1 titik dan hanya satu
dengan tepat 2 titik. Ada dua turnamen pada 3 titik, empat di 4 titik, 12 pada 5
titik. Namun ada lebih dari 9 juta pada 10 titik.
9
Gambar 7.20: The turnamen pada paling banyak empat titik.
Turnamen kurang dari lima titik ditunjukkan pada Gambar 7.20. Di sini, di turnamen
empat titik, T5 adalah satu-satunya dengan sikel berarah panjang 4, T6 adalah satu-
satunya dengan sikel berarah panjang 3 dan titik dari indegree 3, T7 adalah satu-satunya
dengan sikel berarah panjang 3 dan titik dari derajat keluar 3 dan T8 adalah satu-satunya
dengan tidak ada sikel berarah panjang 3.
Alasan untuk nama "turnamen" adalah bahwa digraf yang demikian dapat digunakan
untuk mencatat hasil-hasil pertandingan dalam suatu turnamen round-robin dalam
permainan apapun di mana hasil imbang tidak diperbolehkan, seperti tenis. Busur
dari a ke b kemudian menunjukkan bahwa a telah dikalahkan b.
10
dicapai dari v oleh lintasan berarah dengan panjang maksimum 2. Hal ini
menggambarkan hasil umum berikut:
Teorema 7.5 Misalkan v berupa titik yang memiliki derajat keluar maksimal dalam
turnamen T. Maka untuk setiap titik w dari T ada lintasan berarah dari v ke w dengan
panjang maksimum 2.
Bukti
v 1 , v 2 , ,um
Misal od (v) = m dan titik bergabung dengan busur dari v adalah
. Jika T memiliki n titik kemudian masing-masing tersisa n m 1 titik berdekatan
dengan v, karena T adalah sebuah turnamen, yaitu, untuk ini titik yang tersisa u j,
1 j nm1 ada busur dari u j ke v. (Lihat Gambar 7.22.)
dengan panjang 1 dari v ke vi. Tetap untuk menunjukkan bahwa ada lintasan berarah
panjang 2 dari v ke u untuk setiap j, 1 j nm1
j
maksimal dengan od (v) = m. Jadi setiap uj harus memiliki busur bergabung dari
beberapa v i dan bukti selesai dengan menggunakan jalur vv berarah i u j.
Teorema 7.5 memiliki interpretasi dalam turnamen round-robin. Misal w menjadi
pemenang dalam turnamen tersebut, yaitu, setiap pemain dengan kemenangan yang
paling mungkin ada lebih dari satu pemenang. Kemudian w telah dikalahkan hanya
oleh pemain yang dikalahkan oleh w sendiri.
11
Gambar 7.22: Titik v memiliki derajat keluar maksimal.
Misalkan T adalah turnamen n titik dan misalkan v adalah titik dari T. Kemudian T
v merupakan graf berarah yang diperoleh dari T dengan menghapus v dan semua busur
terhubung dengan v. Sekarang setiap dua titik dari T v bergabung dengan tepat satu
busur, karena dua titik ini dihubungkan dengan tepat satu busur di T. Oleh karena itu T
v juga sebuah turnamen. Properti dari turnamen ini digunakan di bukti teorema
berikutnya.
Sebuah lintasan berarah hamilton dari sebuah digraph D adalah sebuah lintasan
berarah di D yang memuat setiap titik dari D (sekali dan hanya sekali).
Teorema 7.6 (Redei, 1934) Setiap turnamen T memiliki lintasan Hamilton berarah.
Bukti Asumsikan bahwa T memiliki n titik. Jika n = 1, 2 atau 3 kita dapat dengan
mudah memeriksa dari Gambar 7.20 bahwa T memiliki lintasan Hamilton
berarah.Dengan demikian kita bisa mengasumsikan n 4 . Perbaiki n seperti itu dan
menganggap bahwa hasilnya adalah benar untuk semua turnamen pada n l
titik. Misal v menjadi titik dari T. Kemudian T v memiliki n 1 titik dan sebagainya,
karena dengan pernyataan di atas T v adalah sebuah turnamen, ada, oleh asumsi kami,
P=v 1 v 2 v n1
lintasan Hamilton berarah di T v. Misal menjadi lintasan tersebut.
adalah lintasan Hamilton berarah di T. Demikian pula, jika ada busur dari
vn-1 ke v maka
12
''
P =v 1 v 2 v n1 v
adalah lintasan Hamilton berarah di T. Dengan demikian, dalam kedua kasus ini, kita
selesai.
Oleh karena itu sekarang kita mungkin mengira bahwa tidak ada busur
dari v ke v1 dan tidak ada busur dari vn-1 ke v. Kemudian ada setidaknya satu titik w di
lintasan P dengan properti yang ada busur dari w ke v dan w tidak vn-
1 (karena v1 memiliki properti ini). Misal vi menjadi titik terakhir pada P memiliki
properti ini, sehingga titik berikutnya vi+1 tidak memiliki properti ini. Kemudian,
khususnya, ada busur dari vi ke v dan busur dari v ke vi+1, seperti yang diilustrasikan
pada Gambar 7.23. Tapi kemudian memberi kita lintasan Hamilton berarah di D. bukti
kami sekarang lengkap dengan induksi.
Gambar 7.23
Teorema 7.7 turnamen T terhubung kuat pada n titik berisi sikel berarah dengan
panjang 3,4,. . . , n.
Bukti pertama Kami menunjukkan bahwa T berisi sikel berarah panjang 3. Misalkan
v sebarang titik dari T. Misalkan W menyatakan himpunan semua titik w dari T yang
ada busur dari v ke w. Misalkan Z menyatakan himpunan semua titik z dari T yang ada
busur dari z ke v. (Perhatikan bahwa karena T adalah sebuah turnamen W Z = )
13
Gambar 7.24
Misalkan ada titik v, bukan pada sikel C, dengan properti yang ada busur dari v ke
vi dan busur dari vj ke v untuk beberapa vi, vj pada C. Kemudian harus ada titik vi pada C
dengan busur dari vi-1 ke v dan busur dari v ke v i. Kemudian
'
C =v 1 v 2 v i1 v vi vi +1 v k v 1
adalah sikel berarah panjang k + 1, yaitu, dari panjang yang diinginkan. (Lihat
Gambar 7.25.)
14
Gambar 7.25
Jika tidak ada titik ada dengan properti di atas, maka himpunan titik-titik tidak
terdapat dalam sikel dapat dibagi menjadi dua himpunan yang berbeda W dan Z, di
mana W adalah himpunan titik w sehingga untuk setiap i, 1 i k , ada busur
dari vi ke w, dan Z adalah himpunan titik z sehingga untuk setiap i, 1 i k , ada busur
dari z ke v,. Jika W kosong maka titik dari C dan titik dari Z bersama-sama membentuk
semua titik di T. Namun, dengan definisi Z tidak ada busur dari titik pada C ke titik di
Z, kontradiksi karena T terhubung kuat. Jadi W harus tidak kosong. Argumen yang
sama menunjukkan bahwa Z tidak kosong. Sekali lagi, karena T terhubung kuat, harus
' ' '
ada busur dari beberapa w' di W beberapa z' di Z. Kemudian C =v 1 w z v 3 v 4 v k v1
adalah sikel berarah panjang k + 1, yaitu, dari panjang yang dibutuhkan. (Lihat Gambar
7.26.) Buktinya sekarang lengkap dengan induksi.
Gambar 7.26
Akibat 7.8 (Camion, 1959) Sebuah turnamen T adalah Hamilton jika dan hanya jika
terhubung kuat.
15
Bukti Misalkan T memiliki n titik. Jika T adalah terhubung kuat kemudian, dengan
teorema, T harus memiliki sikel berarah panjang n. Sikel tersebut adalah sikel Hamilton
berarah karena mencakup setiap titik dari T. Oleh karena itu T adalah Hamilton.
Sebaliknya jika T adalah Hamilton dengan sikel Hamilton berarah
'
C =v 1 v 2 v n v 1 , maka diberi v v di himpunan titik dari T, jika i j kemudian
i, j
v j v j +1 vi
adalah lintasan berarah P1 dari vj ke vi,
v i v i+ 1 v n1 v n v 1 v j1 v j
sedangkan adalah lintasan berarah
P 2 dari vi untuk vj. (Lihat Gambar 7.27.) Dengan demikian setiap sudut dicapai dari
setiap titik lain dan begitu T terhubung kuat, seperti yang diperlukan.
Gambar 7.27
16
mana mungkin ada beberapa pemain pada setiap skor tertentu. Untuk membedakan
antara pemain seperti itu, kita selanjutnya mempertimbangkan nilai tingkat kedua
pemain. Berikut skor tingkat kedua pemain adalah jumlah nilai dari pemain dia
kalahkan.Urutan skor tingkat kedua mungkin masih menghasilkan ikatan sehingga kami
menghitung skor tingkat ketiga masing-masing pemain, yaitu, jumlah dari skor tingkat
kedua pemain dia kalahkan. Bahkan jika tidak ada ikatan terjadi di antara skor tingkat
kedua mungkin muncul untuk menjadi menata ulang tidak adil dari posisi relatif pemain
dan tingkat kedua urutan skor harus dihitung terpisah,
Kita sekarang melanjutkan proses, menemukan skor tingkat keempat, maka skor
tingkat kelima, dan seterusnya. Tapi ketika kita berhenti? Jawaban atas pertanyaan ini
terletak pada teori matriks. Menggunakan konvergensi matriks seseorang dapat
menunjukkan (tapi kami tidak akan) bahwa skor tingkat n menetap untuk pola tetap
setelah mengambil tingkat yang cukup tinggi disediakan turnamen tersebut terhubung
kuatdan memiliki setidaknya empat titik. Untuk keterangan lebih lanjut dan contoh
dikerjakan, kita merujuk pembaca untuk Bagian 10,7 dari Bondy dan Murty.
17
Jelas maka pertanyaan kita bertanya apakah graf G adalah berorientasi. Untuk
menentukan kapan grafik adalah berorientasi kita pertama mempertimbangkan grafik G
dari Gambar 7.28.
Gambar 7.28
Dalam setiap orientasi G sisi uv berorientasi baik dari u ke v atau dari v ke u. Jika
yang pertama maka tidak akan ada v - u jalan berarah dalam orientasi sementara jika
yang terakhir terjadi maka, sama, v tidak akan dicapai dari u. Jadi dalam hal apapun
orientasi tidak dapat terhubung kuat dan G tidak berorientasi.
Tentu saja alasan kita ditolak orientasi terhubung kuat di sini adalah karena
sisi uv adalah jembatan di G. Ternyata jembatan adalah kunci untuk Orientabilitas,
sebagai hasil berikut, karena Robbins [54], menunjukkan.
Teorema 7.9 (Robbins, 1939) Sebuah graf G adalah berorientasi jika dan hanya jika
terhubung dan tidak memiliki jembatan.
Bukti Jelas jika G tidak terhubung orientasi itu telah ada terhubung kuat. Apalagi
jika G memiliki sebuah jembatan e = uv, kemudian, sebagai argumen di atas
menunjukkan, dalam setiap orientasi G baik u tidak dapat dijangkau dari v atau
sebaliknya. Hal ini menunjukkan bahwa jika G adalah berorientasi maka G terhubung
dan tidak memiliki jembatan.
Sebaliknya, misalkan G terhubung dan tidak memiliki jembatan. Setiap subgraf
diinduksi oleh titik v tunggal G adalah berorientasi, karena jika ada insiden loop dengan
v kemudian mengubah mereka untuk busur menghasilkan digraph terhubung kuat
dengan v sebagai satu-satunya titik. Karena ini menunjukkan bahwa G tidak memiliki
titik diinduksi subgraf berorientasi kita sekarang dapat memilih kemungkinan terbesar
bagian U dari himpunan titik V dari G sehingga diinduksi subgraf H = G[U] adalah
berorientasi. Jika H = G kemudian, tentu saja, G adalah berorientasi dan tujuan kita
tercapai.
18
Jadi kita yang tersisa untuk menangani kasus ketika H G , yaitu, U V
. Dalam hal ini kita pilih, u E U , v U dan, karena H adalah berorientasi, kita
dapat mengarahkan sisi H untuk mendapatkan sebuah digraph terhubung kuat D. Sejak
G terhubung dan tidak memiliki jembatan itu mengikuti dari Latihan 7.4.3 (lihat juga
Teorema 8.7 dari bab berikutnya) bahwa ada dua jalur sisi-disjoint dari u ke v di G
mengatakan
P=u 0 u1 um1 v P' =v 0 v 1 v n1 v
dan
u0=v 0=u ui P
dimana. Karena, u H tetapi VH ada titik yang
merupakan titik terakhir di P milik H dan ada titik yang merupakan titik pertama
dalam P' milik H. Sekarang misal Q dan Q' menjadi bagian-bagian dari P dan P' yang
mulai ui dan vj masing-masing, yaitu,
Q=ui ui+ 1 um 1 v Q' =v j v j+1 v n1 v
dan
ui ui+1 ui+1 ui+2
Mengorientasikan sisi di Q dari ke dari ke , dan seterusnya
v n1 v n1 v n2
dan mengorientasikan sisi di Q' dari v ke , dari ke dan
sebagainya (sehingga sisi Q' berorientasi secara terbalik ke arah lintasan). Kami
menggambarkan ini dalam Gambar 7.29.
Gambar 7.29
Sekarang D' menjadi digraf dengan himpunan titik U bersama-sama dengan semua
titik dari Q dan Q' dan dengan himpunan busur D bersama-sama dengan mereka busur
yang baru saja kita didefinisikan pada Q dan Q'. Kemudian, karena D terhubung kuat
dan jalan berarah Q merangkai dengan kebalikan dari Q' untuk memberikan jalan
berarah dari ui ke vj mengikuti dengan mudah D' yang terhubung kuat.
Namun, D' memiliki setidaknya satu titik dari D memiliki, yaitu v, dan jadi ini
bertentangan pilihan kami untuk U sebagai bagian yang mungkin terbesar dari titik dari
G yang menginduksi subgraph berorientasi. Kontradiksi ini menunjukkan bahwa H =
G.
19
Kami kini hadir sebuah algoritma karena JE Hopcroft dan R. Tarjan [35] yang
menghasilkan orientasi terhubung kuat untuk graf terhubung tanpa jembatan. Algoritma
ini tidak didasarkan pada bukti di atas dan kami meninggalkan pembenaran untuk
Latihan 7.4.5. Ini menggunakan teknik pelabelan.
Ganti L oleh L {u} dan U oleh U - {u} (karena u baru saja diberi label).
Beri orientasi (arah) sisi vu dari v ke u dan mengganti A dengan
A {( v ,u)} (karena sekarang ada busur baru dari v ke u). (Perhatikan
bahwa, dalam proses ini, setiap busur baru dari A pergi dari titik berlabel untuk
satu dengan label yang lebih tinggi.)
Langkah 3. Jika L V (G) ,, ulangi langkah 2.
Langkah 4. (Ketika kita mencapai langkah ini kita harus memiliki L = V(G), yaitu,
setiap titik dari G telah diberi label. Himpunan busur A membangun pohon
rentang dari G dan satu dapat menunjukkan bahwa sisi dari G belum
berorientasi menghubungkan dua titik dengan nilai label yang berbeda.)
Untuk setiap xy sisi G belum berorientasi, jika (x )> ( y ) maka orientasi
xy dari z ke y. (Sejak, seperti dicatat, label z dan y berbeda, ini selalu akan
menghasilkan berorientasi dari sisi xy .)
Ini melengkapi orientasi G.
Kita sekarang menggambarkan algoritma dengan graf G terhubung tidak
berjembatan dari Gambar 7.30.
20
Langkah 1. Pilih v 1 sebagai titik pertama dalam proses pelabelan. Jadi kita tulis
( v1 ) =1 , L= { v 1 } , U=V (G){v 1 } dan A
v 2 U N ( v 1) (Kemungkinan v7
Langkah 2. Pilih lain adalah ) tulis
( v 2 ) = ( v 1 ) +1=2
v7 ( v 3 ) = ( v 2 ) +1=3
) tulis
v2 v3 v2 v3
Beri arah sisi dari ke sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) } .
v 4 U N (v 3 ) . . (Kemungkinan pilihan lainnya adalah v5
Langkah 2. Pilih
v6
dan )
( v 4 )= ( v 3 ) +1=4
tulis
21
v3 v4 v3 v4
Beri arah sisi dari ke sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) } .
Pada tahap ini kami (tidak lengkap) orientasi G adalah seperti yang ditunjukkan pada
Gambar 7.31, bersama-sama dengan label untuk titik dari G.
22
Gambar 7.31: Orientasi sebagian dari graf G dari Gambar 7.28.
23
Gambar 8.1: Sebuah jaringan ekspor jam buah kiwi
Produsen tersebut ingin menemukan jumlah maksimum kotak yang dapat dikirim melalui
saluran x, y dan z sehingga tidak pernah melebihi kapasitas yang diizinkan setiap saluran.
Definisi diatas dapat diikuti dengan pernyataan bahwa setiap busur yang terkait
dengan titik sumber s pergi dari s ke titik lain dan setiap busur yang terkait dengan titik tujuan
t pergi dari beberapa titik ke t. kemudian dapat diasumsikan bahwa setiap jaringan N
memiliki tepat satu sumber dan tepat satu tujuan.
Titik sumber dari suatu jaringan dapat dianggap sebagai produsen dan tujuan sebagai
pasar. Titik antara mewakili saluran, sementara kapasitas pada setiap busur adalah jumlah
maksimum barang yang dapat dikirim dari ekor suatu busur ke kepala busur. Pada gambar 8.1
hanya s titik dengan derajat masuk = 0 yang merupakan titik sumber dan dengan cara yang
sama t adalah titik tujuan.
Misalkan N sebuah jaringan dengan titik sumber s dan titik tujuan t. Jika u adalah
sebuah titik pada N, maka himpunan semua busur N yang menuju ke titik u dilambangkan
dengan I(u) dan himpunan semua busur yang keluar dari titik u (meninggalkan titik u)
dilambangkan dengan O(u).
24
f ( a ) f (a )
aO ( s ) aI ( t )
ii. ; (disebut nilai flow)
f (a ) f ( a )
aO ( x ) aI ( x )
iii. untuk setiap titik antara x; (disebut konservasi flow)
Catatan:
Syarat (i) menyatakan bahwa flow pada setiap busur N tidak pernah melebihi kapasitas busur
tersebut.
Syarat (ii) menyatakan bahwa total flow yang keluar dari titik sumber s sama dengan total
flow yang sampai di titik tujuan t.
Syarat (iii) menyatakan bahwa untuk setiap titik antara pada N berlaku total flow yang
meninggalkan titik x sama dengan total flow yang menuju titik x.
Sebagai contoh, gambar 8.2 berikut menunjukkan sebuah flow untuk jaringan pada gambar
8.1.
Bilangan d dimana s adalah titik sumber dan t adalah titik tujuan, disebut nilai flow.
25
Misalkan f adalah sebuah flow pada jaringan N = (V, A) dan X adalah himpunan bagian dari
X
himpunan titik V pada N dan menyatakan komplemen dari X pada V, misalnya,
X V X.
Jika X mengandung titik sumber s namun tidak mengandung titik tujuan t, maka secara
intuitif kita akan memperkirakan net flow dari titik pada X ke titik yang tidak terdapat pada X,
X
yaitu, , sama dengan nilai flow d. Hal ini akan digambarkan dengan jaringan pada Gambar
8.3 di mana angka pertama menyatakan kapasitas setiap busur a yaitu c(a), sedangkan angka
yang kedua menyatakan flow dari a yaitu f(a).
X
Misalkan X = {s, u, x} sehingga = {v, w, t}. Kemudian busur-busur dari titik-titik
X X
di X ke titik-titik di adalah uv, sw, dan xt dimana hanya satu busur dari titik-titik di ke
X
titik-titik di X, yaitu wx. Kemudian, net flow dari titik-titik di X ke titik-titik di adalah:
yang mana merupakan nilai dari flow f. (nilai dari flow diberikan oleh f(su) + f(sw) = 3 + 1,
atau dengan cara lain nilai flow f diberikan oleh f(vt) + f(xt) = 0 + 4.)
X
kemudian, net flow juga dapat diperoleh dari sembarang subset X ke yang tidak melebihi
X
kapasitas dari busur X ke , yang merupakan jumlah dari kapasitas setiap busur yang
X
meninggalkan sebuah titik di X ke sebuah titik di . Misalkan jaringan pada gambar 3,
X
kapasitas busur-busur dari X ke adalah
26
Ide-ide sebelumnya diperumum dalam hasil di bawah ini. Sebelumnya akan dijelaskan
beberapa notasi, yaitu:
Jika X dan Y adalah sembarang dua subset dari titik-titik pada jaringan N, maka A(X, Y)
X
adalah himpunan dari busur-busur dari titik-titik di X ke titik-titik di .
Jika g adalah sembarang fungsi yang memetakan bilangan bulat non negatif ke busur-busur
pada jaringan N (sebagai contoh, g dapat berupa kapasitas fungsi c atau sebuah flow f), maka
untuk sembarang dua subset dari titik-titik X, Y pada N, didefinisikan
Dengan kata lain, g(X, Y) adalah jumlah dari nilai fungsi g pada setiap busur dari sebuah titik
X
di X ke sebuah titik di .
X X
Pada gambar 8.3, subset X = {s, u, x} dan = {v, w, t}, maka A(X, ) adalah sebuah
pemutus dan untuk kapasitas fungsi c,
Teorema 8.1.
X
Misalkan f adalah sebuah flow pada jaringan N = (V, A) dengan nilai flow d. Jika A(X, )
adalah sebuah pemutus di N, maka
dan
Dengan kata lain, total flow keluar dari X dikurangi total flow masuk ke X misalkan net fow
keluar dari X, sama dengan nilai flow d dan total flow ini tidak pernah melebihi kapasitas total
X
busur dari X ke .
Bukti.
27
Dari definisi flow, untuk titik sumber s diperoleh
atau
X
Sehingga untuk suatu pemutus A(X, ), diperoleh
atau
Sementara itu
Kemudian
Selanjutnya karena nilai flow pada setiap busur N tidak melebihi kapasitas busur maka
sehingga
Memberikan .
Bagian kedua dari teorema memberitahukan bahwa nilai flow apapun kurang dari atau
sama dengan kapasitas busur dari X ke X untuk pemutus A(X, X ). Jadi, jika f adalah
flow dengan nilai d, maka
28
disebut sebuah flow maksimum.
X
Pada jaringan pada gambar 8.3, jika A(X, ) adalah sebuah pemutus maka s harus terdapat
X X
pada X dan t di dan setiap titik antara u, v, w, dan x dapat berada pada X atau .
Banyaknya pemutus pada jaringan sama dengan banyaknya himpunan bagian dari himpunan
titik antara yaitu 2n dengan n adalah banyaknya anggota himpunan titik antara. Jadi
banyaknya pemutus pada jaringan pada gambar 8.3 adalah 24 = 16 yaitu:
1. A ({s}, {u, v, w, x, t} = {(s, u), (s, w)}
2. A ({s, u}, {v, w, x, t}) = {(s, w), (u, x), (u, v)}
3. A ({s, v}, {u, w, x, t}) = {(s, u), (s, w), (w, v), (v, t)}
4. A ({s, w}, {u, v, x, t}) = {(s, u), (w, v), (w, x)}
5. A ({s, x}, {u, v, w, t}) = {(s, u), (s, w), (x, t)}
6. A ({s, u, v}, {w, x, t}) = {(s, w), (u, x), (v, t)}
7. A ({s, u, w}, {v, x, t}) = {(u, v), (u, x), (w, v), (w, x)}
8. A ({s, u, x}, {v, w, t}) = {(s, w), (u, v), (x, t)}
9. A ({s, v, w}, {u, x, t}) = {(s, u), (v, t), (w, x), (w, v)}
10. A ({s, v, x}, {u, w, t} = {(s, u), (s, w), (v, t), (x, t)}
11. A ({s, w, x}, {u, v, t}) = {(s, u), (w, v), (x, t)}
12. A ({s, u, v, w}, {x, t}) = {(u, x), (v, t), (w, x)}
13. A ({s, u, v, x}, {w, t}) = {(s, w), (v, t), (x, t)}
14. A ({s, u, w, x}, {v, t}) = {(u, v), (w, v), (x, t)}
15. A ({s, v, w, x}, {u, t}) = {(s, u), (v, t), (x, t)}
16. A ({s, u, v, w, x}, {t} = {(v, t), (x, t)}
X X
Setiap pemutus A(X, ) pada jaringan N mempunyai kapasitas pemutus A(X, ) yang
mempunyai kapasitas terkecil disebut pemutus minimum. Pemutus minimum pada jaringan N
yaitu A ({s, u, w, x}, {v, t}) dengan kapasitas c(u, v) + c(w, v) + c(x, t) = 2 + 1 + 4 = 7.
Berdasarkan teorema 8.1, maka setiap flow pada jaringan memiliki nilai flow paling banyak 7.
Teorema 8.1 menjamin bahwa nilai sembarang flow pada suatu jaringan N dari titik
X
sumber s ke titik tujuan t tidak akan melebihi kapasitas sembarang pemutus A(X, ) pada N.
Jadi sebesar-besarnya nilai flow tidak akan melebihi sekecil-kecilnya nilai kapsitas pemutus
X
A(X, ). Jadi jika terdapat sebuah flow f di N yang nilainya sama dengan kapasitas suatu
X X
pemutus A(X, ), maka flow f tersebut adalah flow maksimum dan pemutus A(X, )
tersebut adalah sebuah pemutus minimum.
Sebagai contoh, gambar berikut menunjukkan flow f pada jaringan N
29
Gambar 8.4: Flow f
Berdasarkan gambar 8.4, akan dibangun suatu flow maksimum pada jaringan N. Flow
f pada gambar 8.4 bukan merupakan flow maksimum karena nilai flow pada busur su, uv, vt
dapat dinaikkan 1 dan masih tetap dalam kapasitas busur tersebut. Sehingga diperoleh flow f1
yaitu
Nilai flow baru ini adalah 4 + 1 = 5, satu lagi dari nilai f. Demikian juga f1
dapat ditingkatkan karena flow pada jalan berarah s w v t tidak maksimal tetapi
dapat ditingkatkan dengan 1 dengan meningkatkan flow pada masing-masing busur sw, wv
dan vt dengan 1.
Hal ini memberikan flow baru f2, yang ditunjukkan pada Gambar 8.6, dengan nilai 4 + 2 = 6.
30
flow dapat ditingkatkan dengan beberapa jenis penyesuaian lainnya. Bahkan, jika flow pada
sw, wx, uv dan vt ditingkatkan masing-masing dengan 1 dan mengurangi flow pada ux dengan
1, didapatkan flow baru f3, yang ditunjukkan pada Gambar 8.7, dengan nilai 3 + 4 = 7. Selain
itu, karena ada pemutus dengan kapasitas 7, f3 adalah flow maksimum.
Hal ini dapat dicatat, bahwa setiap penyesuaian yang dibuat dalam proses yang
dilakukan mendapatkan f3 sebenarnya memberikan flow menurut definisi:
jika flow dari busur ditingkatkan ke sebuah titik antara z maka dapat dibuat peningkatan
serupa pada busur dari z atau sesuai penurunan pada busur lain ke z, sehingga konservasi flow
itu dipertahankan, sementara peningkatan flow dari sumber s diimbangi dengan peningkatan
flow ke titik tujuan t, sehingga kondisi (ii) dari definisi flow itu juga dipenuhi.
Hasil utama dari bab ini, bahwa untuk jaringan apapun selalu ada flow maksimum.
Selanjutnya bukti hasilnya menghasilkan suatu algoritma yang membangun flow maksimum.
Sebelum dinyatakan dan dibuktikan, akan diperkenalkan beberapa terminologi
Diberikan sembarang lintasan W = v0v1 ... vk dalam graf G dari jaringan N, maka maka busur
terkait di N adalah salah satu bentuk dari Vi-1 Vi atau bentuk Vi Vi-1. Sebuah busur dari bentuk
pertama disebut busur maju dari W sementara bentuk kedua disebut busur kebalikan dari W.
Jika f adalah flow di N dikaitkan dengan lintasan W, dalam graf G, bilangan bulat non-negatif
i(W), disebut increment W, yang didefinisikan oleh i(W) = min {i(a): a adalah sebuah busur
yang berhubungan dengan W},
dimana
Sebagai contoh, untuk flow f pada jaringan N dari Gambar 8.4, ditunjukkan lagi pada Gambar
8.8, lintasan W = s w x u v memiliki busur maju sw, wx dan uv sedangkan sisanya terkait
busur xu adalah busur kebalikan dari W. Jadi
Jadi
31
Gambar 8.8: Flow f dari gambar 8.4
Jumlah i(W) adalah yang terbesar dimana flow f sepanjang W dapat ditingkatkan
tunduk pada kendala kapasitas. Sebagai contoh, untuk W = s w x u v di atas, flow pada pada
sw, wx dan uv dapat ditingkatkan oleh 1 dan membuat penurunan 1 pada busur xu (dan ini
memberikan peningkatan terbesar mungkin pada W). (Lihat Gambar 8.9.)
Lintasan W dikatakan f-saturated jika i(W) = 0 dan f-unsaturated jika i(W) > 0.
Ini berarti bahwa lintasan f-unsaturated adalah lintasan yang tidak digunakan untuk kapasitas
penuh lintasan tersebut. Jadi, misalnya, lintasan W = s w x u v di atas adalah f-unsaturated.
Sebuah jalan f-incrementing adalah jalan f-unsaturated yang bermula di sumber s dan
berakhir di tujuan t.
Teorema 8.2
(The Max-Flow, Min-Cut Theorem)
Misal N adalah jaringan dengan fungsi kapasitas c, maka terdapat flow maksimum di N. atau
dengan kata lain, terdapat flow f di N dengan nilai,
min c X , X : A X , X adalah sebuah cut
Bukti
Berdasarkan Teorema 8.1 bahwa untuk setiap flow f di N dengan nilai d, dipunyai
32
Diberikan sembarang flow f, misalkan X adalah himpunan titik z di N sedemikian sehingga z
= s atau dalam graf dasar G dari N yang terdapat sebuah lintasan f-unsaturated W = v0 ... vk
dari s ke z (jadi s = v0, z = vk).
Jadi, misalnya N pada gambar 8, himpunan X terdiri dari:
s, titik sumber,
u, karena, untuk lintasan W = su, i(W) = i(su) = c(su) - f(su) = 4 - 3> 0,
w, karena, untuk lintasan W = sw, i(W) = i(sw) = c(sw) - f(sw) = 5 -1> 0,
v, karena, untuk lintasan W = suv,
Sekarang, kembali ke bukti, baik titik tujuan t adalah di X atau itu di X . Mari, misalkan
pertama yang t ada di X. Kemudian harus ada lintasan f-unsaturated W dari s ke t, yaitu,
sebuah lintasan f-increment. Pilih sebuah lintasan W dan misalkan
Sedemikian sehingga
Dengan demikian, dalam contoh, ambil W sebagai suvt, sehingga
Sekarang didefinisikan sebuah fungsi baru f1 pada busur a di N dengan
Flow baru ini f1 disebut flow yang direvisi berdasarkan lintasan i-incrementing W.
Dalam contoh, f1 sebenarnya flow f1yang diberikan pada Gambar 5 yaitu
33
dan nilai flow baru f1 ini adalah d + = 4 + 1 = 5.
Prosedur meningkatkan flow ini adalah selalu mungkin disediakan titik tujuan t pada
himpunan X. Dengan demikian proses dapat diulangi, semakin merevisi flow berdasarkan
lintasan incrementing sampai mencapai tahap ketika t tidak berada di himpunan X. terkait
Pada tahap ini, tidak ada lagi sebuah lintasan incrementing tersedia. Juga, karena t bukan
X
anggota X, A(X, ) adalah pemutus.
Jadi X = V, sebagai f.
Dan untuk setiap busur lain a, f2 (a) = f1 (a). F2 adalah flow f2 yang diberikan pada gambar 8.6.
Himpunan X terkait dengan f2. Pada gambar 8.6, terdiri dari titik-titik:
s, titik sumber
w, karena, lintasan W = sw,
x, karena lintasan W = swx,
34
v, karena lintasan W = swxu
Jadi X = V.
dan f3(a) = f2(a) untuk semua busur a lainnya. Bahkan, f3 hanya flow f3 yang diberikan pada
Gambar 8.7. Sehingga ditemukan himpunan X. Himpunan ini terdiri dari (lihat Gambar 8.7)
titik:
s, titik sumber,
w, karena, lintasan W = sw, i(W) = i(sw) = c(sw) - f3(sw) = 5 3 > 0, dan tidak ada titik lain
karena semua kejadian busur lain dengan s atau w pergi dari s atau w untuk titik lain dan nilai
flow saat ini sama dengan nilai kapasitas flow, yaitu, X = {s, w}. karena t bukan anggota X.
A (X, X ) adalah pemutus.
Sementara itu, di bukti Teorema, juga dicapai suatu flow, yang telah mengaitkan himpunan X
dengan t X.
Maka A(X, X ) adalah pemutus. Sekarang jika titik x ada di X kemudian, dengan definisi
X,
ada lintasan f'-unsaturated W = V0...Vk dari titik sumber s ke x, (sehingga s = v0
dan vk = x). Misalkan y adalah titik tidak di X, yaitu, y X . Kemudian, jika ada
sebuah busur
xy dari x ke y yang memenuhi f'(xy) < c(xy), lintasan W1 = v0 ... vky dari s ke y akan
juga f-unsaturated, yang menyiratkan bahwa y adalah di X, tidak X , terjadi kontradiksi.
Demikian pula, jika ada busur yx dari y ke x yang memenuhi f'(yx) > 0 maka lintasan W2 =
35
v0 ... vky dari s ke y akan menjadi f-unsaturated, juga memberikan kontradiksi. Dengan
X
demikian setiap busur bentuk xy dimana x X dan y harus memiliki f'(xy) =
Sekarang, jika ada nilai d, kemudian, karena A(X, X ) pemotong, berdasarkan Teorema 1,
Jadi d = c(X, X 0 = c(X, X ). Dengan kata lain, nilai flow f sama dengan
kapasitas dari pemotong A(X, X ). Oleh karena itu, f' adalah flow maksimum.
Dalam contoh, f = f3 dan himpunan X ditemukan {s, w}. Busur dari X ke X , yaitu A(X,
Definisi:
Sebuah pohon f-unsaturated pada jaringan N (dengan memperhatikan flow f) adalah sub-
pohon T pada graph G yang bersesuaian dengan N, sedemikian hingga
i. Titik sumber s adalah sebuah titik pada T
ii. Untuk setiap titik v pada T jalan tunggal s-v di T adalah lintasan f-unsaturated
36
Pada Gambar 8.11 merupakan contoh pohon f-unsaturated yang ditunjukkan oleh sisi
berbayang.
Urutan arus dari peningkatan nilai yang dibangun menggunakan lintasan f-increment,
yang ditemukan dengan penumbuhan pohon f-unsaturated.
Dengan konstruksi ini pohon T akan tumbuh sampai titik tujuan t atau berhenti sebelum
mencapai t. Jika pohon T tumbuh hingga mencapai t, maka dikatakan mempunyai pemecahan
dan jalan s t pada pohon T adalah jalan f-increment. Sedangkan bila pohon T berhenti
sebelum mencapai t, maka, berdasarkan teorema sebelumnya, flow f adalah flow maksimum.
Teknik pelabelan dilakukan dengan cara melabeli titik-titik dari f-unsaturated, pohon T.
v i Pv Pv
Untuk setiap titik v dari T dilabeli dengan adalah jalan tunggal pada T dari
titik sumber s ke titik tujuan t. Keuntungan dari metode labeling ini ketika pemecahan terjadi,
tidak hanya kita mendapatkan jalan f-increment Pt dari s ke t. Tapi juga kita mendapatkan
t i Pt
. Nilai tersebut kita gunakan sebagai dasar untuk merevisi flow yang ada.
s
Teknik pelabelan dimulai dengan memberi label pada sumber s. Pelabelan
diteruskan dengan aturan sebagai berikut:
1) Jika ekor busur a sudah dilabeli dan kepalanya belum, (atau jika panahnya berarah
dari sumber s), maka titik v tersebut dilabeli
37
v min u , c a f a
2) Jika kepala dari busur a sudah dilabeli dan ekornya belum (atau jika panahnya
berarah menuju sumber), maka titik v dilabeli
v min u , f a
Langkah-langkah algoritma:
f xy 0
1. Untuk setiap busur xy di N, himpunan
A' A'
2. Himpunan .( adalah himpunan busur pada pohon unsaturated T)
s
Untuk sumber s pada N , himpunan
L s
Himpunan (L adalah himpunan titik yang dilabeli)
S
Himpunan (S adalah himpunan titik di L yang telah diperiksa)
c xy f xy
3. Misal F adalah himpunan busur xy di N sehingga . Terdiri atas busur
maju).
f xy 0
Misal R adalah himpunan busur xy di N sehingga . ( R terdiri dari busur
mundur)
LS
4. Jika , maka menuju langkah 10
x L S
5. Pilih
yL xy F A ' xy
6. Jika tidak terdapat sehingga dan himpunan busur menginduksi
(induce) pohon dibawahnya, maka menuju ke langkah 7
yL xy F A ' xy
Jika terdapat sehingga dan himpunan busur menginduksi
(induce) pohon dibawahnya, maka labeli y dengan
y min x , c xy f xy
A' A ' xy L L y
Ganti dengan dan dengan
Ulangi langkah ini
yL yx R A ' yx
7. Jika tidak terdapat sehingga dan himpunan busur meninduksi
pohon dibawahnya maka menuju langkah 8
Jika tidak, labeli y dengan
y min x , f yx
38
A' A ' yx L L y
Ganti dengan dan dengan
Ulangi langkah ini
S S x tL
8. Ganti dengan . Jika kembali ke langkah 4
9. (saat mencapai langkah ini titik tujuan t telah dilabeli, dengan kata lain kita telah
membuat pemecahan)
Menggunakan prosedur backtracking, identifikasi lintasan naik W dari s ke t di N
f a f a t
menggunakan busurdari A dan untuk setiap a di W, ubah menjadi
aF f a t aR
jika dan menjadi jika .
Kembali kelangkah 2
10. (saat mencapai langkah ini saat semua titik yang dilabel telah diperiksa dan tidak ada
breakthrough)
f xy
Nilai pada setiap busur xy di N menunjukkan flow maksimum di N dan
himpunan titik di L menunjukkan pemutus minimum.
Algoritma ini digambarkan pada gambar 8.12 8.16 berikut menggunakan jaringan dari
Gambar 8.11, dimulai dengan flow f yang diberikan (bukan flow nol seperti yang digunakan
dalam
algoritma). Pada setiap tahap, pohon f-unsaturated ditampilkan dengan sisi berbayang, sisi
yang diamati digambarkan dalam titik putih dan pelabelan ditampilkan di bawah diagram.
Untuk menghemat ruang, daftar langkah-langkah spesifik dari algoritma yang digunakan
dihilangkan, dan juga merekam perubahan pada himpunan A', L, dan S.
39
Gambar 8.12
40
Gambar 8.13
41
Gambar 8.14
42
Gambar 8.15
Diagram berikut adalah diagram terakhir karena, di tahap berikutnya, semua titik berlabel
telah teramati, yaitu, s, w dan x, tidak memberikan titik berlabel baru. Karena semua titik
berlabel telah teramati, yaitu, L = S dalam terminologi algoritma, dan tidak memiliki
breakthrough, flow yang ditunjukkan dalam diagram terakhir ini adalah flow maksimum. Ini
memiliki nilai f(sz) + f(sw) = 4 + 3 = 7. Selain itu himpunan X = {s, w, x} dari titik berlabel
memberikan pemutus minimum A(X, X ), dengan kapasitas diberikan oleh c(sz) + c(wz) +
c(xy) = 4 + 1 + 2 = 7, yang merupakan nilai flow ini (seperti yang diharapkan).
Gambar 8.16
43