BAB 2
TINJAUAN PUSTAKA
2.1Algoritma Genetika
Algoritma genetika merupakan algoritma pencarian heuristik ysng didasarkan atas mekanisme seleksi alami dan genetika alami (Suyanto, 2014). Adapun konsep dasar yang mengilhami timbulnya algoritma ini adalah teori evolusi alam oleh Charles Darwin, dimana di dalam teori tersebut dijelaskan bahwa proses evolusi alam setiap individu harus mampu beradaptasi terhadap lingkungannya agar dapat bertahan hidup. Pada algoritma genetika, teknik pencarian dilakukan atas sejumlah solusi yang dikenal dengan populasi. Satu hal yang penting diingat adalah bahwa satu individu menyatakan satu solusi. Populasi terdiri dari beberapa individu, dimana setiap individu membawa sebuag genome yang berisi kromosom. Dan kromosom itu tersusun oleh gen yang menempati setiap loci, sedangkan nilai setiap gen disebut alle.
2.2Struktur Umum Algoritma Genetika
Secara umum struktur dari suatu algoritma genetika dapat didefenisikan dengan langkah-langkah sebagai berikut :
1. Mulai
Proses algoritma genetika dimulai dengan membangun populasi random sebanyak n kromosom (sesuai dengan masalahnya).
2. Populasi Awal
Populasi awal ini dibangkitkan secara random sehingga didapatkan solusi awal. Populasi itu sendiri terdiri atas sejumlah kromosom yang merepresentasikan solusi yang diinginkan.
3. Evaluasi fitness
Pada setiap generasi kromosom-kromosom akan dievaluasi berdasarkan tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan dengan menggunakan evaluasi fitness. Proses evaluasi fitness adalah melakukan evaluasi setiap fitness f(x) dari setiap kromosom x pada populasi.
4. Pembentukan Generasi Baru
Proses ini dilakukan secara berulang sehingga didapatkan jumlah kromosom yang cukup untuk membentuk generasi baru (offspring) dimana generasi baru merupakan representasi dari solusi baru.
5. Seleksi
Untuk memilih kromosom yang akan tetap dipertahankan untuk generasi selanjutnya maka dilakukan proses seleksi. Proses seleksi dilakukan dengan memilih 2 kromosom parent dari populasi berdasarkan fitnessnya (semakin besar fitnessnya, maka semakin besar kemungkinannya untuk terpilih).
6. Crossover
7. Mutasi
Proses mutasi dilakukan sesuai dengan besarnya kemungkinan mutasi yang telah ditentukan, anak dimutasi pada setiap lokus (posisi pada kromosom). Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter yang disebut dengan probabilitas mutasi (mutationr probabilit, Pm). Setelah beberapa generasi akan dihasilkan, kromosom-kromosom yang nilai gennya konvergen ke suatu nilai tertentu merupakan solusi optimum yang dihasilkan oleh algoritma genetika terhadap permasalahan yang ingin diselesaikan.
8. Memenuhi syarat regenerasi
Apabila generasi baru memenuhi syarat regenerasi, maka proses akan selesai. Namun, apabila generasi baru tidak memenuhi syarat regenerasi, maka proses akan kembali ke evaluasi fitness.
Parameter yang digunakan dalam algoritma genetika adalah :
1. Fungsi fitness untuk menentukan tingkat kesesuaian individu tersebut. 2. Populasi jumlah individu pada setiap generasi.
3. Probabilitas terjadinya crossover pada setiap generasi. 4. Probabitas terjadinya mutasi pada setiap generasi. 5. Jumlah generasi yang akan dibentuk.
Menurut Suyanto (2014), genetic algorithm memiliki empat komponen, yaitu: pengkodean, seleksi, persilangan, mutasi.
2.2.1 Pengkodean
Pertama, genetic algorithm mempresentasikan masalah riil menjadi terminologi biologi. Cara menerjemahkan masalah ke dalam kromosom disebut pengkodean. Misalnya pengkodean biner, permutasi, nilai, dan pohon. Hal ini tergantung oleh masalah yang dihadapi.
2.2.2 Seleksi
2.2.3 Persilangan
Persilangan (crossover) berfungsi utuk menghasilkan keturunan dari duakromosom induk yang terpilih. Kromosom apa yang dihasilkan merupakan kombinasi gen-gen yang dimiliki oleh kromosom induk.
2.2.4 Mutasi
Setelah proses crossover, pada anak (offspring) dapat dilakukan mutasi dengan cara melakukan perubahan pada sebuah gen atau lebih sehingga diharapkan adanya populasi yang bervariasi. Mutasi akan sangat bermanfaat ketika populasi awal hanya mempunyai sedikit solusi yang mungkin dipilih. Oleh karena itu, proses ini berguna untuk mempertahankan keanekaragaman individu dalam populasi, sekalipun dengan mutasi tidak bisa diketahui apa yang akan terjadi pada individu baru.
2.3Mutasi Dinamis
Teknik mutasi dinamis adalah suatu teknik untuk menentukan tingkat level mutasi berdasarkan dari suatu parameter tertentu. Parameter yang digunakan dapat berjumlah lebih dari satu. Pada dasarnya, teknik ini membaca seberapa dekat hasil fitness yang diciptakan suatu generasi kepada nilai solusi yang ditentukan sebelumnya. Nilai ini berkisar antara 0 dan 1. Pada generasi pertama bisa saja nilai mutasi ini bernilai 0,8 dan pada generasi kedua bernilai 0,3 dan begitu selanjutnya pada generasi-generasi berikutnya. Perubahan nilai ini menentukan kedaaan populasi-populasi dalam suatu generasi yang sedang berjalan.
Pada mutasi dinamis, penentuan nilai MR dapat dilaksanakan dengan mencari beberap populasi terpilih dari suatu generasi dan membandingkan jumlah tersebut dengan total populasi yang ada. Kemudian hasil nilai tersebut merupakan nilai mutation rate yang akan diterapkan pada proses mutasi. Rumus untuk mencari mutation rate adalah seperti yang terlihat di bawah ini.
Keterangan:
Populasi Terpilih = jumlah populasi yang mendekati dengan nilai solusi Total Populasi = jumlah populasi pada setiap generasi
Sebagai contoh dapat dilihat pada penjelasan berikut ini. Diberikan nilai populasi terpilih sebanyak 5 populasi sementara ada 10 populasi pada tiap generasi. Nilai 4 pada populasi terpilih dihasilkan dengan cara membandingkan nilai itu terhadap solusi. Ada satu parameter penentu lainnya yaitu persentase dimana nilai ini menentukan berapa persen fitness dari suatu populasi mendekati kepada nilai solusi. Sehingga dapat dihitung nilai mutation rate adalah:
Mutation Rate =
=
= 0,8
Dari nilai di atas, total mutasi yang dilakukan pada generasi yang sedang berjalan adalah sebesar 0,8 * Jumlah Gen * Jumlah Populasi.
2.4Knapsack Problem
Knapsack merupakan sebuah tas yang memiliki kapasitas tertentu (weight). Dan bisa dipastikan bahwa semua objek tidak dapat ditampung tas tersebut melainkan beberapa saja yang weight-nya lebih kecil atau sama ukuran kapasitas tas itu.
Misalnya ada sebuah tas berkapasitas 24 kg dan juga terdapat 6 barang dengan masing-masing berat 8kg, 4kg, 5kg, 2kg, 2kg, dan 6kg. Barang mana saja yang harus dimasukkan ke dalam tas?
Secara matematis, nilai dan berat total dapat dituliskan seperti pada persamaan berikut ini :
F = ∑ bi . vi (2.2)
Wtot = ∑ bi . wi (2.3)
Dimana :
b = bit bernilai 1 atau 0 (jika nilai 1 barang dibawa, jika 0 tidak) v = nilai dari setiap barang
n = jumlah semua barang
Wtot = Weight (berat) total yang terkandung pada setiap barang
w = berat yang terkandung pada setiap barang
Yang dalam hal ini, jika bi bernilai 1, berarti objek dimasukkan ke dalam knapsack, sebaliknya jika bi bernilai 0 maka objek tidak dimasukkan. Karena itulah masalah ini sering juga disebut Knapsack 0/1. Dalam teori algoritma, persoalan knapsack termasuk ke dalam NP-complete, dimana tidak dapat dipecahkan dalam orde waktu polinomial.
2.4.1 Jenis-Jenis Knapsack Problem
Ada beberapa model atau variasi pada Knapsack problem, antara lain: 1) 0/1 Knapsack problem
Setiap barang hanya tersedia 1 unit, take it or leave it. 2) Fractional Knapsack problem.
Barang boleh dibawa sebagian saja (unit dalam pecahan). Versi problem ini menjadi masuk akal apabila barang yang tersedia dapat dibagi-bagi misalnya gula, tepung, dan sebagainya.
3) Bounded Knapsack problem
Setiap barang tersedia sebanyak N unit (jumlahnya terbatas). 4) Unbounded Knapsack problem
Setiap barang tersedia lebih dari 1 unit, jumlahnya tidak terbatas.
2.5Penelitian Terkait
Penelitian (Haibo et al, 2011), bahwa peningkatan kinerja algoritma genetika menggunakan pendekatan Improvement of Genetic Algorithm (IAG), dengan menjaga grup kromosom atau individu terbaik maka akan dicapai hasil yang baik. Penerapan Adaptive Hybrid Probability and Mutation dilakukan ketika lebih duplikasi solusi terjadi.