Anda di halaman 1dari 12

ALGORITMA GENETIKA

Disusun Oleh:
1. MUHAMAD WILDAN HABIBY
2. RIFATIN AMBAR RETNO

(13305141038)
(13305141055)

PRODI MATEMATIKA
JURUSAN PENDIDIKAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI YOGYAKARTA
2016

BAB 7
ALGORITMA GENETIKA

Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi alamiah


yang dikenal dengan proses evolusi. Dalam proses evolusi, individu secara terus-menerus
mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya.
Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu
melalui proses perkembangbiakan. Dalam algoritma genetika ini, proses perkembang-biakan
ini menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir: Bagaimana
mendapatkan keturunan yang lebih baik. Algoritma genetika ini ditemukan oleh John
Holland dan dikembangkan oleh David Goldberg.
Algoritma ini bekerja dengan sebuah populasi yang terdiri dari individu-individu,
yang masing-masing individu mempresentasikan sebuah solusi yang mungkin bagi persoalan
yang ada. Dalam kaitan ini, individu dilambangkan dengan sebuah nilai fitness yang akan
digunakan untuk mencari solusi terbaik dari persoalan yang ada.
7.1 Hal-hal yang harus dilakukan dalam Algoritma Genetika
Beberapa hal yang harus dilakukan dalam Algoritma Genetika adalah:
1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi yang
mungkin dari permasalahan yang diangkat.
2. Mendefinisikan nilai fitness, yang merupakan ukuran baik tidaknya sebuah individu
atau baik tidaknya solusi yang didapatkan.
3. Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan
dengan menggunakan pembangkitan acak seperti random-walk.
4. Menentukan proses seleksi yang akan digunakan.
5. Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan
digunakan.
7.1.1 Pengertian Individu
Individu menyatakan salah satu solusi yang mungkin. Individu bisa dikatakan
sama dengan kromosom, yang merupakan kumpulan gen. Gen ini bsa berupa biner,
float dan kombinatorial.
Beberapa definisi penting yang perlu diperhatikan dalam Algoritma Genetika:

a. Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang


membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan
kromosom.
b. Allele, nilai dari gen.
c. Kromosom, gabungan gen-gen yang membentuk nilai tertentu.
d. Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu
solusi yang mungkin dari permasalahan yang diangkat.
e. Populasi, merupakan sekumpulan individu yang akan diproses bersama
dalam satu siklus proses evolusi.
f. Generasi, menyatakan satu-satuan siklus proses evolusi.
Pada gambar 7.1 diilustrasikan perbedaan istilah-istilah di atas.

Gambar 7.1 Ilustrasi Representasi Penyelesaian Permasalahan dalam


Algoritma Genetika

7.1.2 Nilai Fitness

Nilai fitness adalah nilai yang menyatakan baik tidaknya suatu solusi
(individu). Nilai fitness ini yang dijadikan acuan dalam mencapai nilai optimal dalam
algoritma genetika. Algoritma genetika bertujuan mencari individu dengan nilai
fitness yang paling tinggi.
7.2 SIKLUS ALGORITMA GENETIKA
Siklus dari Algoritma Genetika pertama kali dikenalkan oleh David Goldberg,
dimana gambaran siklus tersebut dapat dilihat pada gambar7.3.

Gambar 7.3 Siklus Algoritma Genetika oleh David Goldberg


Siklus ini kemudian diperbaiki oleh Zbigniew Michalewicz dengan menambahkan
operator elitism dan membalik proses seleksi setelah proses reproduksi.

Gambar 7.4 Siklus Algoritma Genetika yang diperbaiki oleh Michalewicz


7.3 KOMPONEN-KOMPONEN UTAMA ALGORITMA GENETIKA
Terdapat 6 komponen utama dalam algoritma genetika, yaitu:
7.3.1 TEKNIK PENGKODEAN
Teknik pengkodean adalah bagaimana mengkodekan gen dari kromosom,
dimana gen merupakan bagian dari kromosom. Satu gen biasanya akan mewakili
satu variabel.
Dengan demikian kromosom dapat direpresentasikan dengan menggunakan:
String bit
: 10011 dst.
Array bilangan real : 65.65, -67.98, 77.34 dst.
Elemen permutasi
: E2, E10, E5 dst.

Daftar aturan
Elemen program
Struktur lainnya

: R1, R2, R3 dst.


: pemrograman genetika

7.3.2 MEMBANGKITKAN POPULASI AWAL


Membangkitkan populasi awal adalah proses membangkitkan sejumlah
individu secara acak melalui prosedur tertentu. Teknik dalam pembangkitan
populasi awal ada beberapa cara, diantaranya adalah sebagai berikut:
1. Random Generator
2. Pendekatan tertentu (Memasukkan Nilai Tertentu ke dalam Gen)
3. Permutasi Gen
7.3.3 SELEKSI
Seleksi digunakan untuk memilih individu-individu mana saja yang akan
dipilih untuk proses kawin silang dan mutasi. Terdapat beberapa metode seleksi,
yaitu:
7.3.3.1 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:
1.
2.
3.
4.

Dihitung nilai fitness dari masing-masing individu


Dihitung total fitness semua individu
Dihitung probabilitas masing-masing individu
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 7.5 Ilustrasi Seleksi dengan Mesin Roulette


7.3.3.2 SELEKSI DENGAN TURNAMEN
Pada metode seleksi dengan turnamen, ditetapkan suatu nilai
tour untuk individu-individu yang dipilih secara random dari suatu
populasi. Individu-individu yang terbaik dalam kelompok ini akan
diseleksi sebagai induk. Parameter yang digunakan pada metode ini
adalah ukuran tour yang bernilai antara 2 samapai N (jumlah individu
dalam suatu populasi).
7.3.4 PINDAH SILANG (CROSSOVER)
Kawin silang (crossover) adalah operator dari algoritma genetika yang
melibatkan dua induk untuk membentuk kromosom baru. Prinsip dari pindah
silang ini adalah melakukan operasi (pertukaran, aritmatika) pada gen-gen yang
bersesuaian dari dua induk untuk menghasilkan individu baru.

Gambar 7.6 Diagram Alir Proses Crossover


7.3.4.1 CROSSOVER SATU TITIK
Crossover satu titik dan banyak titik biasanya digunakan untuk
representasi kromosom dalam biner. Pada crossover satu titik posisi
crossover k (k=1, 2, , N-1) dengan N=panjang kromosom diseleksi
secara random. Variabel-variabel ditukar antar kromosom pada titik
tersebut untuk menghasilkan anak.

Gambar 7.6 Ilustrasi Crossover Satu Titik


7.3.4.2 CROSSOVER BANYAK TITIK
Pada crossover banyak titik, m posisi penyilangan k i (k=1,2,,N-1,
i=1,2,,m) dengan N=panjang kromosom diseleksi secara random dan
tidak diperbolehkan ada posisi yang sama, serta diurutkan naik. Variabel-

variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan


anak.

Gambar 7.8 Ilustrasi Crossover Dua Titik


7.3.4.3 CROSSOVER ARITMATIKA
Crossover aritmatika digunakan untuk representasi kromosom berupa
bilangan float (pecahan). Crossover ini dilakukan dengan menentukan
nilai r sebagai bilangan random lebih dari 0 kurang dari 1. Nilai baru dari
gen pada anak mengikuti rumus berikut:

Gambar 7.9 Ilustrasi Crossover Aritmatika

7.5 CONTOH PENGGUNAAN ALGORITMA GENETIKA


7.5.1 Algoritma Genetika untuk Mencari Nilai Maksimal dari Fungsi
f (x)=x 2+14 x 13, 0 x 15
Individu menyatakan nilai x dalam mendefinisikan nilai x sebagai individu, dapat
digunakan nilai biner atau nilai float. Pada algoritma genetika dasar digunakan
nilai biner. Fungsi di atas bila digambarkan akan menjadi:

1. Definisi Individu
Individu dinyatakan dalam 4 gen biner, dengan batas 0 sampai dengan 1, berarti
1 bit biner setara dengan

24 . Nilai x ditentukan antara 0 sampai 15 dan

bilangan biner dengan panjang 4 sudah dapat menjangkau nilai x (ingat 11112 =
15). Jadi stringLen=4.
(1 x 24-1) + (1 x 24-2) + (1 x 24-3) + (1 x 24-4) = 8 + 4 + 2 + 1 = 15
Sebagai contoh:
chromosome
P
1
P
2
P
3

y=f(x
)

[0011]

20

[0100]

27

[1001]

32

[0101]

32

2. Fungsi Fitness
Fungsi fitness adalah fungsi f(x), karena yang dicari adalah nilai maksimum.
3. Seleksi
Seleksi adalah proses pemilihan calon induk, dalam proses seleksi ini terdapat
beberapa metode yang bisa digunakan antara lain: Mesin Roulette (Roulette
Wheel), Competition dan Tournament. Dalam contoh ini digunakan Mesin
Roullete yang memang metode paling dasar dan model acaknya uniform.
Seleksi dilakukan dengan menggunakan prosentasi fitness setiap individu,
dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai
fitnessnya.

NILAI FITNESS

29%

18%

P1
P2
P3
P4

24%
29%

4. Crossover
Cross-Over (Perkawinan Silang) merupakan proses mengkombinasikan dua
individu untuk memperoleh individu-individu baru yang diharapkan mempunyai
fitness lebih baik. Jika kita tentukan setiap crossover menghasilkan dua anak
maka hanya ada satu kali operasi crossover. Misalkan P1 dan P3 terpilih sebagai
parent dan titik potong (cut point) adalah titik 2, maka akan kita dapatkan
offspring C1 dan C2 sebagai berikut:

5. Mutasi
Mutasi gen adalah proses penggantian gen dengan nilai inversinya, gen 0
menjadi 1 dan gen 1 menjadi 0. Proses ini dilakukan secara acak pada posisi gen
tertentu pada individu-individu yang terpilih untuk dimutasikan.
Misalkan P4 terpilih sebagai parent maka akan kita dapatkan offspring ke-3 (C3)
sebagai berikut:

Perhatikan proses mutasi dilakukan hanya dengan memilih satu gen secara
random, misal posisi ke-4 lalu mengubah nilainya. 3 individu dalam
penampungan offspring hasil dari proses crossover dan mutasi:

Siklus lengkap dari contoh ini ditunjukkan pada Gambar berikut: