Anda di halaman 1dari 42

BAB 7

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.

Gambar 7.1: Sebuah diagram kesukaan

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.
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.

Gambar 7.2: Sebuah digraf

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.

Gambar 7.3: Graf dasar dari digraf D pada gambar 7.2


Banyak dari definisi pada graf yang dapat disamakan untuk digraf. Beberapa diantaranya

Misalkan D sebuah digraf. Kemudian sebuah jalan di D adalah barisan berhingga

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

Adalah lintasan berarah, sementara

Adalah sikel berarah.

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.

Contoh D pada gambar 7.2 adalah terhubung lemah.


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.

Gambar 7.4: Sebuah digraf 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).

Gambar 7.5: Delapan orientasi dari K3.

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
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.

Gambar 7.6: Sebuah digraf dan ada komponen kuat.


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
, , , , , sedangkan ,
id( v1 )=0 id( v 2 )=3 id( v3 )=1 id( v 4 )=1 id( v5 )=1 od (v 1 )=1
, , , .
od (v 2 )=2 od (v 3 )=2 od (v 4 )=1 od (v 5 )=0

Teorema 7.1: dipunyai D graph terhubung dengan n titik dan q busur. Jika {v1,...,vn} adalah
himpunan simpul di D maka
n n
id( v 1 )= od (v 1 )= q
i=1 i=1

Bukti: Bila dalam derajat titik dijumlah, masing-masing busur dihitung dengan tepat sekali

karena setiap busur menuju ke satu titik. maka n . Dengan cara yang sama
id( v i )= q
i=1

diperoleh n
od( v i )= q
i=1

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.

Sebagai contoh, pada gambar 7.14, graf berarah adalah euler dengan tour euler berarah
D1
a1 a2 a3 a4 a5 a6 a 7 a8 a9 a10 a 11
Sementara itu, meskipun graf berarah D2 bukan euler, namun mempunyai jejak euler
a1 a2 a3 a4 a5
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.

Sebuah (n, k) barisan Bruijn adalah barisan


a0 a1 ...at1
Huruf dari = {0, ..., n 1} sedemikian rupa sehingga setiap kata w dengan panjang k dari
bisa ditulis dalam bentuk
w=ai ai+1 ...a i+k1
yang unik (didalam kasus dimana bentuk ini diartikan dengan
i{0,. .. ,t1}. it1k
,
ai a i+1 ...ai+kt1
maka berakibat barisan adalah cyclical).
a0 a1 ...at1

Contoh, perhatikan abjad kasus n = 2, jadi = {0, I}. Lalu urutan


10001110
urutan (2, 3) de Bruijn. Untuk melihat ini, ambil bagian dari tiga huruf berturut-turut
dari urutan, mulai dari awal (dan berjalan ke atas mulai lagi untuk dua kata
ai a i+1 ...ai+k1
terakhir). Semua menghasilkan kata berbeda dengan panjang 3 dari yaitu:
23 =8
100,000,001,011,111,110,101,010.
Kami sekarang mengasosiasikan suatu urutan (n, k) de Bruijn urutan digraph , yang
Dn ,k
disebut Diagram de Bruijn atau diagram yang bagus. Himpunan titik v dari
Dn ,k
didefinisikan himpunan semua kata dengan panjang k 1 dari huruf = {0, ..., n 1},
sehingga memiliki titik. Kami sekarang memperkenalkan busur dari setiap titik
Dn ,k nk1
(kata) tersebut Ke setiap titik (kata) dari bentuk , (sehingga kita
b1 b 2 ...bk1 b2 b 3 ...bk
membatalkan dari istilah pertama ekor busur dan tambahkan pada istilah terakhir yang baru
untuk mendapatkan kepala busur). Kami memberi label busur ini jelas oleh .
b1 b 2 ...bn
Perhatikan bahwa ada busur tersebut, dan itu masing-masing sesuai secara unik dengan
nk
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
besar dari satu, diagram de Bruijn memiliki tur Euler berarah.
Dn,k
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
Gambar, Tur Euler berarah dari diberikan oleh barisan busur
D3,3
200, 000, 001, 011, 111, 112, 122, 222 220,
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 simpul yang berbeda dihubungkan dengan tepat satu busur.
Jumlah turnamen non-isomorfik meningkat tajam sesuai dengan jumlah
simpul. Sebagai contoh, hanya ada satu turnamen dengan tepat 1 simpul dan hanya satu
dengan tepat 2 simpul. Ada dua turnamen pada 3 simpul, empat di 4 simpul, 12 pada 5
simpul. Namun ada lebih dari 9 juta pada 10 simpul.
Gambar 7.20: The turnamen pada paling banyak empat simpul.

Turnamen kurang dari lima simpul ditunjukkan pada Gambar 7.20. Di sini, di
turnamen empat simpul, 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.

Gambar 7.21: Sebuah turnamen pada lima simpul.

Misalnya, dalam digraph Gambar 7.21 mewakili turnamen round-robin, v telah


dikalahkan setiap pesaing lainnya, y telah kehilangan setiap pertandingan, masing-
masing pesaing lain telah memenangkan dua dan kalah dua
pertandingan. Simpul v memiliki maksimum derajat-keluar 4. Setiap simpul lainnya
dapat dicapai dari v oleh lintasan berarah dengan panjang maksimum 2. Hal ini
menggambarkan hasil umum berikut:

Teorema 7.5 Misalkan v berupa simpul yang memiliki derajat keluar maksimal
dalam turnamen T. Maka untuk setiap simpul w dari T ada lintasan berarah
dari v ke w dengan panjang maksimum 2.

Bukti
Misal od (v) = m dan simpul bergabung dengan busur dari v adalah v 1 , v 2 , ,um
. Jika T memiliki n simpul kemudian masing-masing tersisa n m 1
simpul berdekatan dengan v, karena T adalah sebuah turnamen, yaitu, untuk ini simpul
yang tersisa u j, 1 j nm1 ada busur dari u j ke v. (Lihat Gambar 7.22.)
Kemudian untuk setiap i, 1 i m , busur dari v ke vi memberikan lintasan berarah
dengan panjang 1 dari v ke vi. Tetap untuk menunjukkan bahwa ada lintasan berarah
panjang 2 dari v ke u j untuk setiap j, 1 j nm1
Mengingat seperti titik u j, jika ada busur dari vi ke uj untuk
beberapa i maka vviuj memberikan lintasan berarah dari jenis yang diinginkan. Namun,
sekarang kira ada u k, 1 k nm1 sehingga tidak ada titik v i,, memiliki busur
dari vi ke uk. Kemudian, karena T adalah sebuah turnamen, harus ada seni; dari u k untuk
masing-masing m simpul v i. Karena kita juga memiliki busur
dari uk ke v ini memberikan od (u k ) m+1 . Ini bertentangan dengan fakta bahwa
v memiliki derajat keluar 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.
Gambar 7.22: Titik v memiliki derajat keluar maksimal.

Misalkan T adalah turnamen n simpul dan misalkan v adalah simpul dari T.


Kemudian T v merupakan graf berarah yang diperoleh dari T dengan
menghapus v dan semua busur terhubung dengan v. Sekarang setiap dua simpul dari T
v bergabung dengan tepat satu busur, karena dua simpul 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 simpul. 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
simpul. Misal v menjadi simpul dari T. Kemudian T v memiliki n 1 simpul dan
sebagainya, karena dengan pernyataan di atas T v adalah sebuah turnamen, ada, oleh
asumsi kami, lintasan Hamilton berarah di T v. Misal P=v 1 v 2 v n1 menjadi
lintasan tersebut.

Sekarang, jika ada busur dari v ke v1, maka


'
P =v v 1 v 2 v n1
adalah lintasan Hamilton berarah di T. Demikian pula, jika ada busur dari
vn-1 ke v maka
''
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 simpul 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

Hasil sebelumnya menunjukkan bahwa setiap turnamen adalah "hampir


Hamilton". Dua berikutnya, benar-benar menentukan kapan sebuah turnamen adalah
Hamilton.

Teorema 7.7 turnamen T terhubung kuat pada n simpul 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 simpul w dari T yang
ada busur dari v ke w. Misalkan Z menyatakan himpunan semua simpul z dari T yang
ada busur dari z ke v. (Perhatikan bahwa karena T adalah sebuah turnamen
W Z = )
Gambar 7.24

Kemudian, karena T terhubung kuat, W dan Z keduanya harus tidak kosong. (Sebagai
contoh, jika W yang kosong, maka tidak akan ada busur akan keluar dari v, tidak
mungkin karena T terhubung kuat). Selain itu, lagi karena T terhubung kuat, harus ada
busur di T pergi dari beberapa w' di W ke beberapa z' di Z. ini memberikan sikel
berarah vw' z'v panjang 3. (Lihat Gambar 7.24.)
Sekarang menggunakan induksi untuk menyelesaikan bukti. Dianggap bahwa T
memiliki sikel berarah C panjang k di mana k<n (dan k 3 ) dan, dengan
menggunakan ini, akan dibuktikan bahwa T memiliki sikel berarah panjang k + 1.
Misalkan C diberikan oleh
v1 v2 vk v1 .
Misalkan ada simpul 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.)
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 simpul w sehingga untuk setiap i, 1 i k , ada busur
dari vi ke w, dan Z adalah himpunan simpul z sehingga untuk setiap i, 1 i k , ada
busur dari z ke v,. Jika W kosong maka simpul dari C dan simpul dari Z bersama-sama
membentuk semua simpul 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.

Bukti Misalkan T memiliki n simpul. Jika T adalah terhubung kuat kemudian,


dengan teorema, T harus memiliki sikel berarah panjang n. Sikel tersebut adalah sikel
Hamilton berarah karena mencakup setiap simpul 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 vi, vj di himpunan titik dari T, jika i j kemudian
v j v j +1 vi adalah lintasan berarah P1 dari vj ke vi,
sedangkan v i v i+ 1 v n1 v n v 1 v j1 v j 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

Kami menyelesaikan bagian ini dengan mencatat bahwa turnamen terhubung


kuatdapat digunakan untuk memberikan peringkat peserta di kompetisi round-robin.
Dalam kompetisi tersebut, mungkin ada beberapa pemain terikat pada tempat pertama
(dengan jumlah maksimum sama menang). Demikian pula, mungkin ada beberapa
pemain diikat di tingkat berikutnya, dan seterusnya. Salah satu cara yang mungkin
peringkat pemain adalah untuk menemukan lintasan Hamilton berarah - satu ada
dengan Teorema 7.6 - dan kemudian peringkat sesuai dengan posisi di
lintasan. Sayangnya, sistem ini dari peringkat dapat menjadi sangat tidak adil karena
pada umumnya turnamen dapat memiliki beberapa lintasan Hamilton berarah. Namun,
disediakan setidaknya ada empat pemain dalam kompetisi dan sesuai turnamen
terhubung kuat, ada prosedur yang menghasilkan peringkat wajar semua pemain.
Secara singkat, prosedur adalah sebagai berikut. Kami pertama menghitung jumlah
games dimenangkan oleh masing-masing pemain dan membandingkan mereka. Ini
disebut skor pemain. (Lihat juga Latihan 7.3.6.) Ini memberi kita peringkat awal di
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 simpul. Untuk keterangan lebih lanjut dan contoh
dikerjakan, kita merujuk pembaca untuk Bagian 10,7 dari Bondy dan Murty.

7.4 Alur Lalu Lintas


Jalan satu arah sering digunakan oleh kota untuk membantu meringankan masalah
arus lalu lintas. Diberikan peta jalan kota yang mungkin bertanya apakah atau tidak itu
adalah mungkin untuk membuat setiap jalan pada peta satu arah jalan sedemikian rupa
sehingga masih bisa berkendara dari banyak bagian dari kota ke bagian lain (mematuhi
satu arah aturan tentu saja!). Kita mungkin ulang kata-kata pertanyaan ini menggunakan
grafik dan digraph terkait sebagai berikut.
Pertama bangun graf G di mana setiap titik merupakan persimpangan
jalan. Hubungkan dua simpul x dan y dari G dengan sebuah sisi jika mungkin untuk
melakukan perjalanan antara x dan y tanpa melalui setiap persimpangan lainnya. (Jika
mungkin untuk melakukan perjalanan seperti antara x dan y dalam beberapa cara maka
harus ada sisi yang sesuai untuk masing-masing cara tersebut.) Grafik yang dihasilkan
G memberi kita, pada dasarnya, peta jalan kota, meskipun tanpa nama-nama jalan dan
mungkin tidak untuk skala.
Jika sekarang ingin membuat setiap jalan-jalan satu arah jumlah ini menetapkan arah
untuk masing-masing sisi G, yaitu, mengorientasikan setiap sisi G. Melakukan hal ini
menciptakan digraph D yang merupakan orientasi G. pertanyaan awal kami sekarang
apakah kita dapat menemukan sebuah digraph D di mana setiap simpul x dicapai dari
setiap titik y lainnya.

Sebuah graf G dikatakan berorientasi jika memiliki orientasi terhubung


kuat
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.
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 dan P' =v 0 v 1 v n1 v
dimana. u0=v 0=u Karena, u H tetapi VH ada titik ui P 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 dan Q' =v j v j+1 v n1 v
Mengorientasikan sisi di Q dari ui ke ui+1 dari ui+1 ke ui+2 , dan seterusnya
dan mengorientasikan sisi di Q' dari v ke v n1 , dari v n1 ke v n2 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
simpul 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 simpul dari D memiliki, yaitu v, dan jadi ini
bertentangan pilihan kami untuk U sebagai bagian yang mungkin terbesar dari simpul
dari G yang menginduksi subgraph berorientasi. Kontradiksi ini menunjukkan bahwa H
= G.
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.

Algoritma Hopcroft dan Tarjan


Langkah 1. Misalkan G adalah graf terhubung tanpa jembatan.
Biarkan menjadi titik sewenang-wenang G dan label x dengan menetapkan
(x )=1 .
Himpunan L = { x } dan U = V(G) - { x }. (Berikut L menunjukkan
himpunan simpul berlabel sementara U adalah himpunan titik tak berlabel.)
himpunan A .. (A menunjukkan himpunan busur yang dihasilkan oleh
orientasi sisi G.)
Langkah 2. Pilih v titik dalam L, dengan label maksimum, yang bertetangga dengan
beberapa titik u U . Tulis (u)=( v)+1
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 simpul 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 simpul 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.
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
Langkah 2. Pilih v 2 U N (v 1) (Kemungkinan lain adalah v7 ) tulis
( v 2) = ( v 1 )+ 1=2
L menjadi { v1 , v 2 } dan U menjadi { v3 , , v 8 } .
Beri arah sisi v 1 v 2 dari v 1 ke v 2 sehingga A menjadi {( v 1 , v 2) } .
Gambar 7.30: Sebuah graf terhubung tanpa jembatan.

Langkah 3. L V (G) jadi kami kembali ke langkah 2. (Untuk singkatnya, kami


akan menghilangkan semua tapi yang terakhir dari berikutnya langkah 3 ini.)
Langkah 2. Pilih v 3 U N ( v 2) .. (Kemungkinan pilihan lainnya adalah v 5 dan
v 7 ) tulis ( v 3 )= ( v 2 ) +1=3

L menjadi { v1 , v 2 , v 3 } dan U menjadi { v 4 , , v 8 } .


Beri arah sisi v 2 v 3 dari v 2 ke v3 sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) } .
Langkah 2. Pilih v 4 U N (v 3 ) . . (Kemungkinan pilihan lainnya adalah v5 dan
v6 )
tulis ( v 4 )= ( v 3 ) +1=4
L menjadi { v1 , , v 4 } dan U menjadi { v5 , , v 8 } .
Beri arah sisi v 3 v 4 dari v 3 ke v 4 sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) } .
Langkah 2. Pilih v 6 U N (v 4 ) . . (Tidak ada pilihan lain.) tulis
( v 6 )= ( v 4 ) +1=5 .
L menjadi { v1 , , v 4 , v 6 } dan U menjadi { v5 , v 7 , v 8 } .
Beri arah sisi v 4 v 6 dari v 4 ke v 6 sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) , ( v 4 , v 6 ) } .
Langkah 2. Sekarang v 3 adalah titik tertinggi diberi label dengan tetangga tidak
berlabel. Pilih v 5 U N ( v 3) . (Tidak ada pilihan lain.) tulis
( v 5 )= ( v 3 ) +1=4 .
L menjadi { v1 , , v 6 } dan U menjadi { v7 , v 8 } .
Mengorientasikan sisi dari untuk sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) , ( v 4 , v 6 ) , ( v 3 , v 5 ) }
Langkah 2. Sekarang v 5 adalah titik berlabel tertinggi dengan tetangga tidak
berlabel. Pilih v 7 U N ( v 5) (Pilihan lain yang mungkin adalah v 8 ).tulis
( v 7 )= ( v 5 ) +1=5
L menjadi { v1 , , v 7 } dan U menjadi { v 8 }
Beri arah sisi v 5 v 7 dari v5 ke v7 sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) , ( v 4 , v 6 ) , ( v 3 , v 5 ) , ( v 5 , v 7 ) }

Langkah 2. Pilih v 8 U N ( v 7 ) . (Tidak ada pilihan lain.) tulis


( v 8) = ( v 7 ) +1=6 .
L menjadi V(G) dan U menjadi himpunan kosong.
Beri arah sisi v7 v8 dari v7 ke v8 sehingga A menjadi
{( v 1 , v 2) , ( v 2, v 3 ) , ( v 3 , v 4 ) , ( v 4 , v 6 ) , ( v 3 , v 5 ) , ( v 5 , v 7 ) , ( v 7 , v 8 ) } .

Pada tahap ini kami (tidak lengkap) orientasi G adalah seperti yang ditunjukkan pada
Gambar 7.31, bersama-sama dengan label untuk simpul dari G.

Gambar 7.31: Orientasi sebagian dari graf G dari Gambar 7.28.

Langkah 3. Kami sekarang memiliki L = V(G).


Langkah 4. Sisi G belum berorientasi v 1 v 3 , v 1 v 7 , v 2 v 5 ,, v 2 v 7 , v 3 v 6 dan
v 5 v 8 ini masing-masing berorientasi dari titik dengan label yang lebih
tinggi ke titik dengan label rendah.
Ini melengkapi orientasi G, memberikan digraf yang terhubung kuat ditunjukkan pada
Gambar 7.32.
Gambar 7.32: Orientasi terhubung kuat dari G.
BAB 8
JARINGAN (NETWORK)

8.1 Flow Dan Pemutus (Cuts) Pada Jaringan


Suatu produsen di Selandia Baru ingin mengekspor beberapa kotak dari salah satu
produknya, yaitu jam buah kiwi, untuk sebuah Departement Store di taiwan. ada berbagai
saluran melalui mana kotak tersebut dapat dikirimkan dan graf berarah pada gambar 8.1
mewakili permasalahan tersebut, dengan titik s sebagai produsen dan t departement store.
Bilangan pada setiap busur mewakili beban maksimum masing-masing saluran yang dapat
ditangani.

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.

Menggunakan permasalahan ini sebagai motivasi, maka didefinisikan konsep jaringan


(network).
Sebuah jaringan (network) N adalah sebuah graf-berarah sederhana terhubung lemah yang
setiap busur a pada N dikaitkan dengan suatu bilangan real non negatif c(a). Selanjutnya
bilangan real non negatif c(a) yang dikaitkan pada busur a disebut kapasitas dari a.
Sebuah titik s pada jaringan N disebut titik sumber jika derajat masuk titik s = 0 dan
sebuah titik t pada jaringan N disebut titik tujuan jika derajat keluar titik t = 0. Titik yang
lain pada jaringan N disebut titik antara.

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).

Definisi Flow (Aliran)


Sebuah flow pada jaringan N dari titik sumber s ke titik tujuan t adalah suatu fungsi yang
memetakan setiap busur a di N dengan sebuah bilangan bulat non negatif, dengan syarat:
i. untuk setiap busur a; (disebut kapasitas pembatas)
f (a)c (a )
ii. ; (disebut nilai flow)
f (a)= f ( a)
aO(s) aI(t)
iii. untuk setiap titik antara x; (disebut konservasi flow)
f (a)= f (a)
aO(x) a I (x)

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.

Gambar 8.2: Sebuah flow dari jaringan pada gambar 8.1.

Dari gambar diatas diperoleh

Dan untuk setiap busur pada jaringan,


Definisi nilai aliran:
d = f ( a) = f ( a)
aO ( s ) aI ( t )

Bilangan d dimana s adalah titik sumber dan t adalah titik tujuan, disebut nilai flow.

Jadi, flow pada contoh diatas memiliki nilai flow = 6.

Misalkan f adalah sebuah flow pada jaringan N = (V, A) dan X adalah himpunan bagian dari
himpunan titik V pada N dan menyatakan komplemen dari X pada V, misalnya,
X
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,
yaitu, , sama dengan nilai flow d. Hal ini akan digambarkan dengan jaringan pada
X
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).

Gambar 8.3. Sebuah jaringan dengan sebuah flow

Misalkan X = {s, u, x} sehingga = {v, w, t}. Kemudian busur-busur dari titik-titik


X
di X ke titik-titik di adalah uv, sw, dan xt dimana hanya satu busur dari titik-titik di
X
ke titik-titik di X, yaitu wx. Kemudian, net flow dari titik-titik di X ke titik-titik di
X X
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.)
kemudian, net flow juga dapat diperoleh dari sembarang subset X ke yang tidak
X
melebihi kapasitas dari busur X ke , yang merupakan jumlah dari kapasitas setiap busur
X
yang meninggalkan sebuah titik di X ke sebuah titik di . Misalkan jaringan pada gambar
X
3, kapasitas busur-busur dari X ke adalah
X

yang lebih besar dari nilai flow yaitu 4.

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)
adalah himpunan dari busur-busur dari titik-titik di X ke titik-titik di .
X
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
di X ke sebuah titik di .
X

Definisi Cut (Pemutus)


Sebuah Cut (pemutus) adalah himpunan busur-busur dimana titik sumber s ada di X
A( X , X )
dan titik tujuan t di .
X

Pada gambar 8.3, subset X = {s, u, x} dan = {v, w, t}, maka A(X, ) adalah sebuah
X X
pemutus dan untuk kapasitas fungsi c,

Teorema 8.1.
Misalkan f adalah sebuah flow pada jaringan N = (V, A) dengan nilai flow d. Jika A(X, )
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
busur dari X ke .
X

Bukti.
Dari definisi flow, untuk titik sumber s diperoleh

dan untuk setiap titik x V {s , t } diperoleh

atau

Sehingga untuk suatu pemutus A(X, ), diperoleh


X

atau

Sementara itu

dan dengan cara yang sama

Kemudian

atau kemudian membangun bagian pertama teorema ini.

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

Definisi flow maksimum


Sebuah flow dengan nilai d sama dengan

disebut sebuah flow maksimum.

Pada jaringan pada gambar 8.3, jika A(X, ) adalah sebuah pemutus maka s harus terdapat
X
pada X dan t di dan setiap titik antara u, v, w, dan x dapat berada pada X atau .
X X
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)}

Setiap pemutus A(X, ) pada jaringan N mempunyai kapasitas pemutus A(X, )


X 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
sumber s ke titik tujuan t tidak akan melebihi kapasitas sembarang pemutus A(X, ) pada
X
N. Jadi sebesar-besarnya nilai flow tidak akan melebihi sekecil-kecilnya nilai kapsitas
pemutus A(X, ). Jadi jika terdapat sebuah flow f di N yang nilainya sama dengan
X
kapasitas suatu pemutus A(X, ), maka flow f tersebut adalah flow maksimum dan
X
pemutus A(X, ) tersebut adalah sebuah pemutus minimum.
X
Sebagai contoh, gambar berikut menunjukkan flow f pada jaringan N

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

Gambar 8.5: Flow f1 memiliki nilai flow 5

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 aliran 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.
Gambar 8.6: Flow f2 memiliki nilai flow 6

Sekarang masing-masing empat jalan berarah yang mungkin dari s ke t, yaitu s u v t, s u x t,


s w x t dan s w v t, memiliki busur yang flow nya sama dengan kapasitas busur: s u v t
memiliki su, seperti halnya s u x t, sedangkan s w x t memiliki xt dan s w v t memiliki wv.
Dengan demikian dapat dapat diduga f2 adalah nilai flow maksimumm, yaitu, tidak ada flow
yang dapat memiliki nilai lebih dari 6. Namun masih harus diselidiki kemungkinan bahwa
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.

Gambar 8.7: Flow f3 dengan nilai 7, merupakan 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

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.)

Gambar 8.9. Flow yang ditingkatkan sepanjang W dengan i(W) = 1.

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 aliran 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

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,

x, karena, untuk lintasan W = swx,

t, titik tujuan, karena, untuk lintasan W = suvt

Yaitu X = {s, u, w, v, x, t}.

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
Kemudian f1 adalah sebuah flow dengan nilai d + . Karena , berdasarkan definisi,
adalah suatu bilangan bulat positif, flow f ditingkatkan dengan nilai d, ke sebuah flow baru f1
dengan nilai d + .

Flow baru ini f1 disebut flow yang direvisi berdasarkan lintasan i-incrementing W.
Dalam contoh, f1 sebenarnya flow f1yang diberikan pada Gambar 5 yaitu

dan nilai flow baru f1 ini adalah d + = 4 + 1 = 5.

Prosedur meningkatkan aliran ini adalah selalu mungkin disediakan titik tujuan t pada
himpunan X. Dengan demikian proses dapat diulangi, semakin merevisi aliran 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
anggota X, A(X, ) adalah pemutus.
X

Dalam contoh, himpunan X terkait dengan f1 (lihat Gambar 5) terdiri dari:


s, titik sumber,
w, karena, lintasan W = sw, i(W) = i(sw) = c(sw) - f1(sw) = 5-1> 0,
x, karena, lintasan W = swx,

v karena, lintasan W = swv

u karena, lintasan W = swvu,

t, karena lintasan W = swvt,

Jadi X = V, sebagai f.

Membicarakan lintasan W = swvt diperoleh = 1. Ini digunakan untuk medefinisikan


sebuah fungsi baru f2, pada busur di N dengan
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,

v, karena lintasan W = swxu

t, karena lintasan W = swxuvt

Jadi X = V.

Kemudian, lintasan W = swxuvt dari s ke t, diperoleh = 1. Ini digunakan untuk


mendefinisikan suatu fungsi baru f3, pada busur N dengan

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 simpul 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 =
v0 ... vky dari s ke y akan menjadi f-unsaturated, juga memberikan kontradiksi. Dengan
demikian setiap busur bentuk xy dimana x X dan y X harus memiliki f'(xy) =

c(xy), sedangkan setiap busur bentuk yx mana x X dan y X harus memiliki
f'(yx) = 0. Hal ini menunjukkan bahwa

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,
X ), adalah su, wv, wx dan sehingga c(X, X ) = c (su) + c (wv) + (wx) = 4 + 1 + 2 = 7,
yang sama dengan nilai aliran f3, seperti yang diharapkan.

8.2 Algoritma The Ford And Fulkerson


Algoritma ini dilakukan berdasarkan bukti pada teorema flow maksimum, pemutus minimum,
yang mengkonstruksi flow maksimum. Algoritma ini menggunakan teknik labeling untuk
membuat flow menjadi maksimum. Dimulai dari flow yang telah diketahui, (contohnya flow
kosong/ nol). Algoritma ini akan beberapa kali membuat flow yang semakin meningkat
nilainya, lalu berakhir ketika flow telah maksimum.

Definisi:
Sebuah pohon f-unsaturated pada jaringan N (dengan memperhatikan aliran 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 jalan f-unsaturated

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.

Gambar 8.11: Pohon f-unsaturated

Prosedur penumbuhan pohon dengan lintasan f-incrementing adalah sebagai berikut


i. Awali pohon f-unsaturated dengan terdiri dari titik sumber s saja.
ii. Jika X adalah himpunan titik pada pohon T, pada sebuah busur yang
berhubungan dengan T akan dilakukan hal berikut, dengan catatan proses ini tidak
membuat cycle (hasilnya tetap berupa pohon) :
a) Jika terdapat busur a di sehingga , maka hubungkan
A( X , X ) f ( a ) < c ( a )
titik a dan kepalanya dengan T.
b) Jika terdapat busur a di sehingga , maka hubungkan titik a
A( X , X ) f ( a) > 0
dan ekornya dengan T.

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, aliran f adalah aliran
maksimum.
Teknik pelabelan dilakukan dengan cara melabeli titik-titik dari f-unsaturated, pohon T.
Untuk setiap titik v dari T dilabeli dengan adalah jalan tunggal pada T dari
l ( v ) = i ( Pv ) Pv
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
. Nilai tersebut kita gunakan sebagai dasar untuk merevisi aliran yang ada.
l ( t ) = i ( Pt )
Teknik pelabelan dimulai dengan memberi label pada sumber s. Pelabelan
l ( s) =
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

l ( v ) = min { l ( 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

l ( v ) = min { l ( u ) , f ( a ) }

Langkah-langkah algoritma:
1. Untuk setiap busur xy di N, himpunan
f ( xy ) = 0
2. Himpunan .( adalah himpunan busur pada pohon unsaturated T)
A ' = A'
Untuk sumber s pada N , himpunan
l ( s) =
Himpunan (L adalah himpunan titik yang dilabeli)
L = { s}
Himpunan (S adalah himpunan titik di L yang telah diperiksa)
S =
3. Misal F adalah himpunan busur xy di N sehingga . Terdiri atas
c ( xy ) > f ( xy )
busur maju).
Misal R adalah himpunan busur xy di N sehingga . ( R terdiri dari busur
f ( xy ) > 0
mundur)
4. Jika , maka menuju langkah 10
L-S =
5. Pilih
x L - S
6. Jika tidak terdapat sehingga dan himpunan busur
y L xy F A '{ xy}
menginduksi (induce) pohon dibawahnya, maka menuju ke langkah 7
Jika terdapat sehingga dan himpunan busur menginduksi
y L xy F A '{ xy}
(induce) pohon dibawahnya, maka labeli y dengan

l ( y ) = min { l ( x ) , c ( xy ) - f ( xy ) }
Ganti dengan dan dengan
A' A '{ xy} L L { y}
Ulangi langkah ini
7. Jika tidak terdapat sehingga dan himpunan busur
y L yx R A '{ yx}
meninduksi pohon dibawahnya maka menuju langkah 8
Jika tidak, labeli y dengan

l ( y ) = min { l ( x ) , f ( yx ) }
Ganti dengan dan dengan
A' A '{ yx} L L { y}
Ulangi langkah ini
8. Ganti dengan . Jika kembali ke langkah 4
S S { x} t L
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
menggunakan busurdari A dan untuk setiap a di W, ubah menjadi
f ( a) f ( a) + l ( t )
jika dan menjadi jika .
a F f ( a) - l ( t ) a R
Kembali kelangkah 2
10. (saat mencapai langkah ini saat semua titik yang dilabel telah diperiksa dan
tidak ada pemecahan)
Nilai pada setiap busur xy di N menunjukkan flow maksimum di N dan
f ( xy )
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 aliran 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.
Gambar 8.12
Gambar 8.13
Gambar 8.14
Sebuah
Sebuah
lintasan
sikel
Hamilton
Hamilton
berarah
berarah
dalam
dari

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
terobosan, 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

Anda mungkin juga menyukai