rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 IMPLEMENTASI TRAVELLING SALESMAN PROBLEM (TSP) MENGGUNAKAN ALGORITMA GENETIK PADA GAME KALPATARU #2 1 Tenia Wahyuningrum*1, Aciek Ida Wuryandari , Agung Harsoyo#3 * AKATEL Sandhy Putra Purwokerto, Jl. DI Panjaitan 128 Purwokerto # Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jalan Ganesa No. 10, Bandung 40132, Indonesia [email protected], [email protected], [email protected] ABSTRAK Makalah ini membahas tentang analisa pencarian solusi TSP pada penentuan rute pengumpulan sampah pada aplikasi permainan komputer yang disebut “Kalpataru”. Game Kalpataru adalah sebuah game pendidikan pengelolaan dan pemanfaatan sampah bagi komunitas CikapundungNet di Kota Bandung. Persoalan TSP merupakan persoalan optimasi untuk mencari perjalanan terpendek untuk mengambil sampah ke beberapa sumber sampah dan kembali ke Tempat Pembuangan Sementara (TPS) sebagai titik awal keberangkatan. Salah satu algoritma yang muncul untuk menyelesaikan persoalan ini ialah Algoritma Genetika. Dalam makalah ini akan dibahas proses seleksi, crossover dan mutasi dalam menghasilkan rute terbaik. Produk diimplementasikan menggunakan bahasa pemrograman Java. Hasil pengujian rute terbaik yang dilakukan dengan perhitungan manual dan melalui game menunjukkan bahwa algoritma telah berjalan sesuai dengan desain yang diharapkan. Kata kunci : Travelling Salesman Problem, Algoritma Genetika, proses seleksi, crossover, mutasi 1. PENDAHULUAN Game Kalpataru merupakan game yang dibuat untuk memberikan edukasi dan meningkatkan kesadaran masyarakat akan kebersihan lingkungan dan pengelolaan sampah, yang dilakukan melalui sebuah aplikasi simulasi berbentuk permainan maupun game. Game yang dinamakan Kelola samPah Tambah Rupiah (Kalpataru) merupakan game simulasi yang menggambarkan proses pengelolaan sampah, mulai dari pengumpulan sampah, sampai dengan daur ulang sampah. Penyusunan makalah ini bertujuan untuk menentukan rute terbaik pengumpulan dari sumber sampah ke Tempat Pembuangan Sementara (TPS). Dalam penerapan TSP, diperlukan solusi optimal, efektif dan juga efisien untuk mencapai hasil yang diinginkan. Masalah optimasi dalam makalah ini adalah masalah optimasi dalam pengumpulan sampah, dimana akan dicari rute terbaik dalam mengumpulkan sampah dari bakbak sampah warga ke Tempat Pembuangan Sementara (TPS). Beberapa metoda telah dikembangkan untuk memecahkan persoalan ini namun belum ditemukan algoritma penyelesaian yang optimal. Salah satu algoritma yang muncul untuk menyelesaikan persoalan ini ialah Algoritma Genetika. Algoritma genetika (genetik) merupakan teknik pencarian optimasi yang terinspirasi dari genetika dan seleksi alam (teori evolusi Darwin). Algoritma ini digunakan untuk mendapatkan solusi yang tepat untuk masalah optimasi dari satu variabel atau multi variabel (Gen dan Cheng, 1997). 2. TINJAUAN PUSTAKA Travelling Salesman Problem (TSP) atau Persoalan Perjalanan Pedagang diilhami oleh masalah seorang pedagang yang akan mengunjungi sejumlah kota dengan jarak tertentu menentukan sirkuit terpendek yang harus dilalui oleh seorang pedagang bila pedagang itu berangkat dari sebuah kota asal dan menyinggahi setiap kota tepat satu kali dan kembali lagi ke kota asal keberangkatan. Terapan TSP yang muncul dalam kehidupan sehari-hari antara lain pengumpulan sampah dari beberapa sumber sampah yang terdapat dalam rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 satu lingkup RW ke TPS. Standar TSP dapat dinyatakan secara matematis sebagai berikut. Metoda yang telah diketahui untuk memecahkan TSP secara optimal, adalah dengan menyebutkan satu persatu setiap kemungkinan tur dan pencarian tur dengan biaya terkecil. Setiap tur yang mungkin adalah permutasi 123…n dengan n merupakan jumlah kota, sehingga jumlah tur adalah n!. Ketika didapatkan nilai tur besar, maka tidak mungkin untuk menemukan biaya untuk setiap tur dengan polynomial waktu. Terdapat banyak motoda yang berbeda untuk optimasi yang digunakan untuk mencoba memecahkan TSP. Homaifar menyatakan satu pendekatan dengan menggunakan optimal solusi pada berbagai aplikasi TSP membutuhkan enumerasi dan evaluasi yang mendalam. Prosedur terdiri dari membangkitkan semua kemungkinan tur dan mengevaluasi jarak tur yang cocok. Tur dengan jarak terpendekmerupakan pilihan yang terbaik dengan jaminan optimal. 2.1 Algoritma Genetik pada TSP Algoritma genetik terinspirasi oleh teori Darwin tentang evolusi. Solusi untuk masalah yang dipecahkan dengan algoritma genetika adalah berevolusi. Algoritma dimulai dengan set solusi (diwakili oleh kromosom ) yang disebut populasi. Solusi dari satu populasi yang diambil dan digunakan untuk membentuk populasi baru. Hal ini didorong oleh harapan, bahwa penduduk baru akan lebih baik dari yang lama. Solusi yang dipilih untuk membentuk solusi baru (anak) yang dipilih sesuai dengan kelayakan yang lebih cocok dan lebih banyak kesempatan untuk bereproduksi. Hal ini diulangi sampai beberapa kondisi mendapatkan hasil yang memuaskan (misalnya jumlah populasi atau peningkatan solusi yang terbaik). 2.2 Operator pada Algoritma Genetik (AG) Setelah populasi awal secara acak dihasilkan, algoritma berkembang melalui tiga operator yaitu seleksi yang setara dengan survival of the fittest, crossover yang merupakan perkawinan antara individu, dan mutasi yang memperkenalkan modifikasi acak. Operator Seleksi Operator seleksi memberikan pilihan kepada individu yang lebih baik, yang memungkinkan untuk meneruskan gen kepada generasi berikutnya. Kebaikan dari masing-masing individu tergantung pada nilai fitness. Nilai fitness dapat ditentukan oleh fungsi obyektif atau oleh penilaian subyektif. Operator Crossover Faktor utama yang membedakan AG dari teknik optimasi lain adalah operator crossover. Dua individu dipilih dari hasil populasi menggunakan operator seleksi. Crossover memilih gen dari kromosom induk dan menciptakan sebuah keturunan baru. Cara melakukannya adalah dengan memilih secara acak beberapa titik crossover, kemudiannilai dari kedua string dipertukarkan. Dua keturunan baru yang diciptakan dari perkawinan ini dimasukkan ke dalam generasi berikutnya dari populasi. Dengan mengkombinasikan bagian dari individu yang baik, proses ini cenderung untuk menciptakan individu-individu lebih baik. Operator Mutasi Setelah crossover dilakukan, berlangsung proses mutasi. Tujuannya untuk melestarikan keragaman dalam populasi dan menghambat konvergensi prematur. Mutasi menginduksi perjalanan acak melalui ruang pencarian. Mutasi dan seleksi (tanpa crossover) membuat sebuah paralel, noise tolerant, dan algoritma hill climbing. 3. IMPLEMENTASI Teknik best route digunakan untuk menentukan rute terpendek yang harus ditempuh oleh obyek (gerobak) dari TPS dan mengumpulkan sampah dari semua bak sampah selanjutnya kembali ke TPS. Setiap node dinyatakan sebagai simpul graf, sedangkan sisi menyatakan jalan yang menghubungkan antar dua buah node. Bobot pada sisi menyatakan jarak antar dua buah node. Persoalan Perjalanan Pedagang tidak lain adalah menentukan lintasan yang melalui setiap node di dalam graf tepat satu kali, dan kembali ke simpul awal membentuk lintasan tertutup (disebut sirkuit Hamilton). Persoalan TSP pada game ini diselesaikan dengan menggunakan algoritma genetik. Dalam rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 algoritma genetik, pembentukan generasi baru (anak) dilakukan dengan tiga operasi, yaitu seleksi, crossover dan mutasi, kemudian melakukan evaluasi terhadap setiap populasi dengan menghitung nilai fitness setiap kromosom hingga kriteria berhenti dipenuhi. Bila kriteria berhenti belum terpenuhi, maka akan dibentuk lagi generasi baru dengan mengulangi langkah seleksi, crossover dan mutasi. Beberapa kriteria berhenti yang sering digunakan antara lain berhenti pada generasi tertentu, berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi/terendah, berhenti bila dalam n generasi berikutnya tidak diperoleh nilai fitness yang lebih tinggi/rendah. Pseudocode dari algoritma genetik untuk penentuan rute terbaik. Class findBestRoute public Gen[] findBestRoute(){ System.out.println("Masuk BestROute"); GA find Membangkitkan populasi awal secara random mother = populate(populationSize); child = new Individu[mother.length]; Membentuk generasi baru (anak) dengan menggunakan tiga operasi seleksi, crossover dan mutasi secara berulang-ulang for (Individu individu motherSystem.out.println("Individu :"+individu);} : Proses seleksi mengambil jalur terbaik yang sudah dipilih dari Algoritma A* dan jarak dari masing–masing jalur for (int jkl = 0; jkl < epoch; jkl++) {mother = competition(mother,3); System.out.println("generasi "+jkl+" : seleksi"); membangkitkan random for (Individu individu : mother) { System.out.println(individu);} populasi awal membentuk generasi baru (anak) menggunakan tiga operasi seleksi, crossover dan secara berulang-ulang secara dengan Proses crossover mutasi mengevaluasi setiap populasi dengan menghitung nilai fitness setiap individu hingga kriteria berhenti dipenuhi. kriteria berhenti yaitu berhenti pada generasi tertentu Best route atau rute terbaik dalam persoalan Travelling Salesman Problem adalah rute yang terpendek untuk meminimalkan biaya (cost). Penentuan rute terbaik ditulis dalam classfindBestRoute() menggunakan bahasa pemrograman Java. Inisialisasi public static final int DEFAULT_POPULATION_SIZE = 10; public static final int DEFAULT_CROSSOVER_PROBABILITY= 90; public static final int DEFAULT_MUTATION_PROBABILITY = 10; public static final int DEFAULT_EPOCH= 10; child = crossover(mother, crossoverProbability); System.out.println("generasi "+jkl+" : Crossover"); for (int i = 0; i < child.length; i++) { System.out.println(child[i].toString())} for (int j = a; j <= b; j++) { result[i].setGen(j, source[i].getGen((a + b) - j));}}} return result; } Proses mutasi System.out.println("generasi "+jkl+"" : Mutasi); child = mutation(child, mutationProbability); for (int i = 0; i < child.length; i++) {System.out.println(child[i].toString()) ;} mother = child;} Mengevaluasi setiap populasi dengan menghitung nilai fitness setiap individu hingga kriteria berhenti dipenuhi yaitu berhenti pada generasi ke 199 (nilai epoch). Individu bestIndividu = mother[0]; for(int i=1;i<mother.length;i++){ rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 if(mother[i].getFitness() bestIndividu.getFitness()) bestIndividu = mother[i];} return bestIndividu.getGens();} > 4. PENGUJIAN l. node (0,1)=[a, b, c, d, e, f, g, h, i, 1], dengan biaya 615 Langkah-langkah GA dalam penyelesaian TSP dengan perhitungan manual 1. Populasi dibangkitkan secara random dengan population size 10 yangmenunjukkan terdapat 10 buah populasi dalam satu generasi. 2. Inisialisasi Inisialisasi dilakukan dengan membentuk generasi baru (anak), misalkan didapatkan 10 individu sebagai berikut. Individu Individu Individu Individu Individu [1] [2] [3] [4] [5] :0 :0 :0 :0 :0 2 1 3 1 3 3 3 2 2 2 1 2 1 3 1 Individu Individu Individu Individu Individu [6] :0 [7] :0 [8] :0 [9] :0 [10]:0 2 1 2 1 2 Gambar 1:Play area4node 3. Gambar 1menunjukkan desain play area dimana terdapat node dan field tempat bak-bak sampah warga. Dalam desain, terdapat 3 bak sampah yang diidentifikasikan dengan nomor 1 sampai 3. Node 0 merupakan Tempat Pembuangan Sementara (TPS). Banyaknya kemungkinan jalur adalah n! /(n-r)! = 4! /(4-2)! = 12. Hasil dari pencarian jalur terpendek menggunakan teknik A* pathfinding yaitu 12 buah jalur terpendek. a. node(3,2)=[o, n, m, l, k, j, 2], dengan biaya 316 b. node(2,3)=[j, k, l, m, n, o, 3], dengan biaya 316 c. node(3,1)=[u, t, f, g, h, i, 1], dengan biaya 373 d. node (1,3)=[i, h, g, f, t, u, 3], dengan biaya 373 e. node (1,2)=[i, h, 2], dengan biaya 139 f. node (2,1)=[h, i, 1], dengan biaya 139 g. node (3,0)=[u, t, f, e, d, c, b, a, 0], dengan biaya 488 h. node (0,3)=[a, b, c, d, e, f, t, u, 3], dengan biaya 488 i. node (2,0)=[h, g, f, e, d, c, b, a, 0], dengan biaya 564 j. node (0,2)=[a, b, c, d, e, f, g, h, 2], dengan biaya 564 k. node (1,0)=[i, h, g, f, e, d, c, b, a, 0], dengan biaya 615 Evaluasi individu Evaluasi individu dilakukan dengan menghitung nilai fitness dari individu yang telah dibangkitkan. Perhitungan nilai fitness dari individu [1] yaitu 0 2 3 1 diperoleh dengan cara menjumlahkan biaya dari node 0 – node 2, node 2 – node 3, node 3 – node 1, dan node 1 – node 0. 𝐹𝑖𝑡𝑛𝑒𝑠𝑠[𝑖] = ∑𝑏𝑖𝑎𝑦𝑎 (𝑛𝑜𝑑𝑒𝑎𝑤𝑎𝑙 − 𝑛𝑜𝑑𝑒𝑎𝑘ℎ𝑖𝑟) ... (1) 𝐹𝑖𝑡𝑛𝑒𝑠𝑠[1,6,8,10] = ∑𝑏𝑖𝑎𝑦𝑎 node0 − 2 , node 2 − 3 , node 3 − 1 , node 1 − 0 = 564 + 316 + 373 + 615 = 1868 𝐹𝑖𝑡𝑛𝑒𝑠𝑠 2 = ∑𝑏𝑖𝑎𝑦𝑎 ((node0 − 1), node(1 − 3), node(3 − 2), node(2 − 0)) = 615 + 373 + 316 + 564 = 1868 𝐹𝑖𝑡𝑛𝑒𝑠𝑠 3,5 = ∑𝑏𝑖𝑎𝑦𝑎 ((node0 − 3), node(3 − 2), node(2 − 1), node(1 − 0)) = 488 + 316 + 139 + 615 = 1558 3 2 3 2 3 1 3 1 3 1 rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 𝐹𝑖𝑡𝑛𝑒𝑠𝑠 4, 7,9 = ∑𝑏𝑖𝑎𝑦𝑎 ((node0 − 1), node(1 − 2), node(2 − 3), node(3 − 0)) = 615 + 139 + 316 + 488 = 1558 4. Melakukan perulangan sebanyak epoch (di setting sebanyak 200, dan masing-masing operasi sebanyak 10), dan operasi seleksi menggunakan sistem kompetisi. Oleh karena pada persoalan TSP yang diinginkan yaitu individu dengan fitness yang lebih kecil akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse. yang ditentukan sebesar 90. Dengan operasi crossover, didapatkan individu baru sebagai berikut. Individu Individu Individu Individu Individu 6. 1 Q i = 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 ... (2) Q 1, 2, 6, 8, 10 = 1 = 5,353 1868 1 Q 3, 4, 5, 7, 9 = = 6,418 1558 Total = 58,855 Untuk mencari probabilitas, digunakan rumus sebagai berikut. Dari nilai P i di atas dapat terlihat bahwa inividu ke 3, 4, 5, 7 dan 9 mempunyai fitness paling kecil mempunyai probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari individu lainnya. 5. Melakukan operasi crossover, satu bagian individu ditukarkan dengan tetap menjaga urutan node yang bukan bagian dari individu tersebut. Individu yang dijadikan induk dipilih secara acak dan jumlah individu yang di tukarkan dipengaruhi oleh parameter crossover probability (ρc) 2 1 2 2 2 3 3 3 3 3 Individu Individu Individu Individu Individu [6] :0 3 2 1 [7] :0 2 1 3 [8] :0 1 2 3 [9] :0 3 2 1 [10] :0 2 1 3 [1] [2] [3] [4] [5] :0 :0 :0 :0 :0 1 3 1 1 1 2 1 2 2 3 3 2 3 3 2 Individu Individu Individu Individu Individu [6] :0 3 2 1 [7] :0 2 1 3 [8] :0 1 2 3 [9] :0 1 2 3 [10] :0 2 1 3 Mengevaluasi setiap populasi dengan menghitung nilai fitness setiap individu hingga kriteria berhenti dipenuhi, yaitu pada generasi ke 199. Dari hasil perhitungan didapatkan gen terbaik adalah 0 3 2 1 dengan nilai fitness terkecil, yaitu 1558 dan probabilitas sebesar 6,418. 8. Rute terbaik diambil dari gen terbaik, gerobak sampah berjalan dari node 0 (TPS) , kemudian node3, node 2, node1, dan kembali lagi ke node 0. Gambar 2 menunjukkan rute terbaik (digambarkan dengan garis kuning) yang akan dilalui oleh obyek. 5,353 = 0,090 58,855 6,418 = 0,109 58,855 1 2 1 1 1 7. Q i P 3, 4, 5, 7, 9 = :0 :0 :0 :0 :0 Melakukan operasi mutasi, jumlah individu yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate (ρm) yang ditentukan sebesar 10. Proses mutasi dilakukan dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya. Jika gen tersebut berada di akhir individu, maka ditukar dengan gen yang pertama. Dengan operasi mutasi, didapatkan individu baru sebagai berikut. Individu Individu Individu Individu Individu P i = 𝑡𝑜𝑡𝑎𝑙 ... (3) P 1, 2, 6, 8, 10 = [1] [2] [3] [4] [5] rd 3 International Conference on e-Learning Bandung, November 23-24, 2011 2. Klik sampah pada sumber sampah ke bak sampah, kemudian jalankan gerobak dengan menekan icon gerobak. 3. Hasil menunjukkan gerobak berjalan mulai dari TPS, ke bak sampah no. 3, kemudian bak sampah no. 2, lalu bak sampah no. 1 dan kembali lagi ke TPS. Gambar 2: Hasil penentuan rute terbaik Tabel1: Pengujian dengan perhitungan manual Node awal 0 3 2 1 Node Jalur Tujuan 3 a, b, c, d, e, f, t, u, 3 2 o, n, m, l, k, j, 2 1 h, i, 1 0 i, h, g, f, e, d c, b, a, 0 Total jarak (∑) Jarak 488 316 139 615 1558 Langkah-langkah GA dalam penyelesaian TSP dengan menjalankan game Kalpataru 1. Mengatur 3 buah bak sampah sedemikian hingga letaknya sama dengan pengujian secara manual dengan cara menekan tombol beli-beli, kemudian pilih bak sampah. 2. Klik sampah pada sumber sampah ke bak sampah, kemudian jalankan gerobak dengan menekan icon gerobak. 3. Hasil menunjukkan gerobak berjalan mulai dari TPS, ke bak sampah no. 3, kemudian bak sampah no. 2, lalu bak sampah no. 1 dan kembali lagi ke TPS. Langkah-langkah GA dalam penyelesaian TSP dengan menjalankan gameKalpataru 1. Mengatur 3 buah bak sampah sedemikian hingga letaknya sama dengan pengujian secara manual dengan cara menekan tombol beli-beli, kemudian pilih bak sampah. Gambar 3: Hasil pengujian dengan menjalankan game Kalpataru 5. PENUTUP Penentuan rute terbaik pengumpulan sampah dari TPS ke bak sampah dan kembali ke TPS merupakan persoalan Travelling Salesman Problem dan diselesaikan menggunakan algoritma genetik. Hasil pengujian rute terbaik dengan perhitungan manual dan melalui game didapatkan rute yang sama. Hal ini berarti game telah berjalan sesuai dengan desain yang diharapkan. DAFTAR PUSTAKA Bryant, K. (2000), Genetic Algorithms and the Travelling Salesman Problem, Department of Mathematics, HarveyMudd College. Homaifar, A., Guan, S. And Liepins, Gunar E. (1992), Schema analysis of the travelling salesman problem using genetic algorithms, Complex Systems, 6(2):183-217. Melanie, M. (2005), An introduction to Genetic Algorithms, http://www.doc.ic.ac.uk/~nd/surprise96/jour nal/vol1/hmw/article1.html#selection , 11 Juni 2010, 09.14. WIB. Obitko, M. (1998), Introduction to Genetic Algorithm,Department of Computer Engineering, Faculty of Electrical engineering, Czech Technical