Matematika Diskrit

26
BAB 8 MODEL-MODEL JARINGAN DAN JARINGAN-JARINGAN PETRI 8.1 MODEL-MODEL JARINGAN Perhatikan graf terarah pada Gambar 1 yang mewakili sebuah jaringan pipa minyak. Minyak dilepaskan di dok dan dipompa sepanjang jaringan menuju kilang minyak . verteks- verteks dan mewakili stasiun pompa lanjutan. Rusuk-rusuk terarah mewakili bagian- bagian pipa dari sistem dan menunjukkan arah minyak dapat mengalir. Label-label pada rusuk menunjukkan kapasitas bagian pipa. Masalahnya adalah mencari sebuah jalan untuk memaksimalkan aliran dari dok menujukilang minyak danmenghitung nilai aliran maksimum tersebut.gambar 1 menyediakan sebuah contoh jaringan transpor(transpor network). Gambar 8.1.1. Sebuah jaringan transfor Definisi 8.1.1 Sebuah jaringan transpor (atau cukup jaringan) adalah graf terarah berbobot sederhana yang memenuhi a. Verteks bertanda, yang merupakan sumber, tidak mempunyai rusuk yang masuk b. Verteks bertanda, yang merupakan tujuan , tidak mempunnyai rusuk yang keluar. c. Bobot cij dari rusuk terarah disebut kapasitas dari merupakan sebuah bilangan tak negatif.

Transcript of Matematika Diskrit

BAB 8

MODEL-MODEL JARINGAN DAN JARINGAN-JARINGAN PETRI

8.1 MODEL-MODEL JARINGAN

Perhatikan graf terarah pada Gambar 1 yang mewakili sebuah jaringan pipa minyak.

Minyak dilepaskan di dok dan dipompa sepanjang jaringan menuju kilang minyak . verteks-

verteks dan mewakili stasiun pompa lanjutan. Rusuk-rusuk terarah mewakili bagian-

bagian pipa dari sistem dan menunjukkan arah minyak dapat mengalir. Label-label pada rusuk

menunjukkan kapasitas bagian pipa. Masalahnya adalah mencari sebuah jalan untuk

memaksimalkan aliran dari dok menujukilang minyak danmenghitung nilai aliran maksimum

tersebut.gambar 1 menyediakan sebuah contoh jaringan transpor(transpor network).

Gambar 8.1.1. Sebuah jaringan transfor

Definisi 8.1.1

Sebuah jaringan transpor (atau cukup jaringan) adalah graf terarah berbobot sederhana yang

memenuhi

a. Verteks bertanda, yang merupakan sumber, tidak mempunyai rusuk yang masuk

b. Verteks bertanda, yang merupakan tujuan , tidak mempunnyai rusuk yang keluar.

c. Bobot cij dari rusuk terarah disebut kapasitas dari merupakan sebuah bilangan

tak negatif.

Contoh 8.1.2

Graf pada Gambar 8.1.1. Merupakan sebuah jaringan transpor. Sumbernya adalah verteks dan

tujuannya adalah verteks . kapasitas rusuk , adalah 3 dan kapasitas dari rusuk

adalah 2. □

Dalam bab ini , jika merupakan sebuah jaringan, kita akan menyatakan sumbernya

dengan dan tujuannya dengan .

Aliran ( flow) dalam sebuah jaringan menempatkan sebuah aliran dalam setiap rusuk

terarah yang tidak melampaui kapasitas rusuk itu. Selain itu diasumsikan bahwa aliran ke dalam

verteks , yang bukan merupakan sumber ataupun tujuan, sama dengan aliran keluardari .

definisi berikut membuat gagasan ini tepat.

Definisi 8.1.3

Misalkan sebuah jaringan transpor. Misalkan menyatakan kapasitas rusuk terarah

sebuah aliran di menempatkan bilangan tak negatif pada setiap rusuk terarah

Sehingga:

a.

b. Untuk setiap verteks , yang bukan merupakan sumber atau pun tujuan.

∑ ∑ (8.1.1)

[Dalam penjumlahan sepert (8.1.1), asalkan tidak dispesifikasikan, penjumlahan itu

dilakukan untuk semua verteks . Juga, jika bukan merupakan rusuk, kita tetapkan

.]

Kita sebut aliran dalam rusuk untuk sembarang verteks , kita sebut

aliran ke dalam j dan kita sebut

aliran keluar dari

Sifat yang dinyatakan dalam persamaan (8.1.1) disebut konservasi aliran (conservation

of flow). Dalam contoh pemompaan minyak pada Gambar 8.1.1, konservasi aliran berarti

minyak tidak digunakan atau dipasok pada stasiun pemompaan dan

Contoh 8.1.4

Penandaan

mendefinisikan sebuah aliran untuk jaringan pada gambar 8.1.1. Sebagai contoh, aliran ke dalam

verteks .

sama dengan aliran keluar dari verteks

Pada gambar 8.1.2 kita telah menggambar ulang jaringan dari Gambar 8.1.1 untuk

menunjukkan aliran pada Contoh 8.1.4. Sebuah rusuk dibeli jika kapasitas adalah dan

aliran di adalah Notasi ini akan digunakan dalam bab ini.

Perhatikan dalam Contoh 8.1.4, aliran keluar dari sumber .

sama dengan aliran ke dalam tujuan .

keduannya nilai 5. Teorema berikut menunjukkan aliran keluar dari sumber selalu sama

dengan aliran ke dalam tujuan.

Gambar 8.1.2. Aliran dalam sebuah jaringan

. rusuk - rusuk dilabeli untuk

mengindikasikan kapasitas dan aliran .

Teorema 8.1.5

Jika diketahui sebuah aliran dalam sebuah jaringan , aliran keluar dari sumber sama dengan

aliran ke dalam tujuan , yakni

Pembuktian. Misalkan adalah himpunan verteks . Kita mempunyai

∑(∑

)

∑(∑

)

karena masing-masing penjumlahan ganda adalah

dengan merupakan himpunan rusuk. Kini

∑ ∑

∑ ∑

karena untuk semua , dan (Definisi 8.1.3b)

∑ ∑ jika .

Dengan keterangan dari teorema 5, kita dapat menyatakan definisi berikut

Definisi 8.1.6

Misalkan F adalah sebuah aliran dalam sebuah jaringan . Nilai

disebut nilai aliran

Contoh 8.1.7.

Nilai aliran dan jaringan pada gambar 8.1.7 adalah 5.

Masalah untuk jaringan transpor dapat dinyatakan sebagai berikut: Carilah sebuah

aliran maksimal di , yakni diantara semua aliran yang mungkin di , carilah sebuah aliran

sehingga nilai adalah nilai maksimum. Pada bagian selanjutnya kita akan memberikan sebuah

algoritma yang memecahkan masalah ini dengan efisien. Kita akan mengakhiri bagian ini dengan

memberikan contoh-contoh tambahan.

Contoh 8.1.8 Sebuah Jaringan Pemompaan

Gambar 8.1.3 mewakili sebuah jaringan pemompaan air untuk dua kota, dan , yang dikirim

dari tiga sumur, . Kapasitas sistem lanjutan ini ditunjukkan pada rusuk-rusuknya.

Gambar 8. 1 .3 Sebuah jaringan pemompaan. Air untuk kota dan dikirim dari sumur w1, w2,

dan w3. Kapasitas – kapasitasnya ditunjukkan pada rusuk – rusuk.

Verteks – verteks dan mewakili stasiun pemompaan lanjutan.Buatlah model sistem ini

sebagai sebuah jaringan transpor.

Untuk memperoleh sumber dan tujuan yang ditandai, kita dapat memperoleh sebuah

jaringan transpor ekuivalen dengan menyatukan bersama sumber – sumber tersebut ke dalam

sumber raya (supersource) dan menyatukan bersama tujuan – tujuan menjadi sebuah tujuan

raya (supersink) (lihat gambar 8.1.4). Pada Gambar 8.1.4, mewakili sebuah kapasitas tak

terbatas.

Gambar 8.1.4 jaringan pada gambar 8.1.3 dengan sebuah sumber dan tujuan yang ditandai.

Contoh 8.1.9 Sebuah Jaringan Lalu Lintas

Ada kemungkinan untuk pergidari kota A ke kota B secara langsung atau dengan melalui kota B.

Selama periode 6:00 hingga 7:00 malam, waktu perjalanan rata – rata adalah

A ke B (15 menit)

B ke C (30 menit)

A ke C (30 menit)

Kapasitas maksimum dari rute – rute tersebut adalah

A ke B (3000 kendaraan)

B ke C (2000 kendaraan)

A ke C (4000 kendaraan)

Gambarkanlah aliran lalu – lintas dari A ke C selama periode 6:00 hingga 7:00 malam sebagai

sebuah jaringan.

Sebuah verteks akan mewakili sebuah kota pada saat tertentu (lihat Gambar 8.1.5).

Sebuah rusuk menghubungkan , t1 ke ,t2 jika kita dapat meninggalkan kota pada t1 sampai

di kota pada t2. Kapasitas sebuah rusuk merupakan kapasitas dari rute. Rusuk – rusuk dari

kapasitas tak terbatas menghubungkan ,t1 ke ,t2 dan ,t1 ke B,t2 untuk menyatakan bahwa

sembarang jumlah mobil dapat menunggu di kota atau kota . Akhirnya, kita memperkenalkan

sebuah sumber raya dan tujuan raya.

Gambar 8.1.5 Sebuah jaringan yang mewakili aliran lalu lintas dari kota ke kota selama

periode 6:00 hingga 7:00 malam.

Varian dari aliran jaringan telah digunakan dalam rancangan jaringan komputer yang

efisien (lihat [Jones; Kleinrock]). Dalam pemodelan sebuah jaringan komputer, sebuah verteks

merupakan pesan atau pusat pengatur, sebuah rusuk mewakili kanal yang di sini data dapat

ditransmisikan di antara verteks – verteks, sebuah aliran merupakan jumlah bit rata – rata per

detik yang ditransmisikan pada sebuah kanal, dan kapasitas sebuah rusuk merupakan

kapasitaskanal yang bersesuaian.

8.2 ALGORITMA ALIRAN MAKSIMAL

Jika sebuah jaringan transpor, sebuah aliran maksimal (maximal flow) di adalah

aliran dengan nilai maksimum. Secara umum, akan terdapat beberapa aliran yang mempunyai

nilai maksimum yang sama. Pada subbab ini kita memberikan sebuah algoritma untuk mencari

sebuah aliran maksimal. Gagasan dasarnya adalah sederhana mulai dengan suatu aliran awal dan

menaikkan secara iteratif nilai dari aliran sampai tidak ada peningkatan lagi. Aliran yang

dihasilkan selanjutnya akan merupakan sebuah aliran maksimal.

Kita dapat mengambil aliran awal sebagai salah satu aliran pada mana aliran di masing –

masing rusuk adalah nol. Untuk menaikkan nilai aliran yang diketahui, kita harus mencarisebuah

lintasan dari ssumber ke tujuan dan menaikkan aliran sepanjang lintasan ini.

Pada saat ini sangat membantu untuk memperkenalkan beberapa terminologi. Sepanjang

subbab ini, menyatakan sebuah jaringan dengan sumber , tujuan , dan kapasitas .

Sementara itu, perhatikan rusuk – rusuk dari sebagai tak terarah dan misalkan

merupakan sebuah lintasan dari ke dalam graf tak terarah ini. (Semua lintasan dalam bagian

ini dengan referensi pada graf tak berarah dasar). Jika sebuah rusuk di diarahkan dari

ke , kita katakan bahwa terorientasi secara tepat atau properly oriented (dengan

mengacu pada ); jika sebaliknya, kita katakan terorientasi tak tepat atau improperly

oriented (dengan mengacu pada P) (lihat Gambar 8.2.1).

Jika kita dapat mencari sebuah lintasan dari sumber ke tujuan dengan setiap rusuk di

terorientasi dengan tepat dan aliran dalam setiap rusuk kurang dari kapasitas rusuk, maka

mungkin untuk menaikkan nilai aliran.

Gambar 8.2.1 Rusuk – rusuk terorientasi dengan tepat dan tak tepat. Rusuk ( )

terorientasi dengan tepat karena rusuk tersebut terorientasi dalam arah ke . Rusuk ( , )

terorientasi tidak tepat karena tidak terorientasi dalam arah ke .

Contoh 8.2.1

Perhatikan lintasan dari ke dalam Gambar 8.2.2. Semua rusuk dalam terorientasi dengan

tepat. Nilai aliran dalam jaringan ini dapat dinaikkan dengan 1, seperti yang ditunjukkan dalam

Gambar 8.2.3.

Gambar 8.2.2 Sebuah lintasan dari rusuk-

rusuk yang teriorentasi dengan tepat.

Gambar 8.2.3 Setelah penaikan aliran pada

Gambar 8.2.2 dengan 1. □

Mungkin juga untuk menaikkan aliran dalam lintasan-lintasan tertentu dari sumber ke tujuan

tempat kita mempunyai rusuk-rusuk yang terorientasi dengan tepat dan tak tepat. Misalkan

sebuah lintasan dari ke dan misalkan sebuah verteks di yang bukan ataupun (lihat

Gambar 8.2.4).

Gambar 8.2.4 Empat orientasi rusuk-rusuk yang mungkin yang insiden pada

Terdapat empat kemungkinan untuk orientasi rusuk-rusuk dan yang insiden pada

Pada kasus (a), kedua rusuk terorientasi dengan tepat. Pada kasus ini, jika kita menaikkan aliran

dalam setiap rusuk dengan , aliran ke dalam akan tetap sama dengan aliran keluar dari .

Pada kasus (b), jika kita menaikkan aliran di dengan , kita harus menurunkan aliran di

dengan sehingga aliran ke dalam akan tetap sama dengan aliran keluar dari . Kasus (c)

serupa dengan kasus (b), kecuali kita menaikkan aliran di dengan dan menurunkan aliran di

dengan . Pada kasus (d), kita menurunkan aliran di kedua rusuk dengan . Dalam setiap

kasus, perlakuan rusuk yang dihasilkan memberikan sebuah aliran. Tentu saja, untuk

menjalankan pengubahan ini, kita harus mempunyai aliran kurang dari kapasitas dalam sebuah

rusuk yang terorientasi dengan tepat dan sebuah aliran tak nol dalam sebuah rusuk yang

terorientasi tak tepat.

Contoh 8.2.2

Perhatikan lintasan dari ke pada Gambar 8.2.5. Rusuk-rusuk dan

terorientasi dengan tepat dan rusuk terorientasi tak tepat. Kita menurunkan aliran sebesar 1

dalam rusuk terorientasi tak tepat dan meningkatkan aliran sebesar 1 dalam rusuk-rusuk

terorientasi dengan tepat dan (lihat Gambar 8.2.6). nilai aliran baru adalah 1

lebih dari aliran yang asli.

Gambar 8.2.5 Sebuah lintasan dengan sebuah

rusuk terorientasi tak tepat: .

Kita merangkum metode pada Contoh 8.2.1 dan

8.2.2 sebagai sebuah teorema.

Gambar 8.2.6 Setelah peningkatan aliran pada

Gambar 8.2.5 sebesar 1.

TEOREMA 8.2.3

Misalkan sebuah lintasan dari ke dalam sebuah jaringan G yang memenuhi:

(a) Untuk setiap rusuk terorientasi dengan tepat di

(b) Untuk setiap rusuk terorientasi tak tepat di ,

Misalkan

dengan terdiri dari bilangan-bilangan , untuk rusuk-rusuk terorientasi dengan tepat

di , dan , untuk rusuk-rusuk terorientasi tak tepat di . Definisikan

{

Maka * merupakan sebuah aliran yang nilainya lebih besar dari nilai .

Pembuktian. (lihat Gambar 8.2.2, 8.2.3, 8.2.5, dan 8.2.6.) Argumen bahwa * merupakan

sebuah aliran diberikan tepat sebelum Contoh 8.2.2. Oleh karena rusuk di dinaikkan

sebesar , nilai * lebih besar dari nilai .

Dalam bagian selanjutnya kita akan menunjukkan jika tidak terdapat lintasan yang

memenuhi kondisi pada Teorema 8.2.3, aliran tersebut maksimal. Jadi, adalah mungkin untuk

membentuk sebuah algoritma yang berdasarkan pada Teorema 8.2.3. intinya adalah

1. Mulailah denagn sebuah aliran (yakni, aliran yang aliran dalam setiap rusuknya 0).

2. Carilah sebuah aliran yang memenuhi kondisi dari Teorema 8.2.3. Jika tidak ada lintasan

yang seperti itu, berhentilah; aliran tersebuty maksimal.

3. Naikkan aliran sepanjang lintasan dengan , didefinisikan seperti dalam Teorema 8.2.3,

dan kembalilah ke baris 2.

Dalam algoritma formal, kita mencari sebuah lintasan yang memenuhi kondisi Teorema

8.2.3 sementara secar bersamaan tetap menjajaki kuantitas

ALGORITMA 8.2.4 Mencari Sebuah Aliran Maksimal dalam Sebah Jaringan

Algoritma ini mencari sebuah aliran maksimal dalam sebuah jaringan. Kapasitas setiap rusuk

adalah sebuah bilangan bulat tak negatif.

Masukkan: Sebuah jaringan dengan sumber , tujuan , kapasitas , verteks

, dan

Keluaran: sebuiha aliran maksimal

procedure aliran_maks

// label adalah (pendahulu(v), val(v))

// mulailah dengan aliran nol

1. for setiap rusuk do

2.

3. while true do

4. begin

// pindahkan semua label

5. for to do

6. begin

7.

8. val (

9. end

// label a

10. pendahulu -

11.

// U merupakan himpunan verteks berlabel tak teruji

12. U

// lanjutkan hingga terlabeli

13. while do

14. begin

15. jika U = then // aliran maksimal

16. return

17. pilih di U

18.

19.

20. for masing-masing rusuk dengan do

21. if then

22. begin

23. pendahulu

24. min

25.

26. end

27. for setiap rusuk dengan do

28. if then

29. begin

30.

31. min

32.

33. end

34. end

// carilah lintasan dari ke dimana untuk memperbaiki aliran

35.

36.

37. While do

38. begin

39.

40.

41. end

42.

43.

44. for i to do

45. begin

46.

47. if terorientasi dengan tepat di then

48.

49. else

50.

51. end

52. end

end aliran_maks

Sebuah pembuktian bahwa Algoritma 8.2.4 berakhir diberikan sebagai latihan (Latihan

19). Jika kapasitas-kapasitas diperbolehkan sebagai bilangan rasional tak negatif, algoritma

tersebut juga berakhir, akan tetapi, jika kapasitas real tak negatif diperbolehkan dan kita

mengizinkan rusuk-rusuk pada baris 20 untuk diuji dalam sembarang urutan, algoritma tersebut

tidak akan berakhir (lihat [Ford, halaman 21-22]).

Algoritma 8.2.4 seringkali diacu sebagai prosedur pelabelan (labelling procedure).

Kita akan mengilustrasikan algoritma tersebut dengan dua contoh.

Contoh 8.2.5

Dalam pembahasan ini, jika verteks memenuhi dan kita

menunjukkan label pada graf sebagai Pada baris 1 dan 2, kita mengawali aliran pada 0

dalam setiap rusuk (lihat Gambar 8.2.7). Selanjutnya, pada baris 5-9 kita menetapkan semua

label sebagai . Kemudian, pada baris 10 dan 11 kita melabeli verteks sebagai . Pada

baris 12 kita menetapkan . Selanjutnya kita masukkan loop while (baris 13).

Gambar 8.2.7 Setelah pelabelan pertama. Varteks dilabeli ( )

Oleh karena itu z tidak dilabeli dan Utidak kosong, kita beralih ke baris 17, disinni kita memilih

verteks a di U dan mwmindahkannya dari Upada baris 18. Pada saat ini, U . Kita menetapkan

pada pada baris 19. Pada baris 20 kita menguji rusuk-rusuk dan

karena baik maupun tidak terlabeli. Untuk rusuk kita mempunyai

Pada baris 23 dan 24, kita melabeli verteks sebagai karena

dan

Pada baris 25, kita menambahkan pada . Demikian juga, kita melabeli verteks sebagai

dan menambahkan d pada . Pada saat ini,

Selanjutnya kita kembali pada puncak loop while (baris 13). Karena tidak berlabel dan

tidak kosong, kita bergerak ke baris 17, di sini kita memilih sebuah verteks di .andaikan kita

memilih b. Kita memindahkan dari pada baris 18. Kita menetapkan sebagai

pada baris 19. Pada baris 20 kita menguji rusuk Pada baris 23 dan 24 kita melabeli verteks

sebagai karena

dan

Pada baris 25 kita tambahkan pada Pada saait ini,

Selanjutnya kita kembali ada puncak loop while (baris 13). Karena tidak berlabel dan

tidak kosong, kita bergerak ke baris 17, di sini kita memilih sebuah verteks di Andaikan kita

memilih Kita memindahkan dari ke baris 18. Kita menetapkan sebagai

pada baris 19. Pada baris 20 kita menguji rusuk Pada baris 23 dan 24 kita melabeli verteks

sebagai Pada baris 25, kita menambahkan pada Pada saat ini

Kemudian kita kembali pada puncak loop while (baris 13). Karena sudah diberi label

kita meloncat pada baris 35. Pada baris 35-42, dengan mengikuti pendahulu dari , menemukan

lintasan

dari ke . Pada baris 42 kita menetapkan sebagai 2. Karena setiap rusuk di terorientasi

dengan tepat, pada baris 48 kita menaikkan aliran dalam setiap rusuk dengan untuk

memperoleh Gambar 8.2.8.

Gambar 8.2.8 Setelah peningkatan aliran pada lintasan dengan 2 dari pelabelan

kedua.

Selanjtnya kita kembali pada puncak loop while (baris 3). Kemudian pada baris 5-9 kta

menetapkan semua label null. Kemudian pada baris 10 dan 11 kita memberi label verteks

sebagai (lihat Gambar 8.2.8). pada baris 12 kita tetapkan Kita masuki loop while

(baris 13).

Karena tidak berlabel dan tidak kosong, kita bergerak ke baris 17, yang di sini kita

memilih sebuah verteks di Andaikan kita memilih . Kita memindahkan dari pada baris

18. Pada baris 23 dan 24 kita melabeli verteks b sebagai dan kita labeli sebagai

Kita menambahkan dan pada sehingga

Selanjutnya kita kembali pada puncak loop while (baris 13). Karena tidak berlabel dan

tidak kosong, kita bergerak ke baris 17, dimana kita memilih sebuh verteks . Andaikan kita

memilih . Kita memindahkan dari pada baris 18. Pada baris 20 kita menguji rusuk

Karena , kita tidak melabeli verteks pada saat ini. Sekarang

Kemudian kita kembali pada puncak loop while (baris 13). Karena tidak berlabel dan

tidak kosong, kita bergerak ke baris 17, yang disini kita memilih sebuah verteks di . Andaikan

kita memilh . Kita memindahkan dari pada baris 18 . pada baris 23 dan 24 kita melabeli

verteks sebagai Kita tambahkan pada sehingga

Kemudian kita kembali ke puncak loop while (baris 13). Karena tidak dilabeli, kita

langsung ke baris 35. Pada baris 42 kita mendapatkan bahwa

Oleh karena setiap rusuk di terorientasi dengan tepat, pada baris 48 kita meningkatkan aliran

dalam setiap rusuk di dengan untuk memperoleh Gambar 8.2.9.

Anda harus mengecek bahwa iterasi algoritma berikutnya menghasilkan pelabelan yang

ditunjukkan pada Gambar 8.2.9. Peningkatan aliran dengan menghasilkan Gambar 8.2.10.

Selanjutnya kita kembali pada puncak loop while (baris 3). Kemudian pada baris 5-9 kita

menetapkan semua label sebagai null. Kemudian pada baris 10 dan 11 kita melabeli verteks

sebagai (lihat Gambar 8.2.8). pada baris 12 kita menetapkan Kita msuki loop

while (baris 13).

Gambar 8.2.9 Setelah peningkatan aliran pada lintasan dengan 2 dan pelabelan

ketiga.

Karena tidak berlabel dan tidak kosong, kita bergerak ke baris 17, yang disini kita

memilih verteks di . Andaikan kita memilih . Kita memindahkan dari ke pada baris 18.

Pada baris 23 dan 24 kita melabeli verteks sebagai dan kita labeli sebagai

Kitambahkan dan pada sehingga

Selanjutnya kita kembali pada puncak loop while (baris 13). Karena tidak berlabel dan

U tidak kosong, kita bergerak ke baris 17, maka kita memilih sebuah verteks di . Andaikan kita

memilih . Kita memindahkan dari pada baris 18. Pada baris 20 kita menguji rusuk

Karena , tidak melabeli verteks pada saat ini. Sekarang

Kemudian kita kembali ke puncak loop while (baris 13). Karena tidak berlabel dan

tidak kosong, kita bergerak ke baris 17, yang disini kita memilih sebuah verteks di . Andaikan

kita memilih . Kita memindahkan dari pada baris 18. Pada baris 20 kita menguji rusuk

dan karena , kita melabeli verteks maupun verteks . Sekarang

Kita kembali ke puncak loop while (baris 13). Oleh karena tidak dilabeli, kita bergerak

ke baris 15. Oleh karena kosong, algoritma berakhir. Aliran pada Gambar 8.2.10 maksimal.

Contoh kita terakhir menujukkan bagaimana memodifikasi Algoritma 8.2.4 untuk

membentuk sebuah aliran maksimal dari sebuah aliran yang diberikan.

Gambar 8.2.10 Setelah peningkatan aliran pada lintasan dengan 2 dan seterusnya dan

pelabelan akhir. Aliran tersebut masksimal. □

Contoh 8.2.6

Gantilah aliran nol ada baris 1 dan 2 dari Algoritma 8.2.4 dengan aliran pada Gambar 8.2.11

kemudian carilah sebuah aliran maksimal.

Setelan menginisialisasi aliran yang diberikan, kita bergerak ke baris 5-9, disini kita

menetapkan semua label sebagai null. Kemudian, pada baris 10 dan 11 kita melabeli verteks a

sebagai (-, ) (lihat Gambar 8.2.11). pada baris 12 kita menetapkan U={a}. Selanjutnya kita

memasuki loop while (baris 13).

Gambar 8.2.11 Setelah pelabelan.

Oleh karena tidak dilabeli dan tidak kosong, kita bergerak ke baris 17, dimana kita memilih

verteks di dan memindahkannya dari pada baris 18. Pada baris 23 dan 24, kita melabeli

verteks sebagai dan kita melabeli verteks sebagai Kita menambahkan dan

pada sehingga

Selanjutnya kita kembali pada puncak loop while (baris 13).oleh karena tidak dilabeli

dan tidak kosong, kita bergerak ke baris 17, dimana kita memilih sebuah verteks di .

Andaikan kita memilih . Kita memindahkan dari pada baris 18. Pada baris 20 kita menguji

rusuk-rusuk dan Oleh karena , kita dapat melabeli verteks . Pada baris 30

dan 31, verteks dilabeli karena

Kemudian kita kembali pada puncak loop while (baris 13). Kita segera melabeli (lihat Gambar

8.2.11) dan pada baris 42 kita mencari lintasan

Rusuk-rusuk dan terorientasi dengan tepat, sehingga aliran dalam masing-

masing rusuk ditingkatkan 1. Oleh karena rusuk terorientasi dengan tidak tepat, alirannya

berkurang 1. Kita mendapatkan aliran pada Gambar 8.2.12.

Gambar 8.2.12 Setelah peningkatan aliran

pada lintasan dengan 1.

Perhatikan bahwa rusuk terorientasi

dengan tidak tepat sehingga alirannya

berkurang 1.

Gambar 8.2.13 Setelah peningkatan aliran

pada lintasan dengan 1. Aliran

tersebut maksimal.

8.3 TEOREMA POTONG MIN, ALIRAN MAKS

Kita akan menunjukkan bahwa pada akhir Algoritma 8.2.4, aliran dalam jaringan adalah

maksimal. Kita akan mendefinisikan dan membahas pemotongan dalam jaringan-jaringan.

Misalkan sebuah jaringan dan perhatikan aliran pada akhir algoritma 8.2.4. Beberapa

verteks dilabeli dan beberapa tidak. Misalkan menyatakan himpunan verteks berlabel

(tidak berlabel). (Ingat menyatakan komplemen dari ). Maka sumber berada di P dan

tujuan berada di . Himpunan dari rusuk-rusuk , dengan dan , disebut

pemotongan (cut) dan jumlah kapasitas rusuk-rusuk di S disebut kapasitas pemotongan

(capacity of the cut). Kita akan melihat pemotongan ini mempunyai kapasitas minimum dan,

karena sebuah pemotongan minimal berhubungan dengan sebuah aliran maksimal (Teorema

8.3.9), aliran maksimal. Kita mulai dengan definisi formal pemotongan. merupakan sebuah

jaringan dengan sumber dan tujuan Kapasitas rusuk adalah .

Definisi 8.3.1

Sebuah pemotongan di terdiri dari sebuah himpunan dari verteks-verteks dan

komplemen dari P , dengan dan .

Contoh 8.3.2

Perhatikan jaringan G pada Gambar 8.3.1. Jika kita misalkan , maka

dan adalah sebuah pemotongan di G. Seperti ditunjukkan, kadang-kadang kita

mengindikasikan sebuah pemotongan dengan menggambar garis putus-putus untuk membagi

verteks-verteks.

Gambar 8.3.1 Sebuah pemotongan dalam sebuah jaringan. Garis putus-putus membagi verteks-

verteks menjadi himpunan dan yang menghasilkan pemotongan

.

Contoh 8.3.3

Gambar 8.2.10 menunjukkan pelabelan pada akhir Algoritma 8.2.4 untuk sebuah jaringan

tertentu. Jika kita misalkan menyatakan himpunan verteks berlabel (tak berlabel), kita

dapatkan pemotongan yang ditunjukkan pada Gambar 8.3.2. Selanjutnya kita definisikan

kapasitas sebuah pemotongan.

Gambar 8.3.2 Sebuah jaringan pada akhir Algoritma 8.2.4. Pemotongan

diperoleh dengan memisalkan adalah himpunan verteks berlabel.

Definisi 8.3.4

Kapasitas pemotongan adalah bilangan

∑ ∑

Contoh 8.3.5

Kapasitas pemotongan pada gambar 8.3.1 adalah

Contoh 8.3.6

Kapasitas pemotongan pada gambar 8.3.2 adalah

Teorema berikut menunjukkan kapasitas sembarang pemotongan selalulebih dari atau sama

dengan nilai alirannya.

Teorema 8.3.7

Misalkan sebuah aliran dalam dan misalkan merupakan sebuah pemotongan di

maka kapasitas lebih dari atau sama dengan nilai ; yakni,

∑ ∑ ∑∑ , (8.3.1)

( ∑

)

Pembuktian. Ingat bahwa

∑∑

∑∑

Karena masing-masing sisi dari persamaan merupakan penjumlahan dari terhadap

semua

Sehingga

∑∑

∑∑

∑∑

∑∑

∑∑

∑∑

∑∑

∑∑

∑∑

∑∑

Contoh 8.3.8

Pada Gambar 8.3.1, nilai aliran 5 kurang dari kapasitas pemotongan 8. □

Pemotongan minimal (minimal cut) adalah pemotongan yang mempunyai kapasitas minimum.

Teorema 8.3.9 Teorema Potong Min, Aliran Maks

Misalkan sebuah aliran di dan misalkan sebuah pemotongan di . Jika kesamaan

berlaku dalam (8.3.1), maka aliran maksimal dan pemotongan minimal. Lagipula, kesamaan

berlaku dalam (8.3.1) jika dan hanya jika

(a) untuk

(b) untuk

Pembuktian. Pernyataan pertama berlaku dengan sendirinya.

Pembuktian Teorema 8.3.7 menunjukkan bahwa kesamaan berlaku dengan tepat apabila

∑ ∑ dan ∑ ∑ ∑ ∑

Sehingga pernyataan juga benar.

Contoh 8.3.10

Pada Gambar 8.3.2, nilai aliran dan kapasitas pemotongan keduanya adalah 6; oleh karena itu

alirannya maksimal dan pemotongan minimal. □

Kita dapat menggunakan Teorema 8.3.9 untuk menunjukkan bahwa Algoritma 8.3.4

menghasilkan sebuah aliran maksimal.

TEOREMA 8.3.11

Pada akhirnya, Algoritma 8.2.4 menghasilkan sebuah aliran maksimal. Lagi pula, jika

(demikian juga merupakan himpunan verteks berlabel (demikian juga, tak berlabel) pada

akhir Algoritma 8.2.4, pemotongan minimal.

Pembuktian. Misalkan adalah himpunan verteks berlabel (tak berlabel) dari pada akhir

Algoritma 8.2.4. Perhatikan sebuah rusuk (i,j) dengan . Oleh karena dilabeli, kita

pasti mempunyai

Sebaliknya, kita telah melabeli pada baris 23 dan 24. Sekarang perhatikan sebuah rusuk

dengan . Oleh karena dilabeli, kita pasti mempunyai

Sebaliknya, kita telah melabeli pada baris 30 dan 31. Menurut teorema 8.3.9, aliran pada akhir

Algoritma 8.2.4 maksimal dan pemotongan minimal.