Translate

20 February 2010

Algoritma Genetika

Kemunculan Algoritma Genetika dipengaruhi atau terinspirasi dari teori-teori dalam ilmu biologi. Algoritma genetika dirintis oleh John Holland dan dikembangkan oleh muridnya David Goldberg. Algoritma Genetika adalah algoritma yang dikembangkan dari proses pencarian solusi menggunakan pencarian secara acak dan memanfaatkan proses seleksi alamiah yang dikenal dengan proses evolusi.
Pada proses evolusi individu secara terus-menerus mengalami perubahan genetik untuk menyesuaikan dengan lingkungan hidupnya. Hanya individu-individu yang memiliki performansi yang baik yang mampu bertahan. Proses seleksi alamiah ini melibatkan perubahan genetik yang terjadi pada individu melalui proses perkembangbiakan. Proses perkembangbiakan ini menjadi proses dasar yang menjadi perhatian utama dengan dasar bagaimana mendapatkan keturunan dari proses perkawinan yang lebih baik.

Prinsip-prinsip dasar

Proses perkembangbiakan yang terjadi dalam algoritma genetika tidak terlepas dari istilah-istilah yang diadopsi dari teori evolusi genetika dalam ilmu biologi. Istilah-istilah yang berasal dari ilmu biologi yang dipakai dalam algoritma genetika.
Genotype (Gen) merupakan  sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan. Setiap gen mempunyai sebuah nilai yang disebut dengan allele dan berada pada posisi tertentu dalam kromosom yang disebut dengan loci/locus. Allele tersebut dapat berupa angka biner (0/1) atau bertipe floating point tergantung dari bentuk representasi genetik yang digunakan. Beberapa bentuk nilai-nilai gen dalam algoritma genetika dapat berupa nilai biner, desimal, bilangan bulat maupun karakter huruf. Lebih lanjut tentang nilai-nilai gen yang akan digunakan dalam penelitian ini dibahas dalam bahasan skema pengkodean.
Chromossom (kromosom), merupakan gabungan gen-gen yang membentuk kesatuan yang mewakili suatu nilai tertentu. Kesatuan kromosom akan membentuk individu menyatakan satu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. Seringkali individu-individu yang ada dalam populasi disebut dengan kromosom (string) yang mempunyai panjang yang sama. Setiap kromosom terdiri dari gen-gen yang tersusun secara linier.
Sekumpulan individu yang sejenis akan membentuk populasi. Populasi  merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. Setiap proses siklus evolusi dinyatakan dengan istilah generasi. Individu dalam sebuah generasi akan mengalami evaluasi untuk mendapatkan suatu nilai yang dinyatakan dalam istilah fitness. Fitness menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.
Menurut Bandyopadhyay dan Pal (2007) menyatakan bahwa algoritma genetika memiliki karakteristik yang menguntungkan untuk permasalahan sebagai berikut;
1.      Masalah yang tidak atau kurang adaptif terhadap penyelesaian secara analitik matematis.
2.      Masalah yang harus diselesaikan secara paralel.
3.      Solusi yang diharapkan tidak harus paling optimal tetapi dapat diterima.
4.      Dalam keterbatasan waktu, ruang masalah cukup besar, kompleks dan sulit dipahami.

Referensi: 
Bandyopadhyay, S. & Pal, S. K., 2007. Classification and Learning Using Genetic Algorithms: Application in Bioinformatics and Web Intellegence. New York: Springer. 

10 February 2010

Mengurutkan data

Bermain-main array menggunakan bahasa pemrograman visual basic (VB6) khususnya yang diaplikasikan dalam bentuk fungsi atau prosedur sangat menarik. Ni,.. salah satu buktinya, kita buat untuk mengurutkan data dalam bentuk array atau larik satu dimensi. Memang sih sebenarnya terdapat banyak metode atau cara mengurutkan data, disini akan dibuat fungsi untuk pengurutan sederhana (kalau tidak salah biasanya disebut buble sort). Kode fungsinya adalah sebagai berikut:

Posting Popular