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
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