ALGORITMA GENETIKA Suatu Alternatif Peny

ALGORITMA GENETIKA
Suatu Alternatif Penyelesaian Permasalahan
Searching, Optimasi dan Machine Learning

Achmad Basuki
Politeknik Elektronika Negeri Surabaya PENS-ITS
Surabaya 2003

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. “Hanya individu-individu
yang kuat yang mampu bertahan”.
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 muridnya David Goldberg.

Beberapa Definisi Penting Dalam
Algoritma Genetika
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.
Allele, nilai dari gen.
Kromosom, gabungan gen-gen yang membentuk nilai
tertentu.
Individu, menyatakan satu nilai atau keadaan yang
menyatakan salah satu solusi yang mungkin dari
permasalahan yang diangkat
Populasi, merupakan sekumpulan individu yang akan
diproses bersama dalam satu siklus proses evolusi.
Generasi, menyatakan satu-satuan siklus proses evolusi.
Nilai Fitness, menyatakan seberapa baik nilai dari suatu

individu atau solusi yang didapatkan.

Hal-Hal Yang Harus Dilakukan Dalam
Menggunakan Algoritma Genetika
Mendefinisikan individu, dimana individu menyatakan
salah satu solusi (penyelesaian) yang mungkin dari
permasalahan yang diangkat.
Mendefinisikan nilai fitness, yang merupakan ukuran
baik-tidaknya sebuah individu atau baik-tidaknya solusi
yang didapatkan.
Menentukan proses pembangkitan populasi awal. Hal
ini biasanya dilakukan dengan menggunakan
pembangkitan acak seperti random-walk.
Menentukan proses seleksi yang akan digunakan.
Menentukan proses perkawinan silang (cross-over)
dan mutasi gen yang akan digunakan.

Pengertian Individu
• Individu bisa dikatakan sama dengan kromosom, yang
merupakan kumpulan gen. Gen ini bisa biner, float, dan

kombinatorial.
• Individu menyatakan salah satu solusi yang mungkin.
Misalkan dalam TSP individu menyatakan jalur yang
ditempuh, dalam penentuan nilai maksimal dari F(x,y)
individu menyatakan nilai (x,y).
3

3

6
1

1

5

5
2

6


2

4
7

Individu : 1 3 5 7 6 4 2

4
7

Individu : 1 2 3 6 7 5 4

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.
• Dalam TSP, karena TSP bertujuan
meminimalkan jarak, maka nilai fitnessnya
adalah inversi dari jarak.

Siklus Algoritma Genetika

Populasi
Awal

Evaluasi
Evaluasi
Fitness
Fitness

Seleksi
Seleksi
Individu
Individu
Reproduksi:

Reproduksi:
Cross-Over
Cross-Over
Dan
Dan Mutasi
Mutasi

Populasi
Baru

Membangkitkan Populasi Awal
• Membangkitkan populasi awal adalah proses
membangkitkan sejumlah individu secara acak atau melalui
prosedur tertentu. Syarat-syarat yang harus dipenuhi untuk
menunjukkan suatu solusi harus benar-benar diperhatikan
dalam pembangkitan setiap individunya.
• Dalam TSP, populasi menyatakan sejumlah solusi (jalur)
yang dicari secara acak. Misalkan dalam populasi terdapat
4 individu, maka contoh populasi awal TSP dengan 7 kota
adalah sebagai berikut:

1
5
7
4

2
7
2
6

4
4
6
5

3
6
4
7


6
2
5
3

5
3
1
2

7
1
3
1

3

6

1


6

1

5
2

3
5
2

4
7

4
7

Seleksi
• Seleksi dilakukan 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.
• Seleksi dapat dilakukan dengan
menggunakan dua macam teknik, yaitu
mesin roullete, dan turnamen.

Seleksi Dengan Mesin Roullete
Individu 1: fitness = 10 %
Individu 2: fitness = 25 %
Individu 3: fitness = 40 %
Individu 4: fitness = 15%
Individu 5: fitness = 10%

Individu terpilih

Individu 2
Individu 4

Individu 3
Individu 2
Individu 3

Cross Over
• Cross Over (Pindah Silang)
Induk 1
merupakan salah satu operator dalam
algoritma genetika yang melibatkan
Induk 2
dua induk untuk menghasilkan
keturunan yang baru.
p = random[0,1]
• Cross over dilakukan dengan
melakukan pertukaran gen dari dua
induk secara acak.
tidak
• Macam-macam Cross-Over yang
p < probCO
banyak digunakan antara lain:
pertukaran gen secara langsung dan
ya
pertukaran gen secara aritmatika.
• Proses cross over dilakukan pada
Cross Over
setiap individu dengan probabilitas
cross-over yang ditentukan.

Cross Over
Pertukaran secara langsung

1

1

0

0

1

1

1

1

1

0

1

0

1

1

P = 0.70
1

1

0

1

0

1

1

1

1

0

0

1

1

1

1

1

0

1

1

0

0

1

1

0

1

1

0

0

P = 0.95
0

1

1

0

0

0

1

0

1

1

0

0

0

1

1

1

0

0

0

0

0

1

0

1

0

1

0

0

P = 0.35
1

0

1

0

1

0

1

1

1

0

0

0

0

1

1

0

1

1

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

0

1

P = 0.65
1

1

1

0

0

0

1

Ditentukan probabilitas Cross-Over = 0.9

Cross Over
Pertukaran Secara Aritmatika

1.2

0.2

1.5

1.2

0.2
r = 0.4

2.0

1.0

1.0

0.2

(0.4)(0.2)+(0.6)(1.0)=0.68
(0.4)(1.0)+(0.6)(0.2)=0.52

2.5

1.2

0.7

1.2

1.2

0.2

2.0

0.5

1.3

0.2

2.5

(0.4)(1.5)+(0.6)(1.0)=1.2
(0.4)(1.0)+(0.6)(1.5)=1.3

Mutasi Gen
• Mutasi Gen merupakan operator
yang menukar nilai gen dengan
nilai inversinya, mialnya gennya
bernilai 0 menjadi 1.
• Setiap individu mengalami mutasi
gen dengan probabilitas mutasi
yang ditentukan.
• Mutasi dilakukan dengan
memberikan nilai inversi atau
menggeser nilai gen pada gen
yang terpilih untuk dimutasikan.

Individu
p = random[0,1]
p>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness

=
=
=
=
=
=
=
=
=
=
=
=

83
127
120
95
85
103
113
88
119
114
103
90

Seleksi, Cross-Over & Mutasi





Seleksi dilakukan dengan menggunakan roulette-wheel.
Cross-over, dilakukan dengan menukar gen-gen terpilih antar dua
induk, seperti pada gen biner.
8 5 15 15 24 6
5 22 14 11 19 23

-- H E O O X F
-- E V N K S W

8 5 14 11 19 6
5 22 15 15 24 23

-- H E N K S F
-- E V O O X W

Mutasi dilakukan dengan mengacak kembali nilai 1-26 dari gen yang
dimutasikan.
8

5 14 11 19

6

-- H E N K S F

8

5 19 11 19

6

-- H E S K S F

Hasil Algoritma Genetika
5
5
5
5
5
5
5
5
5
5
5
5
1
2
2
2
2
2
2
2

3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
2
2
2
2
1

19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19

19
19
19
19
24
19
22
22
22
21
21
21
21
21
21
21
21
21
21
21

14
14
14
10
11
11
10
11
11
11
11
11
11
11
11
11
11
11
11
11

18
10
10
10
10
10
10
10
10
10
10
10
10
10
10
9
9
9
9
9

-----------------------------------------

E
E
E
E
E
E
E
E
E
E
E
E
A
B
B
B
B
B
B
B

C
C
C
C
C
B
B
B
B
B
B
B
B
B
B
B
B
B
B
A

S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S

S
S
S
S
X
S
V
V
V
U
U
U
U
U
U
U
U
U
U
U

N
N
N
J
K
K
J
K
K
K
K
K
K
K
K
K
K
K
K
K

R
J
J
J
J
J
J
J
J
J
J
J
J
J
J
I
I
I
I
I

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness
Fitness

=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=

137
145
145
147
147
149
149
150
150
151
151
151
153
154
154
155
155
155
155
156

Beberapa Implementasi Algoritma Genetika
Yang Sudah Dilakukan













Algoritma Genetika untuk mengoptimalkan model antenna array dengan
memperbesar main-lobe dan menurunkan side-lobe
Algoritma Genetika untuk menyusun jadwal kuliah di PENS-ITS
Algoritma Genetika untuk menyelesaikan TSP (Traveling Salesman Problem)
Algoritma Genetika untuk menyusun jadwal pendistribusian produk (TSP multikriteria)
Algoritma Genetika untuk menyelesaikan masalah Knapsack
Algoritma Genetika untuk menentukan filter optimal yang dapat mereduksi noise
pada gambar
Algoritma Genetika untuk menentukan nilai maksimal atau minimal sistem non
linier.
Algoritma Genetika untuk mencari bentuk lingkaran pada suatu gambar
Algoritma Genetika untuk menentukan posisi suatu obyek gambar pada
keseluruhan gambar.
Algoritma Genetika untuk menyusun jadwal penguji proyek akhir di Jurusan
Telekomunikasi dan Jurusan Teknologi Informasi PENS-ITS.
Algoritma Genetika untuk menentukan pembobot nilai optimal dalam melakukan
ranking pegawai.
Algoritma Genetika untuk peramalan time-series.

Algoritma Genetika
Untuk Langkah Berikutnya
• Algoritma Genetika sangat handal untuk
melakukan proses pencarian dan optimasi.
• Salah satu hal yang menggembirakan adalah
kecepatan komputasi algoritma genetika untuk
proses optimasi bisa dikatakan sangat baik.
• Proses-proses optimasi yang membutuhkan
kecepatan komputasi dengan kompleksitas
yang tinggi membutuhkan algoritma genetika.

Notes