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
1 2
3
, ,
y y y yang masih kosong. Perusahaan telah mengadakan penilaian terhadap 3 orang karyawan
1 2
3
, ,
x x x . 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 x3
2 4
5
Universitas Sumatera Utara
Penyelesaian: Tabel 3.1 dapat diilustrasikan dengan graf bipartit berbobot seperti gambar
berikut:
3 4
5 4
2 5
2 4
5
x
1
x
3
y
1
y
2
y
3
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.
1 1 1
2 2
3 3
, ,
M x y x y x y
= dengan
1 1 1
2 2 3 3
M x y
x y x y
w w
w w
= +
+
3 2 5 10
= + + =
2.
2 1 1
2 3
3 2
, ,
M x y x y x y
= dengan
2 1 1
2 3 3 2
M x y
x y x y
w w
w w
= +
+
3 5 4 12
= + + =
3.
3 1
3 2
2 3 1
, ,
M x y x y x y
= dengan
3 1 3
2 2 3 1
M x y
x y x y
w w
w w
= +
+
4 2 2 8
= + + =
4.
4 1
2 2
1 3
3
, ,
M x y x y x y
= dengan
4 1 2
2 1 3 3
M x y
x y x y
w w
w w
= +
+
5 4 5 14
= + + =
Universitas Sumatera Utara
5.
5 1
3 2
1 3
2
, ,
M x y x y x y
= dengan
5 1 3
2 1 3 2
M x y
x y x y
w w
w w
= +
+
4 4 4 12
= + + =
6.
6 1
2 2
3 3 1
, ,
M x y x y x y
= 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
4 1
2 2
1 3
3
, ,
M x y x y x y
= . 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.
3.1.1 Feasible Vertex Labelling
Universitas Sumatera Utara
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 x X
∈ dan
y Y
∈
berlaku: lx+ l y
≥ wx,y Selalu terdapat kemungkinan untuk menemukan feasible vertex labelling.
Salah satu caranya dengan mendefinisikan semua ly=0 untuk y Y dan untuk setiap
x X, ambil bobot maksimum pada rusuk yang berajasen dengan x.
max ,
y 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
x
1
3 6
y
1
4 5
x
2
y
2
x
3
3 2
4
10 7
y
3
x
4
y
4
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 3
x2 6
5 3
Universitas Sumatera Utara
x3 2
4 x4
4 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.
max ,
y 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 tabelperhatikan Tabel 3.4.
Tabel 3.4 Nilai x maksimum
y1 y2
y3 y4
X max x1
3 3
x2 6
5 3
6 x3
2 4
4 x4
4 10
7 10
Maka diperoleh feasible vertex labelling yang diilustrasikan dengan Tabel 3.5. y1
y2 y3
y4 x1
3 x2
6 5
3 x3
2 4
x4 4
10 7
Universitas Sumatera Utara
Tabel 3.5 Feasible vertex labeling dari graf bipartit berbobot
y1 y2
y3 y4
x1 3
3 x2
6 5
3 6
x3 2
4 4
x4 4
10 7
10
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 E
l
dengan E
l
= {x,y EG:
l x+ l y= wx,y}, dan dinotasikan dengan G
l
.
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. E
l
={x,y EG:
l x+ l y=wx,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 E
l
.
Universitas Sumatera Utara
x
1
3
x
2
6
4 x
3
x
4
10 y
4
y
3
y
1
y
3
Gambar 3.3 Equality subgraph dari graf bipartit berbobot Teorema 3.1 Misalkan l adalah feasible vertex labelling dari G. Jika equality
subgraph G
l
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 G
l
adalah spanning subgraph dari G. Masing-masing e
M merupakan anggota dari G
l
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 wM
≥ wM. Maka M adalah matching optimal dari G.
3.2 Algoritma Kuhn-Munkres