• Tidak ada hasil yang ditemukan

Kajian Algoritma Genetika Pada Travelling Salesman Problem

N/A
N/A
Protected

Academic year: 2016

Membagikan "Kajian Algoritma Genetika Pada Travelling Salesman Problem"

Copied!
79
0
0

Teks penuh

(1)

KAJIAN ALGORITMA GENETIKA PADA TRAVELLING

SALESMAN PROBLEM

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains

WIRA SEPTI ELISYAH TANJUNG

070823003

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

(2)

PERSETUJUAN

Judul : KAJIAN ALGORITMA GENETIKA PADA TRAVELLING SALESMAN PROBLEM

Kategori : SKRIPSI

Nama : WIRA SEPTI ELISYAH TANJUNG

Nomor Induk Mahasiswa : 070823003

Program Studi : SARJANA (S1) MATEMATIKA

Departemen : MATEMATIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA)

UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Juli 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Marwan Harahap, M.Eng Drs. Sawaludin, M.IT NIP. 19461225 197403 1 001 NIP.19591231 199802 1 001

Diketahui/Disetujui oleh

Departemen Matematika FMIPA USU Ketua.

Dr. Saib Suwilo, M.Sc

(3)

PERNYATAAN

KAJIAN ALGORITMA GENETIKA PADA TRAVELLING SALESMAN PROBLEM

SKRIPSI

Saya mengaku bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing – masing disebutkan sumbernya.

Medan, Juli 2010

(4)

PENGHARGAAN

Puji dan Syukur penulis panjatkan kehadirat Allah SWT yang Maha Pemurah dan Maha Penyayang, karena atas rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan skripsi ini dalam waktu yang ditetapkan.

Ucapan terima kasih penulis sampaikan kepada Bapak Drs. Sawaluddin, M.IT dan Bapak Drs. Marwan Harahap, M.Eng, selaku pembimbing pada penyelesaian skripsi ini yang telah memberikan bimbingan kepada saya untuk menyempurnakan skripsi ini. Terima kasih untuk Bapak Drs. Marihat Situmorang, M.Kom dan Bapak Drs. Suwarno Ariswoyo, M.Si yang telah memberikan kritik dan saran yang juga sangat membantu dalam penulisan skripsi ini. Ucapan terima kasih juga ditujukan kepada Ketua dan sekretaris Departemen Dr. Saib Suwilo, M.Sc dan Henry Rani Sitepu, M.Si, Dekan dan Pembantu Dekan serta Dosen dan Pegawai Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, dan teman seangkatan 2007 yang turut memberikan dukungan.

Tidak lupa ucapan terima kasih yang sebesar-besarnya kepada Wirdansyah Tanjung (Papa), Dora Nst (Mama), Wira Febriansyah Tanjung ( Abang) selama ini telah memberikan dukungan baik materi dan juga do’a yang sangat bemanfaat bagi penulis. Spesial terima kasih buat Abrar Nazira yang juga telah memberikan support dan mendukung penulis dalam menyelesaikan skripsi ini.

Juga kepada sohib-sohibku yang berada di Padepokan FMIPA tercinta yaitu Uci (adkku cynk),Verdi_Fauzi_Maulina (cece)_ayu (iyou kawai)_imel yang bocor abiz, Desni, Arlia, Dini, Debby, B’Ghaly, Rossy yang baik hati, Ade. M_Ihsan_Ega_Erika_hendrik(dogok)_k’valen mereka makhluk Tuhan yang super gokil, dan seluruh teman2 yang namanya tidak dapat disebutkan di Skripsi saya yang bagus ini saya ucapkan terima kasih, Semoga Allah SWT membalas segala budi baik yang sudah kalian berikan. Amin……..

Medan, 18 Juli 2010

Penulis,

(5)

ABSTRAK

(6)

ABSTRACT

(7)

DAFTAR ISI

Halaman

PERSETUJUAN i

PERNYATAAN ii

PENGHARGAAN iii

ABSTRAK iv

ABSTRACT v

DAFTAR ISI vi

DAFTAR GAMBAR viii

Bab 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 3

1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 4

1.5 Kontribusi Penelitian 4

1.6 Metode Penelitian 4

1.7 Sistematika Penulisan 5

Bab 2 LANDASAN TEORI 6

2.1 Algoritma Genetika 6

2.1.1 Teknik Encoding 7

2.1.2 Proses Seleksi 8

2.1.3 Proses Rekombinasi 8

2.1.4 Proses Mutasi 10

2.1.5 Kawin Silang 12

2.2 Mekanisme Algoritma Genetika 13

2.3 Travelling Salesman Problem (TSP) 14

Bab 3 PEMBAHASAN 17 3.1 Algoritma Genetika 17

3.2 Rancangan Sistem 26

(8)

Bab 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 31

4.1 Implementasi 31

4.1.1 Tampilan Menu Utama 31

4.1.2 Tampilan TSP 32

4.1.3 Tampilan About 32

4.1.4 Tampilan Help 33

4.2 Pengujian Sistem 34

Bab 5 KESIMPULAN DAN SARAN 38

5.1 Kesimpulan 38

5.2 Saran 39

Daftar Pustaka 40

(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Mekanisme Algoritma Genetika 13

Gambar 3.1 Graf Jarak Antar Kota 17

Gambar 3.2 Flowchart Rancangan Sistem 27

Gambar 3.3 Rancangan Menu Utama 28

Gambar 3.4 Rancangan Sistem TSP 29

Gambar 3.5 Rancangan Help 30

Gambar 3.6 Rancangan About 30

Gambar 4.1 Tampilan Menu Utama 31

Gambar 4.2 Tampilan TSP 32

Gambar 4.3 Tampilan About 33

Gambar 4.4 Tampilan Help 33

(10)

ABSTRAK

(11)

ABSTRACT

(12)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Traveling Salesman Problem (TSP) merupakan sebuah permasalahan optimasi yang dapat diterapkan pada berbagai kegiatan seperti routing (Samuel, dkk 2005). Masalah optimasi TSP terkenal dan telah menjadi standar untuk mencoba algoritma yang komputational. Pokok permasalahan dari TSP adalah seorang salesman harus mengunjungi sejumlah kota yang diketahui jaraknya satu dengan yang lainnya. Semua kota yang ada harus dikunjungi oleh salesman tersebut dan kota tersebut hanya boleh dikunjungi tepat satu kali. Permasalahannya adalah bagaimana salesman

tersebut dapat mengatur rute perjalanannya sehingga jarak yang ditempuhnya merupakan rute yang optimum yaitu jarak minimum terbaik. (Samuel, dkk 2005).

Banyak metode yang dapat dipakai untuk menyelesaikan TSP yaitu Hill Climbing Method, Ant Colony System dan Dynamic Programming. (Samuel, dkk 2005). Metode lain yang dapat dipakai untuk menyelesaikan TSP adalah algoritma genetik. Algoritma genetik merupakan sebuah algoritma yang meniru cara kerja proses genetika pada makhluk hidup, dimana terdapat proses seleksi, rekombinasi dan mutasi untuk mendapatkan kromosom terbaik pada suatu generasi. Pada TSP ini digunakan metode order crossover sebagai teknik rekombinasi dan metode insertion mutation sebagai teknik mutasi yang digunakan pada algoritma genetik. (Samuel, dkk 2005).

Untuk mengetahui bagaimana penerapan algoritma genetika dalam menyelesaikan traveling salesman problem, dibuatkan sebuah program simulasi sederhana dengan menggunakan piranti lunak Microsoft Visual Basic 6.0. Dalam program simulasi tersebut, traveling salesman problem yang akan digunakan adalah

(13)

Algoritma genetika adalah sebuah teknik optimasi yang berdasarkan pada proses evolusi alam. Kromosom yang terbaik akan bertahan hidup sehingga generasi berikutnya akan lebih baik karena kromosom pada generasi tersebut diturunkan dari orang tua yang baik pula. Konsep yang sama dikembangkan untuk penyelesaian masalah dengan cara mencari himpunan solusi terbaik yang bertahan hidup dan melakukan rekombinasi solusi yang kurang baik untuk mendapatkan kromosom lain yang lebih baik pada generasi berikutnya.

Proses algoritma genetika terdiri dari beberapa langkah, yaitu pengkodean (encoding), seleksi (selection), persilangan (crossover), mutasi (mutation) dan

decoding. Pertama-tama, proses encoding adalah suatu proses kodifikasi atas solusi dari permasalahannya. Hasil encoding adalah berbentuk string yang merupakan representasi dari suatu kromosom. Proses selection menentukan kromosom mana yang tetap tinggal pada generasi berikutnya. Proses crossover akan menghasilkan kromosom baru yang merupakan pengganti dari kromosom yang hilang sehinga total kromosom pada satu generasi berjumlah tetap. Proses mutasi memungkinkan terjadinya kromosom baru secara unpredictable. Proses terakhir adalah decoding

yaitu mengambil makna dari hasil kromosom terbaik untuk menjawab permasalahannya. (Samuel, dkk 2005).

Algoritma Genetika sebagai cabang dari Algoritma Evolusi didasarkan pada proses genetik yang ada dalam makhluk hidup; yaitu perkembangan generasi dalam sebuah populasi yang alami, secara lambat laun mengikuti prinsip seleksi alam atau "siapa yang kuat, dia yang bertahan (survive)". Peletak prinsip dasar sekaligus pencipta algoritma genetika adalah John Holland. (Fariza, dkk 2006). Algoritma genetika menggunakan analogi secara langsung dari kebiasaan yang alami yaitu seleksi alam. Algoritma ini bekerja dengan sebuah populasi yang terdiri dari individu-individu, yang masing-masing individu mempresentasikan sebuah solusi yang mungkin bagi persoalan yang ada. Dalam kaitan ini, individu dilambangkan dengan sebuah nilai fitness yang akan digunakan untuk mencari solusi terbaik dari persoalan yang ada. (Fariza, dkk 2006).

(14)

diselidiki. Dengan cara ini, jumlah waktu komputasi yang diperlukan meningkat seiring dengan bertambahnya ukuran dari persoalan, yaitu jumlah kota. (Fariza, dkk 2006).

Teknologi AI juga mampu mengakomodasi adanya ketidakpastian dan ketidak tepatan dari data input. Dengan didasari pada teori himpunan, maka pada tahun 1965 muncul logika Fuzzy. Kemudian pada tahun 1975 John Holland mengatakan bahwa setiap problem berbentuk adaptasi (alami maupun buatan) secara umum dapat diformulasikan dalam terminologi genetika. Algoritma genetika ini merupakan simulasi proses evolusi Darwin dan operasi genetika atas kromosom. (Kusumadewi, 2003).

Berdasarkan hal yang telah diuraikan diatas maka tugas akhir ini diberi judul “Kajian Algoritma Genetika Pada Travelling Salesman Problem”.

1.2 Perumusan Masalah

Permasalahan yang dibahas adalah algoritma genetika untuk menyelesaikan

Travelling Salesman Problem yaitu mencari rute dengan jarak terpendek dengan hasil yang akurat dan menghasilkan rute terbaik yang optimal dan mengkaji hubungan algoritma genetika dengan TSP dalam menentukan rute dengan jarak terpendek yang optimal.

1.3Batasan Masalah

Agar pembahasan tidak menyimpang, maka perlu dibuat suatu batasan masalah sebagai berikut :

1. Masalah yang dibahas adalah masalah TSP (travelling salesman problem). 2. Hanya menentukan rute yang optimal berdasarkan jarak (single objective). 3. Algoritma yang digunakan adalah genetika.

(15)

1.4Tujuan Penelitian

Adapun tujuan dari tugas akhir ini adalah untuk menentukan rute terpendek yang optimal bagi seorang salesman dalam mengunjungi kota-kota dengan menggunakan algoritma genetika.

1.5Kontribusi Penelitian

Dengan adanya penelitian ini dapat menambah wawasan dan pemahaman kepada penulis mengenai algoritma genetika dalam menyelesaikan travelling salesman problem (TSP).

1.6 Metode Penelitian

Metode yang digunakan pada penelitian ini adalah melakukan studi literatur dengan cara mengumpulkan data-data mengenai teori-teori travelling salesman problem

(TSP) dan algoritma genetika.

Langkah-langkah yang dilakukan dalam penelitian ini adalah:

a. Menjelaskan tentang travelling salesman problem dan algoritma genetika. b. Menjelaskan penggunaan dan pengembangan algoritma genetika dalam

menentukan jalur terpendek dari beberapa kota pada masalah travelling salesman problem dengan terlebih dahulu menentukan jaraknya.

c. Mengerjakan secara bertahap dengan algoritma genetika dimulai dari pengkodean kromosom, menginisialisasi populasinya, menentukan nilai fitness, melakukan proses seleksi, perkawinan silang dan mutasi.

(16)

1.7 Sistematika Penulisan

Penulisan tugas akhir ini akan mengikuti sistematika sebagai berikut: BAB 1 : PENDAHULUAN

Bab ini menjelaskan tentang latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, kontribusi penelitian, metodologi penelitian yang digunakan dalam penelitian, serta sistematika dalam penulisan tugas akhir ini.

BAB 2 : LANDASAN TEORI

Bab ini menjelaskan mengenai teori tentang algoritma genetika, mekanisme algoritma genetika dan persoalan travelling salesman problem.

BAB 3 : ANALISA DAN PERANCANGAN

Bab ini menguraikan tentang analisis rancangan sistem pencarian jarak terdekat pada permasalahan travelling salesman problem dengan menggunakan algoritma genetika serta perancangan antar muka pemakai (user interface).

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Berisi tentang implementasi aplikasi yang sudah jadi serta pengujian sistem.

BAB 5 : KESIMPULAN DAN SARAN

(17)

BAB 2

LANDASAN TEORI

2.1 Algoritma Genetika

Algoritma genetika merupakan metode pencarian yang disesuaikan dengan proses genetika dari organisme-organisme biologi yang berdasarkan pada teori evolusi Charles Darwin. (Kusumadewi, 2003). Algoritma genetika pertama kali ditemukan oleh John Holland, itu dapat dilihat dalam bukunya yang berjudul Adaption in Natural and Artificial Systems pada tahun 1960-an dan kemudian dikembangkan bersama murid dan rekan kerjanya di Universitas Michigan pada tahun 1960-an sampai 1970-an. Tujuan Holland mengembangkan Algoritma Genetika saat itu bukan untuk mendesain suatu algoritma yang dapat memecahkan suatu masalah, namun lebih mengarah ke studi mengenai fenomena adaptasi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer. (Fariza, dkk 2006).

Algoritma Genetika yang dibuat Holland merupakan sebuah metode untuk memisahkan satu populasi kromosom (terdiri dari bit-bit 1 dan 0) ke populasi baru dengan menggunakan “seleksi alam” dan operator genetik seperti crossover,

mutation, invertion. Crossover menukar bagian kecil dari dua kromosom, mutation

mengganti secara acak nilai gen di beberapa lokasi pada kromosom, invertion

membalikkan urutan beberapa gen yang berurutan dalam kromosom. Dasar teori inilah yang menjadi dasar kebanyakan program yang menggunakan algoritma genetika pada saat ini. (Fariza, dkk 2006).

Hal-hal yang harus dilakukan dalam menggunakan algoritma genetika adalah:

1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi (penyelesaian) yang mungkin dari permasalahan yang diangkat.

2. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah individu atau baik-tidaknya solusi yang didapatkan.

(18)

4. Menentukan proses seleksi yang akan digunakan. 5. Menentukan proses perkawinan silang (cross-over). 6. Mutasi gen yang akan digunakan.

2.1.1 Teknik Encoding

Proses encoding adalah salah satu proses yang sulit dalam algoritma genetika. Hal ini disebabkan karena proses encoding untuk setiap permasalahan berbeda karena tidak semua teknik encoding cocok untuk setiap permasalahan. Proses encoding

menghasilkan string yang kemudian disebut kromosom. String terdiri dari sekumpulan bit yang dikenal sebagai gen. Jadi satu kromosom terdiri dari sejumlah gen.

Ada bermacam-macam teknik encoding yang dapat dilakukan dalam algoritma genetika. Beberapa teknik encoding itu antara lain adalah binary encoding,

permutation encoding, value encoding serta tree encoding. Teknik encoding yang digunakan pada Traveling Salesman Problem adalah permutation encoding. Selain digunakan pada Traveling Salesman Problem, teknik ini juga dapat digunakan pada

Task Ordering Problem. Pada permutation encoding, kromosom-kromosom adalah kumpulan angka yang mewakili posisi dalam sebuah rangkaian. Dalam permutation

encoding, setiap kromosom adalah sebuah string dari nomor-nomor seperti dibawah ini.

Kromosom (Rute Kota) A B C D E F G H I Gen (Jarak) 1 5 3 2 6 4 7 9 8

(19)

2.1.2 Proses Seleksi

Proses seleksi adalah proses yang memegang peranan penting dalam algoritma genetika. Proses seleksi ini digunakan agar hanya kromosom-kromosom yang berkualitas yang dapat melanjutkan peranannya dalam proses algoritma genetika berikutnya. Ada bermacam-macam teknik untuk melakukan proses seleksi pada suatu permasalahan. Teknik seleksi yang akan digunakan tergantung pada permasalahan yang akan diselesaikan. Ada bermacam-macam teknik seleksi, diantaranya adalah Roulette Wheel Selection, Rank Base Selection, dan Steady State Selection.

Proses penseleksian ini menggunakan teknik peringkat atau Rank Base Selection. Pada proses penseleksian digunakan suatu parameter yang disebut kesesuaian atau fitness. Fitness digunakan untuk menentukan seberapa baik kromosom akan bertahan hidup. Makin tinggi nilai 0 ≤ fitness≤ 1, suatu kromosom maka makin baik kromosom itu akan bertahan hidup. Nilai fitness tertinggi merepresentasikan jawab terbaik atas persoalan itu sendiri. Penentuan berapa besar nilai fitness suatu kromosom berdasarkan fungsi fitness yang didefinisikan tersendiri. Pada Rank Base Selection, hanya kromosom yang mempunyai nilai fitness yang tinggilah yang dapat bertahan pada generasi berikutnya, sebaliknya yang mempunyai nilai fitness rendah akan hilang pada generasi berikutnya. Untuk mempertahankan jumlah kromosom tetap pada satu generasi maka perlu dibangkitkan kromosom baru yang merupakan hasil penyilangan dari kromosom yang hidup. Untuk itu dilakukan proses rekombinasi. (Samuel, dkk 2005).

2.1.3 Proses Rekombinasi

(20)

kromosom akan mengalami crossover (Samuel, dkk 2005).

Teknik rekombinasi yang digunakan adalah teknik order crossover. Order crossover (OX) diperkenalkan oleh Davis. (Samuel, dkk 2005). Teknik ini diawali dengan membangkitkan dua bilangan acak. Kemudian gen yang berada diantara kedua bilangan acak akan disalin ke offspring dengan posisi yang sama. Langkah berikutnya untuk mendapatkan offspring pertama adalah mengurutkan gen yang berada pada parent kedua dengan urutan gen yang berada pada posisi setelah bilangan acak kedua diikuti dengan gen yang berada pada posisi sebelum bilangan acak pertama dan diakhiri dengan gen yang berada pada posisi diantara kedua bilangan acak. Kemudian gen yang telah diurutkan tersebut dibandingkan dengan

offspring pertama. Apabila gen tersebut ada pada offspring kedua maka abaikan gen tersebut dari urutan itu. Kemudian masukkan urutan yang baru saja didapat pada

offspring dengan cara memasukkan urutan gen pada posisi setelah bilangan acak kedua terlebih dahulu dan sisanya dimasukkan pada posisi sebelum bilangan acak pertama. Begitu juga untuk menghasikan offspring kedua. Contoh order crossover

adalah sebagai berikut:

p1 = (1 2 3 | 4 5 6 7 |8 9) p2 = (4 5 2 | 1 8 7 6 |9 3) => copy segmen yang dipilih o1 = (x x x | 4 5 6 7 |x x) o2 = (x x x | 1 8 7 6 |x x) =>

p2 : 9-3-4-5-2-1-8-7-6

pindahkan4, 5, 6, 7 dan letakkan dio1 : 9-3-2-1-8 o1 = (x x x | 4 5 6 7 |x x) = (2 1 8 | 4 5 6 7| 9 3) dengan jalan yang sama buat o2 sehingga o2 = (3 4 5 | 1 8 7 6 |9 2)

Keterangan: p1 = parent 1 p2 = parent 2

(21)

2.1.4 Proses Mutasi

Proses mutasi ini dilakukan setelah proses rekombinasi dengan cara memilih kromosom yang akan dimutasi secara acak, dan kemudian menentukan titik mutasi pada kromosom tersebut secara acak pula. Banyaknya kromosom yang akan mengalami mutasi dihitung berdasarkan probabilitas mutasi yang telah ditentukan terlebih dahulu. Apabila probabilitas mutasi adalah 100% maka semua kromosom yang ada pada populasi tersebut akan mengalami mutasi. Sebaliknya, jika probabilitas mutasi yang digunakan adalah 0% maka tidak ada kromosom yang mengalami mutasi pada populasi tersebut.

Ada bermacam-macam teknik mutasi yang dapat digunakan untuk menyelesaikan suatu masalah dengan algoritma genetika. Seperti pada teknik rekombinasi, teknik mutasi juga dirancang untuk digunakan pada suatu masalah yang spesifik sehingga tidak setiap teknik mutasi dapat diterapkan pada suatu masalah yang akan diselesaikan. Selain itu, teknik mutasi yang digunakan juga harus sesuai dengan teknik encoding yang digunakan untuk menyelesaikan permasalahan tersebut. Beberapa teknik mutasi yang dapat digunakan dalam penyelesaian

Traveling Salesman Problem adalah inversion mutation, insertion mutation, dan

reciprocal mutation. (Samuel, dkk 2005).

Teknik mutasi yang digunakan dalam makalah adalah teknik insertion mutation. Teknik ini diawali dengan memilih dua bilangan acak kemudian gen yang berada pada posisi bilangan acak pertama ditukar dengan gen yang berada pada bilangan acak kedua. (Samuel, dkk 2005).

Beberapa teknik mutasi adalah:

a. Bit inversion – pemilihan bit-bit yang di-inversi

11001001 => 10001001

(22)

Penambahan sebuah nomor kecil untuk pemilihan angka adalah dengan penambahan atau pengambilan sebuah nomor yang terkecil.

(1.29 5.68 2.86 4.11 5.55) => (1.29 5.68 2.73 4.22 5.55).

Algoritma genetika memiliki beberapa karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau optimasi yang lainnya Adapun karakteristik dari algoritma genetika adalah:

1. Bekerja dengan pengkodean dari himpunan solusi permasalahan berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri.

2. Melakukan pencarian pada sebuah populasi dari sejumlah individu-individu yang merupakan solusi pemasalahan bukan hanya dari sebuah individu.

3. Merupakan informasi fungsi objektif (fitness) sebagai cara untuk mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi.

4. Merupakan aturan peluang dan bukan aturan deterministik. Kelebihan algoritma genetika adalah sebagai berikut:

a. Algoritma genetika tidak terlalu banyak memerlukan persyaratan matematika dalam penyelesaian proses optimasi dan dapat diaplikasikan pada beberapa jenis fungsi objektif dengan beberapa fungsi pembatas baik berbentuk liner maupun non liner.

b. Operasi evolusi dari algoritma genetika sangat efektif untuk mengobservasi posisi global secara acak.

c. Algoritma genetika mempunyai fleksibilitas untuk diimplementasikan secara efisien pada problematika tertentu.

Dalam proses pengerjaan Algoritma Genetika menggunakan 5 tahapan sebagai berikut:

(23)

2.1.5 Kawin Silang

Single point crossover – pemilihan satu titik crossover, string binary dari awal chromosome untuk titik crossover adalah di-copy dari orang tua pertama dan sisanya di-copy dari orang tua kedua.

11001011 + 11011111 = 11001111

Two point crossover – pemilihan dua titik crossover, string binary dari awal dari

chromosome untuk titik pertama crossover di-copy dari orang tua pertama, bagian dari the first untuk titik crossover yang kedua di-copy dari orang tua kedua dan sisanya di-copy dari orang tua pertama.

11001011 + 11011111 = 11011111

Uniform crossover – bit-bit secara acak di-copy dari orang tua pertama atau kedua.

11001011 + 11011101 =

11011111

Arithmetic crossover - beberapa operasi arithmetic adalah ditampilkan untuk membuat offspring yang baru.

(24)

Hal yang dapat dilihat dari perpindahan bilangan biner di atas adalah kawin silang (crossover) dapat dilakukan dengan empat cara yaitu single point crossover, two point crossover, uniform crossover dan arithmetic crossover. Dari keempat cara tersebut didapat bahwa arithmetic crossover merupakan cara yang lebih cepat untuk menyelesaikan perkawinan silang (crossover).

2.2 Meknisme Algoritma Genetika

Algoritma genetika dimulai dengan pembentukan sejumlah solusi yang dilakukan secara acak. Sebuah solusi yang dibangkitkan dalam algoritma genetika disebut sebagai kromosom, sedangkan kumpulan kromosom tersebut disebut sebagai populasi. Sebuah kromosom dibentuk dari komponen penyusun disebut dengan gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan.

Secara umum blok diagram dari mekanisme kerja algoritma genetika adalah seperti pada gambar 2.1.

Gambar 2.1 Meknisme Algoritma Genetika

Bangkitkan populasi awal

Evaluasi fungsi tujuan

Kriteria optimasi tercapai

Individu-individu terbaik

Selesai Mulai

Seleksi

Persilangan

Mutasi Bangkitkan

Populasi awal

Ya

(25)

2.3 Travelling Salesman Problem (TSP)

Masalah optimasi TSP terkenal dan telah menjadi standar untuk mencoba algoritma yang komputational. Pokok permasalahan dari TSP adalah seorang salesman harus mengunjungi sejumlah kota yang diketahui jaraknya satu dengan yang lainnya. Semua kota yang ada harus dikunjungi oleh salesman tersebut dengan memilih rute yang terpendek dan kota tersebut hanya boleh dikunjungi tepat satu kali sehingga jarak yang ditempuhnya merupakan jarak minimum.

Algoritma genetik merupakan sebuah algoritma yang meniru cara kerja proses genetika pada makhluk hidup, dimana terdapat proses seleksi, rekombinasi dan mutasi untuk mendapatkan kromosom terbaik pada suatu generasi.

Pada tulisan ini membahas bagaimana algoritma genetik menyelesaikan TSP dengan menggunakan metode order crossover sebagai teknik rekombinasi dan metode insertion mutation sebagai teknik mutasi yang digunakan pada algoritma genetik. Untuk mengetahui bagaimana penerapan algoritma genetika dalam menyelesaikan traveling salesman problem, dibuatkan sebuah program simulasi sederhana dengan menggunakan piranti lunak Microsoft Visual Basic 6.0. Dalam program simulasi tersebut, traveling salesman problem yang akan digunakan adalah

Symmetric Traveling Salesman Problem dimana jarak kota A ke kota B adalah sama dengan jarak kota B ke kota A.

Masalah penilaian metode yang terbaik sulit untuk dilakukan karena metode-metode yang sangat berkaitan erat satu sama lain tidak dapat dinilai hanya melalui perbandingan yang sederhana. Sepertinya perlu dilakukan pertimbangan ulang untuk menentukan kriteria perbandingan antar metode tersebut.

(26)

Agar ide perbandingan metode-metode di atas dapat diaplikasikan maka dapat menganalisis metode penyelesaian yang diberikan untuk dapat memberikan jaminan bahwa setiap n akan memakan waktu sejumlah f(n) untuk berapapun n-kota TSP, dimana f(n) ialah sebuah fungsi yang menghasilkan waktu yang dibutuhkan untuk menyelesaikan persoalan TSP n-kota. Sekarang untuk membandingkan dua buah metode penyelesaian, membandingkan fungsi mana yang menghasilkan hasil yang terbaik yang diberikan di antara dua buah solusi penyelesaian tersebut. Hal ini tentu saja menghasilkan hasil perhitungan yang salah karena sebuah metode penyelesaian yang benar-benar baik namun dianalisis dengan buruk akan terlihat buruk jika dibandingkan dengan metode penyelesaian lain yang dianalisis dengan baik. Pada beberapa persoalan komputasi, bagaimanapun juga studi mengenai algoritma dan fungsi telah memberikan hasil yang baik yang penting bagi pengembangan untuk penyelesaian persoalan praktis. Hal ini telah menjadi subjek studi utama di dalam bidang ilmu komputer.

Dalam metode penyelesaian persoalan TSP, mudah untuk mengembangkan metode penyelesaian yang memiliki fungsi yang memiliki f(n) = 1)! = 1) x (n-2) x (n-3) … x 3 x 2 x 1 dan jumlah jalur perjalanan antar kota yang mungkin terjadi ialah (n-1)!/2. Hasil yang lebih telah dikembangkan pada tahun 1962 oleh Michael Held dan Richard Karp, yang menemukan algoritma yang menghasilkan f(n) yang memiliki proporsi n22n, yaitu n x n x 2 x 2 x 2 x … x 2, dimana ada sebanyak n perkalian 2. Untuk setiap n yang bernilai besar, fungsi f(n) Held-Karp akan selalu lebih kecil jika dibandingkan dengan (n-1). Bagi setiap orang yang tertarik untuk menyelesaikan persoalan TSP yang besar, ada sebuah kabar buruk bahwa selama 45 tahun sejak Held dan Karp menemukan fungsi f(n) = n22n ternyata tidak ditemukan fungsi f(n) yang lebih baik. Hal ini tentu saja mengecewakan karena dengan n = 30 fungsi f(n) Held-Karp menghasilkan nilai yang sangat besar. Dan untuk n = 100, adalah suatu hal yang mustahil untuk menyelesaikan persoalan ini dengan kemampuan yang dimiliki komputer yang ada saat ini.

(27)

itu, n x n x n x … x n dimana n muncul sebanyak c kali. Diskusi mengenai teknis permasalahan ini dapat dilihat pada tulisan Stephen Cook’s dan Institut Matematika Clay menawarkan hadiah sebesar satu juta US dolar bagi siapa pun yang dapat menemukan metode yang lebih baik.

(28)

BAB 3

PEMBAHASAN

3.1 Algoritma Genetika

Pada algoritma genetika proses encoding menghasilkan string yang kemudian disebut kromosom yang terdiri dari sekumpulan bit-bit. Bit-bit ini dikenal sebagai gen penyusun sebuah kromosom. Jadi satu kromosom terdiri dari sejumlah gen-gen. Teknik encoding yang digunakan pada Traveling Salesman Problem (TSP) adalah

permutation encoding.

Pada TSP kromosom mewakili urutan kota yang dikunjungi salesman. Jadi apabila satu kromosom berbentuk sebagai berikut P1 = (X1,X2,X3,..,Xn) berarti

salesmen bergerak dari kota bernomor X1 ke X2 dan seterusnya hingga ke kota ke

Xn.

Berikut ini contoh persoalan TSP terdapat 5 (lima) kota yang akan dilalui oleh seorang pedangang keliling, misalnya kota A,B,C,D,E. Perjalanan dimulai dari kota A dan berakhir di kota A. Jarak antar kota diperlihatkan pada graf gambar 3.1 di bawah ini:

(29)

Kriteria berhenti ditentukan terlebih dahulu yaitu apabila setelah dalam beberapa generasi berturut-turut diperoleh nilai fitness yang terendah tidah berubah, maka pemilihan nilai fitness yang terendah sebagai syarat karena nilai tersebut yang merepresentasikan jarak terdekat yang dicari pada persoalan TSP ini.

Pada gambar 3.1 terdapat 4 kota yang akan menjadi gen dalam kromosom yaitu kota-kota selain kota asal (A). Proses yang dilakukan adalah:

a. Poses Inisialisasi

Proses Inisialisasi dengan menggunakan 6 buah populasi dalam satu generasi yaitu:

Kromosom[1] = [B D E C] Kromosom[2] = [D B E C] Kromosom[3] = [C B D E] Kromosom[4] = [E B C D] Kromosom[5] = [E C B D] Kromosom[6] = [C D E B]

b. Evaluasi Kromosom

Pada proses Evaluasi kromosom dihitung nilai fitness dari tiap kromosom yang telah dibangkitkan dengan hasil sebagai berikut:

Kromosom[1]: Fitness[1] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23 Kromosom[2]: Fitness[2] = AD+DB+BE+EC+CA = 9 + 2 + 8 + 3 + 5 = 27 Kromosom[3]: Fitness[3] = AC+CB+BD+DE+EA = 5 + 7 + 2 + 6 + 9 = 29 Kromosom[4]: Fitness[4] = AE+EB+BC+CD+DA = 9 + 8 + 7 + 4 + 9 = 37 Kromosom[5]: Fitness[5] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30 Kromosom[6]: Fitness[6] = AC+CD+DE+EB+BA = 5 + 4 + 6 + 8 + 7 = 30

c. Seleksi Kromosom

(30)

Maka diperoleh nilai inverse setiap Kromosom yaitu: a. Kromosom [1] yaitu Q[1] = 1/23 = 0,043 b. Kromosom [2] yaitu Q[2] = 1/27 = 0,037 c. Kromosom [3] yaitu Q[3] = 1/29 = 0,034 d. Kromosom [4] yaitu Q[4] = 1/37 = 0,027 e. Kromosom [5] yaitu Q[5] = 1/30 = 0,033 f. Kromosom [6] yaitu Q[6] = 1/30 = 0,033

Total Nilai Inverse Kromosom adalah 0,043 + 0,037 + 0,034 + 0,027 + 0,033 + 0,033 = 0,207. Untuk mencari probabilitas kita menggunakan rumus berikut :

P[i] = Q[i]/Total Inverse ... (2)

a. Kromosom [1] yaitu P[1] = 0,043/0,207 = 0,208 b. Kromosom [2] yaitu P[2] = 0,037/0,207 = 0,179 c. Kromosom [3] yaitu P[3] = 0,034/0,207 = 0,164 d. Kromosom [4] yaitu P[4] = 0,027/0,207 = 0,130 e. Kromosom [5] yaitu P[5] = 0,033/0,207 = 0,159 f. Kromosom [6] yaitu P[6] = 0,033/0,207 = 0,159

Dari probabilitas di atas, dapat dilihat bahwa kromosom ke-1 mempunyai nilai

fitness yang paling kecil, jadi mempunyai probabilitas lebih besar untuk terpilih pada generasi selanjutnya dari pada kromoson lain.

Untuk proses seleksi menggunakan roulete-wheel (pemilhan secara acak), untuk itu terlebih dahulu mencari nilai kumulatif (C) dari probabilitasnya.

Kromosom [1] adalah C[1] = 0,208

(31)

Jadi Nilai Komulatif Probabiliti Kromosom (C) adalah 0,999.

Proses roulete-wheel adalah untuk membangkitkan nilai acak (R) antara 0-1. Jika Nilai Acak R untuk kromosom < Nilai Komulatif Probabiliti Kromosom (C) maka kromosom ke-k sebagai induk (R[k]<C[k], selain itu pilih kromosom ke-k sebagai induk dengan syarat C[k-1] < R[k] < C[k]. Lakukan pemutaran roulete-wheel

sebanyak jumlah kromosom yaitu 6 kali untuk membangkitkan bilangan acak R. Sebagai contoh nilai acak R yang diperoleh adalah:

Nilai Acak Kromosom [1] adalah R[1] = 0,314 Nilai Acak Kromosom [2] adalah R[2] = 0,111 Nilai Acak Kromosom [3] adalah R[3] = 0,342 Nilai Acak Kromosom [4] adalah R[4] = 0,743 Nilai Acak Kromosom [5] adalah R[5] = 0,521 Nilai Acak Kromosom [6] adalah R[6] = 0,411

Dengan menggunakan urutan dari nilai acak setiap kromosom, dapat diperoleh populasi baru yang terbentuk yaitu mulai dari urutan yang mempunyai nilai acak terkecil sampai terbesar:

Kromosom [1] = Nilai Acak Kromosom [2] = [D B E C] Kromosom [2] = Nilai Acak Kromosom [1] = [B D E C] Kromosom [3] = Nilai Acak Kromosom [3] = [C B D E] Kromosom [4] = Nilai Acak Kromosom [6] = [C D E B] Kromosom [5] = Nilai Acak Kromosom [5] = [E C B D] Kromosom [6] = Nilai Acak Kromosom [4] = [E B C D] d. Crossover (pindah silang)

Pindah silang pada TSP dapat diimplementasikan dengan skema order crossover. Pada skema ini, satu bagian kromosom dipertukarkan dengan tetap menjaga urutan kota yang bukan bagian dari kromosom tersebut. Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang di-crossover

dipengaruhi oleh parameter crossover probability (ρc). Misal kita tentukan ρc = 25%, maka diharapkan dalam 1 generasi ada 50% (3 kromosom) dari populasi mengalami

(32)

Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi yaitu 6 kali. Sebagai contoh nilai acak (R) yang diperoleh adalah:

Untuk Kromosom [1] yaitu: R[1] = 0,451 Untuk Kromosom [2] yaitu: R[2] = 0,211 Untuk Kromosom [3] yaitu: R[3] = 0,222 Untuk Kromosom [4] yaitu: R[4] = 0,877 Untuk Kromosom [5] yaitu: R[5] = 0,771 Untuk Kromosom [6] yaitu: R[6] = 0,131

Kromosom ke-k yang dipilih sebagai induk jika R[k] < ρc. Maka yang akan dijadikan induk adalah Kromosom[2], Kromosom[3] dan Kromosom[6]. Setelah melakukan pemilihan induk, proses selanjutnya adalah menentukan posisi crossover. Hal tersebut dilakukan dengan membangkitkan bilangan acak antara 1 sampai dengan panjang Kromosom-1. Dalam kasus TSP ini bilangan acaknya adalah antara 1-3 karena ada 3 kromosom sebagai induk. Misal diperoleh bilangan acaknya 1, maka gen yang ke-1 pada kromosom induk pertama diambil kemudian ditukar dengan gen pada kromosom induk kedua yang belum ada pada induk pertama dengan tetap memperhatikan urutannya. Bilangan acak untuk 3 kromosom induk yang akan di-crossover adalah:

C[2] = 2 C[3] = 1 C[6] = 2 Proses crossover :

Kromosom[2] = Kromosom[2] >< Kromosom[3] = [B D E C] >< [C B D E]

= [B D C E]

Kromosom[3] = Kromosom[3] >< Kromosom[6] = [C B D E] >< [C D E B]

= [C D E B]

Kromosom[6] = Kromosom[6] >< Kromosom[2] = [C D E B] >< [B D E C]

(33)

Populasi sebelum di-crossover :

Kromosom [1] = Kromosom [2] = [D B E C] Kromosom [2] = Kromosom [1] = [B D E C] * Kromosom [3] = Kromosom [3] = [C B D E] * Kromosom [4] = Kromosom [6] = [C D E B] Kromosom [5] = Kromosom [5] = [E C B D] Kromosom [6] = Kromosom [4] = [E B C D] *

Keterangan * adalah kromosom yang akan di-crossover.

Populasi setelah di-crossover : Kromosom[1] = [D B E C]

8 3 2

Kromosom[2] = [B D C E]

2 3

4

Kromosom[3] = [C D E B]

Kromosom[4] = [E C B D]

2

3 7

E B

D C

E B

D C

E B

D C

E B

(34)

Kromosom[5] = [E B C D] 8

7 4 Kromosom[6] = [C D B E]

8 2

4 e. Mutasi

Pada kasus TSP ini skema mutasi yang digunakan adalah swapping mutation

yaitu jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate (ρm). Proses mutasi dilakukan dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya. Jika gen tersebut berada di akhir kromosom, maka ditukar dengan gen yang pertama.

Pertama kita hitung dulu panjang total gen yang ada pada satu populasi: Panjang total gen = jumlah gen dalam 1 Kromosom * jumlah Kromosom

= 4 * 6 = 24

Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan membangkitkan bilangan acak antara 1 sampai panjang total gen yaitu 1-24. Misal kita tentukan ρm = 20 %.

Maka jumlah gen yang akan dimutasi adalah = 0,2 * 24 = 4,8 = 5

Jadi ada 5 posisi gen yang akan dimutasi, setelah diacak adalah posisi 3, 7, 10, 20, 24. Susunan gen pada Kromosom sebelum mutasi adalah sebagai berikut:

Kromosom[1] = [D B E C] Æ gen nomor 3 Kromosom[2] = [B D C E] Æ gen nomor 7 Kromosom[3] = [C D E B] Æ gen nomor 10 Kromosom[4] = [E C B D]

Kromosom[5] = [E B C D] Æ gen nomor 20 Kromosom[6] = [C D B E] Æ gen nomor 24

E B

D

C

E B

(35)

Susunan gen pada Kromosom sesudah mutasi adalah sebagai berikut: Kromosom[1] = [D B C E]

8 3 2

Kromosom[2] = [B D E C] 3 6 2

Kromosom[3] = [C E D B] 3

6 2

Kromosom[4] = [E C B D] 2 3 7

Kromosom[5] = [D B C E]

2

3 7

Kromosom[6] = [E D B C]

6 2 7

Sampai disini, proses algoritma genetik untuk 1 generasi telah selesai. Maka nilai

E B

D C

E B

D C

E B

D C

E B

D C

E B

D C

E B

(36)

fitness setelah 1 generasi adalah: Fitness[1] = AD+DB+BC+CE+EA

= 9 + 2 + 7 + 3 + 9 = 30 Fitness[2] = AB+BD+DE+EC+CA

= 7 + 2 + 6 + 3 + 5 = 23 Fitness[3] = AC+CE+ED+DB+BA

= 5 + 3 + 6 + 2 + 7 = 23 Fitness[4] = AE+EC+CB+BD+DA

= 9 + 3 + 7 + 2 + 9 = 30 Fitness[5] = AD+DB+BC+CE+EA

= 9 + 2 + 7 + 3 + 9 = 30 Fitness[6] = AE+ED+DB+BC+CA

= 9 + 6 + 2 + 7 + 5 = 29

Sebelumnya telah ditentukan kriteria berhenti yaitu bila setelah dalam beberapa generasi berturut-turut diperoleh nilai fitness yang terendah tidak berubah. Pada 1 generasi telah terlihat bahwa terdapat nilai fitness terkecil yang tidak berubah. Apabila perhitungan dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak akan berubah. Walaupun perhitungan cukup dijabarkan hingga generasi ke-1 saja dimana solusi yang mendekati optimal telah didapatkan.

Dari proses algoritma genetika di atas maka dapat diperoleh hasil akhir yang merupakan rute dengan jarak terpendek yang optimal yaitu: A, B, D, E, C, A.

E B

D C

(37)

3.2 Rancangan Sistem

Pada sistem ini, kromosom terdiri dari sejumlah gen dimana masing-masing gen tersebut merepresentasikan setiap kota yang dilewati salesman. Jumlah gen yang ada pada suatu kromosom merupakan jumlah kota ditambah satu dimana kota terakhir yang dilalui salesman sama dengan kota awal yang dilalui salesman sehingga dapat dikatakan bahwa kromosom merupakan rute yang mungkin dilalui oleh salesman.

(38)

Mulai

Input Banyak Kota

Kriteria Optimasi Tercapai Ambil jarak antar kota

Ya

Tidak Seleksi

Simpan Jarak Kota Input Batas Generasi

Selesai

Gambar 3.2 Flow Chart Rancangan Sistem Input jumlah Individu

Input Variabel

Persilangan

Mutasi

Bangkitkan Populasi Awal

Hitung Nilai Firness

(39)

3.2.1 Perancangan Antarmuka (interface)

Perancangan antar muka adalah rancangan tampilan yang menghubungkan pengguna (user) dengan komputer dengan bantuan program. Salah satu syarat pembuatan antar muka adalah berorientasi pada kemudahan dalam penggunaannya (user friendly) serta informatif.

A. Rancangan Menu Utama

Rancangan Menu Utama merupakan tampilan yang pertama kali muncul saat program dijalankan. Pada rancangan ini terdapat menu TSP, Help, About dan Quit.

TSP berfungsi untuk menjalankan program TSP dengan algoritma genetika, Help

berfungsi untuk menampilkan informasi bantuan, About berfungsi untuk menampilkan keterangan seputar aplikasi yang dibangun dan Quit berfungsi untuk keluar dari sistem. Rancangan Menu Utama terlihat seperti pada gambar 3.3 dibawah ini.

Judul Tugas Akhir Gambar Pembukaan

Nama Penulis

Gambar 3.3 Rancangan Menu Utama

(40)

B. Rancangan TSP

Pada TSP ini, kromosom terdiri dari sejumlah gen dimana masing-masing gen tersebut merepresentasikan setiap kota yang dilewati salesman. Jumlah gen yang ada pada suatu kromosom merupakan jumlah kota ditambah satu dimana kota terakhir yang dilalui salesman sama dengan kota awal yang dilalui salesman sehingga dapat dikatakan bahwa kromosom merupakan rute yang mungkin dilalui oleh salesman. Rancangan TSP dapat dilihat pada gambar 3.4 dibawah ini.

Keterangan :

Data yang dimasukkan adalah jumlah kota, banyak individu dalam satu populasi, batas generasi, pemilihan tombol Buat Titik Kota dan melakukan proses pencarian rute dengan pemilihan tombol Cari Rute.

Gambar 3.4 Rancangan Sistem TSP

Jumlah Individu Dalam Satu Populasi

(41)

C. Rancangan Help

Rancangan Help adalah tampilan sederhana yang hanya memiliki satu tombol yaitu tombol Keluar. Rancang ini berguna untuk menampilkan informasi tentang tata cara pengoperasian aplikasi yang dijelaskan tahap demi tahap. Untuk lebih jelasnya rancangan Help dapat dilihat pada gambar 3.5 dibawah ini.

D. Rancangan About

Rancangan About ini berfungsi menampilkan informasi tentang profil penulis. Profil penulis meliputi biodata penulis serta data-data akademik. Rancangan About dapat dilihat seperti pada gambar 3.6 berikut ini.

Tata Cara Pengoperasian Sistem

Quit

Judul Tugas Akhir

Quit Gambar 3.5 Rancangan Help

Gambar 3.6 Rancangan About Profil Penulis Tugas Akhir

(42)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi

Setelah perangkat lunak Kajian Algoritma Genetika Pada Travelling Salesman Problem selesai dibangun, maka tahap selanjutnya adalah tahap uji coba tampilan. Tahap uji coba tampilan adalah tahap pengujian dengan menjalankan program

Travelling Salesman Problem yang sebagai inputan adalah jumlah kota yang akan diproses serta data variabel algoritma Genetika antara lain data jumlah individu dalam satu populasi, batas generasi danpemasukan titik kota tujuan.

4.1.1 Tampilan Menu Utama

Tampilan Menu Utama merupakan tampilan yang muncul pertama kali setelah progran dijalankan dalam mode Windows. Tampilan ini berisi judul skripsi, gambar animasi TSP sebagai latar belakang serta tampilan menu antara lain menu TSP, Help, About serta Exit untuk keluar dan kembali ke mode Windows. Tampilan Menu Utama dapat dilihat pada gambar 4.1.

(43)

4.1.2 Tampilan TSP

Tampilan TSP merupakan tampilan berguna untuk melakukan proses pencarian rute dengan algoritma genetika dengan memasukkan data jumlah kota yang dilalui salesman, jumlah individu dalam satu populasi, batas generasi serta grafik hasil. Pada form ini terdapat tampilan jumlah kromosom yang diperoleh dari pemasukan jumlah kota serta jarak. Pada tampilan ini terdapat tombol pemasukan titik kota secara otomatis. Tampilan TSP dapat dilihat pada gambar 4.2.

4.1.3 Tampilan About

Tampilan About berfungsi untuk menampilkan data-data judul dan penulis tugas akhir. Pada tampilan ini terdapat tempat untuk menampilkan judul perangkat lunak serta gambaran singkat tentang profil penulis. Tampilan About dapat dilihat pada gambar 4.3.

(44)

4.1.4 Tampilan Help

Pada Tampilan Help terdapat tempat untuk menampilkan tampilan bantuan untuk menjalankan aplikasi. Pada Tampilan Help terdapat tombol Exit untuk keluar dari tampilan . Tampilan Help dapat dilihat pada gambar 4.4.

Gambar 4.3 Tampilan About

(45)

4.2 Pengujian Sistem

Perangkat lunak yang telah dirancang memerlukan pengujian data dengan melakukan proses pencarian rute dengan jumlah kota 5, 10, 20, 50,70 dan 100 serta jumlah populasi 200 dan batas generasi adalah 1000 seperti pada gambar 4.5.

A. Pengujian Pemasukan Data dengan 5 kota.

B. Pengujian Pemasukan Data dengan 10 kota.

Pengujian pemasukan data dengan 10 kota adalah pengujian dalam melakukan proses pencarian jarak antar kota sejumlah 10 kota dengan lokasi titik kota dapat ditentukan melalui tombol. Pengujian pemasukan data dengan 10 kota dapat dilihat pada gambar 4.6.

(46)

C. Pengujian Pemasukan Data dengan 20 kota.

Pengujian pemasukan data dengan 20 kota adalah pengujian dalam melakukan proses pencarian jarak antar kota sejumlah 20 kota dengan lokasi titik kota dapat ditentukan melalui tombol. Pengujian pemasukan data dengan 20 kota dapat dilihat pada gambar 4.7.

Gambar 4.6 Pengujian Pemasukan Data 10 Kota

(47)

D. Pengujian Pemasukan Data dengan 50 kota.

Pengujian pemasukan data dengan 50 kota adalah pengujian dalam melakukan proses pencarian jarak antar kota sejumlah 50 kota dengan lokasi titik kota dapat ditentukan melalui tombol. Pengujian pemasukan data dengan 50 kota dapat dilihat pada gambar 4.8.

E. Pengujian Pemasukan Data dengan 70 kota.

Pengujian pemasukan data dengan 70 kota adalah pengujian dalam melakukan proses pencarian jarak antar kota sejumlah 70 kota dengan lokasi titik kota dapat ditentukan melalui tombol. Pengujian pemasukan data dengan 70 kota dapat dilihat pada gambar 4.9.

Gambar 4.8 Pengujian Pemasukan Data 50 Kota

(48)

F. Pengujian Pemasukan Data dengan 100 kota.

Pengujian pemasukan data dengan 100 kota adalah pengujian dalam melakukan proses pencarian jarak antar kota sejumlah 100 kota dengan lokasi titik kota dapat ditentukan melalui tombol. Pengujian pemasukan data dengan 100 kota dapat dilihat pada gambar 4.10.

(49)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Persoalan TSP dapat diselesaikan dengan menggunakan algoritma genetika, walaupun solusi TSP yang dihasilkan oleh algoritma ini belum tentu merupakan solusi paling optimal., misalnya apabila kota yang dilalui sangat banyak.

Namun algoritma genetika akan menghasilkan solusi yang lebih optimal pada setiap generasinya, hal tersebut terlihat dari nilai fitness tiap generasi.

Titik awal atau rute awal suatu perjalanan tidak harus dimulai dari kota A saja, tapi dapat juga dimulai dari kota B,C,D,dan E yang penting hasilnya didapat merupakan rute yang optimum yaitu jarak yang minimum terbaik.

Kelebihan algoritma genetika dibandingkan metode pencarian konvensional pada TSP yaitu solusi dapat diperoleh kapanpun karena solusi dihasilkan pada generasi ke berapapun.

Dalam menyelesaikan masalah TSP, Algoritma genetika tidak harus membutuhkan waktu yang lama jika banyak kota yang dilalui kurang dari 50 (lima puluh) karena tidak semua kemungkinan dicoba.

Algoritma genetika pada persoalan TSP tidak dapat menjamin sebagai algoritma yang tercepat apabila jumlah kota lebih dari 50 kota, tergantung pada kriteria berakhirnya.

(50)

5.2 Saran

Berikut ini saran-saran untuk mengembangkan perangkat lunak ini:

a. Agar dapat variabel selain jumlah kota serta jarak antar kota saja, tetapi lama waktu yang ditempuh serta biaya antar kota.

b. Agar dibuat perbandingan algoritma yang digunakan dalam persoalan TSP ini.

(51)

DAFTAR PUSTAKA

Agus J. Alam. (2000). Manajemen Database dengan Microsoft Visual Basic Versi 6.0. Elexmedia Komputindo: Jakarta.

Dewobroto, Wiryanto. (2003). Pemrograman Ms. Visual Basic 6.0. Elexmedia Komputindo, Jakarta.

Fariza, A., Martiana, E., Sucipto H. (2006). Aplikasi Algoritma Genetika Multi Obyektif pada Traveling Salesman Problem. Politeknik Elektronika Negeri Surabaya ITS.

Hadi, Rahadian. (2001). Pemrograman Windows API dengan Microsoft Visual Basic. Jakarta: PT Elex Media Komputindo.

Kusumadewi, Sri. (2003). Artificial Intelligence. Graha Ilmu: Yogyakarta. Lukas S., Anwar T., Yuliani W. (2005). Penerapan Algoritma Genetika untuk

Traveling Salesman Problem dengan Menggunakan Metode Order Crossover dan Insertion Mutation. Seminar Nasional Aplikasi Teknologi Informasi 2005 : I-2.

Mutakhiroh, I., Saptono F., Hasanah N., Wiryadinata R. (2005). Pemanfaatan Metode Heuristik Dalam Pencarian Jalur Terpendek Dengan Algoritma Semut Dan Algoritma Genetika. Laboratorium Pemrograman dan Informatika Teori, Universitas Islam Indonesia: B-34 – B-36.

Obitko, Marek. (1998). Introduction To Genetic Algorithms. University of Applied Sciences.

(52)

LISTING PROGRAM If Timer1.Enabled = True Then Line1.BorderColor = &H0& Shape1.FillColor = vbRed Line10.BorderColor = &H0& Shape2.FillColor = vbBlue Line9.BorderColor = &H0& Shape3.FillColor = vbYellow

Shape1.FillColor = &HFFFFFF Shape2.FillColor = &HFFFFFF Shape3.FillColor = &HFFFFFF Shape4.FillColor = &HFFFFFF Shape5.FillColor = &HFFFFFF Shape6.FillColor = &HFFFFFF Shape7.FillColor = &HFFFFFF Shape8.FillColor = &HFFFFFF Timer1.Enabled = True

End If End Sub

(53)

If Timer2.Enabled = True Then Line1.BorderColor = &HFF& Shape1.FillColor = &HFFFFFF Line10.BorderColor = &HFF& Shape2.FillColor = &HFFFFFF Line9.BorderColor = &HFF& Shape3.FillColor = &HFFFFFF Shape4.FillColor = &HFFFFFF Shape5.FillColor = &HFFFFFF Shape6.FillColor = &HFFFFFF Shape7.FillColor = &HFFFFFF Shape8.FillColor = &HFFFFFF Timer2.Enabled = False

Dim OLDbestI As Long Dim GA As New SimplyGA Dim NumberOfGenes As Long Dim CICLES As Long

Dim P() As tPoint Dim GAgeneration As Long Dim ChartX

(54)

Dim QueryAddress As String Dim S As String

(55)

OLDbestI = BesT End If

GAgeneration = GA.StatGeneration If (GAgeneration Mod 50) = 0 Then ChartX = ChartX + 1

MSChart.RowCount = ChartX 'GaGeneration

MSChart.DataGrid.SetData ChartX, 1, GA.GeneratBestFit, Flag MSChart.DataGrid.SetData ChartX, 2, GA.GenerationAvgFit, Flag End If txtNI = NumberOfGenes * 5 txtNI = "30"

NumberOfGenes * NumberOfGenes / 2

GA.INIT Val(txtNI), NumberOfGenes, 1, NumberOfGenes, _

(56)

3. Modul-1

Public Type tPoint x As Single Y As Single End Type

(57)

Private Type tStat

Event TESTINDIevent(Individ As Long) Private SonMode As Enum_ReproductMode Private CrossMode As Enum_CrossMode Private NofI As Integer

Private INDI() As tInd Private gValueMax As Long Private gValueMin As Long Private MutProbProp As Boolean Private MutProb As Single Private MutRate As Single Private BestFit As Double

Private GenerationBestFit As Double Private GenerationINDEXBestFit As Long Private Statistic As tStat

Private pSelectionMode As Enum_SelMode Private pMutateBestFit As Boolean

Private ReprodXGeneration As Long Private BestGENE() As Long Private LookForDisaster As Long Private AVGfit As Double

Private INFO As TextBox

Public Property Let INDINetOutPut(indiv, Val As Double) INDI(indiv).NetOutPut = Val

End Property

Public Property Get pLookForDisaster() As Long pLookForDisaster = LookForDisaster

End Property

Public Property Get IsIndiChanged(ind As Long) As Boolean 'since perv generation IsIndiChanged = INDI(ind).IsChanged

(58)

Public Property Get Son_Mode() As Enum_ReproductMode Son_Mode = SonMode

End Property

Public Property Get Cross_Mode() As Enum_CrossMode Cross_Mode = CrossMode

End Property

Public Property Let Son_Mode(sMode As Enum_ReproductMode) SonMode = sMode

End Property

Public Property Let Cross_Mode(cMode As Enum_CrossMode) CrossMode = cMode

End Property

Public Property Get pSelection_Mode() As Enum_SelMode pSelection_Mode = pSelectionMode

End Property

Public Property Let pSelection_Mode(sMode As Enum_SelMode) pSelectionMode = sMode

End Property

Public Property Get pMutateBestToo() As Single pMutateBestToo = pMutateBestFit

End Property

Public Property Get pMutationProb() As Single pMutationProb = MutProb

End Property

Public Property Get pMutationRate() As Single pMutationRate = MutRate

End Property

Public Property Get StatAccop() As Long StatAccop = Statistic.NofACC

End Property

Public Property Get StatGeneration() As Long StatGeneration = Statistic.NofGEN

End Property

Public Property Get StatMutations() As Long StatMutations = Statistic.NofMUT

End Property

Public Property Get StatNEWs() As Long StatNEWs = Statistic.NofNEW

End Property

Public Property Get Get_gValueMin() As Double Get_gValueMin = gValueMin

End Property

Public Property Get Get_gValueMax() As Double Get_gValueMax = gValueMax

End Property

Public Property Get GeneratBestFit() As Double GeneratBestFit = GenerationBestFit

(59)

Public Property Get GeneratINDEXBestFit() As Double GeneratINDEXBestFit = GenerationINDEXBestFit End Property

Public Property Get GenerationAvgFit() As Double GenerationAvgFit = AVGfit

End Property

Public Property Let IndiFitness(Individ, FitnessValue As Double) INDI(Individ).Fitness = FitnessValue

End Property

Public Property Get IndiFitness(Individ) As Double IndiFitness = INDI(Individ).Fitness

End Property

Public Property Get NumberOfIndivid() As Long NumberOfIndivid = NofI

End Property

Public Property Get NumberOfGenes(indiv) As Long NumberOfGenes = INDI(indiv).NofG

End Property

Private Function GfnCreateRandomIndi(NofGene, gvMIN, gvMAX) As tInd Dim G As Long

Dim Gpos As Long

GfnCreateRandomIndi.NofG = NofGene GfnCreateRandomIndi.Fitness = 1E+99

ReDim GfnCreateRandomIndi.Gene(NofGene) If CrossMode <> TSProblem Then

For G = 1 To NofGene

GfnCreateRandomIndi.Gene(G) = fnRND(gvMIN, gvMAX, True) Next

Private Function fnRND(Min, Max, DoRound As Boolean) fnRND = Rnd * (Max - Min) + Min

(60)

Public Sub INIT(NofIndi, NofGene, gvMIN, gvMAX, _ Mutate_Prob, Mutate_Rate, _

SelMode As Enum_SelMode, PercNewSonXGeneration, _ MutBest As Boolean, _

ReprodXGeneration = Round(PercNewSonXGeneration * NofIndi) If ReprodXGeneration < 1 Then ReprodXGeneration = 1

'Stop

' Mutation Prob=0 means proportional

MutProbProp = IIf(Mutate_Prob = 0, True, False) Set INFO = TextINFO

NofI = NofIndi

If LookForDisasterEvery = 0 Then LookForDisasterEvery = 2 ^ 30 '1000000000 LookForDisaster = LookForDisasterEvery

Statistic.NofACC = 0 Statistic.NofMUT = 0 Statistic.NofNEW = 0 Statistic.NofGEN = 0

S = "Genetic Algorithm Initialized! " & vbCrLf & vbCrLf S = S + "Current Parameters:" & vbCrLf

S = S + "Number of Individuals " & vbTab & NofI & vbCrLf S = S + "Number of Gene x Indiv" & vbTab & NofGene & vbCrLf

(61)

S = S + "Max Gene Value " & vbTab & gValueMax & vbCrLf S = S + "Parent Selection Mode " & vbTab & pSelectionMode & vbCrLf S = S + "Can even Mutate Best I" & vbTab & MutBest & vbCrLf

S = S + "Placement of Son " & vbTab & SonMode & vbCrLf S = S + "Cross Mode " & vbTab & CrossMode & vbCrLf

S = S + "Test Disaster Every " & vbTab & LookForDisaster & vbCrLf 'MsgBox S, vbInformation, "GA created!"

End Sub

Public Sub ReplaceIdenticalINDI(INFOtext As TextBox) Dim I As Long

If Len(INFOtext) > 10000 Then INFOtext.Text = ""

S = "Generation " & Statistic.NofGEN '& Statistic.NofACC

S = S & " Look for Disaster. New Random Individ Generated = " & _

Statistic.NofNEW - PervNumOfNew & " of " & NofI & vbTab & " (Total =" & Statistic.NofNEW & ") " & vbCrLf

INFOtext.Text = INFOtext.Text & S INFOtext.SelStart = Len(INFOtext.Text) 'DebugPrintPop pp

End Sub

Private Sub MutateIndi(Individ, MutateBest As Boolean) Dim OLD

Dim MR

(62)

Dim T As Integer Dim Times As Integer Dim NOG As Long Dim POS As Long

INDI(Individ).IsChanged = True If CrossMode <> TSProblem Then

If Not (MutateBest) Then If GenerationINDEXBestFit = Individ Then Exit Sub Statistic.NofMUT = Statistic.NofMUT + 1

MR = MutRate

If Not (MutateBest) Then If GenerationINDEXBestFit = Individ Then Exit Sub Statistic.NofMUT = Statistic.NofMUT + 1

(63)

'MUTATION

Dim IndexOverALLBest As Long Dim IndexGenerationBest As Long Dim OverALLBest As Boolean Dim GenerationBest As Boolean OverALLBest = False

If INDI(I).Fitness < GenerationBestFit Then GenerationBestFit = INDI(I).Fitness

EvalFitness IndexOverALLBest, IndexGenerationBest, _ OverALLBest, GenerationBest, INFO

End Sub

Private Sub TEST_INDI(Individ As Long) With INDI(Individ)

.Fitness = .NetOutPut End With

(64)

Private Sub EvalFitness(IndexOverALLBest As Long, IndexGenerationBest As Long, OverALLBest As Boolean, GenerationBest As Boolean, INFOtext As TextBox)

Dim S As String Dim GG As Long Dim Gc As Long If OverALLBest Then

With INDI(IndexOverALLBest)

S = "G " & Statistic.NofGEN & " Indi " & IndexOverALLBest & " f(" & .Fitness & ") " & vbTab & vbTab

For GG = 1 To .NofG

S = S & .Gene(GG) & vbTab BestGENE(GG) = .Gene(GG) Next

End With

INFOtext.Text = INFOtext.Text & S & vbCrLf INFOtext.SelLength = 1

INFOtext.SelStart = Len(INFOtext.Text) DebugPrintPop

If BestFit = 0 Then DebugPrintPop: MsgBox "Solution FOUND!!! " & vbCrLf & _ "Generation: " & Statistic.NofGEN & " Individ: " & IndexOverALLBest: ' Dim Sum2 As Double Dim Sum3 As Double Dim MinF As Double Dim MaxF As Double Dim I As Long

(65)

MaxF = -1E+99 .Fitness) / Sum2, Sum3

.Wheel = Sum3

(66)

For I = 1 To NofI

Private Function GfnFindParent() As Long Dim R As Double

Debug.Print "findp " & r, "Parent " & GfnFindParent Stop

Stop

End Function

(67)

Loop While P1 = P2

Public Sub Accoppia(Par1 As Long, Par2 As Long, pSonMode As Enum_ReproductMode, pCrossMode As Enum_CrossMode)

'MATE Dim NewIndi As tInd Dim NewIndi2 As tInd Dim G As Long

Dim tmpNofG As Long Dim VV2 As Integer Dim V1 As Integer Dim V2 As Integer Dim oo As Integer Dim NOG As Long Dim SON As Long

Statistic.NofACC = Statistic.NofACC + 1 NewIndi.Fitness = 1E+99

NewIndi.NofG = INDI(Par1).NofG NewIndi.Wheel = 0 'da calcolare NewIndi.IsChanged = True

Debug.Print "Parent1 " & Par1, .Gene(1), .Gene(2), .Gene(3), .Gene(4), .Gene(5), .Gene(6)

End With

'With INDI(Par2)

(68)

NewIndi.Gene(G) = INDI(Par1).Gene(G)

(69)

Loop While V2 < V1

(70)

NofI = NofI + 1

ReDim Preserve INDI(NofI) INDI(NofI) = ind

End Sub

Public Function GfnGetWORSTindi() As Long 'private

Dim MaxF As Double Dim I As Long

Dim Parent1 As Long Dim Parent2 As Long Dim S As String Dim Bool As Boolean 'Stop

Dim V As Long

Statistic.NofGEN = Statistic.NofGEN + 1 'Stop

For V = 1 To ReprodXGeneration '* NofI 'GETPARENTS

SelectParents Parent1, Parent2 'REPRODUCTION

Accoppia Parent1, Parent2, SonMode, CrossMode Next V

(71)

Stop

If Statistic.NofGEN / LookForDisaster = Statistic.NofGEN \ LookForDisaster Then Stop

ReplaceIdenticalINDI INFO End If

If GeneratBestFit / GenerationAvgFit > 0.9995 Then ReplaceIdenticalINDI INFO > 0.997

If GenerationBestFit = GenerationAvgFit Then ReplaceIdenticalINDI INFO Debug.Print GeneratBestFit / GenerationAvgFit

If MutProbProp Then

MutProb = (GenerationBestFit / GenerationAvgFit) / 10 '5 End If

Stop End Sub

Public Function getGENE(Individ As Long, Gene As Long) As Long getGENE = INDI(Individ).Gene(Gene)

End Function

Public Sub SetGENE(Individ As Long, Gene, Valu As Long) INDI(Individ).Gene(Gene) = Valu

End Sub

Public Sub KillIndi(Individ As Long) Dim II As Long

public Sub Save_POP(Optional Filename = "POP.txt") Dim II As Long

Dim GG As Long

Open App.Path & "\" & Filename For Output As 1 Print #1, "Num of INDIs"

Print #1, NofI

Print #1, "Num of GENEs (x indi)" Print #1, INDI(1).NofG

Print #1, "Min Max Gene Value" Print #1, gValueMin

Print #1, gValueMax Print #1, "Mutation Prob"

Print #1, Replace(MutProb, ",", ".") Print #1, "Mutation Rate"

Print #1, Replace(MutRate, ",", ".") Print #1, "Selection Mode"

(72)

Print #1, "ReprodXGeneration" Print #1, "Mutate Best"

Print #1, CInt(pMutateBestFit) Print #1, "INDEX BEST INDI" Print #1, GenerationINDEXBestFit

Public Sub Load_POP(Optional Filename = "POP.txt") Dim II As Long

Dim GG As Long Dim S As String

Open App.Path & "\" & Filename For Input As 1 Input #1, S

Input #1, NofI

ReDim INDI(0 To NofI) Input #1, S

Input #1, INDI(1).NofG

(73)

Input #1, S

If S = "-1" Then pMutateBestFit = True Else: pMutateBestFit = False Input #1, S

ReDim INDI(II).Gene(1 To INDI(1).NofG) INDI(II).NofG = INDI(1).NofG

INDI(I) = GfnCreateRandomIndi(INDI(I).NofG, gValueMin, gValueMax) MutateIndi I, True

Private Sub TSPBuildO(ByRef O, ind As Long) 'USELESS Dim busy() As Boolean

(74)

NB = 0

Private Function TSPBuildNewIndiFromO(ByRef O) As tInd 'USELESS Dim tINDI As tInd

Dim busy() As Boolean Dim G As Long

(75)

'Debug.Print "---" Dim tmpINDI As tInd Again:

Private Sub QuickSortFitness(ByVal lngFirst As Long, ByVal lngLast As Long) Dim lngLow As Long

dblMidValue = Abs(INDI((lngFirst + lngLast) \ 2).Fitness) Do

'While Abs(Chromosome(lngLow).Fitness) < dblMidValue While INDI(lngLow).Fitness < dblMidValue

lngLow = lngLow + 1 Wend

'While Abs(Chromosome(lngHigh).Fitness) > dblMidValue While INDI(lngHigh).Fitness > dblMidValue

(76)

End If

Loop While lngLow <= lngHigh

If lngFirst < lngHigh Then QuickSortFitness lngFirst, lngHigh If lngLow < lngLast Then QuickSortFitness lngLow, lngLast Exit Sub

Private Function EdgeRecombinationCrossover(P1 As Long, P2 As Long) As tInd Dim NI As tInd

(77)

V2 = INDI(P2).Gene(G) p1G1 = INDI(P1).Gene(G1) p1G2 = INDI(P1).Gene(G2) p2G1 = INDI(P2).Gene(G1) p2G2 = INDI(P2).Gene(G2)

If collNotInColl(NeiList(V1), p1G1) Then NeiList(V1).Add p1G1 If collNotInColl(NeiList(V1), p1G2) Then NeiList(V1).Add p1G2 If collNotInColl(NeiList(V2), p2G1) Then NeiList(V2).Add p2G1 If collNotInColl(NeiList(V2), p2G2) Then NeiList(V2).Add p2G2 getCHILD.Add G

(78)

For G = 1 To NOG

Private Function collNotInColl(C As Collection, Val) As Boolean Dim E As Integer

Private Sub collRemoveItem(ByRef C As Collection, Val) Dim E As Integer Loop While E < C.Count

End Sub

(79)

End Function

Private Function collNotInColl(C As Collection, Val) As Boolean Dim E As Integer

collNotInColl = True 'If C.Count = 0 Then Stop For E = 1 To C.Count

If C.Item(E) = Val Then collNotInColl = False: Exit For Next

End Function

Private Sub collRemoveItem(ByRef C As Collection, Val) Dim E As Integer

If C.Count = 0 Then Exit Sub E = 0

Do

E = E + 1

If C.Item(E) = Val Then C.Remove E: Exit Do Loop While E < C.Count

End Sub

Private Function collPickFrom(ByRef C As Collection) As Integer Dim E As Integer

Stop

Gambar

Gambar 2.1 Meknisme Algoritma Genetika
Gambar 3.1 Graf Jarak Antar Kota
Gambar 3.2 Flow Chart Rancangan Sistem
Gambar Pembukaan
+7

Referensi

Dokumen terkait

Travelling Salesman Problem (TSP) merupakan salah satu permasalahan yang penting dalam dunia matematika dan informatika.Travelling Salesman Problem dapat diartikan sebagai

permasalahan perjalanan seorang salesman yang harus mengunjungi n buah titik dengan aturan salesman harus mengunjungi setiap titik tepat satu kali dan pada akhirnya harus

Metode crossover yang digunakan dalam menyelesaikan masalah travelling salesman problem salah satunya yaitu partially mapped crossover (PMX) dimana proses mapping pada PMX yaitu

Meskipun telah banyak penelitian dengan menggunakan beberapa crossover point untuk mendapatkan rute yang optimal pada travelling salesman problem tetapi belum diketahui

Combined Mutation Operators of Genetic Algorithm for the Travelling Salesman problem .Department of Mathematics, Indian Institute of Technology, Roorkee, India International

Pada makalah ini penulis membahas mengenai salah satu permasalahan dalam teori graf yaitu Travelling Salesman Problem (TSP) dengan menggunakan algoritma Branch and Bound

Berikut ditampilkan hasil perbandingan hasil dan lama pencarian yang didapatkan antara program TSP yang menggunakan algoritma genetika, dengan program TSP yang

Plot Hasil Tour TSP Berdasarkan Gambar 13, penyelesaian Travelling Salesman Problem 14 Anjungan diketahui mempunyai panjang tour/bobot minimum sebesar 54,1972 dan tertulis metode