Analisis Nilai Mutasi Dinamis Pada Algoritma Genetika Chapter III V

BAB 3
METODOLOGI PENELITIAN

Pada algoritma genetika, penentuan operator mutasi yang dipengaruhi oleh nilai
mutasi merupakan hal yang sangat penting, karena akan memberikan solusi yang
optimal. Penentuan nilai mutasi secara dinamis diharapkan dapat menghindari local
optimal dan mempercepat penemua solusi dari permasalahan karena perubahannya
bisa dikontrol.
3.1 Rancangan Penelitian
Dalam penelitian ini akan dilakukan tahapan berurut secara keseluruhan untuk
menyelesaikan masalah. Adapun tahapan penyelesaian tersebut terlihat pada gambar
3.1 berikut :
Input Data
Knapsack Problem

Nilai Mutasi Dinamis
Algoritma Genetika

Output Hasil
dengan Mutasi


Gambar 3.1 Skema Penyelesaian Masalah

3.2 Rancangan Genetika
Pada bagian ini akan dijelaskan bagaimana algoritma genetika mengambil peranan
dalam proses optimasi pada pencarian lintasan. Dalam mencari lintasan ada beberapa
hal yang penting untuk dipertimbangkan yaitu bobot dan jumlah lintasan. Pada metode
yang diterapkan pada penelitian ini lintasan yang dicari bukan sepenuhnya dari total
lintasan melainkan sebahagian saja tergantung dari input yang diinginkan. Jumlah
lintasan yang dicari tidak melebihi dari total lintasan.

Universitas Sumatera Utara

12

Gambar berikut ini menjelaskan contoh proses pencarian lintasan dari total lintasan
yang ada.

Gambar 3.2 Contoh lintasan dengan 10 buah node

Pada gambar di atas dapat dilihat sebuah pola lintasan dengan 10 buah node yang

terdiri dari titik 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Setiap node akan dibentangkan pada
koordinat 2 dimensi yang titik origin (0, 0) berada pada sudut kiri atas. Tabel di bawah
ini kan memerikan keterangan tetang posisi koordinat setiap note pada sumbu X dan
sumbu Y.
Tabel 3.1 Data koordinat lintasan
Node
0
1
2
3
4
5
6
7
8
9

X
42
32

18
40
65
57
53
53
14
60

Y
40
7
23
15
16
32
37
12
34
22


Universitas Sumatera Utara

13

Pada Tabel 3.1 ada 10 buah posisi koordinat. Setiap node memiliki pasangan sumbu X
dan sumbu Y. Seperti contoh, pada node ke 5 memiliki sumbu X = 57 dan sumbu Y =
32.

3.2.1

Jarak Lintasan

Untuk menentukan lintasan mana yang memiliki nilai optimal yang terbaik. Jarak
yang dipergunakan untuk menentukan posisi lintasan mana yang memiliki nilai paling
optimal yaitu dengan cara menentukan jumlah lintasan mana yang paling mendekati
bobot yang diinginkan. Pencarian jarak ini berbeda dengan jarak pada kasus TSP pada
umumnya. Pada kasus umum, jarak akan menghitung bobot setiap node, tetapi pada
permasalahan Knapscak, jarak dicari berdasarkan jumlah node yang dinginkan saja
dan perkisaran bobot tertentu. Jarak dapat dihitung pada rumus berikut ini.






(1)

Pengambilan lintasan tidak boleh mempunyai node yang berulang kecuali node awal
dan node akhir karena setiap node hanya dapat disinggahi cuma sekali saja. Sebagai
contoh, akan diambil sebuah buah lintasan dengan 5 buah node:

Lintasan

= 2–6–9–4–2

Jarak 1

= 2–6

Jarak 2


= 6–9

Jarak 3

= 9–4

Jarak 4

= 4–2

Node pertama (2) adalah dimana mulai dilakkan perjalanan dan akan berakhir di node
kelima (2) dimana node tersebut adalah node yang pertama disinggahi sebelumnya.
Setelah diperoleh masing-masing persinggahan, akan dihitung jarak masing-masing
persinggahan dan kemudian dijumlahkan semuanya. Ada 4 buah jarak yang harus
dihitung untuk setiap 5 node yang disinggahi. Penjelasan berikut akan menjelaskan
nilai yang diperoleh dari masing-masing persinggahan.

Universitas Sumatera Utara


14

Node 2 ke Node 6
Jarak X1

=

32

Jarak Y1

=

7

Jarak X2

=

53


Jarak Y2

=

37



Jarak 1 =



=



=




=



=
=

36.61967

=

37

Node 6 ke Node 9
Jarak X1

=

53


Jarak Y1

=

37

Jarak X2

=

60

Jarak Y2

=

22




Jarak 2 =



=



=

=



=

16.55295

=

16

=



Node 9 ke Node 4
Jarak X1

=

60

Jarak Y1

=

22

Jarak X2

=

65

Jarak Y2

=

16

Jarak 3 =
=
=






=



=

7.81025

=

8

=



Universitas Sumatera Utara

15

Node 4 ke Node 2
Jarak 4.X1 =

65

Jarak 4.Y1 =

16

Jarak 4.X2 =

18

Jarak 4.Y2 =

23

Jarak 3 =
=
=





=



=

47.51842

=

48

=



Total Lintasan 2 – 6 – 9 – 4 – 2 = 36.6197 + 16.55295 + 7.81025 + 47.51842
= 108.5013
= 109
Dari perhitungan di atas dapat ditentukan nilai dari total jarak yang ditempuh dari
mulai lintasan 2 ke 6 sebesar 36.61967, 6 ke 9 sebesar 16.55295, 6 ke 9 sebesar
7.81025 dan 4 ke 2 sebesar 47.51842 adalah sebesar 109.503 berdasarkan rumus pada
jarak sebelumnya. Proses ini akan berulang jika ada beberapa lintasan yang kan dicari
nilai jaraknya.
3.2.2

Populasi

Populasi akan dibangkitkan sesuai dengan jumlah yang diinginkan. Tidak ada batasan
jumlah pembangkitan populasi. Semakin banyak populasi yang dibangkitkan, semakit
banyak peluang terciptanya optimum global. Tetapi perlu diperhatikan semakin
banyak populasi akan memperlambat proses genetika. Akan tetapi jika kecepatan
komputer yang digunakan memadai, dapat dicoba untuk menambahkan jumlah
populasi yang dibangkitkan. Sebagai contoh dapat dilihat pada Tabel 3.2, pada tabel
ini akan diujicoba perhitungan bobot target = 400 dan jumlah populasi = 20.
Populasi

Jarak

Perbedaan

0

143

257

1

386

14

2

353

47

Universitas Sumatera Utara

16

3

262

138

4

324

76

5

467

-67

6

148

252

7

386

14

8

182

218

9

256

144

10

450

-50

11

288

112

12

238

162

13

303

97

14

128

272

15

424

-24

16

376

24

17

442

-42

18

231

169

19

145

255

Tabel 3.2 Perhitungan jarak terbaik
Pada kasus Knapsack, lintasan terpendek bukan berarti terbaik kerena pada model
optimasi Knapscak, ada yang namanya bobot target dimana ini merupakan batas
dimana nilai jarak harus paling medekati dengan nilai yang tercantum pada bobot
target dan tidak melebihi dari nilai tersebut. Angka minus yang tertera di tabel tersebut
terjadi akibat nilai jarak melebih dari nilai target yang ditentukan. Nilai yang paling
mendekati target berada pada populasi 1 dan 7 dimana perbedaannya adalah 14.

3.2.3

Fitness

Populasi akan proses genetika diharapkan mampu untuk membuat perbedaan mencari
nilai 0. Jika nilai perbedaan adalah 0 maka fitness dari populasi tersebut bernilai 1.
Perbedaan nilai antara panjang lintasan dan bobot target merupakan Error Code. Jika
Error Code menghasilkan 0 berarti secara otomatis fitness akan bernilai 1. Ini dapat
diketahui melalui rumus berikut.

Universitas Sumatera Utara

17

Di bagian ini akan diambil lima buah contoh dari Tabel 3.2 yaitu populasi 1, 6, 10, 15
dan 19. Di sini akan dibandingkan populasi mana yang mempunyai fitness lebih tinggi
dari beberapa populasi yang ditentukan. Akan ada kemungkinan beberapa populasi
memiliki nilai yang sama.
Populasi ke 1 :

Fitness ke 1 =
=
=
= 0.066667

Populasi ke 6 :

Fitness ke 6 =
=
=
= 0.003953

Populasi ke 10 :

Fitness ke 10 =
=
=
= -0.02041

Populasi ke 15 :

Fitness ke 15 =
=
=
= -0.04348

Populasi ke 19 :

Fitness ke 19 =
=
=
= 0.003906

Dari perhitungan di atas dapat dilihat nilai fitness mempunyai hasil yang berbedabeda. Pada dasarnya nilai fitness pada suatu proses genetika dapat ditentukan semakin
kecil lebih baik atau semakin besar lebih baik. Hal tersebut tergantung pengolahan dan

Universitas Sumatera Utara

18

penentuan rumus untuk mencari nilai fitness sebelumnya. Tabel perbandingan nilai ini
dapat dilihat pada Tabel 3.3 berikut ini.
Tabel 3.3 Hasil perhitungan fitness

Pada tabel di atas dapat dilihat perhitungan masing-masing populasi. Populasi yang
memiliki fitness tertinggi berada pada Populasi 1 yang mempunyai nilai fitness =
0,066667 sementara populasi yang memiliki nilai paling rendah berada pada Populasi
15 yang memiliki nilai sebesar -0,04348. Perhitungan fitness ini akan berulang
sebanyak generasi yang ditentukan. Biasanya, perhitungan populasi dilakukan di awal
proses dan di akhir proses. Apabila perhitungan fitness pada awal proses sudah
menghasilkan solusi dari permasalahan, maka algoritma genetika tidak diteruskan dan
hasil akan ditampilkan langsung tetapi ini jarang sekali terjadi nilai sudah optimal
pada saat pertama sekali perhitungan dilaksanakan.

3.2.4

Seleksi

Pada tahap seleksi, proses genetika akan melakukan duplikasi populasi yang dianggap
baik untuk dijadikan peluang terhadap generasi berikutnya. Untuk mengetahui lebih
lanjut mengenai proses seleksi pada metode ini, dapat dilihat pada penjelasan berikut
ini.
Populasi[1]: Fitness[1]

= [1][2] + [2][4] + [4][5] + [5][3] + [3][1]
= 7 +2 +6 +3+ 5
= 23

Populasi[2]: Fitness[2]

= [1][4] + [4][2] + [2][5] + [5][3] + [3][1]
= 9 +2 +8 +3+ 5
= 27

Populasi[3]: Fitness[3]

= [1][3] + [3][2] + [2][4] + [4][5] + [5][1]
= 5 +7 +2 +6 +9
= 29

Universitas Sumatera Utara

19

Populasi[4]: Fitness[4]

= [1][5] + [5][2] + [2][3] + [3][4] + [4][1]
= 9 +8 +7 +4+ 9
= 37

Populasi[5]: Fitness[5]

= [1][5] + [5][3] + [3][2] + [2][4] + [4][1]
= 9 +3 +7 +2+ 9
= 30

Populasi[6]: Fitness[6]

= [1][3] + [3][4] + [4][5] + [5][2] + [2][1]
= 5 +4 +6 +8+ 7
= 30

Perhitungan di atas merupakan hasil dari panjang lintasan dari tiap-tiap node yang
dilalui. Setiap populasi mempunyai urutan yang berbeda-beda. Ini disebabkan pada
saat pembangkitan populasi, angka yang dipergunakan bersifat acak. Total fitness
merupakan penentu dari nilai probabilitas dari setiap fitness. Total fitness dapat dicari
dengan menggunakan rumus berikut ini.


Dengan populasi sebanyak enam buah di atas, maka dapat diperoleh nilai total fitness
(TF) adalah:
TF

=

Fitness[1] + Fitness[2] + Fitness[3] + Fitness[4] +Fitness[5] + Fitness[6]

=

23 + 27 + 29 + 37 + 30 + 30

=

176

Total fitness tersebut digunakan untuk mencari probabilitas tiap populasi. Pencarian
probabilitas dilakukan dengan cara membandingkan hasil fitness dari tiap populasi
terhadap nilai total fitness sebagaimana yang digambarkan pada rumus mencari
probabilitas berikut ini.

Berdasarkan rumus diatas, akan dilakukan perhitungan probabilitas dari tiap-tiap
fitness yang telah diperoleh sebelumnya. Di bawah ini akan dijelaskan perhitungan
untuk mencari probabilitas tersebut.
P [1]

=

= 0,1306818181818182

P [2]

=

= 0,1534090909090909

Universitas Sumatera Utara

20

P [3]

=

= 0,1647727272727273

P [4]

=

= 0,2102272727272727

P [5]

=

= 0,1704545454545455

P [6]

=

= 0,1704545454545455

Sebelum berada pada tahapan seleksi, maka harus dicari terlebih dahulu probabilitas
kumulatif pada tiap-tiap populasi. Probabilitas ini bertujuan sebagai nilai pembanding
dari nilai acak yang dibangkitkan oleh proses genetika sebagai acuan populasi mana
yang akan terpilih menjadi duplikasi. Populasi yang terpilih akan menduplikatkan
dirinya kepada populasi yang aktif sehingga kemungkinan besar akan ada beberapa
populasi yang memiliki nilai-nilai gen yang sama.
Untuk mencari nilai probabilitas pada tiap-tiap populasi dapat dilakukan dengan
rumus seperti di bawah ini.


Berdasarkan rumus di atas, akan dicari nilai dari probabilitas kumulatif pada tiap-tiap
populasi. Perhitungan nilai ini dapat dilihat dari penjelasan di bawah ini.
PK[1] = 0,1306818181818182
PK[2] = 0,1306818181818182 + 0,1534090909090909 = 0,2840909090909091
PK[3] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273
= 0,4488636363636364
PK[4] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273 +
0,2102272727272727 = 0,6590909090909091
PK[5] = 0,1306818181818182 + 0,1534090909090909 + 0,1647727272727273

+

0,2102272727272727 + 0,1704545454545455 = 0,8295454545454546
PK[6] = 0,1306818181818182 + 0,1534090909090909 +0,1647727272727273 +
0,2102272727272727 + 0,1704545454545455 + 0,1704545454545455 = 1

Dalam mencari nilai probabilitas kumulatif ada beberapa hal yang perlu
diperhatikan agar nilai tersebut tidak salah. Kelemahan dari proses genetika salah
satunya adalah jika ada rumus yang salah, maka perlu penelusuran dari awal untuk
mencari letak kesalahaan perhitungn tersebut. Pada probabilitas komulatif dapat kita

Universitas Sumatera Utara

21

lihat bahwa nilai PK[1] pasti akan selalu sama dengan nilai P[1] dan nilai PK[n] selalu
bernilai dengan 1. Jika kedua bagian ini tidak benar, maka sudah dipastikan dalam
proses pencarian nilai probabilitas kumulatif tidak mengikuti aturan yang sebenarnya.
Proses seleksi yang dipakai pada metode ini adalah metode Roulette Wheel.
Proses seleksi membangkitkan bilangan acak yang berada antara 0 dan 1 pada setiap
populasi dan kemudian nilai tersebut akan dibanding kan dengan nilai probabilitas
komulatif dengan syarat PB[n-1] < R[n] < PB[n]. Berikut penjelasan untuk mencari
proses seleksi.

Nilai Acak Populasi [1] adalah R[1]

= 0,314

Nilai Acak Populasi [2] adalah R[2]

= 0,111

Nilai Acak Populasi [3] adalah R[3]

= 0,342

Nilai Acak Populasi [4] adalah R[4]

= 0,743

Nilai Acak Populasi [5] adalah R[5]

= 0,521

Nilai Acak Populasi [6] adalah R[6]

= 0,411

Bilangan Acak ke 1

R[1]

= 0,314
= PK[2] < R[1] < PK[3]
= 0,2840909090909091