Representasi Algoritma Kuhn-Munkres Padagraf Bipartit

(1)

REPRESENTASI ALGORITMA KUHN-MUNKRES

PADA GRAF BIPARTIT UNTUK MENYELESAIKAN

OPTIMAL ASSIGNMENT PROBLEM

SKRIPSI

DESNI RAHMALINA. P

070823014

PROGRAM STUDI SARJANA MATEMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

REPRESENTASI ALGORITMA KUHN-MUNKRES

PADA GRAF BIPARTIT UNTUK MENYELESAIKAN

OPTIMAL ASSIGNMENT PROBLEM

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

DESNI RAHMALINA. P

070823014

PROGRAM STUDI SARJANA MATEMATIKA

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(3)

PERSETUJUAN

JUDUL : REPRESENTASI ALGORITMA KUHN-MUNKRES PADAGRAF BIPARTIT

Kategori : SKRIPSI

Nama : DESNI RAHMALINA PULUNGAN

Nomor Induk Mahasiswa : 070823014

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas :MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Medan, Juni 2010

KOMISI PEMBIMBING:

PEMBIMBING 2, PEMBIMBING 1

Drs. Sawaluddin, M.IT

NIP 195912311998021001 NIP194612251974031001 Drs. Marwan Harahap,M.Eng

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua,

NIP. 196401091988031004 Dr. Saib Suwilo, M,Sc


(4)

PERNYATAAN

REPRESENTASI ALGORITMA KUHN-MUNKRES PADA GRAF BIPARTIT

UNTUK MENYELESAIKAN OPTIMAL ASSIGNMENT PROBLEM

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing- masing disebutkan sumbernya.

Medan, Juni 2010

070823014


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT, dengan limpahan dan karuniaNya skripsi ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terima kasih saya sampaikan kepada Drs. Marwan Harahap, M.Eng dan Drs. Sawaluddin, M. IT selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan professional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Departemen Matematika FMIPA USU Dr. Saib Suwilo, M.Sc dan Drs Henry Rani Sitepu, M.Si, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara,semua dosen pada Departemen Matematika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan kepada orang tua dan semua ahli keluarga dan rekan terdekat saya yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Allah SWT memberikan balasan yang layak.


(6)

ABSTRAK

Semakin meningkatnya kompetisi global menuntut setiap perusahaan untuk meningkatkan kualitas serta efektifitas kinerja karyawannya yang pada akhirnya diharapkan dapat mendongkrak profit ( keuntungan). Salah satu cara yang sering digunakan adalah dengan mengadakan rolling. Sistem ini dapat digunakan untuk mengetahui penempatan terbaik (optimal) bagi karyawan. Pencarian solusi pada optimal assignment problem ini dapat diperoleh dengan menerapkan konsep teori graf. Dalam hal ini permasalahan dinyatakan sebagai graf bipartit khususnya graf bipartit lengkap berbobot yang menerapkan konsep matching, yaitu pencarian matching sempurna dengan bobot paling optimal. Pencarian matching sempurna pada graf bipartit lengkap berbobot mempunyai kemungkinan sebanyak n!. Oleh karena itu mengefisienkan yaitu algoritma optimal tersebut, maka dapat digunakan sebuah algoritma optimasi yaitu algoritma Kuhn-Munkres.


(7)

ABSTRACT

Increasing global competition requires each company to improve the quality and effectiveness of employee performance which in turn is expected to increase profits. One frequently used way is by performing rolling. This system is used to determine the best placement(optimal) for employees. On the optimum placement of some x employees at y type of job, if the number of employees likened equal to the amount of job by considering the optimization benefits.finding solution to optimal assignment problem can be obtained by applying the concept of graphs teory. in this case the problems are stated as a bipartite graph, especially the complete weighted bipartite graph that implements the concept of matching, Search is perfectly matched with the optimal weights. Searching perfectly to the weighted bipertite graph has the possibility of as many as n!. Therefore, the search is inefficient for a large value of n. then to further streamline the search for optimal solutions can be used an optimization algorithm is Kuhn-munkres algorithm.


(8)

DAFTAR ISI

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar xii

BAB1. PENDAHULUAN 1

1.1Latar Belakang 1

1.2Perumusan Masalah 2

1.3Batasan Masalah 3

1.4Tujuan Masalah 3

1.5Kontribusi Penelitian 3

1.6Tinjauan Pustaka 3

1.7Metode Penelitian 4

BAB2. LANDASAN TEORI 5

2.1 Himpunan 5

2.1.1 Beda Simetri 6

2.2 Pengertian Graf 7

2.2.1 Istilah-istilah dalam Graf 9

2.2.2 Graf Bipartit 13

2.2.3 Spanning Subgraph 14

2.3 Matching Graf 16

2.3.1 Matching pada Graf Bipartit 23

BAB3. REPRESENTASI ALGORITMA KUHN-MUNKRES 26


(9)

3.1.1 Feasible vertex Labeling 28

3.1.2 Equality Subgraph 31

3.2 Algoritma Kuhn- Munkres 33

3.3 Penentuan Bobot Minimum 38

3.4 Implementasi dan Pengujian 51

3.4.1 Tampilan Program dan Hasil Pengujian 52

BAB4. KESIMPULAN DAN SARAN 54

4.1 Kesimpulan 54

4.2 Saran 55

DAFTAR PUSTAKA 56


(10)

DAFTAR TABEL

TABEL 3.1 Daftar Nilai Karyawan 26

TABEL 3.2 Daftar Bobot 29

TABEL 3.3 l (y)=0 30

TABEL 3.4 Nilai x Maksimum 30

TABEL 3.5 Feasible vertex labelling dari Graf Bipartit 31

TABEL 3.6 Feasible vertex labelling ke-1 35

TABEL 3.7 Feasible vertex labelling ke-2 37

TABEL 3.8 Daftar kecepatan kinerja tim 39

TABEL 3.9 Bobot W* 40

TABEL 3.10 Feasible vertex labelling ke-1 41

TABEL 3.11 Feasible vertex labelling ke-2 43

TABEL 3.12 l’’ 45

TABEL 3.13 l’’’ 48


(11)

DAFTAR GAMBAR .

Gambar 2.1 Graf G 8

Gambar 2.2 Simpul Terisolasi 10

Gambar 2.3 Graf Sederhana dan Graf bukan Sederhana 12

Gambar 2.4 Graf Kosong 12

Gambar 2.5 Graf lengkap dengan 4 simpul 13

Gambar 2.6 Graf berbobot 13

Gambar 2.7 Graf bipartit lengkap 14

Gambar 2.8 Graf H (Spanning subgraph dari Graf G) 15

Gambar 2.9 Contoh matching 16

Gambar 2.10 Contoh Simpul unsaturated M 17

Gambar 2.11 Contoh M-augmenting dan M-alternating 18 Gambar 2.12 Graf dengan matching M dan matching M’ 19

Gambar 2.13 H= G(M∆M’) 19

Gambar 2.14 Graf G dengan matching M dan matching M’ 20 Gambar 2.15 H = G(M∆M’) dari Graf 21

Gambar 3.1 Graf bipartit berbobot 26

Gambar 3.2 Contoh Graf Bipartit berbobot 29

Gambar 3.3 Equality subgraph dari Graf bipartit berbobot 32 Gambar 3.4 Bentuk Flowchart algoritma Kuhn-Munkres 34

Gambar 3.4 Equality subgraph ke-1 36

Gambar 3.5 Sebarang matching M 36

Gambar 3.6 Equality subgraph ke-2 38

Gambar 3.7 Equality subgraph ke-1 41

Gambar3.8 Graf dengan matching M 42

Gambar 3.9 Equality subgraph ke-2 44

Gambar 3.10 Equality subgraph ke-3 46

Gambar 3.11 Matching pada Gl’’ 47

Gambar 3.12 Equality subgraph dan sebarang matching 48


(12)

Gambar 3.14 Permasalahan maksimum 52

Gambar 3.15 Hasil Perhitungan maksimum 52

Gambar 3.16 Permasalahan minimum 53

Gambar 3.17 Hasil perhitungan permasalahan 53


(13)

ABSTRAK

Semakin meningkatnya kompetisi global menuntut setiap perusahaan untuk meningkatkan kualitas serta efektifitas kinerja karyawannya yang pada akhirnya diharapkan dapat mendongkrak profit ( keuntungan). Salah satu cara yang sering digunakan adalah dengan mengadakan rolling. Sistem ini dapat digunakan untuk mengetahui penempatan terbaik (optimal) bagi karyawan. Pencarian solusi pada optimal assignment problem ini dapat diperoleh dengan menerapkan konsep teori graf. Dalam hal ini permasalahan dinyatakan sebagai graf bipartit khususnya graf bipartit lengkap berbobot yang menerapkan konsep matching, yaitu pencarian matching sempurna dengan bobot paling optimal. Pencarian matching sempurna pada graf bipartit lengkap berbobot mempunyai kemungkinan sebanyak n!. Oleh karena itu mengefisienkan yaitu algoritma optimal tersebut, maka dapat digunakan sebuah algoritma optimasi yaitu algoritma Kuhn-Munkres.


(14)

ABSTRACT

Increasing global competition requires each company to improve the quality and effectiveness of employee performance which in turn is expected to increase profits. One frequently used way is by performing rolling. This system is used to determine the best placement(optimal) for employees. On the optimum placement of some x employees at y type of job, if the number of employees likened equal to the amount of job by considering the optimization benefits.finding solution to optimal assignment problem can be obtained by applying the concept of graphs teory. in this case the problems are stated as a bipartite graph, especially the complete weighted bipartite graph that implements the concept of matching, Search is perfectly matched with the optimal weights. Searching perfectly to the weighted bipertite graph has the possibility of as many as n!. Therefore, the search is inefficient for a large value of n. then to further streamline the search for optimal solutions can be used an optimization algorithm is Kuhn-munkres algorithm.


(15)

BAB I

PENDAHULUAN

1.1 Latar Belakang

Kompetisi Global yang kian hari kian meningkat memaksa perusahaan untuk menggunakan aset intelektual mereka dengan lebih baik. Berbagai metode digunakan demi meningkatkan produktivitas perusahaan yang pada akhirnya akan meningkatkan profit (keuntungan). Salah satu hal yang mempengaruhi perkembangan suatu perusahaan adalah kualitas kinerja karyawannya. Ketersediaan tenaga ahli ( karyawan) saja tidaklah cukup, namun yang harus lebih diperhatikan adalah bagaimana mengelola tenaga ahli (karyawan) yang ada agar kinerjanya lebih optimal. Salah satunya dengan menempatkan karyawan pada pekerjaan dimana penempatan tersebut merupakan penempatan yang optimal.

Istilah rolling pada perusahaan sudah sering didengar. Sistem ini digunakan untuk beberapa alasan seperti memaksimalkan kemampuan karyawan, mencegah terjadinya kekosongan formasi untuk pekerjaan-pekerjaan tertentu dikarenakan tidak adanya karyawan yang mampu menggantikan karyawan sebelumnya, serta mengetahui penempatan terbaik (optimal) untuk seseorang karyawan.

Penempatan sejumlah X karyawan pada Y buah pekerjaan, jika banyaknya karyawan diibaratkan sama dengan banyaknya pekerjaan dengan mempertimbangkan aspek tertentu seperti pengoptimalkan profit ( keuntungan) yang didapat dari penempatan X karyawan terhadapY buah pekerjaan dikenal dengan optimal assignment problem. Penerapan graf pada optimal assignment problem ini dapat dinyatakan sebagai graf bipartit.


(16)

Graf bipartit didefinisikan sebagai suatu graf sederhana G yang himpunan node V-nya dapat dipartisi menjadi dua himpunan tak kosong V1 dan V2 yang

beririsan sedemikian hingga setiap rusuk dalam graf menghubungkan suatu simpul di V1 dengan simpul di V2 (sedemikian hingga tak ada rusuk di dalam G

menghubungkan dua simpul di V1 maupu n di V2). Karyawan dianggap sebagai V1 dan

pekerjaan sebagai V2. Karena dalam optimal assignment problem aspek yang

dioptimalkan dianggap sebagai bobot dan peluang penempatan tiap X karyawan pada Y buah pekerjaan dianggap sama, maka untuk mencari solusinya graf bipartit yang digunakan adalah graf bipartit lengkap berbobot.(Lovasz, 1986:3)

Untuk mencari solusi dari optimal assignment problem yang dinyatakan sebagai graf bipartit lengkap berbobot adalah dengan menerapkan konsep matching, khususnya matching sempurna pada graf bipartit lengkap berbobot. Matching sempurna dengan bobot paling maksimal adalah solusinya.(Brualdi,2004)

Algoritma Kuhn-Munkres adalah algoritma yang dapat digunakan untuk menyelesaikan optimal assignment problem. Pada tahun 1955, Harold Kuhn (seorang matematikawan asal Amerika) mempublikasikan sebuah metode yang diberi nama Hungarian method( untuk menghormati dua orang matematikawan asal Hungaria,

yaitu D.König dan E.Egervăry), yaitu sebuah algoritma kombinatorik untuk optimasi

yang dapat digunakan untuk menemukan solusi optimal dari assignment problem. Pada tahun 1957, James Raymond Munkres seorang Professor Emeritus of mathematics dari MIT merevisi algoritma Kuhn. Oleh karena itu, algoritma ini sering disebut algoritma Kuhn-Munkres.

Untuk mencari solusi dari optimal assignment problem dengan menggunakan algoritma Kuhn-Munkres salah satunya dapat dilakukan dengan merepresentasikan algoritma ini pada graf bipartit. Oleh karena itu, penulis mengangkat judul “Representasi Algoritma Kuhn-Munkres pada Graf Bipartit untuk menyelesaikan Optimal Assignment Problem”.


(17)

Berdasarkan latar belakang, rumusan masalah yang akan dibahas adalah yang dimaksud dengan optimal assignment problem dan Bagaimana langkah langkah dan representasi algoritma Kuhn-Munkres pada graf bipartit dapat menyelesaikan optimal assignment problem.

1.3 Batasan Masalah

Dalam penulisan tugas akhir ini, penulis membatasi masalah mengenai representasi algoritma Kuhn-Munkres pada graf bipartit khususnya graf bipartit lengkap dengan jumlah bipartisi pada masing-masing partisinya sama untuk menyelesaikan contoh dari optimal assignment problem.

1.4 Tujuan Penelitian

Adapun tujuan dalam penulisan ini adalah:

1. Mendeskripsikan optimal assignment problem.

2. Menjelaskan langkah-langkah dan representasi algoritma Kuhn-Munkres pada graf bipartit.

3. Menjelaskan langkah dan penerapan algoritma Kuhn-Munkres graf bipartit untuk menyelesaikan optimal assignment problem untuk permasalahan maksimum dan minimum.

1.5 Kontribusi Penelitian

Sebagai bahan untuk menambah pemahaman dan pengetahuan mengenai algoritma Kuhn-Munkres pada graf bipartit untuk menyelesaikan optimal assignment problem dalam permasalahan maksimum dan minimum.


(18)

1.6 Tinjauan Pustaka

Assignment problem, seperti juga masalah transportasi merupakan suatu kasus khusus yang ditemukan dalam pemrograman linear (linear programming). Dalam assignment problem akan mendelegasikan sejumlah tugas (assignment) kepada sejumlah penerima tugas (assigne) dalam basis satu-satu. Jadi pada assignment problem ini diasumsikan bahwa jumlah assignment sama dengan jumlah assigne. Jadi data pokok pertama yang harus dimiliki dalam menyelesaikan suatu assignment problem adalah jumlah assigne dan jumlah assignment. Selain data jumlah assigne dan jumlah assignment yang terlibat, data lain yang biasa diperlukan adalah besar kerugian yang ditimbulkan atau besar keuntungan yang didapatkan maksima.(Bazaraa, 1977)

Misalkan G=(V,E) adalah graf sederhana dan bukan graf kosong. Maka, matching M didefinisikan sebagai himpunan bagian tidak kosong dari rusuk E(G) sedemikan hingga tidak ada dua rusuk dari M yang saling ajasen di G. Untuk mencari solusi dari Optimal Assignment problem yang dinyatakan sebagai graf bipartit lengkap berbobot adalah dengan menerapkan konsep matching, khususnya matching sempurna pada graf bipartit lengkap berbobot.(Brualdi, 2004)

Pada dasarnya pencarian matching sempurna dengan bobot maksimal dapat dilakukan dengan mendaftar semua matching sempurna yang berbeda, dan menghitung jumlah bobot dari tiap matching sempurna yang diperoleh. Banyaknya matching sempurna yang berbeda pada suatu graf bipartit lengkap dengan n pada masing-masing partisinya adalah n!. Sangat tidak efisien jika cara ini digunakan, karena semakin banyak jumlah simpul maka semakin banyak pula matching sempurna yang berbeda. (Brualdi, 2004)

1.7 Metode Penelitian

Secara umum penelitian yang dilakukan dengan beberapa tahapan, yaitu:

1. Menguraikan mengenai konsep graf, optimal assignment problem, dan algoritma Kuhn-Munkres


(19)

2. Menerapkan algoritma Kuhn-Munkres secara lansung untuk menyelesaikan contoh dari optimal assignment problem

3. Melakukan pengujian kebenaran solusi yang dihasilkan dengan menggunakan sebuah program sederhana yang merupakan implementasi dari algoritma Kuhn-Munkres dengan menggunakan bahasa java.


(20)

BAB 2

LANDASAN TEORI

Pada bab ini akan dijelaskan himpunan dan beberapa definisi yang berkaitan dengan himpunan, serta konsep dasar dan teori graf yang akan digunakan pada bab selanjutnya.

2.1 Himpunan

Sebelum mendefinisikan graf akan dijelaskan terlebih dahulu apa yang disebut dengan himpunan berdasarkan definisi-definisi yang sudah ada mengenai himpunan, karena graf merupakan bagian dari himpunan.

Definisi 2.1 Objek dalam suatu himpunan disebut elemen atau anggota dari himpunan. Himpunan dinyatakan sebagai kumpulan dari elemen-elemennya.(Rosen, 1999).

Ada beberapa cara untuk mendeskripsikan suatu himpunan. Salah satu caranya adalah dengan mendaftar anggota dari himpunan tersebut bila hal itu mungkin dilakukan.

Contoh 2.1

1. Himpunan bilangan bulat positif yang kurang dari 5 dari dapat ditulis dengan Z = {1,2,3,4}.

2. Himpunan bilangan bulat positif kurang dari 1000 dapat ditulis dengan Z = {1,2,3,....,999}.

Suatu himpunan mungkin saja memiliki anggota yang sama banyaknya, bahkan mungkin memiliki anggota yang sama.

Definisi 2.2 Duah buah himpunan disebut sama jika dan hanya jika memiliki elemen atau anggota yang sama.

Contoh 2.2


(21)

Definisi 2.3 Himpunan A disebut subset dari B jika dan hanya jika setiap elemen di A juga merupakan elemen di B. Kita gunakan notasi A B untuk menyatakan A subset dari B (Rosen, 1999:41)

Contoh 2.3:

Misalkan himpunan A= {1,2,3,6} dan {1,2,3,4,5,6,7} maka himpunan A dapat disebut sebagai subset dari himpunan B ditulis A .

Definisi 2.4 Misalkan S adalah suatu himpunan, jika terdapat tepat n buah elemen yang berbeda pada S dimana n adalah bilangan bulat tak negatif, dikatakan S adalah himpunan berhingga dan n adalah banyaknya bilangan (cardinality) dari S. Cardinality himpunan S dinotasikan dengan |S| .(Rosen, 1999)

2.1.1. Beda Simetri

Misalkan terdapat dua buah himpunan A dan B. Maka beda simetri dari himpunan A dan B didefinisikan sebagai himpunan yang elemennya terdiri dari gabungan masing-masing elemen himpunan A dan elemen himpunan B tetapi tidak memuat elemen yang terdapat pada himpunan A sekaligus terdapat pada himpunan B. Beda simetris himpunan A dan B dapat dinotasikan dengan A (Rosen, 1999)

Karena beda simetri himpunan A dan B terdiri dari gabungan masing-masing elemen himpunan A dan elemen himpunan B tetapi tidak memuat elemen yang terdapat pada himpunan A sekaligus terdapat pada himpunan B, maka beda simetri dapat dinyatakan dengan (A Pernyataan ini ekivalen dengan (A\B) ).(Rosen, 1999)

Contoh 2.4:

Misalkan himpunan A = {1,2,3,4,5,6,11,12,13} dan B = {2,6,7,8.9,10} maka A B = {1,3,4,5,7,8,9,10,11,12,13}.

2.2. Pengertian Graf

Tulisan pertama tentang teori graf adalah karya Leonhard Eulerr pada tahun 1736. Tulisan ini menyajikan sebuah teori umum yang menyertakan sebuah solusi yang sekarang lazim dikenal dengan masalah jembatan K igsberg. Dalam masalah ini


(22)

terdapat dua pulau yang terhampar di sungai Pregel yang terletak di kota K igsberg ( kota tua di Prusia Timur yang sekarang dikenal dengan Kaliningrad) yang saling terhubung oleh tujuh buah jembatan. Permaasalahan yang muncul yaitu apakah ada sebuah rute yang memungkinkan agar ketujuh jembatan tersebut dapat dilewati tepat satu kali. Konfigurasi dari jembatan tersebut dapat dimodelkan dengan sebuah graf, yang pada akhirnya masalah tersebut terjawab bahwa tidak ada sebuah rute yang memungkinkan agar ketujuh jembatan tersebut dapat dilewati tepat satu kali.(Rinaldi Munir, 2007)

Ada beberapa definisi mengenai graf diantaranya:

Graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G= (V,E), yang dalam hal ini V adalah himpunan tidak-kosong dari simpul-simpul yang sering disebut vertices atau node, dan E adalah himpunan rusuk yang sering disebut edges atau arcs yang menghubungkan sepasang simpul .

Graf dapat digambarkan atau diilustrasikan dengan 3 cara, yaitu dengan himpunan simpul dan sisi, matriks atau diagram. Jika digambarkan dalam bentuk diagram, simpul diwakili oleh titik atau noktah ( yang kita gambarkan sebagai lingkaran kecil) dan rusuk e= {u,v} diwakili oleh segmen garis atau kurva yang mengaitkan titik u dan titik v. Untuk lebih jelasnya dapat dilihat contoh graf G seperti gambar 2.1.

e4

v1

e5

v3

e1

e2

e6

v2

e3

v4

e7

e8

v5


(23)

Pada Graf G ini, yang merupakan himpunan nodenya adalahV G( )={ ,v v v v v1 2, ,3 4, }5 , sedangkan himpunan edgenya

1 2 3 4 5 6 7 8

( ) { , , , , , , , }

E G = e e e e e e e e . Jadi graf G pada Gambar 2.1 terdiri dari 5 node dan 8 edge.

Suatu edge e ditulis e={u,v} dapat juga ditulis dengan uv atau vu disebut sebagai garis penghubung antara simpul u dan v. Pada Gambar 2.1 e1 ={ , }v v1 2 ,

2 { , }1 2

e = v v ,e3 ={ , }v v2 5 merupakan beberapa contoh edge yang dapat juga disebut garis penghubung.

Suatu node u dan v disebut sebagai node ujung dari edge e, jika e merupakan garis penghubung dari node u dan v. Pada gambar 2.1v dan4 v adalah node yang 5

merupakan simpul ujung dari edge e . 7

Pada graf-graf tertentu, terkadang sebuah edge terhubung ke node yang sama, edge seperti ini dapat disebut sebagai loop. Pada gambar 2.2 graf G mempunyai 1 loop yaitue . 7

Suatu graf dikatakan mempunyai edge ganda jika pada graf tersebut minimal dua edge yang menghubungkan dua node yang berlainan. Pada Gambar 2.1, e dan 1

2

e merupakan edge ganda.

2.2.1 Istilah- istilah dalam graf

Pada suatu graf G node u dan v disebut sebagai node yang saling ajasen jika node u dan v merupakan node-node ujung atau node u dan v menempel pada edge yang sama. Pada Gambar 2.1, node v dan 1 v , 2 v dan 1 v , 3 v dan 3 v adalah pasangan node yang 4

saling ajasen.

Edge e dan 1 e didefinisikan sebagai edge yang saling ajasen jika salah satu 2

node dari kedua edge tersebut sama. Pada Gambar 2.1 beberapa contoh edge yang saling ajasen yaitu: e dan1 e , 2 e dan2 e , 5 e dan 2 e , 6 e dan5 e , 6 e dan 2 e . 6


(24)

Node u dan edge e, node v dan edge dan rusuk e disebut berisiden, jika u dan v merupakan node ujung dari edge e. Pada Gambar 2.1, v dan 3 e , 8 v dan 4 e adalah 8

contoh node dan edge yang berinsiden.

Misalkan terdapat suatu graf G. Maka node pada graf G disebut node terisolasi jika node tersebut tidak berajasen dengan edge manapun. Perhatikan Gambar 2.2, dalam hal iniv disebut node terisolasi. 3

v3

v2

v4

v1

v5

Gambar 2.2 Simpul Terisolasi

Derajat (degree) dari suatu node v yang dinotasikan dengan G(V) adalah banyaknya edge pada graf G yang berinsiden dengan node v. Khusus pada loop derajatnya dihitung dua kali. Suatu node v disebut berderajat n jika mempunyai derajat sebanyak n.

Contoh 2.4:

Perhatikan Gambar 2.1

1. v disebut berderajat 3 karena banyak edge yang berisiden dengan3 v ada 3, 3

yaitue5,e6dan e . 8

2. v disebut berderajat 4 walaupun banyaknya edge yang berisiden dengan 5 v 5

ada 3, yaitue3, e dan4 e , tetapi 7 e merupakan loop. Oleh karena itu, banyak 4


(25)

Derajat minimum dari graf G dinotasikan dengan δ(G) adalah jika banyaknya edge yang berisiden dengan node v paling sedikit dari node lain pada graf G. Sebaliknya, jika node yang berisiden dengan node v tersebut paling banyak, maka node v dikatakan mempunyai derajat maksimum dan biasa dinotasikan dengan ∆(G).

Misalkan terdapat G, jalan (walk) pada graf G didefinisikan sebagai suatu barisan yang tak kosong dan berhingga yang suku-sukunya bergantian antara node dan edge. Jalan boleh saja memuat edge dan node yang sama. Jalan dinyatakan dengan W. Pada Gambar 2.1,

{v e v e v e v e v1 5 3 6 2 6 3 8 4} merupakan contoh jalan, dan dapat ditulis dengan W

={v e v e v e v e v1 5 3 6 2 6 3 8 4} . Karena jalan pada contoh ini dimulai dari node v dan berakhir 1

pada node v , maka 4 v disebut sebagai node awal dan 1 v disebut sebagai node akhir, 4

sedangkan node-node selain v dan 1 v disebut node-node internal dari W. 4

Selanjutnya, panjang dari suatu jalan dapat didefinisikan sebagai banyaknya edge yang terdapat didalam suatu jalan.

Jejak (trail) pada suatu graf G didefinisikan sebagai suatu barisan yang tak kosong dan berhingga yang suku-sukunya bergantian antara node dan edge dan masing-masing edge tidak boleh termuat lebih dari satu kali. Pada jejak, node boleh saja termuat lebih dari satu kali. Jejak dinyatakan dengan T. Pada Gambar 2.1 {v e v e v v e v2 3 5 4 5 3 7 4} adalah contoh jejak dan dapat ditulis T={v e v e v v e v2 3 5 4 5 3 7 4}.

Selanjutnya jika pada suatu jejak node awal dan node akhirnya sama maka jejak tersebut disebut jejak tertutup. Pada Gambar 2.1 T = {v e v e v e v1 5 3 6 2 2 1} adalah contoh

jejak tertutup karena v merupakan node awal sekaligus node akhir. 1

Jika pada suatu jejak tertutup node awal dan simpul internalnya berbeda, maka jejak tertutup tersebut dinamakan siklus (cycle). Siklus dinotasikan dengan Cn dengan n adalah banyaknya node yang termuat dalam suatu siklus. Pada Gambar 2.1 {v e v e v e v e v e v1 5 3 8 4 7 5 3 2 2 1} merupakan contoh siklus.


(26)

Lintasan (path) dinotasikan dengan P, didefinisikan sebagai suatu barisan yang tak kosong yang suku-sukunya bergantian antara node dan edge, serta node- nodenya berlainan

( tidak ada node yang termuat lebih dari satu kali). Pada Gambar 2.1 yang merupakan contoh lintasan yaitu {v e v e v e v1 5 3 8 4 7 5}, sehingga dapat ditulis P = {v e v e v e v1 5 3 8 4 7 5}.

Suatu graf dikatakan sebagai graf sederhana jika pada graf tersebut tidak mengandung edge ganda dan loop. Perhatikan Gambar 2.3, graf G bukanlah graf sederhana, karena mengandung edge ganda e dan 3 e serta mengandung loop yaitu 4 e 8

, sedangkan Graf H merupakan contoh graf sederhana. Graf yang mengandung edge ganda dan loop biasanya disebut sebagai graf ganda.

e4

v2

v4

v1 e1

e2 e5 e6

e7

v3

v5

e8

e3

v2

v4

v1 e1

e2

v3

v5

e3

e4 e5

e6

Graf 2.3a (Graf G) Graf 2.3b(Graf H)

Gambar 2.3a Graf sederhana dan bukan sederhana Gambar 2.3.b

Suatu graf G dikatakan sebagai graf kosong jika graf tersebut hanya terdiri dari himpunan simpul. Graf kosong yang terdiri dari n simpul dinotasikan dengan Nn. Gambar 2.4 merupakan contoh graf kosong.


(27)

N

1

N

2

N

3

N

4 Gambar 2.4 Graf Kosong

Suatu graf G dikatakan sebagai graf lengkap jika tiap node pada graf tersebut berajasen dengan tiap node lainnya. Suatu graf lengkap dengan n yang menyatakan banyaknya node, dinotasikan dengan Nn. Gambar 2.5 merupakan contoh graf lengkap dengan 4 simpul.

v

1

e

1

v

3

e

2

v

2

e

4

v

4

e

3

Gambar 2.5 Graf lengkap dengan 4 simpul

Suatu graf G dikatakan sebagai graf berbobot jika setiap edgenya mempunyai nilai atau bobot tertentu. Bobot pada graf biasanya dinotasikan dengan wij dimana i dan j sebagai node yang berisiden dengan edge yang memiliki bobot w tersebut. Pada Gambar 2.6 bobot dari e1 atau Wv v1 2 =4


(28)

v

1

4

v

2

v

3

13

9

v

4

Gambar 2.6 Graf Berbobot

2.2.2 Graf Bipartit

Graf Bipartit didefinisikan sebagai graf yang memiliki himpunan node V yang dapat dipartisi menjadi dua himpunan bagian X dan Y, sehingga masing-masing edgenya memiliki titik ujung pada X dan titik ujung lainnya pada Y, dengan demikian {X,Y} dapat disebut sebagai bipartisi pada graf. Jika tiap node pada himpunan X berajasen dengan semua node pada Y maka graf bipartit tersebut dinamakan graf bipartit lengkap.

Graf bipartit lengkap dengan banyaknya node pada X atau |X| = m dan banyaknya node pada Y atau |Y| = n, dinotasikan dengan Km,n.

v

1

v

2

v

3

v

4

v

5

v

6

v

7


(29)

Pada Gambar 2.7, dapat dilihat graf tersebut dapat dipartisi menjadi 2 himpunan bagian X dan Y dimana X = { ,v v v v1 2, , }3 4 dan Y{ ,v v v . Tiap-tiap node 5 6, }7

pada himpunan X berajasensi dengan semua node pada himpunan Y.

2.2.3 Spanning Subgraph

Subgraph dari G didefinisikan sebagai graf yang merupakan himpunan bagian dari himpunan node dan edge pada graf G. Sedangkan spanning subgraph dari graf G adalah subgraph yang memuat semua node dari graf G. Graf H pada Gambar 2.8 merupakan salah satu contoh spanning subgraph dari graf G pada Gambar 2.1.

e5 v1

v3 v4

e8 e6

v2

e3

e7 v5


(30)

2.3. Matching graf

Sebelum membahas lebih jauh mengenai optimal assignment problem dan cara penyelesaiannya, akan dibahas mengenai definisi matching dan matching pada graf bipartit, karena penyelesaian optimal assignment problem akan menggunakan penerapan matching pada graf bipartit.

Misalkan G=(V,E) adalah graf sederhana dan bukan graf kosong. Maka, matching M didefinisikan sebagai himpunan bagian yang tidak kosong dari edge E(G) sedemikian hingga tidak ada edge dari M yang saling ajasen di G. Selanjutnya node-node ujung dari matching M disebut matched di bawah M. Untuk lebih jelasnya, perhatikan Gambar 2.9. M = { ,e e e1 6, }7 adalah salah satu contoh matching yang dapat

dibuat pada graf G.

v1 e1

v2

e2

e3

v4

e5

v5

e6 e4 e7

e8

v6 v5

Gambar 2.9 Contoh Matching

Jika M adalah suatu Matching, maka suatu node v dikatakan saturated oleh i matching M atau matching M saturates terhadap node v jika ada sebuah edge dari i matching M menempel pada node v tersebut. Sebaliknya jika tidak ada maka node i vi disebut unsaturated M. Perhatikan Gambar 2.9, v dan 1 v disebut saturated oleh M, 2

sebaliknya pada Gambar 2.10. , v disebut unsaturated karena tidak ada matching M 1


(31)

v

1

Gambar 2.10 Contoh simpul unsaturated M

Matching M disebut matching sempurna jika setiap node pada G saturated oleh matching M. Pada Gambar 2.9 semua node saturated oleh matching M, maka graf pada Gambar 2.9 merupakan contoh matching sempurna. Sedangkan pada Gambar 2.10 ada satu node yaitu v yang tidak saturated oleh matching M, maka graf 1

pada Gambar 2.10 bukan contoh matching sempurna.

Dari sebuah graf G, bisa saja diperoleh lebih dari satu matching M. Suatu matching M disebut matching maksimum jika untuk setiap matching pada graf G tidak terdapat matching M dengan |M’|≥|M|. Sehingga setiap matching sempurna adalah matching maksimum. Namun sebaliknya, jika M adalah matching maksimum belum tentu M merupakan matching sempurna. Gambar 2.9 merupakan matching sempurna sekaligus matching maksimum dan Gambar 2.10 merupakan contoh matching maksimum tetapi bukan matching sempurna.

Misalkan M adalah matching dan P adalah lintasan pada graf G. Lintasan P disebut M-alternating jika edge-edgenya pada P terbentang dalam M dan berada pada E(G)\M, dengan kata lain edgenya bergantian antara M dan E(G)\M. Selanjutnya Lintasan P disebut M-augmenting jika lintasan ini M-alternating dan node awal serta


(32)

node akhir dari Lintasan P merupakan M- unsaturated. Untuk lebih jelasnya perhatikan Gambar 2.11.

e3 v1

e1

v4 e2

v2

e6 v5

e5

e7

v3 e8 v7

v8 e9 v9 e4

Gambar 2.11 Contoh M-Augmenting dan M-Alternating

Pada Gambar 2.11, yang merupakan contoh lintasan M-alternating yaitu

4 2 2 3 6 6 5 7 3

{v e v e v e v e v . Sedangkan } {v e v e v e v e v e v8 9 6 3 2 5 5 7 3 8 7} merupakan contoh lintasan

M-augmenting karena node awalnya yaitu v dan node akhirnya yaitu 8 v merupakan 7

node yang berada pada E(G)\M dan unsaturated M.

Misalkan M adalah matching pada graf G, dan terdapat matching lain, sebut saja M’ dengan M∆M’ menunjukkan perbedaan simetris M dan M’. Maka dapat diperoleh suatu graf H=G(M∆M’) yang merupakan graf yang direntang oleh edge M∆M’ dengan menghapus semua edge M∩M’ dan edge (G\M)∩(G\M’). Untuk lebih jelasnya perhatikan contoh 2.5.

Contoh 2.5

Diberika graf G yang memuat matching M dan matching M’ seperti pada Gambar 2.12. Akan dicari H=G(M∆M’).


(33)

v1

v7

v2 v3 v4 v5 v6

v8 v9 v10 v11

Gambar 2.12 Graf G dengan matching M dan matching M’

Edge yang menghubungkan node v5 dan node v8 merupakan anggota-anggota

matching M sekaligus anggota matching M’(M∩M’). Maka, edge tersebut dihapus. Edge yang menghubungkan node v5 dan node v11 serta edge yang menghubungkan node v6 dan node v8 bukan anggota matching M sekaligus bukan anggota matching M’((G\M)∩(G\M’)), oleh karena itu dihapus. Selanjutnya diperoleh H=G(M∆M’), seperti Gambar 2.13.

v3

v7 v9

v4

v1 v2 v5 v6

v8 v10 v11

Gambar 2.13 H =G M M( ∆ ')

Lemma 2.1 Misalkan M dan M’ adalah dua matching yang berbeda pada G, H = G

(M∆M’), dengan M∆M’ menunjukkan beda simetris dari M dan M’. Setiap komponen dari H pasti berkaitan dengan salah satu dari ketiga bentuk dibawah ini:


(34)

2. Siklus (M,M’)-alternating dengan orde genap. 3. Lintasan (M,M’)-alternating.

Bukti:

Misalkan V adalah himpunan node dan E adalah himpunan edge pada graf G dengan M dan M’ adalah dua matching yang berbeda, maka akan terdapat tiga kasus:

1. Node yang berisiden dengan edge M∩M’ atau edge(G\M)∩(G\M’) tetapi tidak berinsiden dengan matching M maupun M’, maka pada graf H node tersebut merupakan node terisolasi.

M’

M

v1 v2 v3 v4 v5 v6

v7 v8 v9 v10 v11

Gambar 3.14 Contoh Graf G dengan matching M dan matching M’

v1 v

2 v3 v4 v5 v6

v7 v

8 v9 v10

v11

Gambar 3.15 H =G M M( ∆ ') dari Graf

2. Andaikan P adalah komponen dari H. Dalam hal ini 1 ≤∆P ≤2. Jika semua node pada P mempunyai derajat dua, maka masing-masing nodenya berinsiden


(35)

dengan satu edge pada M dan satu edge pada M’. Maka dapat disimpulkan bahwa siklus (M, M’)-alternating dengan orde genap.

3. Ada x V P∈ ( ) sedemikian hingga dengan H(x) = 1. Maka terdapat paling sedikit satu node misalkan saja node y, dengan derajat satu selain node x. Ketika ∆(P)≤2, P adalah lintasan yang menghubungkan x dan y. Node-node internalnya (jika ada) merupakan node berderajat dua, maka P adalah lintasan (M, M’)-alternating.

Contoh 2.6:

1. Perhatikan Gambar 2.14 dan Gambar 2.15. Node { ,v v v2 4, }7 pada graf G

menjadi node terisolasi pada graf H.

2. Pada Gambar 2.15, {v v v v1 7 3 10} adalah lintasan (M, M’)-alternating.

3. Pada Gambar 2.15, {v v v v v5 8 6 1 15}, adalah siklus (M,M’)-alternating dengan orde genap.

Teorema 2.1(Teorema Berge) Matching M pada graf G adalah matching maksimum jika dan hanya jika G tidak mengandung lintasan M-augmenting.

Bukti:

1. Akan dibuktikan dengan kontradiksi. Misalkan M adalah matching maksimum pada graf G dan terdapat lintasan M-augmenting P. Dalam hal ini, P haruslah memiliki jumlah edge yang ganjil, karena agar suatu lintasan P merupakan lintasan M-augmenting, setiap satu edge yang merupakan matching M harus berajasen dengan dua rusuk lainnya yang bukan matching (E(G)\M).

Untuk lebih jelasnya, misalkan lintasan M-augmenting P= { 0 1 2

1

... vk k v v v v

− }. Perhatikan bahwa k jumlah edge berjumlah ganjil, karena v dan 0 v unsarated k

M, artinyav v dan 0 1 1vk k

vharus bukan anggota matching M.

Selanjutnya definisikan himpunan edge M’⊆(G) dengan M’= 1

1 2 3 4 2 0 1 2 3

( { , ... }) { , ... 1 }k vk

v k k

M v v v v v v v v v v

− ∪ − , maka M’ merupakan

matching pada graf G dengan nilai |M’| = |M|+1. Hal ini kontradiksi dengan M adalah matching maksimum. Oleh karena itu, jika M adalah matching maksimum pada graf G, maka G tidak mungkin memiliki lintasan M-augmenting.


(36)

2. Akan dibuktikan dengan kontradiksi. Misalkan M bukan matching maksimum dan M’ adalah matching maksimum di G. Akibatnya |M’|≥ |M|. Definisikan, H=G(M∆M’) dengan M∆M’ menunjukkan beda simetri di M dan M’.

Dari pembuktian lemma 2.1, diperoleh setiap node di H berderajat 1 atau 2, karena setiap node di H berinsiden dengan paling banyak satu edge di M dan satu edge di M. Dengan demikian, komponen H adalah lintasan yang edgenya bergantian di M dan M’atau siklus dengan banyak edgenya adalah genap. Karena M’ dimisalkan sebagai matching maksimum, dari penjelasan sebelumnya diperoleh |M’|≥|M|. Akibatnya, H mempunyai lebih banyak edge M dibandingkan edge M. Sehingga lintasan P di H yang edge awal dan edge akhirnya adalah anggota dari M’. Dengan kata lain node awal serta node akhir dari lintasan P merupakan M-unsaturated. Maka lintasan P adalah lintasan M-augmenting.

Kita peroleh pernyataan, jika M bukan matching maksimum di G maka mengandung lintasan M-augmenting. Pernyataan ini ekivalen dengan jika G tidak mengandung lintasan M-augmenting, maka M adalah matching maksimum di G. Seperti yang telah dijelaskan sebelumnya, algoritma Kuhn-Munkres dapat direpresentasikan dengan graf bipartit. Representasi algoritma Kuhn-Munkres pada graf bipartit melibatkan penerapan matching, maka akan dibahas mengenai matching pada graf bipartit.

2.3.2 Matching Pada Graf Bipartit

Sebelum membahas lebih jauh mengenai matching pada graf bipartit, akan dijelaskan dulu mengenai himpunan persekitaran. Misalkan terdapat graf sebarang G=(V,E), dengan V adalah himpunan node pada G dan S merupakan subset dari V(G), maka himpunan persekitaran dari S (neighbour set of S) adalah himpunan semua node yang berajasen dengan node-node di S. Himpunan persekitaran biasanya dinotasikan dengan NG(S).

Teorema 2.2 (Teorema Hall) Misalkan G adalah graf bipartit dengan bipartisi {X,Y}. Maka G mengandung sebuah matching yang saturates untuk setiap node di X jika dan hanya jika |S|≤| NG(S)| untuk setiap S ⊆ X.


(37)

1. Misalkan G mengandung matching M yang saturated pada tiap node di X dan S adalah subset dari X. Karena tiap node pada S matched di bawah M dengan berbeda di | NG(S|, maka diperoleh |S|≤| NG(S)|.

2. Akan dibuktikan dengan kontradiksi. Misalkan G adalah graf bipartit yang memenuhi S|≤| NG(S)| untuk setiap S⊆X, tetapi G tidak mempunyai matching

yang saturated pada setiap node dari X. Misalkan M* adalah matching maksimum pada G, maka akan terdapat node u di X yang merupakan unsaturated M*.

Selanjutnya definisikan himpunan node di G dengan Z= {v∈V(G): terdapat lintasan M*alternating dari u ke v}, dengan kata lain Z adalah himpunan semua node yang terhubung ke u oleh lintasan M*-alternating. Karena M* adalah matching dan u unsaturated M*, dari teorema 3.1 (teorema Berge) diperoleh u adalah satu-satunya node yang unsaturated M* pada Z.

Misalkan S= Z∩X dan T = Z∩Y. Maka diperoleh node pada S\{u} matched di bawah M* dengan node pada T. Sehingga |T| = |S|-1 dari T subset dari NG(S).

Lebih tepat lagi NG(S)=T karena setiap node di NG(S) terhubung ke u oleh

suatu lintasan M*-alternating. Tetapi |T|=|S|-1 dan NG(S) = T, jadi diperoleh |

NG(S)| = (|S|-1<|S| hal ini kontradiksi dengan pernyataan |S|≤| N G(S)|. Maka

haruslah G memiliki matching yang saturates terhadap setiap node di X.

Akibat 1(Teorema Marriage, Forbenius) Graf bipartit G dengan bipartisi {X,Y}, memiliki matching sempurna jika dan hanya jika |X|=|Y| dan |S|≤| N G(S)|

untuk setiap S⊆X atau Y.

Akibat 2 (König) Jika G adalah graf bipartit k-reguler dengan k>0, maka G memiliki sebuah matching sempurna.

Bukti:

Misalkan G adalah graf bipartit k- reguler dengan bipartisi {X,Y}. Karena G adalah k-reguler, maka k|X|=k|Y|. Karena k>0, maka |X| = |Y|.

Misalkan S subset dari X, dengan E1 adalah himpunan edge yang berinsiden dengan node di S dan E2 adalah himpunan node yang berinsiden dengan node di NG(S). Maka berdasarkan definisi NG(S) diperoleh E1 subset dari E2 oleh


(38)

karena itu diperoleh k| NG(S)|≥|S|, maka berdasarkan Teorema2.2 (Teorema

Hall) diperoleh pernyataan bahwa G memiliki matching M yang saturates terhadap setiap simpul di X, dan karena |X|= |Y|, maka M adalah matching sempurna.


(39)

Bab 3

REPRESENTASI ALGORITMA KUHN-MUNKRES

3.1 Deskripsi Probem Assignment

Dalam suatu perusahaan sering bermunculan permasalahan yang pada dasarnya dapat diselesaikan dengan menggunakan konsep graf, salah satunya adalah optimal assignment problem. Misalkan pada sebuah perusahaan terdapat sebanyak X karyawan dan Y pekerjaan, dalam hal ini banyak X dan Y diasumsikan sama. Maka penempatan X karyawan ke Y pekerjaan memperhatikan faktor tertentu seperti profit (keuntungan) sehingga diperoleh hasil yang optimal biasa dikenal dengan optimal assignment problem.

Pada penjelasan sebelumnya, banyaknya karyawan dinyatakan dengan X dan banyaknya pekerjaan dinyatakan dengan Y. Jika banyaknya X karyawan dan Y karyawan masih dalam ruang lingkup kecil, maka dengan cara perhitungan biasa kita dapat menemukan solusi optimalnya.

Contoh masalah 3.1

Dalam suatu perusahaan terdapat 3 posisi pekerjaan ( ,y y y yang masih kosong. 1 2, 3)

Perusahaan telah mengadakan penilaian terhadap 3 orang karyawan ( ,x x x . 1 2, 3)

Penilaian setiap karyawan terhadap masing- masing pekerjaan disajikan dalam Tabel 3.1 . Akan ditentukan solusi agar masing- masing karyawan menepati posisi pekerjaan sehingga menjadi penempatan paling optimal bagi perusahaan.

Tabel 3.1 Daftar nilai karyawan

y1 y2 y3

x1 3 5 4

x2 4 2 5


(40)

Penyelesaian:

Tabel 3.1 dapat diilustrasikan dengan graf bipartit berbobot seperti gambar berikut: 3 4 5 4 2 5 2 4 5 x1 x3 y1 y2 y3

Gambar 3.1. Graf bipartit berbobot

Untuk mencari solusi optimalnya sama halnya dengan matching sempurna dengan bobot maksimum pada graf bipartit pada Gambar 3.1. Karena graf G merupakan graf bipartit yang memiliki partisi {X,Y}dengan|X|=|Y|, berdasarkan teorema marriage yang telah dijelaskan pada bab sebelumnya, maka pada graf bipartit ini terdapat matching sempurna. Dalam hal ini karena |X|=|Y|=3 maka dapat ditentukan kemungkinan matching sempurnanya sebanyak 3!=6 , yaitu:

1. M1=(x y x y x y1 1, 2 2, 3 3) dengan

1 1 1 2 2 3 3

M x y x y x y

w =w +w +w

3 2 5

10

= + +

=

2. M2 =(x y x y x y1 1, 2 3, 3 2) dengan

2 1 1 2 3 3 2

M x y x y x y

w =w +w +w

3 5 4

12

= + + =

3. M3 =(x y x y x y1 3, 2 2, 3 1) dengan

3 1 3 2 2 3 1

M x y x y x y

w =w +w +w

4 2 2

8

= + + =

4. M4 =(x y x y x y1 2, 2 1, 3 3) dengan

4 1 2 2 1 3 3

M x y x y x y

w =w +w +w

5 4 5

14

= + + =


(41)

5. M5 =(x y x y x y1 3, 2 1, 3 2) dengan

5 1 3 2 1 3 2

M x y x y x y

w =w +w +w

4 4 4

12

= + + =

6. M6 =(x y x y x y1 2, 2 3, 3 1) dengan

6 1 2 2 3 3 1

M x y x y x y

w =w +w +w

5 5 2

12

= + + =

Dari keenam kemungkinan diperoleh matching sempurna dengan bobot maksimum yaitu 14 untuk matching sempurna M4 =(x y x y x y1 2, 2 1, 3 3). Maka solusi optimal dari Contoh 3.1 yaitu:

Karyawan ke-1 ditempatkan pada pekerjaan ke-2 Karyawan ke-2 ditempatkan pada pekerjaan ke-1 Karyawan ke-3 ditempatkan pada pekerjaan ke-3

Contoh masalah 3.1 adalah contoh optimal assignment problem yang diibaratkan dengan graf bipartit lengkap. Masing-masing simpul pada bipartisi X dan bipartisi Y sebanyak 3, kemungkinan matching sempurnanya sebanyak n! yaitu 3!=6.

Dalam masalah ini, karena kemungkinan matching sebanyak 6, jadi pencarian solusi masih bisa dilakukan dengan mendaftar semua matching yang mungkin pada graf bipartit tersebut dan kemudian menghitung bobot masing-masing. Matching sempurna dengan bobot paling maksimal adalah solusinya. Namun, lain halnya jika masing-masing simpul pada bipartisi X dan Y sangat banyak, dengan kata lain nilai n! sangat besar. Sangat tidak efisien jika dilakukan perhitungan dengan mendaftar semua kemungkinan matching sempurna seperti Contoh 3.1 . Oleh karena itu, untuk memudahkan pencarian solusi optimal assignment problem, akan digunakan sebuah algoritma optimasi yaitu algoritma Kuhn-Munkers. Namun sebelum menguraikan langkah-langkah dalam algoritma Kuhn-Munkers, akan didefinisikan terlebih dahulu Feasible vertex labeling dan Equality graph.


(42)

Misalkan terdapat suatu graf bipartit lengkap G dengan bobot w yang dinotasikan dengan (G,w). Feasible vertex labelling pada graf G didefinisikan sebagai fungsi nilai real l pada X U Y sedemikian sehingga untuk setiap xX danyY berlaku:

l(x)+ l (y)≥ w(x,y)

Selalu terdapat kemungkinan untuk menemukan feasible vertex labelling. Salah satu caranya dengan mendefinisikan semua l(y)=0 untuk y Y dan untuk setiap x X, ambil bobot maksimum pada rusuk yang berajasen dengan x.

( ) maxy Y ( , )

l x = w x y untuk x X

l (y)=0 untuk y Y

Contoh 3.2:

Akan ditentukan Feasible vertex labelling dari graf bipartit berbobot pada Gambar 3.2

x1

3 6

y1

4 5

x2 y2

x3

3

2

4

10

7

y3

x4 y4

Gambar 3.2 Contoh graf bipartit berbobot

Penyelesaian:

Untuk memudahkan, maka masing-masing bobot kita daftarkan kedalam Tabel 3.2

Tabel 3.2 Daftar bobot

y1 y2 y3 y4

x1 0 0 3 0


(43)

x3 0 2 4 0

x4 4 0 10 7

Dari penjelesan sebelumnya, selalu terdapat kemungkinan untuk menemukan feasible vertex labelling. Salah satu caranya dengan mendefinisikan semua l (y)=0 untuk y Y dan untuk setiap x X, ambil nilai maksimum pada deretan yang sama.

( ) maxy Y ( , )

l x = w x y untuk x X

l (y)=0 untuk y Y

Dari hal ini untuk mendefenisika semua l (y)=0, y Y dapat dilakukan dengan cara menuliskan 0 di bagian bawah tabel, untuk masing-masing y (perhatikan Tabel 3.3).

Tabel 3.3 l (y)=0

Selanjutnya untuk setiap x X , ambil nilai maksimum pada deretan yang sama. Hal ini dapat dilakukan dengan cara menentukan nilai x maksimum ditiap deretan yang sama, kemudian menuliskannya pada kanan tabel(perhatikan Tabel 3.4).

Tabel 3.4 Nilai x maksimum

y1 y2 y3 y4 X max

x1 0 0 3 0 3

x2 6 5 0 3 6

x3 0 2 4 0 4

x4 4 0 10 7 10

Maka diperoleh feasible vertex labelling yang diilustrasikan dengan Tabel 3.5.

y1 y2 y3 y4

x1 0 0 3 0

x2 6 5 0 3

x3 0 2 4 0

x4 4 0 10 7


(44)

Tabel 3.5 Feasible vertex labeling dari graf bipartit berbobot

y1 y2 y3 y4

x1 0 0 3 0 3

x2 6 5 0 3 6

x3 0 2 4 0 4

x4 4 0 10 7 10

0 0 0 0

3.1.2 Equality Subgraph

Misalkan terdapat suatu feasible vertex labelling pada graf G. Maka equality subgraph yang berkorespodensi dengan feasible vertex labelling l didefinisikan sebagai spanning subgraph dari G dengan himpunan edge El dengan El= {x,y E(G): l (x)+ l (y)= w(x,y)}, dan dinotasikan dengan Gl.

Contoh 3.3:

Akan ditentukan equality subgraph dari graf bipartit berbobot pada Gambar 3.2.

Penyelesaian:

Langkah pertama yaitu menghimpun edge El. Dari contoh 3.2 telah ditentukan feasible vertex labelling dari graf bipartit berbobot pada Gambar 3.2. El={x,y E(G): l (x)+ l (y)=w(x,y)}, maka rusuk El adalah edge-edge yang mempunyai bobot yang sama dengan bobot feasible vertex labelling yang telah diperoleh, yaitu

1 3 2 1 3 3 4 3

(x y x y x y x y . , , , )

Selanjutnya equality subgraph dapat diilustrasikan dengan Gambar 3.3. Dalam hal ini himpunan rusuk yang digambarkan hanyalah edge El.


(45)

x1 3

x2 6

4 x3

x4 10

y4 0 y3 0 y1

0

y3 0

Gambar 3.3 Equality subgraph dari graf bipartit berbobot Teorema 3.1 Misalkan l adalah feasible vertex labelling dari G. Jika equality

subgraph Gl mengandung sebuah matching sempurna M*, maka M* adalah matching optimal pada G.

Bukti:

Misalkan M* adalah matching sempurna dari suatu equality subgraph Gl, maka M* juga merupakan matching sempurna dari G karena Gl adalah spanning subgraph dari G. Masing-masing e M* merupakan anggota dari Gl dan simpul-simpul akhir dari edge pada M* cover setiap node tepat satu kali maka diperoleh:

*

( ) ( ) ( )

e M x V

w M w e l x

∈ ∈

=

=

(3...1)

jika M adalah sebarang matching sempurna lain dari G, maka

*

( ) ( ) ( )

e M x V

w M w e l x

∈ ∈

=

(3...2)

dari (1) dan (2) diperoleh w(M*) ≥ w(M). Maka M* adalah matching optimal dari G.

3.2 Algoritma Kuhn-Munkres

Untuk menyelesaikan optimal assignment problem, algoritma Kuhn-Munkres dapat direpresentasikan dengan graf bipartit. Adapun langkah-langkah dalam Algoritma Kuhn-Munkres adalah sebagai berikut:


(46)

Dimulai dengan sebarang feasible vertex labeling l, tentukan Gl, dan pilih sebarang matching M di Gl.

1. Jika X saturated oleh matching M, maka M adalah matching sempurna pada G (karena |X| = |Y|). maka M optimal. Stop.

Sebaliknya, jika terdapat beberapa unmatched x X. Definisikan S={X} dan T = Ø (S⊆X dan T⊆Y, S dan T adalah himpunan simpul yang unsaturated M pada lintasan M-alternating Gl Lanjutkan ke langkah (2).

2. Jika NGl(S)≠T dengan NGl adalah himpunan persekitaran dari S pada

equality subgraph Gl, maka lanjutkan ke langkah (3). Sebaliknya jika NGl(S)=T, hitunglah:

,

min { ( ) ( ) ( , )}

c l

x S y T

l x l y w x y

α = ∈ ∉ + −

dan tentukan feasible vertex labelling l baru dengan:

1 1 ( ) ' ( ) ( ) l v l l v l v α α −   = +  untuk untuk untuk v S v T v lainnya ∈ ∈

Catatan : αl> 0 dan NGl (S)≠T. Ganti l dengan l’dan Gl dengan Gl.

3. Pilih node y di NGl (S), yang tidak pada T. Jika y matched di bawah M,

dengan zX dan zyadalah matching maka ganti S dengan S ∪ {z} dan T dengan T ∪ {y}, ulangi ke langkah (2) dalam algoritma Kuhn-Munkres. Sebaliknya akan terdapat M-augmenting path dari x ke y, dan kita dapat menggunakannya untuk menemukan matching M’ yang lebih besar pada Gl. Ganti M dengan M’ dan ulangi langkah(1).

Bentuk flowchart dalam algoritma Kuhn-Munkres dalam menyelesaikan optimal assignment problem di bawah ini:


(47)

start

Apakah X adalah saturated M

Stop X saturated M

ya M"M*

S"{x} T"Ø

N(S)=T Stop

|N(S)<S|

S∪(z)"S T∪(y)"T

y adalah saturated M no

x฀X unsaturated M

ya

ya xy ฀ matching M no

(x,y) ada lintasan

M-augmenting

no

y adalah N(S)/T

M*=MΔ฀(P)


(48)

Contoh masalah 3.4:

Akan dicari solusi dari masalah 3.1 dengan menggunakan algoritma Kuhn-Munkres.

Penyelesaian:

1. Akan ditentukan feasible vertex labeling dan equality subgraph

Seperti yang telah dijelaskan sebelumnya, selalu terdapat kemungkinan untuk menemukan feasible vertex labeling. Salah satu caranya dengan menghimpun semua l y( )=0 dan yYdan untuk setiap xX , ambil nilai maksimum pada deretan yang sama.

( ) maxy Y ( , )

l x = w x y untuk xX

( ) 0

l y = untuk yY

Hal ini dapat diilustrasikan dengan Tabel 3.6, dengan menuliskan bobot maksimum xyyaitu w xy( )di kiri tabel untuk xX dan menuliskan 0 untuk

yY pada bagian bawah tabel.

Tabel 3.6 Feasible vertex labeling ke-1

y1 y2 y3

x1 3 5 4 5

x2 4 2 5 5

x3 2 4 5 5

0 0 0

Selanjutnya karena equality subgraph Gl didefinisikan sebagai spanning subgraph dari G dengan himpunan edge E2 dengan

{ ( ) : ( ) ( ) ( , )}

l

E = xyE G l x +l y =w x y , maka equality subgraph dapat diilustrasikan dengan Gambar 3.5.


(49)

x1 5

y1 0

x2 5

x3 5

y3 0 y2

0

Gambar 3.5 Equality subgraph ke-1

2. Akan dipilih sebarang matching M (ditandai dengan edge yang dicetak tebal) di Gl , yang diilustrasikan dengan Gambar 3.6.

x1

x2

x3 5

5

5

y1 0

y2 0

y3 0

Gambar 3.6 Sebarang matching M

3. Dari Gambar 3.5 dapat dilihat masih terdapat unmatched x2X , sehingga S ={ }x2 dan T =Ø. Lanjutkan pada langkah(2) dalam algoritma Kuhn-Munkres.

4. Karena NGl(S)≠T, maka dilanjutkan pada langkah ke-3 dalam algoritma

Kuhn-Munkres. Yaitu, pilih node y di NGl(S), yang bukan pada T. Jika y

matched di bawah M, dengan zXdan zyadalah matching maka ganti S dengan S ∪ {Z} dan T dengan T∪{y}.

5. Dalam hal ini y3 matched di bawah M. Karena x3 X dan

3 3


(50)

dengan T∪{ }y3 atau T ={ }y3 . Selanjutnya kembali ke langkah (2) dalam algoritma Kuhn-Munkres.

Karena

l G

N (S)=T maka akan dicari αl.

,

min { ( ) ( ) ( )}

c l

x S y T

l x l y w xy

α = ∈ ∈ + −

,

5 0 4, 5 0 2, min

5 0 2, 5 0 4,

c l

x S y T

α ∈ ∈

+ −   + −  =  + −   + −  2 1 2 2 3 1 3 2 ( ) ( ) ( ) ( ) x y x y x y x y =1

Selanjutnya akan dikonstruksi feasible vertex labeling baru dengan: 1 1 ( ) ' ( ) ( ) l v l l v l v α α −   = +  untuk untuk untuk v S v T v lainnya ∈ ∈

Diperoleh l’ pada Tabel 3.7

Tabel 3.7 Feasible vertex labeling ke-2

y1 y2 y3

x1 3 5 4 5

x2 4 2 5 4

x3 2 4 5 4

0 0 1

dan diperoleh equality subgraph baru dan sebarang matching M yang ditandai dengan edge yang dicetak tebal, diilustrasikan dengan Gambar 3.7.

x1 5 x2 5 x3 5 y3 0 y2 0 y1 0

Gambar 3.7 Equality subgraph ke -2

Karena equality subgraph baru Gl telah mengandung matching sempurna


(51)

solusi optimal dengan menjumlahkan nilai-nilai feasible vertex labeling baru, yaitu 5+4+4+0+0+1=14. Perhatikan bahwa nilai ini akan sama dengan total bobot dari matching sempurnaMyaitu:M = wx1y2+wx2y1+wx3y3=5+5+4=14

3.3 Penentuan Bobot Minimum

Dalam permasalahan tertentu, suatu solusi optimal tercapai jika nilai yang dihasilkan adalah nilai yang paling minimum. Seperti meminimumkan waktu, kerusakan dan beberapa kasus lainnya.

Untuk menyelesaikan permasalahan ini, maka dapat dilakukan dengan mencari jumlah paling minimum dari masing-masing bobot edge yang merupakan matching. Pencarian jumlah bobot minimum sangat berkaitan erat dengan pencarian bobot maksimum, dan hubungan antara keduannya dijelaskan oleh Teorema 4.2.

Teorema 3.2 Misalkan (Kn n, ', )w dengan adalah graf bipartit lengkap berbobot dengan bobot matriks W =(wxy), α adalah entri maksimum di W, Jn adalah matriks kuadrat n

yang semua entrinya satu. Misalkan W* =αJnW adalah matriks berbobot dari

, '

(Kn n,W*). Maka M adalah matching sempurna dengan bobot minimum dari jika dan hanya M adalah matching sempurna dengan bobot maksimum dari (Kn n, ',W*).

Dengan demikian, w M( )= −na w* (M). Contoh 3.3

Sebuah restoran ternama mengadakan lomba adu kecepatan dalam memasak, lomba ini diikuti oleh beberapa tim. Tiap tim terdiri 6 koki dan mendapatkan tugas untuk membuat 6 menu wajib. Tiap koki hanya boleh membuat satu menu. Koki selanjutnya dapat membuat satu menu berikutnya setelah koki sebelumnya selesai membuat satu menu sebelumnya. Daftar kecepatan salah satu tim dalam membuat satu menu sebelumnya. Daftar kecepatan salah satu tim dalam membuat setiap menu disajikan dalam Tabel 3.8, tentukan urutan koki dan menu yang dibuat, sehingga tim ini dapat menyelesaikan ke enam menu dengan waktu yang minimum.


(52)

Tabel 3.8 Daftar kecepatan kinerja tim

Koki

Menu

1 2 3 4 5 6

1 20 32 16 30 28 21

2 27 14 20 47 18 15

3 34 23 17 43 21 24

4 21 22 18 26 12 15

5 41 34 15 32 25 17

6 32 20 18 20 17 23

Penyelesaian

Masalah ini dapat diselesaikan dengan mengguanakan algoritma Kuhn-Munkres. Himpunan koki dianggap sebagai partisi X dan menu sebagai partisi Y.

Dengan teorema 3.2 diperoleh α = 47. Karena *

n

WJW maka *

47 n

W = JW.

1 1 1 1 1 1

20

32 16

30

28

21

1 1 1 1 1 1

27 14

20

47 18

15

1 1 1 1 1 1

34

23 17

43

21 24

*

47

1 1 1 1 1 1

21

22 18

26 12

15

1 1 1 1 1 1

41 34

15

32

25 17

1 1 1 1 1 1

32

20 18

20 17

23

W

 

 

 

 

=− 

 

 

 

 

 

47 47 47 47 47 47 20 32 16 30 28 21

47 47 47 47 47 47 27 14 20 47 18 15

47 47 47 47 47 47 34 23 17 43 21 24

47 47 47 47 47 47 21 22 18 26 12 15

47 47 47 47 47 47 41 34 15 32 25 17

47 47 47 47 47 47 32 20 18 20 17 23

27 15 31 17 19 26

20 33 2

                =−                    =

7 0 29 32

13 24 30 4 26 23

26 25 29 21 35 32

6 13 32 15 22 30

15 27 29 27 30 24

                 


(53)

Selanjutnya akan ditentukan nilai W*(M). Hal ini berarti menentukan matching sempurna M dengan bobot maksimum pada W*. Bobot dari masing-masing entri pada W* digambarkan pada Tabel 3.9.

Tabel 3.9 Bobot W*

y1 y2 y3 y4 y5 y6

x1 27 15 31 17 19 26

x2 20 33 27 0 29 32

x3 13 24 30 4 26 23

x4 26 25 29 21 35 32

x5 6 13 32 15 22 30

x6 15 27 29 27 30 24

Akan dicari matching sempurna M dengan bobot maksimum pada W* dengan menggunakan langkah-langkah algoritma Kuhn-Munkres.

1. Menentukan feasible vertex labeling dan equality subgraph. Diperoleh feasible vertex labeling pada Tabel 3.10, dan equality subgraph pada Gambar3.8.

Tabel 3.10 Feasible vertex labeling ke-1

y1 y2 y3 y4 y5 y6

x1 27 15 31 17 19 26 31

x2 20 33 27 0 29 32 33

x3 13 24 30 4 26 23 30


(54)

x1 31 x2 33 x3 30 x4 35 x5 32 x6 30 y1 0 y2 0 y3 y4 0 y5 0 y6 0 0

Gambar 3.8 Equality Subgraph ke-1

2. Menentukan sebarang matching M (ditandai dengan edge yang dicetak tebal) di Gl yang diilustrasikan dengan Gambar 3.8.

x1 31 x2 33 x3 30 x4 35 x5 32 x6 30 y1 0 y2 0 y3 y4 0 y5 0 y6 0 0


(55)

3. Dari Gambar 3.9 matching M belum sempurna, masih terdapat unmatched 6

3, 5,

x x xX, sehingga

6

3, 5

{ , }

S = x x x , ( ) { ,3 5}

l G

N S = y y dan T =φ. Karena itu dilanjutkan pada langkah(2) dalam algoritma Kuhn-Munkres.

4. Karena ( )

l G

N ST, maka dilanjutkan pada langkah(3) dalam algoritma Kuhn-Munkres. Yaitu, pilih node y di NGl(S) yang bukan pada T. Jika y matched di

bawah M, dengan zX dan zy adalah matching maka ganti S dengan

{ }

Sz dan T dengan T∪{ }y . Dalam hal ini y y matched di bawah M. 3, 5 Karena x x1, 4X

{

x y x y1 3, 4 5

}

matching, maka ganti S dengan

{ }

6

3, 5 1, 4

{x x x, }∪ x x atau

{

}

6

1, 3, 4, 5,

S= x x x x x dan ganti T dengan

3 5

{ , }

Ty y atau T ={ ,y y3 5}. Selanjutnya kembali ke langkah (2) dalam algoritma Kuhn-Munkres.

5. Karena ( )

l G

N S =T maka akan dicari αl .

,

min { ( ) ( ) ( )}

c l

x S y T l x l y w xy


(56)

,

31 0 27, 31 0 15, 31 0 17, 31 0 26, 30 0 13, 30 0 24, 3 00 4, 30 0 23, 35 0 26, 35 0 25, min

35 0 21, 35 0 32, 32 0 6, 32 0 13, 32 0 15, 32 0 30, 30 0 15, 30 0 27, 30 0 27, 30 0 24,

c l

x S y T

α ∈ ∈

+ −   + −   + −  + −   + −  + −   + −  + −   + −   + − =  + −   + −  + −   + −  + −   + −   + −  + − + − + −    

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

2 1 2 2 2 4 2 6 3 1 3 2 3 4 3 6 4 1 4 2 4 4 4 6 5 1 5 2 5 4 5 6 6 1 6 2 6 4 6 6 x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y 2 =

Selanjutnya akan dikontruksi feasible vertex labeling baru dengan: ( ) ' ( ) ( ) l l l v l l v l v α α −   = +  untuk untuk untuk v S v T v lainnya ∈ ∈

Diperoleh l’ pada Tabel 3.11

Tabel 3.11 Feasible vertex labeling ke-2

y1 y2 y3 y4 y5 y6

x1 27 15 31 17 19 26 29

x2 20 33 27 0 29 32 33

x3 13 24 30 4 26 23 28

x4 26 25 29 21 35 32 33

x5 6 13 32 15 22 30 30


(57)

dan diperoleh equality subgraph baru dengan M matching sebarang yang ditandai dengan edge yang di etak tebal, diilustrasikan dengan Gambar 3.10.

x1 29 x2 33 x3 28 x4 33 x5 30 x6 28 y1 0 y2 0 y3 y4 0 y5 2 y6 0 2

Gambar 3.10 Equality subgraph ke-2

6. α >l 0, dan dari Gambar 3.10 dapat dilihat

'( ) { ,3 5, 6}

l G

N S = y y y dan

{

3, 5

}

T = y y

'( )

l G

N ST. Maka ganti l dengan 'l dan G dengan l G l'

7. Karena S=

{

x x x x x1, 3, 4, 5, 6

}

,

{

}

'( ) 3, 5, 6

l G

N S = y y y dan T =

{

y y3, 5

}

'( )

l G

N ST, maka dilanjutkan pada langkah (3) dalam algoritma Kuhn-Munkres. Yaitu, pilih node y di

'( )

l G

N S yang bukan pada T. Jika y matched di bawah M, dengan zX dan zy adalah matching maka ganti S dengan

{ }

Sz dan T dengan T∪{ }y .

Dalam hal ini pilih y matched di bawah M. Karena 6 x5X x y matching, 5 6 maka ganti S dengan

{

x x x x x1, 3, 4, 5, 6

} { }

x3 atau S=

{

x x x x x1, 3, 4, 5, 6

}

dan T ganti dengan T

{ }

y6 atau T =

{

y y y3, 5, 6

}

.


(58)

8. Karena '

l G

N =Tmaka akan dicari αl'.

' ,

min { '( ) '( ) ( )}

c l

x S y T

l x l y w xy

α = ∈ ∈ + −

' ,

29 0 27, 29 0 15, 29 0 17, 28 0 13, 28 0 24, 28 0 4, 33 0 26, min 33 0 25, 33 0 21, 30 0 6, 30 0 13, 30 0 15, 28 0 15, 28 0 27, 28 0 27,

c l

x S y T

α ∈ ∈

+ −   + −   + −  + −   + −  + −   + −  = + −  + −  + −   + −   + −  + −   + −  + − 

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

( )

2 1 2 2 2 4 3 1 3 2 3 4 4 1 4 2 4 4 5 1 5 2 5 4 6 1 6 2 6 4 x y x y x y x y x y x y x y x y x y x y x y x y x y x y x y = 1

Selanjutnya akan dikontruksi feasible vertex labeling baru dengan:

' ' ( ) '' ( ) ( ) l l l v l l v l v α α −   = +  untuk untuk untuk v S v T v lainnya ∈ ∈

Diperoleh l’’ pada Tabel 3.12.

Tabel 3.12 l’’

y1 y2 y3 y4 y5 y6

x1 27 15 31 17 19 26 28


(59)

dan diperoleh equality subgraph baru dengan sebarang matching yang ditandai dengan edge bercetak tebal, diilustrasikan dengan Gambar 3.12.

x1 28 x2 33 x3 27 x4 32 x5 29 x6 27 y1 0 y2 0 y3 y4 0 y5 3 y6 1 3

Gambar 3.11 Equality subgraph ke-3

' 0

l

α > ,S =

{

x x x x x x1, 2, 3, 4, 5, 6

}

,T ={ ,y y y3 5, 6}dan dari Gambar 3.12 dapat

dilihat

{

}

'' 2, 3, 4, 5, 6

l G

N = y y y y y ,

''( )

l G

N ST, Maka ganti ''l dengan '''l dan

''

l

G dengan G . l'''

9. Karena ( )

l G

N ST, maka dilanjutkan pada langkah(3) dalam algoritma Kuhn-Munkres. Yaitu, pilih node y di NGl’’(S) yang bukan pada T. Jika y matched di

bawah M, dengan zX dan zy adalah matching maka ganti S dengan

{ }

Sz dan T dengan T∪{ }y . Dalam hal ini y y .Node 2, 4 y matched di 2

x3 13 24 30 4 26 23 27

x4 26 25 29 21 35 32 32

x5 6 13 32 15 22 30 29

x6 15 27 29 27 30 24 27


(60)

bawah M dan y4usaturated M. Oleh karena itu bentuk matching yang lebih

besar y dengan membuat 4 x y menjadi matching pada 6 4 G diilustrasikan pada l''

Gambar 3.14 .

x1 28 x2 33 x3 27 x4 32 x5 29 x6 27 y1 0 y2 0 y3 y4 0 y5 3 y6 1 3

Gambar 3.12 Matching pada Gl’’

Karenax x2 6X danx y2 2,x y6 4matching, maka gantiS dengan

{

x x x x x1, 3, 4, 5, 6

} {

x x2, 6

}

atauS=

{

x x x x x x1, 2, 3, 4, 5, 6

}

dan T ganti dengan

{

2, 4

}

Ty y atau T =

{

y y y y y2, 3, 4, 5, 6

}

. Selanjutnya kembali ke langkah(2).

10.Karena ''

l G

N =Tmaka akan dicari αl''

'' ,

min { ''( ) ''( ) ( )}

c l

x S y T l x l y w xy

α = ∈ ∈ + −

'' ,

28 0 27, 33 0 20, 27 0 13, min

32 0 26, 29 0 6, 27 0 15,

c l

x S y T

α ∈ ∈

+ −   + −   + − =  + −   + −  + −  1 1 2 1 3 1 4 1 5 1 6 1 ( ) ( ) ( ) ( ) ( ) ( ) x y x y x y x y x y x y 1 =


(61)

'' ''

''( ) ''' ''( ) ''( )

l

l l v l l v l v

α α −  

= +



untuk untuk untuk

v S

v T v lainnya

∈ ∈

Diperoleh '''l pada Tabel 3.13

Tabel 3.13 l’’’

dan diperoleh equality subgraph baru dan sebarang matching yang ditandai dengan edge bercetak tebal, diilustrasikan dengan Gambar 3.13.

y1 y2 y3 y4 y5 y6

x1 27 15 31 17 19 26 27

x2 20 33 27 0 29 32 32

x3 13 24 30 4 26 23 26

x4 26 25 29 21 35 32 31

x5 6 13 32 15 22 30 28

x6 15 27 29 27 30 24 26


(62)

x1 27 x2 32 x3 26 x4 31 x5 28 x6 26 y1 0 y2 1 y3 y4 1 y5 4 y6 2 4

Gambar 3.13 Equality subgraph dan sebarang matching

'' 0

l

α > ,S =

{

x x x x x x1, 2, 3, 4, 5, 6

}

,T ={y y y y y2, 3, 4, 5, 6}dan dari Gambar 3.14

dapat dilihat

{

}

''' 1, 2, 3, 4, 5, 6

l G

N = y y y y y y ,

'''( )

l G

N ST , Maka ganti ''l dengan '''

l dan G dengan l'' G . l'''

11.Karena

'''( )

l G

N ST, maka dilanjutkan pada langkah(3) dalam algoritma Kuhn-Munkres. Yaitu, pilih node y di NGl’’(S) yang bukan pada T. Jika y

matched di bawah M, dengan zXdan zy adalah matching maka ganti S dengan S∪{ }z dan T dengan T∪{ }y . Dalam hal ini y . Node 1 y 1 unsaturated M, namun y tidak dapat dibuat menjadi saturated M karena 1

terdapat matching x y . Berdasarkan langkah(3) dalam algoritma Kuhn-1 3

Munkres, terdapat lintasan M-augmenting dari x ke y yaitu x y x y . 3 3 1 1

Selanjutnya agar y saturated M, maka harus dicari matching menjadi tidak 1

matching dan sebaliknya pada lintasan M-augmenting. Sehingga diperoleh matching baru diilustrasikan pada Gambar 3.16.


(63)

x1 27

x2 32

x3 26

x4 31

x5 28

x6 26

y1

y2

y3

y4

y5

y6

Gambar 3.14 Matching sempurna

Selanjutnya kembali ke langkah(1). Karena telah terdapat matching sempurna

1 1 2 2 3 3 4 5 5 6 6 4

( , , , , , )

M = x y x y x y x y x x x y dan dengan bobot maksimum pada ' 27 32 26 31 28 26 0 1 4 1 4 2 182

w = + + + + + + + + + + + = .

Dari teorema w M( )= −na w M'( )

Maka diperoleh w M( )=6.47 182−

=100

Dengan demikian diperoleh matching sempurna M dengan bobot minimum dari graf bipartitlengkap berbobot pada Gambar 3.1 yaitu

1 1 2 2 3 3 4 5 5 6 6 4

( , , , , , )

M = x y x y x y x y x x x y dengan jumlah bobot 100.

Oleh karena itu diperoleh penyelesaian optimal sebagai berikut: Menu 1 dibuat oleh koki 1

Menu 2 dibuat oleh koki 2 Menu 3 dibuat oleh koki 3 Menu 4 dibuat oleh koki 6 Menu 5 dibuat oleh koki 4 Menu 6 dibuat oleh koki 5


(64)

3.4 Implementasi dan Pengujian

Dari contoh 3.4 dan 3.5 yang merupakan contoh optimal assignment problem, dapat dilihat representasi algoritma Kuhn-Munkres pada graf bipartit menghasilkan suatu solusi optimal assignment problem. Untuk lebih meyakini kebenaran dari solusi yang telah diperoleh, maka dapat diuji dengan menggunakan sebuah program sederhana yang merupakan implementasi dari algoritma Kuhn-Munkres dengan menggunakan bahasa java. Kebutuhan minimum sistem yang diperlukan untuk menjalankan program ini disajikan pada Tabel 3.14.

Tabel 3.14 Spesifikasi minimum sistem

Jenis kebutuhan pada sistem Spesifikasi minimum

Tipe processor Processor Intel Pentium Dual-Core inside

Kapasitas memori RAM 1GB

Sistem Operasi Windows 98/2000/NT/XP

Kebutuhan Software Java Runtime Environtment (JRE) versi 1.6

3.4.1 Tampilan Program dan Hasil Pengujian Solusi

Untuk permasalahan 3.4 disajikan pada Gambar 3.14. Selanjutnya dihasilkan nilai yang sama dengan perhitungan secara manual. Hasil perhitungan disajikan pada Gambar 3.15.


(65)

Gambar 3.16 Hasil perhitungan permasalahan

Sedangkan untuk permasalahan minimum disajikan pada Gambar 3.16. Dalam hal ini juga diperoleh hasil yang sama dengan perhitungan manual. Hasil perhitungan disajikan pada Gambar 3.18.


(66)

(67)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Dari penjelesan yang telah diuraikan sebelumnya, maka dapat disimpulkan beberapa hal sebagai berikut:

1. Optimal assignment problem merupakan masalah penempatan untuk memperoleh solusi yang optimal. Optimal assignment problem dapat diselesaikan dengan menerapkan konsep graf, yaitu dengan mencari matching sempurna dengan bobot maksimum atau minimum pada suatu graf bipartit khususnya graf bipartit lengkap berbobot.

2. Pencarian solusi optimal assignment problem dapat berupa pencarian solusi maksimum ataupun minimum. Untuk masalah pencarian solusi maksimum dapat lansung menerapkan algoritma Kuhn-Munkres dan diperoleh hasilnya. Sedangkan untuk masalah pencarian solusi minimum dapat digunakan Teorema 4.2 pada tugas akhir ini, selanjutnya baru menerapkan algoritma Kuhn-Munkres.

4.2 Saran

Adapun saran untuk penulisan selanjutnya yaitu:

1. Untuk mempercepat penyelesaian langkah algoritma Kuhn-Munkres sebaiknya matching pada equality subgraph dipilih matching yang maksimum.

2. Penggunaan algoritma lain, sehingga dapat dibandingkan algoritma mana yang paling efektif untuk diterapkan dalam pencarian solusi dari optimal assignment problem.


(68)

3. Pembuatan program pengujian dengan menggunakan bahasa program yang berbeda sehingga dapat dibandingkan kelemahan dan kelebihan masing-masing.


(1)

3.4 Implementasi dan Pengujian

Dari contoh 3.4 dan 3.5 yang merupakan contoh optimal assignment problem, dapat dilihat representasi algoritma Kuhn-Munkres pada graf bipartit menghasilkan suatu solusi optimal assignment problem. Untuk lebih meyakini kebenaran dari solusi yang telah diperoleh, maka dapat diuji dengan menggunakan sebuah program sederhana yang merupakan implementasi dari algoritma Kuhn-Munkres dengan menggunakan bahasa java. Kebutuhan minimum sistem yang diperlukan untuk menjalankan program ini disajikan pada Tabel 3.14.

Tabel 3.14 Spesifikasi minimum sistem

Jenis kebutuhan pada sistem Spesifikasi minimum

Tipe processor Processor Intel Pentium Dual-Core inside

Kapasitas memori RAM 1GB

Sistem Operasi Windows 98/2000/NT/XP

Kebutuhan Software Java Runtime Environtment (JRE) versi 1.6

3.4.1 Tampilan Program dan Hasil Pengujian Solusi

Untuk permasalahan 3.4 disajikan pada Gambar 3.14. Selanjutnya dihasilkan nilai yang sama dengan perhitungan secara manual. Hasil perhitungan disajikan pada Gambar 3.15.


(2)

Gambar 3.16 Hasil perhitungan permasalahan

Sedangkan untuk permasalahan minimum disajikan pada Gambar 3.16. Dalam hal ini juga diperoleh hasil yang sama dengan perhitungan manual. Hasil perhitungan disajikan pada Gambar 3.18.


(3)

(4)

BAB 4

KESIMPULAN DAN SARAN

4.1 Kesimpulan

Dari penjelesan yang telah diuraikan sebelumnya, maka dapat disimpulkan beberapa hal sebagai berikut:

1. Optimal assignment problem merupakan masalah penempatan untuk memperoleh solusi yang optimal. Optimal assignment problem dapat diselesaikan dengan menerapkan konsep graf, yaitu dengan mencari matching sempurna dengan bobot maksimum atau minimum pada suatu graf bipartit khususnya graf bipartit lengkap berbobot.

2. Pencarian solusi optimal assignment problem dapat berupa pencarian solusi maksimum ataupun minimum. Untuk masalah pencarian solusi maksimum dapat lansung menerapkan algoritma Kuhn-Munkres dan diperoleh hasilnya. Sedangkan untuk masalah pencarian solusi minimum dapat digunakan Teorema 4.2 pada tugas akhir ini, selanjutnya baru menerapkan algoritma Kuhn-Munkres.

4.2 Saran

Adapun saran untuk penulisan selanjutnya yaitu:

1. Untuk mempercepat penyelesaian langkah algoritma Kuhn-Munkres sebaiknya matching pada equality subgraph dipilih matching yang maksimum.

2. Penggunaan algoritma lain, sehingga dapat dibandingkan algoritma mana yang paling efektif untuk diterapkan dalam pencarian solusi dari optimal assignment problem.


(5)

3. Pembuatan program pengujian dengan menggunakan bahasa program yang berbeda sehingga dapat dibandingkan kelemahan dan kelebihan masing-masing.


(6)

DAFTAR PUSTAKA

Bazaara, Mokhtar, S. and Jarvis, John, S. (1977), Linear Programming And Network Flows. Canada

Brualdi, Richard A. (2004). Introduction Combinatorics fourth edition, Pearson Prentice Hall, New Jersey.

Cormen, Thomas dkk. (1994). Algorithms. McGraw-Hill Book Company.

Deo, Narsingh. (1980). Graph Theory With Application To Engineering and Computer Science. Prentice Hall of India, New Delhi.

Dingzhu Du (1999). Handbook of Combinatorial Optimization; Volume A. Springer. Johnsonbaugh, Richard.(1998). Matematika Diskrit. PT. Prenhallindo, Jakarta.

Munir, Rinaldi. (2007).Algoritma Pemrograman dalam Bahasa Pascal dan C. Informatika, Bandung.

Munir, Rinaldi.(2007). Matematika diskrit Edisi Ketiga. Informatika, Bandung. Rosen, Kenneth H. (1998). Discrete Mathematics and Its Application. McGraw-Hill. Vasudev C. (2006). Graph Theory with Applications, New Age International, New