PENCARIAN PERFECT MATCHING MAKSIMUM PADA GRAPH BIPARTISI BERBOBOT DENGAN MENGGUNAKAN ALGORITMA PRIMAL DUAL
MATCHING
Siti Muyasaroh1, Sapti Wahyuningsih2, Susy Kuspambudi A3 Universitas Negeri Malang
E-mail: muya_saroh82@ymail.com
Abstrak : Matching merupakan permasalahan yang memasangkan tepat satu. Sedangkan perfect matching di G=(V,E) adalah matchingM dengan setiap titik di V terkait dengan tepat satu sisi di M sedangkan matching berukuran maksimum di graph G adalah
matching M yang mempunyai ukuran terbesar. Algoritma primal dual matching merupakan salah satu algoritma yang dapat digunakan ke n untuk menyelesaikan permasalahan
matching. Pada algoritma primal dual matching, pemilihan sisi ditentukan oleh feasible vertex labeling di man bobot sisi terbesar di pilih untuk dijadikan sisi pada graph baru. Penerapan algoritma primal dual matching pada permasalahan matching dapat memperoleh solusi yang optimum. Hal ini terjadi karena pemilihan sisinya ditentukan dengan memilih sisi yang mempunyai sisi yang memiliki bobot maksimum. Selain itu, algoritma primal dual
matching lebih efisien di banding algoritma lain karena pencarian perfect matching lebih cepat.
Kata Kunci: Algoritma Primal Dual Matching, Matching, Perfect Matching Maksimum
Abstract: Matching is a problem that pairing the right one. While perfect matching in G = (V, E) is a matching M with every point in V associated with exactly one sided in M while the maximum size matching in graph G is matching M that has the largest size. Primal dual matching algorithm is one of algorithms which can be used to n to resolve matching
problems. In the primal dual matching algorithm, the selection of the feasible vertex labeling is determined by the weight of the largest in the man chosen to be on the side of the new graph. Application of primal dual algorithm matching the matching problem can obtain the optimum solution. This occurs because the selection is determined by choosing the side that has the side that has the maximum weight. In addition, primal dual matching algorithm more efficient than other algorithms for perfect matching search faster.
Keywords: Primal Dual Algorithm Matching, Matching, Perfect Matching Maximum
Matching merupakan permasalahan dengan ketentuan berpasangan tepat satu-satu, misalnya saja pada masalah penugasan, penjodohan dan masalah pengujian obat. Perfect matching di G=(V,E) adalah matchingM dengan setiap titik di V terkait dengan tepat satu sisi di M sedangkan matching maksimum adalah matching berukuran maksimum di G adalah
matching M yang mempunyai ukuran .Pada artikel ini membahas penyelesaian permasalahan Matching dengan menggunakan algoritma primal dual matching.
Untuk menyelesaikan permasalahan matching dapat digunakan berbagai algoritma, diantaranya adalah algoritma path augmenting dan algoritma greedy. Algoritma primal dual
matching merupakan algoritma yang dapat memperluas atau memprsempit matching dari batasan-batasan yang ada, sehingga terdapat beberapa alternatif dalam menentukan solusi. Algoritma primal dual matching diawali dengan pemilihan feasible vertex labeling di mana sisi yang memiliki bobot maksimum terpilih untuk dijadikan graph baru.Untuk mambahas permasalahan ini, diperlukan formulasi sebagai berikut :
Primal
Variabel didefinisikan sebagai berikut
Untuk memaksimalkan matching , berdasarkan teori dualitas maka diproleh fungsi tujuan : ∑
Dengan batasan-batasan sebagai berikut :
∑ ∑
Dalam hal ini, 1 merupakan banyaknya kapasitas sumber yang diharapkan sedangkan
Dual
Untuk meminimalkan banyaknya titik yang terkait pada sisi matching, berdasarkan teori dualitas diperoleh fungsi tujuan : ∑
adalah titik yang terkait pada sisi matching
Batasan-batasan
Keterangan :
: sisi yang terhubung : bobot sisi
: titik sumber : titik tujuan
: titik yang terkait dengan matching
: titik yang terkait yang berada di himpunan titik : titik yang terkait yang berada di himpunan titik Hasil yang diharapkan
Hasil yang diharapkan pada artikel ini adalah dengan primal dual matching dapat menghasilkan alternatif solusi yang lebih bervariasi. Algoritma primal dual matching juga dapat menghasilkan solusi yang optimum karena memasangkan sisi yang mempunyai bobot yang maksimum. Algoritma primal dual matching dapat lebih efektif dan efisien dari pada algoritma lain karena pada pemilihan sisi hanya dilakukan pada sisi yang nilai feasible vertex labelling-nya sama dengan nol.
Pembahasan
Algoritma Primal Dual Matching pada Matching
Berdasarkan pada Penyelesaian permasalahan matching dengan menggunakan
algoritma primal dual matching melalui beberapa langkah. Langkah – Langkah penyelesaian yang dimaksud yaitu :
Langkah I
1. Gambar graph bipartisi
2. Representasikan bobot ke dalam matrik berbobot
3. Definisikan y sebagai feasible vertex labeling dengan ( )
, Bentuk tabel untuk mempermudah pemberian feasible vertex labeling
1, jika sisi (i,j) adalah sisi matching 0, jika sisi (i,j) adalah bukan sisi matching
Langkah II : primal Step
4. Bangun graphGy , di mana Gy=( ) | ( ) } 5. Pilih sembarang Mathing M di Gy dengan menggunakan algoritma path augmenting, jika
tidak ditemukan titik bebas dan sisinya insident maka M adalah perfect matching. Jika tidak, bentuk : kemudian himpun
{ } lanjutkan ke Dual step Langkah III : Dual Step
6. Cari nilai , di mana 7. Perluas dengan {
8. Perbesar matchingM dengan menggunakan path augmenting kemudian cari sehingga menghasilkan perfect matching maksimum M* dengan nilai dual ∑ ∑ , jika belum perfect matching maksimum maka
kembali ke langkah 7
Contoh Permasalahan matching menggunakan algoritma primal dual matching
Sebagai gambaran pembahasan permasalahan Matching menggunakan algoritma primal dual
matching, diberikan contoh permasalahan beserta penyelesaiannya yaitu :
Misalkan jika terdapat pelamar kerja sebanyak 4 orang dan 4 posisi kerja yang diinginkan, seperti yang digambarkan pada tabel di bawah ini :
Tabel 1 pelamar kerja dan posisi kerja
Nama Pelamar Kerja Posisi Kerja
Aziz Marketing
Fuad Admin
Rama Customer Service
Andri HRD
Untuk menentukan perfect matching maksimum dari graph G pada Gambar 3.1 diatas dipergunakan algoritma primal-dual oleh Mohammad R. Salavatipour. Langkah-langkah penyelesaiannya adalah sebagai berikut :
Langkah I
1. Representasi graph
Gambar 1 : Reperentasi Graph
a 1 a 2 a 3 a 4 b 1 b 2 b 3 b 4 1 0 9 7 6 7 8 5 5 6 8 8 6
A
B
2. Representasi matrik berbobot (8 7 8 6 6 8 5 8 9 6 9 7 8 5 10 6 )
3. Dengan menggunakan feasible vertex labeling diperoleh tabel sebagai berikut
Tabel 2 : feasible vertex labelling
yai 6 10 5 8 10 7 9 6 9 9 8 5 7 6 8 7 8 8 6 8 ybj 0 0 0 0
Langkah II : Primal Step
4. Membangun graphGy , di mana Gy= ( ) , sehingga diperoleh matrik baru berikut :
(0 7 0 6 6 0 5 0 0 6 0 7 8 5 0 6 )
Gambar 2 : Hasil iterasi primal 1
5. Dengan menggunakan algoritma path aughmenting diperoleh M = {(a1,b2),(a2,b4),(a4,b3)} a1 a3 a2 a4 b4 b3 b2 b1 A B
Gambar 3: hasil iterasi primal 2
karena masih ada titik bebas maka ditemukan S = {a3}, : maka L = {a3-b3-a4} dilanjutkan ke dual step Langkah III : Dual step
6. Karena diperoleh L = {a3-b3-a4} sehingga untuk menghitung adalah
7. Diperoleh nilai minimum adalah = 1,untuk Maka :
Sehingga pilih sisi ditambahkan ke Ey.
8. Ditemukan path augmenting P = {(a3,b3),(a4,b3),(a4,b1)}, dengan M =
{(a1,b2),(a2,b4),(a4,b3)} sehingga
Tabel 3: hasil iterasi akhir
yai 5 0 6 8 10 7 9 6 9 9 8 5 0 6 8 0 7 8 6 7 ybj 1 0 0 0
Dari tabel di atas diperoleh :
Nilai Dual : ∑ ∑
Karena ∑ ∑ dan semua sisi incident maka diperoleh perfect matching maksimum dengan M*={ }
a1 a3 a2 a4 b4 b3 b2 b1 A B
Gambar 4 : hasil iterasi terakhir
Analisa Algoritma Primal Dual Matching pada Matching
Permasalahan matching menggunakan algoritma primal dual matching dimulai dengan pemilihan feasible vertex labelling yaitu dengan mencari sisi yang memiliki bobot maksimum. Proses pencarian perfect matching relatif cepat karena adanya pemilihan sisi dengan tidak akan terpilih lagi untuk iterasi selanjutnya,dan langsung ditemukan perfect matching. Selain itu, langkah pencarian perfect mathing maksimum sangat unik karena terdiri dari beberapa step, sehingga hasil yang diperolehpun lebih optimal. Namun, dalam proses penyelesaiannya algoritma primal dual membutuhkan ketelitian dalam menghitung
banyaknya sisi dan menentukan titik yang memiliki sisi minimum. Algoritma ini juga tidak bisa berdiri sendiri dalam pencarian matching.
Kesimpulan dan Saran
1. Untuk menentukan perfect matching maksimum pada graph bipartisi berbobot dapat digunakan algoritma primal dual matching . Pencarian dengan menggunakan algoritma ini dimulai dengan langkah mencari bobot terbesar untuk dijadikan Graph baru dalam proses pencarian matching maksimum dalam primal step, jika matching yang ditemukan belum perfect matching maka bentuk : kemudian himpun { } kemudian pencarian tetap dilanjutkan sampai ke dual step. Selanjutnya adalah menghitung nilai , di mana ,Perluas dengan
{
Dari perhitungan memperbesar matchingM dengan menggunakan algoritma greedy
atau algoritma path augmenting kemudian cari sehingga menghasilkan perfect matching maksimum M* dengan nilai dual ∑ ∑ 2. Algoritma primal dual matching dapat diterapkan dalam beberapa kasus. Salah satu
kasus yang diterapkan pada artikel ini adalah pada kasus penempatan karyawan. Dalam algoritma primal dual matching,proses graph pencarian perfect matching maksimum dengan menggunakan algoritma primal dual matching relatif lebih cepat hal ini dikarenakan pada algoritma primal dual matching penghitungan selisih bobot sisi minimum yang nantinya tidak dapat dipilih kembali sehingga proses menenentukan
perfect matching lebih cepat. Sedangkan kelemahannya adalah membutuhkan ketelitian yang lebih dalam menghitung dan menentukan titik yang memilki sisi paling minimum serta algoritma ini membutuhkan algoritma lain dalam penyelesaiannya. Namun
algoritma ini merupakan metode alternatif dalam menyelesaikan masalah matching pada graph bipartisi khususnya graph bipartisi lengkap maupun tidak lengkap.
a 1 a 2 a 3 a 4 b 1 b 2 b 3 b 4 1 0 9 7 6 7 8 5 5 6 8 8 6
A
B
Daftar Rujukan
Slavatipour,Mohammad R. 2009. Primal Dual Matching Algoritma and Non-Bipartite Graph.Journal Mathematic,CMPUT675