Desain dan Analisis Algoritma Modifikasi Hungarian untuk Permasalahan Penugasan Dinamis Pada Studi Kasus Permasalahan SPOJ Klasik 12749

dokumen-dokumen yang mirip
Desain dan Analisis Algoritma Pembangkitan Convex Hull 3 Dimensi dan Visualisasinya

Desain dan Analisis Struktur Data Non Linier Rooted Tree Dinamis

Optimasi Permasalahan Penugasan Dokter Menggunakan Representasi Graf Bipartit Berbobot

Penjadwalan Petugas Medis pada Kondisi Darurat dengan Menggunakan Binary Integer Programming Berbasis Web

Implementasi Algoritma Rijndael dengan Menggunakan Kunci Enkripsi yang Berukuran Melebihi 256 bit

PRESENTASI TUGAS AKHIR KI IMPLEMENTASI ALGORITMA PENCARIAN K JALUR SEDERHANA TERPENDEK DALAM GRAF

SISTEM PENUNJANG KEPUTUSAN UNTUK OPTIMASI PENUGASAN DALAM PROYEK PENGEMBANGAN WEBSITE DENGAN MENGGUNAKAN ALGORITMA HUNGARIAN

Desain dan Analisis Algoritma Pencarian Prediksi Hasil Penjumlahan Beberapa Urutan Berkala dengan Metode Eliminasi Gauss

DESAIN DAN ANALISIS STRUKTUR DATA NON LINIER ROOTED TREE DINAMIS (Kata kunci: Graf, Struktur data, tree, LCA, pemrograman dinamis)

Penerapan Teknik Dekomposisi Square Root dan Algoritma Mo s pada Rancangan Algoritma Studi Kasus: SPOJ Klasik Counting Diff-Pairs

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

Pemanfaatan Algoritma Hybrid Ant Colony Optimization dalam Menyelesaikan Permasalahan Capacitated Minimum Spanning Tree. Tamam Asrori ( )

Implementasi Metode Pairwise Comparison pada Uji Kinerja Varian Metode Kecerdasan Buatan pada Penyelesaian Masalah TSP

TUGAS AKHIR KI KARSTEN ARI AGATHON NRP Dosen Pembimbing 1 Victor Hariadi, S.Si., M.Kom.

PENGEMBANGAN SHORTEST PATH ALGORITHM (SPA) DALAM RANGKA PENCARIAN LINTASAN TERPENDEK PADA GRAF BERSAMBUNG BERARAH BERUNTAI

BAB I PENDAHULUAN. Kompetisi Global yang kian hari kian meningkat memaksa perusahaan

Pewarnaan Total Pada Graf Outerplanar

Desain dan Analisis Algoritma Pencarian Prediksi Hasil Penjumlahan Beberapa Urutan Berkala dengan Metode Eliminasi Gauss

Penerapan Teori Graf Pada Algoritma Routing

BAB 2 LANDASAN TEORI. 2.1 Penugasan Sebagai Masalah Matching Bobot Maksimum Dalam Graf Bipartisi Lengkap Berlabel

Implementasi Pencocokan String Tidak Eksak dengan Algoritma Program Dinamis

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Assignment Problem. kolom. Di dalam matriks A yang berukuran m baris dan n kolom (m x n), adalah elemen matriks pada baris ke- dan kolom ke-.

PENERAPAN TEORI GRAF UNTUK MENYELESAIKAN MASALAH MINIMUM SPANNING TREE (MST) MENGGUNAKAN ALGORITMA KRUSKAL

PENCARIAN MAKSIMUM CLIQUE DALAM GRAF DENGAN MENGGUNAKAN ALGORITMA BRANCH AND BOUND

UNIVERSITAS GUNADARMA

PENGEMBANGAN LONGEST PATH ALGORITHM (LPA) DALAM RANGKA PENCARIAN LINTASAN TERPANJANG PADA GRAF BERSAMBUNG BERARAH BERUNTAI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

REPRESENTASI ALGORITMA KUHN-MUNKRES PADA GRAF BIPARTIT UNTUK MENYELESAIKAN OPTIMAL ASSIGNMENT PROBLEM SKRIPSI DESNI RAHMALINA.

Perbandingan Algoritma Dijkstra Dan Algoritma Ant Colony Dalam Penentuan Jalur Terpendek

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

Perbandingan Kompleksitas Algoritma Prim, Algoritma Kruskal, Dan Algoritma Sollin Untuk Menyelesaikan Masalah Minimum Spanning Tree

Studi Algoritma Optimasi dalam Graf Berbobot

PERBANDINGAN KOMPLEKSITAS PENERAPAN ALGORITMA GREEDY UNTUK BEBERAPA MASALAH

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

JURNAL SAINS DAN SENI ITS Vol. 4, No.2, (2015) ( X Print) A-31

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Struktur dan Organisasi Data 2 G R A P H

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

Algoritma Penentuan Graf Bipartit

BAB 2 LANDASAN TEORI

Bilangan Kromatik Graf Hasil Amalgamasi Dua Buah Graf

Penerapan Algoritma Backtracking pada Pewarnaan Graf

STUDI PERBANDINGAN ALGORITMA CHEAPEST INSERTION HEURISTIC DAN ANT COLONY SYSTEM DALAM PEMECAHAN TRAVELLING SALESMAN PROBLEM

Pengelompokan Organisme Dengan Menggunakan Algoritma Kruskal

Aplikasi Teori Graf dalam Penggunaan Cairan Pendingin pada Proses Manufaktur

LOGIKA DAN ALGORITMA

BAB II LANDASAN TEORI

Bab 2. Teori Dasar. 2.1 Definisi Graf

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem

Implementasi Graf dalam Penentuan Rute Terpendek pada Moving Object

MASALAH VEKTOR EIGEN MATRIKS INVERS MONGE DI ALJABAR MAX-PLUS

Langkah Awal menuju Analisis Kompleksitas Algoritma

Elvira Firdausi Nuzula, Purwanto, dan Lucky Tri Oktoviana Universitas Negeri Malang

Sistem Rekonstruksi Rute Perjalanan Dengan GPS Untuk Efisiensi Proses Update Posisi

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor

Algoritma Vertex Cover dan Aplikasinya

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

BAB I PENDAHULUAN 1.1 Latar Belakang

Pengukuran Beban Komputasi Algoritma Dijkstra, A*, dan Floyd-Warshall pada Perangkat Android

BAB 2 LANDASAN TEORI

Keterkaitan Sektor Ekonomi di Provinsi Jawa Timur

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

Implementasi Algoritma Pencarian k Jalur Sederhana Terpendek dalam Graf

Pemilihan Susu Formula untuk Memenuhi Asupan Gizi pada Balita dengan Metode Finite Covering

STUDI DAN IMPLEMENTASI ALGORITMA DIJKSTRA, BELLMAN-FORD DAN FLOYD-WARSHALL DALAM MENANGANI MASALAH LINTASAN TERPENDEK DALAM GRAF

BAB 2 LANDASAN TEORI. Algoritma adalah urutan atau deskripsi langkah-langkah untuk memecahkan suatu masalah.

Prediksi Indeks Saham Syariah Indonesia Menggunakan Model Hidden Markov

JURNAL TEKNIK ITS Vol. 6, No. 1, (2017) ISSN: ( Print) A-51

BAB 3 METODOLOGI Metode Penelitian. Dalam melakukan penelitian akan permasalahan ini, penulis menggunakan metode

PENYELESAIAN MASALAH LINTASAN TERPENDEK FUZZY DENGAN MENGGUNAKAN ALGORITMA CHUANG KUNG DAN ALGORITMA FLOYD

TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL

VISUALISASI PENCARIAN LINTASAN TERPENDEK ALGORITMA FLOYD- WARSHALL DAN DIJKSTRA MENGGUNAKAN TEX

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Penerapan Graf dalam Optimasi Jalur Penerbangan Komersial dengan Floyd-Warshall Algorithm

LIPATAN GRAF DAN KAITANNYA DENGAN MATRIKS INSIDENSI PADA BEBERAPA GRAF

PERBANDINGAN ALGORITMA DSATUR DAN ALGORITMA VERTEX MERGE UNTUK MENENTUKAN CHANNEL WLAN. Handrizal

Aplikasi Algoritma Greedy pada Optimasi Pelaksanaan Misi dalam Permainan Assassins Creed : Revelations

BAB 2 LANDASAN TEORI

IMPLEMENTASI METODE ANT COLONY OPTIMIZATION UNTUK PEMILIHAN FITUR PADA KATEGORISASI DOKUMEN TEKS

OPTIMASI PEMROGRAMAN KUADRATIK KONVEKS DENGAN MENGGUNAKAN METODE PRIMAL-DUAL PATH-FOLLOWING

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Analisis Reduksi Model pada Sistem Linier Waktu Diskrit

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

BAB II LANDASAN TEORI

PENENTUAN RUTE OPTIMAL PADA KEGIATAN PENJEMPUTAN PENUMPANG TRAVEL MENGGUNAKAN ANT COLONY SYSTEM

8. Algoritma Greedy. Oleh : Ade Nurhopipah

Penerapan Algoritma Program Dinamis pada Penyejajaran Sekuens dengan Algoritma Smith Waterman

BAB 1 PENDAHULUAN. Persoalan lintasan terpanjang (longest path) merupakan persoalan dalam mencari

PANDUAN PENCARIAN RUTE GEDUNG DAN RUANGAN PADA FAKULTAS DI UNIVERSITAS HALU OLEO MENGGUNAKAN ALGORITMA DIJKSTRA BERBASIS MACROMEDIA FLASH

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

PENYELESAIAN MASALAH ALIRAN MAKSIMUM MENGGUNAKAN EDMONS KARP ALGORITHM

Implementasi Hypergraph Partitioning pada Paralelisasi Perkalian Matriks-Vektor

STUDI KINERJA WAVELET TREE PADA VARIASI PERMASALAHAN RANGE QUERY

Transkripsi:

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2014) ISSN: 2337-3539 (2301-9271 Print) 1 Desain dan Analisis Algoritma Modifikasi Hungarian untuk Permasalahan Penugasan Dinamis Pada Studi Kasus Permasalahan SPOJ Klasik 12749 Teguh Suryo Santoso, Ahmad Saikhu dan Rully Soelaiman Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember (ITS) Jl. Arief Rahman Hakim, Surabaya 60111 Indonesia e-mail: saikhu@its-sby.edu Abstrak Masalah penugasan merupakan masalah optimasi kombinatorial untuk menemukan susunan penugasan yang optimal pada sebuah graf bipartite dan dapat diselesaikan dengan algoritma Hungarian. Ketika susunan penugasan yang optimal ditemukan, bisa saja bobot-bobot yang ada pada graf berubah dan susunan penugasan yang optimal juga berubah. Permasalahan untuk menemukan kembali susunan penugasan yang optimal dari graf yang mengalami perubahan bobot ini dinamakan masalah penugasan dinamis. Dalam publikasi ini akan dibahas algoritma Hungarian dinamis untuk menyelesaikan masalah penugasan dinamis. Algoritma Hungarian dinamis bekerja dengan memanfaatkan solusi optimal dari masalah penugasan sebelumnya. Dari serangkaian proses peneletian yang telah dilakukan, didapatkan kesimpulan bahwa algoritma Hungarian dinamis dipengaruhi secara linier oleh banyaknya operasi perubahan dan dipengaruhi secara kuadratik oleh jumlah vertex. Kata Kunci Algoritma hungarian dinamis, graf bipartite, masalah penugasan dinamis, teori graf. I. PENDAHULUAN Masalah penugasan adalah salah satu masalah optimasi kombinatorial mendasar yang merupakan cabang dari ilmu optimasi atau riset operasi. Secara umum, masalah penugasan adalah sebuah permasalahan untuk menemukan susunan pemberian tugas pada pekerja dengan jumlah rating atau bobot yang seoptimal mungkin. Dalam hal ini satu pekerja hanya dapat mengerjakan satu tugas dan satu tugas hanya dapat dikerjakan satu pekerja. Beberapa algoritma dapat digunakan untuk menyelesaikan masalah penugasan ini. Masalah penugasan dapat diterapkan untuk menyelesaikan masalah transportasi atau masalah-masalah lain pada kehidupan nyata. Dalam prakteknya, masalah penugasan dapat bersifat dinamis, yaitu terdapat kemungkinan perubahan bobot pada beberapa penugasan atau penambahan pekerja dan tugas yang baru akibat faktor tertentu. Ketika hal tersebut terjadi, sususan penugasan yang optimal mungkin saja berubah dari susunan penugasan sebelumnya. Salah satu solusi yang dapat dilakukan untuk mendapatkan susunan penugasan yang optimal adalah dengan melakukan kembali proses komputasi dari awal dengan menggunakan algoritma yang telah ditetapkan. Hal tersebut akan menimbulkan masalah jika perubahan bobot sering terjadi. Proses komputasi akan dilakukan berulang kali dari tahap awal dimana untuk algoritma yang ada sampai saat ini, proses tersebut membutuhkan waktu yang tidak sedikit. Maka dari itu, perlu ada algoritma untuk menyeselaikan masalah penugasan dinamis dalam mendapatkan susunan penugasan yang optimal ketika terjadi perubahan bobot, penambahan pekerja atau penambahan tugas dengan memanfaatkan solusi yang telah ada agar waktu yang dibutuhkan lebih cepat daripada melakukan proses komputasi dari awal. Beberapa algoritma yang dapat digunakan untuk menyelesaikan masalah ini adalah algoritma Hungarian dan algoritma Hungarian dinamis. Algoritma Hungarian dapat menyelesaikan masalah penugasan dengan kompleksitas waktu O(n 4 ) dimana n adalah banyaknya vertex pada salah satu bagian dari bipartite graph. Namun dengan menggunakan struktur data yang tepat, kompleksitas waktu dapat diturunkan menjadi O(n 3 ). Sedangkan algoritma Hungarian dinamis dapat menyelesaikan masalah penugasan dinamis dengan kompleksitas waktu O(kn 2 ) dimana k adalah ukuran banyaknya perubahan yang terjadi. Dari penjelasan di atas, hasil yang diharapkan dalam tugas akhir ini adalah proses komputasi untuk menyeselaikan masalah penugasan dinamis dengan konsumsi waktu dan memory yang efisien. Tentunya dilakukan analisis yang komprehensif terlebih dahulu dalam menentukan algoritma yang digunakan untuk menyelesaikan masalah ini. II. ULASAN ALGORITMA A. Algoritma Hungarian Permasalahan yang akan diselesaikan oleh algoritma Hungarian adalah menemukan maximum-weight matching pada complete bipartite graph G = S T, E dimana S = T = n. Karena S = T, maka tiap vertex pada T juga mendapatkan pasangan sehingga matching yang dihasilkan dalam hal ini adalah perfect matching. Untuk selanjutnya digunakan istilah optimal matching untuk menyebutkan matching yang dimaksud. Ide dasar dari algoritma Hungarian [1] adalah pada mulanya ditetapkan feasible node-weighting < u, v > diberi nilai seperti pada Persamaan 1 sebagai berikut:

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2014) ISSN: 2337-3539 (2301-9271 Print) 2 u i = max {w ij, j = 1,2,3 n} dan v 1 = = v n = 0 (1) Feasible node-weighting adalah dua vector < u, v > dimana u = (u 1, u 2, u 3... u n ) dan v = (v 1, v 2, v 3... v n ) yang memenuhi Persamaan 2 sebagai berikut: u i + v j w ij untuk semua i, j = 1... n (2) Untuk sembarang feasible node-weighting < u, v >, H u,v adalah subgraf dari G dengan himpunan vertex V dimana tiap vertex-nya adalah endpoint dari edge (i, j ) yang memenuhi u i + v j = w ij. Dalam hal ini H u,v dinamakan equality subgraph dari < u, v >. Jika equality subgraph H u,v memiliki perfect matching maka optimal matching dari graf G sudah didapatkan. Jika tidak, maka dicari J S dimana N(J) < J dan mengubah < u, v > menjadi seperti pada Persamaan 3 sebagai berikut: u i = u i δ, i J u i, i J dan v j = v j + δ, j N(J) v j, j N(J) dimana nilai δ diberi nilai seperti pada Persamaan 4 sebagai berikut: δ = min{u i + v j w ij : i J, j N(J)} (4) Hal itu akan mempertahankan nilai feasible node-weighting, n mengurangi i=1 (u i + v i ) dan menambah setidaknya satu edge (i, j ) dengan i J dan j N(J) ke equality subgraph baru H u,v. Proses ini diulangi hingga jenis matching pada equality subgraph yang baru bukan lagi maximum-size matching. Pada akhirnya akan didapatkan graf H yang berisi perfect matching yang merupakan optimal matching dari graf G. Untuk mendapatkan jumlah bobot dari optimal matching n yang telah didapatkan, dapat diambil dari nilai i=1 (u i + v i ). Hal tersebut dikarenakan semua vertex baik pada S dan T masuk ke dalam optimal matching yang didapatkan dan menjumlahkan u i dan v i sama dengan menghitung bobot optimal matching yang didapatkan. Terdapat n fase pada algoritma Hungarian dimana tiap fase algoritma Hungarian dilakukan pencarian augmenting path pada vertex i S pada equality subgraph. Dalam hal ini jika augmenting path tidak ditemukan maka feasible node-weighting diubah nilainya seperti pada Persamaan 3 hingga ditemukan augmenting path pada equality subgraph. Tiap fase algoritma Hungarian memiliki kompleksitas waktu O(n 2 ) sehingga algoritma Hungarian dapat menemukan optimal matching dengan kompleksitas waktu O(n 3 ). B. Algoritma Hungarian Dinamis Algoritma Hungarian dinamis dapat menemukan optimal matching pada graf bipartite yang mengalami perubahan dengan memanfaatkan hasil perhitungan dari algoritma Hungarian sebelumnya. Algoritma Hungarian dinamis yang dibahas pada [2] berfungsi untuk mendapatkan minimumweight matching, namun sekarang akan dibahas algoritma Hungarian dinamis yang berfungsi untuk mendapatkan (3) maximum-weight matching. Ide dasar dari algoritma Hungarian dinamis adalah mempertahankan nilai feasible node-weighting < u, v > hasil algoritma Hungarian sebelumnya ketika terjadi perubahan bobot pada graf bipartite. Penyesuaian nilai feasible node-weighting terhadap perubahan bobot pada graf bipartite perlu dilakukan agar selanjutnya algoritma Hungarian dapat dijalankan tanpa harus mencari feasible node-weighting dari awal sehingga dapat dikatakan algoritma ini adalah modifikasi dari algoritma Hungarian. Macam-macam perubahan bobot yang akan dibahas pada penelitian ini ada empat, yaitu: 1) Perubahan nilai bobot pada edge (i, j ) untuk semua j T 2) Perubahan nilai bobot pada edge (i, j ) untuk semua i S 3) Perubahan nilai bobot pada sebuah edge (i, j ) 4) Penambahan dua vertex masing-masing pada S dan T Berikutnya, akan dijelaskan penyesuain feasible nodeweighting terhadap perubahan-perubahan tersebut. B.1. Perubahan nilai bobot pada edge (i, j ) untuk semua j T Dalam kasus ini terdapat sebuah vertex i S dimana semua edge yang bersinggungan dengannya diubah nilai bobotnya. Dari < u, v > hasil algoritma Hungarian sebelumnya, penyesuaian yang harus dilakukan adalah mengubah nilai u i. Nilai u i diubah menjadi seperti Persamaan 5 sebagai berikut: u i = max(w ij v j ) untuk j = 1... n (5) Hal tersebut dilakukan untuk mencari nilai u i sehingga u i + v j w ij untuk semua j. Hal ini dikarenakan u i w ij v j untuk semua j sesuai dengan yang didapat akibat dari Persamaan 5. Setelah itu langkah selanjutnya adalah menghapus edge (i, j ) dari optimal matching M karena pasti ada kemungkinan susunan optimal matching berubah. B.2. Perubahan nilai bobot pada edge (i, j ) untuk semua i S Dalam kasus ini terdapat sebuah vertex j T dimana semua edge yang bersinggungan dengannya diubah nilai bobotnya. Dari < u, v > hasil algoritma Hungarian sebelumnya, penyesuaian yang harus dilakukan adalah mengubah nilai v j. Nilai v j diubah menjadi seperti Persamaan 6 berikut: v j = max(w ij u i ) untuk i = 1... n (6) Hal tersebut dilakukan untuk mencari nilai v j sehingga u i + v j w ij untuk semua i. Hal ini dikarenakan v j w ij u i untuk semua i sesuai dengan yang didapat akibat dari Persamaan 6. Setelah itu langkah selanjutnya adalah menghapus edge (i, j ) dari optimal matching M karena pasti ada kemungkinan susunan optimal matching berubah. B.3. Perubahan nilai bobot pada sebuah edge (i, j ) Dalam kasus ini terdapat edge (i, j ) i S dan j T dengan yang bobotnya diubah dari w ij menjadi w ij. Terdapat

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2014) ISSN: 2337-3539 (2301-9271 Print) 3 beberapa kondisi yang harus diperhatikan yang akan dijelaskan sebagai berikut: Jika w ij < w ij Pada kasus ini, terdapat dua kondisi yang harus diperhatikan. Dua kondisi tersebut adalah sebagai berikut: Jika pasangan i pada optimal matching M adalah j Dalam kondisi ini terjadi perubahan bobot pada edge yang termasuk dalam optimal matching M menjadi lebih kecil. Maka dari itu edge (i, j ) perlu dihapus dari optimal matching M. Nilai u i dan v j tetap karena bobot yang baru lebih kecil sehingga ketetapan u i + v j w ij tetap terjaga. Jika pasangan i pada optimal matching M bukan j Dalam kondisi ini terjadi perubahan bobot pada edge yang tidak termasuk dalam optimal matching M menjadi lebih kecil daripada bobot sebelumnya sehingga tidak ada yang perlu dilakukan. Jika w ij > w ij Pada kasus ini, terdapat dua kondisi yang harus diperhatikan. Dua kondisi tersebut adalah sebagai berikut: Jika u i + v j w ij Jika u i + v j w ij, maka kondisi feasible nodeweighting tetap terjaga. Dalam hal ini optimal matching M tetap perfect matching dari equality subgraph dari < u, v > sehingga tidak ada yang perlu dilakukan. Jika u i + v j < w ij Dalam hal ini salah satu dari nilai u i atau v j perlu disesuaikan agar kondisi feasible node-weighting tetap terjaga. Nilai u i atau v j bisa disesuaikan salah satunya saja. Jika dipilih hanya nilai u i yang disesuaikan maka nilai u i akan seperti pada Persamaan 5. Jika dipilih hanya nilai v j yang disesuaikan maka nilai v j akan seperti pada Persamaan 6. Setelah itu, jika vertex j bukan pasangan i pada optimal matching M, maka terdapat kemungkinan bahwa optimal matching berubah. Maka dari itu penghapusan edge (i, j ) dari optimal matching M perlu dilakukan. B.4. Penambahan dua vertex masing-masing pada S dan T Dalam kasus ini, penambahan dua vertex dilakukan terhadap graf G. Satu vertex ditambahkan pada S dan satu vertex pada T. Misal vertex yang ditambahan pada S adalah vertex p dan vertex yang ditambahkan pada T adalah vertex q, maka ditambahkan juga beberapa edge yang menghubungkan p dengan semua vertex pada T dan beberapa edge yang menghubungkan q dengan semua vertex pada S serta satu edge yang menghubungkan p dengan q. Dalam hal ini bobot dari semua edge yang baru saja ditambahkan diberi nilai 0. Selain itu ditambahkan juga u p dan v q pada < u, v > dengan nilai u p sama dengan Persamaan 7 berikut: u p = max(w pq, max(w pj v j ) untuk j = 1... n) (7) dan v q sama dengan Persamaan 8 berikut: v q = max(w iq u i ) untuk i = 1... n, p (8) HUNGARIAN-DINAMIS Input : n : banyaknya vertex w[n][n] : bobot pada graf bipartite Output : bobot optimal matching saat diminta 1. HUNGARIAN 2. while ada perubahan do 3. if jenis perubahan = update row 4. UPDATE-ROW 5. else if jenis perubahan = update column 6. UPDATE-COLUMN 7. else if jenis perubahan = update column 8. UPDATE-CELL 9. else if jenis perubahan = update column 10. ADD-VERTEX 11. else diminta bobot optimal saai ini 12. Jalankan fungsi HUNGARIAN tanpa melakukan inisialisasi feasible node-weighting 13. Kembalikan bobot optimal matching proses di atas 14. fi 15. od Gambar 1. Pseudocode fungsi HUNGARIAN-DINAMIS Pemberian nilai u p sebagaimana yang telah dituliskan pada Persamaan 7 adalah untuk menyesuakan nilai feasible nodeweighting. Perlu diingat nilai u p bisa lebih dari 0 ketika v j < 0 setelah diberlakukannya Persamaan 6. Begitu juga dengan nilai v q yang harus disesuaikan dengan nilai u i untuk semua i karena terdapat kemungkinan nilai u i bernilai negatif. Hal ini dapat terjadi saat dilakukan operasi perubahan nilai < u, v > menjadi < u, v > sesuai dengan Persamaan 3 atau setelah diberlakukannya Persamaan 5. Setelah itu langkah selanjutnya adalah menjadikan p dan q sebagai unmatched vertex. Keempat jenis perubahan pada algoritma Hungarian dinamis telah dijelaskan di atas. Sekarang akan dibahas Pseudocode dari algoritma Hungarian dinamis. Gambar 1 merupakan pseudocode fungsi Hungarian dinamis. Yang perlu diperhatikan dari jalannya algoritma ini adalah proses yang terjadi pada baris ke-12. Algoritma Hungarian dijalankan lagi tanpa harus menginisialisasi nilai feasible node-weighting dan susunan matching karena keduanya didapat dari algoritma Hungarian sebelumnya. Tentunya algoritma Hungarian yang dijalankan pada baris ke-12 dijalankan sebanyak k fase dimana k adalah banyaknya edge yang telah dihapus dari optimal matching karena perubahan-perubahan yang terjadi sebelumnya dan banyaknya pasangan vertex yang ditambahkan ke dalam complete bipartite graph. Maka dari itu, kompleksitas dari algoritma ini adalah O(kn 2 ) tiap ada permintaan bobot optimal matching terkini. III. HASIL UJI COBA Uji coba akan dilakukan dengan beberapa mekanisme. Pertama akan dilakukan uji coba dengan mengunggah kode sumber dari program yang telah dibuat ke situs penilaian daring SPOJ pada soal yang berjudul Dynamic Assignment Problem. Uji coba selanjutnya yaitu uji coba kebenaran dari implementasi program yang telah dibuat. Dalam hal ini hasil akan diselesaikan masalah penugasan skala kecil dengan

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2014) ISSN: 2337-3539 (2301-9271 Print) 4 menggunakan metode Hungarian [3] lalu hasilnya dibandingkan dengan keluaran dari program yang telah dibuat. Uji coba terakhir yaitu uji coba kinerja dari program yang telah dibuat. Dalam hal ini diukur waktu eksekusi program dalam menyelesaikan masalah penugasan dinamis. Akan dianalisis juga pengaruh ukuran-ukuran data terhadap waktu eksekusi program. A. Uji Coba Melalui SPOJ Dalam uji coba ini, kode sumber dari program yang telah dibuat diunggah ke situs penilaian daring SPOJ pada soal yang berjudul Dynamic Assignment Problem [4]. Format masukan juga telah disesuaikan dengan yang diminta pada soal tersebut. Setelah kode sumber diunggah, situs SPOJ akan memberikan umpan balik. Jika hasil keluaran program sesuai dengan ketentuan pada soal, maka situs SPOJ akan menampilkan umpan balik berupa tulisan "Accepted", tetapi jika sebaliknya, maka akan muncul umpan balik berupa tulisan "Time Limit Exceeded", "Wrong Answer", atau "Runtime Error". Dari uji coba ini, didapatkan bahwa kode program hasil implementasi tugas akhir mendapat umpan balik "Accepted" seperti pada Gambar 2 yang berarti program berjalan dengan benar dengan menggunakan memori sebesar 2.8 Megabyte dan waktu eksekusi program terhadap masukan SPOJ sebesar 0.31 sekon. B. Uji Coba Kebenaran Pada uji coba ini diberikan sebuah matriks berukuran 4 4. Setelah itu matriks tersebut diubah bobot satu barisnya, diubah bobot satu kolomnya, diubah bobot salah satu elemennya dan ditambahkan satu baris dan satu kolom. Untuk tiap perubahan pada matriks yang diberikan, dihitung optimal matching-nya menggunakan metode Hungarian. Setelah itu hasilnya dibandingkan dengan program. Perubahan-perubahan pada matriks terlihat pada Gambar 3 dimana elemen-elemen yang berubah ditandai dengan warna merah. Hasil dari metode Hungarian terhadap matriks-matriks tersebut secara berturutturut adalah 23, 21, 21, 19 dan 34. Hasil tersebut sesuai dengan keluaran program yang dapat dilihat pada Gambar 4. Gambar 2. Umpan balik dari situs SPOJ Gambar 4. Keluaran program pada matriks pada Gambar 3 C. Uji Coba Kinerja Kompleksitas waktu dari algoritma Hungarian dinamis adalah O(kn 2 ) setiap ada operasi query dimana k adalah banyaknya perubahan dan n adalah banyaknya vertex. Dalam bab ini akan dilakukan dua macam uji coba. Pertama, banyaknya vertex dibuat bervariasi sedangkan banyaknya operasi dibuat tetap. Hal ini dilakukan untuk menunjukkan pengaruh banyak vertex terhadap waktu eksekusi program. Kedua, banyaknya operasi dibuat bervariasi dan banyaknya vertex dibuat tetap. Hal ini dilakukan untuk menunjukkan pengaruh banyak operasi terhadap waktu eksekusi program. Dalam hal ini banyaknya operasi tipe query dan add vertex dibuat tetap karena operasi query tidak menimbulkan perubahan sedangkan operasi tipe add vertex dibuat tetap agar tidak melebihi batasan vertex dimana paling banyak adalah 100 vertex. Pada uji pengaruh vertex terhadap watu eksekusi program, banyaknya vertex dibuat bervariasi antara 10 hingga 90 dengan rentang 10 vertex. Jumlah operasi ditetapkan sebanyak 10000 operasi dimana tiap operasi kelipatan 10 adalah operasi query dan tiap operasi kelipatan 999 adalah operasi add vertex. Dicatat waktu eksekusi program terhadap tiap data dalam satuan milidetik agar pengaruh banyak vertex terhadap waktu eksekusi program dapat diamati. Hasil uji coba dari percobaan digambarkan dalam grafik seperti yang terlihat pada Gambar 5 dimana grafik cenderung mendekati kurva kuadratik. Hal ini sesuai dengan kompleksitas dari algoritma Hungarian dinamis yang dipengaruhi jumlah vertex secara kuadratik. Pada uji coba pengaruh operasi terhadap watu eksekusi program, banyaknya operasi dibuat bervariasi antara 1000 hingga 10000 dengan rentang 1000 operasi. Jumlah vertex ditetapkan sebanyak 90 vertex. Ditentukan juga tiap operasi kelipatan 10 adalah operasi query dan tiap operasi kelipatan 999 adalah operasi add vertex. Dicatat waktu eksekusi program terhadap tiap data dalam satuan milidetik agar pengaruh banyak operasi terhadap waktu eksekusi program dapat diamati. Hasil uji coba digambarkan dalam grafik yang terlihat pada Gambar 6. Gambar 3. Perubahan-perubahan pada matriks Gambar 5. Grafik pengaruh jumlah vertex terhadap waktu eksekusi program

JURNAL TEKNIK POMITS Vol. 2, No. 1, (2014) ISSN: 2337-3539 (2301-9271 Print) 5 Gambar 6. Grafik pengaruh jumlah operasi terhadap waktu eksekusi program Seperti yang dapat dilihat pada Gambar 6, grafik cenderung mendekati kurva linier. Hal ini sesuai dengan kompleksitas dari algoritma Hungarian dinamis yang dipengaruhi jumlah operasi secara linier. IV. KESIMPULAN DAN SARAN Dari hasil uji coba yang telah dilakukan, dapat ditarik beberapa hal dari kinerja algoritma Hungarian dinamis dalam menyelesaikan masalah penugasan dinamis. Beberapa hal tersebut adalah sebagai berikut: 1) Algoritma Hungarian dinamis dapat menyelesaikan masalah penugasan dinamis dengan benar. Hal ini dapat dibuktikan secara teori maupun implementasi. 2) Kecepatan algoritma Hungarian dinamis dipengaruhi oleh banyaknya operasi secara linier dan dipengaruhi oleh banyaknya vertex secara kuadratik. Saran yang diberikan dalam pengembangan algoritma Hungarian dinamis adalah agar pada penelitian selanjutnya, kompleksitas waktu dari algoritma Hungarian dinamis diturunkan menjadi O(kn lg n) atau bahkan O(kn). UCAPAN TERIMA KASIH Penulis T.S.S. mengucapkan puji syukur kepada Allah SWT yang melimpahkan rahmat dan hidayahnya sehingga penulis dapat menyelesaikan penelitian ini dengan lancar. Penulis juga mengucapkan terima kasih kepada Bapak Rully Soelaiman dan Bapak Ahmad Saikhu yang telah membantu penulis dalam menyelesaikan penelitian ini dengan lancar. Penulis juga mengucapkan terima kasih kepada pihak-pihak lain yang turut membantu kelnacaran penelitian ini. DAFTAR PUSTAKA [1] Dieter Jungnickel, Graphs, Networks and Algorithms, 4th ed. Berlin, Germany: Springer, 2012. [2] G. Ayorkor Korsah, Anthony Stentz, and M Bernardine Dias, "The Dynamic Hungarian Algorithm for the Assignment Problem with Changing Costs," Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, Tech. Rep. CMU-RI-TR-07-27, July 2007. [3] Hamdy A. Taha, Operations Research: An Introduction, 8th ed. Upper Saddle River, United States of America: Prentice Hall, 2007. [4] SPOJ. (2012, November) Dynamic Assignment Problem. [Online]. http://www.spoj.com/problems/dap/