Implementasi Algoritma Genetika Menggunakan Teknik Mutasi Dinamis Knapsack Problem [Part 4]
Dear Steemian...
Pembahasan ini merupakan lanjutan dari pembahasan sebelumnya yang menjelaskan mengenai pengimplementasian pada algortima genetika dalam menggunakan teknik mutasi dinamis Knapsack Problem. Tujuannya ialah demi menghasilkan hasil yang dapat di analisis sebagai bahan pembelajaran dalam mempelajari ilmu-ilmu baik dibidang algoritma genetika maupun algoritma lainnya. Maka langsung saja simak beberapa pembahasan berikut ini.
HASIL PENELITIAN
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.
Pada Tabel 4 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.
Pada Gambar 3 adalah gambar node-node yang telah terbentuk berdasarkan data koordinat yang telah dibangkitkan secara acak. Nilai sumbu X dan sumbu Y dapat dilihat pada Tabel 4. Gambar ini membentuk node-node yang berada dalam rentang X <= 75 dan Y <= 45. Nilai ini dapat disesuaikan sesuai dengan kebutuhan user. Agar perhitungan tidak mempunyai nilai yang terlalu besar, maka nilai yang menjadi acuan tidak melebihi dari 100. Pada pembuatan koordinat TSP, tidak boleh memiliki nilai sumbu X dan sumbu Y yang bersamaan, dengan kata lain tidak boleh ada koordinat yang sama persis nilainya. Permasalahan yang dihadapi jika ada dua buah node yang memiliki koordinat yang sama adalah tidak terjadi pergerakan pada node-node tersebut. Tetapi hal ini mempunyai kemungkinan yang sangat kecil karena nilai yang dibangkitkan merupakan nilai yang acak. Sementara jika ada beberapa node yang memiliki nilai yang sama pada salah satu sumbu X atau sumbu Y, ini tidak akan mempengaruhi jalannya proses perhitungan Knapsack TSP.
Penentuan 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.
Pengambilan 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 }
Pada data di atas, pertama sekali akan dibentuk 30 koordinat (terlihat pada baris pertama). Pada baris kedua akan diambil koordinat ke 22 dari 30 koordinat sebelumnya. Ini dapat dilihat jumlah koordinat sudah berkurang satu, dimana pada baris kedua tidak ada lagi angka 22 pada daftar koordinat tersebut. Pos = 22 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.
Pada Tabel 5 merupakan node-node yang terpilih dari pembentukan 10 buah node yang menjadi target dari Knapsack TSP. Proses pembentukan populasi akan berlangsung sampai ukuran populasi terpenuhi. Pada percobaan ini akan dilakukan sebanyak 10 buah populasi. Data yang ditampilkan diatas merupakan data pengambilan sebanyak satu populasi saja. Proses pembentukan 10 populasi dapat dilihat pada lampiran 2, dan hasil pembuatan 10 populasi acak ditampilkan pada Tabel 6 berikut ini.
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.
Thanks for using eSteem!
Your post has been voted as a part of eSteem encouragement program. Keep up the good work! Install Android, iOS Mobile app or Windows, Mac, Linux Surfer app, if you haven't already!
Learn more: https://esteem.app
Join our discord: https://discord.gg/8eHupPq
Congratulations @alfarisi! You received a personal award!
Click here to view your Board of Honor
Congratulations @alfarisi! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!