• Tidak ada hasil yang ditemukan

TINJAUAN PUSTAKA

3.4. Proses Algoritma Genetik

Dalam Pendekatan GA diawali dengan pembuatan himpunan solusi baru (initialization) yang ditempatkan pada penampungan pupulasi dilakukan evalusai terhadap inisialisasi atau solusi. Apabila solusi tersebut bukan merupakan solusi optimal, kemudian dilakukan proses reproduksi dengan memiliki individu–

individu yang akan dikembangbiakkan.

Individu menyatakan salah satu solusi yang mungkin. Individu bisa dikatakan sama dengan kromosom, yang merupakan kumpulan gen. Gen ini bisa biner, float, dan kombinatorial. Beberapa definisi penting yang perlu diperhatikan

di mendefinisikan individu untuk membangun penyelesaian permasalahan dengan algoritma genetika adalah sebagai berikut:

1) Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam algoritma genetika, gen ini bisa berupa nilai biner, float, integer maupun karakter, atau kombinatorial.

2) Allele, nilai dari gen.

3) Kromosom, gabungan gen-gen yang membentuk nilai tertentu misalnya urutan proses produksi job.

4) Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat

5) Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi.

6) Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam algoritma genetika.

Penggunakan operator-operator genetik seperti pindah silang dan mutasi terhadap individu yang terpilih dalam penampungan individu akan menghasilkan keturunan atau generasi baru. Setelah proses evaluasi untuk perbaikan populasi, maka generasi-generasi baru akan menggantikan himpunan populasi awal.

Langkah-langkah dalam algoritma genetika adalah sebagai berikut : 1. Menentukan parameter

Schaffer (1989) menemukan hasil kinerja terbaik dalam penjadwalan algoritma genetika untuk pengaturan parameter popsize 20 sampai

30, probabilitas crossover 75 ke 0,95, probabilitas mutasi 0.005 sampai 0.01 dan dua titik crossover.

2. Membangkitkan populasi awal

Membangkitkan populasi awal adalah proses membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran untuk populasi tergantung pada masalah yang akan diselesaikan dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian dilakukan pembangkitan populasi awal. Syarat-syarat yang harus dipenuhi untuk menunjukkan suatu solusi harus benar-benar diperhatikan dalam pembangkitan setiap individunya.

3. Seleksi

Seleksi digunakan untuk memilih individu-individu mana saja yang akan dipilih untuk proses kawin silang dan mutasi. Seleksi digunakan untuk mendapatkan calon induk yang baik. Induk yang baik akan menghasilkan keturunan yang baik. Semakin tinggi nilai fitness suatu individu semakin besar kemungkinannya untuk terpilih. Langkah pertama yang dilakukan dalam seleksi ini adalah pencarian nilai fitness. Nilai fitness ini yang nantinya akan digunakan pada tahap-tahap seleksi befikutnya. Masing-masing individu dalam wadah seleksi akan menerima probabilitas reproduksi yang tergantung pada nilai obyektif dirinya sendiri terhadap nilai obyektif dari semua individu dalam wadah seleksi tersebut. Metode yang digunakan adalah seleksi dengan mesin roulette. Metode seleksi dengan mesin roulette ini merupakan metode

yang paling sederhana dan sering dikenal dengan nama stochastic sampling with replacement. Cara kerja metode ini adalah sebagai berikut:

l) Dihitung nilai fitness dari masing-masing individu (fi, dimana i adalah individu ke- 1 s/d ke-n)

2) Dihitung total fitness semua individu

3) Dihitung probabilitas masing-masing individu

4) Dari probabilitas tersebut, dihitung jatah masing-masing individu pada angka 1 sampai 100

5) Dibangkitkan bilangan random antara 1 sampai 100

6) Dari bilangan random yang dihasilkan, ditentukan individu mana yang terpilih dalam proses seleksi

Gambar 3.1. Ilustrasi Seleksi dengan Mesin Roulette

4. Kawin silang

Kawin silang (crossover) adalah operator dari algoritma genetika yang melibatkan dua induk untuk membentuk kromosom baru. Pindah silang menghasilkan titik baru dalam ruang pencarian yang siap untuk diuji. Operasi ini tidak selalu dilakukan pada semua individu yang ada. Individu dipilih secara acak untuk dilakukan crossing dengan Pc antara 0,75 s/d 0,95. Jika pindah silang tidak dilakukan, maka nilai dari induk akan diturunkan kepada keturunan. Prinsip dari pindah silang ini adalah melakukan operasi (pertukaran, aritmatika) pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Proses crossover dilakukan pada setiap individu dengan probabilitas crossover yang ditentukan.

Gambar 3.2. Diagram Alir Proses Crossover

5. Mutasi

Operator berikutnya pada algoritma genetika adalah mutasi gen. Operator ini berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Kromosom anak dimutasi dengan menambahkan nilai random yang sangat kecil (ukuran langkah mutasi), dengan probabilitas yang rendah. Peluang mutasi (pm) didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak pemah dievaluasi. Tetapi bila peluang mutasi ini terlalu besar, maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya, dan juga algoritma kehilangan kemampuan untuk beljar dari histori pencarian. Ada beberapa pendapat mengenai laju mutasi ini. Ada yang berpendapat bahwa laju mutasi sebesar 1/n akan memberikan hasil yang cukup baik. Ada juga yang beranggapan bahwa laju mutasi tidak tergantung pada ukuran populasinya. Kromosom hasil mutasi harus diperiksa, apakah masih berada pada domain solusi, dan bila perlu bisa dilakukan perbaikan.

Gambar 3.3. Diagram Alir Proses Mutasi

Pada Gambar 3.3. diilustrasikan diagram alir pengunaan probabilitas mutasi pada proses mutasi. Proses yang diilustrasikan tersebut adalah cara mudah untuk melakukan mutasi. Proses mutasi yang dilakukan tidak harus seperti pada proses tersebut. Proses yang lain bisa dengan melakukan mutasi pada gen sebanyak probabilitas mutasi x jumlah gen, dimana posisi gen yang akan dilakukan mutasi dipilih secara acak.

6. Evaluasi solusi

Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti.

Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi

baru dengan mengulangi langkah 3. Beberapa kriteria berhenti yang sering digunakan antara lain:

a) Berhenti pada generasi tertentu.

b) Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah.

c) Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yang lebih tinggi.

Penelitian menggunakan algoritma genetika telah dilakukan oleh (Singh, dkk, 2015) yang berjudul Optimization of Job Scheduling in Flow Shop Environment using Genetic Algorithm Considering Sequence Dependent Setup Times melakukan simulasi algoritma genetika berdasarkan kerja software.

Implementasi algoritma genetik komputer didasarkan pada algoritma genetik (GA) dengan elitisme yang dikembangkan di C ++ dan berbagai langkah adalah sebagai berikut:

Langkah 1: Menginisialisasi populasi

Populasi awal terdiri dari ukuran populasi string yaitu urutan pekerjaan yang dihasilkan secara acak dari ukuran populasi. Dalam program diambil ukuran populasi = 20.

Langkah 2: Data entry

Nilai-nilai setup dan waktu pemrosesan diberikan melalui fungsi ini.

Langkah 3: Membuat rentang waktu perhitungan

Dalam fungsi ini total membuat rentang waktu dihitung dengan menggunakan hub ungan (relasi).

Langkah 4: Mempertahankan individu terbaik

Fungsi ini terus melacak yang anggota terbaik dari populasi dan menempatkan individu terbaik sebagai entry terakhir dipopulasi array.

Langkah 5: Pilih fitness tertinggi dari induk yang lama untuk membentuk generasi baru

Dalam fungsi ini populasi array yang baru dibuat berdasarkan pada perbandingan fitness kumulatif dengan nomor acak.

Langkah 6: Pilih urutan pekerjaan untuk crossover

Dalam langkah ini beberapa rangkaian pekerjaan dipilih untuk crossover secara acak.

Langkah 7: Melakukan crossover

Fungsi ini menggantikan masing-masing induk dalam populasi array dengan keturunan yang diperoleh setelah crossover.

Langkah 8: Pilih elitis

Fungsi ini membandingkan anggota terbaik saat ini dengan anggota dari generasi sebelumnya dan menggantinya dengan yang kedua jika lebih buruk daripada yang terakhir.

Langkah 9: Laporan Statistik

Fungsi ini digunakan untuk melaporkan berbagai statistik terkait nilai terbaik dari rata-rata fitness.

Langkah 10: iterasi sebanyak n generasi

Prosedur yang sama dari langkah 5-9 dan melaporkan urutan terbaik.

Fitness rata-rata meningkat dan menjadi optimal dalam jumlah generasi yang kecil. Crossover terbukti sangat efektif meminimalkan jumlah generasi untuk mendapatkan nilai yang optimal. Waktu minimum untuk data pengujian yang dilakukan adalah 949 menit dan dengan urutan waktu pekerjaan adalah 3 4 2 0 1 untuk parameter GA pop_size = 20, jumlah generasi = 50, Pc = 0,25 dan njob = 5.

Penelitian (Pour, dkk, 2015) yang berjudul A Novel Genetic Algorithm for a Flow Shop Scheduling Problem with Fuzzy Processing Time membahas tentang penjadwalan dengan algoritma genetika pada lantai produksi berbasis flowshop dimana langkah-langkah yang digunakan adalah :

1) Menentukan parameter awal 2) Menghitung jumlah elitis

3) Tentukan waktu pemrosesan kabur untuk setiap pekerjaan pada masing-masing mesin

4. Tentukan populasi awal

5. Menghitung fitness untuk setiap urutan 6. Seleksi dengan roda roulette

7. Crossover (1-PMX 2-CX 3-SAPI 4-seragam) 8. Mutasi

9. Menghitung jumlah nomor acak 10. Membuat urutan-urutan acak 11. Koleksi dari total populasi

12. Menghitung fitness untuk total populasi 13. Pilih populasi baru

Dalam mengevaluasi efisiensi algoritma yang diusulkan makan digunakan kode di VBA. Pertama, diteliti efek dari crossover berbeda operator dalam mencapai solusi yang optimal. Hasil pelaksanaan algoritma ini menunjukkan algoritma genetika memiliki kemampuan yang besar dalam mencari solusi optimal dalam waktu sangat singkat.

BAB IV

Dokumen terkait