Analisis Nilai Mutasi Dinamis Pada Algoritma Genetika Chapter III V

28 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

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 :

Gambar 3.1 Skema Penyelesaian Masalah

3.2Rancangan 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.

Input Data

Knapsack Problem

Nilai Mutasi Dinamis Algoritma Genetika

(2)

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

0 42 40

1 32 7

2 18 23

3 40 15

4 65 16

5 57 32

6 53 37

7 53 12

8 14 34

(3)

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

(4)

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

(5)

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

(6)

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.

(7)

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.

(8)

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

(9)

Populasi[4]: Fitness[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1] 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] =

(10)

P [3] =

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

(11)

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<0,314<0,4488636363636364

P[1] = P[3]

Bilangan Acak ke 2

R[2] = 0,111

= R[2] < PK[1]

= 0,111 < 0,1306818181818182

(12)

Bilangan Acak ke 3

R[3] = 0,342

= PK[2] < R[3] < PK[3]

= 0,2840909090909091 <0,342 < 0,4488636363636364

P[3] = P[3]

Bilangan Acak ke 4

R[4] = 0,743

= PK[4] < R[4] < PK[5]

= 0,6590909090909091<0,743 < 0,8295454545454546

P[4] = P[5]

Bilangan Acak ke 5

R[5] = 0,521

= PK[3] < R[5] < PK[4]

= 0,4488636363636364<0,521 < 0,6590909090909091

P[5] = P[4]

Bilangan Acak ke 6

R[1] = 0,411

= PK[2] < R[6] < PK[3]

= 0,2840909090909091 <0,411 < 0,4488636363636364

P[6] = P[3]

(13)

Populasi sebelum proses seleksi

Populasi[1] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1] Populasi[2] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1] Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1] Populasi[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1] Populasi[5] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] Populasi[6] = [1][3] + [3][4] + [4][5] + [5][2] + [2][1]

Populasi setelah proses seleksi

Populasi[1] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1] Populasi[2] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1] Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1] Populasi[4] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] Populasi[5] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1] Populasi[6] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]

Setelah proses seleksi, ada dua buah populasi yang mengalami duplikasi yaitu Populasi[1] dan Populasi[6]. Nilai baru yang dimasukkan ke populasi ini berasal dari Populasi[3] sehingga Populasi[1], Populasi[3] dan Populasi[6] memiliki nilai yang sama. Sementara Populasi[2] bertukar ke Populasi[4], Populasi[4] dengan Populasi[5] dan Populasi[5] dengan Populasi[4].

3.2.5 Mutasi

Proses mutasi yang digunakan adalah mutasi dinamis dimana nilai mutation ratenya tergantung dengan keadaan satu generasi. Jika dalam satu generasi ada banyak nilai fitness yang mendekati ke target, maka persentase mutasi akan semakin semakin sedikit dan sebaliknya apabila nilai-nilai fitness pada generasi tersebut jauh dari target, persentase mutasi akan lebih besar.

(14)

Pada perhitungan berikut ini akan dijelaskan cara perhitungan secara dinamis untuk menentukan nilai mutation rate dari proses genetika. Contoh ini mempunyai sepuluh buah populasi setelah proses seleksi dimana setiap populasinya mempunyai lima buah node yang disinggahi.Data di bawah ini diambil dari perhitungan penjumlahan jarak lintasan yang dilalui. Setiap populasi memiliki nilai yang berbeda. Nilai tersebut akan dibandingkan dengan target yang telah ditentukan. Nilai yang lebih mendekati kepada target memiliki peluang besar untuk dijadikan sebuah solusi. Nilai yang melebihi dari 1 tidak dapat divalidasi karena telah melebihi dari target yang ditentukan. Solusi dari permasalahan hanya boleh berada diantara nilai target dan nilai yang berada dibawahya.

Populasi[1] = [1][2] + [2][4] + [4][5] + [5][3] + [3][1]= 23 Populasi[2] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]= 27 Populasi[3] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]= 29 Populasi[4] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]= 37 Populasi[5] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] = 30 Populasi[6] = [1][3] + [3][4] + [4][5] + [5][2] + [2][1]= 30 Populasi[7] = [1][4] + [4][2] + [2][5] + [5][3] + [3][1]= 21 Populasi[8] = [1][3] + [3][2] + [2][4] + [4][5] + [5][1]= 33 Populasi[9] = [1][5] + [5][2] + [2][3] + [3][4] + [4][1]= 44 Populasi[10] = [1][5] + [5][3] + [3][2] + [2][4] + [4][1] = 35

Selain nilai jarak lintasan ada namanya bobot target. Pada kasus ini akan ditentukan bobot target sebesar 40. Diperlukan suatu perhitungan probabilitas untuk menentukan kemungkinan peluang suatu populasi terpilih untuk mempengaruhi mutation rate.

Populasi[1] =

= 0,575

Populasi[2] =

(15)

Populasi[3] =

= 0,725

Populasi[4] =

= 0,925

Populasi[5] =

= 0,75

Populasi[6] =

= 0,75

Populasi[7] =

= 0,525

Populasi[8] =

= 0,825

Populasi[9] =

= 1,1

Populasi[10] =

= 0,875

Jika diambil batas rentang sebesar 75%, maka yang masuk nominasi diantara populasi tersebut adalah Populasi[5], Populasi[6], Populasi[8] dan Populasi[10]. Populasi[9] tidak akan pernah terpilih karena memiliki nilai diatas 1. Jadi ada 4 buah yang akan diolah pada perhitungan mutation rate.

Rumus untuk mencari mutation rate adalah seperti yang terlihat di bawah ini.

Sehingga dapat dihitung nilai mutation rate adalah: Mutation Rate = 1 -

(16)

BAB 4

HASIL DAN PEMBAHASAN

Pada bagian ini akan dijelaskan pembahasan dari metode yang telah dibahas pada bab sebelumnya. Di sini akan diuji beberapa sample dari koordinat TSP. Tabel berikut ini merupakan data uji awal untuk menerapkan metode Knapsack pada TSP.

Tabel 4.1 Data koordinat yang akan di uji

(17)

Pada Tabel 4.1 ada 30 buah koordinat yang membentang pada TSP. Koordinat tersebut dimulai dari Koordinat 0 hingga Koordinat 29. Penciptaan koordinat dilakukan dengan cara random. Pengujian disini tidak menyimpan koordinat dalam suatu database yang bersifat statis. Ini bertujuan agar metode ini dapat diterapkan kepada berbagai macam permasalahan.

Gambar 4.1 Hasil pembentukan koordinat berdasarkan Tabel 4.1

(18)

4.1Penentuan Target

Target merupakan suatu tujuan yang akan dicapai pada kasus TSP. Perbedaan yang mendasar antara TSP konvensional dengan Knapsack TSP adalah terletak di penentuan target. Pada Knapsack TSP, jumlah node yang akan dilewati ditentukan berdasarkan keinginan dari user. Bobot atau jarak yang dicapai juga harus ditentukan sebelumnya. Sementara pada TSP konvensional, semua node yang diciptakan harus dilalui dengan jarak yang paling minimal pada algoritma genetika. Pada perhitungan kali ini target untuk jumlah node yang dilewati adalah 10 buah node sementara target jarak yang diinginkan sebesar 400. Diharapkan perhitungan Knapsack TSP dapat menentukan node-node mana saja yang memiliki peluang yang sama dengan target atau mendekati target dengan sedekat-dekatnya.

4.2Pengambilan Populasi

Pengambilan populasi diambil secara acak dari susunan koordinat TSP awal. Pada koordinat sebelumnya dinyatakan ada 30 buah koordinat yang masing-masing memiliki nilai sumbu x dan sumbu y. Populasi yang diambil tidak boleh melebihi dari jumlah koordinat yang ada. Sebagai contoh, akan diambil sebuah populasi yang terdiri dari 10 buah node.

{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 } {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 3 4 5 6 7 9 10 11 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 3 5 6 7 9 10 11 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 3 5 6 7 9 10 11 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 5 6 7 9 10 11 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 5 6 7 9 10 11 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 5 6 7 9 10 15 16 17 18 19 20 21 23 24 25 26 27 28 29 } {0 1 2 5 6 7 9 10 15 16 17 18 19 20 21 23 24 25 27 28 29 } {0 1 2 5 6 7 9 15 16 17 18 19 20 21 23 24 25 27 28 29 }

(19)

menyatakan koordinat yang diambil merupakan urutan ke 22 dari array koordinat. Proses ini kan berulang sampai sebanyak node yang ditentukan pada Knapsack TSP. Pada pengujian kali ini, jumlah node target ditentukan sebanyak 10 buah. Pada akhir pengambilan data acak dari ke 30 data koordinat terlihat ada 20 buah node yang tersisa seperti yang diilustrasikan di bawah ini.

{0 1 2 5 6 7 9 15 16 17 18 19 20 21 23 24 25 27 28 29 }

Koordinat-koordinat diatas adalah koordinat yang tidak termasuk dalam proses pengambilan populasi. Setelah dilakukan proses pengambilan populasi dapat dilihat node yang terpilih adalah

22 – 8 – 12 – 4 – 13 – 3 – 14 – 11 – 26 – 10 - 22

Pengambilan koordinat tidak boleh berulang, dengan arti node yang sudah terpilih tidak boleh dimasukkan kembali dalam node berikutnya. Karena sesuai dengan prinsip kerja TSP, node hanya dapat dilalui sekali saja dalam proses perjalanannya. Pada data di atas dapat dilihat tidak ada node yang berulang. Perjalanan akan dimulai dari node 22 sampai node 10 dan akhirnya kembali ke node 22.

Tabel 4.2 Node yang terpilih pada proses pembuatan populasi

(20)

dilihat pada lampiran 2, dan hasil pembuatan 10 populasi acak ditampilkan pada tabel 4.3 berikut ini.

Tabel 4.3 Hasil pembuatan 10 buah populasi acak

Populasi N 0 N 1 N 2 N 3 N 4 N 5 N 6 N 7 N 8 N 9

Tabel di atas diperoleh dari proses pembangkitan populasi. Setiap populasi dari populasi 0 sampai populasi 9 akan dihitung masing-masing nilai fitnessnya. Fitness yang mendekati target memiliki peluang yang lebih besar untuk dijadikan parent pada proses seleksi dan mutasi.

4.3Perhitungan Nilai Fitness

Populasi di atas merupakan bentuk sementara dari hasil pembentukan lintasan yang sesuai dengan target yang diinginkan. N0 – N9 menyatakan node yang akan dilewati pada 10 lintasan yang terpilih. Populasi 0 hingga populasi 9 memiliki nilai fitness masing-masing. Perhitungan fitness pada generasi pertama hanya merupakan pengujian apakah nilai fitness dari populasi tersebut sesuai dengan harapan atau Fitness=1. Tetapi pada umumnya, suatu hal yang tidak mungkin pada generasi pertama nilai fitness tersebut tercapai dengan sempurna. Pada perhitungan algoritma genetika tidak selamanya target fitness tersebut bernilai satu. Dalam Knapsack problem, fitness dapat didapat dengan cara nilai fitness terbaik dalam jumlah generasi yang ada. Pada populasi ke 0 dari 10 populasi di atas mempunyai nilai sebagai berikut:

22 - 8 - 12 - 4 - 13 - 3 - 14 - 11 - 26 - 10 – 22

(21)

Tabel 4.4 Hasil Perhitungan Jarak Antara Dua Node

Node X1 X2 Y1 Y2 Jarak

22 - 8 39 42 9 17 9

8 - 12 42 27 17 13 16

12 - 4 27 41 13 14 14

4 - 13 41 6 14 37 42

13 - 3 6 30 37 21 29

3 14 30 7 21 23 23

14 - 11 7 35 23 7 32

11 - 26 35 32 7 5 4

26 - 10 32 11 5 36 37

10 - 22 11 39 36 9 39

Dari perhitungan di atas dapat diketahui total jarak lintasan yang dilewati dan fitness dari populasi ke 0 adalah sebagai berikut:

Total Jarak = ∑

= = 245

Maka, nilai fitnessnya adalah Fitness =

= = = 0.0064

Target jarak yang diinginkan adalah 400 seperti yang telah dijelaskan sebelumnya. Sehingga perhitungan fitness dari target jarak tersebut memperoleh nilai sebesar 0.0064. Terjadi perbedaan jarak sebesar 155 dikarenakan target yang diinginkan sebesar 400, sementara ke 10 node yang dilewati hanya mencapai nilai 245. Jarak yang melebihi nilai 400 akan tidak masuk ke dalam kategori karena hasil fitness yang diperoleh adalah minus.

4.4Hasil Evaluasi Satu Generasi

(22)

tiap populasi akan dihitung kembali, fitness yang terbaik akan dijadikan peluang pada generasi berikutnya. Sehingga nilai tersebut akan disimpan dan dimasukkan ke populasi 0 pada generasi selanjutnya. Di bawah ini adalah hasil dari perhitungan satu generasi untuk mendapatkan nilai fitness yang mendekati dengan target yang diinginkan.

Fitness Setelah Proses Genetika

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

Populasi Jarak Fitness Prob ProbK

[0] 336 0,0153846153846154 0,396138089149558 0,396138089149558

[1] 301 0,01 0,257489757947213 0,65362784709677

[2] 417 -0,0625 -1,60931098717008 -0,955683140073308 [3] 305 0,0104166666666667 0,26821849786168 -0,687464642211628 [4] 303 0,0102040816326531 0,262744650966543 -0,424719991245085 [5] 215 0,00537634408602151 0,13843535373506 -0,286284637510024 [6] 419 -0,0555555555555556 -1,43049865526229 -1,71678329277232 [7] 272 0,00775193798449612 0,199604463524971 -1,51717882924734 [8] 390 0,0909090909090909 2,3408159813383 0,823637152090951 [9] 255 0,00684931506849315 0,17636284790905 1

Bilangan Acak [0] : 0,614453975397374 Bilangan Acak [5] : 0,733946638523576 Bilangan Acak [1] : 0,999488657805831 Bilangan Acak [6] : 0,796864518801153 Bilangan Acak [2] : 0,95123097484523 Bilangan Acak [7] : 0,221996235298922 Bilangan Acak [3] : 0,424989556625946 Bilangan Acak [8] : 0,22159274631254 Bilangan Acak [4] : 0,0145757463828548 Bilangan Acak [9] : 0,816631751980927

Populasi Setelah Seleksi

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

22 8 12 4 13 3 14 11 26 10

28 14 23 5 21 17 12 7 3 27

28 14 23 5 21 17 12 7 3 27

4 29 0 18 22 26 12 14 23 27

(23)

3 16 15 2 12 23 26 21 7 25

3 16 15 2 12 23 26 21 7 25

22 8 12 4 13 3 14 11 26 10

22 8 12 4 13 3 14 11 26 10

3 16 15 2 12 23 26 21 7 25

Total Mutasi : 50

Populasi Setelah Mutasi

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

22 8 12 4 13 3 14 11 26 10

7 27 28 14 5 23 17 3 12 21

7 27 28 14 5 23 17 3 12 21

4 27 12 18 14 26 29 0 23 22

10 11 4 8 12 13 3 26 22 14

12 25 15 23 26 21 2 16 3 7

12 25 15 23 26 21 2 16 3 7

10 11 4 8 12 13 3 26 22 14

10 11 4 8 12 13 3 26 22 14

12 25 15 23 26 21 2 16 3 7

Fitness Setelah Proses Genetika

Populasi Jarak Fitness

[0] 336 0,0153846153846154

[1] 262 0,00719424460431655

[2] 262 0,00719424460431655

[3] 297 0,00961538461538462

[4] 341 0,0166666666666667

[5] 380 0,0476190476190476

[6] 380 0,0476190476190476

[7] 341 0,0166666666666667

[8] 341 0,0166666666666667

[9] 380 0,0476190476190476

(24)

Populasi Setelah Elitisme

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

12 25 15 23 26 21 2 16 3 7

7 27 28 14 5 23 17 3 12 21

7 27 28 14 5 23 17 3 12 21

4 27 12 18 14 26 29 0 23 22

10 11 4 8 12 13 3 26 22 14

12 25 15 23 26 21 2 16 3 7

12 25 15 23 26 21 2 16 3 7

10 11 4 8 12 13 3 26 22 14

10 11 4 8 12 13 3 26 22 14

12 25 15 23 26 21 2 16 3 7

Pada perhitungan generasi di atas, Populasi [8] dengan Jarak : 390 dan nilai Fitness : 0,0909090909090909 memiliki nilai terbesar sebelum dilakukan beberapa subproses seleksi dan mutasi. Tetapi pada perhitungan akhir nilai Jarak yang paling mendekati berubah dari 390 menjadi 380, ini disebabkan karena proses seleksi. Seleksi terjadi berdasarkan probabilitas kumulatif yang terjadi. Sehingga ada kemungkinan kromosom atau populasi yang baik akan digantikan dengan populasi yang nilainya berada dibawah populasi tersebut. Setelah satu generasi dapat dilihat populasi-populasi terbaik adalah Populasi[5], Populasi[6] dan Populasi[9] yang mempunyai lintasan sebagai berikut:

12 - 25 - 15 - 23 - 26 - 21 - 2 - 16 - 3 – 7 - 12

Dari lintasan di atas, Jarak yang dimiliki sebesar 380 dengan nilai fitness sebagai berikut: Fitness =

=

=

= 0.0476

(25)

Nilai yang diperoleh sebesar 380 belum tentu nilai yang terbaik untuk N-buah generasi. Nilai tersebut masih dikategorikan nilai optimum lokal. Untuk mendapatkan nilai optimum global harus dilakukan perulangan dengan N-buah generasi. Pada percobaan ini dilakukan sebanyak 10 generasi, dimana nilai yang terbaik pada setiap generasi akan dipindahkan ke generasi berikutnya yang berada pada populasi ke 0. Populasi ke 0 pada generasi berikutnya merupakan proses elitisme, dimana nilai populasi ini disimpan untuk dibandingkan dengan nilai fitness pada generasi yang sedang berjalan. Apabila nilai tersebut lebih baik dari generasi yang sedang berjalan, maka nilai tersebut tetap dipertahankan untuk kemudian ditransfer ke generasi berikutnya dan apabila nilai tersebut tidak lebih baik, maka populasi tersebut akan digantikan dengan populasi terbaik pada generasi yang sedang berjalan dan kemudian akan diolah pada generasi-generasi berikutnya.

4.5Proses Mutasi Dinamis

Mutasi yang diterapkan pada proses genetika merupakan mutasi dinamis yang mana nilai dari Mutation Rate tergantung dari hasil perhitungan fitness pada generasi yang sedang berjalan. Jika banyak yang memiliki nilai fitness yang mendekati target fitness, maka nilai dari Mutation Rate akan berkurang sebaliknya jika nilai fitness pada tiap generasi memiliki tingkat yang rendah atau jauh dari target fitness, maka nilai Mutation Rate akan meningkat. Proses ini dapat dilihat dari penjelasan perhitungan sebagai berikut:

Populasi [0] Jarak : 336 Fitness : 0,0153846153846154 Populasi [1] Jarak : 301 Fitness : 0,01

Populasi [2] Jarak : 417 Fitness : -0,0625

(26)

Fitness terkecil dimiliki oleh Populasi[5] sebesar 0,00537634408602151 sementara fitness terbesar dimiliki oleh Populasi[8] sebesar 0,0909090909090909. Selisih antara nilai fitness terkecil dan terbesar dapat dihitung dengan rumus sebagai berikut:

Selisih =

= =

Jika Batasan Fitness dihitung 50% dari selisih maka didapat batasan fitness sebagai berikut :

Batas =

= =

=

Sesuai perhitungan sebelumnya, yang berada di atas nilai Batas adalah Populasi [8] dengan nilai fitness sebesar 0,0909090909090909. Sehingga dapat dihitung nilai Mutation Rate sebesar:

Mutation Rate =

=

= = 0,9

Jumlah gen yang dimutasi dapat diperoleh dengan perhitungan sebagai berikut: Jumlah Mutasi =

= = 90

(27)

4.6Hasil Evaluasi Sepuluh Generasi

Hasil perhitungan fitness untuk mendapatkan node-node pada lintasan yang ditentukan dapat dilihat di lampiran. Pada perhitungan ini dilakukan perhitungan dengan target Jumlah Node sebesar 10 dan Jumlah Jarak sebesar 400. Penjelasan tentang langkah-langkah proses untuk mendapatkan nilai fitness terbaik yang mempunyai optimum global juga dapat dilihat di lampiran.

Perhitungan pada sepuluh generasi menghasilkan nilai terbaik yaitu Fitness=1 dimana target yang diperoleh sesuai dengan target yang diinginkan. Populasi yang mempunyai nilai Fitness=1 ada tiga buah antara lain Populasi[0], Populasi[5] dan Populasi[8]. Lintasan pada populasi ini adalah sebagai berikut:

22 - 7 - 19 - 16 - 23 - 2 - 8 - 24 - 18 – 11 – 22

(28)

BAB 5 PENUTUP

5.1Kesimpulan

Proses mutasi dinamis pada Knapsack TSP sangat membantu proses genetika dalam melakukan perbaikan keturunan. Pada mutasi yang bersifat statis, kebutuhan akan mutasi mempunyai nilai yang tetap. Ada kondisi dimana suatu generasi tidak membutuhkan banyak proses mutasi. Jika ini terjadi, maka akan banyak gen-gen yang mendekati nilai target fitness akan tergantikan dengan nilai yang lebih baik. Proses ini akan mempelajari situasi dari suatu generasi. Nilai rentang atau range dapat ditentukan berdasarkan kebutuhan. Proses mutasi dinamis ini dapat membatasi suatu generasi akan termutasi. Jika generasi memiliki banyak fitness yang mendekati nilai sasaran, proses mutasi akan berkurang dan kemungkinan populasi baik yang tergantikan akan lebih sediikit.

5.2Saran

Pada proses mutasi dinamis ini tidak mempelajari situasi dari generasi-generasi sebelumnya. Sangat diharapkan agar penentuan nilai mutasi menjadi lebih baik. Metode supervised learning dapat dijadikan suatu metode kombinasi pada penentuan nilai Mutation Rate. Sehingga nilai mutasi dapat mempelajari dari kebiasaan-kebiasaan yang terjadi sebelumnya. Pada penelitian selanjutnya diharapkan agar ada perbaikan penentuan nilai mutasi pada Knapsack TSP ini. Jika pada mutasi dinamis nilai mutasi tergantung dari nilai fitness pada generasi yang sedang berjalan, pada kelanjutan penelitian ini diharapkan nilai mutation rate tergantung dari perhitungan generasi-generasi yang telah terlewati sebelumnya

Figur

Gambar 3.2 Contoh lintasan dengan 10 buah node
Gambar 3 2 Contoh lintasan dengan 10 buah node . View in document p.2
Tabel 3.1 Data koordinat lintasan
Tabel 3 1 Data koordinat lintasan . View in document p.2
Tabel 3.2 Perhitungan jarak terbaik
Tabel 3 2 Perhitungan jarak terbaik . View in document p.6
Tabel 3.3 Hasil perhitungan fitness
Tabel 3 3 Hasil perhitungan fitness . View in document p.8
Tabel 4.1 Data koordinat yang akan di uji
Tabel 4 1 Data koordinat yang akan di uji . View in document p.16
Gambar 4.1 Hasil pembentukan koordinat berdasarkan Tabel 4.1
Gambar 4 1 Hasil pembentukan koordinat berdasarkan Tabel 4 1 . View in document p.17
Tabel 4.2 Node yang terpilih pada proses pembuatan populasi
Tabel 4 2 Node yang terpilih pada proses pembuatan populasi . View in document p.19
Tabel 4.3 Hasil pembuatan 10 buah populasi acak
Tabel 4 3 Hasil pembuatan 10 buah populasi acak . View in document p.20
Tabel 4.4 Hasil Perhitungan Jarak Antara Dua Node
Tabel 4 4 Hasil Perhitungan Jarak Antara Dua Node . View in document p.21

Referensi

Memperbarui...