ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE
THESIS
HERIMANTO 197038015
PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA 2021
ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE
TESIS
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika
HERIMANTO 197038015
PROGRAM STUDI MAGISTER TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA 2021
i
ii
PERNYATAAN
ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE
TESIS
Saya mengakui bahwa tesis ini adalah karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 28 Juli 2021
Herimanto 197038015
iii
PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di bawah ini:
Nama : Herimanto
NIM : 197038015
Program Studi : Magister Teknik Informatika Jenis Karya Ilmiah : Tesis
Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non – Exclusive Royalti Free Right) atas tesis saya yang berjudul:
ANALISIS KINERJA ALGORITMA GENETIKA PADA PERSOALAN NP-COMPLETE
Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non - Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemilik hak cipta.
Demikian pernyataan ini dibuat dengan sebenarnya.
Medan, 28 Juli 2021
Herimanto 197038015
iv
Telah diuji pada Tanggal: 28 Juli 2021
PANITIA PENGUJI TESIS
Ketua : Prof. Dr. Muhammad Zarlis, M.Sc.
Anggota : 1. Dr. Syahril Efendi, S.Si., M.IT.
2. Prof. Dr. Tulus Vor.Dipl.Math., M.Si 3. Prof. Dr. Herman Mawengkang
v
RIWAYAT HIDUP
DATA PRIBADI
Nama Lengkap : Herimanto
Tempat, Tgl Lahir : Sungai Bakau, 24 Juni 1993
Alamat Rumah : Jl. Utama, Desa Sei. Bakau, Kecamatan Sinaboi, Kab. Rohil Telepon / Hp : 0852 6512 4310
Email : pardzheri@gmail.com
DATA PENDIDIKAN
SD : SD Negeri 003 Sinaboi (1999 s/d 2005) SLTP : SMP Negeri 3 Bangko (2005 s/d 2008) SLTA : SMA Negeri 1 Bangko (2008 s/d 2011) D3 : Politeknik Negeri Medan (2011 s/d 2014)
S1 : Ilmu Komputer, Universitas Sumatera Utara (2014 s/d 2017) S2 : Teknik Informatika, Universitas Sumatera Utara (2019 s/d 2021)
DATA PEKERJAAN
Teknisi Komputer : Politeknik Negeri Medan (2017 s/d Sekarang )
vi
PENGHARGAAN
Puji dan syukur penulis ucapkan kepada Tuhan Yesus Kristus yang telah melimpahkan segala berkat rahmat dan kasih karunia-Nya sehingga penulis dapat menyelesaikan tesis yang bejudul “Analisis Kinerja Algoritma Genetika Pada Persoalan NP-Complete” ini dengan baik.
Tesis ini adalah salah satu bahan pertimbangan dalam penentuan kelulusan dan sebagai syarat untuk menyelesaikan pendidikan Magister pada Program Studi Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih yang tulus kepada semua pihak yang telah memberikan bimbingan dan bantuan di dalam menyelesaikan penelitian ini, yaitu:
1. Bapak Dr. Muryanto Amin, S. Sos, M. Si. selaku Rektor Universitas Sumatera Utara.
2. Ibu Dr. Maya Silvi Lidya, B. Sc., M. Sc. selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Prof. Dr. Muhammad Zarlis, M.Sc. dan Dr. Syahril Efendi, M.IT, selaku Ketua dan Sekretaris Program Studi S2-Teknik Infomatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara
4. Bapak Prof. Dr. Muhammad Zarlis, M.Sc. selaku Dosen Pembimbing I yang telah memberikan ilmu, bimbingan, saran dan masukan kepada penulis dalam penyempurnaan tesis ini.
5. Bapak Dr. Syahril Efendi, M.IT, selaku Dosen Pembimbing II yang juga telah memberikan masukan dan saran yang baik kepada penulis dalam penulisan tesis ini.
6. Bapak Prof. Dr. Tulus Vor.Dipl.Math., M.Si selaku Dosen Pembanding I yang telah memberikan waktu serta kritik dan saran yang baik bagi penulis dalam penelitian ini.
vii
7. Bapak Prof. Dr. Herman Mawengkang selaku Dosen Pembanding II yang juga telah memberikan waktu dan segala saran yang baik bagi penulis dalam penulisan tesis ini.
8. Seluruh staf pengajar dan pegawai Fakultas Ilmu Komputer dan Teknologi Informasi.
9. Kepada kedua orang tua tercinta, Bapak Gideon. B. Pardede, dan Ibu N. Br.
Pasaribu, karena telah menjadi kekuatan dan semangat bagi penulis setiap hari. Terima kasih juga untuk setiap doa dan dukungannya baik secara moril juga materil dalam pendidikan penulis khususnya pada proses penyusunan tesis ini.
10. Kapada saudara penulis: abang Gembira, kak Erna, kak Juli, kak Lidya, dan kak Lisken, yang selalu memberikan semangat dan dukungan bagi penulis.
11. Dan semua pihak yang telah membantu penulis baik secara langsung atau pun tidak langsung.
Penulis menyadari sepenuhnya bahwa sebagai manusia biasa tentunya tidak luput dari kekurangan dan keterbatasan, demikian juga halnya dengan penelitian ini.
Maka dengan segala kerendahan hati penulis mengharapkan saran dan kritik yang dapat menyempurnakan penulisan ini sehingga dapat bermanfaat dan berguna untuk pengembangan ilmu pengetahuan kedepannya.
Akhirnya, besar harapan penulis semoga laporan tugas akhir ini dapat memberikan manfaat dan sumbangan bagi kemajuan dan perkembangan ilmu pengetahuan terutama dalam bidang ilmu komputer.
viii
ABSTRAK
NP-Complete problem adalah salah satu persoalan sulit dalam bidang strategi algoritma namun juga menarik. Permasalahan Non-Deterministic Polynomial Complete Problem dikatakan menarik dan sulit karena hingga saat ini telah banyak penelitian yang membahas dan mengangkat topik ini namun belum ada satupun yang dapat menemukan algoritma terbaik untuk kasus tersebut dari segi analisis algoritma.
Salah satu topik yang dapat merepresentasikan kasus NP-Complete adalah permainan angka sudoku. Permainan ini sebenarnya cukup sedarhana, yaitu memasukkan suatu simbol tertentu kedalam sebuah puzzle berisi 9x9 kotak. Namun dalam memasukkan angka maupun simbol harus memperhatikan beberapa aturan penting dalam permainan sudoku, yaitu tidak boleh ada angka/simbol berulang dalam setiap baris, kolom dan blok/region sudoku. Hal in menjadikan permainan angka sudoku menjadi sulit dan tergolong kedalam permasalahan NP-Complete. Salah satu metode heuristik yaitu genetika dapat diterapkan dalam menyelesaikan persoalan sudoku. Pada penelitian ini akan dikenalkan sebuah strategi khusus dalam implementasi algoritma genetika pada persoalan NP-Complete yaitu dengan melakukan optimasi pada proses pembentukan populasi. Dari hasil pengujian didapat penerapan optimasi pada algoritma genetika menghasilkan waktu komputasi dan jumlah data yang lebih kecil dibandingkan dengan algoritma genetika tanpa optimasi.
Kata kunci: NP-Complete, Heuristik, Genetika
ix
ANALYSIS PERFORMANCE OF GENETIC ALGORITHM ON NP-COMPLETE PROBLEMS
ABSTRACT
NP-Complete problem is one of the difficult problems in algorithmic strategy, but also interesting. The Non-Deterministic Polynomial Complete Problem is interesting and difficult because until now there are so many studies that discussed and raised this topic but no one has been able to find the best algorithm for this case in terms of algorithm analysis. One of the topics that can represent the NP-Complete case is the number game sudoku. This game is actually simple, which is to enter a certain symbol into a puzzle containing 9x9 squares. However, in entering numbers and symbols, you must pay attention to some important rules in the game of sudoku, namely that there should be no repeated numbers/symbols in every row, column and block/region of sudoku. This makes sudoku numbers difficult and is classified as an NP-Complete problem. One of the heuristic methods, namely genetics, can be applied in solving sudoku problems. In this study, a special strategy for implementing genetic algorithms on the NP-Complete problem will be introduced, namely by optimizing the population formation process. From the test results, it is found that the application of optimization to the genetic algorithm results in a smaller computation time and amount of data than the genetic algorithm without optimization.
Keywords: NP-Complete, Heuristic, Genetic
x
DAFTAR ISI
HALAMAN JUDUL
PERSETUJUAN i
PERNYATAAN ORISINALITAS ii
PERSETUJUAN PUBLIKASI iii
PANITIA PENGUJI iv
RIWAYAT HIDUP v
PENGHARGAAN vi
ABSTRAK viii
ABSTRACT ix
DAFTAR ISI x
DAFTAR TABEL xii
DAFTAR GAMBAR xiii
BAB 1 PENDAHULUAN
1.1. Latar Belakang 1
1.2. Rumusan Masalah 3
1.3. Batasan Masalah 3
1.4. Tujuan Penelitian 4
1.5. Manfaat Penelitian 4
BAB 2 TINJAUAN PUSTAKA
2.1. NP-Complete Problem 5
2.2. Algoritma Genetika 6
2.2.1. Properti Umum Algoritma Genetika 7
2.2.2. Siklus Evolusi Algorima Genetika 7
2.3. Permainan Sudoku 10
2.4. Kecerdasan Buatan Dalam Permainan 11
2.5. Penelitian Terkait 12
xi
BAB 3 METODOLOGI
3.1. Data Yang Digunakan 15
3.2. Proses Pengolahan Data 15
3.2.1. Proses Pembentukan Populasi 16
3.2.2. Menghitung Nilai Fitnes 17
3.2.3. Seleksi 17
3.2.4. Crossover 18
3.2.5. Mutasi 18
3.3. Analisis Proses 18
3.3.1. Flowhart Penelitian 18
3.3.2. Flowchart Algoritma Genetika Konvensional 20 3.3.3. Flowchart Algoritma Genetika Dengan Optimasi 23
BAB 4 HASIL DAN PEMBAHASAN
4.1. Persiapan Awal 26
4.2. Implementasi Algoritma Genetika 27
4.2.1. Implementasi Algoritma Genetika Konvensional 27 4.2.2. Implementasi Algoritma Genetika Dengan Optimasi 39
4.3. Pembahasan 46
4.3.1. Hasil Perbandingan 46
BAB 5 KESIMPULAN
5.1. Kesimpulan 48
5.2. Saran 48
DAFTAR PUSTAKA 50
xii
DAFTAR TABEL
Tabel 3.1. Proses Pembentukan Populasi 17
Tabel 4.1. Nilai Fitness 30
Tabel 4.2. Nilai Fitness Yang Baru 32
Tabel 4.3. Nilai Fitness Akhir 36
Tabel 4.4. Data Pengujian Algoritma Genetika Konvensional 37
Tabel 4.5. Pengujian Waktu Komputasi 38
Tabel 4.6. Proses Pembentukan Populasi Dengan Optimasi 40
Tabel 4.7 Nilai Fitness 41
Tabel 4.8. Nilai Fitness Baru 44
Tabel 4.9. Data Waktu Pengujian Dengan Optimasi 45
Tabel 4.10. Perbandingan Data Uji 46
Tabel 4.11. Waktu Pengujian Kedua Metode 47
xiii
DAFTAR GAMBAR
Gambar 2.1. Arsitektur Umum Algoritma Genetika 8
Gambar 2.2. Contoh Crossover 8
Gambar 2.3. Contoh Offspring 9
Gambar 2.4. Hasil Crossover 9
Gambar 2.5. Contoh Mutasi 9
Gambar 2.6. Puzzle Sudoku Awal 10
Gambar 2.7. Puzzle Sudoku Lengkap 11
Gambar 3.1. Data Yang Digunakan 15
Gambar 3.2. Proses Pembentukan Populasi 16
Gambar 3.3. Contoh Populasi 17
Gambar 3.4. Flowchart Penelitian 19
Gambar 3.5. Flowchart Algoritma Genetika Konvensional 21 Gambar 3.6. Flowchart Algoritma Genetika Dengan Optimasi 24
Gambar 4.1. Puzzle Sudoku 26
Gambar 4.2. Populasi Awal 28
Gambar 4.3. Proses Mengisi Puzzle 29
Gambar 4.4. Puzzle Yang Sudah Terisi 29
Gambar 4.5. Menghitung Nilai Fitness 30
Gambar 4.6. Populasi Baru 31
Gambar 4.7. Crossover Point 33
Gambar 4.8. Hasil Crossover 34
Gambar 4.9. Proses Mutasi 35
Gambar 4.10. Hasil Mutasi 35
Gambar 4.11. Puzzle Yang Terisi Kromosom Dengan Fitness Tertinggi 37 Gambar 4.12. Grafik Data Pengujian Genetika Konvensional 38 Gambar 4.13. Proses Pembentukan Populasi Dengan Optimasi 39
Gambar 4.14. Populasi Awal 40
Gambar 4.15. Mencari Nilai Fitness 41
Gambar 4.16. Perbandingan Nilai Fitness Terbaik 42
Gambar 4.17. Populasi Baru 42
xiv
Gambar 4.18. Crossover Point 43
Gambar 4.19. Populasi Hasil Crossover 43
Gambar 4.20. Proses Mutasi 43
Gambar 4.21. Hasil Mutasi 44
Gambar 4.22 Puzzle Akhir 45
Gambar 4.23. Grafik Perbandingan Data Uji 46
1
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Ilmu komputer merupakan bidang ilmu sangat kompleks dewasa ini. Menurut Ema Utami dalam artikel jurnal yang berjudul “Metodologi Penelitian Pada Ilmu Komputer” di Seminar Nasional Teknologi 2007 (SNT 2007) Ilmu Komputer merupakan area baru dengan obyek investigasi berkonsekuensi membutuhkan banyak konsep dari banyak bidang ilmu lainnya, ilmu komputer mengintegrasikan teori dan praktek, abstraksi (umum) dan desain (khusus) science klasik dimana setiap bidang memiliki bidang tersendiri.
Salah satu yang cukup menarik dalam bidang ilmu komputer adalah kasus- kasus dalam penelitian bidang ilmu ini sangat banyak. Kurang lebih ada 14 area penelitian dalam bidang ini. Salah satu di antaranya adalah kasus dalam strategi algoritma yaitu Non-Deterministic Polynomial Complete Problem atau yang biasa dikenal dengan NP-Complete. Kasus ini menjadi sangat hangat karena sudah banyak penelitian yang mangangkat topik tersebut, dan sudah banyak peneliti yang mengajukan metode penyelesaian namun sejauh ini belum menemukan hasil yang cukup optimal. (Utami, 2007)
Secara singkat NP-Complete problem adalah sebuah persoalan yang tidak memiliki algoritma efesien untuk menyelesaikannya. Menurut Kanneth dalam jurnal artikel Proceedings Of the Third International Confference On Genetic Algorihms yang berjudul “Using Genetic Algorithms to Solve NP Complete Problems”, Kanneth secara terbuka mengakui jika masalah NP-Complete memang merupakan masalah yang sulit dan rumit untuk dipecahkan dalam strategi algoritmik. Masalah NP- Complete dianggap "sulit" dalam arti bahwa permasalahan ini tidak dapat diselesaikan dalam waktu yang polinomial. (Kanneth, 1998)
Contoh kasus dalam NP-Complete seperti graph coloring problem, n-puzzle, Knapsack problem, Subgraph isomorphism problem (Munir, 2018), dan masih banyak lagi. Salah satu contoh yang tepat merepresentasikan kasus NP-Complete adalah permaianan angka sudoku. Permainan puzzle ini cukup rumit dan merupakan salah satu game dalam kecerdasan buatan karena untuk menemukan solusi bilangan yang
akan dimasukkan kedalam matriks sudoku tidak bisa hanya dengan perhitungan matematis atau rumus tertentu. Perlu adanya strategi khusus dan algoritma mangkus untuk mencari solusi dalam kasus puzzle sudoku.
Untuk mengatasi kasus sudoku yang merupakan permasalahan NP-Complete, dibutuhkan algoritma yang tepat. Beberapa algoritma sejauh ini sudah banyak diterapkan dalam menemukan solusi terbaik seperti algoritma brute force, backtracking, ant colony optimization hingga algoritma genetika. Pada algoritma genetika terdapat kelebihan yang membedakan dengan metode optimasi lainnya yaitu algoritma ini dapat melakukan optimasi dengan masalah yang kompleks dan ruang pencarian yang sangat luas, sehingga cocok untuk permasalahan-permasalahan rumit seperti NP-Complete.
Dalam jurnalnya Kanneth menemukan bahwa masalah pada NP-Complete terbagi atas berbagai jenis dan beberapa diantaranya dapat diselesaikan dengan mudah oleh algoritma genetika. Selain itu Kanneth menemukan jika masalah NP-Complete ini juga dapat diselesaikan dalam waktu yang polinomial dengan cara menggunakan pendekatan yang lebih efektif, yaitu mengubah masalah NP-Complete kedalam masalah yang canonical. Kunci dari metode penyelesaian ini adalah dengan cara memetakan masalah NP-Complete kedalam Boolean Satisfiability Problem (SAT) terlebih dahulu. (Kanneth, 1998)
Meskipun demikian algoritma genetika bukan tanpa kekurangan. Menurut Afriyudi dalam jurnal yang dimuat dalam Prosiding SNASTI 2008 berjudul
“Penyelesaian Puzzle Sudoku menggunakan Algoritma Genetik” bahwa penggunaan algoritma genetika untuk menyelesaikan permasalahan puzzle sudoku memerlukan generasi yang sangat lama untuk sampai menemukan solusi yang tepat. Hal ini dikarenakan dalam proses pembentukan populasi pada algoritma genetika belum menerapkan batasan atau optimasi, sehingga angka yang mungkin untuk setiap puzzle sudoku harus melalui ribuan kemungkinan dan hal ini tentunya memerlukan waktu proses yang cukup lama.
Pada penelitian ini penulis menawarkan metode genetika dengan batasan dimana pada setiap proses pembentukan populasi menerapkan metode heuristik, yaitu bilangan yang sudah ada pada setiap baris, kolom dan blok otomatis di eliminasi sejak langkah awal dan tidak dimasukkan ke dalam kandidat populasi. Dengan metode optimasi ini diharapkan pada proses-proses berikutnya seperti pembentukan
3
kromosom, seleksi, crossover hingga mutasi bilangan yang akan di proses semakin sedikit sehingga dapat meminimalisasi jumlah generasi dan memperkecil waktu komputasi. Dan dari pemaparan latar belakang diatas penulis tertarik membahas penelitian yang berjudul “Analisis Kinerja Algoritma Genetika Pada Persoalan Np- Complete”
1.2. Rumusan Masalah
Banyaknya jumlah proses yang diperlukan oleh algoritma genetika pada persoalan NP-Complete dalam menemukan solusi puzzle sudoku sehingga dibutuhkan suatu metode yang dapat mengoptimasi dan meminimalisir jumlah proses dan waktu komputasi pada algoritma genetika.
1.3. Batasan Masalah
a. Analisis kinerja algoritma genetika ini dibuat pada persoalan NP-Complete yaitu permainan angka sudoku.
b. Populasi pada algoritma genetika adalah sederetan bilangan yang terdiri dari angka 1 s/d 9 yang dipilih secara acak.
c. Pada proses seleksi, metode yang digunakan adalah roullete wheel, dimana individu/ kromosom dengan nilai fitness yang besar akan dipertahankan dan individu/ kromosom dengan nilai fitness kecil akan di buang.
d. Proses pindah silang algoritma genetika pada penelitian ini menggunakan one point crossover, dan probability crossover (pc) sebesar 25% dari jumlah kromosom.
e. Proses mutasi menggunakan probability mutation (pm) sebesar 10% dari jumlah gen.
f. Puzzle sudoku yang digunakan adalah ukuran standard 9 x 9 kotak.
g. Analisis algoritma genetika pada penelitian ini diterapkan pada puzzle sudoku yang sudah memiliki penyelesaian awal (bukan puzzle kosong).
h. Penyelesaian awal yang terbentuk di dapat dari permainan sudoku pada penelitian yang dilakukan (Herimanto, 2017).
i. Bilangan awal puzzle sudoku terdiri dari 36 puzzle yang sudah terisi, dan masing-masing baris, kolom hingga blok (3x3) telah terisi minimal 1.
1.4. Tujuan Penelitian
Tujuan dari penelitian ini antara lain adalah sebagai berikut:
a. Mengimplementasikan algoritma genetika pada persoalan NP-Complete yaitu permainan angka sudoku.
b. Menganalisa kinerja algoritma genetika secara konvensional dan dengan menggunakan optimasi/ batasan.
c. Melakukan optimasi pada algoritma genetika dengan menerapakan teknik heuristik pada proses pembentukan populasi.
1.5. Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah sebagai berikut:
a. Manfaat bagi penulis
Mendapatkan pengetahuan dan wawasan mengenai strategi algoritma khususnya pada penerapan dan optimasi algoritma genetika dalam kasus NP-Complete.
b. Manfaat bagi umum
Dapat menjadi sarana pengetahuan umum dalam bidang strategi algoritma dan menjadi bahan rujukan serta sumber referensi dalam melakukan penelitian terkait di masa yang akan datang.
5
BAB 2
TINJAUAN PUSTAKA
Pada penelitian ini penulis melakukan studi pustaka dan merujuk beberapa tulisan baik buku cetak, e-book, jurnal dan artikel ilmiah serta tulisan-tulisan yang berkaitan dengan penelitian yang penulis lakukan demi mendukung teori dan gagasan yang penulis muat. Adapun tinjauan pustaka tersebut penulis himpun sebagai berikut:
2.1. NP-Complete Problem
NP-Complete Problem merupakan sebuah permasalahan tersulit dan menarik dalam strategi algoritma. Permasalahan ini sudah banyak diangkat menjadi topik dalam penelitian baik dalam menemukan algoritma terbaik untuk memecahkan nya maupun melakukan perbandingan beberapa algoritma. NP-Complete Problem atau dikenal dengan Non-Deterministik Polynomial Problem adalah persoalan yang tidak dapat dibuktikan dengan hitungan matematis atau hitungan pasti saja. Perlu adanya algoritma khsusus untuk memecahkan masalah ini sehingga dibutuhkan ketelitian dan algoritma yang benar-benar mangkus. (Munir, 2006)
Menurut Munir (2006), suatu permasalahan (misal: X) dapat digolongkan kedalam NP-Complete Problem adalah jika:
1) X termasuk ke dalam kelas NP (Non-Polymonial)
2) Setiap persoalan di dalam NP dapat direduksi dalam waktu polinom menjadi X
Dari logika diatas dapat disimpulkan bahwa cara untuk membuktikan sebuah masalah X adalah NP-Complete Problem adalah dengan menemukan sebuah metode sederhana (sebuah algoritma dalam waktu polinomial) untuk mentransformasikan masalah yang sudah dikenal NP-Complete Problem menjadi masalah X tersebut.
Sehingga untuk menunjukkan bahwa suatu permasalahan X adalah NP- Complete Problem yaitu:
1) Buktikan bahwa masalah X adalah anggota NP 2) Pilih instance, Y, dari sembarang persoalan NPC.
3) Temukan sebuah algoritma baru dalam waktu polinomial untuk mentransformasikan (mereduksi) Y menjadi instance persoalan X
2.2. Algoritma Genetika
Algoritma Genetika (Genetic Algorithm) adalah suatu algoritma pencarian yang digunakan dalam komputasi untuk mencari penyelesaian-penyelesaian eksak atau aproksimasi terhadap masalah-masalah optimisasi dan pencarian. Algoritma genetika dikategorikan sebagai global search heuristics. Algoritma genetika adalah satu kelas khusus dari evolutionary algorithms (EA) yang menggunakan teknik yang terinspirasi oleh evolutionary biology misalnya seperti inheritance, mutation, selection, and crossover (disebut juga recombination). (Mitchell, 1999)
Algoritma genetika adalah meta-heuristics stochastic yang menirukan beberapa fitur evolusi alam, atau dalam pengertian lain menirukan proses evolusi dan ide tentang survival of the fittest. Bermula dengan sebuah populasi penyelesaian yang dibentuk (generate) secara acak individu-individu yang lebih baik adalah lebih mungkin terpilih untuk di kombinasikan ulang ke dalam penyelesaian baru. Semakin fit suatu penyelesaian, semakin mungkin meneruskan informasinya ke generasi penyelesaian berikutnya. Selain mengkombinasi ulang penyelesaian, penyelesaian baru dapat dibentuk dengan memutasikan atau menukar penyelesaian lama secara acak. Sebagian penyelesaian terbaik dari tiap-tiap generasi disimpan sementara yang lainnya digantikan oleh penyelesaian yang baru terbentuk. Proses ini diulangi hingga dipenuhi kriteria berhenti. (Mitchell, 1999)
Dalam setiap generasi, fitness dari setiap individu dalam populasi itu dievaluasi, beberapa individu dipilih secara stokastik dari populasi saat ini (berdasarkan fitness mereka), dan dimodifikasi (di-rekombinasi dan mungkin dimutasikan secara acak) untuk membentuk sebuah populasi baru. Populasi baru itu kemudian digunakan dalam iterasi berikut pada algoritma. Umumnya, algoritma berhenti apabila telah dihasilkan sejumlah maksimum generasi, atau telah dicapainya suatu level fitness untuk populasi tersebut. Apabila algoritma telah berhenti karena tercapainya sejumlah maksimum generasi, penyelesaian yang memuaskan boleh tercapai dan boleh jadi belum tercapai. (Mitchell, 1999)
7
2.2.1. Properti Umum Algoritma Genetika
Algoritma genetika di implementasikan dalam simulasi komputer dimana populasi dari representasi abstrak (disebut chromosomes atau genotype dari genome) dari kandidat penyelesaian (disebut individuals, creatures, atau phenotypes) pada sebuah masalah optimisasi muncul ke arah penyelesaian-penyelesaian yang lebih baik.
Biasanya, penyelesaian disajikan dalam untaian binary 0 dan 1, meskipun dapat menggunakan encoding lain sesuai dengan studi kasus yang sedang dibahas.
Evolution biasanya bermula dari sebuah populasi individu-individu yang dibangkitkan secara acak dan terjadi dalam beberapa generasi. (Mitchell, 1999)
Berikut ini beberapa hal penting yang perlu diperhatikan dalam mendefinisikan individu:
Gen (Genotype) yaitu satuan terkecil dalam rangkaian proses genetika yang membentuk sebuah kromosom.
Allele yaitu nilai yang terdapat dalam gen (biasanya dalam bentuk biner, float, integer, karakter atau kombinatorial).
Kromosom adalah gabungan dari beberapa gen-gen yang membentuk nilai tertentu.
Individu merupakan suatu nilai atau keadaan yang menyatakan solusi yang mungkin dari permasalahan yang dikaji.
Populasi merupakan gabungan dari beberapa individu yang akan diproses bersama dalam suatu siklus algoritma genetika.
Generasi yaitu satu siklus atau satu iterasi dalam algoritma genetika
2.2.2. Siklus Evolusi Algoritma Genetika
Pada algoritma genetika terdapat lima fase dalam proses evolusi untuk menghasilkan individu baru, diantaranya adalah Initial population, Fitness function, Selection, Crossover dan Mutation.
a. Initial population
Proses dimulai dengan satu himpunan Individu, dimana setiap individu merupakan solusi dari problem yang akan diselesaikan. Setiap individu ditandai dengan sekumpulan parameter (variabel) yang disebut Gen. Gen- gen bergabung menjadi sebuah string untuk membentuk sebuah chromosom. Lebih jelasnya ditempilkan pada gambar berikut:
Gambar 2.1. Arsitektur umum algoritma genetika (Mitchell, 1999)
b. Fitness Function
Fitness function menunjukkan seberapa fit sebuah individu (fit:
kemampuan individu untuk bersaing dengan individu lain). Dalam tahapan ini setiap individu diberi skor kebugaran (fitness value). Probabilitas sebuah individu akan dipilih untuk reproduksi didasarkan pada nilai fitness nya.
c. Selection
Tahapan ini adalah untuk memilih individu yang mempunyai fitness terbaik untuk meneruskan gen nya kepada generasi selanjutnya. Dua individu (yang dianggap sebagai parents) akan dipilih dengan melihat nilai fitness masing-masing. Individu-individu dengan nilai fitness tinggi mempunyai lebih banyak ruang untuk melakukan reproduksi.
d. Crossover
Crossover (kawin-silang) merupakan fase terpenting dalam siklus genetika.
Akan dipilih 2 buah individu untuk ditukarkan nilai gen nya (allele) berdasarkan titik crossover yang telah ditentukan sebelumnya.
Untuk lengkapnya dapat dilihat seperti ilustrasi berikut ini.
Gambar 2.2. Contoh crossover (Mitchell, 1999)
9
Pada crossover dikenal sebuah istilah probabilitas crossover Atau crossover propability (𝑝𝑐) adalah sebuah parameter untuk menggambarkan seberapa sering crossover dilakukan. Jika 𝑝𝑐 100% maka seluruh keturunan (offspring) dihasilkan dari crossover. Jika 0%, semua generasi baru dihasilkan dari menduplikasi chromosom dari parent nya, artinya tidak ada perubahan untuk populasi yang dihasilkan.
Crossover dibuat dengan harapan kromosom baru akan berisi bagian yang baik dari kromosom lama sehingga kromosom baru yang dihasilkan menjadi lebih baik. Offspring diciptakan dengan menukar gen di antara orang tua, seperti A1 yang menukarkan sebagian allele nya dengan A2 berikut ini,
Gambar 2.3. Contoh offspring (Mitchell, 1999)
Dari hasil persilangan pada gambar 2.3 didapatkan keturunan baru seperti gambar dibawah ini:
Gambar 2.4. Hasil crossover (Mitchell, 1999)
e. Mutation
Mutation (mutasi) merupakan proses mengganti beberapa nilai gen (allele) dengan nilai yang baru secara acak dalam satu siklus evolusi algoritma genetika. Probabilitas nilai yang diganti ditentukan oleh nilai probability mutation (𝑝𝑚) yang dibuat. Untuk lebih jelasnya ditampilkan pada gambar 2.5 berikut ini:
Gambar 2.5. Contoh mutasi (Mitchell, 1999)
Algoritma akan berakhir jika populasi yang telah berkumpul tidak lagi menghasilkan keturunan yang jauh berbeda dari generasi-generasi sebelumnya.
Artinya bahwa algoritma genetika telah menyediakan serangkaian solusi untuk permasalahan yang diangkat.
2.3. Permainan Sudoku
Permainan sudoku awalnya merupakan sebuah teka-teki angka yang berkembang di Jepang pada tahun 1979 dan diterbitkan dalam surat kabar, majalah dan media cetak lainnya. Permainan ini menjadi cukup menarik dan banyak di gemari karena cukup menantang dan butuh waktu serta konsentrasi untuk menyelesaikannya. Pada umumnya permainan sudoku terdiri atas 9x9 kotak yang harus berisi angka/ simbol tertentu dan harus unik. Pada permainan sudoku normal, biasanya beberapa kotak telah berisi angka sebagai petunjuk yang biasa disebut dengan bilangan awal. Aturan permainannya adalah sebagai berikut: (Schottlender, 2014)
a. Setiap kotak pada sudoku (biasa disebut puzzle sudoku) harus berisi angka (dalam beberapa kasus dapat menggunakan simbol, karakter/ huruf dan encoding lainnya).
b. Angka/ simbol yang dimasukkan kedalam puzzle sudoku harus unik dalam setiap baris, kolom dan subgrid tidak boleh ada yang berulang. Untuk lebih jelasnya dapat dilihat pada gambar 2.6 berikut ini.
Gambar 2.6. Puzzle sudoku awal (Weiss, 2009)
Pada gambar 2.6 diatas terlihat puzzle sudoku berisi bilangan awal yang terdiri dari angka 1 s/d 9. Dalam kasus lain angka ini dapat di ganti dengan huruf atau simbol lain. Puzzle sudoku lengkap dapat dilihat pada gambar 2.7 berikut.
11
Gambar 2.7. Puzzle sudoku lengkap (Weiss, 2009)
Konsep permainan sudoku sebenarnya sangat sederhana, namun karena untuk mengisi kotak kosong pada permainan ini berlaku decision problem, artinya untuk menempatkan suatu bilangan tertentu pada kotak kosong sudoku tidak ada rumus praktis yang dapat diterapkan, maka dapat dikatakan bahwa permainan ini tergolong dalam persoalan NP-Complete.
2.4. Kecerdasan Buatan Dalam Permainan
Kecerdasan buatan merupakan suatu kecerdasan yang ditambahkan kedalam suatu mesin, sistem atau aplikasi dengan menggunakan algoritma-algoritma atau instruksi tertentu sehingga sistem tersebut dapat melakukan tugas sesuai instruksi yang diberikan dan seolah-olah dapat berpikir seperti manusia. Tujuan dari ditanamkannya kecerdasan buatan kedalam suatu sistem yaitu agar sistem tersebut dapat berpikir seolah-olah seperti manusia dan dapat mempermudah pekerjaan manusia itu sendiri.
Suatu sistem atau mesin tidaklah pintar jika tidak ditanamkan suatu sistem kecerdasan.
(Martiana, 2013)
Kecerdasan buatan dalam permainan komputer (game) telah berkembang cukup lama. Game pada dasarnya merupakan set instruksi kompleks yang dimasukkan ke program yang sudah memprediksi intelegensi pemakainya. Salain itu, isi program tersebut juga memuat prosedur pencarian sesuai dengan aturan permainan yang berlaku. Ada beberapa jenis permainan modern dan tradisional yang tergolong kedalam game kecerdasan buatan, satu diantaranya dan paling banyak dikenal adalah permainan angka sudoku. Game ini tergolong kedalam kasus dengan tingkat kesulitan yang cukup rumit karena memuat kemungkinan solusi yang cukup banyak. Penelitian terkait masalah angka sudoku juga sering di angkat karena kasus ini juga termasuk
kedalam bidang strategi algoritmik yaitu Non Polynomial Deterministik Problem atau biasa disebut NP-Complete Problem.
2.5. Penelitian Terkait
Adapun penelitian terdahulu yang terkait dengan penelitian yang dilakukan oleh penulis antara lain:
a. B. H. Arabi, (2016) melakukan penelitian dan mengemukakan pendapat dalam jurnal artikelnya yang berjudul “Solving NP-Complete Problems Using Algoritma Genetika” pada 2016 UKSim-AMSS 18th International Conference on Computer Modelling and Simulation (UKSim), Cambridge, United Kingdom, bahwa algoritma genetika cocok digunakan dalam permasalahan NP-Complete yaitu Traveling Salesman Problem (TSP).
pada penelitian ini Arabi melakukan perbandingan antara algoritma genetika dan algoritma Exhaustive Search Method (ESM) dari sisi kompleksitas waktu algoritma, dari 3 kali test ditemukan bahwa algoritma genetika lebih cepat dengan kompleksitas lebih rendah dibandingkan dengan algoritma Exhaustive Search Method (ESM). Salah satu yang alasan mengapa Arabi menggunakan algoritma genetika adalah karena menurut Arabi algoritma genetika mudah diskalakan dan didistribusikan.
b. F. Gerges, G. Zouein, dan D. Azar, (2018) dalam jurnal yang berjudul
“Algoritma Genetika with Local Optima Handling to Solve Sudoku Puzzles”, di Proceedings of the 2018 International Conference on Computing and Artificial Intelligence - ICCAI 2018, Chengdu, China, melakukan suatu metode baru dalam algoritma genetika dengan cara memodifikasi crossover dan operator mutasi. Mereka menyebut pendekatan ini sebagai “purge approach”. Modifikasi ini diklain dapat mengoptimalkan kinerja algoritma genetika karena dapat menghindari optima local. Dari hasil pengujian yang dilakukan, F. Gerges et al menemukan bahwa algoritma genetika dengan modifikasi “purge approach” jauh lebih unggul dari segi iterasi dibandingkan dengan algoritma genetika biasa tanpa modifikasi pada kasus NP-Complete.
c. M. Nicolau and C. Ryan, (2006) dalam jurnal yang berjudul “Solving Sudoku with the GAuGE System,” di Genetic Programming, vol. 3905
13
mengemukakan motode dalam algoritma genetika yang dinamakan sistem GAuGE (Genetic Algorithms using Grammatical Evolution) dapat bekerja sesuai dengan kelas permasalahan sudoku. Sistem GAuGE dilengkapi dengan instruksi logis yang sesuai seahingga dapat memecahkan masalah yang rumit seperti sudoku dan melakukannya dengan membuat daftar langkah logis yang diambil.
d. D. Job and V. Paul (2016) melakukan penelitian yang berjudul “Recursive Backtracking for Solving 9*9 Sudoku Puzzle” dan menemukan algoritma backtracking dengan manggunakan modifikasi jaringan syaraf dapat melakukan pencarian pada kasus angka sudoku sulit dengan jumlah 30 puzzle sudoku 9x9. Dari hasil analisis penelitian ini D. Job and V. Paul menemukan bahawa semakin banyak angka awal/ bilangan petunjuk pada puzzle yang sudah terisi maka akan semakin cepat algoritma backtracking menyelesaikannya, sebaliknya semakin sedikit puzzle sudoku berisi bilangan awal/ bilangan petunjuk maka akan semakin lama algoritma backtracking menyelesaikannya.
e. A. K. Maji and R. K. Pal, (2014) dalam jurnal yang berjudul “Sudoku solver using minigrid based backtracking,” di 2014 IEEE International Advance Computing Conference (IACC), Gurgaon, India, mengemukakan bahwa semua permasalahan sudoku adalah metode heuristik berbasis tebakan atau komputasi lunak intensif komputasi. Semuanya berbasis sel, itulah sebabnya sangat memakan waktu. Sehingga A. K. Maji and R. K.
Pal menawarkan sebuah metode yang dinamakan minigrid berbasis backtracking dalam pemecahan masalah sudoku. Metode ini bertindak seperti memecah-mecah puzzle sudoku kedalam mingrid yang lebih kecil lalu mencari masing-masing solusi dari minigrid tersebut. Dengan melakukan teknik ini A. K. Maji and R. K. Pal menemukan bahwa perhitungan yang terlibat dalam algoritma manjadi berkurang secara signifikan.
f. N. A. Hasanah, L. Atikah, D. Herumurti, and A. A. Yunanto, (2020) dalam jurnal yang berjudul “A Comparative Study: Ant Colony Optimization Algorithm and Backtracking Algorithm for Sudoku Game,” di 2020 International Seminar on Application for Technology of Information and
Communication (iSemantic), Semarang, Indonesia, melakukan perbandingan terhadap algoritma backtracking dan algoritma ant colony optimization dalam kasus angka sudoku dan hasilnya ditemukan bahwa algoritma ant colony optimization bekerja lebih baik daripada algoritma backtracking. Dari 75 kali percobaan yang dilakukan pada kasus sudoku didapati bahwa algoritma ant colony unggul dengan 89% lebih cepat daripada algoritma backtracking.
15
BAB 3 METODOLOGI
Metodologi merupakan bagian penulisan yang menjelaskan langkah dan tahapan yang akan dilakukan pada penelitian ini. Metodologi pada penelitian ini diantaranya adalah data yang digunakan, proses pengolahan data dan analisis proses yang terdiri dari diagram alir atau flowchart.
3.1. Data Yang Digunakan
Data yang digunakan pada penelitian ini merupakan bilangan yang terdiri dari angka 1 s/d 9 yang di generate secara random dalam bentuk gen, dimana gen-gen tersebut merupakan komponen pembentuk kromosom yang panjangnya sama dengan jumlah puzzle yang kosong pada sudoku. Contoh data yang di olah pada penelitian ini adalah sebagai berikut:
1 2 3 4 5 6 7 8 9
Gambar 3.1. Data yang digunakan
Array 2 dimensi pada gambar 3.1 di atas merupakan contoh bentuk data yang akan di olah pada penelitian ini. Data tersebut merupakan gen-gen pembentuk kromosom yang bilangannya dapat dipilih secara acak dan tidak ada aturan khusus dalam menentukannya.
3.2. Proses Pengolahan Data
Proses pengolahan data pada penelitian ini yaitu sesuai dengan siklus genetika, di antaranya pembentukan populasi, menghitung nilai fitness, seleksi, crossover dan mutasi.
Penelitian ini mengimplementasikan algoritma genetika dalam mencari solusi untuk puzzle sudoku. Pencarian diawali dengan menggunakan algoritma genetika secara konvensional, lalu menggunakan algoritma genetika dengan menerapkan batasan/ optimasi. Yang membedakan proses pengolahan data pada algoritma genetika konvensional dengan menggunakan batasan/ optimasi adalah pada proses pembentukan populasinya. Pada algoritma genetika dengan menggunakan batasan/
optimasi menerapkan suatu metode yang disebut “metode heuristik”, yaitu setiap
angka didalam baris, kolom serta blok menjadi indikator penting yang akan mempengaruhi bentuk populasi. Setiap angka yang sudah ada pada setiap baris, kolom dan blok tidak akan dimasukkan kedalam kandidat populasi seperti pada algoritma genetika konvensional.
3.2.1. Proses Pembentukan Populasi
Populasi merupakan sederetan bilangan acak yang terdiri dari angka 1 s/d 9 sebagai kandidat solusi dari permainan angka sudoku dan panjangnya berdasarkan berapa jumlah puzzle yang kosong pada permainan angka sudoku. Untuk lebih jelasnya dapat dilihat pada gambar 3.2 berikut ini:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 6 3 8
2 7 6 8 9 1 3 5
5 9 7 3 1 6
1 2 6
3 7 8 9
6 8 7 5 3
8 5 1
6 5 1 9
Gambar 3.2. Proses pembentukan populasi
Pada gambar 3.2 terlihat puzzle sudoku ukuran 9x9 yang telah memiliki bilangan awal sebanyak 36 angka dan yang masih kosong terdapat 45 puzzle. Populasi didapat dari semua kemungkinan angka yang dapat diisi untuk setiap puzzle yang kosong. Misalnya puzzle (1,1) secara umum bilangan yang dapat di isikan adalah 1 s/d 9, demikian juga pada puzzle kosong (1,4) dan seterusnya.
Ilustrasi angka yang mungkin untuk setiap puzzle kosong ditampilkan pada tabel 3.1 berikut ini:
17
Tabel 3.1. Proses pembentukan populasi Puzzle Angka yang mungkin
1,1 1 2 3 4 5 6 7 8 9 1,4 1 2 3 4 5 6 7 8 9 1,5 1 2 3 4 5 6 7 8 9 1,6 1 2 3 4 5 6 7 8 9 1,7 1 2 3 4 5 6 7 8 9 1,8 1 2 3 4 5 6 7 8 9 Dan seterusnya.
Dari angka-angka yang mungkin diatas maka kromosom-kromosom untuk populasi yang dapat terbentuk menjadi:
k1 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9
k2 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1
k3 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2
Gambar 3.3. Contoh populasi
Angka yang berada didalam setiap gen pada populasi diatas di pilih secara acak dan tidak ada aturan khusus dalam menentukannya. Hanya saja sesuai dengan persoalan yang sedang diselesaikan yaitu permainan angka sudoku, dimana aturan permainan ini mengisi angka 1 s/d 9 maka otomatis gen yang terbentuk sudah pasti terdiri dari angka 1 s/d 9 seperti yang disajikan.
3.2.2. Menghitung Nilai Fitness
Nilai fitness didapat dari menghitung jumlah angka yang berulang pada setiap baris, kolom dan blok pada setiap puzzle, lalu dilakukan pengurangan antara panjang kromosom (jumlah puzzle kosong) dengan jumlah angka berulang tersebut. Nilai fitness sempurna adalah sebesar panjang kromosom/ puzzle kosong. Semakin rendah nilai fitness maka semakin besar kemungkinan diganti dengan kromosom yang nilai fitness tinggi.
3.2.3. Seleksi
Proses seleksi merupakan langkah mempertahankan kromosom-kromosom terbaik untuk melanjutkan proses berikutnya. Fitness terbaik pada populasi akan di seleksi
dengan menggunakan metode roullete wheel untuk mempertahankan kromosom terbaik dan mengganti kromosom dengan nilai fitness buruk dalam populasi.
3.2.4. Crossover
Crossover merupakan proses kawin silang dimana 2 individu dalam populasi akan di pilih secara acak untuk menghasilkan individu baru dengan nilai fitness yang baru.
Aturan pada proses crossover adalah menggunakan metode one point crossover.
3.2.5. Mutasi
Proses mutasi dilakukan untuk mengganti nilai dari beberapa gen yang terpilih dalam populasi untuk menghasilkan nilai fitness yang lebih baik. Aturan dalam proses mutasi ini ditentukan oleh probability mutation yaitu sebesar 10% dari jumlah gen yang ada.
3.3. Analisis Proses
Analisis proses merupakan bagian yang menjelaskan proses dan langkah-langkah yang dilakukan pada penelitian dalam bentuk diagram alir/ flowchart. Analisis proses pada penelitian ini terdiri dari beberapa flowchart, diantaranya flowchart penelitian secara umum, flowchart algoritma genetika konvensional dan flowchart algoritma genetika dengan optimasi/ batasan.
3.3.1. Flowchart Penelitian
Flowchart penelitian merupakan gambaran dan asritektur umum yang menyajikan semua langkah yang dilakukan pada penelitian mulai dari awal pengerjaan penelitian ini hingga selesai. Adapaun flowchart penelitian pada penulisan ini adalah sebagai berikut.
19
Mulai
Inisialisasi Bilangan Awal
Selesaikan Dengan Algoritma Genetika Optimasi Selesaikan Dengan Algoritma
Genetika Konvensional
Tampilkan Solusi
Bandingkan Hasil Kedua Metode
Selesai
Gambar 3.4. Flowchart penelitian
Gambar 3.4 mempresentasikan alur kerja penelitian yang akan berjalan dari awal hingga selesai. Sesuai dengan pengertian umumnya, flowchart adalah salah satu bentuk diagram yang merepresentasikan alur kerja atau proses yang terjadi pada sebuah penelitian atau algoritma tertentu, biasanya terdiri dari simbol garis yang menampilkan langkah-langkah dan masing-masing urutannya dihubungkan dengan tanda panah.
Pada flowchart penelitian ini di awali dengan terminator “Mulai” sebagai penanda awal mula pengerjaan berjalan, yang kemudian diteruskan dengan
“Inisialisasi Bilangan Awal” yang pada penelitian ini permainan angka sudoku, artinya sesuai dengan kaidah dan aturan permainan sudoku; setiap generate maka beberapa puzzle sudoku sudah terisi dengan bilangan 1 s/d 9 yang biasa disebut
bilangan awal. Bilangan yang terisi ini nantinya terdiri dari 36 puzzle sudoku yang telah terisi dan 45 puzzle kosong.
Program berjalan menuju 2 proses selanjutnya yaitu “Selesaikan Dengan Algoritma Genetika Konvensional” dan “Selesaikan Dengan Algoritma Genetika Optimasi”. Artinya program dibuat dengan 2 pilihan penyelesaian lalu hasilnya dapat ditampilkan pada alur proses berikutnya yaitu “Tempilkan Solusi” jika telah menjalani proses dan mencapai fitness maksimal sesuai dengan aturan yang berlaku.
Program dilanjutkan dengan melakukan analisis, proses ini terjadi pada
“Bandingkan Hasil Kedua Metode”. Proses ini akan melakukan analisis komputasi dari kedua metode baik secara konvensional maupun dengan optimasi. Analisis komputasi yang dimaksud adalah melakukan perhitungan lama waktu komputasi melalui jumlah generasi dari kedua metode, berapa generasi yang diperlukan oleh algoritma genetika konvensional untuk mencapai tujuan dan berapa generasi yang diperlukan oleh algoritma genetika dengan optimasi. Proses analisis juga menghitung jumlah populasi dan jumlah gen-gen yang di perlukan oleh masing-masing metode untuk sampai menemukan solusi tujuan. Semakin banyak jumlah polpulasi, gen dan generasi maka akan semakin memperbesar waktu komputasi algoritma, sebaliknya semakin sedikit jumlah gen, populasi dan generasi akan memperkecil waktu komputasi.
3.3.2. Flowchart Algoritma Genetika Konvensional
Selain flowchart penelitian secara umum, alur kerja algoritma juga merupakan hal yang sangat penting dalam memberikan gambaran proses algoritma yang bekerja.
Pada penelitian ini, walaupun menggunakan 1 algoritma genetika namun karena pada implementasinya menerapkan optimasi maka akan ada 2 flowchart algoritma karena masing-masing akan berbeda cara kerjanya baik secara konvensional maupun dengan optimasi.
Adapun alur kerja algoritma genetika secara konvensional dapat di lihat pada tampilan gambar 3.5 berikut:
21
Mulai
Buat Populasi
Hitung Nilai Fitness
Fitnes Terbaik Ditemukan ?
Seleksi Tidak
Selesai
Inisialisasi Bilangan Awal
Mutasi
Isi Puzzle Dengan Kromosom Dari Nilai Fitness Terbaik
Tampilkan Solusi Ya
Crossover
Gambar 3.5. Flowchart algoritma genetika konvensional
Flowchart algoritma genetika pada gambar 3.5 diawali dengan tanda “Mulai”
sebagai titik awal proses berjalan. Flowchart algoritma diatas sebenarnya merupakan hasil interpretasi dari urutan langkah penyelesaian algoritma genetika secara umum yang diterapkan pada kasus NP-Complete sudoku. Proses algoritma genetika dilanjutkan dengan “Inisialisasi Bilangan Awal”. Proses ini akan melakukan inisialisasi atau scanning puzzle sudoku berapa puzzle yang sudah memiliki bilangan awal, posisi dan nilainya akan di inisialisasi dan disimpan untuk proses selanjutnya.
Selanjutnya dari proses scanning inti dari algoritma genetika konvensional akan dilakukan, ini berlangsung pada proses “Buat Populasi”. Pada proses ini program akan men-generate secara random jumlah populasi yang dibutuhkan untuk proses genetika, dimana populasi terdiri dari sederatan gen-gen yang membentuk kromosom dan panjangnya sebanyak jumlah puzzle kosong pada sudoku. Semakin banyak puzzle yang kosong, maka akan semakin panjang kromosom, dan gen-gen pembentuk kromosom juga akan semakin banyak.
Proses dilanjutkan dengan “Hitung Nilai Fitness”. Dalam pengertian sederhana nilai fitness dapat diartikan sebagai nilai kebugaran dari suatu individu. Semakin besar nilai fitness suatu individu maka akan semakin besar kemungkinan individu tersebut bertahan dan melanjutkan siklus dan proses-proses berikutnya. Sebaliknya individu yang memiliki nilai fitness kecil maka akan memungkinkan individu tersebut dibuang dan diganti dengan individu dengan nilai fitness yang lebih baik. Pada penelitian ini nilai fitness tujuan ditentukan jika kromosom telah mencapai nilai maksimal yaitu sebesar panjang kromosom atau jumlah puzzle yang kosong.
Setelah melakukan proses perhitungan nilai fitness, maka algoritma akan berlanjut ke proses “Isi Puzzle Kosong Dengan Angka Dari Nilai Fitness Terbaik”.
Proses ini adalah mengisikan angka-angka dari hasil seleksi nilai fitness terbaik kedalam kolom dari puzzle yang kosong, sebelum akhirnya di periksa kembali pada decision proses “Fitness terbaik ditemukan?”. Nilai fitness menandakan apakah ada angka yang berulang dalam suatu baris, kolom maupun blok. Jika masih ada artinya nilai fitness masih lebih kecil dari nilai panjang kromosom. Jika telah mencapai nilai ini dipastikan semua angka yang dimasukkan tersebut tidak berulang jika di periksa setiap baris, kolom dan blok nya merupakan angka unik. Jika pada decision jawabannya “Ya” artinya solusi ditemukan, maka solusi akan ditampilkan dan
23
algoritma genetika konvensional selesai berjalan dengan diakhiri oleh terminator
“Selesai”.
Namun jika jawaban “Tidak” artinya solusi belum ditemukan maka algoritma genetika konvensioanl akan dilanjutkan kembali ke proses “Seleksi”. Proses seleksi menggunakan metode roulette wheel dimana individu akan dipilih berdasarkan nilai fitness nya. Individu yang memiliki nilai fitness baik akan dipertahankan untuk proses berikutnya. Sedangkan individu dengan nilai fitness buruk akan dibuang dan di ganti dengan individu yang nilai fitness nya besar.
Setelah melalui proses seleksi individu-individu akan dipilih untuk menajalani proses perkawinan silang yaitu “Crossover”. Metode crossover yang digunakan pada proses ini adalah one point crossover, dimana dua individu akan ditentukan suatu titik potong yang sama, lalu menukarkan sebagian nilai gen/ allele individu 1 dengan nilai gen/ allele pada individu 2 dengan batas crossover point yang telah ditentukan sehingga menghasilkan individu dengan gen-gen dan nilai fitness yang baru.
Proses selanjutnya adalah “Mutasi”, yaitu mengganti nilai gen pada setiap individu secara acak. Nilai fitness setiap individu nantinya akan dihitung kembali karena setiap individu telah berubah setelah melalui berbagai proses diatas. Proses ini akan berjalan sampai menemukan nilai fitness sempurna.
3.3.3. Flowchart Algoritma Genetika Dengan Optimasi
Flowchart algoritma genetika dengan optimasi dapat dilihat pada gambar 3.6 berikut ini:
Mulai
Buat Populasi
Hitung Nilai Fitness
Fitnes Terbaik Ditemukan ?
Seleksi Tidak
Selesai
Inisialisasi Bilangan Awal
Mutasi
Isi Puzzle Dengan Kromosom Dari Nilai Fitness Terbaik
Tampilkan Solusi Ya
Tentukan Batasan, Simpan Bilangan Awal Puzzle
Crossover
Gambar 3.6. Flowchart algoritma genetika dengan optimasi
25
Alur kerja algoritma genetika dengan optimasi pada gambar 3.6. diatas sebenarnya hampir sama dengan alur kerja algoritma genetika konvensional pada gambar 3.5. dan sedikit banyak proses nya juga sama. Hanya yang membedakan alur kerja algoritma genetika dengan optimasi dengan alur kerja algoritma genetika konvensional adalah pada alur kerja algoritma genetika dengan optimasi memiliki 1 proses tambahan yaitu menggunakan batasan.
Batasan pada proses algoritma genetika dengan optimasi ini dilakukan pada saat akan menentukan populasi. Program akan memeriksa terlebih dahulu bilangan awal yang sudah ada pada puzzle sudoku. Nilai dan posisi bilangan awal tersebut disimpan dan menjadi rujukan untuk menentukan populasi. Misalnya pada puzzle baris 1, kolom 1 dan blok 1 sudah ada angka 4, maka dalam pembentukan populasi pada baris 1 s/d 9, kolom 1 s/d 9 dan semua bagian dari blok 1 angka 4 sudah tidak dimuat lagi dan otomatis di eliminasi dari kandidat populasi.
Dengan ini diharapkan proses menemukan nilai fitness terbaik akan lebih cepat karena tidak terlalu banyak kemungkinan angka solusi yang ditawarkan, sehingga dengan demikian jumlah gen, kromosom dan generasi yang akan dilalui algoritma genetika nantinya akan dapat di minimalisir dan memperkecil waktu komputasi.
26
BAB 4
HASIL DAN PEMBAHASAN
Bagian ini menjelaskan hasil pengujian dan implementasi algoritma genetika pada persolan NP-Complete, baik secara konvensional maupun dengan menggunakan batasan/ optimasi. Pengujian terlebih dahulu dilakukan dengan menggunakan algoritma genetika secara konvensional, menganalisis secara matematis proses yang diperlukan sampai menemukan solusi. Setelah menemukan solusi, tentunya terdapat kekurangan dari algoritma genetika secara konvensional, selanjutnya dilakukan pengujian dengan menggunakan algoritma genetika dengan menggunakan batasan/
optimasi. Dari penerapan optimasi/ batasan ini diharapkan kekurangan yang ada pada proses genetika konvensional dapat diatasi dan diperbaiki.
4.1. Persiapan Awal
Sebagai langkah awal yang perlu dilakukan dalam persiapan menyelesaikian persoalan NP-Complete dengan menggunakan algoritma genetika adalah menyiapkan puzzle sudoku yang telah memiliki bilangan awal. Pada penelitian ini digunakan sudoku dengan ukuran standar 9x9 kotak dan 36 puzzle yang sudah terisi bilangan awal. Puzzle sudoku 9x9 yang digunakan susuai dengan ilustrasi pada gambar berikut ini:
1 2 3 4 5 6 7 8 9
1 6 3 8
2 2 7 6 8 9 1 3 5
3 5 9 7 3 1 6
4 1 2 6
5 3 7 8 9
6 6 8 7 5 3
7 8
8 5 1
9 6 5 1 9
Kolom
Baris
Gambar 4.1. Puzzle sudoku
27
Dalam permainan sudoku, aturan yang berlaku sangat sederhana. Hanya perlu mengisi angka kedalam matrik 9x9 sampai penuh, dengan catatan dalam setiap baris, kolom dan blok hanya terdiri dari 1 angka unik. Untuk mengisi semua kota kosong dalam puzzle sudoku dengan menggunakan algoritma genetika, langkah awal yang paling penting adalah menghitung kotak yang kosong. Setiap kotak kosong di asumsikan selalu terdiri dari kemungkinan angka 1 s/d 9, sehingga jika dihitung ada 45 kotak puzzle yang kosong dan setiap kotak kosong masing-masing terdiri atas 9 kemungkinan angka maka untuk puzzle di atas akan ada ribuan kemungkinan kombinasi angka yang dapat isi.
4.2. Implementasi Algoritma Genetika
Banyaknya kemungkinan solusi yang mungkin untuk puzzle sudoku menyebabkan proses yang dilalui dan waktu komputasi pada algoritma genetika relatif lama karena ada banyak angka yang akan di proses untuk mencapai nilai fitness tujuan.
Implementasi algortima genetika pada persoalan NP-Complete bertujuan menjabarkan langkah-langkah penyelesaian NP-Complete sudoku dengan menggunakan algoritma genetika baik secara konvensional maupun dengan batasan/ optimasi.
4.2.1. Implementasi Algoritma Genetika Konvensional
Implementasi algoritma genetika secara konvensional terdiri atas langkah-langkah berikut ini:
a. Pembentukan populasi
Pada penerapannya populasi dibentuk dari jumlah kotak kosong pada puzzle dan di isi dengan angka yang mungkin secara acak. Dari data yang digunakan pada gambar 4.1 puzzle sudoku dapat dilihat bahwa kotak yang kosong ada 45, dengan demikian panjang kromosom adalah 45. Pada penelitian ini dalam 1 populasi terdiri dari 9 kromosom, sehingga populasi yang dapat di bentuk adalah sebagai berikut:
k1
1 2 4 5 7 9 4 8 2 4 4 3 5 8 7 9 5 2 4 1 6 9 1 4 2 7 2 4 9 6 3 5 1 9 4 2 8 3 6 7 8 3 7 4 2k2
3 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1k3
3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2k4
4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3k5
5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4k6
6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5k7
7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7k8
8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6k9
9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8Gambar 4.2. Populasi awal
Bentuk kromosom diatas secara acak telah mewakili seluruh kemungkinan angka pada puzzle sudoku yaitu kombinasi angka 1 s/d 9. Langkah selanjutnya adalah memasukkan setiap angka dalam kromosom kedalam puzzle sudoku yang kosong satu persatu. Langkah ini bertujuan untuk mendapatkan nilai fitness setiap kromosom.
Nilai fitness akan menetukan kelayakan kromosom untuk dapat di pertahankan atau justru dibuang. Penyelesaian akan berhenti jika nilai fitness mencapai nilai sempurna yaitu 45.
Walaupun populasi pada penelitian ini dibuat dengan jumlah kromosom 9, nantinya hanya ada 1 kromosom yang akan di ambil sebagai solusi dari puzzle sudoku, yaitu yang mencapai nilai fitness terbaik.
b. Menghitung Nilai Fitness
Menghitung nilai fitness diperoleh dengan cara mengambil nilai dari gen-gen atau allele setiap kromosom untuk dimasukkan kedalam puzzle kosong, lalu akan dihitung berapa banyak angka yang berulang pada setiap baris, kolom dan blok. Untuk lebih jelasnya proses menghitung nilai fitness dijelaskan pada gambar berikut ini:
29
k1
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 96 3 8
2 7 6 8 9 1 3 5
5 9 7 3 1 6
1 2 6
3 7 8 9
6 8 7 5 3
8 5 1
6 5 1 9
Gambar 4.3. Proses mengisi puzzle
Nilai dari kromosom dimasukkan kedalam puzzle yang kosong pada gambar 4.3, sehingga menjadi seperti gambar berikut ini:
1 6 3 2 3 4 5 6 8
2 7 7 6 8 9 1 3 5
5 8 9 7 3 1 6 9 1
2 1 2 3 4 6 5 6 7
3 7 8 8 9 9 1 2 3
6 4 8 5 7 6 7 5 3
8 9 1 2 3 4 5 8 6
7 5 1 8 9 1 2 3 4
5 6 6 5 1 7 9 8 9
Gambar 4.4. Puzzle yang sudah terisi
Gambar 4.4 adalah bentuk puzzle yang telah di isi dengan nilai-nilai dari kromosom 1. Setelah puzzle terisi penuh oleh nilai gen-gen kromosom, maka selanjutnya adalah mencari dan menghitung angka yang berulang pada setiap baris, kolom dan blok puzzle. Untuk lebih jelasnya ditampilkan pada gambar berikut ini:
1 6 3 2 3 4 5 6 8
2 7 7 6 8 9 1 3 5
5 8 9 7 3 1 6 9 1
2 1 2 3 4 6 5 6 7
3 7 8 8 9 9 1 2 3
6 4 8 5 7 6 7 5 3
8 9 1 2 3 4 5 8 6
7 5 1 8 9 1 2 3 4
5 6 6 5 1 7 9 8 9
Gambar 4.5. Menghitung nilai fitness
Pada gambar 4.5 diatas terlihat angka yang diberi tanda merah artinya angka tersebut berulang dan tidak unik, karena memiliki pasangan yang sama disalah satu baris, kolom atau pun blok. Selanjutnya yang dilakukan adalah menghitung angka yang berwarna merah tersebut, sehingga dari kromosom 1 didapat:
Angka yang berulang = 33
Nilai fitness = jumlah panjang kromosom - angka yang berulang
= 45 – 33
= 12
Jadi nilai fitness untuk kromosom 1 adalah 12.
Untuk seluruh kromosom dalam populasi tersebut nilai fitness nya disajikan dalam tabel berikut:
Tabel 4.1. Nilai fitness
Kromosom Angka Yang Berulang Nilai Fitness
k1 33 12
k2 32 13
k3 32 13
k4 33 12
k5 35 10
k6 32 13
k7 37 8
k8 37 8
k9 38 7
31
c. Seleksi
Proses seleksi akan mempertahankan individu yaitu kromosom yang baik dan membuang individu yang buruk dengan melihat nilai fitness masing-masing.
Dari tabel 4.1 nilai fitness yang disajikan, maka dapat dilihat bahwa kromosom 9 adalah nilai terendah. Pada penelitian ini aturan melakukan seleksi adalah 1 individu yang dapat dibuang. Sehingga kromosom 9 akan di buang dan sebagai gantinya salah satu kromosom dengan nilai fitness yang baik akan di ekstrak sebanyak 2 kali menggantikan kromosom 9. Kromosom yang dipilih adalah kromosom 2. Sehingga bentuk populasi yang baru menjadi seperti gambar berikut ini:
k1
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9k2
2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1k3
3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2k4
4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3k5
5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4k6
6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5k7
7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6k8
8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7k9
2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1Gambar 4.6. Populasi baru
Setelah populasi berubah, otomatis nilai fitness juga berubah, sehingga nilai fitness baru menjadi:
Tabel 4.2. Nilai fitness yang baru
Kromosom Angka Yang Berulang Nilai Fitness
k1 33 12
k2 32 13
k3 32 13
k4 33 12
k5 35 10
k6 32 13
k7 37 8
k8 37 8
k9 32 13
Menghitung nilai fitness adalah langkah mencari apakah solusi puzzle sudah ditemukan atau belum, jika sudah ditemukan kromosom dengan nilai sempurna maka proses akan berhenti karena fitness tujuan sudah dicapai. Karena nilai fitness belum ada yang mencapai nilai tujuan, maka proses akan berlanjut ke langkah berikutnya yaitu crossover.
d. Crossover
Serangkaian proses yang dilalui dalam algoritma genetika adalah untuk mencapai nilai fitness terbaik, demikian pula dengan crossover. Setelah melakukan crossover diharapkan kromosom-kromosom yang berpindah silang akan semakin baik nilai fitness nya.
Aturan dalam crossover pada penelitian ini adalah menggunakan one point crossover, probability crossover (pc) sebesar 25% dari jumlah kromosom, artinya ada 2 kromosom yang akan di crossover. Kromosom yang di pilih untuk crossover pada tahap ini adalah kromosom 7 dan kromosom 8. Lebih jelasnya dapat dilihat pada gambar berikut ini: