PENENTUAN MATCHING MAKSIMUM PADA GRAPH BIPARTISI BERBOBOT DENGAN MENGGUNAKAN ALGORITMA GENETIKA , , Universitas Negeri Malang E-mail: [email protected] ABSTRAK: Matching berguna untuk menyelesaikan masalah kehidupan dengan mencari nilai yang paling optimal. Algoritma yang digunakan untuk menyelesaikan permasalahan tersebut yaitu algoritma genetika. Pembahasan ini mendiskripsikan tentang penerapaan algoritma genetika pada pencarian matching maksimum. Dengan mengkodekan permasalahan yaitu dengan mengasumsikan solusi dari matching yang diwakili oleh satu set parameter. Parameter ini disebut dengan gen, yang berisi nilai atau bobot yang bersatu membentuk kromosom. Beberapa kromosom berkumpul membentuk populasi. Panjang kromosom n, dengan n merupakan banyaknya titik pada himpunan A yang merupakan bagian dari graph bipartisi yang berpasangan dengan posisi gen dari 1 sampai m yang merupakan banyaknya titik pada himpunan B. Algoritma genetika merupakan algoritma yang dapat diterapkan dalam segala permasalahan optimasi dengan memiliki banyak pilihan solusi. Namun di samping kelebihan tersebut algoritma genetika memiliki kelemahan, yaitu membutuhkan waktu yang lama dalam proses pencarian solusi tersebut. Kata Kunci: matching, matching maksimum, algoritma genetika Dalam kehidupan sehari-hari tidak terlepas dari adanya suatu permasalahan. Seiring dengan perkembangan jaman permasalahan yang timbul semakin hari akan semakin beragam, sehingga dibutuhkan suatu metode yang semakin berkembang pula untuk mencari solusi dari masalah kehidupan tersebut. Pada kasus ini ilmu matematika sangat berperan penting bahkan menjadi suatu kebutuhan dalam pencarian solusi yang optimal. Salah satu cabang ilmu matematika adalah teori graph. Dengan teori graph suatu masalah dapat dimodelkan dengan diagram dan lambang atau simbol, sehingga dalam pemahamannya lebih mudah dan praktis, begitu juga dalam penyelesaiannya. Penentuan model yang digunakan dalam masalah ini adalah matching. Matching merupakan salah satu pembahasan dalam teori graph yang mempunyai ketentuan berpasangan tepat satu-satu. Matching berguna untuk menyelesaikan masalah kehidupan dengan mencari nilai yang paling optimal diantaranya dalam penjodohan pada biro jodoh dan pemasangan karyawan dengan posisi kerja. Kelebihan algoritma genetika dibandingkan dengan algoritma yang lainnya yaitu, memiliki pilihan solusi yang banyak dan cara kerjanya lebih teliti untuk mencari solusi penyelesaiannya. Oleh karena itu peneliti ingin mengkaji tentang algoritma genetika secara mendalam. Sehingga diharapkan dapat menambah ilmu pengetahuan tentang penerapan algoritma genetika dalam matching. Dalam tulisan ini istilah dan definisi graph merujuk pada Rosen, 2000. Istilah dan definisi dari matching merujuk pada Aldous, 2004. 1. Anisak Heritin adalah mahasiswa jurusan Matematika FMIPA Universitas Negeri Malang 2. Purwanto adalah dosen jurusan Matematika FMIPA Universitas Negeri Malang 3. Mohamad Yasin adalah dosen jurusan Matematika FMIPA Universitas Negeri Malang PEMBAHASAN Algoritma Genetika untuk Pencarian Matching Maksimum Misalkan P(generasi) adalah populasi dari satu generasi, maka secara sederhana algoritma genetika terdiri dari langkah-langkah (Kusumadewi, 2003): 1. Generasi = 0 (generasi awal). 2. Inisialisasi populasi awal, P(generasi), secara acak. 3. Evaluasi nilai fitness pada setiap individu dalam P(generasi). 4. Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi: a) Generasi = generasi + 1 (tambah generasi). b) Seleksi populasi tersebut untuk mendapatkan kandidat induk, P’(generasi). c) Lakukan crossover pada P’(generasi). d) Lakukan mutasi pada P’(generasi). e) Lakukan evaluasi fitness setiap individu pada P’(generasi). f) Bentuk populasi baru: P(generasi) = {P(generasi – 1) yang survive, P’(generasi)}. Sebelum algoritma genetika dapat dijalankan, maka suatu kode yang sesuai untuk persoalan harus dirancang. Untuk ini maka titik solusi dalam ruang permasalahan dikodekan dalam bentuk kromosom/string yang terdiri atas komponen genetik terkecil yaitu gen. Urutan dari proses algoritma genetika adalah: a. Pengkodean. Pada algoritma ini dalam mengasumsikan suatu solusi untuk suatu persoalan dimungkinkan dengan diwakili oleh satu set parameter. Parameter-parameter ini dinamakan gen, berisi nilai/allele yang bersatu membentuk kromosom. Selanjutnya beberapa kromosom yang sejenis berkumpul membentuk populasi. Dari suatu populasi inilah algoritma genetika memulai untuk melakukan pencarian. Bentuk populasi yang menyatakan kumpulan kromosom pada permasalahan ini adalah suatu kromosom yang berisi informasi tentang urutan kecocokan antar titik pada matching. Panjang kromosom n, dengan n merupakan banyaknya titik pada himpunan A yang merupakan bagian dari graph bipartisi yang berpasangan dengan posisi gen dari 1 sampai m yang merupakan banyaknya titik pada himpunan B. Representasi dari kromosom tersebut dapat dilihat pada gambar berikut: Kromosom ... Gen ... b. Inisialisasi populasi. Inisialisasi ini dilakukan secara random dan hanya satu kali saja sewaktu pertama kali algoritma dijalankan. Inisialisasi ini menghasilkan populasi dengan jumlah kromosom yang sesuai dengan yang diharapkan. Teknik yang digunakan adalah permutasi gen. dalam permutasi gen, setiap gen merupakan suatu string dari nomor-nomor seperti di bawah ini (Turangga, 2012): Kromosom Gen 3 1 4 2 1 3 2 4 5 5 Pada gambar di atas menerangkan kasus matching 5 titik pada himpunan A dan 5 titik pada himpunan B. Di mana nomor pada gen menunjukkan urutan posisi pada kromosom. Dengan kunci-kunci tersebut dapat dikatakan bahwa nomor 3 pada himpunan A cocok dengan nomor 1 pada himpunan B, nomor 4 pada himpunan A cocok dengan nomor 2 pada himpunan B dan seterusnya. Dengan demikian, diperoleh bentuk kromosom sebagai berikut: 3 4 1 2 5 c. Evaluasi fitness. Ini adalah proses menghitung nilai fitness dari masing-masing kromosom yang ada. Dalam masalah matching ini fungsi fitness melibatkan beberapa faktor yang dapat mempengaruhi terbentuknya nilai fitness. Misalnya dalam masalah penugasan tentor pada LBB (Lembaga Bimbingan Belajar), maka fungsi fitnessnya melibatkan faktor-faktor seperti bidang ilmu/jurusan, indeks prestasi dan gelar yang telah diperoleh. Kemampuan tentor merupakan bobot sisi yang menghubungkan tentor ( = 1,2,3, … , ) dengan mata pelajaran ( = 1,2,3, … , ). Bentuk tabel bobot = [ ], dengan = ( , ) dan model graph sebagai berikut: Fungsi fitness yang digunakan untuk mengevaluasi suatu kromosom dalam penelitian ini adalah: = + + +⋯ d. Seleksi. Melalui proses ini maka lahirlah generasi baru dimana kromosom diperoleh dari kromosom sebelumnya. Seleksi yang akan digunakan yaitu seleksi berdasarkan roda Roulette. Dibangun permainan roulette sebagai berikut (Desiani, 2007) : 1. Hitung harga fitness "#( $ ) untuk masing-masing kromosom $ (% = 1 … , &'&( )* ) 2. Cari total fitness dari populasi = ,-,_( )* + $/ "#( $) 3. Hitung probabilitas suatu seleksi &$ untuk masing-masing kromosom 1, … &'&( )* ) $ (% = &$ = "#( $ )/ 4. Hitung probabilitas komulatif 1$ untuk masing-masing kromosom. $ (% = 1, … &'&( )* ) 1$ = ∑$/ 3 Proses seleki berdasarkan perputaran rode roulette pop_size kali. Pada masing-masing waktu diseleksi kromosom tunggal untuk populasi baru dengan cara berikut: a) Pembangkitan bilangan acak r dari range [0 1] sebanyak pop_size. b) Jika 4 < 1$ , pilih kromosom pertama ( $ ). Untuk yang lain, seleksi kromosom ke-i $ (2 ≤ % ≤ &'&_ 7 ), seperti 1$8 < 4 ≤ 1$ e. Crossover Proses ini akan menghasilkan keturunan yang berbeda dengan induknya. Untuk proses ini dilakukan dengan mengambil induk secara berpasangan dan akan menghasilkan keturunan dengan jumlah yang sama dengan induknya. Prosedur untuk pemilihan induk mana yang akan mengalami proses crossover: • Tentukan probabilitas crossover. • Bangkitkan bilangan random 0 sampai 1 sebanyak i (jumlah kromosom dalam satu populasi). • Bandingkan bilangan random itu dengan probabilitas crossover (Pc). • Induk terpilih bila bilangan r yang ke-i kurang atau sama dengan probabilitas crossover (Pc). • Bila induk yang terpilih jumlahnya hanya satu maka proses ini diulang sampai jumlah induknya lebih dari satu. Teknik crossover yang akan digunakan yaitu teknik position based crossover. • Pilih sekumpulan posisi gen dari salah satu orang tua secara acak. • Menghasilkan sebuah kromosom anak dengan menyalin posisi gen dari salah satu induk tersebut ke dalam posisi gen yang bersesuaian pada kromosom anak. • Menghapus gen yang telah terpilih pada induk kedua. Kemudian urutkan gen yang dihasilkan. • Tempatkan gen tersebut pada posisi yang masih kosong di kromosom anak, dari kiri ke kanan. f. Mutasi. Pada proses ini juga akan menghasilkan keturunan di mana jumlahnya tergantung pada banyaknya bilangan random yang kurang dari probabilitas mutasi (Pm). Prosedur untuk menentukan kromosom mana yang akan dimutasi adalah (Yuliagandi, 2010): 1. Masukkan Pm (Probabilitas Mutasi). 2. Menentukan banyaknya kromosom yang akan melakukan mutasi: Pm * pop_size * panjang kromosom. 3. Bangkitkan bilangan random antara 1 sampai jumlah gen tersebut (pop_size * panjang kromosom) sebanyak jumlah kromosom yang mengalami mutasi (Pm * pop_size * panjang kromosom). 4. Menentukan posisi gen yang akan dimutasi yaitu dengan cara: • • • • Memilih kromosom. Kromosom dipilih dengan cara membagi bilangan acak hasil dari langkah 3 dengan panjang kromosom Memilih posisi gen. Untuk memilih posisi gen yang akan dimutasi dengan cara menghitung bilangan acak yang diperoleh dari langkah 3 kemudian dimodulasikan dengan panjang kromosom. Karena pada permasalahan ini akan digunakan metode invertion mutation, maka bangkitkan bilangan acak antara 1 sampai panjang kromosom untuk mendapatkan posisi gen yang kedua. Balik posisi gen yang ada di antara 2 posisi gen yang terpilih dari kromosom tersebut untuk menghasilan kromosom anak. g. Evaluasi. Proses ini dilakukan kembali untuk menghitung nilai fitness dari masingmasing kromosom. h. Kriteria terminasi. Kriteria teriminasi merupakan kondisi di mana iterasi dalam algoritma genetika dihentikan. Dalam penilitian ini yang menjadi kriteria berhenti yaitu max_gen. Artinya, pada saat maksimum generasi yang telah ditentukan proses pencarian algoritma genetika harus dihentikan. i. Lakukan pengulangan kembali ke langkah d, bila kriteria berhenti sudah dicapai, maka algoritma genetika sudah selesai. Untuk mempermudah dalam pencarian matching maksimum dengan menggunakan algoritma genetika maka dibuat program dengan menggunakan Borland Delphi, berikut adalah gambar flowchart: Mulai Populasi Awal Mutasi Evaluasi Crossover Seleksi Generasi = max_gen ? Tidak Ya Hasil Selesai Flowchart Algoritma Genetika untuk Matching Uji Coba Program Akan dilakukan uji coba terhadap program yang telah dibuat. Terdapat suatu permasalahan dengan banyaknya titik di himpunan A adalah 3 dan banyaknya titik di himpunan B adalah 7, dengan tabel bobot sebagai berikut: Dengan model graph sebagai berikut: Diselesaikan dengan menggunakan algoritma genetka dengan ketentuan nilai Pc adalah 0.03, Pm adalah 0.8, banyak populasi adalah 20 dan banyak generasi 30. Sehingga diperoleh hasil penyelesaian seperti di bawah ini: Dengan model graph sebagai berikut: Dari gambar di atas terlihat bahwa solusi dari permasalahan matching tersebut adalah: A1 diisi oleh B4 dengan nilai 4, A2 diisi oleh B3 dengan nilai 6 dan A3 diisi oleh B7 dengan nilai 5, sehingga diperoleh total bobot adalah 15. PENUTUP Kesimpulan 1. Untuk menerapkan algoritma genetika dalam mencari penyelesaian matching maksimum, yaitu dengan mengasumsikan solusi dari matching yang diwakili oleh satu set parameter. 2. Algoritma genetika dapat diterapkan dalam kehidupan sehari-hari, seperti penyelesaian masalah pencocokan pelamar dengan jabatan, permasalahan pada biro jodoh, pencocokan tentor dengan mata pelajaran, dll. 3. Perbandingan hasil uji coba dengan menggunakan program Borland Delphi yaitu sama dengan hasil yang diperoleh dari penyelesaian dengan algoritma genetika secara manual. Selain itu program dari algoritma genetika juga telah diuji coba pada graph bipartisi dengan banyak titik. Di samping itu algoritma genetika juga memiliki kelemahan, yaitu memerlukan waktu yang lebih lama dalam proses pencariannya. 4. Perbandingan hasil dengan permasalahan dari Abrori, 2012; Andrieanto, 2007 dan Fatmawati, 2006 menghasilkan solusi yang sama. Saran 1. Saran yang dapat diberikan dalam penerapan algoritma genetika pada matching maksimum, yaitu sebaiknya dalam penulisan permasalahan ini lebih diperdalam dengan membandingkan dari setiap metode dalam crossover, sehingga dapat diketahui metode crossover yang paling baik untuk menemukan solusi yang paling optimal. 2. Dalam pembahasan ini memiliki ketentuan banyaknya titik di himpunan A harus lebih dari atau sama dengan banyaknya titik di himpunan B, sehingga perlu untuk membahas permasalahan ini dengan ketentuan banyak titik di himpunan A lebih dari banyak titik di himpunan B. Daftar Rujukan Abrori, M & Wahyuningsih, R. 2012. Penentuan Matching Maksimum Pada Graf Bipartit Berbobot Menggunakan Metode Hungarian. Jurnal Ilmiah Teknik Industri, 11(1): 9-21. Aldous, Joan M. & Wilson, Robin J. 2004. Graph and Application An Introductory Approach. London: Springer. Andrieanto, Lutfi Nova. 2007. Pencarian Perfect Matching Optimal Dalam Masalah Penugasan Dengan Menggunakan Algoritma Khun Munkres.Skripsi tidak diterbitkan. Malang: FMIPA Universitas Negeri Malang. Desiani, Anita & Muhammad, Arhami. 2007. Konsep Kecerdasan Buatan. Yogyakarta: Andi Publisher. Fatmawati, Mutia. 2006. Algoritma Matching Maksimum Pada Graph Bipartisi.Skripsi tidak diterbitkan. Malang: FMIPA Universitas Negeri Malang. Kusumadewi, Sri. 2003. Artificial Intelligence. Yogyakarta: Graha Ilmu Rosen, H. Kenneth. 2000. Handbook of Discreate and Combinatorial Mathematics. Florida: CRC Press LLC. Turangga, Surya. 2012. Penyelesaian Travelling Salesman Problem With Time Windows (TSPTW) Dengan Algoritma Genetika. Skripsi tidak diterbitkan. Malang: FMIPA Universitas Negeri Malang. Yuliagandi, Devi. 2010. Implementasi Algoritma Genetika Hibrid (First Improvement Seacrh) Pada Travelling Salesman Problem.Skripsi tidak diterbitkan. Malang: FMIPA Universitas Negeri Malang.