BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

dokumen-dokumen yang mirip
BAB III PERANCANGAN. Gambar 3.1 di bawah ini mengilustrasikan jalur pada TSP kurva terbuka jika jumlah node ada 10:

BAB 3 PERANCANGAN PROGRAM. dari OOP (Object Oriented Programming) di mana dalam prosesnya, hal-hal

PENERAPAN ALGORITMA GENETIKA PADA PENYELESAIAN TRAVELLING SALESMAN PROBLEM (TSP)

BAB IV ANALISIS MASALAH

ABSTRAK. Job shop scheduling problem merupakan salah satu masalah. penjadwalan yang memiliki kendala urutan pemrosesan tugas.

BAB 2 LANDASAN TEORI

Jl. Ahmad Yani, Pontianak Telp./Fax.: (0561)

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

BAB III. Metode Penelitian

BAB 4 IMPLEMENTASI DAN HASIL PENELITIAN. Pada bab 4 ini akan dijelaskan hasil rancangan sistem aplikasi optimizer, yaitu

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB III PENERAPAN ALGORITMA MEMETIKA DAN GRASP DALAM MENYELESAIKAN PFSP

BAB I PENDAHULUAN. sejumlah aktivitas kuliah dan batasan mata kuliah ke dalam slot ruang dan waktu

BAB 3 ANALISIS DAN PERANCANGAN. Berbagai pembangunan terus dilaksanakan di setiap wilayah di Indonesia,

BAB III KONSEP DAN PERANCANGAN APLIKASI

ERWIEN TJIPTA WIJAYA, ST.,M.KOM

BAB 2 LANDASAN TEORI. 2.1 Algoritma Genetika

Manual Penggunaan Algoritma Evolusi Diferensial untuk Mengoptimasikan Rute Kendaraan Akhmad Hidayatno Armand Omar Moeis Komarudin Aziiz Sutrisno

PENERAPAN ALGORITMA GENETIKA PADA PERSOALAN PEDAGANG KELILING (TSP)

BAB II TINJAUAN PUSTAKA

Bab II Konsep Algoritma Genetik

BAB 2 LANDASAN TEORI

Optimasi Multi Travelling Salesman Problem (M-TSP) Menggunakan Algoritma Genetika

8. Evaluasi Solusi dan Kriteria Berhenti Perumusan Masalah METODE PENELITIAN Studi Pustaka Pembentukan Data

Gambar 1.1 Contoh Ilustrasi Kasus CVRP 13

BAB 4 PERANCANGAN DAN IMPLEMENTASI PROGRAM. dengan struktur yang sederhana dengan algoritma yang rumit, sehingga

PENDAHULUAN. Latar Belakang

DAFTAR ISI. Tim Redaksi... i Kata Pengantar... ii Daftar Isi... iii

BAB 4 IMPLEMENTASI DAN EVALUASI

PENERAPAN ALGORITMA GENETIKA PADA PERENCANAAN LINTASAN KENDARAAN Achmad Hidayatno Darjat Hendry H L T

PRESENTASI TUGAS AKHIR

Lingkup Metode Optimasi

T I N J A U A N P U S T A K A Algoritma Genetika [5]

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP)

Manual Penggunaan Algoritma Tabu Search untuk Mengoptimasikan Penjadwalan Job Shop

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 3 ANALISIS DAN PERANCANGAN

BAB III METODE PENELITIAN

BAB 2 LANDASAN TEORI

Genetic Algorithme. Perbedaan GA

Pengantar Kecerdasan Buatan (AK045218) Algoritma Genetika

BAB IV Perancangan dan Implementasi

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB 3 METODOLOGI. Metodologi penelitian yang digunakan dalam penulisan ini adalah studi

BAB 2 LANDASAN TEORI

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

1. Pendahuluan 1.1. Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah 1.2 Perumusan Masalah

Crossover Probability = 0.5 Mutation Probability = 0.1 Stall Generation = 5

APLIKASI SIMULATED ANNEALING UNTUK MENYELESAIKAN TRAVELLING SALESMAN PROBLEM

OPTIMALISASI SOLUSI TERBAIK DENGAN PENERAPAN NON-DOMINATED SORTING II ALGORITHM

IMPLEMENTASI ALGORITMA GENETIKA UNTUK PENCARIAN RUTE PALING OPTIMUM

Manual Penggunaan Algoritma Evolusi Diferensial untuk Mengoptimasikan Tata Letak Fasilitas Komarudin

PRESENTASI TUGAS AKHIR KI091391

Keywords Algoritma, Genetika, Penjadwalan I. PENDAHULUAN

PERANCANGAN TATA LETAK FASILITAS BAGIAN PRODUKSI MENGGUNAKAN METODE ALGORITMA GENETIK DI PT. PUTRA SEJAHTERA MANDIRI

BAB I PENDAHULUAN. wisata budaya, wisata belanja, hingga wisata Alam. Untuk menarik minat

BAB III Analisis. Gambar III.1 Rancangan Pemrosesan

Optimasi Penjadwalan Ujian Menggunakan Algoritma Genetika

APLIKASI HASIL PENCARIAN DAN RUTE PENGIRIMAN BARANG DARI SOLUSI MASALAH TRANSPORTASI BIKRITERIA DENGAN METODE LOGIKA FUZZY

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

PERBANDINGAN KINERJA ALGORITMA GENETIK DAN ALGORITMA BRANCH AND BOUND PADA TRAVELLING SALESMAN PROBLEM

PENERAPAN ALGORITMA GENETIK UNTUK OPTIMASI POLA PENYUSUNAN BARANG DALAM RUANG TIGA DIMENSI ABSTRAK

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

OTOMASI PENJADWALAN KEGIATAN PRKULIAHAN DI PERGURUAN TINGGI MENGGUNAKAN METODE ALGORITMA GENETIKA ( STUDI KASUS STIKI )

Travelling Salesman Problem Menggunakan Algoritma Genetika Via GPS Berbasis Android

BAB I PENDAHULUAN Latar Belakang

Algoritma Evolusi Dasar-Dasar Algoritma Genetika

PENENTUAN JARAK TERPENDEK PADA JALUR DISTRIBUSI BARANG DI PULAU JAWA DENGAN MENGGUNAKAN ALGORITMA GENETIKA. Abstraksi

BAB 4 IMPLEMENTASI DAN EVALUASI

Bab IV Simulasi dan Pembahasan

BAB 4 IMPLEMENTASI DAN EVALUASI. Berikut ini merupakan spesifikasi perangkat keras dan perangkat lunak yang

BAB III ALGORITMA MEMETIKA DALAM MEMPREDIKSI KURS VALUTA ASING. Untuk memberikan penjelasan mengenai prediksi valuta asing

PENGEMBANGAN APLIKASI PENJADWALAN KULIAH SEMESTER I MENGGUNAKAN ALGORITMA GENETIKA

BAB 1 PENDAHULUAN. 1.1 Pendahuluan

ALGORITMA GENETIKA DENGAN PENDEKATAN MODEL PULAU PADA PERMASALAHAN TRAVELLING SALESMAN

IMPLEMENTASI ALGORITMA GENETIKA HYBRID (BEST IMPROVEMENT SEARCH) PADA VEHICLE ROUTING PROBLEM WITH TIME WINDOW

ALGORITMA GENETIKA Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning

Tugas Mata Kuliah E-Bisnis REVIEW TESIS

3.2.3 Resiko, Keuntungan dan Kerugian Forex Metode Prediksi dalam Forex MetaTrader 4 sebagai Platform Trading dalam Forex...

BAB II KAJIAN TEORI. memindahkan barang dari pihak supplier kepada pihak pelanggan dalam suatu supply

HASIL DAN PEMBAHASAN. Gambar 7 Diagram alur proses mutasi.

BAB 3 PERANCANGAN PROGRAM

IMPLEMENTASI ALGORITMA GENETIKA DALAM OPTIMASI JALUR PENDISTRIBUSIAN KERAMIK PADA PT. CHANG JUI FANG

BAB IV. adalah tahap implementasi dan penyempurnaan. Berikut ini akan dijelaskan. implementasi dari aplikasi permainan komputer game knight s tour

KATA PENGANTAR. DAFTAR TABEL.. xviii. 1.1 Latar Belakang Masalah 1

Transkripsi:

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Analisis Permasalahan TSP merupakan suatu masalah klasik yang telah ada sejak tahun 1800-an, sejauh ini telah cukup banyak metode yang diciptakan untuk menyelesaikan TSP. Dalam hal ini metode-metode yang bekerja secara heuristik dianggap lebih baik daripada metodemetode eksak karena dapat memberikan hasil yang mendekati optimal (bahkan pada kasus tertentu benar-benar optimal) dalam waktu yang sangat singkat, walaupun ukuran permasalahan yang dihadapi besar (n > 100). Algoritma genetik dan Tabu Search merupakan dua dari sekian banyak metode heuristik yang tersedia, yang bekerja sangat baik dalam penyelesaian kasus optimisasi pada TSP. Dalam hal ini metode-metode tersebut memiliki cakupan parameter yang sangat luas dan hampir tidak terhingga banyaknya, dalam skripsi ini akan dicari kombinasi yang terbaik dari parameter-parameter yang ada untuk menyelesaikan TSP. Arti kata terbaik di sini adalah menghasilkan nilai solusi yang terbaik (jarak yang terpendek, cepat dan hasil yang konsisten). 3.2 Perancangan Kebutuhan Data Data untuk program ini didapatkan dengan menggunakan program tambahan untuk membuat file data TSP dari permasalahan TSP yang ingin diselesaikan. Data tersebut disimpan dalam format file teks dimana isi dari tiap variabel data dipisahkan oleh tab, seperti pada struktur sebagai berikut:

31 <integer x 1 > <integer y 1 > <integer x 2 > <integer y 2 > <integer x 3 > <integer y 3 >... <integer x n > <integer y n > Dalam hal ini <integer x i > <integer y i > merupakan posisi koordinat kota ke i (koordinat x i dan y i dimana nilai dari koordinat-koordinat tersebut berkisar antara 0 dan 480). 3.3 Perancangan Program Untuk perancangan program penyelesaian TSP, digunakan bahasa pemrograman Java 6 SE yang bekerja di atas sistem operasi Microsoft Windows XP SP2. 3.3.1 Algoritma Genetik Dalam implementasinya, algoritma genetik membutuhkan populasi awal dengan anggota populasi yang beragam (nilainya diacak). Kemudian populasi ini akan dihitung nilai fitness-nya, dan diurutkan berdasarkan nilai fitness tersebut mulai dari yang terbesar hingga yang terkecil. Individu-individu yang terpilih sebagai individu-individu elit akan dipastikan masuk ke dalam populasi pada generasi berikutnya sedangkan individu-individu lain di dalam populasi kemudian diseleksi dengan menggunakan metode tournament untuk dimasukkan ke dalam mating pool, dimana semua individu di dalam populasi (termasuk individu-individu elit) tetap terkena seleksi.

32 Semua individu di dalam mating pool tersebut kemudian dikawinkan / disilangkan dengan menggunakan metode order crossover, untuk menghasilkan anakanak yang sama banyaknya dengan jumlah individu awal di dalam populasi. Kemudian sebagian dari anak-anak tersebut akan mengalami mutasi, hal ini dicapai dengan menggunakan metode swap. Semua anak yang dihasilkan dalam suatu generasi akan dihitung kembali nilai fitness-nya, untuk kemudian diurutkan mulai dari nilai fitness yang terbesar ke nilai fitness yang terkecil. Anak-anak tersebut akan dimasukkan ke dalam populasi untuk generasi berikutnya. Karena sudah terdapat beberapa individual elit di dalam populasi, maka untuk menjaga keseimbangan jumlah populasi (dan menuju pada perbaikan kualitas populasi secara keseluruhan) anak yang memiliki nilai fitness yang sangat rendah tidak akan masuk ke dalam populasi untuk generasi berikutnya. Gambar 3.1 Algoritma genetik dengan elitisme

33 Secara garis besar terdapat empat proses utama di dalam implementasi algoritma genetik: 1. Proses inisialisasi untuk pembuatan populasi awal. 2. Proses perhitungan fitness dari populasi, dan populasi diurutkan berdasarkan nilai fitness yang terbesar ke yang terkecil. 3. Proses pemilihan individu-individu elit untuk dimasukkan ke populasi pada generasi berikutnya. 4. Proses pembuatan populasi baru berdasarkan populasi lama. 3.3.2 Tabu Search Proses optimisasi menggunakan tabu search dimulai dengan mengeset variabel MAX-TRIES dan ITER untuk jumlah iterasi algoritma, yang dilanjutkan dengan membuat sebuah solusi awal secara acak. Solusi baru kemudian dicari berdasarkan neighborhood dari solusi lama dengan menggunakan algoritma 2-opt. Kemudian akan dipilih solusi baru yang terbaik dan valid dari neighborhood dipilih, proses pemilihan ini bersifat deterministik. Untuk menambahkan unsur non-deterministik ke dalam tabu search, dapat digunakan probabilitas untuk pemilihan solusi yang terbaik dan yang valid dari neighborhood. Kemudian memori tabu search diperbaharui untuk mendapatkan solusi baru, proses ini dilanjutkan sampai jumlah counter = ITER. Sehingga akan dihasilkan nilai yang bersifat local optima. Untuk membuat algoritma ini lebih tersebar, maka setelah local optima ditemukan maka solusi awal akan dibuat kembali secara acak untuk selanjutnya

34 melakukan pencarian solusi baru kembali sampai jumlah counter_total mencapai nilai MAX-TRIES. Secara garis besar ada lima proses utama di dalam algoritma genetik: 1. Proses inisialisasi untuk pembuatan solusi awal 2. Proses evaluasi rute untuk menentukan nilai dari solusi 3. Proses pencarian solusi lain di dalam neighborhood solusi awal 4. Proses penggantian solusi baru dengan menggunakan probabilitas jika solusi baru lebih baik dan memenuhi syarat. 5. Proses pembaharuan memori 3.4 Perancangan Layar Program utama memiliki dua interface yang berbeda, command line interface dan graphical user interface. Dalam hal ini command line interface dapat digunakan untuk kinerja sistem yang lebih baik, jika user tidak membutuhkan GUI ( Graphical User Interface ). Sedangkan GUI akan memudahkan user untuk menjalankan program utama, dengan sedikit penurunan kinerja GUI yang digunakan pada program utama terdiri dari tiga layar yaitu layar utama, layar hasil dan layar about. Sedangkan program tambahan untuk membuat TSP memiliki satu layar utama. 3.4.1 Layar Utama Layar utama ini digunakan sebagai TSP solver interface, dimana parameterparameter untuk algoritma genetik dan tabu search ditentukan di layar ini.

35 Gambar 3.2 Perancangan layar utama program Dalam layar ini terdapat informasi lokasi file TSP, parameter-parameter untuk algortima genetik (jumlah populasi, jumlah generasi, probabilitas persilangan, probabilitas mutasi dan persentasi elitisme) dan parameter-parameter untuk tabu search (nilai panjang memori, jumlah pencarian solusi baru, jumlah pembaharuan solusi dan probabilitas pemilihan solusi). Setelah semua informasi yang diperlukan diisi, user dapat menekan tombol Run untuk menyelesaikan masalah TSP yang telah dipilih oleh user. Hasil akan ditampilkan pada layar hasil. 3.4.2 Layar Hasil Layar hasil ini dirancang untuk menampilkan hasil penyelesaian TSP. Hasil ditampilkan secara grafis, dan detail mengenai rute dan jarak yang ditempuh ditampilkan pada text box dibawah gambar rute.

36 Hasil Penyelesaian TSP Algoritma Genetik Tabu Search Rute terpendek adalah 1-2-4-5-3 Jarak rute terpendek adalah 10 Rute terpendek adalah 1-2-4-5-3 Jarak rute terpendek adalah 10 Tutup Gambar 3.3 Layar hasil penyelesaian TSP 3.4.3 Layar About Layar about dirancang untuk menampilkan hak cipta pembuatan program ini. Gambar 3.4 Layar about

37 3.4.4 Layar Utama Program Pembuat TSP Layar utama dari program ini bertujuan untuk membuat masalah TSP, yang dapat dibuat secara manual oleh user ataupun dibuat secara acak oleh program. Program Pembuat TSP Randomize Jumlah kota: 9 Open File Save File Erase Gambar 3.5 Layar utama program pembuat TSP

38 Pada layar ini user dapat menentukan sendiri letak kota dengan cara mengklik pada layar, disamping juga memilih lokasi kota secara acak dengan menekan tombol Randomize dan memasukkan jumlah kota yang diinginkan. Setelah selesai membuat masalah TSP, user kemudian dapat menyimpan masalah TSP tersebut ke dalam suatu file dengan cara menekan tombol Save File. Selain itu file TSP yang telah ada, dengan cara menekan tombol Open File untuk membuka file TSP yang telah jadi. 3.5 Spesifikasi Proses / Pseudocode 3.5.1 Algoritma Genetik 3.5.1.1 Spesifikasi Proses Inisialisasi Algoritma Genetik Inisialisasi merupakan proses pemberian nilai awal untuk tiap parameter yang akan dipakai di dalam algoritma genetik. Nilai-nilai yang akan diinialisasi adalah file TSP yang akan diselesaikan, jumlah populasi, jumlah generasi, probabilitas persilangan, probabilitas mutasi dan persentase elitisme. Kemudian algoritma genetik akan menginisialisasi populasi awal dengan membuat individu-individu secara acak. Untuk membuat populasi awal, dilakukan langkah-langkah pseudocode berikut: Selama jumlah populasi sekarang belum sama dengan jumlah populasi total Lakukan Buat individu baru (nilai kromosom berurut dari 1 sampai dengan jumlah kota 1)

39 Untuk individu i, selama x=0 sampai dengan panjang (kromosom-1) / 2 lakukan Buat nomor r1 dan r2 secara acak (0 < r1, r2 < 1) posisi1 r1 * panjang kromosom posisi2 r2 * panjang kromosom Elemen di dalam kromosom ditukar, (elemen di posisi1 ditukar dengan elemen di posisi2) Individu baru ini dimasukkan ke dalam populasi awal 3.5.1.2 Spesifikasi Proses Perhitungan Fitness dari Populasi Pada proses ini dilakukan perhitungan nilai fitness dari tiap individu di dalam populasi. Individu yang bagus (nilai fitness yang tinggi) adalah individu yang memiliki rute yang terpendek. Semakin besar jarak yang ditempuh pada satu rute, semakin rendah nilai fitness yang akan dimasukkan ke dalam individu. Pseudocode dari proses ini adalah sebagai berikut: Untuk tiap individu di dalam populasi lakukan Hitung Panjang_Rute_Individu Hitung nilai fitness. Fitness Jumlah _ Kota* C, Panjang _ Rute _ Individu dimana C merupakan konstan (C = 700) Masukkan nilai fitness dan panjang rute individu ke dalam individu

40 Urutkan populasi mulai dari individu dengan nilai fitness tertinggi ke terendah Jika individu yang terbaik untuk generasi ini lebih baik dari Individu Terbaik, maka Individu Terbaik individu terbaik untuk generasi ini Rumus fitness diatas digunakan untuk menghasilkan jumlah nilai fitness yang konstan dalam setiap generasi. Hal ini dimungkinkan karena program ini membatasi nilai koordinat-koordinat yang akan digunakan untuk membuat TSP. Nilai koordinat yang valid adalah mulai dari (0,0) sampai dengan (480,480). Nilai C sendiri merupakan nilai konstan, yaitu jarak terpanjang yang dapat ditempuh pada dua kota yang bernilai 480 2 2 + 480 700. Dengan demikian nilai fitness maksimal yang bisa diperoleh adalah Jumlah_Kota*C. 3.5.1.3 Spesifikasi Pemilihan Individu-Individu Elit dari Populasi Proses ini akan memilih individu-individu yang elit untuk dimasukkan ke dalam populasi pada generasi selanjutnya. Cara kerja proses ini dinyatakan dalam pseudocode berikut: Jumlah_Elit persentasi elit * jumlah populasi Jika Jumlah_Elit = 0 dan persentasi elit > 0, maka Jumlah_Elit 1 Selama x 0 sampai x = Jumlah_Elit lakukan masukkan populasi(x) ke dalam Populasi_Elit

41 Jika jumlah elit adalah 0 dan persentase elit lebih besar dari 0, maka jumlah elit diset menjadi 1. Hal ini untuk memastikan bahwa terdapat minimal 1 individu elit (nilai persentase elitisme lebih besar dari 0) pada saat elitisme diaktifkan. 3.5.1.4 Spesifikasi Metode Seleksi Individu-individu akan diseleksi untuk dimasukkan ke dalam mating pool, yang dilakukan dengan menggunakan metode seleksi tournament. Metode ini bekerja dengan cara memilih k individu secara acak untuk kemudian mempertandingkan setiap pasangan dua individu yang memiliki probabilitas kemenangan p (sekitar 0.6-0.7) bagi individu yang memiliki nilai fitness yang lebih baik. Kemudian pemenang yang didapat akan ditandingkan lagi, sampai tinggal tersisa satu pemenang yang akan dimasukkan ke dalam mating pool. Pseudocode dari metode seleksi ini adalah sebagai berikut: Untuk i=0 sampai dengan i=k-1 lakukan r nilai acak (0 < r < 1) * jumlah populasi masukkan populasi(r) ke dalam Tournament_Population Untuk i=0 sampai dengan i= k lakukan Untuk x=0 sampai dengan x=i dimana x=x+2 (i+1), lakukan r nilai acak (0 < r < 1) Jika fitness Tournament_Population(x) > fitness Tournament_Population(x+2 i ) maka MAX x, MIN x+2 i, sebaliknya jika tidak MAX x+2 i, MIN x

42 Jika r < p maka Tournament_Population(x) Tournament_Population(MAX), sebaliknya jika tidak, maka Tournament_Population(x) Tournament_Population(MIN) Masukkan pemenang, yaitu Tournament_Population(0) ke dalam mating pool 3.5.1.5 Spesifikasi Metode Persilangan Persilangan adalah proses dimana individu-individu di dalam mating pool disilangkan / dikawinkan untuk menghasilkan anak-anak. Pada program ini metode persilangan yang digunakan adalah metode order, yang menyimpan urutan kota secara relatif. Berikut ini adalah cara kerja/pseudocode dari metode ini: Start nilai acak (0 < Start < 1) * panjang kromosom End nilai acak (0 < End < 1) * panjang kromosom Jika Start > End maka, nilainya ditukar Untuk i=start sampai dengan i=end lakukan Kromosom_Anak(i) Kromosom_Parent1(i) j (End+1) modulus panjang kromosom Untuk i=0 sampai dengan i=(end-start)+1 lakukan Selama Kromosom_Parent2(j) ada di dalam Kromosom_Anak maka j (j + 1) modulus panjang kromosom

43 Kromosom_Anak(i) Kromosom_Parent2(j) Buat individu baru dengan mengeset kromosom menjadi Kromosom_Anak 3.5.1.6 Spesifikasi Metode Mutasi Mutasi adalah metode yang bersifat exploit, yang berusaha untuk mendapatkan hasil yang optimal di daerah yang menjanjikan dengan melakukan perubahan pada elemen-elemen kromosom yang ada. Metode mutasi yang digunakan dalam program adalah metode swap, cara kerja dari metode ini adalah dengan memilih dua elemen di dalam kromosom secara acak, dan posisi diantara dua elemen ini diganti. Efek dari metode ini adalah menyimpan informasi elemen yang berdekatan, walaupun urutannya menjadi lebih berantakan. Pseudocode dari metode ini adalah sebagai berikut: Start nilai acak (0 < Start < 1) * panjang kromosom End nilai acak (0 < End < 1) * panjang kromosom Jika Start > End maka, nilainya ditukar Temp Kromosom_Anak(Start) Kromosom_Anak(Start) Kromosom_Anak(End) Kromosom_Anak(End) Temp

44 3.5.2 Tabu Search 3.5.2.1 Spesifikasi Proses Inisialisasi Inisialisasi merupakan proses pemberian nilai awal untuk tiap parameter yang akan dipakai di dalam tabu search. Nilai-nilai yang akan diinialisasi adalah file TSP yang akan diselesaikan, panjang memori, jumlah pencarian solusi baru, jumlah pembaharuan solusi dan probabilitas pemilihan solusi. Kemudian tabu search akan menginisialisasi sebuah solusi awal dengan membuat solusi (rute) secara acak. Untuk membuat solusi awal, dilakukan langkahlangkah seperti pada pseudocode berikut: Buat sebuah solusi baru (nilai array berurut dari 1 sampai dengan jumlah kota 1) Selama x=0 sampai dengan panjang (array-1) / 2 lakukan Buat nomor r1 dan r2 secara acak (0 < r1, r2 < 1) posisi1 r1 * panjang array posisi2 r2 * panjang array Elemen di dalam array ditukar, (elemen di posisi1 ditukar dengan elemen di posisi2) Solusi Best solusi awal

45 3.5.2.2 Spesifikasi Proses Evaluasi dari Solusi Pada proses ini dilakukan pengevaluasian dari solusi (rute). Kemudian nilai evaluasi akan dimasukkan ke dalam solusi. Hitung Panjang_Rute_Solusi Masukkan nilai panjang rute solusi ke dalam solusi 3.5.2.3 Spesifikasi Proses Pencarian Solusi Baru Pada proses ini dilakukan pencarian solusi baru berdasarkan neighborhood pada solusi sebelumnya. Solusi baru V n yang didapatkan merupakan solusi terbaik dari neighborhood solusi sebelumnya V c dengan menggunakan algoritma 2-opt. Kemudian solusi baru V n menggantikan solusi lama V c dengan probabilitas yang ditentukan oleh user, jika nilai probabilitas adalah 1.0 maka tabu search akan menjadi algoritma yang deterministik. Setelah itu solusi V c kemudian diperbaharui lagi dengan mencari solusi baru V n sampai jumlah counter mencapai nilai ITER (jumlah pembaharuan solusi). Solusi yang terbaik saat ini masih bersifat lokal. Kemudian nilai counter_total dinaikkan dan solusi awal diciptakan lagi, diperbaharui dan proses tersebut diulang sampai nilai counter_total menjadi MAX- TRIES. Hal ini dilakukan agar solusi yang didapatkan merupakan solusi yang tersebar, sehingga bisa mendapatkan nilai optimal yang global. Setelah semua solusi terbaik yang bersifat lokal terkumpul, maka solusi yang terbaik dari semua solusi lokal adalah solusi terbaik yang bersifat global. Pseudocode dari algoritma ini adalah sebagai berikut:

46 counter_total 0 Selama counter_total < MAX-TRIES Inisialisasi solusi Vc count 0 Selama count < ITER Cari solusi terbaik dan valid Vn dari neighborhood Vc Vc Vn dengan probabilitas yang ditentukan oleh user Jika Vc lebih baik dari local_best maka local_best Vc counter counter + 1 counter_total counter_total + 1 Jika local_best lebih baik global_best maka global_best local_best 3.5.2.4 Spesifikasi Proses Algoritma 2-opt Algoritma 2-opt digunakan untuk mencari solusi terbaik dengan cara memperbaiki solusi yang ada. Cara kerja algoritma ini sama dengan metode mutasi swap pada algoritma genetik, yaitu dengan memilih 2 elemen untuk kemudian menukar posisinya. Algoritma 2-opt tidak mencari seluruh permutasi dari sebuah solusi melainkan hanya sebagian kecil saja, karena elemen yang diubah hanyalah 2 elemen. Algoritma ini memiliki kompleksitas O(n 2 ). Hal ini didapatkan berdasarkan cara kerja

47 algoritma ini yang melakukan perhitungan sebanyak n! C ( n,2) = kali. (2!*( n 2)!) Pseudocode dari algoritma 2-opt ini dinyatakan di bawah ini: Best Vc n! Selama x=0 sampai dengan x= C ( n,2) = (2!*( n 2)!) Selama y=jumlah kota sampai dengan y=x lakukan Buat solusi baru Vn Elemen_Solusi_Vn(y) Elemen_Solusi_Vc(x) Elemen_Solusi_Vn(x) Elemen_Solusi_Vc(y) Jika Vn lebih baik daripada Best, maka Best Vn