algoritma improved ant colony optimization (iaco) …repository.unair.ac.id/25714/1/mpm 70 - 12 ros...
TRANSCRIPT
ALGORITMA IMPROVED ANT COLONY OPTIMIZATION
(IACO) UNTUK MENYELESAIKAN VEHICLE ROUTING
PROBLEM
SKRIPSI
MUHAMMAD HARUN AR ROSYID
PROGRAM STUDI S-1 MATEMATIKA
DEPARTEMEN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA 2012
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
ii
ALGORITMA IMPROVED ANT COLONY OPTIMIZATION (IACO)
UNTUK MENYELESAIKAN VEHICLE ROUTING PROBLEM
SKRIPSI
Sebagai Salah Satu Syarat untuk Memperoleh Gelar Sarjana Sains Bidang Matematika
Pada Fakultas Sains dan Teknologi Universitas Airlangga
Disetujui Oleh :
Pembimbing I
Dr. Herry Suprajitno, M.Si NIP. 19680404 199403 1 020
Pembimbing II
Dr. Miswanto, M.Si NIP. 19680204 199303 1 002
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
iii
LEMBAR PENGESAHAN NASKAH SKRIPSI
Judul : Algoritma Improved Ant Colony Optimization (IACO)
untuk Menyelesaikan Vehicle Routing Problem
Penyusun : Muhammad Harun Ar Rosyid
Nomor Induk : 080810651 Tanggal Ujian : 10 Agustus 2012
Disetujui Oleh :
Pembimbing I
Dr. Herry Suprajitno, M.Si NIP. 19680404 199403 1 020
Pembimbing II
Dr. Miswanto, M.Si NIP. 19680204 199303 1 002
Mengetahui :
Ketua Program Studi S-1 Matematika Departemen Matematika
Fakultas Sains dan Teknologi Universitas Airlangga
Dr. Miswanto, M.Si
NIP. 19680204 199303 1 002
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
iv
PEDOMAN PENGGUNAAN SKRIPSI
Skripsi ini tidak dipublikasikan, namun tersedia di perpustakaan dalam
lingkungan Universitas Airlangga, diperkenankan untuk dipakai sebagai referensi
kepustakaan, tetapi pengutipan harus seijin penulis dan harus menyebutkan
sumbernya sesuai kebiasaan ilmiah. Dokumen skripsi ini merupakan hak milik
Universitas Airlangga.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
v
KATA PENGANTAR
Dengan menyebut asma Allah SWT yang Maha Pengasih dan Maha
Penyayang. Segala puji syukur tercurahkan kepada Allah SWT sumber inspirasi
kehidupan yang telah melimpahkan rahmat dan karunia-Nya sehingga dapat
terselesaikannya penulisan skripsi ini. Shalawat serta salam semoga senantiasa
tercurahkan kepada junjungan kita, Nabi Muhammad SAW, pemimpin sekaligus
sebaik-baiknya suri tauladan bagi kehidupan umat manusia, sehingga penulis
dapat menyelesaikan skripsi dengan judul “Algoritma Improved Ant Colony
Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem”.
Ucapan terima kasih disampaikan kepada:
1. Kedua orang tuaku Achmad Dahuri dan Siti Arliyah yang selalu memberikan
kasih dan sayang terbaiknya untukku dengan setulus hati. Skripsi ini
merupakan salah satu bentuk hormatku kepada orang tuaku.
2. Kakakku Nur Emey Kurniati dan adikku Nur Rohma Zamzami yang selalu
memberikan inspirasi dalam kehidupanku.
3. Dr. Miswanto, M.Si selaku Kepala Departemen Matematika Fakultas Sains
dan Teknologi Universitas Airlangga sekaligus sebagai dosen pembimbing II
yang telah memberikan banyak masukan, waktu, pikiran, dan semangat.
4. Dr. Herry Suprajitno, M.Si selaku dosen pembimbing I yang telah memberikan
banyak arahan, masukan, perhatian, tenaga, pikiran, rasa sabar yang begitu besar
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
vi
dan pengetahuan yang tidak ternilai harganya baik dalam bidang akademik
maupun pengetahuan agama.
5. Auli Damayanti, S.Si, M.Si dan Dra. Utami Dyah Purwati, M.Si selaku dosen
penguji I dan penguji II yang telah memberikan banyak masukan berupa kritikan
dan saran yang sangat bermanfaat demi perbaikan skripsi ini.
6. Dra. Inna Kuswandari, M.Si selaku dosen wali selama menjadi mahasiswa
Fakultas Sains dan Teknologi Universitas Airlangga yang telah banyak
memberikan arahan dan saran demi kesuksesan menjadi mahasiswa.
7. Sahabat terhebatku yang selalu menginspirasi dan memberikan motivasi
dalam bentuk apapun, I Putu Andeandika “thanks a lot for all of your support
and your help brother”, dan untuk sohib sekamar kos 3 tahunku, Abie Jaydin
“thanks a lot for your help and you give me many inspiration brother”.
8. Teman – teman seperjuangan, Safik, Rijal, Zuda, Anas, Adis, Yani, Andry,
Atok, dan Bimbim, kalianlah yang memberikan pengalaman hebat selama kuliah
serta sahabat-sahabatku semua mahasiswa Matematika FSainTek Universitas
Airlangga angkatan 2008 atas dukungan dan kebersamaannya selama ini yang
telah menjadi “keluarga baruku”, I wanna say, “YOU ARE GREAT
GUYS…!!!”.
9. Seorang perempuan berkerudung yang terlihat sangat anggun ketika
mengenakan style kerudung “Paris” nya, Vindya Ian Padmasari, S.T, “thanks so
much for your support and I hope u will be better woman with many story about
your success”.
10. “Master Suhu” pemrograman dan jaringan, Mas Koni dan Mas Azis, yang
memberikan pengetahuan yang lebih luas dalam hal komputasi.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
vii
11. Serta semua pihak yang tidak dapat disebutkan, yang telah membantu
terselesaikannya skripsi ini.
Penulis menyadari bahwa skripsi ini masih banyak terdapat kekurangan. Oleh
karena itu, penulis mengharapkan kritik dan saran yang membangun agar skripsi ini
dapat lebih baik lagi.
Surabaya, Juli 2012
Penyusun
Muhammad Harun Ar Rosyid
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
viii
Muhammad Harun Ar Rosyid, 2012. Algoritma Improved Ant Colony
Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem. Skripsi ini di bawah bimbingan Dr. Herry Suprajitno, M.Si, dan Dr. Miswanto, M.Si. Departemen Matematika. Fakultas Sains dan Teknologi. Universitas Airlangga.
ABSTRAK
Vehicle Routing Problem (VRP) merupakan salah satu masalah transportasi yang dapat digambarkan sebagai sekumpulan kendaraan yang memulai dan mengakhiri perjalanannya untuk melayani sejumlah customer pada pusat fasilitas yang dinamakan depot, dengan setiap customer mempunyai demand atau permintaan dan setiap kendaraan memiliki kapasitas kendaraan yang sama dan total jarak tempuh maksimum kendaraan. Penulisan skripsi ini bertujuan untuk menentukan rute yang optimal untuk sejumlah kendaraan sebagai solusi dari permasalahan vehicle routing problem dengan menggunakan algoritma Improved Ant Colony Optimization (IACO). Algoritma IACO merupakan ant colony optimization (algoritma semut) yang ditambah dengan proses mutasi dan local search untuk memperbaiki solusi. Algoritma ant colony optimization merupakan algoritma yang meniru perilaku semut dalam pencarian makanan dengan mencari rute perjalanan terpendek dimulai dari sarang hingga ke tempat makanan. Algoritma IACO mencakup lima proses dasar, yaitu proses inisialisasi parameter, konstruksi rute, proses mutasi, local search, dan proses update pheromone. Proses mutasi yang digunakan adalah reciprocal exchange, dan proses local search yang digunakan adalah local search 2-opt exchange. Data dari beberapa permasalahan vehicle routing problem yang mempunyai variasi pada banyaknya customer, kapasitas kendaraan, dan total jarak tempuh maksimum kendaraan diimplementasikan pada algoritma IACO. Program dibuat dengan bahasa pemrograman Java dan menggunakan software NetBeans IDE 7.0 untuk menerapkan algoritma IACO dalam pencarian solusinya. Berdasarkan perbandingan hasil untuk nilai parameter yang berbeda, semakin kecil nilai alpha, rho, dan konstanta Q, serta semakin besar nilai beta menghasilkan solusi yang lebih baik. Kata kunci : Algoritma IACO, Algoritma Semut, Vehicle Routing Problem, Mutasi,
Local Search.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
ix
Muhammad Harun Ar Rosyid, 2012. Improved Ant Colony Optimization (IACO)
Algorithm to solve Vehicle Routing Problem. This Skripsi is supervised by Dr. Herry Suprajitno, M.Si, and Dr. Miswanto, M.Si. Mathematics Department, Faculty of Science and Technology, Airlangga University.
ABSTRACT
Vehicle routing problem (VRP) is one of the transportation problem that can be described as a set of vehicles that start and end its journey to serve a customer at a facility called a depot, with every customer has a demand or request, and all of the vehicle has same capacity and maximum total distance of vehicle. The thesis aims to determine the optimal route for a number of vehicles as the solution of the problem of vehicle routing problem using Improved Ant Colony Optimization (IACO) algorithm. IACO algorithm is ant colony optimization (ant algorithm) which coupled with the process of mutation and local search to improve solutions. Ant colony optimization algorithm is an algorithm that mimics the behavior of ants in search of food by finding the shortest route starts from the nest to the food place. IACO algorithm includes five basic processes, namely the process of initialization parameters, construction of the route, the process of mutation, local search, and update the pheromone. Mutation process used is a reciprocal exchange, and the local search process used is a local search 2-opt exchange. Data from some of the problems of vehicle routing problem that has many variations on the customer, vehicle capacity, and maximum total distance of vehicle implemented on IACO. Programs created with the Java programming language and use the NetBeans IDE 7.0 software for implementing the solution in the search algorithm IACO. Based on the comparison of results for different parameter values, the smaller the value of alpha, rho, and the constant Q, and the greater the value of beta produces a better solution. Key words: IACO Algorithm, Ant Colony Optimization, Vehicle Routing Problem,
Mutations, Local Search.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
x
DAFTAR ISI
Halaman LEMBAR JUDUL ………………………………………....…… .....................i LEMBAR PERNYATAAN ....…………………………….……….. ................ii LEMBAR PENGESAHAN ……………………………………........ ...............iii LEMBAR PEDOMAN PENGGUNAAN SKRIPSI …….……….. ...................iv KATA PENGANTAR .......................................................................................v ABSTRAK .........................................................................................................viii ABSTRACK ......................................................................................................ix DAFTAR ISI ......................................................................................................x DAFTAR GAMBAR .........................................................................................xii DAFTAR TABEL .............................................................................................xiii BAB I PENDAHULUAN ................................................................................1
1.1 Latar Belakang ................................................................................1 1.2 Rumusan Masalah ...........................................................................3 1.3 Tujuan .............................................................................................3 1.4 Manfaat ...........................................................................................3
BAB II TINJAUAN PUSTAKA ........................................................................5 2.1 Graph ..............................................................................................5 2.2 Vehicle Routing Problem ................................................................6 2.2.1 Jenis-jenis Vehicle Routing Problem .....................................9 2.3 Algoritma ........................................................................................12 2.4 Optimisasi .......................................................................................13 2.5 Algoritma Ant Colony Optimization (ACO) ...................................13 2.6 Algoritma Improved Ant Colony Optimization (IACO) .................16 2.6.1 Konstruksi Rute .....................................................................14 2.6.2 Mutasi ....................................................................................17 2.6.3 Local Search ..........................................................................19 2.6.3.1 Metode 2-Opt ............................................................19 2.6.4 Update Pheromone ................................................................21
BAB III METODE PENELITIAN......................................................................22 BAB IV PEMBAHASAN ..................................................................................27 4.1 Prosedur Algoritma IACO .............................................................27 4.1.1 Prosedur Inisialisasi .............................................................27 4.1.2 Prosedur Konstruksi Rute .....................................................29 4.1.3 Prosedur Cek nilai_random ≤ Pm(t) ....................................33 4.1.4 Prosedur Mutasi ...................................................................35 4.1.5 Prosedur Local search .........................................................35 4.1.6 Prosedur Update pheromone ................................................36 4.2 Data ................................................................................................37 4.3 Penyelesaian Manual terhadap Permasalahan P01 ........................39 4.4 Implementasi Program pada Beberapa Permasalahan ...................44 4.4.1 Permasalahan P01 ................................................................44 4.4.2 Permasalahan P02 ................................................................45 4.4.3 Permasalahan P03 ................................................................47
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
xi
4.4.4 Permasalahan P04 ................................................................49 4.4.5 Permasalahan P05 ................................................................50 4.4.6 Permasalahan P06 ................................................................53 4.4.7 Permasalahan P07 ................................................................54 4.4.8 Permasalahan P08 ................................................................56 4.4.9 Permasalahan P09 ................................................................58 4.4.10 Permasalahan P10 ..............................................................61 4.4.11 Permasalahan P11 ..............................................................65 4.4.12 Permasalahan P12 ..............................................................66 4.4.13 Permasalahan P13 ..............................................................68 4.4.14 Permasalahan P14 ..............................................................70 4.5 Perbandingan Hasil untuk Nilai Parameter yang Berbeda .............72 BAB V KESIMPULAN DAN SARAN .............................................................75 DAFTAR PUSTAKA .........................................................................................76 LAMPIRAN
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
xii
DAFTAR GAMBAR
Gambar Judul Halaman 2.1 2.2 2.3 3.1 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13
Contoh penyelesaian VRP dengan 3 rute Percobaan yang dilakukan Goss et al. (1989)
Contoh metode 2-opt Flowchart dari algoritma IACO
Prosedur algoritma IACO Prosedur inisialisasi
Prosedur pengisian parameter Prosedur pengisian data pelanggan
Prosedur konstruksi rute Prosedur hitung nilai Pij(k)
Prosedur cek konstrain Prosedur pembentukan rute
Prosedur cek nilai_random ≤ Pm(t) Prosedur Pm(t) Prosedur mutasi
Prosedur local search Prosedur update pheromone
7 14 20 26 27 28 28 29 30 30 31 33 34 34 35 36 37
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
xiii
DAFTAR TABEL
Tabel Judul Halaman 2.1
2.2 4.1 4.2 4.3 4.4 4.5
Parameter yang digunakan pada model matematis dasar VRP
Indeks yang digunakan pada model matematis VRP Permasalahan VRP (Beasley, 1990)
Total jarak semua rute dengan pembanding alpha Total jarak semua rute dengan pembanding beta Total jarak semua rute dengan pembanding rho
Total jarak semua rute dengan pembanding konstanta Q
9 9 38 73 73 74 74
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
xiv
DAFTAR LAMPIRAN
No. Judul Lampiran 1. Data Permasalahan P01 2. Data Permasalahan P02 3. Data Permasalahan P03 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. 30.
Data Permasalahan P04 Data Permasalahan P05 Data Permasalahan P06 Data Permasalahan P07 Data Permasalahan P08 Data Permasalahan P09 Data Permasalahan P10 Data Permasalahan P11 Data Permasalahan P12 Data Permasalahan P13 Data Permasalahan P14 Source code program Hasil Implementasi Program pada Permasalahan P01 Hasil Implementasi Program pada Permasalahan P02 Hasil Implementasi Program pada Permasalahan P03 Hasil Implementasi Program pada Permasalahan P04 Hasil Implementasi Program pada Permasalahan P05 Hasil Implementasi Program pada Permasalahan P06 Hasil Implementasi Program pada Permasalahan P07 Hasil Implementasi Program pada Permasalahan P08 Hasil Implementasi Program pada Permasalahan P09 Hasil Implementasi Program pada Permasalahan P10 Hasil Implementasi Program pada Permasalahan P11 Hasil Implementasi Program pada Permasalahan P12 Hasil Implementasi Program pada Permasalahan P13 Hasil Implementasi Program pada Permasalahan P14 Output program
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perancangan sistem distribusi yang efektif dapat menghasilkan
penghematan biaya pengeluaran yang cukup signifikan bagi perusahaan. Potensi
penghematan biaya dapat dihasilkan dari distribusi produk ke beberapa lokasi
customer yang dikombinasikan ke dalam beberapa rute. Masalah pengoperasian
dan perencanaan yang berhubungan dengan pendistribusian barang dipengaruhi
oleh beberapa faktor seperti jangkauan area, biaya pengangkutan dan waktu yang
diperlukan untuk pengangkutan. Permasalahan pendistribusian barang tersebut
bertujuan meminimalkan beberapa sasaran pendistribusian dengan mengambil
asumsi untuk semua rute, kendaraan harus berangkat dan kembali pada pusat
fasilitas (Christofides et al., 1979).
Permasalahan untuk meminimalkan rute pendistribusian barang dengan
keterbatasan kapasitas kendaraan biasanya disebut dengan Vehicle Routing
Problem (VRP). VRP adalah suatu nama umum yang diberikan kepada suatu
permasalahan dengan satu set rute untuk sejumlah armada angkut atau kendaraan
yang berangkat dan kembali ke suatu tempat yang dinamakan dengan depot, yang
harus disebarkan untuk melayani beberapa pelanggan.
Masalah vehicle routing termasuk dalam permasalahan NP-hard (Non
Polynomial Hardness), yaitu suatu permasalahan yang membutuhkan komputasi
yang lama dalam mencari penyelesaian masalah yang optimal sehingga diperlukan
metode pencarian yang efektif untuk menyelesaikan permasalahan tersebut. Pada
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
2
umumnya solusi masalah vehicle routing diperoleh dengan metode heuristik, yaitu
metode yang digunakan untuk mencari solusi melalui semua kemungkinan yang
ada, tetapi dalam pencariannya tidak bisa dijamin akan ditemukan solusi yang
terbaik, sehingga metode ini biasanya disebut dengan metode perkiraan. Salah
satu metode heuristik yang digunakan adalah Ant Colony Optimization (ACO)
(Christofides et al. (1979); Foulds (1984)).
Jika dengan memisalkan depot pusat sebagai sarang dan customer sebagai
makanan, maka VRP sangat mirip dengan perilaku pencarian makanan (food-
seeking) oleh koloni semut yang terjadi di alam. Hal ini membuat pengkodean
ACO untuk VRP cukup sederhana. Pada studi yang dilakukan oleh Bullnheimer
et al. (1997) menunjukkan sebuah algoritma hybrid ant system dengan
menggunakan prosedur local search 2-opt exchange dan algoritma saving untuk
VRP yang mampu memperbaiki kualitas dari solusi awal yang diperoleh dari
algoritma semut. Dalam ACO, 2-opt exchange digunakan untuk memperbaiki
solusi dalam rute-rute yang telah ditemukan oleh masing-masing kendaraan.
Pada skripsi ini akan dibahas masalah vehicle routing yang bertujuan
menentukan rute yang optimal untuk sejumlah kendaraan yang akan beroperasi
mendistribusikan barang ke sejumlah pelanggan. Rute yang terbentuk diharapkan
menghasilkan total jarak yang minimum sehingga akan menghemat biaya
transportasi untuk pendistribusian barang. Dari uraian di atas, penulis tertarik
untuk menyelesaikan masalah vehicle routing dengan menggunakan algoritma
improved ant colony optimization, yaitu algoritma yang dibentuk dengan
menambahkan proses mutasi dan local search sebelum proses update pheromone
ke dalam algoritma ACO. Dengan adanya proses mutasi dan local search,
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
3
algoritma IACO mempunyai kelebihan, yaitu mampu menemukan solusi optimal
dari solusi awal yang terbentuk pada proses konstruksi rute.
1.2 Rumusan Masalah
Berdasarkan uraian latar belakang di atas, maka permasalahan yang akan
dibahas dalam skripsi ini adalah:
1. Bagaimana menyelesaikan vehicle routing problem (VRP) dengan
menggunakan algoritma Improved Ant Colony Optimization (IACO) ?
2. Bagaimana membuat program komputer untuk menyelesaikan VRP
dengan algoritma IACO ?
3. Bagaimana menerapkan program ke dalam contoh kasus ?
1.3 Tujuan
Dalam penulisan skripsi ini, penulis mempunyai tujuan sebagai berikut:
1. Menyelesaikan vehicle routing problem (VRP) dengan menggunakan
algoritma Improved Ant Colony Optimization (IACO)
2. Membuat program komputer untuk menyelesaikan VRP dengan algoritma
IACO
3. Menerapkan program ke dalam contoh kasus
1.4 Manfaat
Adapun manfaat yang nantinya akan didapatkan adalah sebagai berikut:
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
4
1. Dari hasil skripsi ini nantinya, diharapkan dapat menjadi referensi
alternatif metode penyelesaian yang dapat digunakan untuk menyelesaikan
VRP dalam kehidupan nyata.
2. Diharapkan pula dapat menjadi bahan pertimbangan dan perbandingan
untuk penerapan algoritma lainnya pada VRP yang dapat mendukung
perkembangan ilmu pengetahuan dan teknologi pada masa mendatang.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
5
BAB II
TINJAUAN PUSTAKA
Dalam penulisan ini, diperlukan definisi maupun informasi guna
memperdalam materi dan mempermudah dalam pembuatan penulisan, diantaranya
sebagai berikut:
2.1 Graph
Pada bagian ini, definisi diambil dari buku karya Chartrand dan
Oellerman (1993).
Definisi 2.1 Graph G didefinisikan sebagai himpunan berhingga V(G) yang tidak
kosong yang anggotanya disebut titik (vertice) dan himpunan E(G) yang
mungkin kosong, yang anggotanya terdiri dari pasangan dua elemen yang
berbeda dari V(G) dan disebut garis (edge). Elemen dari V(G) dinotasikan
dengan iv dan elemen dari E(G) dinotasikan dengan jivv dan kadang
dinotasikan dengan ie . Jika terdapat garis e yang menghubungkan titik iv
dan jv maka iv dikatakan terhubung (adjacent) dengan jv dalam hal ini
titik iv dan jv dikatakan insiden dengan e .
Definisi 2.2 Order dari graph G adalah banyaknya titik-titik pada graph G,
dinotasikan |V(G)|.
Definisi 2.3 Perjalanan (walk) dari graph G adalah urutan secara bergantian titik-
titik elemen |V(G)| dan garis-garis elemen E(G) yang terbentuk :
W : v0, e1, v1, e2, v2, …, vn-1, en, vn, (n ≥ 0)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
6
Yang dimulai dan diakhiri dengan titik, sehingga setiap garis incident
dengan titik sebelumnya dan sesudahnya.
Definisi 2.4 Path adalah walk dimana tidak ada titik yang diulang (titiknya tidak
boleh berulang).
Definisi 2.5 Sikel (cycle) adalah walk v0, v1, …, vn, n ≥ 3, dengan v0 = vn, dan
titik-titik v1, v2, …, vn semuanya berbeda. Dengan kata lain sikel adalah
path tertutup. Sikel dengan panjang n mempunyai n titik.
Definisi 2.6 Misalkan u dan v titik-titik dalam graph G, u dikatakan terhubung
(connected) pada v jika terdapat path u-v.
Definisi 2.7 Graph G dikatakan terhubung (connected) jika setiap dua titiknya
dihubungkan oleh suatu path.
Definisi 2.8 Graph lengkap (complete graph) adalah suatu graph dengan order p
dimana setiap dua titik yang berbeda selalu adjacent.
2.2 Vehicle Routing Problem (VRP)
Vehicle routing problem berkaitan dengan penentuan rute optimal untuk
permasalahan lebih dari satu kendaraan (vehicle) dengan kapasitas tertentu untuk
mengunjungi sejumlah pelanggan dengan permintaannya masing-masing. Rute
yang terbentuk harus dimulai dan diakhiri di suatu tempat yang disebut depot.
Setiap pelanggan dikunjungi hanya satu kali dan total permintaan semua
pelanggan dalam satu rute tidak melebihi kapasitas kendaraan yang melayani rute
tersebut. Contoh penyelesaian VRP diberikan pada Gambar 2.1.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
7
Gambar 2.1 Contoh penyelesaian VRP dengan 3 rute
Menurut Toth dan Vigo (2002), secara matematis VRP dapat dinyatakan
sebagai suatu digraph G = (V, A) dengan V = {0, 1, …, n} adalah himpunan
simpul yang menunjukkan lokasi pelanggan dan A = {(i, j) | i, j V, i ≠ j} yaitu
himpunan sisi berarah yang menyatakan jalan penghubung lokasi pelanggan.
Simpul 0 menunjukkan depot, yaitu tempat menyimpan kendaraan yang
digunakan untuk distribusi dan merupakan tempat dimulai dan diakhirinya suatu
rute kendaraan. Banyaknya kendaraan yang tersedia di depot adalah K dengan
kapasitas kendaraan adalah Q. Setiap pelanggan i memiliki permintaan sebanyak
qi.
Tujuan dari VRP adalah menentukan rute yang optimal untu`k sejumlah
kendaraan maka VRP dapat dimodelkan dalam bentuk sebagai berikut (Toth dan
Vigo, 2002):
n n ∑∑∑
1
0
0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
8
dengan kendala:
1. Setiap pelanggan hanya dikunjungi satu kali:
∑∑ 1
1
0
1,2,…, ≠
2. Kendaraan yang sama akan mengunjungi dan meninggalkan setiap pelanggan:
∑
0
∑
0
0 1,2,…, 0,1,…,
3. Terdapat K kendaraan yang beroperasi yang berawal dari depot:
∑ 0
1
1 1,2,…,
4. Total permintaan dari setiap kota dalam rute yang dilalui setiap kendaraan
tidak boleh melebihi kapasitas muatan kendaraan:
∑∑
1
1,2,…,
5. Total jarak dari rute yang dilalui setiap kendaraan tidak boleh melebihi jarak
tempuh maksimal kendaraan yang diberikan:
∑∑
0
0
1,2,…,
dengan:
{1, 0
n n n n n
(2.7)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
9
Tabel 2.1 Parameter yang digunakan pada model matematis dasar VRP
Notasi Keterangan
xijk Kendaraan k melayani kota j setelah mengunjungi kota i
dij Jarak antara kota i dengan kota j
qi Permintaan dari kota i
W Kapasitas maksimum dari kendaraan
E Jarak tempuh maksimum kendaraan
Tabel 2.2 Indeks yang digunakan pada model matematis VRP
Notasi Keterangan
i Indeks kota awal
j Indeks kota tujuan
k Indeks kendaraan
2.2.1 Jenis-jenis Vehicle Routing Problem
Dalam penggunaan VRP untuk dunia nyata, banyak faktor sampingan yang
muncul. Faktor-faktor tersebut berpengaruh pada munculnya variasi dari VRP,
antara lain:
1. Capacitated VRP (CVRP), dengan faktor: Setiap kendaraan punya
kapasitas yang terbatas.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
10
CVRP adalah sebuah VRP dimana sejumlah kendaraan dengan kapasitas
tertentu yang harus melayani sejumlah permintaan pelanggan yang telah
diketahui untuk satu komoditas dari sebuah depot dengan biaya
minimum. Pada dasarnya CVRP sama seperti VRP dengan faktor
tambahan yaitu setiap kendaraan mempunyai kapasitas tertentu untuk
satu komoditas. CVRP bertujuan meminimalisasi jumlah kendaraan dan
total waktu perjalanan, dan total permintaan barang untuk tiap rute tidak
melebihi kapasitas kendaraan yang melewati rute tersebut.
2. VRP with Time Windows (VRPTW), dengan faktor: Setiap pelanggan
harus disuplai dalam jangka waktu tertentu.
3. Mulitple Depot VRP (MDVRP), dengan faktor: Distributor memiliki
banyak depot untuk menyuplai pelanggan.
Sebuah perusahaan yang memiliki lebih dari satu depot, dan pelanggan-
pelanggannya tersebar di sekitar depot-depot yang ada, maka masalah
pendistribusiannya harus dimodelkan menjadi sebuah kumpulan dari
VRP-VRP yang independen. Namun, jika pelanggan dan depot-depot
tidak terkumpul secara teratur maka masalahnya menjadi Multi-Depot
VRP atau MDVRP. Sebuah MDVRP membutuhkan pengaturan para
pelanggan ke depot-depot yang ada. Setiap kendaraan berangkat dari satu
depot melayani pelanggan-pelanggan yang sudah ditentukan oleh depot
tersebut, dan kembali lagi ke depot tersebut. Tujuan utama dari MDVRP
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
11
adalah untuk melayani semua pelanggan, sementara jumlah kendaraan
dan jarak perjalanan diminimalisasi.
4. VRP with Pick-Up and Delivering (VRPPD), dengan faktor: Pelanggan
mungkin mengembalikan barang pada depot asal.
VRPPD adalah sebuah VRP dimana pelanggan mengembalikan barang
yang sudah diantarkan. Barang yang dikembalikan dapat dimasukkan ke
dalam kendaraan pengantar. Perencanaan pengantaran menjadi lebih sulit
dan dapat mengakibatkan penyalahgunaan kapasitas kendaraan,
memperbesar jarak perjalanan atau kendaraan yang diperlukan lebih dari
yang seharusnya. Seluruh permintaan pengantaran dimulai dari depot dan
seluruh permintaan penjemputan dibawa kembali ke depot, sehingga
tidak ada pertukaran barang antar pelanggan.
5. Split Delivery VRP (SDVRP), dengan faktor: Pelanggan dilayani dengan
kendaraan berbeda.
SDVRP adalah perluasan VRP dimana setiap pelanggan dapat dilayani
dengan kendaraan yang berbeda bilamana biayanya dapat dikurangi.
Perluasan ini dapat dilaksanakan jika jumlah permintaan pelanggan sama
dengan kapasitas kendaraan. Tujuan dari SDVRP untuk
meminimalisasikan jumlah kendaraan dan total waktu perjalanan untuk
pelayanan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
12
6. Stochastic VRP (SVRP), dengan faktor: Munculnya random values
(seperti jumlah pelanggan, jumlah permintaan, waktu pelayanan atau
waktu perjalanan).
Untuk mendapatkan solusi dari SDVRP, maka masalah harus dibagi
dalam dua tahap, solusi pada tahap pertama ditentukan sebelum variable
random diketahui. Pada tahap kedua pengoreksian dilakukan jika nilai
dari variable random sudah diketahui.
7. Periodic VRP (PVRP), dengan faktor: Pengantaran hanya dilakukan di
hari tertentu.
PVRP merupakan VRP yang digeneralisasi dengan memperluas rentang
perencanaan pengiriman menjadi M hari, dari semula hanya dalam
rentang sehari, dengan tujuan meminimalisasi jumlah kendaraan dan total
waktu perjalanan untuk melayani tiap pelanggan.
(Tarigan, 2008)
2.3 Algoritma
Penjelasan mengenai algoritma akan dijelaskan pada definisi berikut.
Definisi 2.9 Algortima merupakan suatu himpunan aturan atau instruksi yang
telah dirumuskan dengan baik (well – defined) dengan masukan
khusus (spesific input) untuk memperoleh keluaran khusus (spesific
output) dalam langkah – langkah yang jumlahnya berhingga.
(Chartrand dan Oellerman, 1993)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
13
2.4 Optimisasi
Optimisasi adalah suatu proses untuk mencapai hasil yang optimal (nilai
efektif yang dapat dicapai). Dalam disiplin matematika optimisasi merujuk pada
studi permasalahan yang mencoba untuk mencari nilai minimal atau maksimal
dari suatu fungsi riil. Untuk dapat mencapai nilai optimal baik minimal atau
maksimal tersebut, secara sistematis dilakukan pemilihan nilai variabel integer
atau riil yang akan memberikan solusi optimal.
(Wardy, 2007)
2.5 Algoritma Ant Colony Optimization (ACO)
Pada tahun 1989, Goss et al. membuat percobaan dengan menggunakan
spesies semut Iridomyrmex Humilis (semut Argentina). Percobaan itu untuk
menunjukkan kemampuan kerjasama semut mendapatkan jalan terpendek menuju
sumber makanan dengan bantuan pheromone yaitu zat kimia yang berasal dari
kelenjar endokrin dan digunakan makhluk hidup untuk mengenali sesama jenis
dalam satu spesies. Percobaan tersebut seperti terlihat pada Gambar 2.2.
Pada Gambar 2.2, semut 1 dan semut 2 meninggalkan sarang pada waktu
yang sama. Semut-semut tersebut sampai pada titik pilihan 1 bersama-sama dan
membuat keputusan dengan probabilitas yang sama untuk memilih cabang. Semut
1 memilih cabang yang lebih pendek dan mencapai sumber makanan lebih dulu
(melalui titik A), mengambil makanan dan kembali lagi ke sarang. Ketika kembali
pada titik pilihan 2, semut tersebut mendeteksi pheromone pada cabang yang lebih
pendek (pheromone yang ditaruh oleh semut 1 itu sendiri pada saat perjalanan
menuju sumber makanan) dan dengan probabilitas yang tinggi untuk memilih
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
14
cabang itu kembali. Pada cabang yang lebih jauh tidak mengandung pheromone di
dekat titik percabangan karena semut yang memilihnya (termasuk semut 2) belum
sampai pada titik pilihan 2. Pada akhirnya kedua semut pada saat menuju dan dari
sumber makanan akan mengambil jalan yang lebih pendek dengan probabilitas
yang tinggi dan pheromone yang ada pada cabang yang lebih panjang tidak diberi
penguatan lagi karena tidak ada semut yang menaruh pheromone dijalur tersebut
sehingga pheromone akan menguap dan semut akan berjalan pada jalan yang
paling pendek.
(Gaertner, 2004)
Sarang
Titik pilihan 1 Titik A
Titik pilihan 2
Sumber makanan
Titik B
Semut 1
Semut 2
Gambar 2.2 Percobaan yang dilakukan Goss et al. (1989)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
15
Dari percobaan yang digambarkan pada Gambar 2.2 disusun sebuah
algoritma untuk mencari solusi dari sebuah permasalahan optimalisasi
kombinatorik yang dinamakan Ant Colony Optimization (ACO). ACO secara
umum terdapat sejumlah populasi semut buatan (ant) yang melakukan sebuah
perjalanan untuk membentuk solusi dari sebuah permasalahan optimalisasi
kombinatorik. Algoritma ini menyatakan permasalahan ke dalam sebuah graph,
ant melakukan perjalanan pada setiap cabang dari node satu ke node yang lain
sehingga membentuk suatu path yang merupakan representasi dari solusi pada
permasalahan tersebut.
Langkah-langkah ACO:
1. Inisialisasi parameter, yaitu:
Tetapan pengendali intensitas pheromone α ≥ 0 , betha β ≥ 0), nilai
pheromone awal antara node i dan node j ( ij), koefisien penguapan ( ),
jarak antara node i dan node j (dij), jumlah semut atau kendaraan, jumlah
node atau pelanggan, jumlah siklus atau iterasi, dan kostanta Q (Q > 0).
2. Menempatkan sejumlah ant pada node awal
3. Mengisi tabu list dengan cara menghitung nilai probabilitas dari node awal
ke node yang akan dikunjungi. Tabu list adalah tempat yang disediakan
untuk penyiimpanan sementara dari solusi – solusi yang dihasilkan pada
tiap iterasi. Persamaan untuk menentukan nilai probabilitas sebagai
berikut:
( ) [ ]
[
1 ]
∑ [ ] [
1 ]
n
(2.8)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
16
keterangan:
pij(t) = probabilitas dari node i ke node j disaat t
4. Menghitung panjang perjalanan.
Setelah semua semut menyelesaikan satu siklus selanjutnya dihitung
panjang perjalanan. Indeks s menyatakan indeks urutan perjalanan, node
asal dinyatakan tabuk (s) dan node – node lainnya dinyatakan sebagai {N-
tabuk}. Menghitung panjang perjalanan dengan rumusan sebagai berikut:
n 1 ∑ 1 n - 1 1 (2.9)
5. Perbaruhi matrik pheromone
( 1) ( ) ∑
1 (2.10)
dengan adalah perubahan harga pheromone antar node setiap semut
yang dihitung berdasarkan persamaan
{
t ( , ) n a a tab
0, t ( , ) a a (2.11)
6. Apabila siklus maksimum atau kondisi stagnan belum terpenuhi, maka
kosongkan tabu list dan kembali ke langkah 2. Apabila siklus maksimum
atau kondisi stagnan telah terpenuhi maka iterasi berakhir. Kondisi stagnan
yaitu kondisi semua ant melakukan tour yang sama.
(Dorigo et al., 1996)
2.6 Algoritma Improved Ant Colony Optimization
Dalam jurnal karya Bin et al. (2008) dijelaskan bahwa algoritma IACO
adalah algoritma ACO yang telah dimodifikasi dengan menyertakan proses mutasi
dan local search sebelum proses update pheromone.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
17
2.6.1 Konstruksi Rute
Pada ACO, seekor semut disimulasikan sebagai kendaraan, dan semut
tersebut membentuk sebuah rute, rute tersebut terdiri dari pelanggan-pelanggan
(kota) yang terpilih oleh semut tersebut. Pelanggan-pelanggan yang sudah
dikunjungi oleh seekor semut akan disimpan dalam tabu list. Dalam pengambilan
keputusan seekor semut k memilih pelanggan (kota) j setelah mengunjungi
pelanggan (kota) i menggunakan formula probabilitas sebagai berikut:
( ) {
∑
0 (2.12)
dengan ( ) adalah probabilitas semut k memilih pelanggan (kota) j setelah
mengunjungi pelanggan (kota) i pada sebuah rute ke-k, adalah feromon jarak
pelanggan i ke pelanggan j, adalah visibilitas dari jarak pelanggan i ke
pelanggan j dan nilai diperoleh dari 1
dimana dij adalah jarak
pelanggan i ke pelanggan j, dan adalah masing-masing pengendali intensitas
jejak semut dan pengendali visibilitas jarak pelanggan i ke pelanggan j (α ≥ 0, β ≥
0) , dan adalah himpunan dari pelanggan-pelanggan yang tidak boleh dipilih
oleh semut k.
(Bin et al., 2008)
2.6.2 Mutasi
Dalam algoritma genetik, definisi tentang mutasi adalah sebagai berikut.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
18
Definisi 2.10 Mutasi merupakan proses perubahan sebagian sifat individu
secara random yang menghasilkan struktur genetik baru.
(Obitko, 1998)
Ada beberapa jenis mutasi yang didefinisikan Obitko (1998), diantaranya:
a. Mutasi Inversi (inversion Mutation)
Memilih dua posisi dalam kromosom secara acak dan kemudian membalik
untaian diantara dua posisi itu.
b. Mutasi Sisipan (Insertion Mutation)
Memilih gen secara acak dan menyisipkannya di posisi acak.
c. Mutasi perpindahan (Displacement Mutation)
Memilih sebuah subtour secara acak dan memasukkannya pada posisi lain
secara acak.
d. Reciprocal Exchange Mutation
Memilih dua posisi gen secara acak kemudian menukar gen pada kedua posisi
tersebut.
Pada algoritma IACO, proses mutasi yang digunakan adalah reciprocal
exchange mutation. Berikut adalah langkah-langkah dari proses reciprocal
exchange mutation menurut Bin et al. (2008):
Langkah 1 Pilih dua rute secara acak dari parent solution. Kemudian pilih
satu kota atau customer dari masing-masing rute yang terpilih.
Langkah 2 Tukar posisi dari kedua kota atau customer yang terpilih pada
langkah 1.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
19
Definisi 2.11 Laju mutasi ( mp ) adalah prosentase dari jumlah individu
dalam populasi yang dimutasi.
(Gen dan Cheng, 1997)
Probabilitas mutasi yang digunakan oleh Bin et al. (2008) adalah sebagai berikut:
( ) n (
n)
1 (2.13)
dimana ( ) adalah probabilitas mutasi pada iterasi ke-t, n adalah tingkat
probabilitas mutasi terendah yang didefinisikan dengan persamaan n
1n
dengan n adalah jumlah semua pelanggan (kota), adalah tingkat probabilitas
mutasi tertinggi yang didefinisikan dengan persamaan
1n
dengan n adalah
jumlah rute yang terbentuk pada solusi, t adalah iterasi saat ini, dan T adalah
iterasi maksimum yang diberikan.
(Bin et al., 2008)
2.6.3 Local Search
Metode untuk mengidentifikasi sebuah solusi dari suatu permasalahan
dengan mempertimbangkan solusi-solusi potensial yang tersedia sampai
ditemukan satu solusi yang memenuhi kriteria.
(Stützle, 1998)
2.6.3.1 Metode 2-Opt
Algoritma 2-opt merupakan salah satu algoritma local search yang
mengeliminasi arc / jalur yang bersilangan pada suatu rute tunggal dengan cara
mengambil 2 jalur lalu menghubungkan kembali keempat vertex / lokasi
pelanggan yang berdekatan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
20
Misalkan diberikan suatu rute c0, c1, c2, … , k, c0. Untuk setiap kombinasi
pelanggan ci, cj dengan i < j; i,j {1, 2, … ,k − 1} akan diperiksa apakah jalur dari
ci−1 ke cj dan dari ci ke cj+1 lebih baik daripada jalur awal dari ci−1 ke ci dan dari cj
ke cj+1. Jika demikian, bentuk jalur baru dari ci ke cj dan dilanjutkan untuk
kombinasi lainnya yang tersisa. Setelah semua kombinasi diperiksa, maka urutan
kunjungan diperbaiki sesuai urutan perbaikan yang diperoleh. Jadi, jika urutan
sebelum perbaikan adalah sebagai berikut:
c0, c1, c2, … , i−1, ci, ci+1, ci+2,… , j−1, cj, cj+1, …, k, c0.
maka setelah perbaikan menjadi:
c0, c1, c2, … , i−1, cj, cj−1, cj−2,… , i+1, ci, cj+1, cj+2,…, k, c0.
Gambar 2.3 Contoh metode 2-opt
Contoh metode 2-opt dapat dilihat pada Gambar 2.3. Pada gambar
tersebut, pelanggan i+1 yang dilayani setelah pelanggan i diubah menjadi
pelanggan yang dilayani setelah pelanggan j+1, sedangkan pelanggan setelah j+1
yaitu j dilayani setelah pelanggan i+1. Hal ini dilakukan dengan mengganti sisi (i,
i+1) dan (j+1, j) berturut-turut dengan sisi (i, j+1) dan (i+1, j).
(Konig, 2008)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
21
2.6.4 Update Pheromone
Pada proses update pheromone ini menggunakan persamaan sebagai
berikut :
n
∑
0, 1 (2.14)
dengan n adalah feromon jarak pelanggan (kota) i ke pelanggan (kota) j setelah
diupdate, adalah feromon jarak pelanggan (kota) i ke pelanggan (kota) j
sebelum diupdate, adalah konstanta yang mengontrol kecepatan evaporasi dan
, k menunjukkan suatu rute, K adalah jumlah semua rute pada solusi
dan K > 0, dan adalah total perubahan feromon jarak pelanggan (kota) i ke
pelanggan (kota) j pada rute ke-k yang dihitung berdasarkan persamaan
{
n n n 0 n nn
(2.15)
dimana Q adalah sebuah konstanta positif (Q > 0), L adalah total jarak semua rute
pada solusi, adalah total jarak pada rute ke-k, adalah jarak pelanggan i ke
pelanggan j, dan adalah banyaknya pelanggan pada rute ke-k.
(Bin et al., 2008)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
22
BAB III
METODE PENELITIAN
Adapun langkah-langkah yang digunakan dalam penulisan ini adalah
sebagai berikut:
1. Studi pustaka mengenai vehicle routing problem, algoritma ACO, dan
algoritma IACO.
2. Menerapkan algoritma IACO dalam menyelesaikan vehicle routing problem
dengan langkah (secara ringkas disajikan dalam Gambar 3.1) sebagai berikut:
a. Inisialisasi
Proses ini adalah menginputkan data-data yang akan dimasukkan, antara
lain jumlah kendaraan (K), jumlah pelanggan atau kota (N), jarak tempuh
maksimum kendaraan (E), kapasitas maksimum kendaraan (W),
pengendali intensitas jejak semut ( ), pengendali visibilitas jarak kota i ke
kota j konstanta pengontrol kecepatan penguapan jejak semut (ρ),
konstanta Q, feromon awal (τawal), jarak setiap pelanggan (dij), permintaan
setiap pelanggan (qi), dan total iterasi (T). Dengan mengacu pada jurnal
Bin et al (2008), nilai α = 2, β = 1, Q = 1000, dan ρ = 0,8.
b. Konstruksi rute
Langkah-langkah proses konstruksi rute adalah sebagai berikut:
i. Posisi awal vehicle atau semut ada di depot.
ii. Memilih semut atau vehicle pertama yang selanjutnya vehicle tersebut
memilih pelanggan-pelanggan (kota) mana yang akan dilalui atau
dilayaninya dan berakhir di depot (posisi awal) sehingga nantinya
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
23
akan membentuk suatu rute. Hal ini juga berlaku untuk semut atau
vehicle selanjutnya.
iii. Untuk memilih pelanggan-pelanggan mana yang akan dipilihnya,
setiap vehicle menggunakan formula
iv. Rute yang terbentuk haruslah sesuai dengan constraints di bawah ini:
1. Total jarak setiap rute yang terbentuk harus kurang dari atau
sama dengan ( ≤ ) jarak tempuh maksimum kendaraan (E).
2. Total demand dari pelanggan-pelanggan yang ada pada rute
yang terbentuk haruslah kurang dari atau sama dengan ( ≤ )
kapasitas maksimum kendaraan (W)
c. Cek nilai_random ≤ Pm(t)
Pada proses ini, nilai Pm(t) ditentukan dengan menggunakan persamaan
2.13. Langkah-langkah pada proses ini adalah sebagai berikut:
i. Pilih dua rute berbeda secara acak.
ii. Bangkitkan nilai random riil [0, 1] pada masing-masing pelanggan
di setiap rute yang terpilih.
iii. Cek apakah ada nilai random ≤ Pm(t) pada setiap pelanggan.
iv. Jika pada setiap rute yang terpilih tadi terdapat sekurang-
kurangnya satu pelanggan yang mempunyai nilai random ≤ Pm(t),
maka lanjutkan ke proses mutasi, atau jika tidak ada pelanggan
yang mempunyai nilai random ≤ Pm(t), maka lanjutkan ke proses
local search.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
24
d. Mutasi
Berikut ini adalah langkah-langkah dari proses mutasi:
i. Pilih satu pelanggan dengan nilai random ≤ Pm(t) pada setiap rute
yang terpilih pada proses (c) tadi.
ii. Jika terdapat lebih dari satu pelanggan di setiap rute terpilih yang
mempunyai nilai random ≤ Pm(t), maka pilih pelanggan dengan nilai
random ≤ Pm(t) terkecil pada setiap rute terpilih.
iii. Setiap rute terpilih harus ada satu kota untuk ditukar.
iv. Tukar kedua pelanggan yang terpilih pada langkah (ii).
v. Selesai.
e. Local Search
Proses ini dilakukan pada solusi yang terbentuk dari proses konstruksi rute
jika proses mutasi diabaikan, atau dilakukan pada setiap solusi yang
terbentuk dari proses mutasi. Proses local search ini bertujuan untuk
menemukan solusi yang lebih baik dari solusi yang terbentuk pada proses
konstruksi rute maupun dari solusi yang terbentuk pada proses mutasi. Jika
solusi yang terbentuk pada proses local search ini infeasible, maka solusi
diabaikan dan solusi yang dipakai adalah solusi pada proses konstruksi
rute.
Berikut ini adalah langkah-langkah dari proses local search:
i. Tukar posisi pelanggan baru dengan posisi pelanggan yang ada pada
rute baru.
ii. Hitung total jarak rute pada setiap perpindahan posisi pelanggan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
25
iii. Pilih susunan posisi pelanggan dengan total jarak rute terkecil sebagai
solusi.
f. Update Pheromone
Proses update pheromone dilakukan setelah proses local search. Proses ini
bertujuan untuk mengurangi jumlah pheromone pada semua link seperti
proses evaporasi atau penguapan pheromone, dan untuk memastikan
bahwa tidak ada satu jalur yang menjadi terlalu dominan.
g. Maximum iterasi
Jika iterasi sudah mencapai iterasi maksimum, maka proses berhenti dan
dipilih solusi terbaik dari vehicle routing problem. Apabila iterasi belum
mencapai iterasi maksimum, proses dilanjutkan kembali pada langkah b.
3. Membuat program untuk menyelesaikan vehicle routing problem dengan
algoritma IACO.
4. Mengimplementasikan program yang telah dibuat pada beberapa
permasalahan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
26
Gambar 3.1 Flowchart dari algoritma IACO.
Mulai
Inisialisasi
Konstruksi Rute
Local Search
Update Pheromone
Cek Iterasi_Max ?
Selesai Ya Tidak
Mutasi
Ya
Tidak Cek nilai_random ≤
Pm(t) ?
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
27
BAB IV
PEMBAHASAN
Pada bab ini dijelaskan penggunaan algoritma improved ant colony
optimization (IACO) untuk menyelesaikan vehicle routing problem dengan tujuan
mengoptimalkan rute kendaraan.
4.1 Prosedur Algoritma IACO
Berdasarkan Bin et al (2009), prosedur dari algoritma IACO ditunjukkan
pada Gambar 4.1.
Prosedur Algoritma IACO mulai
inisialisasi() untuk t dari 1 sampai dengan iterasi_max
lakukan konstruksi_rute() lakukan cek nilai_random ≤ Pm(t) lakukan mutasi() lakukan local_search()
lakukan update_pheromone() jika (t < iterasi_max) maka,
kembali ke proses konstruksi_rute() jika (t = iterasi_max) maka,
cetak solusi terbaik selesai selesai
Gambar 4.1 Prosedur algoritma IACO
4.1.1 Prosedur Inisialisasi
Prosedur inisialisasi terdiri dari pengisian parameter dan pengisian data
pelanggan yang disajikan pada Gambar 4.2.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
28
Prosedur inisialisasi mulai pengisian parameter() pengisian data pelanggan() selesai
Gambar 4.2 Prosedur inisialisasi
Dalam prosedur pengisian parameter, nilai E atau jarak tempuh maksimum
kendaraan mempunyai dua kemungkinan. Kemungkinan yang pertama adalah
nilai E = 0, artinya dalam pemilihan kota yang akan dikunjungi hanya
memperhatikan batasan kapasitas maksimum kendaraan (W), dan W pasti positif
(W > 0). Kemungkinan yang kedua adalah nilai E positif (E > 0), artinya dalam
pemilihan kota yang akan dikunjungi, batasan yang harus diperhatikan adalah
kapasitas maksimum kendaraan (W) dan total jarak tempuh maksimum kendaraan
(E). Pada parameter service duration, nilai tersebut berarti bahwa durasi
pelayanan pada setiap kota yang dikunjungi, dan nilai tersebut diimplementasikan
atau ditambahkan ke dalam jarak di setiap kota. Prosedur pengisian parameter
disajikan pada Gambar 4.3.
Prosedur pengisian parameter mulai jumlah kendaraan = nV jarak tempuh maksimum kendaraan = E kapasitas maksimum kendaraan = W pengendali intensitas jejak semut = alpha pengendali visibilitas jejak semut = beta konstanta pengontrol kecepatan penguapan jejak semut = rho konstanta Q = Q feromon awal = thau total iterasi = iterasi_max service duration = serviceDuration selesai
Gambar 4.3 Prosedur pengisian parameter
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
29
Prosedur pengisian data pelanggan dibedakan menjadi 2 tipe, yakni posisi
pelanggan dengan koordinat x dan y, dan posisi pelanggan yang tidak ditentukan
dengan koordinat x dan y. Posisi pelanggan yang tidak ditentukan dengan
koordinat x dan y berarti jarak antar pelanggan sudah diketahui. Prosedur
pengisian data pelanggan disajikan pada Gambar 4.4.
Prosedur pengisian data pelanggan mulai jumlah pelanggan = nC jika (posisi pelanggan = koordinat (x,y)) maka, untuk i dari 0 sampai dengan nC posisi pelanggan i pada koordinat X = xi posisi pelanggan i pada koordinat Y = yi permintaan pelanggan i = qi set matriks jarak()
selesai jika yang lain maka,
untuk i dari 0 sampai dengan nC permintaan pelanggan i = qi untuk j dari 0 sampai dengan nC jika (i = j) maka, jarak pelanggan i ke pelanggan j = d(i,j) = 0 jika yang lain maka, jarak pelanggan i ke pelanggan j = d(i,j) > 0 selesai selesai selesai Gambar 4.4 Prosedur pengisian data pelanggan
4.1.2 Prosedur Konstruksi Rute
Prosedur konstruksi rute bertujuan untuk membentuk rute-rute pada setiap
kendaraan dengan memperhatikan batasan kapasitas kendaraan dan total jarak rute
kendaraan yang diinputkan. Prosedur ini meliputi proses hitung Pij(k), cek
konstrain, dan pembentukan rute yang disajikan pada Gambar 4.5.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
30
Prosedur konstruksi rute mulai hitung nilai Pij(k)() cek konstrain() pembentukan rute()
selesai
Gambar 4.5 Prosedur konstruksi rute
Pij(k) adalah suatu nilai probabilitas untuk semut k memilih kota j setelah
mengunjungi kota i. Prosedur hitung nilai Pij(k) bertujuan untuk menghitung nilai
probabilitas Pij(k) setiap pelanggan yang belum terpilih dan nantinya nilai tersebut
dijumlahkan secara komulatif. Setelah itu, dibangkitkan satu nilai random riil
antara 0 sampai dengan 1. Jika nilai random tersebut masuk dalam area Pij(k)
komulatif, maka pilih kota dengan nilai Pij(k) terpilih tersebut. Prosedur hitung
Pij(k) disajikan pada Gambar 4.6
Prosedur hitung nilai Pij(k) mulai nAvCity = kota yang belum terpilih set kotaAwal = 0 untuk i dari 0 sampai dengan nAvCity-1 hitung nilai PijkAvCity sumPIJK += PijkAvCity RANDOM = nilai random antara 0 sampai dengan 1 jika RANDOM <= sumPIJK maka kotaTujuan = i selesai selesai selesai
Gambar 4.6 Prosedur hitung nilai Pij(k)
Pada prosedur hitung nilai Pij(k), formula yang digunakan dalam
perhitungan nilai PijkAvCity adalah
∑
, dengan adalah feromon jarak
kota i ke kota j, adalah visibilitas dari jarak kota i ke kota j ≤ dan
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
31
nilai diperoleh dari
dimana dij adalah jarak kota i ke kota j, dan adalah
masing-masing pengendali intensitas jejak semut dan pengendali visibilitas jarak
kota i ke kota j ( ≥ 0, ≥ 0) , dan adalah himpunan dari kota-kota yang
tidak boleh dipilih oleh semut k.
Prosedur cek konstrain bertujuan untuk memeriksa apakah pelanggan yang
terpilih dari proses hitung Pij(k) memenuhi batasan kapasitas kendaraan dan total
jarak maksimal kendaraan yang diinputkan. Jika pelanggan yang terpilih tidak
melanggar batasan atau konstrain yang diinputkan maka pelanggan tersebut
terpilih untuk dilayani oleh kendaraan. Proses cek konstrain disajikan pada
Gambar 4.7.
Prosedur cek konstrain
mulai jika (E > 0) maka untuk i dari 0 sampai dengan nAvCity-1 kotaTujuan = indexRW[PijkAvCity] jika (mJarak[kotaAwal][kotaTujuan]+serviceDuration < E dan
q[kotaTujuan] ≤ W dan (E - (mJarak[kotaAwal][kotaTujuan] + serviceDuration)) ≥ (mJarak[kotaTujuan][0])) maka
E mJarak[kotaAwal][kotaTujuan]+serviceDuration W q[kotaTujuan] jika (q[kotaTujuan] > W dan mJarak[kotaAwal][kotaTujuan]
+ serviceDuration > E) maka set kotaTujuan = 0 selesai selesai jika yang lain (E = 0) maka untuk I dari 0 sampai dengan nAvCity-1 kotaTujuan = indexRW[PijkAvCity] jika (q[kotaTujuan] < W) maka W q[kotaTujuan] jika yang lain (q[kotaTujuan] > W) maka set kotaTujuan = 0 selesai selesai
selesai
Gambar 4.7 Prosedur cek konstrain
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
32
Pada prosedur cek konstrain di atas, variabel
mJarak[kotaAwal][kotaTujuan] adalah jarak antara kota saat ini (kotaAwal) ke
kota yang akan dikunjungi (kotaTujuan). Variabel q[kotaTujuan] adalah variabel
yang menunjukkan demand kota yang akan dikunjungi (kotaTujuan). Syarat
mJarak[kotaAwal][kotaTujuan] + serviceDuration < E berarti jarak kota tujuan
tidak boleh melebihi atau sama dengan total jarak maksimum kendaraan saat ini.
Syarat q[kotaTujuan] ≤ W berarti demand kota tujuan tidak boleh melebihi
kapasitas kendaraan saat ini. Syarat E − (mJarak[kotaAwal][kotaTujuan] +
serviceDuration) ≥ mJarak[kotaTujuan][0] berarti total jarak maksimum
kendaraan setelah mengunjungi kota tujuan harus lebih dari atau sama dengan
jarak kota tujuan ke depot. Variabel kotaTujuan = indexRW[PijkAvCity] berarti
kota tujuan diperoleh dari prosedur hitung nilai Pij(k) yaitu kotaTujuan = i.
Prosedur pembentukan rute bertujuan untuk list pelanggan-pelanggan yang
terpilih untuk dilayani oleh setiap kendaraan. List ini disebbut dengan rute-rute
yang terbentuk pada proses konstruksi rute. Proses pembentukan rute disajikan
pada Gambar 4.8.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
33
Prosedur pembentukan rute mulai set solusi = linkedlist baru set ant = linkedlist baru set kotaAwal = 0 AvCIty = kota-kota yang belum terpilih kotaTujuan = konstrain(AvCity, kotaAwal) jika (kotaTujuan != 0) maka ant.add(kotaTujuan) AvCity.remove(AvCity.indexOf(kotaTujuan)) kotaAwal = kotaTujuan selesai ketika (kotaTujuan != 0) lakukan solusi.add(ant)
selesai selesai
Gambar 4.8 Prosedur pembentukan rute
4.1.3 Prosedur Cek nilai_random ≤ Pm(t)
Pada proses ini, dilakukan pengecekan apakah terdapat nilai random riil
yang dibangkitkan kurang dari atau sama dengan Pm. Jika ada, maka proses akan
dilanjutkan ke proses mutasi. Jika tidak ada, maka proses akan dilanjutkan pada
proses local search. Variabel-variabel yang digunakan adalah rute1, rute2,
random01, kota_rute1, kota_rute2, Pm. Variabel rute1 adalah rute kesatu hasil
pemilihan secara acak pada hasil konstruksi_rute(), dan variabel rute2 adalah rute
kedua hasil pemilihan secara acak pada hasil konstruksi_rute(). Variabel
random01 adalah nilai random riil antara 0 sampai dengan 1 sebanyak kota pada
dua rute terpilih. Variabel kota_rute1 adalah kota-kota yang ada pada rute1, dan
kota_rute2 adalah kota-kota yang ada pada rute2. Prosedur cek nilai_random ≤
Pm(t) disajikan pada Gambar 4.9.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
34
Prosedur cek nilai_random ≤ Pm(t)
mulai proses hitung Pm(t) untuk i dari 1 sampai n_rute1 untuk j dari 1 sampai n_rute2
kota_rute1(i) = random(0,1) kota_tute2(j) = random(0,1) jika kota_rute1(i) ≤ Pm(t) maka, jika kota_rute2(j) ≤ Pm(t) maka, pilih index_kota_rute1(i) pilih index_kota_rute2(j) proses mutasi() jika yang lainnya maka, proses local_search() selesai selesai
selesai
Gambar 4.9 Prosedur cek nilai_random ≤ Pm(t)
Pada prosedur cek nilai_random ≤ Pm(t) di atas, terdapat variabel Pm(t),
dimana variabel tersebut adalah probabilitas nilai mutasi. Perhitungan variabel Pm(t)
menggunakan suatu formula yang akan disajikan pada prosedur Pm(t). Prosedur Pm(t)
bertujuan untuk menghitung nilai Pm(t) pada setiap iterasi yang nantinya digunakan
untuk memeriksa apakah ada nilai random yang dibangkitkan pada proses mutasi yang
kurang dari atau sama dengan Pm(t). Prosedur Pm(t) disajikan pada Gambar 4.10.
Prosedur Pm(t) mulai untuk t dari 1 sampai dengan iterasi_max hitung nilai Pm(t) selesai
Gambar 4.10 Prosedur Pm(t)
Pada prosedur Pm(t) di atas, formula yang digunakan untuk perhitungan
Pm(t) adalah
(
)
, dengan nC adalah jumlah semua kota,
nV adalah jumlah semua kendaraan, dan t adalah iterasi saat ini. Jadi, bisa
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
35
diketahui bahwa nilai Pm(t) pada setiap iterasi tidak akan sama karena bergantung
pada nilai t.
4.1.4 Prosedur Mutasi
Proses mutasi dilakukan jika pada proses 4.1.3 terdapat nilai_random yang
kurang dari atau sama dengan Pm(t). Proses mutasi ini bertujuan untuk
memperbaiki dan menemukan kemungkinan adanya solusi yang lebih optimal
daripada solusi yang terbentuk pada proses konstruksi rute. Prosedur mutasi
disajikan pada Gambar 4.11.
Prosedur mutasi() mulai untuk i dari 1 sampai n_rute1 untuk j dari 1 sampai n_rute2
kota_rute1(i) = random(0,1) kota_tute2(j) = random(0,1) jika kota_rute1(i) ≤ Pm(t) maka, jika kota_rute2(j) ≤ Pm(t) maka, pilih index_kota_rute1(i) pilih index_kota_rute2(j) swap1 = index_kota_rute1(i) swap2 = index_kota_rute2(j)
swap1 = swap2 swap2 = swap1 hitung total Demand rute baru 1 & 2 jika totalDemand[ruteBaru 1 & 2] > W maka clear proses mutasi lakukan local search () selesai
selesai selesai
Gambar 4.11 Prosedur mutasi
4.1.5 Prosedur Local Search
Prosedur local search bertujuan untuk menCari dan menemukan susunan
rute yang lebih optimal daripada susunan rute pada proses mutasi dengan menukar
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
36
posisi pelanggan hasil dari swap pada proses mutasi dengan posisi pelanggan pada
masing-masing rute. Prosedur local search disajikan pada Gambar 4.12.
Prosedur local search mulai untuk i dari 0 sampai dengan n_rute1 untuk j dari 0 sampai dengan n_rute2 tukar posisi swap1 dengan posisi pelanggan pada rute2 hingga semua kemungkinan posisi swap1 habis tukar posisi swap2 dengan posisi pelanggan pada rute1
hingga semua kemungkinan posisi swap2 habis hitung total jarak rute1 dan rute2 setiap perubahan posisi pelanggan pilih posisi dan total rute terkecil pada rute1 dan rute2 selesai selesai
Gambar 4.12 Prosedur local search
Prosedur local search ini dilakukan setelah proses mutasi dan dilakukan
jika tidak ada nilai random yang kurang dari atau sama dengan Pm(t) pada proses
cek nilai_random ≤ Pm(t).
4.1.6 Prosedur Update Pheromone
Prosedur update pheromone ini bertujuan untuk memperbaharui
pheromone pada garis yang menghubungkan tiap-tiap pelanggan. Prosedur update
pheromone disajikan pada Gambar 4.13.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
37
Prosedur update pheromone
mulai untuk i dari 0 sampai dengan nV untuk j dari 0 sampai dengan nV jika pelanggan j tidak dilayani dari pelanggan i maka hitung nilai feromonBaru1 jika pelanggan j dilayani dari pelanggan i maka hitung nilai feromonBaru2 selesai selesai selesai
Gambar 4.13 Prosedur update pheromone
Pada prosedur update pheromone di atas, formula untuk perhitungan
feromonBaru1 adalah dan untuk perhitungan feromonBaru2 adalah
∑
, dengan
adalah feromon jarak pelanggan (kota) i ke
pelanggan (kota) j sebelum diupdate, adalah konstanta yang mengontrol
kecepatan evaporasi dan , k menunjukkan suatu rute ke-k, K adalah
jumlah semua rute pada solusi dan K > 0, Q adalah sebuah konstanta positif (Q >
0), L adalah total jarak semua rute pada solusi, adalah total jarak pada rute ke-
k, adalah jarak pelanggan i ke pelanggan j, dan adalah banyaknya
pelanggan pada rute ke-k.
4.2 Data
Data yang digunakan adalah data yang diambil dari Beasley (1990). Data
tersebut terdiri dari 14 permasalahan seperti pada Tabel 4.1.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
38
Tabel 4.1 Permasalahan VRP (Beasley, 1990)
No. Nama Permasalahan (jumlah kota, kapasitas kendaraan)
1. P01 (50, 160) (Lampiran 1)
2. P02 (75, 140) (Lampiran 2)
3. P03 (100, 200) (Lampiran 3)
4. P04 (150, 200) (Lampiran 4)
5. P05 (199, 200) (Lampiran 5)
6. P06 (50, 160) (Lampiran 6)
7. P07 (75, 140) (Lampiran 7)
8. P08 (100, 200) (Lampiran 8)
9. P09 (150, 200) (Lampiran 9)
10. P10 (199, 200) (Lampiran 10)
11. P11 (120, 200) (Lampiran 11)
12. P12 (100, 200) (Lampiran 12)
13. P13 (120, 200) (Lampiran 13)
14. P14 (100, 200) (Lampiran 14)
Data secara lengkap 14 permasalahan VRP tersebut dapat dilihat pada
Lampiran 1 sampai dengan Lampiran 14.
Berikut penjelasan mengenai data yang ditunjukkan pada Lampiran 1
sampai dengan Lampiran 14. Pada setiap permasalahan terdapat kolom i, x, y, d,
dan q. Dimana i adalah nomor dari pelanggan (kota), x adalah posisi pelanggan
pada koordinat x, y adalah posisi pelanggan pada koordinat y, d adalah service
duration, dan q adalah Demand (permintaan) pelanggan. Pada setiap
permasalahan juga terdapat jumlah kendaraan yang tersedia, total jarak maksimal
kendaraan, dan kapasitas maksimal kendaraan. Permalahan tersebut akan
diselesaikan dengan algoritma IACO.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
39
4.3 Penyelesaian Manual terhadap Permasalahan P01
Proses penyelesaiannya pada langkah-langkah sebagai berikut:
1) Inisialisasi / input parameter
Jumlah semut / kendaraan = 5
Jumlah kota = 50
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 160
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1
Konstanta Q = 1000
Service duration = 0
2) Konstruksi rute
Pada proses ini, posisi awal semut ada di depot atau kota ke-0. Setelah
itu, probabilitas Pij(k) dihitung sesuai dengan kota yang masih tersedia.
Nilai probabilitas Pij(k) dijumlahkan komulatif, dan bangkitkan satu
bilangan random riil antara 0 sampai dengan 1. Cek masuk area
probabilitas Pij(k) komulatif manakah nilai random tersebut, kemudian
pilih kota yang mempunyai probabilitas Pij(k) terpilih.
Proses pemilihan kota seperti ini digunakan sama untuk kota-kota
tujuan selanjutnya oleh tiap semut. Sebelum memilih kota tersebut, cek
kapasitas kendaraan dan total jarak maksimal kendaraan saat ini apakah
masih bisa untuk melayani kota tersebut. Jika masih bisa, pilih kota
tersebut untuk dilayani, dan jika tidak bisa, pilih kota ke-0 atau depot
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
40
untuk mengakhiri rute perjalanan. Berikut adalah rute yang terbentuk pada
proses konstruksi rute. Perlu diketahui bahwa proses looping dimulai dari
0, sehingga rute pertama adalah rute ke-0. Begitu juga dengan posisi kota
pada masing-masing rute.
Rute ke-0 >> 0 5 9 18 44 41 46 24 21 29 1 0 => Jarak =
259.6214192919143, dengan Demand = 152.0
Rute ke-1 >> 0 2 20 22 4 27 6 23 38 11 0 => Jarak = 185.66400754681,
dengan Demand = 155.0
Rute ke-2 >> 0 47 25 40 19 42 39 31 3 28 8 0 => Jarak =
236.60222730370072, dengan Demand = 160.0
Rute ke-3 >> 0 12 49 45 48 32 13 30 37 35 36 0 => Jarak =
328.03740614747, dengan Demand = 160.0
Rute ke-4 >> 0 17 10 50 16 7 14 15 33 34 26 43 0 => Jarak =
307.00905540849993, dengan Demand = 150.0
Total jarak semua rute = 1316.934115698395
3) Proses cek nilai_random ≤ Pm(t)
Pada proses ini, pilih dua rute secara acak pada hasil konstruksi
rute. Kemudian, bangkitkan nilai random riil antara 0 sampai dengan 1
pada tiap-tiap kota di dua rute tersebut. Hitung nilai Pm(t). Setelah itu, cek
apakah ada nilai random pada masing-masing rute tersebut yang kurang
dari atau sama dengan Pm(t). Jika ada, lanjutkan ke proses mutasi, dan jika
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
41
tidak ada lanjutkan ke proses local search. Berikut adalah hasil proses cek
nilai_random ≤ Pm(t).
Dua rute terpilih : rute ke-3 dan rute ke-2
Nilai random = 0.04421966130602539 pada kota urutan ke- 10 (rute ke-3)
Nilai random = 0.021042125952723256 pada kota urutan ke- 3 (rute ke-2)
Pm = 0.2
Kesimpulan: Terjadi mutasi.
4) Proses mutasi
Proses mutasi ini bertujuan untuk menukar masing-masing posisi
kota yang terpilih pada proses cek nilai_random di atas. Setelah posisi
ditukar, cek total Demand dan jarak pada kedua rute baru tersebut. Jika
salah satu dari total jarak dan Demand tersebut yang melebihi total jarak
maksimal kendaraan dan kapasitas kendaraan, maka solusi pada proses
mutasi ini diabaikan, dan solusi yang dipakai adalah solusi pada proses
konstruksi rute di atas. Berikut adalah hasil proses mutasi.
Index semut 1 (rute ke- 3) adalah kota urutan ke- 10
Index semut 2 (rute ke- 2) adalah kota urutan ke- 3
Setelah diswap:
Rute ke-0 >> 0 5 9 18 44 41 46 24 21 29 1 0 => Jarak =
259.6214192919143, dengan Demand = 152.0
Rute ke-1 >> 0 2 20 22 4 27 6 23 38 11 0 => Jarak = 185.66400754681,
dengan Demand = 155.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
42
Rute ke-2 >> 0 47 25 36 19 42 39 31 3 28 8 0 => Jarak =
332.9907519469181, dengan Demand = 159.0
Rute ke-3 >> 0 12 49 45 48 32 13 30 37 35 40 0 => Jarak =
400.83494709147897, dengan Demand = 161.0
Rute ke-4 >> 0 17 10 50 16 7 14 15 33 34 26 43 0 => Jarak =
307.00905540849993, dengan Demand = 150.0
Total jarak semua rute = 1486.1201812856216
Dari hasil di atas, setelah proses penukaran posisi dapat dilihat
perubahan jumlah jarak dan demand di kedua rute tersebut. Karena jumlah
demand dari rute ke-3 adalah 161.0 dan jumlah tersebut melebihi kapasitas
kendaraan, maka solusi yang terbentuk pada proses mutasi diabaikan.
5) Proses local search
Proses local search dilakukan jika proses mutasi berhasil ataupun
tidak. Selain itu juga, local search dilakukan jika tidak ada nilai random
yang dibangkitkan kurang dari atau sama dengan Pm(t) pada proses cek
nilai_random. Karena proses mutasi di atas tidak berhasil, maka proses
local search dimulai dari awal yakni dengan memilih dua rute dengan total
jarak terbesar pada hasil dari konstruksi rute, dan memilih dua kota secara
acak masing-masing pada dua rute tersebut. Berikut adalah hasil dari
proses local search.
Dua rute terpilih :
i. Rute ke-3 dengan total jarak = 328.03740614747
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
43
ii. Rute ke-4 dengan total jarak = 307.00905540849993
Index semut 1 (rute ke- 3) adalah kota urutan ke- 10
Index semut 2 (rute ke- 4) adalah kota urutan ke- 3
Setelah diswap:
Rute ke-0>> 0 5 9 18 44 41 46 24 21 29 1 0 => Jarak =
259.6214192919143, dengan Demand = 152.0
Rute ke-1>> 0 2 20 22 4 27 6 23 38 11 0 => Jarak = 185.66400754681,
dengan Demand = 155.0
Rute ke-2>> 0 47 25 40 19 42 39 31 3 28 8 0 => Jarak =
236.60222730370072, dengan Demand = 160.0
Rute ke-3>> 0 12 49 45 48 32 13 30 37 35 50 0 => Jarak =
330.8787111290517, dengan Demand = 164.0
Rute ke-4>> 0 17 10 36 16 7 14 15 33 34 26 43 0 => Jarak =
364.1496319651619, dengan Demand = 146.0
Total jarak semua rute = 1376.9159972366388
Dari hasil di atas, diketahui bahwa total demand pada rute ke-3
adalah 164.0 dan jumlah tersebut melebihi kapasitas kendaraan sehingga
solusi pada proses local search ini diabaikan. Solusi yang digunakan
adalah solusi pada proses konstruksi rute sebagai berikut.
Rute ke-0 >> 0 5 9 18 44 41 46 24 21 29 1 0 => Jarak =
259.6214192919143, dengan Demand = 152.0
Rute ke-1 >> 0 2 20 22 4 27 6 23 38 11 0 => Jarak = 185.66400754681,
dengan Demand = 155.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
44
Rute ke-2 >> 0 47 25 40 19 42 39 31 3 28 8 0 => Jarak =
236.60222730370072, dengan Demand = 160.0
Rute ke-3 >> 0 12 49 45 48 32 13 30 37 35 36 0 => Jarak =
328.03740614747, dengan Demand = 160.0
Rute ke-4 >> 0 17 10 50 16 7 14 15 33 34 26 43 0 => Jarak =
307.00905540849993, dengan Demand = 150.0
Total jarak semua rute = 1316.934115698395
4.4 Implementasi Program pada Beberapa Permasalahan
Program algoritma Improved Ant Colony Optimization (IACO) untuk
menyelesaikan Vehicle Routing Problem yang dibuat dengan pemrograman JAVA
seperti pada Lampiran 15 digunakan untuk menyelesaikan beberapa permasalahan
berikut:
4.4.1 Permasalahan P01
Permasalahan P01 pada Lampiran 1 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 5
Jumlah kota = 50
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 160
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
45
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 9 21 20 3 32 27 48 23 24 14 17 0 => Jarak =
171.65973469778262, dengan Demand = 157.0
Rute ke- 1 >> 0 41 19 42 38 16 2 50 29 35 36 22 0 => Jarak =
188.11764655359866, dengan Demand = 156.0
Rute ke- 2 >> 0 4 40 13 25 43 26 31 28 6 5 10 46 0 => Jarak =
237.01799540957475, dengan Demand = 156.0
Rute ke- 3 >> 0 7 8 1 11 49 45 15 12 47 0 => Jarak = 137.54798077771983,
dengan Demand = 160.0
Rute ke- 4 >> 0 34 30 39 33 44 37 18 0 => Jarak = 121.86774675410962,
dengan Demand = 148.0
dengan total jarak = 856.2111041927855.
Dari hasil di atas diketahui bahwa total jarak dari 5 rute adalah
856.2111041927855. Dari 5 kendaraan yang diinputkan, semuanya terpakai untuk
melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P01 dapat dilihat pada
Lampiran 16.
4.4.2 Permasalahan P02
Permasalahan P02 pada Lampiran 2 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 12 Jumlah kota = 75
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
46
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 140
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 30 28 70 54 14 38 0 => Jarak = 153.33657309819327, dengan
Demand = 133.0
Rute ke- 1 >> 0 68 34 11 13 21 60 71 0 => Jarak = 172.75418307183062,
dengan Demand = 122.0
Rute ke- 2 >> 0 39 25 55 18 3 7 53 35 45 0 => Jarak = 155.28405114273033,
dengan Demand = 139.0
Rute ke- 3 >> 0 58 72 22 41 23 43 56 49 75 0 => Jarak =
165.75273169796765, dengan Demand = 124.0
Rute ke- 4 >> 0 12 9 32 40 26 51 0 => Jarak = 76.52225176598907, dengan
Demand = 136.0
Rute ke- 5 >> 0 10 65 66 59 57 47 63 0 => Jarak = 171.76215858100548,
dengan Demand = 140.0
Rute ke- 6 >> 0 46 52 62 36 69 74 2 6 0 => Jarak = 123.23405545607851,
dengan Demand = 139.0
Rute ke- 7 >> 0 4 29 5 61 44 16 17 0 => Jarak = 127.86454252987814, dengan
Demand = 135.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
47
Rute ke- 8 >> 0 64 42 1 73 50 24 31 0 => Jarak = 195.37965161559143,
dengan Demand = 137.0
Rute ke- 9 >> 0 27 8 19 15 20 37 48 33 0 => Jarak = 130.2546611730375,
dengan Demand = 139.0
Rute ke- 10 >> 0 67 0 => Jarak = 10.770329614269007, dengan Demand =
30.0
dengan total jarak = 1482.915189746571.
Dari hasil di atas diketahui bahwa total jarak dari 11 rute adalah
1482.915189746571. Dari 12 kendaraan yang diinputkan, hanya terpakai 11
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P02 dapat dilihat pada
Lampiran 17.
4.4.3 Permasalahan P03
Permasalahan P03 pada Lampiran 3 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 10
Jumlah kota = 100
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
48
Rute ke- 0 >> 0 5 46 36 47 7 48 19 26 55 72 29 33 63 0 => Jarak =
282.1002923877999, dengan Demand = 191.0
Rute ke- 1 >> 0 58 22 74 73 56 24 34 44 14 61 93 16 100 96 6 0 => Jarak =
227.52340896827712, dengan Demand = 199.0
Rute ke- 2 >> 0 76 79 45 60 28 54 25 67 75 21 78 35 51 23 0 => Jarak =
341.37706703835676, dengan Demand = 199.0
Rute ke- 3 >> 0 31 88 30 32 64 11 90 62 53 95 94 97 0 => Jarak =
176.31593104273048, dengan Demand = 196.0
Rute ke- 4 >> 0 10 49 70 1 69 82 52 18 83 86 38 15 40 92 42 57 0 => Jarak =
287.05348927538887, dengan Demand = 197.0
Rute ke- 5 >> 0 3 9 71 65 66 20 68 12 4 8 84 37 0 => Jarak =
227.70652635662464, dengan Demand = 196.0
Rute ke- 6 >> 0 50 81 77 80 17 85 13 39 41 43 91 99 2 0 => Jarak =
257.66401440949437, dengan Demand = 185.0
Rute ke- 7 >> 0 27 89 59 98 87 0 => Jarak = 58.85583668140094, dengan
Demand = 95.0
dengan total jarak = 1858.596566160073.
Dari hasil di atas diketahui bahwa total jarak dari 8 rute adalah
1858.596566160073. Dari 10 kendaraan yang diinputkan, hanya terpakai 8
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P03 dapat dilihat pada
Lampiran 18.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
49
4.4.4 Permasalahan P04
Permasalahan P04 pada Lampiran 4 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 14
Jumlah kota = 150
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 108 150 4 1 101 117 54 50 2 129 30 0 => Jarak =
241.02222504998173, dengan Demand = 187.0
Rute ke- 1 >> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 142 0 => Jarak
= 368.52192470445283, dengan Demand = 196.0
Rute ke- 2 >> 0 46 9 62 84 35 94 133 67 66 24 98 69 68 87 0 => Jarak =
285.8921657748921, dengan Demand = 199.0
Rute ke- 3 >> 0 77 104 105 75 96 43 61 3 36 64 136 19 135 0 => Jarak =
318.5052191259003, dengan Demand = 193.0
Rute ke- 4 >> 0 32 119 27 60 120 22 20 21 59 130 118 126 127 79 0 => Jarak
= 173.79670819102645, dengan Demand = 192.0
Rute ke- 5 >> 0 17 90 89 49 76 100 16 53 26 113 86 132 7 23 0 => Jarak =
238.42885656397183, dengan Demand = 192.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
50
Rute ke- 6 >> 0 48 112 140 114 116 70 51 143 148 37 123 45 33 71 0 => Jarak
= 222.31506913897124, dengan Demand = 186.0
Rute ke- 7 >> 0 110 18 107 42 73 125 83 29 38 80 31 82 0 => Jarak =
235.83052493990863, dengan Demand = 198.0
Rute ke- 8 >> 0 92 124 72 106 91 34 131 85 128 115 121 81 58 14 0 => Jarak
= 266.7758940370218, dengan Demand = 197.0
Rute ke- 9 >> 0 139 55 111 40 88 122 5 78 11 12 0 => Jarak =
137.58036419764028, dengan Demand = 187.0
Rute ke- 10 >> 0 47 144 147 65 6 13 109 145 44 137 0 => Jarak =
160.85872464352437, dengan Demand = 200.0
Rute ke- 11 >> 0 141 41 25 95 134 146 149 102 0 => Jarak =
105.45244315755937, dengan Demand = 108.0
dengan total jarak = 2754.980119524851.
Dari hasil di atas diketahui bahwa total jarak dari 12 rute adalah
2754.980119524851. Dari 14 kendaraan yang diinputkan, hanya terpakai 12
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P04 dapat dilihat pada
Lampiran 19.
4.4.5 Permasalahan P05
Permasalahan P05 pada Lampiran 5 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 20 Jumlah kota = 199
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
51
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 250
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh terbaik sebagai berikut:
Rute ke- 0 >> 0 54 79 29 173 138 99 1 2 3 154 155 88 48 0 => Jarak =
261.6253389558239, dengan Demand = 199.0
Rute ke- 1 >> 0 175 95 31 67 159 189 181 44 76 135 141 57 12 64 0 => Jarak
= 392.1900058469262, dengan Demand = 197.0
Rute ke- 2 >> 0 149 156 150 52 133 43 83 103 4 5 6 0 => Jarak =
313.22647839435524, dengan Demand = 193.0
Rute ke- 3 >> 0 142 115 197 158 198 7 8 9 22 137 23 74 191 0 => Jarak =
291.49500337090996, dengan Demand = 197.0
Rute ke- 4 >> 0 183 104 17 100 169 30 120 195 190 136 106 132 39 10 119 0
=> Jarak = 281.2392131560841, dengan Demand = 188.0
Rute ke- 5 >> 0 16 41 89 146 25 114 184 91 193 163 85 13 0 => Jarak =
384.25987987456114, dengan Demand = 198.0
Rute ke- 6 >> 0 27 58 87 127 109 117 55 40 130 139 157 0 => Jarak =
143.22824371705195, dengan Demand = 189.0
Rute ke- 7 >> 0 147 56 26 60 188 61 86 28 151 126 0 => Jarak =
155.39877767800917, dengan Demand = 199.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
52
Rute ke- 8 >> 0 59 68 129 110 38 24 49 145 164 180 69 108 0 => Jarak =
359.28356310440694, dengan Demand = 194.0
Rute ke- 9 >> 0 111 34 14 51 75 178 78 82 45 174 0 => Jarak =
229.25436734534946, dengan Demand = 197.0
Rute ke- 10 >> 0 81 77 134 50 15 102 162 80 194 116 160 53 112 66 192 0 =>
Jarak = 316.5863541354187, dengan Demand = 175.0
Rute ke- 11 >> 0 73 62 113 185 196 71 19 153 140 166 37 0 => Jarak =
289.2344545040458, dengan Demand = 185.0
Rute ke- 12 >> 0 96 42 148 187 131 124 98 125 72 161 97 0 => Jarak =
283.6809264631669, dengan Demand = 191.0
Rute ke- 13 >> 0 186 36 122 172 171 47 101 20 123 176 35 152 0 => Jarak =
192.93843335793625, dengan Demand = 190.0
Rute ke- 14 >> 0 92 18 144 182 63 199 107 90 143 21 121 94 0 => Jarak =
230.01039855801577, dengan Demand = 199.0
Rute ke- 15 >> 0 168 32 105 33 93 118 11 177 84 165 170 0 => Jarak =
246.09518018591973, dengan Demand = 194.0
Rute ke- 16 >> 0 46 65 167 179 70 128 0 => Jarak = 64.9937161702049,
dengan Demand = 101.0
dengan total jarak = 4434.740334818186.
Dari hasil di atas diketahui bahwa total jarak dari 17 rute adalah
4434.740334818186. Dari 20 kendaraan yang diinputkan, hanya terpakai 17
kendaraan untuk melayani pelanggan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
53
Hasil solusi selengkapnya pada permasalahan P05 dapat dilihat pada
Lampiran 20.
4.4.6 Permasalahan P06
Permasalahan P06 pada Lampiran 6 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 11
Jumlah kota = 50
Jarak maksimal kendaraan = 200
Kapasitas kendaraan = 160
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 10
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 16 21 36 9 2 1 0 => Jarak = 199.27474525071867, dengan
Demand = 77.0
Rute ke- 1 >> 0 42 33 30 34 29 11 0 => Jarak = 188.64067782205944, dengan
Demand = 106.0
Rute ke- 2 >> 0 10 15 44 28 8 0 => Jarak = 188.83684402672753, dengan
Demand = 68.0
Rute ke- 3 >> 0 18 37 45 39 49 50 38 0 => Jarak = 193.93657954856928,
dengan Demand = 117.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
54
Rute ke- 4 >> 0 12 5 3 35 20 32 0 => Jarak = 162.93046344746193, dengan
Demand = 123.0
Rute ke- 5 >> 0 27 23 7 14 24 6 4 47 0 => Jarak = 195.27985739335938,
dengan Demand = 130.0
Rute ke- 6 >> 0 19 40 13 41 17 46 0 => Jarak = 167.99711818093886, dengan
Demand = 74.0
Rute ke- 7 >> 0 48 25 43 26 31 22 0 => Jarak = 192.86624217073597, dengan
Demand = 82.0
dengan total jarak = 989.7625278405708.
Dari hasil di atas diketahui bahwa total jarak dari 8 rute adalah
989.7625278405708. Dari 11 kendaraan yang diinputkan, hanya terpakai 8
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P06 dapat dilihat pada
Lampiran 21.
4.4.7 Permasalahan P07
Permasalahan P07 pada Lampiran 7 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 22
Jumlah kota = 75
Jarak maksimal kendaraan = 160
Kapasitas kendaraan = 140
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
55
Service duration = 10
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 46 53 11 65 38 58 0 => Jarak = 135.99512685291734, dengan
Demand = 140.0
Rute ke- 1 >> 0 3 49 55 25 32 0 => Jarak = 156.61726978120464, dengan
Demand = 65.0
Rute ke- 2 >> 0 17 51 6 40 12 50 0 => Jarak = 152.5435186202567, dengan
Demand = 122.0
Rute ke- 3 >> 0 44 24 18 31 0 => Jarak = 155.47463143856868, dengan
Demand = 82.0
Rute ke- 4 >> 0 23 56 22 61 74 0 => Jarak = 157.30624452147168, dengan
Demand = 69.0
Rute ke- 5 >> 0 75 5 29 2 73 1 68 0 => Jarak = 159.68107902266414, dengan
Demand = 114.0
Rute ke- 6 >> 0 48 15 52 13 19 8 0 => Jarak = 156.02902983998507, dengan
Demand = 90.0
Rute ke- 7 >> 0 59 27 34 4 0 => Jarak = 133.91215038673153, dengan
Demand = 90.0
Rute ke- 8 >> 0 26 67 39 72 10 9 0 => Jarak = 147.23393876832765, dengan
Demand = 120.0
Rute ke- 9 >> 0 36 60 20 69 0 => Jarak = 151.19687918002188, dengan
Demand = 55.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
56
Rute ke- 10 >> 0 62 41 64 43 42 0 => Jarak = 158.18235019769938, dengan
Demand = 90.0
Rute ke- 11 >> 0 70 71 21 47 30 0 => Jarak = 149.52761055605893, dengan
Demand = 83.0
Rute ke- 12 >> 0 33 28 37 57 45 0 => Jarak = 151.07506828650966, dengan
Demand = 105.0
Rute ke- 13 >> 0 66 14 54 35 7 0 => Jarak = 152.95192040279994, dengan
Demand = 109.0
Rute ke- 14 >> 0 63 16 0 => Jarak = 67.85993014424372, dengan Demand =
30.0
dengan total jarak = 1435.5867479994604.
Dari hasil di atas diketahui bahwa total jarak dari 15 rute adalah
1435.5867479994604. Dari 22 kendaraan yang diinputkan, hanya terpakai 15
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P07 dapat dilihat pada
Lampiran 22.
4.4.8 Permasalahan P08
Permasalahan P08 pada Lampiran 8 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 20
Jumlah kota = 100
Jarak maksimal kendaraan = 230
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
57
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 10
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 58 87 43 15 25 39 2 6 0 => Jarak = 224.05009541094032,
dengan Demand = 106.0
Rute ke- 1 >> 0 36 47 46 48 86 59 37 92 0 => Jarak = 228.85136177928848,
dengan Demand = 142.0
Rute ke- 2 >> 0 97 96 91 42 61 99 40 12 89 0 => Jarak =
228.32864854825488, dengan Demand = 94.0
Rute ke- 3 >> 0 57 38 14 23 67 55 0 => Jarak = 223.4812883384822, dengan
Demand = 99.0
Rute ke- 4 >> 0 80 54 3 79 34 78 35 71 81 33 0 => Jarak =
226.1080433680456, dengan Demand = 137.0
Rute ke- 5 >> 0 45 11 63 8 18 52 27 0 => Jarak = 200.2953623681263, dengan
Demand = 84.0
Rute ke- 6 >> 0 70 20 9 30 65 32 90 0 => Jarak = 222.00125775378714,
dengan Demand = 97.0
Rute ke- 7 >> 0 50 31 68 22 56 72 21 26 53 0 => Jarak =
225.39159126893074, dengan Demand = 167.0
Rute ke- 8 >> 0 29 24 75 4 41 28 1 0 => Jarak = 222.19798418450728, dengan
Demand = 80.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
58
Rute ke- 9 >> 0 73 74 94 17 84 83 16 85 95 0 => Jarak =
220.88844660388028, dengan Demand = 144.0
Rute ke- 10 >> 0 13 98 93 100 44 49 64 0 => Jarak = 223.58729811832038,
dengan Demand = 129.0
Rute ke- 11 >> 0 7 19 88 62 10 82 60 5 0 => Jarak = 196.7341682348373,
dengan Demand = 111.0
Rute ke- 12 >> 0 51 66 69 77 76 0 => Jarak = 156.82947013281205, dengan
Demand = 68.0
dengan total jarak = 1798.7450161102124.
Dari hasil di atas diketahui bahwa total jarak dari 13 rute adalah
1798.7450161102124. Dari 20 kendaraan yang diinputkan, hanya terpakai 13
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P08 dapat dilihat pada
Lampiran 23.
4.4.9 Permasalahan P09
Permasalahan P09 pada Lampiran 9 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 33
Jumlah kota = 150
Jarak maksimal kendaraan = 200
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 500
Konstanta Q = 1000
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
59
Service duration = 10
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 119 98 48 84 2 127 0 => Jarak = 193.04696892686718, dengan
Demand = 117.0
Rute ke- 1 >> 0 148 55 110 111 137 107 54 0 => Jarak = 190.4123266350988,
dengan Demand = 104.0
Rute ke- 2 >> 0 144 56 139 78 117 16 0 => Jarak = 193.69445033647156,
dengan Demand = 101.0
Rute ke- 3 >> 0 145 133 14 25 96 24 60 51 0 => Jarak = 196.2724818155103,
dengan Demand = 117.0
Rute ke- 4 >> 0 140 83 22 80 82 101 0 => Jarak = 189.59063014506583,
dengan Demand = 76.0
Rute ke- 5 >> 0 66 64 150 135 88 40 44 0 => Jarak = 191.7858844326203,
dengan Demand = 136.0
Rute ke- 6 >> 0 20 115 120 1 27 18 0 => Jarak = 194.1466603305492, dengan
Demand = 116.0
Rute ke- 7 >> 0 49 53 74 130 34 118 30 10 0 => Jarak = 193.3700145088056,
dengan Demand = 126.0
Rute ke- 8 >> 0 23 112 28 70 31 3 59 0 => Jarak = 192.75464602017593,
dengan Demand = 101.0
Rute ke- 9 >> 0 72 71 17 109 146 136 142 0 => Jarak = 191.3676288399679,
dengan Demand = 108.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
60
Rute ke- 10 >> 0 4 143 43 57 61 69 0 => Jarak = 196.98573802662116, dengan
Demand = 76.0
Rute ke- 11 >> 0 52 138 12 15 91 33 0 => Jarak = 194.64685913540112,
dengan Demand = 83.0
Rute ke- 12 >> 0 6 73 39 105 123 122 0 => Jarak = 197.75005634286302,
dengan Demand = 94.0
Rute ke- 13 >> 0 108 147 93 42 19 92 5 103 0 => Jarak =
177.83627881254466, dengan Demand = 99.0
Rute ke- 14 >> 0 126 76 29 131 100 32 81 11 0 => Jarak =
190.89436277840787, dengan Demand = 133.0
Rute ke- 15 >> 0 128 50 129 62 9 38 77 0 => Jarak = 168.97489841380633,
dengan Demand = 97.0
Rute ke- 16 >> 0 85 36 116 121 35 79 21 0 => Jarak = 197.08951225154118,
dengan Demand = 88.0
Rute ke- 17 >> 0 75 89 106 124 104 45 37 0 => Jarak = 199.86916915554747,
dengan Demand = 88.0
Rute ke- 18 >> 0 8 113 114 46 102 47 0 => Jarak = 179.4322382049065,
dengan Demand = 81.0
Rute ke- 19 >> 0 125 65 41 134 141 94 0 => Jarak = 196.0118955673806,
dengan Demand = 79.0
Rute ke- 20 >> 0 90 87 149 63 13 67 95 58 0 => Jarak = 198.5599351192529,
dengan Demand = 99.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
61
Rute ke- 21 >> 0 97 7 26 99 86 132 68 0 => Jarak = 199.53011868019837,
dengan Demand = 116.0
dengan total jarak = 2724.0227544796026.
Dari hasil di atas diketahui bahwa total jarak dari 22 rute adalah
2724.0227544796026. Dari 33 kendaraan yang diinputkan, hanya terpakai 22
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P09 dapat dilihat pada
Lampiran 24.
4.4.10 Permasalahan P10
Permasalahan P10 pada Lampiran 10 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 42
Jumlah kota = 199
Jarak maksimal kendaraan = 200
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 250
Konstanta Q = 1000
Service duration = 10
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 6 150 127 123 13 14 0 => Jarak = 197.46402192757654,
dengan Demand = 91.0
Rute ke- 1 >> 0 64 105 165 80 55 0 => Jarak = 194.366220986916, dengan
Demand = 64.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
62
Rute ke- 2 >> 0 30 54 50 40 77 100 60 0 => Jarak = 173.3188148201463,
dengan Demand = 126.0
Rute ke- 3 >> 0 180 52 133 11 164 129 0 => Jarak = 195.17047798808028,
dengan Demand = 134.0
Rute ke- 4 >> 0 53 143 115 89 36 155 0 => Jarak = 194.04691288580034,
dengan Demand = 71.0
Rute ke- 5 >> 0 139 86 101 140 48 103 167 149 0 => Jarak =
188.10292008469864, dengan Demand = 118.0
Rute ke- 6 >> 0 98 153 196 158 184 33 12 0 => Jarak = 189.16650227418972,
dengan Demand = 160.0
Rute ke- 7 >> 0 19 134 170 178 78 35 99 0 => Jarak = 182.44321762156744,
dengan Demand = 87.0
Rute ke- 8 >> 0 151 34 25 75 9 57 0 => Jarak = 188.26430180984158, dengan
Demand = 101.0
Rute ke- 9 >> 0 58 119 24 68 0 => Jarak = 195.48973373090718, dengan
Demand = 56.0
Rute ke- 10 >> 0 197 136 21 37 124 154 29 152 0 => Jarak =
186.16091827860183, dengan Demand = 95.0
Rute ke- 11 >> 0 183 62 192 43 41 191 1 198 190 0 => Jarak =
195.57933512724335, dengan Demand = 115.0
Rute ke- 12 >> 0 31 71 131 17 95 2 0 => Jarak = 189.87734980607647, dengan
Demand = 107.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
63
Rute ke- 13 >> 0 92 161 74 189 0 => Jarak = 197.7910518746664, dengan
Demand = 61.0
Rute ke- 14 >> 0 59 122 114 42 90 113 96 0 => Jarak = 199.28524543046345,
dengan Demand = 125.0
Rute ke- 15 >> 0 162 147 72 110 148 130 0 => Jarak = 193.19015216269665,
dengan Demand = 131.0
Rute ke- 16 >> 0 177 81 169 97 118 146 0 => Jarak = 190.3735083707124,
dengan Demand = 81.0
Rute ke- 17 >> 0 106 18 109 107 181 117 61 0 => Jarak =
184.97645535819436, dengan Demand = 100.0
Rute ke- 18 >> 0 3 56 10 85 108 69 132 0 => Jarak = 198.8733545283902,
dengan Demand = 117.0
Rute ke- 19 >> 0 121 120 93 91 199 66 160 0 => Jarak = 192.4008703101428,
dengan Demand = 91.0
Rute ke- 20 >> 0 157 137 185 141 193 104 188 0 => Jarak =
198.03523959506947, dengan Demand = 142.0
Rute ke- 21 >> 0 168 111 179 70 94 79 0 => Jarak = 193.24694595200583,
dengan Demand = 68.0
Rute ke- 22 >> 0 82 138 15 174 171 76 0 => Jarak = 187.55433251097844,
dengan Demand = 120.0
Rute ke- 23 >> 0 65 47 46 102 175 176 87 126 0 => Jarak =
194.44843611494386, dengan Demand = 132.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
64
Rute ke- 24 >> 0 195 16 28 156 83 128 4 0 => Jarak = 199.2731511838366,
dengan Demand = 131.0
Rute ke- 25 >> 0 38 84 51 26 125 194 0 => Jarak = 188.42668000543827,
dengan Demand = 126.0
Rute ke- 26 >> 0 5 45 88 20 166 173 172 0 => Jarak = 186.86860132877965,
dengan Demand = 120.0
Rute ke- 27 >> 0 159 116 44 63 144 145 0 => Jarak = 179.0264378691034,
dengan Demand = 60.0
Rute ke- 28 >> 0 22 23 67 142 186 0 => Jarak = 167.58346345276132, dengan
Demand = 92.0
Rute ke- 29 >> 0 112 163 39 187 32 0 => Jarak = 173.24312534273878,
dengan Demand = 85.0
Rute ke- 30 >> 0 135 49 182 73 7 0 => Jarak = 197.21893295391504, dengan
Demand = 46.0
Rute ke- 31 >> 0 8 27 0 => Jarak = 73.38566416949868, dengan Demand =
33.0
dengan total jarak = 3974.6523758559797.
Dari hasil di atas diketahui bahwa total jarak dari 32 rute adalah
3974.6523758559797. Dari 42 kendaraan yang diinputkan, hanya terpakai 32
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P10 dapat dilihat pada
Lampiran 25.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
65
4.4.11 Permasalahan P11
Permasalahan P11 pada Lampiran 11 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 8
Jumlah kota = 120
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 119 11 4 9 7 3 5 10 6 12 20 42 48 50 71 73 74 101 107 0 =>
Jarak = 308.4119245340831, dengan Demand = 197.0
Rute ke- 1 >> 0 110 57 56 66 52 59 64 61 62 60 37 43 108 90 112 111 88 0 =>
Jarak = 304.0458809509304, dengan Demand = 194.0
Rute ke- 2 >> 0 120 99 77 75 1 115 109 104 105 102 87 2 84 0 => Jarak =
338.6950015990059, dengan Demand = 200.0
Rute ke- 3 >> 0 22 34 33 31 23 30 27 29 49 46 51 41 47 44 28 54 55 18 118 91 0
=> Jarak = 401.4551237550494, dengan Demand = 195.0
Rute ke- 4 >> 0 86 89 98 114 94 93 26 19 35 36 32 24 25 13 15 14 81 82 0 =>
Jarak = 255.87173387187357, dengan Demand = 197.0
Rute ke- 5 >> 0 16 17 21 79 70 72 8 38 40 45 67 69 96 113 117 83 0 => Jarak
= 486.44635558536095, dengan Demand = 200.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
66
Rute ke- 6 >> 0 116 106 100 92 85 97 53 63 58 65 39 68 80 78 76 103 95 0 =>
Jarak = 318.77493127453744, dengan Demand = 192.0
dengan total jarak = 2413.7009515708405.
Dari hasil di atas diketahui bahwa total jarak dari 7 rute adalah
2413.7009515708405. Dari 8 kendaraan yang diinputkan, hanya terpakai 7
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P11 dapat dilihat pada
Lampiran 26.
4.4.12 Permasalahan P12
Permasalahan P12 pada Lampiran 12 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 12
Jumlah kota = 100
Jarak maksimal kendaraan = 0
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 0
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 68 56 60 37 29 5 9 84 66 40 42 43 3 4 0 => Jarak =
290.75826711008085, dengan Demand = 200.0
Rute ke- 1 >> 0 63 65 67 74 72 53 58 55 69 0 => Jarak =
109.32851214207804, dengan Demand = 200.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
67
Rute ke- 2 >> 0 25 34 39 18 15 17 30 26 23 1 0 => Jarak =
155.6970020363125, dengan Demand = 200.0
Rute ke- 3 >> 0 19 16 12 14 11 10 2 13 21 20 0 => Jarak =
148.39696984940753, dengan Demand = 190.0
Rute ke- 4 >> 0 61 77 76 8 6 7 52 35 38 44 50 27 24 22 0 => Jarak =
272.7525838733746, dengan Demand = 200.0
Rute ke- 5 >> 0 95 100 99 32 36 28 49 51 41 46 47 48 0 => Jarak =
212.028268166955, dengan Demand = 200.0
Rute ke- 6 >> 0 71 70 79 73 80 62 59 57 54 45 0 => Jarak =
196.40510570929692, dengan Demand = 200.0
Rute ke- 7 >> 0 33 31 64 81 78 83 82 85 91 86 0 => Jarak =
197.07659571670558, dengan Demand = 200.0
Rute ke- 8 >> 0 98 96 94 93 97 92 89 88 87 90 0 => Jarak =
117.31481659651458, dengan Demand = 200.0
Rute ke- 9 >> 0 75 0 => Jarak = 31.622776601683793, dengan Demand = 20.0
dengan total jarak = 1731.3808978024094.
Dari hasil di atas diketahui bahwa total jarak dari 10 rute adalah
1731.3808978024094. Dari 12 kendaraan yang diinputkan, hanya terpakai 10
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P12 dapat dilihat pada
Lampiran 27.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
68
4.4.13 Permasalahan P13
Permasalahan P13 pada Lampiran 13 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 18
Jumlah kota = 120
Jarak maksimal kendaraan = 720
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 50
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 18 81 29 8 115 80 78 87 0 => Jarak = 716.0839219617916,
dengan Demand = 96.0
Rute ke- 1 >> 0 22 57 54 7 43 100 0 => Jarak = 698.1557784194565, dengan
Demand = 66.0
Rute ke- 2 >> 0 82 65 106 99 13 97 105 102 0 => Jarak = 702.7185410183001,
dengan Demand = 95.0
Rute ke- 3 >> 0 32 112 3 113 79 77 68 0 => Jarak = 698.3492558571269,
dengan Demand = 79.0
Rute ke- 4 >> 0 47 62 42 23 44 58 55 0 => Jarak = 718.1950589842164,
dengan Demand = 81.0
Rute ke- 5 >> 0 63 64 49 110 72 119 111 0 => Jarak = 677.5082215373317,
dengan Demand = 82.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
69
Rute ke- 6 >> 0 73 35 12 108 40 1 0 => Jarak = 696.2533523148418, dengan
Demand = 84.0
Rute ke- 7 >> 0 48 61 38 10 15 9 14 6 0 => Jarak = 685.907685812588, dengan
Demand = 99.0
Rute ke- 8 >> 0 41 46 45 51 37 21 50 74 0 => Jarak = 709.6951063630579,
dengan Demand = 101.0
Rute ke- 9 >> 0 60 53 24 39 5 2 83 0 => Jarak = 692.6200955409471, dengan
Demand = 68.0
Rute ke- 10 >> 0 107 120 101 52 16 31 109 89 0 => Jarak =
678.6037232010652, dengan Demand = 91.0
Rute ke- 11 >> 0 66 117 95 94 88 67 75 0 => Jarak = 694.8867296403632,
dengan Demand = 95.0
Rute ke- 12 >> 0 85 114 11 33 27 34 25 20 17 4 0 => Jarak =
715.1484613169986, dengan Demand = 95.0
Rute ke- 13 >> 0 71 76 116 26 36 86 96 103 0 => Jarak = 685.6742722234321,
dengan Demand = 75.0
Rute ke- 14 >> 0 28 19 59 98 84 69 70 0 => Jarak = 701.6410326641916,
dengan Demand = 93.0
Rute ke- 15 >> 0 56 30 93 90 104 92 91 118 0 => Jarak = 707.7181359964854,
dengan Demand = 75.0
dengan total jarak = 5179.159372852191.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
70
Dari hasil di atas diketahui bahwa total jarak dari 16 rute adalah
5179.159372852191. Dari 18 kendaraan yang diinputkan, hanya terpakai 16
kendaraan untuk melayani pelanggan.
Hasil solusi selengkapnya pada permasalahan P13 dapat dilihat pada
Lampiran 28.
4.4.14 Permasalahan P14
Permasalahan P14 pada Lampiran 14 diselesaikan dengan menggunakan
program pada Lampiran 15. Parameter yang digunakan sebagai berikut :
Jumlah semut / kendaraan = 15
Jumlah kota = 100
Jarak maksimal kendaraan =
1040
Kapasitas kendaraan = 200
Alpha = 2
Beta = 1
Rho = 0,8
Pheromon awal = 0,1
Total iterasi = 1000
Konstanta Q = 1000
Service duration = 90
Dengan parameter di atas, diperoleh solusi sebagai berikut:
Rute ke- 0 >> 0 75 83 85 41 36 39 33 42 31 0 => Jarak =
1034.3992454022123, dengan Demand = 180.0
Rute ke- 1 >> 0 80 79 61 73 77 70 45 94 0 => Jarak = 1035.1529322974227,
dengan Demand = 100.0
Rute ke- 2 >> 0 35 13 50 64 55 60 72 87 0 => Jarak = 979.211701405598,
dengan Demand = 120.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
71
Rute ke- 3 >> 0 96 63 74 24 4 7 8 21 44 0 => Jarak = 1016.8178973928821,
dengan Demand = 200.0
Rute ke- 4 >> 0 28 40 58 51 56 38 3 1 0 => Jarak = 972.7971942721796,
dengan Demand = 150.0
Rute ke- 5 >> 0 43 54 59 76 93 25 20 49 0 => Jarak = 972.7248347717949,
dengan Demand = 170.0
Rute ke- 6 >> 0 67 65 97 10 16 52 48 37 0 => Jarak = 958.6180254781443,
dengan Demand = 140.0
Rute ke- 7 >> 0 68 82 84 81 71 15 11 34 0 => Jarak = 997.5351957161569,
dengan Demand = 170.0
Rute ke- 8 >> 0 53 57 90 78 89 22 2 88 0 => Jarak = 998.6048961537472,
dengan Demand = 180.0
Rute ke- 9 >> 0 12 27 29 47 69 30 18 19 17 0 => Jarak =
1014.5364765125278, dengan Demand = 120.0
Rute ke- 10 >> 0 32 100 14 86 98 91 92 66 0 => Jarak = 1034.5560033102963,
dengan Demand = 130.0
Rute ke- 11 >> 0 26 46 62 9 6 95 99 5 23 0 => Jarak = 990.45924081424,
dengan Demand = 150.0
dengan total jarak = 3005.4136435271994.
Dari hasil di atas diketahui bahwa total jarak dari 12 rute adalah
3005.4136435271994. Dari 15 kendaraan yang diinputkan, hanya terpakai 12
kendaraan untuk melayani pelanggan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
72
Hasil solusi selengkapnya pada permasalahan P14 dapat dilihat pada
Lampiran 29.
4.5 Perbandingan Hasil untuk Nilai Parameter yang Berbeda
Pada perbandingan ini, data yang digunakan adalah permasalahan P01 dan
P05 yang dapat dilihat pada Lampiran 1 dan Lampiran 5. Berikut hasil
perhitungan total jarak semua rute yang didapatkan pada masing – masing
permasalahan dengan parameter yang berbeda, yaitu alpha, beta, rho, dan
konstanta Q. Pada perbandingan ini, permasalahan P01 menggunakan parameter
diantaranya jumlah semut atau kendaraan = 5, jumlah kota atau pelanggan = 50,
jarak tempuh maksimum kendaraan = 0, kapasitas kendaraan = 160, pheromone
awal = 0.1, dan total iterasi = 1000. Sedangkan untuk permasalahan P05
menggunakan parameter diantaranya jumlah semut atau kendaraan = 20, jumlah
kota atau pelanggan = 199, jarak tempuh maksimum kendaraan = 0, kapasitas
kendaraan = 200, pheromone awal = 0.1, dan total iterasi = 250. Jika jarak tempuh
maksimum kendaraan = 0, artinya dalam pemilihan kota yang akan dilayani hanya
mengacu pada batasan kapasitas kendaraan, dan jauh pendeknya jarak tidak
dipermasalahkan.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
73
Tabel 4.2 Total jarak semua rute dengan pembanding alpha
Alpha
Data (jumlah kota, kapasitas kendaraan)
P01 (50, 160) P05 (199, 200)
2 856.2111041927855 4434.740334818186
5 860.8271635893498 4571.283609059414
10 943.2022937138713 4587.644659242707
Berdasarkan hasil perhitungan total jarak semua rute pada Tabel 4.2 di atas
menunjukkan bahwa semakin kecil nilai alpha maka nilai total jarak semua rute
yang didapatkan semakin baik.
Tabel 4.3 Total jarak semua rute dengan pembanding beta
Beta
Data (jumlah kota, kapasitas kendaraan)
P01 (50, 160) P05 (199, 200)
1 856.2111041927855 4434.740334818186
5 709.2558612529662 1932.840676430728
10 659.026661268713 1875.492037923544
Berdasarkan hasil perhitungan total jarak semua rute pada Tabel 4.3 di atas
menunjukkan bahwa semakin besar nilai beta maka nilai total jarak semua rute
yang didapatkan semakin baik.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
74
Tabel 4.4 Total jarak semua rute dengan pembanding rho
Rho
Data (jumlah kota, kapasitas kendaraan)
P01 (50, 160) P05 (199, 200)
0,1 805.2008449491516 4280.803187757259
0,5 848.5150081762803 4394.269916931748
0,8 856.2111041927855 4434.740334818186
Berdasarkan hasil perhitungan total jarak semua rute pada Tabel 4.4 di atas
menunjukkan bahwa semakin kecil nilai rho maka nilai total jarak semua rute
yang didapatkan semakin baik.
Tabel 4.5 Total jarak semua rute dengan pembanding konstanta Q
Konstanta Q Data (jumlah kota, kapasitas kendaraan)
P01 (50, 160) P05 (199, 200)
10 814.2746904517317 3872.6681498576477
100 829.3389418283125 4083.6462805380434
1000 856.2111041927855 4434.740334818186
Berdasarkan hasil perhitungan total jarak semua rute pada Tabel 4.5 di atas
menunjukkan bahwa semakin kecil nilai konstanta Q maka nilai total jarak semua
rute yang didapatkan semakin baik.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
75
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
1. Algoritma improved ant colony optimization dapat diterapkan untuk
menyelesaikan vehicle routing problem. Proses yang digunakan antara
lain: konstruksi rute untuk setiap semut, cek nilai random ≤ Pm(t), proses
mutasi, local search, dan update pheromone.
2. Program untuk menyelesaikan vehicle routing problem dengan
menggunakan algoritma improved ant colony optimization dapat dibuat
dengan bahasa pemrograman JAVA dengan NetBeans IDE.
3. Berdasarkan perhitungan pada perbandingan hasil untuk nilai parameter
yang berbeda menunjukkan bahwa semakin kecil nilai alpha, rho, dan
konstanta Q, serta semakin besar nilai beta menghasilkan solusi yang lebih
baik.
5.2 Saran
Untuk penelitian selanjutnya, algoritma IACO dapat dihybrid dengan
beberapa algoritma lain seperti algoritma tabu search, algoritma saving, algoritma
genetika, dan algoritma yang lainnya untuk menyelesaikan vehicle routing
problem.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
76
DAFTAR PUSTAKA
[1] Beasley, J.E., 1990, OR-Library: distributing test problems by electronic mail, Journal of the Operational Research Society 41, 1069–1072, (http://neumann.hec.ca/chairedistributique/data/vrp/old/) diakses 1 Mei 2012.
[2] Bin, Y. et al., 2008, An Improved Ant Colony Optimization for Vehicle Routing Problem, European Journal of Operational Research, 196, 171-176.
[3] Bullnheimer et al., 1997, Applying The Ant System to The Vehicle
Routing Problem, In: Second Metaheuristics International Conference, MIC’97, Sophia-Antipolis, France.
[4] Chartrand, G. dan Oellerman, O.R., 1993, Applied and Algorithmic Graph
Theory, McGraw-Hill, New York. [5] Christofides et al., 1979, Combinatorial Optimization, John Willey and
Sons, New York. [6] Dorigo, M. et al., 1996, The Ant System: Optimization by a Colony of
Cooperating Agents, IEEE Transactions on System, Man, Cybernetics-Part B 26, 29-41.
[7] Foulds, L.R., 1984, Combinatorial Optimization for Undergraduates,
Springer-Verlag, New York. [8] Gaertner, D., 2004, Natural Algorithms in Timetabling and Scheduling,
Department of Artificial Intelegence, University of Edinburgh. [9] Gen, M. dan Cheng, R., 1997, Genetic Algorithms and Engineering
Design, John Wiley & Sons, New York. [10] Goss, S. et al., 1989, Self-organised short-cuts in the Argentine ant,
Naturwissenschaften 76, Germany.
[11] Konig, F., 2008, Scheduling in Water Business, Diploma Thesis, Faculty of Informatics, Universitat Karlsruhe, Karlsruhe.
[12] Obitko, M., 1998, Introduction to Genetic Algorithms, Czech Technical
University, Prague (www.obitko.com/tutorials/genetic-algorithms).
[13] Raharjo, B. dkk., 2009, Mudah Belajar JAVA, Penerbit Informatika, Bandung
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
77
[14] Stützle, T.G., 1998, Local Search Algorithms for Combinatorial Problems,
Dissertation, Technische Universität Darmstadt. [15] Tarigan, D., 2008, Pemodelan Vehicle Routing Problem Terbuka dengan
Keterbatasan Waktu, Thesis Sekolah Pascasarjana Universitas Sumatera Utara, Medan.
[16] Toth, P. dan Vigo, D., 2002, The Vehicle Routing Problem, Siam
Publisher, Philadelphia. [17] Wardy, I.S., 2007, Penggunaan Graph dalam Algoritma Semut untuk
Melakukan Optimisasi, Makalah Program Studi Teknik Informatika, Institut Teknologi Bogor, Bandung.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 1 - 1
Lampiran 1 : Data P01
Depot : 1
Vehicle : 5
Customer : 50
Total jarak max : 0
Kapasitas max : 160
i x y d q
0 30 40 0 0
1 37 52 0 7
2 49 49 0 30
3 52 64 0 16
4 20 26 0 9
5 40 30 0 21
6 21 47 0 15
7 17 63 0 19
8 31 62 0 23
9 52 33 0 11
10 51 21 0 5
11 42 41 0 19
12 31 32 0 29
13 5 25 0 23
14 12 42 0 21
15 36 16 0 10
16 52 41 0 15
17 27 23 0 3
18 17 33 0 41
19 13 13 0 9
20 57 58 0 28
21 62 42 0 8
22 42 57 0 8
23 16 57 0 16
24 8 52 0 10
25 7 38 0 28
26 27 68 0 7
27 30 48 0 15
28 43 67 0 14
29 58 48 0 6
30 58 27 0 19
31 37 69 0 11
32 38 46 0 12
33 46 10 0 23
34 61 33 0 26
35 62 63 0 17
36 63 69 0 6
37 32 22 0 9
38 45 35 0 15
39 59 15 0 14
40 5 6 0 7
41 10 17 0 27
42 21 10 0 13
43 5 64 0 11
44 30 15 0 16
45 39 10 0 10
46 32 39 0 5
47 25 32 0 25
48 25 55 0 17
49 48 28 0 18
50 56 37 0 10
Keterangan : i = customer number
x = koordinat X
y = koordinat Y
d = service duration
q = permintaan / demand
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 2 - 1
Lampiran 2 : Data P02
Depot : 1
Vehicle : 12
Customer : 75
Total jarak max : 0
Kapasitas max : 140
i x y d q
0 40 40 0 0
1 22 22 0 18
2 36 26 0 26
3 21 45 0 11
4 45 35 0 30
5 55 20 0 21
6 33 34 0 19
7 50 50 0 15
8 55 45 0 16
9 26 59 0 29
10 40 66 0 26
11 55 65 0 37
12 35 51 0 16
13 62 35 0 12
14 62 57 0 31
15 62 24 0 8
16 21 36 0 19
17 33 44 0 20
18 9 56 0 13
19 62 48 0 15
20 66 14 0 22
21 44 13 0 28
22 26 13 0 12
23 11 28 0 6
24 7 43 0 27
25 17 64 0 14
26 41 46 0 18
27 55 34 0 17
28 35 16 0 29
29 52 26 0 13
30 43 26 0 22
31 31 76 0 25
32 22 53 0 28
33 26 29 0 27
34 50 40 0 19
35 55 50 0 10
36 54 10 0 12
37 60 15 0 14
38 47 66 0 24
39 30 60 0 16
40 30 50 0 33
41 12 17 0 15
42 15 14 0 11
43 16 19 0 18
44 21 48 0 17
45 50 30 0 21
46 51 42 0 27
47 50 15 0 19
48 48 21 0 20
49 12 38 0 5
50 15 56 0 22
51 29 39 0 12
52 54 38 0 19
53 55 57 0 22
54 67 41 0 16
55 10 70 0 7
56 6 25 0 26
57 65 27 0 14
58 40 60 0 21
59 70 64 0 24
60 64 4 0 13
61 36 6 0 15
62 30 20 0 18
63 20 30 0 11
64 15 5 0 28
65 50 70 0 9
66 57 72 0 37
67 45 42 0 30
68 38 33 0 10
69 50 4 0 8
70 66 8 0 11
71 59 5 0 3
72 35 60 0 1
73 27 24 0 6
74 40 20 0 10
75 40 37 0 20
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 3 - 1
Lampiran 3 : Data P03
Depot : 1
Vehicle : 10
Customer : 100
Total jarak max : 0
Kapasitas max : 200
i x y d q 0 35 35 0 0
1 41 49 0 10
2 35 17 0 7
3 55 45 0 13
4 55 20 0 19
5 15 30 0 26
6 25 30 0 3
7 20 50 0 5
8 10 43 0 9
9 55 60 0 16
10 30 60 0 16
11 20 65 0 12
12 50 35 0 19
13 30 25 0 23
14 15 10 0 20
15 30 5 0 8
16 10 20 0 19
17 5 30 0 2
18 20 40 0 12
19 15 60 0 17
20 45 65 0 9
21 45 20 0 11
22 45 10 0 18
23 55 5 0 29
24 65 35 0 3
25 65 20 0 6
26 45 30 0 17
27 35 40 0 16
28 41 37 0 16
29 64 42 0 9
30 40 60 0 21
31 31 52 0 27
32 35 69 0 23
33 53 52 0 11
34 65 55 0 14
35 63 65 0 8
36 2 60 0 5
37 20 20 0 8
38 5 5 0 16
39 60 12 0 31
40 40 25 0 9
41 42 7 0 5
42 24 12 0 5
43 23 3 0 7
44 11 14 0 18
45 6 38 0 16
46 2 48 0 1
47 8 56 0 27
48 13 52 0 36
49 6 68 0 30
50 47 47 0 13
51 49 58 0 10
52 27 43 0 9
53 37 31 0 14
54 57 29 0 18
55 63 23 0 2
56 53 12 0 6
57 32 12 0 7
58 36 26 0 18
59 21 24 0 28
60 17 34 0 3
61 12 24 0 13
62 24 58 0 19
63 27 69 0 10
64 15 77 0 9
65 62 77 0 20
66 49 73 0 25
67 67 5 0 25
68 56 39 0 36
69 37 47 0 6
70 37 56 0 5
71 57 68 0 15
72 47 16 0 25
73 44 17 0 9
74 46 13 0 8
75 49 11 0 18
76 49 42 0 13
77 53 43 0 14
78 61 52 0 3
79 57 48 0 23
80 56 37 0 6
81 55 54 0 26
82 15 47 0 16
83 14 37 0 11
84 11 31 0 7
85 16 22 0 41
86 4 18 0 35
87 28 18 0 26
88 26 52 0 9
89 26 35 0 15
90 31 67 0 3
91 15 19 0 1
92 22 22 0 2
93 18 24 0 22
94 26 27 0 27
95 25 24 0 20
96 22 27 0 11
97 25 21 0 12
98 19 21 0 10
99 20 26 0 9
100 18 18 0 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 4 - 1
Lampiran 4: Data P04
Depot : 1
Vehicle : 14
Customer : 150
Total jarak max : 0
Kapasitas max : 200
i x y d q
0 35 35 0 0
1 37 52 0 7
2 49 49 0 30
3 52 64 0 16
4 20 26 0 9
5 40 30 0 21
6 21 47 0 15
7 17 63 0 19
8 31 62 0 23
9 52 33 0 11
10 51 21 0 5
11 42 41 0 19
12 31 32 0 29
13 5 25 0 23
14 12 42 0 21
15 36 16 0 10
16 52 41 0 15
17 27 23 0 3
18 17 33 0 41
19 13 13 0 9
20 57 58 0 28
21 62 42 0 8
22 42 57 0 8
23 16 57 0 16
24 8 52 0 10
25 7 38 0 28
26 27 68 0 7
27 30 48 0 15
28 43 67 0 14
29 58 48 0 6
30 58 27 0 19
31 37 69 0 11
32 38 46 0 12
33 46 10 0 23
34 61 33 0 26
35 62 63 0 17
36 63 69 0 6
37 32 22 0 9
38 45 35 0 15
39 59 15 0 14
40 5 6 0 7
41 10 17 0 27
42 21 10 0 13
43 5 64 0 11
44 30 15 0 16
45 39 10 0 10
46 32 39 0 5
47 25 32 0 25
48 25 55 0 17
49 48 28 0 18
50 56 37 0 10
51 41 49 0 10
52 35 17 0 7
53 55 45 0 13
54 55 20 0 19
55 15 30 0 26
56 25 30 0 3
57 20 50 0 5
58 10 43 0 9
59 55 60 0 16
60 30 60 0 16
61 20 65 0 12
62 50 35 0 19
63 30 25 0 23
64 15 10 0 20
65 30 5 0 8
66 10 20 0 19
67 5 30 0 2
68 20 40 0 12
69 15 60 0 17
70 45 65 0 9
71 45 20 0 11
72 45 10 0 18
73 55 5 0 29
74 65 35 0 3
75 65 20 0 6
76 45 30 0 17
77 35 40 0 16
78 41 37 0 16
79 64 42 0 9
80 40 60 0 21
81 31 52 0 27
82 35 69 0 23
83 53 52 0 11
84 65 55 0 14
85 63 65 0 8
86 2 60 0 5
87 20 20 0 8
88 5 5 0 16
89 60 12 0 31
90 40 25 0 9
91 42 7 0 5
92 24 12 0 5
93 23 3 0 7
94 11 14 0 18
95 6 38 0 16
96 2 48 0 1
97 8 56 0 27
98 13 52 0 36
99 6 68 0 30
100 47 47 0 13
101 49 58 0 10
102 27 43 0 9
103 37 31 0 14
104 57 29 0 18
105 63 23 0 2
106 53 12 0 6
107 32 12 0 7
108 36 26 0 18
109 21 24 0 28
110 17 34 0 3
111 12 24 0 13
112 24 58 0 19
113 27 69 0 10
114 15 77 0 9
115 62 77 0 20
116 49 73 0 25
117 67 5 0 25
118 56 39 0 36
119 37 47 0 6
120 37 56 0 5
121 57 68 0 15
122 47 16 0 25
123 44 17 0 9
124 46 13 0 8
125 49 11 0 18
126 49 42 0 13
127 53 43 0 14
128 61 52 0 3
129 57 48 0 23
130 56 37 0 6
131 55 54 0 26
132 15 47 0 16
133 14 37 0 11
134 11 31 0 7
135 16 22 0 41
136 4 18 0 35
137 28 18 0 26
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 4 - 2
138 26 52 0 9
139 26 35 0 15
140 31 67 0 3
141 15 19 0 1
142 22 22 0 2
143 18 24 0 22
144 26 27 0 27
145 25 24 0 20
146 22 27 0 11
147 25 21 0 12
148 19 21 0 10
149 20 26 0 9
150 18 18 0 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 5 - 1
Lampiran 5: Data P05
Depot : 1
Vehicle : 20
Customer : 199
Total jarak max : 0
Kapasitas max : 200
i x y d q
0 35 35 0 0
1 22 22 0 18
2 36 26 0 26
3 21 45 0 11
4 45 35 0 30
5 55 20 0 21
6 33 34 0 19
7 50 50 0 15
8 55 45 0 16
9 26 59 0 29
10 40 66 0 26
11 55 65 0 37
12 35 51 0 16
13 62 35 0 12
14 62 57 0 31
15 62 24 0 8
16 21 36 0 19
17 33 44 0 20
18 9 56 0 13
19 62 48 0 15
20 66 14 0 22
21 44 13 0 28
22 26 13 0 12
23 11 28 0 6
24 7 43 0 27
25 17 64 0 14
26 41 46 0 18
27 55 34 0 17
28 35 16 0 29
29 52 26 0 13
30 43 26 0 22
31 31 76 0 25
32 22 53 0 28
33 26 29 0 27
34 50 40 0 19
35 55 50 0 10
36 54 10 0 12
37 60 15 0 14
38 47 66 0 24
39 30 60 0 16
40 30 50 0 33
41 12 17 0 15
42 15 14 0 11
43 16 19 0 18
44 21 48 0 17
45 50 30 0 21
46 51 42 0 27
47 50 15 0 19
48 48 21 0 20
49 12 38 0 5
50 37 52 0 7
51 49 49 0 30
52 52 64 0 16
53 20 26 0 9
54 40 30 0 21
55 21 47 0 15
56 17 63 0 19
57 31 62 0 23
58 52 33 0 11
59 51 21 0 5
60 42 41 0 19
61 31 32 0 29
62 5 25 0 23
63 12 42 0 21
64 36 16 0 10
65 52 41 0 15
66 27 23 0 3
67 17 33 0 41
68 13 13 0 9
69 57 58 0 28
70 62 42 0 8
71 42 57 0 8
72 16 57 0 16
73 8 52 0 10
74 7 38 0 28
75 27 68 0 7
76 30 48 0 15
77 43 67 0 14
78 58 48 0 6
79 58 27 0 19
80 37 69 0 11
81 38 46 0 12
82 46 10 0 23
83 61 33 0 26
84 62 63 0 17
85 63 69 0 6
86 32 22 0 9
87 45 35 0 15
88 59 15 0 14
89 5 6 0 7
90 10 17 0 27
91 21 10 0 13
92 5 64 0 11
93 30 15 0 16
94 39 10 0 10
95 32 39 0 5
96 25 32 0 25
97 25 55 0 17
98 48 28 0 18
99 56 37 0 10
100 41 49 0 10
101 35 17 0 7
102 55 45 0 13
103 55 20 0 19
104 15 30 0 26
105 25 30 0 3
106 20 50 0 5
107 10 43 0 9
108 55 60 0 16
109 30 60 0 16
110 20 65 0 12
111 50 35 0 19
112 30 25 0 23
113 15 10 0 20
114 30 5 0 8
115 10 20 0 19
116 5 30 0 2
117 20 40 0 12
118 15 60 0 17
119 45 65 0 9
120 45 20 0 11
121 45 10 0 18
122 55 5 0 29
123 65 35 0 3
124 65 20 0 6
125 45 30 0 17
126 35 40 0 16
127 41 37 0 16
128 64 42 0 9
129 40 60 0 21
130 31 52 0 27
131 35 69 0 23
132 53 52 0 11
133 65 55 0 14
134 63 65 0 8
135 2 60 0 5
136 20 20 0 8
137 5 5 0 16
138 60 12 0 31
139 40 25 0 9
140 42 7 0 5
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 5 - 2
141 24 12 0 5
142 23 3 0 7
143 11 14 0 18
144 6 38 0 16
145 2 48 0 1
146 8 56 0 27
147 13 52 0 36
148 6 68 0 30
149 47 47 0 13
150 49 58 0 10
151 27 43 0 9
152 37 31 0 14
153 57 29 0 18
154 63 23 0 2
155 53 12 0 6
156 32 12 0 7
157 36 26 0 18
158 21 24 0 28
159 17 34 0 3
160 12 24 0 13
161 24 58 0 19
162 27 69 0 10
163 15 77 0 9
164 62 77 0 20
165 49 73 0 25
166 67 5 0 25
167 56 39 0 36
168 37 47 0 6
169 37 56 0 5
170 57 68 0 15
171 47 16 0 25
172 44 17 0 9
173 46 13 0 8
174 49 11 0 18
175 49 42 0 13
176 53 43 0 14
177 61 52 0 3
178 57 48 0 23
179 56 37 0 6
180 55 54 0 26
181 15 47 0 16
182 14 37 0 11
183 11 31 0 7
184 16 22 0 41
185 4 18 0 35
186 28 18 0 26
187 26 52 0 9
188 26 35 0 15
189 31 67 0 3
190 15 19 0 1
191 22 22 0 2
192 18 24 0 22
193 26 27 0 27
194 25 24 0 20
195 22 27 0 11
196 25 21 0 12
197 19 21 0 10
198 20 26 0 9
199 8 18 0 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 6 - 1
Lampiran 6: Data P06
Depot : 1
Vehicle : 11
Customer : 50
Total jarak max : 200
Kapasitas max : 160
i x y d q
0 30 40 0 0
1 37 52 10 7
2 49 49 10 30
3 52 64 10 16
4 20 26 10 9
5 40 30 10 21
6 21 47 10 15
7 17 63 10 19
8 31 62 10 23
9 52 33 10 11
10 51 21 10 5
11 42 41 10 19
12 31 32 10 29
13 5 25 10 23
14 12 42 10 21
15 36 16 10 10
16 52 41 10 15
17 27 23 10 3
18 17 33 10 41
19 13 13 10 9
20 57 58 10 28
21 62 42 10 8
22 42 57 10 8
23 16 57 10 16
24 8 52 10 10
25 7 38 10 28
26 27 68 10 7
27 30 48 10 15
28 43 67 10 14
29 58 48 10 6
30 58 27 10 19
31 37 69 10 11
32 38 46 10 12
33 46 10 10 23
34 61 33 10 26
35 62 63 10 17
36 63 69 10 6
37 32 22 10 9
38 45 35 10 15
39 59 15 10 14
40 5 6 10 7
41 10 17 10 27
42 21 10 10 13
43 5 64 10 11
44 30 15 10 16
45 39 10 10 10
46 32 39 10 5
47 25 32 10 25
48 25 55 10 17
49 48 28 10 18
50 56 37 10 10
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 7 - 1
Lampiran 7: Data P07
Depot : 1
Vehicle : 22
Customer : 75
Total jarak max : 160
Kapasitas max : 140
i x y d q
0 40 40 0 0
1 22 22 10 18
2 36 26 10 26
3 21 45 10 11
4 45 35 10 30
5 55 20 10 21
6 33 34 10 19
7 50 50 10 15
8 55 45 10 16
9 26 59 10 29
10 40 66 10 26
11 55 65 10 37
12 35 51 10 16
13 62 35 10 12
14 62 57 10 31
15 62 24 10 8
16 21 36 10 19
17 33 44 10 20
18 9 56 10 13
19 62 48 10 15
20 66 14 10 22
21 44 13 10 28
22 26 13 10 12
23 11 28 10 6
24 7 43 10 27
25 17 64 10 14
26 41 46 10 18
27 55 34 10 17
28 35 16 10 29
29 52 26 10 13
30 43 26 10 22
31 31 76 10 25
32 22 53 10 28
33 26 29 10 27
34 50 40 10 19
35 55 50 10 10
36 54 10 10 12
37 60 15 10 14
38 47 66 10 24
39 30 60 10 16
40 30 50 10 33
41 12 17 10 15
42 15 14 10 11
43 16 19 10 18
44 21 48 10 17
45 50 30 10 21
46 51 42 10 27
47 50 15 10 19
48 48 21 10 20
49 12 38 10 5
50 15 56 10 22
51 29 39 10 12
52 54 38 10 19
53 55 57 10 22
54 67 41 10 16
55 10 70 10 7
56 6 25 10 26
57 65 27 10 14
58 40 60 10 21
59 70 64 10 24
60 64 4 10 13
61 36 6 10 15
62 30 20 10 18
63 20 30 10 11
64 15 5 10 28
65 50 70 10 9
66 57 72 10 37
67 45 42 10 30
68 38 33 10 10
69 50 4 10 8
70 66 8 10 11
71 59 5 10 3
72 35 60 10 1
73 27 24 10 6
74 40 20 10 10
75 40 37 10 20
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 8 - 1
Lampiran 8: Data P08
Depot : 1
Vehicle : 20
Customer : 100
Total jarak max : 230
Kapasitas max : 200
i x y d q
0 35 35 0 0
1 41 49 10 10
2 35 17 10 7
3 55 45 10 13
4 55 20 10 19
5 15 30 10 26
6 25 30 10 3
7 20 50 10 5
8 10 43 10 9
9 55 60 10 16
10 30 60 10 16
11 20 65 10 12
12 50 35 10 19
13 30 25 10 23
14 15 10 10 20
15 30 5 10 8
16 10 20 10 19
17 5 30 10 2
18 20 40 10 12
19 15 60 10 17
20 45 65 10 9
21 45 20 10 11
22 45 10 10 18
23 55 5 10 29
24 65 35 10 3
25 65 20 10 6
26 45 30 10 17
27 35 40 10 16
28 41 37 10 16
29 64 42 10 9
30 40 60 10 21
31 31 52 10 27
32 35 69 10 23
33 53 52 10 11
34 65 55 10 14
35 63 65 10 8
36 2 60 10 5
37 20 20 10 8
38 5 5 10 16
39 60 12 10 31
40 40 25 10 9
41 42 7 10 5
42 24 12 10 5
43 23 3 10 7
44 11 14 10 18
45 6 38 10 16
46 2 48 10 1
47 8 56 10 27
48 13 52 10 36
49 6 68 10 30
50 47 47 10 13
51 49 58 10 10
52 27 43 10 9
53 37 31 10 14
54 57 29 10 18
55 63 23 10 2
56 53 12 10 6
57 32 12 10 7
58 36 26 10 18
59 21 24 10 28
60 17 34 10 3
61 12 24 10 13
62 24 58 10 19
63 27 69 10 10
64 15 77 10 9
65 62 77 10 20
66 49 73 10 25
67 67 5 10 25
68 56 39 10 36
69 37 47 10 6
70 37 56 10 5
71 57 68 10 15
72 47 16 10 25
73 44 17 10 9
74 46 13 10 8
75 49 11 10 18
76 49 42 10 13
77 53 43 10 14
78 61 52 10 3
79 57 48 10 23
80 56 37 10 6
81 55 54 10 26
82 15 47 10 16
83 14 37 10 11
84 11 31 10 7
85 16 22 10 41
86 4 18 10 35
87 28 18 10 26
88 26 52 10 9
89 26 35 10 15
90 31 67 10 3
91 15 19 10 1
92 22 22 10 2
93 18 24 10 22
94 26 27 10 27
95 25 24 10 20
96 22 27 10 11
97 25 21 10 12
98 19 21 10 10
99 20 26 10 9
100 18 18 10 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 9 - 1
Lampiran 9: Data P09
Depot : 1
Vehicle : 32
Customer : 150
Total jarak max : 200
Kapasitas max : 200
i x y d q
0 35 35 0 0
1 37 52 10 7
2 49 49 10 30
3 52 64 10 16
4 20 26 10 9
5 40 30 10 21
6 21 47 10 15
7 17 63 10 19
8 31 62 10 23
9 52 33 10 11
10 51 21 10 5
11 42 41 10 19
12 31 32 10 29
13 5 25 10 23
14 12 42 10 21
15 36 16 10 10
16 52 41 10 15
17 27 23 10 3
18 17 33 10 41
19 13 13 10 9
20 57 58 10 28
21 62 42 10 8
22 42 57 10 8
23 16 57 10 16
24 8 52 10 10
25 7 38 10 28
26 27 68 10 7
27 30 48 10 15
28 43 67 10 14
29 58 48 10 6
30 58 27 10 19
31 37 69 10 11
32 38 46 10 12
33 46 10 10 23
34 61 33 10 26
35 62 63 10 17
36 63 69 10 6
37 32 22 10 9
38 45 35 10 15
39 59 15 10 14
40 5 6 10 7
41 10 17 10 27
42 21 10 10 13
43 5 64 10 11
44 30 15 10 16
45 39 10 10 10
46 32 39 10 5
47 25 32 10 25
48 25 55 10 17
49 48 28 10 18
50 56 37 10 10
51 41 49 10 10
52 35 17 10 7
53 55 45 10 13
54 55 20 10 19
55 15 30 10 26
56 25 30 10 3
57 20 50 10 5
58 10 43 10 9
59 55 60 10 16
60 30 60 10 16
61 20 65 10 12
62 50 35 10 19
63 30 25 10 23
64 15 10 10 20
65 30 5 10 8
66 10 20 10 19
67 5 30 10 2
68 20 40 10 12
69 15 60 10 17
70 45 65 10 9
71 45 20 10 11
72 45 10 10 18
73 55 5 10 29
74 65 35 10 3
75 65 20 10 6
76 45 30 10 17
77 35 40 10 16
78 41 37 10 16
79 64 42 10 9
80 40 60 10 21
81 31 52 10 27
82 35 69 10 23
83 53 52 10 11
84 65 55 10 14
85 63 65 10 8
86 2 60 10 5
87 20 20 10 8
88 5 5 10 16
89 60 12 10 31
90 40 25 10 9
91 42 7 10 5
92 24 12 10 5
93 23 3 10 7
94 11 14 10 18
95 6 38 10 16
96 2 48 10 1
97 8 56 10 27
98 13 52 10 36
99 6 68 10 30
100 47 47 10 13
101 49 58 10 10
102 27 43 10 9
103 37 31 10 14
104 57 29 10 18
105 63 23 10 2
106 53 12 10 6
107 32 12 10 7
108 36 26 10 18
109 21 24 10 28
110 17 34 10 3
111 12 24 10 13
112 24 58 10 19
113 27 69 10 10
114 15 77 10 9
115 62 77 10 20
116 49 73 10 25
117 67 5 10 25
118 56 39 10 36
119 37 47 10 6
120 37 56 10 5
121 57 68 10 15
122 47 16 10 25
123 44 17 10 9
124 46 13 10 8
125 49 11 10 18
126 49 42 10 13
127 53 43 10 14
128 61 52 10 3
129 57 48 10 23
130 56 37 10 6
131 55 54 10 26
132 15 47 10 16
133 14 37 10 11
134 11 31 10 7
135 16 22 10 41
136 4 18 10 35
137 28 18 10 26
138 26 52 10 9
139 26 35 10 15
140 31 67 10 3
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 9 - 2
141 15 19 10 1
142 22 22 10 2
143 18 24 10 22
144 26 27 10 27
145 25 24 10 20
146 22 27 10 11
147 25 21 10 12
148 19 21 10 10
149 20 26 10 9
150 18 18 10 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 10 - 1
Lampiran 10: Data P10
Depot : 1
Vehicle : 42
Customer : 199
Total jarak max : 200
Kapasitas max : 200
i x y d q
0 35 35 0 0
1 22 22 10 18
2 36 26 10 26
3 21 45 10 11
4 45 35 10 30
5 55 20 10 21
6 33 34 10 19
7 50 50 10 15
8 55 45 10 16
9 26 59 10 29
10 40 66 10 26
11 55 65 10 37
12 35 51 10 16
13 62 35 10 12
14 62 57 10 31
15 62 24 10 8
16 21 36 10 19
17 33 44 10 20
18 9 56 10 13
19 62 48 10 15
20 66 14 10 22
21 44 13 10 28
22 26 13 10 12
23 11 28 10 6
24 7 43 10 27
25 17 64 10 14
26 41 46 10 18
27 55 34 10 17
28 35 16 10 29
29 52 26 10 13
30 43 26 10 22
31 31 76 10 25
32 22 53 10 28
33 26 29 10 27
34 50 40 10 19
35 55 50 10 10
36 54 10 10 12
37 60 15 10 14
38 47 66 10 24
39 30 60 10 16
40 30 50 10 33
41 12 17 10 15
42 15 14 10 11
43 16 19 10 18
44 21 48 10 17
45 50 30 10 21
46 51 42 10 27
47 50 15 10 19
48 48 21 10 20
49 12 38 10 5
50 37 52 10 7
51 49 49 10 30
52 52 64 10 16
53 20 26 10 9
54 40 30 10 21
55 21 47 10 15
56 17 63 10 19
57 31 62 10 23
58 52 33 10 11
59 51 21 10 5
60 42 41 10 19
61 31 32 10 29
62 5 25 10 23
63 12 42 10 21
64 36 16 10 10
65 52 41 10 15
66 27 23 10 3
67 17 33 10 41
68 13 13 10 9
69 57 58 10 28
70 62 42 10 8
71 42 57 10 8
72 16 57 10 16
73 8 52 10 10
74 7 38 10 28
75 27 68 10 7
76 30 48 10 15
77 43 67 10 14
78 58 48 10 6
79 58 27 10 19
80 37 69 10 11
81 38 46 10 12
82 46 10 10 23
83 61 33 10 26
84 62 63 10 17
85 63 69 10 6
86 32 22 10 9
87 45 35 10 15
88 59 15 10 14
89 5 6 10 7
90 10 17 10 27
91 21 10 10 13
92 5 64 10 11
93 30 15 10 16
94 39 10 10 10
95 32 39 10 5
96 25 32 10 25
97 25 55 10 17
98 48 28 10 18
99 56 37 10 10
100 41 49 10 10
101 35 17 10 7
102 55 45 10 13
103 55 20 10 19
104 15 30 10 26
105 25 30 10 3
106 20 50 10 5
107 10 43 10 9
108 55 60 10 16
109 30 60 10 16
110 20 65 10 12
111 50 35 10 19
112 30 25 10 23
113 15 10 10 20
114 30 5 10 8
115 10 20 10 19
116 5 30 10 2
117 20 40 10 12
118 15 60 10 17
119 45 65 10 9
120 45 20 10 11
121 45 10 10 18
122 55 5 10 29
123 65 35 10 3
124 65 20 10 6
125 45 30 10 17
126 35 40 10 16
127 41 37 10 16
128 64 42 10 9
129 40 60 10 21
130 31 52 10 27
131 35 69 10 23
132 53 52 10 11
133 65 55 10 14
134 63 65 10 8
135 2 60 10 5
136 20 20 10 8
137 5 5 10 16
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 10 - 2
138 60 12 10 31
139 40 25 10 9
140 42 7 10 5
141 24 12 10 5
142 23 3 10 7
143 11 14 10 18
144 6 38 10 16
145 2 48 10 1
146 8 56 10 27
147 13 52 10 36
148 6 68 10 30
149 47 47 10 13
150 49 58 10 10
151 27 43 10 9
152 37 31 10 14
153 57 29 10 18
154 63 23 10 2
155 53 12 10 6
156 32 12 10 7
157 36 26 10 18
158 21 24 10 28
159 17 34 10 3
160 12 24 10 13
161 24 58 10 19
162 27 69 10 10
163 15 77 10 9
164 62 77 10 20
165 49 73 10 25
166 67 5 10 25
167 56 39 10 36
168 37 47 10 6
169 37 56 10 5
170 57 68 10 15
171 47 16 10 25
172 44 17 10 9
173 46 13 10 8
174 49 11 10 18
175 49 42 10 13
176 53 43 10 14
177 61 52 10 3
178 57 48 10 23
179 56 37 10 6
180 55 54 10 26
181 15 47 10 16
182 14 37 10 11
183 11 31 10 7
184 16 22 10 41
185 4 18 10 35
186 28 18 10 26
187 26 52 10 9
188 26 35 10 15
189 31 67 10 3
190 15 19 10 1
191 22 22 10 2
192 18 24 10 22
193 26 27 10 27
194 25 24 10 20
195 22 27 10 11
196 25 21 10 12
197 19 21 10 10
198 20 26 10 9
199 18 18 10 17
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 11 - 1
Lampiran 11: Data P11
Depot : 1
Vehicle : 8
Customer : 120
Total jarak max : 0
Kapasitas max : 200
i x y d q
0 10 45 0 0
1 25 1 0 25
2 25 3 0 7
3 31 5 0 13
4 32 5 0 6
5 31 7 0 14
6 32 9 0 5
7 34 9 0 11
8 46 9 0 19
9 35 7 0 5
10 34 6 0 15
11 35 5 0 15
12 47 6 0 17
13 40 5 0 13
14 39 3 0 12
15 36 3 0 18
16 73 6 0 13
17 73 8 0 18
18 24 36 0 12
19 76 6 0 17
20 76 10 0 4
21 76 13 0 7
22 78 3 0 12
23 78 9 0 13
24 79 3 0 8
25 79 5 0 16
26 79 11 0 15
27 82 3 0 6
28 82 7 0 5
29 90 15 0 9
30 84 3 0 11
31 84 5 0 10
32 84 9 0 3
33 85 1 0 7
34 87 5 0 2
35 85 8 0 4
36 87 7 0 4
37 86 41 0 18
38 86 44 0 14
39 86 46 0 12
40 85 55 0 17
41 89 43 0 20
42 89 46 0 14
43 89 52 0 16
44 92 42 0 10
45 92 52 0 9
46 94 42 0 11
47 94 44 0 7
48 94 48 0 13
49 96 42 0 5
50 99 46 0 4
51 99 50 0 21
52 83 80 0 13
53 83 83 0 11
54 85 81 0 12
55 85 85 0 14
56 85 89 0 10
57 87 80 0 8
58 87 86 0 16
59 90 77 0 19
60 90 88 0 5
61 93 82 0 17
62 93 84 0 7
63 93 89 0 16
64 94 86 0 14
65 95 80 0 17
66 99 89 0 13
67 37 83 0 17
68 50 80 0 13
69 35 85 0 14
70 35 87 0 16
71 44 86 0 7
72 46 89 0 13
73 46 83 0 9
74 46 87 0 11
75 46 89 0 35
76 48 83 0 5
77 50 85 0 28
78 50 88 0 7
79 54 86 0 3
80 54 90 0 10
81 10 35 0 7
82 10 40 0 12
83 18 30 0 11
84 17 35 0 10
85 16 38 0 8
86 14 40 0 11
87 15 42 0 21
88 11 42 0 4
89 18 40 0 15
90 21 39 0 16
91 20 40 0 4
92 18 41 0 16
93 20 44 0 7
94 22 44 0 10
95 16 45 0 9
96 20 45 0 11
97 25 45 0 17
98 30 55 0 12
99 20 50 0 11
100 22 51 0 7
101 18 49 0 9
102 16 48 0 11
103 20 55 0 12
104 18 53 0 7
105 14 50 0 8
106 15 51 0 6
107 16 54 0 5
108 28 33 0 12
109 33 38 0 13
110 30 50 0 7
111 13 40 0 7
112 15 36 0 8
113 18 31 0 11
114 25 37 0 13
115 30 46 0 11
116 25 52 0 10
117 16 33 0 7
118 25 35 0 4
119 5 40 0 20
120 5 50 0 13
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 12 - 1
Lampiran 12: Data P12
Depot : 1
Vehicle : 12
Customer : 100
Total jarak max : 0
Kapasitas max : 200
i x y d q
0 40 50 0 0
1 45 68 0 10
2 45 70 0 30
3 42 66 0 10
4 42 68 0 10
5 42 65 0 10
6 40 69 0 20
7 40 66 0 20
8 38 68 0 20
9 38 70 0 10
10 35 66 0 10
11 35 69 0 10
12 25 85 0 20
13 22 75 0 30
14 22 85 0 10
15 20 80 0 40
16 20 85 0 40
17 18 75 0 20
18 15 75 0 20
19 15 80 0 10
20 30 50 0 10
21 30 52 0 20
22 28 52 0 20
23 28 55 0 10
24 25 50 0 10
25 25 52 0 40
26 25 55 0 10
27 23 52 0 10
28 23 55 0 20
29 20 50 0 10
30 20 55 0 10
31 10 35 0 20
32 10 40 0 30
33 8 40 0 40
34 8 45 0 20
35 5 35 0 10
36 5 45 0 10
37 2 40 0 20
38 0 40 0 30
39 0 45 0 20
40 35 30 0 10
41 35 32 0 10
42 33 32 0 20
43 33 35 0 10
44 32 30 0 10
45 30 30 0 10
46 30 32 0 30
47 30 35 0 10
48 28 30 0 10
49 28 35 0 10
50 26 32 0 10
51 25 30 0 10
52 25 35 0 10
53 44 5 0 20
54 42 10 0 40
55 42 15 0 10
56 40 5 0 30
57 40 15 0 40
58 38 5 0 30
59 38 15 0 10
60 35 5 0 20
61 50 30 0 10
62 50 35 0 20
63 50 40 0 50
64 48 30 0 10
65 48 40 0 10
66 47 35 0 10
67 47 40 0 10
68 45 30 0 10
69 45 35 0 10
70 95 30 0 30
71 95 35 0 20
72 53 30 0 10
73 92 30 0 10
74 53 35 0 50
75 45 65 0 20
76 90 35 0 10
77 88 30 0 10
78 88 35 0 20
79 87 30 0 10
80 85 25 0 10
81 85 35 0 30
82 75 55 0 20
83 72 55 0 10
84 70 58 0 20
85 68 60 0 30
86 66 55 0 10
87 65 55 0 20
88 65 60 0 30
89 63 58 0 10
90 60 55 0 10
91 60 60 0 10
92 67 85 0 20
93 65 85 0 40
94 65 82 0 10
95 62 80 0 30
96 60 80 0 10
97 60 85 0 30
98 58 75 0 20
99 55 80 0 10
100 55 85 0 20
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 13 - 1
Lampiran 13: Data P13
Depot : 1
Vehicle : 18
Customer : 120
Total jarak max : 720
Kapasitas max : 200
i x y d q
0 10 45 0 0
1 25 1 50 25
2 25 3 50 7
3 31 5 50 13
4 32 5 50 6
5 31 7 50 14
6 32 9 50 5
7 34 9 50 11
8 46 9 50 19
9 35 7 50 5
10 34 6 50 15
11 35 5 50 15
12 47 6 50 17
13 40 5 50 13
14 39 3 50 12
15 36 3 50 18
16 73 6 50 13
17 73 8 50 18
18 24 36 50 12
19 76 6 50 17
20 76 10 50 4
21 76 13 50 7
22 78 3 50 12
23 78 9 50 13
24 79 3 50 8
25 79 5 50 16
26 79 11 50 15
27 82 3 50 6
28 82 7 50 5
29 90 15 50 9
30 84 3 50 11
31 84 5 50 10
32 84 9 50 3
33 85 1 50 7
34 87 5 50 2
35 85 8 50 4
36 87 7 50 4
37 86 41 50 18
38 86 44 50 14
39 86 46 50 12
40 85 55 50 17
41 89 43 50 20
42 89 46 50 14
43 89 52 50 16
44 92 42 50 10
45 92 52 50 9
46 94 42 50 11
47 94 44 50 7
48 94 48 50 13
49 96 42 50 5
50 99 46 50 4
51 99 50 50 21
52 83 80 50 13
53 83 83 50 11
54 85 81 50 12
55 85 85 50 14
56 85 89 50 10
57 87 80 50 8
58 87 86 50 16
59 90 77 50 19
60 90 88 50 5
61 93 82 50 17
62 93 84 50 7
63 93 89 50 16
64 94 86 50 14
65 95 80 50 17
66 99 89 50 13
67 37 83 50 17
68 50 80 50 13
69 35 85 50 14
70 35 87 50 16
71 44 86 50 7
72 46 89 50 13
73 46 83 50 9
74 46 87 50 11
75 46 89 50 35
76 48 83 50 5
77 50 85 50 28
78 50 88 50 7
79 54 86 50 3
80 54 90 50 10
81 10 35 50 7
82 10 40 50 12
83 18 30 50 11
84 17 35 50 10
85 16 38 50 8
86 14 40 50 11
87 15 42 50 21
88 11 42 50 4
89 18 40 50 15
90 21 39 50 16
91 20 40 50 4
92 18 41 50 16
93 20 44 50 7
94 22 44 50 10
95 16 45 50 9
96 20 45 50 11
97 25 45 50 17
98 30 55 50 12
99 20 50 50 11
100 22 51 50 7
101 18 49 50 9
102 16 48 50 11
103 20 55 50 12
104 18 53 50 7
105 14 50 50 8
106 15 51 50 6
107 16 54 50 5
108 28 33 50 12
109 33 38 50 13
110 30 50 50 7
111 13 40 50 7
112 15 36 50 8
113 18 31 50 11
114 25 37 50 13
115 30 46 50 11
116 25 52 50 10
117 16 33 50 7
118 25 35 50 4
119 5 40 50 20
120 5 50 50 13
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 14 - 1
Lampiran 14: Data P14
Depot : 1
Vehicle : 15
Customer : 100
Total jarak max : 1040
Kapasitas max : 200
i x y d q
0 40 50 0 0
1 45 68 90 10
2 45 70 90 30
3 42 66 90 10
4 42 68 90 10
5 42 65 90 10
6 40 69 90 20
7 40 66 90 20
8 38 68 90 20
9 38 70 90 10
10 35 66 90 10
11 35 69 90 10
12 25 85 90 20
13 22 75 90 30
14 22 85 90 10
15 20 80 90 40
16 20 85 90 40
17 18 75 90 20
18 15 75 90 20
19 15 80 90 10
20 30 50 90 10
21 30 52 90 20
22 28 52 90 20
23 28 55 90 10
24 25 50 90 10
25 25 52 90 40
26 25 55 90 10
27 23 52 90 10
28 23 55 90 20
29 20 50 90 10
30 20 55 90 10
31 10 35 90 20
32 10 40 90 30
33 8 40 90 40
34 8 45 90 20
35 5 35 90 10
36 5 45 90 10
37 2 40 90 20
38 0 40 90 30
39 0 45 90 20
40 35 30 90 10
41 35 32 90 10
42 33 32 90 20
43 33 35 90 10
44 32 30 90 10
45 30 30 90 10
46 30 32 90 30
47 30 35 90 10
48 28 30 90 10
49 28 35 90 10
50 26 32 90 10
51 25 30 90 10
52 25 35 90 10
53 44 5 90 20
54 42 10 90 40
55 42 15 90 10
56 40 5 90 30
57 40 15 90 40
58 38 5 90 30
59 38 15 90 10
60 35 5 90 20
61 50 30 90 10
62 50 35 90 20
63 50 40 90 50
64 48 30 90 10
65 48 40 90 10
66 47 35 90 10
67 47 40 90 10
68 45 30 90 10
69 45 35 90 10
70 95 30 90 30
71 95 35 90 20
72 53 30 90 10
73 92 30 90 10
74 53 35 90 50
75 45 65 90 20
76 90 35 90 10
77 88 30 90 10
78 88 35 90 20
79 87 30 90 10
80 85 25 90 10
81 85 35 90 30
82 75 55 90 20
83 72 55 90 10
84 70 58 90 20
85 68 60 90 30
86 66 55 90 10
87 65 55 90 20
88 65 60 90 30
89 63 58 90 10
90 60 55 90 10
91 60 60 90 10
92 67 85 90 20
93 65 85 90 40
94 65 82 90 10
95 62 80 90 30
96 60 80 90 10
97 60 85 90 30
98 58 75 90 20
99 55 80 90 10
100 55 85 90 20
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 1
Lampiran 15 : Source Code Program File: input.java package vrpiaco;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
*
* @author run
*/
public class input extends javax.swing.JFrame {
private static int nV;
static public int nC;
private static double E;
private static double W;
private static double alpha;
private static double betha;
private static double rho;
private static double thao;
private static double T;
private static double Q;
private static double[][] mJarak;
private static double[] demand;
private double[][] mPheromone;
//private double serviceDuration;
private Object[][] absTabJarak;
private Object[][] absTabDemand;
static public LinkedList<List> solusiVRP = new
LinkedList<List>();
static public double[] distanceAkhir, demandAkhir;
static public double ExDur;
static public double serviceDuration;
boolean cekInput;
private double[][] coordinatNode;
/** Creates new form input */
public input() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is
* always regenerated by the Form Editor.
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 2
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jTextField9 = new javax.swing.JTextField();
jTextField10 = new javax.swing.JTextField();
jTextField11 = new javax.swing.JTextField();
jTextField12 = new javax.swing.JTextField();
jTextField13 = new javax.swing.JTextField();
jTextField14 = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jLabel11 = new javax.swing.JLabel();
jTextField15 = new javax.swing.JTextField();
jButton2 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jScrollPane2 = new javax.swing.JScrollPane();
jLabel12 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jButton3 = new javax.swing.JButton();
jCheckBox1 = new javax.swing.JCheckBox();
jTextField4 = new javax.swing.JTextField();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CL
OSE);
setTitle("<< VRP-IACO >>");
setFont(new java.awt.Font("Meiryo UI", 1, 10));
setForeground(java.awt.Color.blue);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowIconified(java.awt.event.WindowEvent
evt) {
formWindowIconified(evt);
}
});
jLabel1.setFont(new java.awt.Font("Tahoma", 3, 16));
jLabel1.setText("Algoritma IACO untuk Menyelesaikan
Vehicle Routing Problem (VRP) ");
jLabel2.setText("Kendaraan ");
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 3
jTextField1.setText("5");
jTextField1.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField1ActionPerformed(evt);
}
});
jLabel3.setText("Customer");
jTextField2.setEnabled(false);
jTextField2.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField2ActionPerformed(evt);
}
});
jTextField2.addKeyListener(new java.awt.event.KeyAdapter()
{
public void keyPressed(java.awt.event.KeyEvent evt) {
jTextField2KeyPressed(evt);
}
});
jLabel4.setText("Jarak Max. Kendaraan (E)");
jLabel5.setText("Kapasitas Max. Kendaraan (W)");
jLabel6.setText("Alpha (α)");
jLabel7.setText("Beta (β)");
jLabel8.setText("Rho (ρ)");
jLabel9.setText("Pheromon Awal");
jTextField9.setText("0");
jTextField9.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField9ActionPerformed(evt);
}
});
jTextField10.setText("160");
jTextField10.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField10ActionPerformed(evt);
}
});
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 4
jTextField11.setText("2");
jTextField11.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField11ActionPerformed(evt);
}
});
jTextField12.setText("5");
jTextField12.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField12ActionPerformed(evt);
}
});
jTextField13.setText("0.8");
jTextField13.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField13ActionPerformed(evt);
}
});
jTextField14.setText("0.1");
jTextField14.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField14ActionPerformed(evt);
}
});
jLabel10.setFont(new java.awt.Font("Meiryo UI", 0, 11));
jButton1.setFont(new java.awt.Font("Tahoma", 1, 12));
jButton1.setText("START (MULAI)");
jButton1.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jButton1ActionPerformed(evt);
}
});
jLabel11.setText("Total Iterasi (T)");
jTextField15.setText("1000");
jTextField15.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 5
jTextField15ActionPerformed(evt);
}
});
jButton2.setText("Browse File Jarak Non-Koordinat...");
jButton2.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jButton2ActionPerformed(evt);
}
});
jLabel12.setText("Konstanta Q");
jTextField3.setText("1000");
jButton3.setText("Browse File Jarak Koordinat...");
jButton3.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jButton3ActionPerformed(evt);
}
});
jCheckBox1.setText("Service Duration");
jCheckBox1.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jCheckBox1ActionPerformed(evt);
}
});
jTextField4.setEnabled(false);
jTextField4.addActionListener(new
java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent
evt) {
jTextField4ActionPerformed(evt);
}
});
jLabel13.setText("DATA JARAK PELANGGAN");
jLabel14.setText("DATA DEMAND / PERMINTAAN PELANGGAN");
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 6
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(jLabel2)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6)
.addComponent(jLabel7)
.addComponent(jLabel8)
.addComponent(jLabel9)
.addComponent(jLabel12)
.addComponent(jLabel11))
.addGap(48, 48, 48)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING, false)
.addComponent(jTextField3)
.addComponent(jTextField15)
.addComponent(jTextField14)
.addComponent(jTextField13)
.addComponent(jTextField12)
.addComponent(jTextField11)
.addComponent(jTextField10)
.addComponent(jTextField9)
.addComponent(jTextField2)
.addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE,
58, Short.MAX_VALUE)))
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 7
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 187,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jCheckBox1,
javax.swing.GroupLayout.DEFAULT_SIZE, 219, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addComponent(jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE, 57,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.DEFAULT_SIZE, 506, Short.MAX_VALUE)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, 506, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, 130, Short.MAX_VALUE)
.addComponent(jButton3))
.addGroup(layout.createSequentialGroup()
.addGap(185, 185, 185)
.addComponent(jLabel13)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addComponent(jLabel14)
.addGap(148, 148, 148)))
.addComponent(jLabel10))
.addGroup(layout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 710,
javax.swing.GroupLayout.PREFERRED_SIZE)))
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 8
.addContainerGap(42, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 29,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(36, 36, 36)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton2)
.addComponent(jButton3))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(12, 12, 12)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE,
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 9
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField10,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel6)
.addComponent(jTextField11,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel7)
.addComponent(jTextField12,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jLabel8)
.addComponent(jTextField13,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 10
.addComponent(jLabel9)
.addComponent(jTextField14,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jTextField15,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel11))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel12)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addGap(31, 31, 31)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 244,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELA
TED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align
ment.BASELINE)
.addComponent(jCheckBox1)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE,
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 11
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1,
javax.swing.GroupLayout.PREFERRED_SIZE, 33,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(16, 16, 16)
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATE
D)
.addComponent(jScrollPane2,
javax.swing.GroupLayout.PREFERRED_SIZE, 79,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addComponent(jLabel10, 0, 0,
Short.MAX_VALUE))
.addGap(46, 46, 46))
.addGroup(layout.createSequentialGroup()
.addGap(110, 110, 110)
.addComponent(jLabel13)))
.addContainerGap())
);
pack();
}// </editor-fold>
private void
jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jTextField9ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jTextField10ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jTextField11ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jTextField12ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 12
private void
jTextField13ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jTextField14ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void formWindowIconified(java.awt.event.WindowEvent
evt) {
// TODO add your handling code here:
}
private void
jTextField15ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
/*try{
inputVar();
inputJarak j=new inputJarak();
j.setVisible(true);
//}catch(Exception e){
// System.out.println(e);
//}
*
*/
try{
JFileChooser fc=new JFileChooser();
int res=fc.showOpenDialog(this);
if(res==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
String dir=file.getPath();
setTableFromExcel(dir);
}
}
catch(Exception e){
}
}
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
long waktuMulai = System.currentTimeMillis();
inputVar();
if(cekInput){
for(int i=0;i<T;i++){
System.out.println("\n\n");
System.out.println("\n========================================");
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 13
System.out.println("======== ITERASI KE- "+i+"
=============");
System.out.println("========================================\n");
//tampilArray(mPheromone); //menampilkan update
pheromone
LinkedList<List> x = ruteConstruction();
// cek apakah rute const tidak visible
if(x == null){
JOptionPane.showMessageDialog(this,"Coba perbesar
jumlah inputan kendaraan.", "Running Error !",
JOptionPane.ERROR_MESSAGE);
return;
}
if(i==0){
solusiVRP.clear();
copyList(x, solusiVRP);
}
System.out.println("\n============== RUTE CONSTRUCTION
==========");
tampilList(x);
System.out.println("\n=====>>> PROSES MUTASI
<<<=====");
double pm = (double) 1/nC + Math.pow((double) 1/nV-
(double) 1/nC, (double)(1 - (double) i/T)) ;
LinkedList<List> y = mutation(x, pm);
double[] before = getSumDistance(x), after =
getSumDistance(y);
LinkedList<List> bestOnIt = new LinkedList<List>();
if((after != null) && (before[x.size()] >
after[y.size()])){
//bestOnIt.clear();
//copyList(x,bestOnIt);
bestOnIt.clear();
copyList(y,bestOnIt);
}
else{
//bestOnIt.clear();
//copyList(y,bestOnIt);
bestOnIt.clear();
copyList(x,bestOnIt);
}
double[] sol = getSumDistance(solusiVRP);
double[] solBestOnIt = getSumDistance(bestOnIt);
if(sol[solusiVRP.size()] >
solBestOnIt[bestOnIt.size()]){
solusiVRP.clear();
copyList(bestOnIt, solusiVRP);
}
//System.out.println("X = "+x);
//System.out.println("Y = "+y);
//System.out.println("Before = "+before[x.size()]);
//System.out.println("After = "+after[y.size()]);
//System.out.println("Solusi global =
"+sol[solusiVRP.size()]);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 14
//System.out.println("solBestOnIt =
"+solBestOnIt[bestOnIt.size()]);
System.out.println("\n=========== Solusi Terbaik
==========");
tampilList(solusiVRP);
if(i!=T-1){
updatePheromone();
}
System.out.println("====================================\n");
}
}
//untuk menampilkan durasi eksekusi
distanceAkhir = getSumDistance(solusiVRP);
demandAkhir = getAllDemand(solusiVRP);
long waktuSelesai = System.currentTimeMillis();
ExDur =(double) (waktuSelesai - waktuMulai)/1000;
ExDur = Math.ceil(ExDur);
System.out.println("waktu durasi = "/*+ waktuSelesai+" -
"+waktuMulai+" = "*/+Math.ceil((double)(waktuSelesai -
waktuMulai)/1000)+" detik");
new resultForm().setVisible(true);
}
private void jTextField2KeyPressed(java.awt.event.KeyEvent
evt) {
// TODO add your handling code here:
}
private void
jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
JFileChooser fc=new JFileChooser();
int res=fc.showOpenDialog(this);
if(res==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
String dir=file.getPath();
setTabelFromExcel1(dir);
}
}
catch(Exception e){
}
}
private void
jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (jCheckBox1.isSelected()==true){
jTextField4.setEnabled(true);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 15
}else {
jTextField4.setEnabled(false);
jTextField4.setText("");
}
}
private void
jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new input().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField10;
private javax.swing.JTextField jTextField11;
private javax.swing.JTextField jTextField12;
private javax.swing.JTextField jTextField13;
private javax.swing.JTextField jTextField14;
private javax.swing.JTextField jTextField15;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField9;
// End of variables declaration
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 16
private void inputVar(){
cekInput = true;
try{
nV=Integer.parseInt(jTextField1.getText());
nC=Integer.parseInt(jTextField2.getText());
E=Double.parseDouble(jTextField9.getText());
W=Double.parseDouble(jTextField10.getText());
alpha=Double.parseDouble(jTextField11.getText());
betha=Double.parseDouble(jTextField12.getText());
rho=Double.parseDouble(jTextField13.getText());
thao=Double.parseDouble(jTextField14.getText());
T=Double.parseDouble(jTextField15.getText());
Q=Double.parseDouble(jTextField3.getText());
if("".equals(jTextField4.getText())){
serviceDuration = 0; // jika gak dicentang sama aja
dengan diisi 0
}
else{
serviceDuration =
Double.parseDouble(jTextField4.getText());
}
}catch(Exception e){
JOptionPane.showMessageDialog(this, "Inputan ada yang
error \n"+e, "Warning", JOptionPane.ERROR_MESSAGE);
cekInput = false;
return;
}
//cek kesimetrisan matrix alur dan jarak
String[] cekSimetri = new String[2];
cekSimetri = isMatrixSimetris(mJarak);
if( "false".equals(cekSimetri[0]) ){
cekInput = false;
JOptionPane.showMessageDialog(this, cekSimetri[1],
"Warning", JOptionPane.WARNING_MESSAGE);
return;
}
cekSimetri = cekDemand();
if( "false".equals(cekSimetri[0]) ){
cekInput = false;
JOptionPane.showMessageDialog(this, cekSimetri[1],
"Warning", JOptionPane.WARNING_MESSAGE);
return;
}
// matrix pheromone awal
mPheromone = new double[nC+1][nC+1];
for(int i=0;i<=nC;i++){
for(int j=i+1;j<=nC;j++){
mPheromone[i][j] = thao;
mPheromone[j][i] = thao;
}
}
//tampilArray(mPheromone);
}
private void setTableFromExcel(String Dir) throws IOException,
BiffException{
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 17
Workbook wb = Workbook.getWorkbook(new File(Dir)); //file
yang akan dibuka
Sheet sit1 = wb.getSheet(0); //mendapatkan sheet tabel
jarak
Sheet sit2 = wb.getSheet(1); //mendapatkan sheet tabel
demand
int nCity=sit1.getRows(); // baris terakhir yang terisi
jTextField2.setText(""+(nCity-1));
absTabJarak=new Object[nCity][nCity+1];
absTabDemand = new Object[1][nCity];
mJarak = new double[nCity][nCity];
demand = new double[nCity];
String[] nmKlm= new String[nCity+1]; // nama kolom jarak
String[] nmKlmDemand = new String[nCity];
nmKlm[0]="Ci | Cj";
for(int i=0;i<nCity;i++){ // memberikan nama kolom dan
baris
nmKlm[i+1] = "C"+i;
nmKlmDemand[i] = "C"+i;
absTabJarak[i][0] = "C"+i;
}
for (int i=0;i<nCity;i++){
for(int j=0;j<nCity;j++){
absTabJarak[i][j+1] =
Double.parseDouble(sit1.getCell(j,i).getContents());
mJarak[i][j] =
Double.parseDouble(sit1.getCell(j,i).getContents());
}
absTabDemand[0][i] =
Double.parseDouble(sit2.getCell(i,0).getContents());
demand[i] =
Double.parseDouble(sit2.getCell(i,0).getContents());
}
JTable tabJarak = new JTable(absTabJarak,nmKlm);
tabJarak.getColumnModel().getColumn(0).setPreferredWidth(50);
tabJarak.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabJarak.setEnabled(false);
jScrollPane1.setViewportView(tabJarak);
JTable tabDemand = new JTable(absTabDemand,nmKlmDemand);
tabDemand.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabDemand.setEnabled(false);
jScrollPane2.setViewportView(tabDemand);
// set coordinatNode
coordinatNode = null;
}
private void setTabelFromExcel1(String Dir) throws
IOException, BiffException{
Workbook wb = Workbook.getWorkbook(new File(Dir)); //file
yang akan dibuka
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 18
Sheet sit1 = wb.getSheet(0); //mendapatkan sheet tabel
jarak
int nCity=sit1.getRows(); // baris terakhir yang terisi
jTextField2.setText(""+(nCity-1));
absTabJarak=new Object[nCity][nCity+1];
absTabDemand = new Object[1][nCity];
mJarak = new double[nCity][nCity];
demand = new double[nCity];
String[] nmKlm= new String[nCity+1]; // nama kolom jarak
String[] nmKlmDemand = new String[nCity];
nmKlm[0]="Ci | Cj";
for(int i=0;i<nCity;i++){ // memberikan nama kolom dan
baris
nmKlm[i+1] = "C"+i;
nmKlmDemand[i] = "C"+i;
absTabJarak[i][0] = "C"+i;
}
coordinatNode = new double[nCity][2]; // kolom 0 adalah x,
dan kolom 1 adalah y
// take koordinat x , y dan take demand serta set
absTabDemand
if("".equals(jTextField4.getText())){
serviceDuration = 0; // -1 idiom NULL
}
else{
serviceDuration =
Double.parseDouble(jTextField4.getText());
}
for (int i=0;i<nCity;i++){
coordinatNode[i][0] =
Double.parseDouble(sit1.getCell(1,i).getContents());
coordinatNode[i][1] =
Double.parseDouble(sit1.getCell(2,i).getContents());
demand[i] =
Double.parseDouble(sit1.getCell(4,i).getContents());
absTabDemand[0][i] = demand[i];
}
// set mjarak dan absTabJarak
for (int i=0;i<nCity;i++){
for(int j=i;j<nCity;j++){
mJarak[i][j] =
Math.sqrt(Math.pow(coordinatNode[i][0]-coordinatNode[j][0], 2) +
Math.pow(coordinatNode[i][1]-coordinatNode[j][1], 2));
mJarak[j][i] = mJarak[i][j];
absTabJarak[i][j+1] = mJarak[i][j];
absTabJarak[j][i+1] = mJarak[j][i];
}
}
JTable tabJarak = new JTable(absTabJarak,nmKlm);
tabJarak.getColumnModel().getColumn(0).setPreferredWidth(50);
tabJarak.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabJarak.setEnabled(false);
jScrollPane1.setViewportView(tabJarak);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 19
JTable tabDemand = new JTable(absTabDemand,nmKlmDemand);
tabDemand.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabDemand.setEnabled(false);
jScrollPane2.setViewportView(tabDemand);
}
private LinkedList<List> ruteConstruction(){
LinkedList<List> solusi;
LinkedList<Integer> availableCity ;
int cek=0; // membatasi banyaknya ruteconts
do{
solusi = new LinkedList<List>(); // solusi merupakan list
yang isinya linkedlist ant (be double link list)
LinkedList<Integer> ant;
// membuat variable kota2 yang masih tersedia (belum
terpilih)
availableCity = new LinkedList<Integer>();
for(int i=0;i<nC;i++){
availableCity.add(i+1);
}
//System.out.print("Kota yang tersedia awal : ");
//System.out.println(availableCity + "\n");
//pembentukan solusi yang diisi setiap ant
while( !availableCity.isEmpty() && solusi.size() < nV){
int kotaAwal = 0;
int kotaTujuan;
E=Double.parseDouble(jTextField9.getText()); //
refresh nilai E untuk setiap semut (karena sudah terpakai oleh
semut sebelumnya)
W=Double.parseDouble(jTextField10.getText()); //
refresh nilai W untuk setiap semut (karena sudah terpakai oleh
semut sebelumnya)
ant = new LinkedList<Integer>();
do{ // mendapatkan rute setiap semut
kotaTujuan = seekCity(availableCity, kotaAwal);
if(kotaTujuan != 0){
ant.add(kotaTujuan);
availableCity.remove(availableCity.indexOf(kotaTujuan));
kotaAwal = kotaTujuan;
}
}while(kotaTujuan != 0);
// System.out.print("Kota yang tersedia : ");
// System.out.println(availableCity);
// System.out.print("Kota yang terpilih : ");
// System.out.println(ant +"\n");
solusi.add(ant);
}
E=Double.parseDouble(jTextField9.getText()); // refresh
nilai E (karena sudah terpakai pada proses pencarian rute)
W=Double.parseDouble(jTextField10.getText()); // refresh
nilai W (karena sudah terpakai pada proses pencarian rute)
if(cek++ > nC){ // cek apakah lebih besar jumlah cust
return solusi = null;
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 20
}
}while(!availableCity.isEmpty());
return solusi;
}
public static int getNVehicle(){
return nV;
}
public static int getNCust(){
return nC;
}
public double getE(){
return E;
}
public double getW(){
return W;
}
public double getAlpha(){
return alpha;
}
public double getBetha(){
return betha;
}
public double getRho(){
return rho;
}
public double getThao(){
return thao;
}
public double getT(){
return T;
}
public double getQ(){
return Q;
}
public double getserviceDuration(){
return serviceDuration;
}
// private method supported
private double sigmaPIJK(int awal, LinkedList<Integer> kota){
// kota disini adalah kota yang belum ada pada tabuList
double sigma = 0;
int nKota = kota.size();
for(int i=0;i<nKota;i++){
sigma += Math.pow(mPheromone[awal][kota.get(i)],
alpha) * Math.pow(1/(mJarak[awal][kota.get(i)]+serviceDuration),
betha);
}
return sigma;
}
private int seekCity(LinkedList<Integer> avCity, int
kotaAwal){
int kotaTujuan;
int nKota = avCity.size();
LinkedList<Double> listPIJK = new LinkedList<Double>();
double pijk;
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 21
for(int i=0;i<nKota;i++){ // menghitung pijk pada
availableCity
if(kotaAwal!=avCity.get(i)){
pijk = Math.pow(mPheromone[kotaAwal][avCity.get(i)],
alpha) *
Math.pow(1/(mJarak[kotaAwal][avCity.get(i)]+serviceDuration),
betha)/(sigmaPIJK(kotaAwal, avCity));
listPIJK.add(pijk);
//System.out.println("ListPIJK "+kotaAwal+"
"+avCity.get(i)+" = "+listPIJK);
}
}
kotaTujuan = 0;
if(E > 0){
for(int i=0;i<nKota;i++){
//kotaTujuan = avCity.get(indexMax(listPIJK)); //
mendapatkan kota tujuan dengan pijk rollet well
kotaTujuan = avCity.get(indexRW(listPIJK));
if((mJarak[kotaAwal][kotaTujuan]+serviceDuration) < E
&& demand[kotaTujuan] <= W && (E-
(mJarak[kotaAwal][kotaTujuan]+serviceDuration))>=(mJarak[kotaTujua
n][0])){
E -= mJarak[kotaAwal][kotaTujuan]+serviceDuration;
W -= demand[kotaTujuan];
/*
if (demand[kotaTujuan] > W &&
(mJarak[kotaAwal][kotaTujuan]+serviceDuration) > E &&
E<=mJarak[kotaAwal][0]+serviceDuration){
//kotaTujuan = 0;
E=E-mJarak[kotaAwal][0]+serviceDuration;
listPIJK.set(i, -1.0);
break;
}*/
break;
}else {
kotaTujuan = 0;
E=E-mJarak[kotaAwal][0];
//System.out.println("Jarak "+kotaAwal+" ke
"+kotaTujuan+" = "+mJarak[kotaAwal][0]);
listPIJK.set(i, -1.0);
}
}
}
else if(E == 0){
for(int i=0;i<nKota;i++){
//kotaTujuan = avCity.get(indexMax(listPIJK)); //
mendapatkan kota tujuan dengan pijk max
kotaTujuan = avCity.get(indexRW(listPIJK));
if( demand[kotaTujuan] <= W || E-
mJarak[kotaAwal][kotaTujuan]+serviceDuration >
mJarak[kotaTujuan][0]+serviceDuration){
W -= demand[kotaTujuan];
break;
}else{
kotaTujuan = 0;
listPIJK.set(i, -1.0);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 22
}
}
}
////////////////
//System.out.println("kota tujuan = "+kotaTujuan);
//System.out.println("Jarak kota tujuan =
"+(mJarak[kotaAwal][kotaTujuan]+serviceDuration));
//System.out.println("Total jarak vehicle saat ini = "+E);
//System.out.println("Total demand =
"+demand[kotaTujuan]);
//System.out.println("Kapasitas kendaraan saat ini =
"+W+"\n");
return kotaTujuan;
}
private int indexRolletWell(LinkedList<Double> pijk){
int hasil = 0;
int n = pijk.size();
Random r = new Random();
double[] randomRolletWell = new double[n]; // nilai random
rollet well
double[] randomRolletWellBagi = new double[n];
double sumRandRollWell = 0;
for(int i=0;i<n;i++){
randomRolletWell[i] = r.nextDouble();
sumRandRollWell += randomRolletWell[i];
}
for (int i=0;i<n;i++){
randomRolletWellBagi[i]=randomRolletWell[i]/sumRandRollWell;
//System.out.println("Nilai random index pijk ke-"+i+"
= "+randomRolletWellBagi[i]);
}
double RANDOM = r.nextDouble(); // nilai random tunggal
//System.out.println("Random tunggal = "+RANDOM);
double luasRollet=0;
for(int i=0;i<n;i++){
luasRollet += randomRolletWell[i]/sumRandRollWell;
//System.out.println("Rollet well = "+luasRollet);
if(RANDOM <= luasRollet){
hasil = i;
//System.out.println("Index yg terpilih =
"+hasil+"\n");
break;
}
}
//System.out.println("index rollet = "+hasil);
return hasil;
}
private int indexRW(LinkedList<Double> pijk){
int indexRW = 0;
int nPIJK = pijk.size();
double sumPIJK = pijk.get(0);
Random r = new Random();
double RANDOM = r.nextDouble();
for(int i=0;i<nPIJK;i++){
sumPIJK+=pijk.get(i);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 23
if(RANDOM<=sumPIJK){
indexRW = i;
break;
}
}
return indexRW;
}
private int indexMax(LinkedList<Double> pijk){
int indexMax = 0;
double max = pijk.get(0);
int nPIJK = pijk.size();
for(int i=0;i<nPIJK;i++){
if(pijk.get(i) > max){
max = pijk.get(i);
indexMax = i;
}
}
return indexMax;
}
private double[] getSumDistance(LinkedList<List> list){ //
metode mendapatkan distance pada solusi yang sudah terbentuk
double[] sum;
if(list == null){ // jika list null
return sum = null;
}
// jika tidak null
int n = list.size();
/*
* sum merupakan total jarak dari setiap semut
* ex : n = 3; maka sum.length = 3+1 = 4; sehingga sum[0]
= total jarak semut ke -0, dst.
* untuk sum[4] (yang terakhir) merupakan total seluruhnya
*/
sum = new double[n+1];
for(int i=0;i<n;i++){
LinkedList<Integer> vecList = (LinkedList<Integer>)
list.get(i);
sum[i] = getDistanceAnt(vecList); // jarak yang
ditempuh semut ke -i
sum[n] += sum[i]; // total jarak
}
return sum;
}
private double getDistanceAnt(LinkedList<Integer> list){
double dist = 0;
int m = list.size();
int kotaAwal = 0;
int kotaTujuan;
for(int j=0;j<m;j++){
kotaTujuan = list.get(j);
dist += mJarak[kotaAwal][kotaTujuan]+serviceDuration;
kotaAwal = kotaTujuan;
if(j==m-1){
dist+= mJarak[kotaAwal][0];break;
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 24
//System.out.println("Jarak "+kotaAwal+" ke 0
= "+mJarak[kotaAwal][0]);break;
}
}
//kotaTujuan = 0;
//dist += mJarak[kotaAwal][kotaTujuan];
//if(serviceDuration != -1){
// dist += serviceDuration*m;
//}
return dist;
}
private double[] getAllDemand(LinkedList<List> list){
int n = list.size();
double[] all = new double[n];
for(int i=0;i<n;i++){
LinkedList<Integer> vecList = (LinkedList<Integer>)
list.get(i);
all[i] = getDemandAnt(vecList);
}
return all;
}
private double getDemandAnt(LinkedList<Integer> list){
int hasil = 0;
int m = list.size();
for(int i=0;i<m;i++){
hasil += demand[list.get(i)];
}
return hasil;
}
private double[] getAllJarak(LinkedList<List> list){
int n = list.size();
double[] all = new double[n];
for(int i=0;i<n;i++){
LinkedList<Integer> vecList = (LinkedList<Integer>)
list.get(i);
all[i] = getJarakAnt(vecList);
}
return all;
}
private double getJarakAnt(LinkedList<Integer> list){
int hasil = 0;
int m = list.size();
for(int i=0;i<m;i++){
for(int j=i;j<m;j++){
hasil += mJarak[list.get(i)][list.get(j)];
}
}
return hasil;
}
private LinkedList<List> mutation(LinkedList<List> list,
double pm){
LinkedList<List> mut = new LinkedList<List>();
int n = list.size();
if(n<2){ // jika pada list hanya ada semut < 2, maka akan
menghasilkan null
return mut = null;
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 25
}
copyList(list, mut); // mencopy list mutasi dari parameter
list
double[] dist = getSumDistance(list);
//prosedur mutasi yang baru, pilih rute secara random
Random a = new Random();
int indSemutMut1 = 0, indSemutMut2 = 0;
indSemutMut1 = a.nextInt(n);
indSemutMut2 = a.nextInt(n);
int indSemut1 = 0, indSemut2 = 0;
double max = dist[0];
for(int i=1;i<n;i++){
if(dist[i] > max){
indSemut1 = i; // mndapatkan indek (rute ke)
semut 1 terpilih yang akan dimutasi ataupun local search
max = dist[i];
}
}
dist[indSemut1] = -1; // index semut yang terpilih
dijadikan null
max = dist[0];
for(int i=1;i<n;i++){
if(dist[i] > max){
indSemut2 = i; // mndapatkan indek (rute ke)
semut 2 terpilih yang akan dimutasi ataupun local search
max = dist[i];
}
}
/*
* semut1 adalah semut yang terpiih untuk mutasi ataupun
local search
* semut2 adalah semut yang terpiih untuk mutasi ataupun
local search
*/
LinkedList<Integer> semut1 = (LinkedList<Integer>)
mut.get(indSemutMut1);
LinkedList<Integer> semut2 = (LinkedList<Integer>)
mut.get(indSemutMut2);
LinkedList<Integer> semutLS1 = (LinkedList<Integer>)
mut.get(indSemut1);
LinkedList<Integer> semutLS2 = (LinkedList<Integer>)
mut.get(indSemut2);
/* ================ proses mutasi ====================
* indexSemut1 adalah kota yang terpilih pada semut1 yang
< pm ataupun yang terkecil
* indexSemut2 adalah kota yang terpilih pada semut2 yang
< pm ataupun yang terkecil
*/
int indexSemut1 = getIndexSubList(semut1, pm); // jika < 0
maka idiom dg null (berarti tidak ada yang kurank dari pm)
int indexSemut2 = getIndexSubList(semut2, pm); // jika < 0
maka idiom dg null (berarti tidak ada yang kurank dari pm)
int indexSemutLS1 = getIndexSubList(semutLS1, pm);
int indexSemutLS2 = getIndexSubList(semutLS2, pm);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 26
System.out.println("Pm = "+pm);
if(indexSemut1 < 0 || indexSemut2 < 0){ // jika salah satu
null maka dirandom
System.out.println("\n========= TIDAK TERJADI MUTASI
==========");
System.out.println("=====>>> LOCAL SEARCH <<<=====");
Random r = new Random();
indexSemut1 = r.nextInt(semutLS1.size());
indexSemut2 = r.nextInt(semutLS2.size());
System.out.println("Index semut 1 (rute ke-
"+indSemut1+") adalah customer urutan ke- "+(indexSemut1+1));
System.out.println("Index semut 2 (rute ke-
"+indSemut2+") adalah customer urutan ke- "+(indexSemut2+1));
//tukar nilai yang terpilih pada semut 1 dan 2
int tempSwap = semutLS1.get(indexSemut1);
semutLS1.set(indexSemut1, semutLS2.get(indexSemut2));
semutLS2.set(indexSemut2, tempSwap);
System.out.println("SETELAH DI SWAP");
tampilList(mut);
if(isTrueDemand(mut)==false ||
isTrueJarak(mut)==false){
System.out.println("\bLocal search tidak dilanjut
karena ada Demand atau Kapasitas yang invisible.\n");
return mut = null;
}
}
else{
System.out.println("======= TERJADI MUTASI
=========");
System.out.println("Index semut 1 (rute ke-
"+indSemutMut1+") adalah customer urutan ke- "+(indexSemut1+1));
System.out.println("Index semut 2 (rute ke-
"+indSemutMut2+") adalah customer urutan ke- "+(indexSemut2+1));
//tukar nilai yang terpilih pada semut 1 dan 2
int tempSwap = semut1.get(indexSemut1);
semut1.set(indexSemut1, semut2.get(indexSemut2));
semut2.set(indexSemut2, tempSwap);
System.out.println("SETELAH DI SWAP");
tampilList(mut);
if(isTrueDemand(mut)==false ||
isTrueJarak(mut)==false){ // jika ada yang melebihi demand dan
kapasitas
System.out.println("\bMutasi tidak dilanjutkan
karena ada Demand atau Kapasitas yang invisible.\n");
// kembalikan swap tadi
tempSwap = semut1.get(indexSemut1);
semut1.set(indexSemut1, semut2.get(indexSemut2));
semut2.set(indexSemut2, tempSwap);
Random r = new Random();
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 27
indexSemut1 = r.nextInt(semutLS1.size());
indexSemut2 = r.nextInt(semutLS2.size());
System.out.println("=====>>> LOCAL SEARCH
<<<=====");
System.out.println("Index semut 1 (rute ke-
"+indSemut1+") adalah customer urutan ke- "+(indexSemut1+1));
System.out.println("Index semut 2 (rute ke-
"+indSemut2+") adalah customer urutan ke- "+(indexSemut2+1));
//tukar nilai yang terpilih pada semut 1 dan 2
tempSwap = semutLS1.get(indexSemut1);
semutLS1.set(indexSemut1,
semutLS2.get(indexSemut2));
semutLS2.set(indexSemut2, tempSwap);
System.out.println("SETELAH DI SWAP");
tampilList(mut);
if(isTrueDemand(mut)==false ||
isTrueJarak(mut)==false){
System.out.println("\bLocal search tidak
dilanjut karena ada Demand atau Kapasitas yang invisible.\n");
return mut = null;
}
}
}
/* ============= proses local search ================
*
*/
//System.out.println("index pos 1 = "+indPos1+" dan index
pos 2 = "+indPos2);
LinkedList<Integer> locSrc1 = localSearch(semut1,
indexSemut1);
LinkedList<Integer> locSrc2 = localSearch(semut2,
indexSemut2);
int sizeLocSrc1 = locSrc1.size(), sizeLocSrc2 =
locSrc2.size();
// setting semut1 dan semut 2 dengan hasil local seacrh
for(int i=0;i<sizeLocSrc1;i++){
semut1.set(i, locSrc1.get(i));
}
for(int i=0;i<sizeLocSrc2;i++){
semut2.set(i, locSrc2.get(i));
}
System.out.println("SETELAH PROSES LOCAL SEARCH");
tampilList(mut);
return mut;
}
private int getIndexSubList(LinkedList<Integer> semut, double
pm){ // method khusus untuk mutasi dengan tujuan mendapatkan index
dari nilai yang < pm dan yang paling terkecil nilai randomnya
int hasil = -1; // -1 idiom null
int n = semut.size();
Random r = new Random();
double randomMin = 0;
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 28
for(int i=0;i<n;i++){
double rand = r.nextDouble();
if(rand < pm){
if(hasil < 0 || rand < randomMin){
hasil = i;
randomMin = rand;
}
}
}
// if (hasil == -1){
// System.out.println("Nilai random = "+randomMin+"
pada customer urutan ke- "+(hasil)+". Artinya tidak ada randoman <
Pm.");
// }else{
// System.out.println("Nilai random = "+randomMin+"
pada customer urutan ke- "+(hasil+1));
// }
return hasil;
}
private LinkedList<Integer> localSearch(LinkedList<Integer>
list, int indPos){ // metode local search pada metode
LinkedList<Integer> hasil = new LinkedList<Integer>();
LinkedList<Integer> temp = new LinkedList<Integer>();
temp = copyListAnt(list);
System.out.println("======= PROSES LOCAL SEARCH SEMUT
=========");
double distTemp = getDistanceAnt(temp);
hasil = copyListAnt(temp); double distHasil = distTemp;
int n = temp.size();
System.out.println(temp+" => "+distTemp);
for(int i=1;i<n;i++){ // local search dengan mencari
distance yang terkecil
// swap element ke i-1 dengan i
int swap = temp.get(i-1);
temp.set(i-1, temp.get(i));
temp.set(i, swap);
distTemp = getDistanceAnt(temp);
System.out.println(temp+" => "+distTemp);
if(distTemp < distHasil){
hasil = copyListAnt(temp);
distHasil = distTemp;
}
}
System.out.println("Hasil : "+hasil+" => "+distHasil);
return hasil;
}
private void updatePheromone(){
int n = mPheromone.length;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
mPheromone[i][j] *= rho;
mPheromone[j][i] *= rho;
}
}
int K = solusiVRP.size(); // banyak rute/semut yang
digunakan
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 29
double[] distanceRute = getSumDistance(solusiVRP);
for(int i=0;i<K;i++){
LinkedList<Integer> ant = (LinkedList<Integer>)
solusiVRP.get(i);
int m = ant.size();
int kotaAwal = 0 , kotaTujuan;
for(int j=0;j<m;j++){
kotaTujuan = ant.get(j);
mPheromone[kotaAwal][kotaTujuan] +=
Q/(K*distanceRute[K])*(distanceRute[i]-
(mJarak[kotaAwal][kotaTujuan]+serviceDuration)/(m*distanceRute[i])
);
kotaAwal = kotaTujuan;
}
kotaTujuan = 0;
mPheromone[kotaAwal][kotaTujuan] +=
(Q/(K*distanceRute[K]))*((distanceRute[i]-
(mJarak[kotaAwal][kotaTujuan]+serviceDuration))/(m*distanceRute[i]
));
//System.out.print("Update Pheromone =
"+mPheromone[kotaAwal][kotaTujuan]);
}
}
private LinkedList<Integer> copyListAnt(LinkedList<Integer>
src){
LinkedList<Integer> dest = new LinkedList<Integer>();
int n = src.size();
for(int i=0;i<n;i++){
dest.add(src.get(i));
}
return dest;
}
private void copyList(LinkedList<List> source,
LinkedList<List> destination){
int n = source.size();
for(int i=0;i<n;i++){
LinkedList<Integer> tempSrc = new
LinkedList<Integer>();
tempSrc.addAll(source.get(i));
destination.add(tempSrc);
}
}
private String[] isMatrixSimetris(double[][] matrix){
String[] hasil = new String[2];
hasil[0] = "true"; // merupakan answer this methode
hasil[1] = ""; // status this methode result
int row = matrix.length, col = matrix[0].length;
if( row != col){
hasil[0] = "false";
hasil[1] = "Oppss, sorry matrix anda BUKAN matrix
persegi";
return hasil;
}
if( row == 0){
hasil[0] = "false";
hasil[1] = "Oppss, sorry matrix anda kosong";
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 30
return hasil;
}
for(int i=0;i<row;i++){
if(matrix[i][i] != 0){
hasil[0] = "false";
hasil[1] = "Diagonal tidak nol !!!\nCek pada
elemen("+i+","+i+")";
return hasil;
}
for(int j=i;j<col;j++){
if( matrix[i][j] != matrix[j][i]){
hasil[0] = "false";
hasil[1] = "Matrix anda tidak simetri !!!\nCek
pada elemen("+i+","+j+") dan elemen ("+j+","+i+")";
return hasil;
}
if( matrix[i][j] < 0 || matrix[j][i] <0){
hasil[0] = "false";
hasil[1] = "Elemen kurang dari 0 !!!\nCek pada
elemen("+i+","+j+") atau elemen ("+j+","+i+")";
return hasil;
}
}
}
return hasil;
}
private String[] cekDemand(){
String[] hasil = new String[2];
hasil[0] = "true"; // merupakan answer this methode
hasil[1] = ""; // status this methode result
if(demand[0] != 0){
hasil[0] = "false";
hasil[1] = "Demand ke- 0 harus sama dengan 0!!!";
return hasil;
}
int n = demand.length;
//for(int i=1;i<n;i++){
//if(demand[i] <= 0){
// hasil[0] = "false";
// hasil[1] = "ada Elemen kurang dari atau sama
dengan 0 !!!\nCek pada elemen- "+i;
// return hasil;
//}
//}
return hasil;
}
private boolean isTrueJarak(LinkedList<List> list){
boolean hasil = true;
int n = list.size();
if (E>0){
for(int i=0;i<n;i++){
LinkedList vecList = (LinkedList) list.get(i);
double jarakAnt = getJarakAnt(vecList);
if(jarakAnt > E){
return hasil = false;
}
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 31
}
}else{
return hasil = true;
}
return hasil;
}
private boolean isTrueDemand(LinkedList<List> list){
boolean hasil = true;
int n = list.size();
for(int i=0;i<n;i++){
LinkedList vecList = (LinkedList) list.get(i);
double demandAnt = getDemandAnt(vecList);
if(demandAnt > W){
return hasil = false;
}
}
return hasil;
}
// methode show list n all of array
private void tampilList(LinkedList<List> list){ // tampil
solusi
int n = list.size();
double[] dist = getSumDistance(list);
for(int i=0;i<n;i++){
LinkedList vecList = (LinkedList) list.get(i);
double demandAnt = getDemandAnt(vecList);
int m = vecList.size();
System.out.print("Rute ke-"+i+">> ");
System.out.print(" 0 ");
for(int j=0;j<m;j++){
System.out.print(vecList.get(j)+" ");
}
System.out.print("0 ");
System.out.println(" => Jarak = "+dist[i]+", dengan
Demand = "+demandAnt);
}
System.out.println("======= TOTAL JARAK SEMUA RUTE =
"+(dist[n]-serviceDuration*nC)+"\n");
}
private void tampilArray(double[][] array){
int row = array.length;
int col = array[0].length;
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
System.out.println();
}
}
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 32
File: resultForm.java package vrpiaco;
import java.util.LinkedList;
import java.util.List;
/**
*
* @author run
*/
public class resultForm extends javax.swing.JFrame {
double[] dist, demand;
double exDur;
double servDur;
int sumKota;
LinkedList<List> solusi = new LinkedList<List>();
String output = "======= Solusi =========\n\n";
/** Creates new form resultForm */
public resultForm() {
initComponents();
sumKota = input.nC;
servDur = input.serviceDuration;
solusi = input.solusiVRP;
dist = input.distanceAkhir;
demand = input.demandAkhir;
exDur = input.ExDur;
setOutput();
jTextPane1.setText(output);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextPane1 = new javax.swing.JTextPane();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CL
OSE);
setTitle("<< SOLUSI >>");
jTextPane1.setEditable(false);
jTextPane1.setFont(new java.awt.Font("Courier New", 0,
13)); // NOI18N
jScrollPane1.setViewportView(jTextPane1);
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 33
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 632, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new resultForm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextPane jTextPane1;
// End of variables declaration
private void setOutput(){
int n = solusi.size();
for(int i=0;i<n;i++){
LinkedList vecList = (LinkedList) solusi.get(i);
output += "Rute ke- "+i+" >> ";
output += "0 ";
int m=vecList.size();
for(int j=0;j<m;j++){
output += vecList.get(j)+" ";
}
output += "0 ";
output += " => Jarak = "+dist[i]+", dengan Demand =
"+demand[i]+"\n";
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 15 - 34
}
output += "\n======= Total Jarak = "+(dist[solusi.size()]-
servDur*sumKota);
output += "\n\nWaktu Eksekusi = "+exDur+" detik";
}
}
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 16 - 1
Lampiran 16 : Hasil Implementasi Program pada Permasalahan P01 Parameter inputan Jumlah semut / kendaraan = 5 Jumlah kota = 50 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 160 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 9 21 20 3 32 27 48 23 24 14 17 0 => Jarak =
171.65973469778262, dengan Demand = 157.0
Rute ke- 1 >> 0 41 19 42 38 16 2 50 29 35 36 22 0 => Jarak =
188.11764655359866, dengan Demand = 156.0
Rute ke- 2 >> 0 4 40 13 25 43 26 31 28 6 5 10 46 0 => Jarak =
237.01799540957475, dengan Demand = 156.0
Rute ke- 3 >> 0 7 8 1 11 49 45 15 12 47 0 => Jarak =
137.54798077771983, dengan Demand = 160.0
Rute ke- 4 >> 0 34 30 39 33 44 37 18 0 => Jarak =
121.86774675410962, dengan Demand = 148.0
======= Total Jarak = 856.2111041927855
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 8 23 32 1 11 33 48 6 7 0 => Jarak =
213.36887943040935, dengan Demand = 151.0
Rute ke-1>> 0 24 3 20 5 38 2 27 22 4 46 0 => Jarak =
224.8324883492912, dengan Demand = 157.0
Rute ke-2>> 0 18 39 12 47 10 45 44 30 0 => Jarak =
215.35557007213004, dengan Demand = 159.0
Rute ke-3>> 0 49 15 37 13 36 31 41 19 25 43 26 0 => Jarak =
337.6817009013983, dengan Demand = 159.0
Rute ke-4>> 0 29 42 17 14 9 35 16 21 50 34 28 40 0 => Jarak =
394.27613625294157, dengan Demand = 151.0
======= TOTAL JARAK SEMUA RUTE = 1385.5147750061703
=========== Solusi Terbaik ==========
Rute ke-0>> 0 8 23 32 1 11 33 48 6 7 0 => Jarak =
213.36887943040935, dengan Demand = 151.0
Rute ke-1>> 0 24 3 20 5 38 2 27 22 4 46 0 => Jarak =
224.8324883492912, dengan Demand = 157.0
Rute ke-2>> 0 18 39 12 47 10 45 44 30 0 => Jarak =
215.35557007213004, dengan Demand = 159.0
Rute ke-3>> 0 15 37 13 49 29 31 41 19 25 43 26 0 => Jarak =
320.17905407037546, dengan Demand = 159.0
Rute ke-4>> 0 42 17 14 9 35 36 16 21 50 34 28 40 0 => Jarak =
355.4387822939384, dengan Demand = 151.0
======= TOTAL JARAK SEMUA RUTE = 1329.1747742161444
...
======== ITERASI KE- 999 =============
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 16 - 2
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 4 40 13 25 43 26 31 28 6 5 10 46 17 0 => Jarak
= 268.80765854794726, dengan Demand = 159.0
Rute ke-1>> 0 41 19 42 38 16 2 50 29 35 36 22 0 => Jarak =
188.11764655359866, dengan Demand = 156.0
Rute ke-2>> 0 9 21 20 3 32 27 48 23 24 14 0 => Jarak =
148.30039159860502, dengan Demand = 154.0
Rute ke-3>> 0 34 30 39 33 44 37 18 1 0 => Jarak =
148.58159613159347, dengan Demand = 155.0
Rute ke-4>> 0 7 8 15 12 47 45 49 11 0 => Jarak =
182.05019135451866, dengan Demand = 153.0
======= TOTAL JARAK SEMUA RUTE = 935.8574841862632
=========== Solusi Terbaik ==========
Rute ke-0>> 0 9 21 20 3 32 27 48 23 24 14 17 0 => Jarak =
171.65973469778262, dengan Demand = 157.0
Rute ke-1>> 0 41 19 42 38 16 2 50 29 35 36 22 0 => Jarak =
188.11764655359866, dengan Demand = 156.0
Rute ke-2>> 0 4 40 13 25 43 26 31 28 6 5 10 46 0 => Jarak =
237.01799540957475, dengan Demand = 156.0
Rute ke-3>> 0 7 8 1 11 49 45 15 12 47 0 => Jarak =
137.54798077771983, dengan Demand = 160.0
Rute ke-4>> 0 34 30 39 33 44 37 18 0 => Jarak =
121.86774675410962, dengan Demand = 148.0
======= TOTAL JARAK SEMUA RUTE = 856.2111041927855
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 17 - 1
Lampiran 17 : Hasil Implementasi Program pada Permasalahan P02 Parameter inputan Jumlah semut / kendaraan = 12 Jumlah kota = 75 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 140 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 30 28 70 54 14 38 0 => Jarak =
153.33657309819327, dengan Demand = 133.0
Rute ke- 1 >> 0 68 34 11 13 21 60 71 0 => Jarak =
172.75418307183062, dengan Demand = 122.0
Rute ke- 2 >> 0 39 25 55 18 3 7 53 35 45 0 => Jarak =
155.28405114273033, dengan Demand = 139.0
Rute ke- 3 >> 0 58 72 22 41 23 43 56 49 75 0 => Jarak =
165.75273169796765, dengan Demand = 124.0
Rute ke- 4 >> 0 12 9 32 40 26 51 0 => Jarak =
76.52225176598907, dengan Demand = 136.0
Rute ke- 5 >> 0 10 65 66 59 57 47 63 0 => Jarak =
171.76215858100548, dengan Demand = 140.0
Rute ke- 6 >> 0 46 52 62 36 69 74 2 6 0 => Jarak =
123.23405545607851, dengan Demand = 139.0
Rute ke- 7 >> 0 4 29 5 61 44 16 17 0 => Jarak =
127.86454252987814, dengan Demand = 135.0
Rute ke- 8 >> 0 64 42 1 73 50 24 31 0 => Jarak =
195.37965161559143, dengan Demand = 137.0
Rute ke- 9 >> 0 27 8 19 15 20 37 48 33 0 => Jarak =
130.2546611730375, dengan Demand = 139.0
Rute ke- 10 >> 0 67 0 => Jarak = 10.770329614269007, dengan
Demand = 30.0
======= Total Jarak = 1482.915189746571
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 13 40 26 75 7 51 50 0 => Jarak =
170.47442584233158, dengan Demand = 132.0
Rute ke-1>> 0 53 58 4 29 61 44 35 0 => Jarak =
197.16271075810258, dengan Demand = 128.0
Rute ke-2>> 0 45 30 67 38 55 23 18 0 => Jarak =
204.5964540135292, dengan Demand = 123.0
Rute ke-3>> 0 49 48 33 6 68 15 20 37 0 => Jarak =
179.4948653397839, dengan Demand = 125.0
Rute ke-4>> 0 74 62 46 27 36 69 2 52 0 => Jarak =
162.44226430867235, dengan Demand = 137.0
Rute ke-5>> 0 39 72 8 19 54 25 9 1 0 => Jarak =
196.58219216673203, dengan Demand = 135.0
Rute ke-6>> 0 10 65 66 59 57 64 0 => Jarak =
194.28871390141597, dengan Demand = 138.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 17 - 2
Rute ke-7>> 0 42 16 12 17 56 43 63 3 0 => Jarak =
177.73321133529933, dengan Demand = 132.0
Rute ke-8>> 0 21 32 5 22 31 0 => Jarak = 249.7535041764892,
dengan Demand = 114.0
Rute ke-9>> 0 28 70 14 24 60 71 0 => Jarak =
276.4365928556056, dengan Demand = 114.0
Rute ke-10>> 0 34 11 41 47 73 0 => Jarak =
183.30517289026216, dengan Demand = 96.0
======= TOTAL JARAK SEMUA RUTE = 2192.270107588224
=========== Solusi Terbaik ==========
Rute ke-0>> 0 13 40 26 75 7 51 50 0 => Jarak =
170.47442584233158, dengan Demand = 132.0
Rute ke-1>> 0 53 58 4 29 61 44 35 0 => Jarak =
197.16271075810258, dengan Demand = 128.0
Rute ke-2>> 0 45 30 67 38 55 23 18 0 => Jarak =
204.5964540135292, dengan Demand = 123.0
Rute ke-3>> 0 49 48 33 6 68 15 20 37 0 => Jarak =
179.4948653397839, dengan Demand = 125.0
Rute ke-4>> 0 62 46 27 36 69 74 2 52 0 => Jarak =
154.8051992779008, dengan Demand = 137.0
Rute ke-5>> 0 72 8 19 54 39 25 9 1 0 => Jarak =
189.99542809146064, dengan Demand = 135.0
Rute ke-6>> 0 10 65 66 59 57 64 0 => Jarak =
194.28871390141597, dengan Demand = 138.0
Rute ke-7>> 0 42 16 12 17 56 43 63 3 0 => Jarak =
177.73321133529933, dengan Demand = 132.0
Rute ke-8>> 0 21 32 5 22 24 0 => Jarak = 218.09409716932157,
dengan Demand = 116.0
Rute ke-9>> 0 28 70 14 31 60 71 0 => Jarak =
266.1791423816869, dengan Demand = 112.0
Rute ke-10>> 0 34 11 41 47 73 0 => Jarak =
183.30517289026216, dengan Demand = 96.0
======= TOTAL JARAK SEMUA RUTE = 2136.1294210010947
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 58 72 22 41 23 43 56 49 75 54 0 => Jarak =
217.0659319980926, dengan Demand = 140.0
Rute ke-1>> 0 12 9 32 40 26 51 0 => Jarak =
76.52225176598907, dengan Demand = 136.0
Rute ke-2>> 0 30 28 70 13 21 60 71 69 74 0 => Jarak =
189.81379877562716, dengan Demand = 136.0
Rute ke-3>> 0 64 42 1 73 50 24 31 0 => Jarak =
195.37965161559143, dengan Demand = 137.0
Rute ke-4>> 0 39 25 55 18 3 7 53 35 45 0 => Jarak =
155.28405114273033, dengan Demand = 139.0
Rute ke-5>> 0 27 8 19 15 20 37 48 33 0 => Jarak =
130.2546611730375, dengan Demand = 139.0
Rute ke-6>> 0 10 65 66 59 57 47 63 0 => Jarak =
171.76215858100548, dengan Demand = 140.0
Rute ke-7>> 0 4 29 5 61 44 16 17 0 => Jarak =
127.86454252987814, dengan Demand = 135.0
Rute ke-8>> 0 68 34 11 14 38 0 => Jarak = 101.71647697963732,
dengan Demand = 121.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 17 - 3
Rute ke-9>> 0 46 52 62 36 2 6 0 => Jarak =
114.02707724769395, dengan Demand = 121.0
Rute ke-10>> 0 67 0 => Jarak = 10.770329614269007, dengan
Demand = 30.0
======= TOTAL JARAK SEMUA RUTE = 1490.460931423552
=========== Solusi Terbaik ==========
Rute ke-0>> 0 30 28 70 54 14 38 0 => Jarak =
153.33657309819327, dengan Demand = 133.0
Rute ke-1>> 0 68 34 11 13 21 60 71 0 => Jarak =
172.75418307183062, dengan Demand = 122.0
Rute ke-2>> 0 39 25 55 18 3 7 53 35 45 0 => Jarak =
155.28405114273033, dengan Demand = 139.0
Rute ke-3>> 0 58 72 22 41 23 43 56 49 75 0 => Jarak =
165.75273169796765, dengan Demand = 124.0
Rute ke-4>> 0 12 9 32 40 26 51 0 => Jarak =
76.52225176598907, dengan Demand = 136.0
Rute ke-5>> 0 10 65 66 59 57 47 63 0 => Jarak =
171.76215858100548, dengan Demand = 140.0
Rute ke-6>> 0 46 52 62 36 69 74 2 6 0 => Jarak =
123.23405545607851, dengan Demand = 139.0
Rute ke-7>> 0 4 29 5 61 44 16 17 0 => Jarak =
127.86454252987814, dengan Demand = 135.0
Rute ke-8>> 0 64 42 1 73 50 24 31 0 => Jarak =
195.37965161559143, dengan Demand = 137.0
Rute ke-9>> 0 27 8 19 15 20 37 48 33 0 => Jarak =
130.2546611730375, dengan Demand = 139.0
Rute ke-10>> 0 67 0 => Jarak = 10.770329614269007, dengan
Demand = 30.0
======= TOTAL JARAK SEMUA RUTE = 1482.915189746571
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 18 - 1
Lampiran 18 : Hasil Implementasi Program pada Permasalahan P03 Parameter inputan Jumlah semut / kendaraan = 10 Jumlah kota = 100 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 5 46 36 47 7 48 19 26 55 72 29 33 63 0 =>
Jarak = 282.1002923877999, dengan Demand = 191.0
Rute ke- 1 >> 0 58 22 74 73 56 24 34 44 14 61 93 16 100 96 6 0
=> Jarak = 227.52340896827712, dengan Demand = 199.0
Rute ke- 2 >> 0 76 79 45 60 28 54 25 67 75 21 78 35 51 23 0 =>
Jarak = 341.37706703835676, dengan Demand = 199.0
Rute ke- 3 >> 0 31 88 30 32 64 11 90 62 53 95 94 97 0 => Jarak
= 176.31593104273048, dengan Demand = 196.0
Rute ke- 4 >> 0 10 49 70 1 69 82 52 18 83 86 38 15 40 92 42 57 0
=> Jarak = 287.05348927538887, dengan Demand = 197.0
Rute ke- 5 >> 0 3 9 71 65 66 20 68 12 4 8 84 37 0 => Jarak =
227.70652635662464, dengan Demand = 196.0
Rute ke- 6 >> 0 50 81 77 80 17 85 13 39 41 43 91 99 2 0 =>
Jarak = 257.66401440949437, dengan Demand = 185.0
Rute ke- 7 >> 0 27 89 59 98 87 0 => Jarak = 58.85583668140094,
dengan Demand = 95.0
======= Total Jarak = 1858.596566160073
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 34 79 45 25 72 59 14 24 29 78 9 68 0 => Jarak =
347.0294907314001, dengan Demand = 199.0
Rute ke-1>> 0 50 30 96 58 22 95 94 97 89 53 49 0 => Jarak =
253.31886566327768, dengan Demand = 199.0
Rute ke-2>> 0 64 90 52 18 71 17 85 39 41 43 91 99 65 3 8 55 1 0
=> Jarak = 581.2590274520584, dengan Demand = 198.0
Rute ke-3>> 0 21 67 33 51 57 5 46 36 47 7 48 19 26 0 => Jarak
= 298.6705299541392, dengan Demand = 198.0
Rute ke-4>> 0 27 28 13 81 20 87 44 38 70 88 82 98 92 2 0 =>
Jarak = 304.794649326995, dengan Demand = 199.0
Rute ke-5>> 0 83 60 77 80 63 23 31 69 61 93 16 100 56 74 0 =>
Jarak = 367.1192458309716, dengan Demand = 191.0
Rute ke-6>> 0 37 15 4 6 84 42 12 73 76 40 75 10 11 32 62 35 0
=> Jarak = 427.61185979947686, dengan Demand = 196.0
Rute ke-7>> 0 54 66 86 0 => Jarak = 173.94355912906542,
dengan Demand = 78.0
======= TOTAL JARAK SEMUA RUTE = 2753.747227887384
=========== Solusi Terbaik ==========
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 18 - 2
Rute ke-0>> 0 34 79 45 25 72 59 14 24 29 78 9 68 0 => Jarak =
347.0294907314001, dengan Demand = 199.0
Rute ke-1>> 0 50 30 96 58 22 95 94 97 89 53 49 0 => Jarak =
253.31886566327768, dengan Demand = 199.0
Rute ke-2>> 0 64 90 52 18 71 17 85 39 41 43 91 99 65 3 8 55 1 0
=> Jarak = 581.2590274520584, dengan Demand = 198.0
Rute ke-3>> 0 21 67 33 51 57 5 46 36 47 7 48 19 26 0 => Jarak
= 298.6705299541392, dengan Demand = 198.0
Rute ke-4>> 0 27 28 13 81 20 87 44 38 70 88 82 98 92 2 0 =>
Jarak = 304.794649326995, dengan Demand = 199.0
Rute ke-5>> 0 83 60 77 80 63 23 31 69 61 93 16 100 56 74 0 =>
Jarak = 367.1192458309716, dengan Demand = 191.0
Rute ke-6>> 0 15 4 6 84 37 42 12 73 76 40 75 35 11 32 62 10 0
=> Jarak = 405.13001386631913, dengan Demand = 196.0
Rute ke-7>> 0 54 66 86 0 => Jarak = 173.94355912906542,
dengan Demand = 78.0
======= TOTAL JARAK SEMUA RUTE = 2731.265381954226
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 5 46 36 47 7 48 19 26 55 72 29 33 63 0 => Jarak
= 282.1002923877999, dengan Demand = 191.0
Rute ke-1>> 0 76 79 45 60 28 54 25 67 75 21 78 35 51 23 0 =>
Jarak = 341.37706703835676, dengan Demand = 199.0
Rute ke-2>> 0 3 9 71 65 66 20 68 12 4 8 84 37 6 0 => Jarak =
228.8540026960261, dengan Demand = 199.0
Rute ke-3>> 0 10 49 70 1 69 82 52 18 83 86 38 15 40 92 42 57 0
=> Jarak = 287.05348927538887, dengan Demand = 197.0
Rute ke-4>> 0 50 81 77 80 17 85 13 39 41 43 91 99 2 11 90 0 =>
Jarak = 333.3825491329082, dengan Demand = 200.0
Rute ke-5>> 0 31 88 30 32 64 56 24 34 44 14 61 93 0 => Jarak
= 305.6843715159861, dengan Demand = 185.0
Rute ke-6>> 0 27 89 59 98 87 94 97 96 58 22 74 73 0 => Jarak
= 122.63382530161125, dengan Demand = 198.0
Rute ke-7>> 0 62 53 95 16 100 0 => Jarak =
117.16620619279507, dengan Demand = 89.0
======= TOTAL JARAK SEMUA RUTE = 2018.2518035408723
=========== Solusi Terbaik ==========
Rute ke-0>> 0 5 46 36 47 7 48 19 26 55 72 29 33 63 0 => Jarak
= 282.1002923877999, dengan Demand = 191.0
Rute ke-1>> 0 58 22 74 73 56 24 34 44 14 61 93 16 100 96 6 0 =>
Jarak = 227.52340896827712, dengan Demand = 199.0
Rute ke-2>> 0 76 79 45 60 28 54 25 67 75 21 78 35 51 23 0 =>
Jarak = 341.37706703835676, dengan Demand = 199.0
Rute ke-3>> 0 31 88 30 32 64 11 90 62 53 95 94 97 0 => Jarak
= 176.31593104273048, dengan Demand = 196.0
Rute ke-4>> 0 10 49 70 1 69 82 52 18 83 86 38 15 40 92 42 57 0
=> Jarak = 287.05348927538887, dengan Demand = 197.0
Rute ke-5>> 0 3 9 71 65 66 20 68 12 4 8 84 37 0 => Jarak =
227.70652635662464, dengan Demand = 196.0
Rute ke-6>> 0 50 81 77 80 17 85 13 39 41 43 91 99 2 0 =>
Jarak = 257.66401440949437, dengan Demand = 185.0
Rute ke-7>> 0 27 89 59 98 87 0 => Jarak = 58.85583668140094,
dengan Demand = 95.0
======= TOTAL JARAK SEMUA RUTE = 1858.596566160073
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 19 - 1
Lampiran 19 : Hasil Implementasi Program pada Permasalahan P04 Parameter inputan Jumlah semut / kendaraan = 14 Jumlah kota = 150 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 108 150 4 1 101 117 54 50 2 129 30 0 => Jarak
= 241.02222504998173, dengan Demand = 187.0
Rute ke- 1 >> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 142
0 => Jarak = 368.52192470445283, dengan Demand = 196.0
Rute ke- 2 >> 0 46 9 62 84 35 94 133 67 66 24 98 69 68 87 0 =>
Jarak = 285.8921657748921, dengan Demand = 199.0
Rute ke- 3 >> 0 77 104 105 75 96 43 61 3 36 64 136 19 135 0 =>
Jarak = 318.5052191259003, dengan Demand = 193.0
Rute ke- 4 >> 0 32 119 27 60 120 22 20 21 59 130 118 126 127 79 0
=> Jarak = 173.79670819102645, dengan Demand = 192.0
Rute ke- 5 >> 0 17 90 89 49 76 100 16 53 26 113 86 132 7 23 0 =>
Jarak = 238.42885656397183, dengan Demand = 192.0
Rute ke- 6 >> 0 48 112 140 114 116 70 51 143 148 37 123 45 33 71
0 => Jarak = 222.31506913897124, dengan Demand = 186.0
Rute ke- 7 >> 0 110 18 107 42 73 125 83 29 38 80 31 82 0 =>
Jarak = 235.83052493990863, dengan Demand = 198.0
Rute ke- 8 >> 0 92 124 72 106 91 34 131 85 128 115 121 81 58 14 0
=> Jarak = 266.7758940370218, dengan Demand = 197.0
Rute ke- 9 >> 0 139 55 111 40 88 122 5 78 11 12 0 => Jarak =
137.58036419764028, dengan Demand = 187.0
Rute ke- 10 >> 0 47 144 147 65 6 13 109 145 44 137 0 => Jarak
= 160.85872464352437, dengan Demand = 200.0
Rute ke- 11 >> 0 141 41 25 95 134 146 149 102 0 => Jarak =
105.45244315755937, dengan Demand = 108.0
======= Total Jarak = 2754.980119524851
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 27 11 38 86 132 23 12 118 53 128 4 1 0 => Jarak
= 279.8522213045951, dengan Demand = 183.0
Rute ke-1>> 0 146 149 89 139 65 78 32 45 98 69 68 87 0 =>
Jarak = 330.00375588365296, dengan Demand = 185.0
Rute ke-2>> 0 3 104 34 131 83 54 47 145 108 90 0 => Jarak =
198.15363605653607, dengan Demand = 188.0
Rute ke-3>> 0 134 102 6 88 33 71 80 59 130 2 129 5 0 => Jarak
= 279.95781522168613, dengan Demand = 198.0
Rute ke-4>> 0 46 9 62 84 35 94 133 67 66 24 147 17 110 18 0 =>
Jarak = 282.9778281676389, dengan Demand = 185.0
Rute ke-5>> 0 144 58 14 107 111 117 105 60 76 100 16 85 106 91 0
=> Jarak = 402.24025719721607, dengan Demand = 184.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 19 - 2
Rute ke-6>> 0 31 7 29 127 21 116 70 51 143 141 41 25 95 0 =>
Jarak = 270.3304207607048, dengan Demand = 196.0
Rute ke-7>> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 0
=> Jarak = 343.7218063297038, dengan Demand = 194.0
Rute ke-8>> 0 79 92 124 72 75 137 48 112 22 114 142 109 42 148
121 0 => Jarak = 439.30579698787966, dengan Demand = 193.0
Rute ke-9>> 0 37 123 96 43 61 136 30 122 19 55 13 120 0 =>
Jarak = 357.88333280866, dengan Demand = 184.0
Rute ke-10>> 0 44 50 82 119 101 36 64 20 81 140 26 113 40 49 0
=> Jarak = 465.5669160786716, dengan Demand = 191.0
Rute ke-11>> 0 77 115 125 73 126 135 150 0 => Jarak =
231.14199047847654, dengan Demand = 154.0
======= TOTAL JARAK SEMUA RUTE = 3881.1357772754213
=========== Solusi Terbaik ==========
Rute ke-0>> 0 11 38 27 86 132 23 12 118 53 128 4 1 0 => Jarak
= 261.82413869820545, dengan Demand = 183.0
Rute ke-1>> 0 146 149 89 139 65 78 32 45 98 69 68 87 0 =>
Jarak = 330.00375588365296, dengan Demand = 185.0
Rute ke-2>> 0 3 104 34 131 83 54 47 145 108 90 0 => Jarak =
198.15363605653607, dengan Demand = 188.0
Rute ke-3>> 0 134 102 6 88 33 71 80 59 130 2 129 5 0 => Jarak
= 279.95781522168613, dengan Demand = 198.0
Rute ke-4>> 0 46 9 62 84 35 94 133 67 66 24 147 17 110 18 0 =>
Jarak = 282.9778281676389, dengan Demand = 185.0
Rute ke-5>> 0 58 14 144 107 111 117 105 60 76 100 16 85 106 91 0
=> Jarak = 394.43832131271444, dengan Demand = 184.0
Rute ke-6>> 0 31 7 29 127 21 116 70 51 143 141 41 25 95 0 =>
Jarak = 270.3304207607048, dengan Demand = 196.0
Rute ke-7>> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 0
=> Jarak = 343.7218063297038, dengan Demand = 194.0
Rute ke-8>> 0 79 92 124 72 75 137 48 112 140 114 142 109 42 148
121 0 => Jarak = 417.94716189284145, dengan Demand = 188.0
Rute ke-9>> 0 37 123 96 43 61 136 30 122 19 55 13 120 0 =>
Jarak = 357.88333280866, dengan Demand = 184.0
Rute ke-10>> 0 44 50 82 119 101 36 64 20 81 22 26 113 40 49 0
=> Jarak = 477.1279316643868, dengan Demand = 196.0
Rute ke-11>> 0 77 115 125 73 126 135 150 0 => Jarak =
231.14199047847654, dengan Demand = 154.0
======= TOTAL JARAK SEMUA RUTE = 3845.5081392752068
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 142 0
=> Jarak = 368.52192470445283, dengan Demand = 196.0
Rute ke-1>> 0 108 150 4 1 101 117 54 50 2 129 30 0 => Jarak =
241.02222504998173, dengan Demand = 187.0
Rute ke-2>> 0 17 90 89 49 76 100 16 53 26 113 86 132 7 23 0 =>
Jarak = 238.42885656397183, dengan Demand = 192.0
Rute ke-3>> 0 46 9 62 84 35 94 133 67 66 24 98 69 68 87 0 =>
Jarak = 285.8921657748921, dengan Demand = 199.0
Rute ke-4>> 0 139 55 111 40 88 122 5 78 11 12 0 => Jarak =
137.58036419764028, dengan Demand = 187.0
Rute ke-5>> 0 77 104 105 75 96 43 61 3 36 64 136 19 135 0 =>
Jarak = 318.5052191259003, dengan Demand = 193.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 19 - 3
Rute ke-6>> 0 32 119 27 60 120 22 20 21 59 130 118 126 127 79 0
=> Jarak = 173.79670819102645, dengan Demand = 192.0
Rute ke-7>> 0 48 112 140 114 116 70 51 143 148 37 123 45 33 71 0
=> Jarak = 222.31506913897124, dengan Demand = 186.0
Rute ke-8>> 0 110 18 107 42 73 125 83 29 38 80 31 82 0 =>
Jarak = 235.83052493990863, dengan Demand = 198.0
Rute ke-9>> 0 92 124 72 106 91 34 131 85 128 115 121 81 58 14 0
=> Jarak = 266.7758940370218, dengan Demand = 197.0
Rute ke-10>> 0 141 41 25 95 134 146 149 102 13 109 145 44 0 =>
Jarak = 173.50645327663509, dengan Demand = 195.0
Rute ke-11>> 0 47 144 147 65 6 137 0 => Jarak =
129.55625044807365, dengan Demand = 113.0
======= TOTAL JARAK SEMUA RUTE = 2791.731655448476
=========== Solusi Terbaik ==========
Rute ke-0>> 0 108 150 4 1 101 117 54 50 2 129 30 0 => Jarak =
241.02222504998173, dengan Demand = 187.0
Rute ke-1>> 0 103 74 28 138 97 99 57 8 10 52 93 56 63 15 39 142 0
=> Jarak = 368.52192470445283, dengan Demand = 196.0
Rute ke-2>> 0 46 9 62 84 35 94 133 67 66 24 98 69 68 87 0 =>
Jarak = 285.8921657748921, dengan Demand = 199.0
Rute ke-3>> 0 77 104 105 75 96 43 61 3 36 64 136 19 135 0 =>
Jarak = 318.5052191259003, dengan Demand = 193.0
Rute ke-4>> 0 32 119 27 60 120 22 20 21 59 130 118 126 127 79 0
=> Jarak = 173.79670819102645, dengan Demand = 192.0
Rute ke-5>> 0 17 90 89 49 76 100 16 53 26 113 86 132 7 23 0 =>
Jarak = 238.42885656397183, dengan Demand = 192.0
Rute ke-6>> 0 48 112 140 114 116 70 51 143 148 37 123 45 33 71 0
=> Jarak = 222.31506913897124, dengan Demand = 186.0
Rute ke-7>> 0 110 18 107 42 73 125 83 29 38 80 31 82 0 =>
Jarak = 235.83052493990863, dengan Demand = 198.0
Rute ke-8>> 0 92 124 72 106 91 34 131 85 128 115 121 81 58 14 0
=> Jarak = 266.7758940370218, dengan Demand = 197.0
Rute ke-9>> 0 139 55 111 40 88 122 5 78 11 12 0 => Jarak =
137.58036419764028, dengan Demand = 187.0
Rute ke-10>> 0 47 144 147 65 6 13 109 145 44 137 0 => Jarak =
160.85872464352437, dengan Demand = 200.0
Rute ke-11>> 0 141 41 25 95 134 146 149 102 0 => Jarak =
105.45244315755937, dengan Demand = 108.0
======= TOTAL JARAK SEMUA RUTE = 2754.980119524851
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 20 - 1
Lampiran 20 : Hasil Implementasi Program pada Permasalahan P05
Parameter inputan Jumlah semut / kendaraan = 20 Jumlah kota = 199 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 250 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 54 79 29 173 138 99 1 2 3 154 155 88 48 0 =>
Jarak = 261.6253389558239, dengan Demand = 199.0
Rute ke- 1 >> 0 175 95 31 67 159 189 181 44 76 135 141 57 12 64 0
=> Jarak = 392.1900058469262, dengan Demand = 197.0
Rute ke- 2 >> 0 149 156 150 52 133 43 83 103 4 5 6 0 => Jarak
= 313.22647839435524, dengan Demand = 193.0
Rute ke- 3 >> 0 142 115 197 158 198 7 8 9 22 137 23 74 191 0 =>
Jarak = 291.49500337090996, dengan Demand = 197.0
Rute ke- 4 >> 0 183 104 17 100 169 30 120 195 190 136 106 132 39
10 119 0 => Jarak = 281.2392131560841, dengan Demand = 188.0
Rute ke- 5 >> 0 16 41 89 146 25 114 184 91 193 163 85 13 0 =>
Jarak = 384.25987987456114, dengan Demand = 198.0
Rute ke- 6 >> 0 27 58 87 127 109 117 55 40 130 139 157 0 =>
Jarak = 143.22824371705195, dengan Demand = 189.0
Rute ke- 7 >> 0 147 56 26 60 188 61 86 28 151 126 0 => Jarak =
155.39877767800917, dengan Demand = 199.0
Rute ke- 8 >> 0 59 68 129 110 38 24 49 145 164 180 69 108 0 =>
Jarak = 359.28356310440694, dengan Demand = 194.0
Rute ke- 9 >> 0 111 34 14 51 75 178 78 82 45 174 0 => Jarak =
229.25436734534946, dengan Demand = 197.0
Rute ke- 10 >> 0 81 77 134 50 15 102 162 80 194 116 160 53 112 66
192 0 => Jarak = 316.5863541354187, dengan Demand = 175.0
Rute ke- 11 >> 0 73 62 113 185 196 71 19 153 140 166 37 0 =>
Jarak = 289.2344545040458, dengan Demand = 185.0
Rute ke- 12 >> 0 96 42 148 187 131 124 98 125 72 161 97 0 =>
Jarak = 283.6809264631669, dengan Demand = 191.0
Rute ke- 13 >> 0 186 36 122 172 171 47 101 20 123 176 35 152 0
=> Jarak = 192.93843335793625, dengan Demand = 190.0
Rute ke- 14 >> 0 92 18 144 182 63 199 107 90 143 21 121 94 0 =>
Jarak = 230.01039855801577, dengan Demand = 199.0
Rute ke- 15 >> 0 168 32 105 33 93 118 11 177 84 165 170 0 =>
Jarak = 246.09518018591973, dengan Demand = 194.0
Rute ke- 16 >> 0 46 65 167 179 70 128 0 => Jarak =
64.9937161702049, dengan Demand = 101.0
======= Total Jarak = 4434.740334818186
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 40 130 162 6 62 73 171 30 120 195 190 0 =>
Jarak = 258.0538813344386, dengan Demand = 192.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 20 - 2
Rute ke-1>> 0 12 1 2 3 10 119 49 188 61 87 4 0 => Jarak =
207.07138307918189, dengan Demand = 200.0
Rute ke-2>> 0 111 140 32 55 139 157 146 115 57 16 64 101 0 =>
Jarak = 329.8754356927162, dengan Demand = 199.0
Rute ke-3>> 0 186 36 187 197 160 26 60 9 22 23 104 17 0 =>
Jarak = 304.752855922274, dengan Demand = 200.0
Rute ke-4>> 0 92 18 144 182 63 199 159 189 181 44 131 54 98 0
=> Jarak = 278.2463833222555, dengan Demand = 190.0
Rute ke-5>> 0 37 46 184 198 5 7 51 91 143 0 => Jarak =
264.4540337317626, dengan Demand = 188.0
Rute ke-6>> 0 59 68 42 69 67 169 19 178 78 103 66 192 0 =>
Jarak = 318.6795302799681, dengan Demand = 187.0
Rute ke-7>> 0 81 105 53 193 89 41 24 191 34 180 177 102 8 76 0
=> Jarak = 242.3279865382735, dengan Demand = 194.0
Rute ke-8>> 0 95 96 148 77 134 50 15 154 176 47 80 86 28 0 =>
Jarak = 359.77589301624533, dengan Demand = 181.0
Rute ke-9>> 0 175 112 94 58 122 172 125 72 11 108 70 151 0 =>
Jarak = 292.6140830113492, dengan Demand = 198.0
Rute ke-10>> 0 194 116 117 100 126 109 13 152 127 129 110 38 0
=> Jarak = 285.0882102202307, dengan Demand = 175.0
Rute ke-11>> 0 142 196 135 141 43 83 82 45 174 179 14 20 123 0
=> Jarak = 417.02017350133997, dengan Demand = 197.0
Rute ke-12>> 0 147 56 167 93 155 88 48 163 85 114 166 0 =>
Jarak = 429.64966583197946, dengan Demand = 195.0
Rute ke-13>> 0 35 84 165 158 161 71 21 136 106 132 39 27 0 =>
Jarak = 377.31363438699094, dengan Demand = 192.0
Rute ke-14>> 0 149 156 150 52 133 128 65 170 97 74 121 113 25 0
=> Jarak = 403.81836412240636, dengan Demand = 196.0
Rute ke-15>> 0 33 168 124 79 29 173 138 99 153 107 90 31 0 =>
Jarak = 327.3862929785753, dengan Demand = 199.0
Rute ke-16>> 0 137 183 118 145 164 75 185 0 => Jarak =
309.24724435697385, dengan Demand = 103.0
======= TOTAL JARAK SEMUA RUTE = 5405.3750513269615
=========== Solusi Terbaik ==========
Rute ke-0>> 0 40 130 162 6 62 73 171 30 120 195 190 0 =>
Jarak = 258.0538813344386, dengan Demand = 192.0
Rute ke-1>> 0 12 1 2 3 10 119 49 188 61 87 4 0 => Jarak =
207.07138307918189, dengan Demand = 200.0
Rute ke-2>> 0 111 140 32 55 139 157 146 115 57 16 64 101 0 =>
Jarak = 329.8754356927162, dengan Demand = 199.0
Rute ke-3>> 0 186 36 187 197 160 26 60 9 22 23 104 17 0 =>
Jarak = 304.752855922274, dengan Demand = 200.0
Rute ke-4>> 0 92 18 144 182 63 199 159 189 181 44 131 54 98 0
=> Jarak = 278.2463833222555, dengan Demand = 190.0
Rute ke-5>> 0 37 46 184 198 5 7 51 91 143 0 => Jarak =
264.4540337317626, dengan Demand = 188.0
Rute ke-6>> 0 59 68 42 69 67 169 19 178 78 103 66 192 0 =>
Jarak = 318.6795302799681, dengan Demand = 187.0
Rute ke-7>> 0 81 105 53 193 89 41 24 191 34 180 177 102 8 76 0
=> Jarak = 242.3279865382735, dengan Demand = 194.0
Rute ke-8>> 0 95 96 148 77 134 50 15 154 176 47 80 86 28 0 =>
Jarak = 359.77589301624533, dengan Demand = 181.0
Rute ke-9>> 0 175 112 94 58 122 172 125 72 11 108 70 151 0 =>
Jarak = 292.6140830113492, dengan Demand = 198.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 20 - 3
Rute ke-10>> 0 194 116 117 100 126 109 13 152 127 129 110 38 0
=> Jarak = 285.0882102202307, dengan Demand = 175.0
Rute ke-11>> 0 142 196 135 141 43 83 82 45 174 179 14 20 123 0
=> Jarak = 417.02017350133997, dengan Demand = 197.0
Rute ke-12>> 0 147 56 167 93 155 88 48 163 85 114 166 0 =>
Jarak = 429.64966583197946, dengan Demand = 195.0
Rute ke-13>> 0 35 84 165 158 161 71 21 136 106 132 39 27 0 =>
Jarak = 377.31363438699094, dengan Demand = 192.0
Rute ke-14>> 0 149 156 150 52 133 128 65 170 97 74 121 113 25 0
=> Jarak = 403.81836412240636, dengan Demand = 196.0
Rute ke-15>> 0 33 168 124 79 29 173 138 99 153 107 90 31 0 =>
Jarak = 327.3862929785753, dengan Demand = 199.0
Rute ke-16>> 0 137 183 118 145 164 75 185 0 => Jarak =
309.24724435697385, dengan Demand = 103.0
======= TOTAL JARAK SEMUA RUTE = 5405.3750513269615
...
======== ITERASI KE- 249 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 16 41 89 146 25 114 184 91 193 163 85 13 0 =>
Jarak = 384.25987987456114, dengan Demand = 198.0
Rute ke-1>> 0 81 77 134 50 15 102 1 2 3 154 155 88 48 118 0 =>
Jarak = 385.44313751511964, dengan Demand = 176.0
Rute ke-2>> 0 175 95 31 67 159 189 181 44 76 135 141 57 12 64 0
=> Jarak = 392.1900058469262, dengan Demand = 197.0
Rute ke-3>> 0 147 56 26 60 188 61 86 28 151 126 0 => Jarak =
155.39877767800917, dengan Demand = 199.0
Rute ke-4>> 0 142 115 197 158 198 4 5 6 62 113 0 => Jarak =
220.60344034489708, dengan Demand = 186.0
Rute ke-5>> 0 149 156 150 52 133 43 83 103 101 20 123 176 35 152
0 => Jarak = 373.59741110672616, dengan Demand = 193.0
Rute ke-6>> 0 96 42 148 187 131 124 98 125 72 161 97 0 =>
Jarak = 283.6809264631669, dengan Demand = 191.0
Rute ke-7>> 0 183 104 17 100 169 30 120 195 190 136 106 132 39 7
8 0 => Jarak = 284.6479406129782, dengan Demand = 184.0
Rute ke-8>> 0 168 32 105 33 93 9 22 137 23 74 191 34 0 =>
Jarak = 285.71372167218186, dengan Demand = 192.0
Rute ke-9>> 0 111 140 166 37 46 65 167 179 10 119 49 145 0 =>
Jarak = 248.222168412987, dengan Demand = 188.0
Rute ke-10>> 0 186 36 122 172 171 47 80 194 116 160 53 112 0 =>
Jarak = 234.98199739009485, dengan Demand = 198.0
Rute ke-11>> 0 54 79 29 173 138 99 153 107 90 143 0 => Jarak
= 203.229357833925, dengan Demand = 174.0
Rute ke-12>> 0 92 18 144 182 63 199 75 178 78 82 45 174 0 =>
Jarak = 302.01994515229876, dengan Demand = 187.0
Rute ke-13>> 0 59 68 129 110 38 24 94 58 87 127 109 117 55 0 =>
Jarak = 365.5769657945571, dengan Demand = 193.0
Rute ke-14>> 0 73 40 130 139 157 69 108 70 128 19 177 84 0 =>
Jarak = 211.6237829453736, dengan Demand = 193.0
Rute ke-15>> 0 27 71 21 121 11 14 51 164 66 0 => Jarak =
285.0920709012155, dengan Demand = 192.0
Rute ke-16>> 0 192 162 165 170 180 196 185 0 => Jarak =
213.24317762131642, dengan Demand = 145.0
======= TOTAL JARAK SEMUA RUTE = 4829.524707166334
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 20 - 4
=========== Solusi Terbaik ==========
Rute ke-0>> 0 54 79 29 173 138 99 1 2 3 154 155 88 48 0 =>
Jarak = 261.6253389558239, dengan Demand = 199.0
Rute ke-1>> 0 175 95 31 67 159 189 181 44 76 135 141 57 12 64 0
=> Jarak = 392.1900058469262, dengan Demand = 197.0
Rute ke-2>> 0 149 156 150 52 133 43 83 103 4 5 6 0 => Jarak =
313.22647839435524, dengan Demand = 193.0
Rute ke-3>> 0 142 115 197 158 198 7 8 9 22 137 23 74 191 0 =>
Jarak = 291.49500337090996, dengan Demand = 197.0
Rute ke-4>> 0 183 104 17 100 169 30 120 195 190 136 106 132 39 10
119 0 => Jarak = 281.2392131560841, dengan Demand = 188.0
Rute ke-5>> 0 16 41 89 146 25 114 184 91 193 163 85 13 0 =>
Jarak = 384.25987987456114, dengan Demand = 198.0
Rute ke-6>> 0 27 58 87 127 109 117 55 40 130 139 157 0 =>
Jarak = 143.22824371705195, dengan Demand = 189.0
Rute ke-7>> 0 147 56 26 60 188 61 86 28 151 126 0 => Jarak =
155.39877767800917, dengan Demand = 199.0
Rute ke-8>> 0 59 68 129 110 38 24 49 145 164 180 69 108 0 =>
Jarak = 359.28356310440694, dengan Demand = 194.0
Rute ke-9>> 0 111 34 14 51 75 178 78 82 45 174 0 => Jarak =
229.25436734534946, dengan Demand = 197.0
Rute ke-10>> 0 81 77 134 50 15 102 162 80 194 116 160 53 112 66
192 0 => Jarak = 316.5863541354187, dengan Demand = 175.0
Rute ke-11>> 0 73 62 113 185 196 71 19 153 140 166 37 0 =>
Jarak = 289.2344545040458, dengan Demand = 185.0
Rute ke-12>> 0 96 42 148 187 131 124 98 125 72 161 97 0 =>
Jarak = 283.6809264631669, dengan Demand = 191.0
Rute ke-13>> 0 186 36 122 172 171 47 101 20 123 176 35 152 0 =>
Jarak = 192.93843335793625, dengan Demand = 190.0
Rute ke-14>> 0 92 18 144 182 63 199 107 90 143 21 121 94 0 =>
Jarak = 230.01039855801577, dengan Demand = 199.0
Rute ke-15>> 0 168 32 105 33 93 118 11 177 84 165 170 0 =>
Jarak = 246.09518018591973, dengan Demand = 194.0
Rute ke-16>> 0 46 65 167 179 70 128 0 => Jarak =
64.9937161702049, dengan Demand = 101.0
======= TOTAL JARAK SEMUA RUTE = 4434.740334818186
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 21 - 1
Lampiran 21 : Hasil Implementasi Program pada Permasalahan P06 Parameter inputan Jumlah semut / kendaraan = 11 Jumlah kota = 50 Jarak maksimal kendaraan = 200 Kapasitas kendaraan = 160 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 10
Output ======= Solusi =========
Rute ke- 0 >> 0 16 21 36 9 2 1 0 => Jarak =
199.27474525071867, dengan Demand = 77.0
Rute ke- 1 >> 0 42 33 30 34 29 11 0 => Jarak =
188.64067782205944, dengan Demand = 106.0
Rute ke- 2 >> 0 10 15 44 28 8 0 => Jarak = 188.83684402672753,
dengan Demand = 68.0
Rute ke- 3 >> 0 18 37 45 39 49 50 38 0 => Jarak =
193.93657954856928, dengan Demand = 117.0
Rute ke- 4 >> 0 12 5 3 35 20 32 0 => Jarak =
162.93046344746193, dengan Demand = 123.0
Rute ke- 5 >> 0 27 23 7 14 24 6 4 47 0 => Jarak =
195.27985739335938, dengan Demand = 130.0
Rute ke- 6 >> 0 19 40 13 41 17 46 0 => Jarak =
167.99711818093886, dengan Demand = 74.0
Rute ke- 7 >> 0 48 25 43 26 31 22 0 => Jarak =
192.86624217073597, dengan Demand = 82.0
======= Total Jarak = 989.7625278405708
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 33 4 28 0 => Jarak = 171.50596026666352, dengan
Demand = 46.0
Rute ke-1>> 0 48 1 20 35 27 2 0 => Jarak = 191.5236737335951,
dengan Demand = 114.0
Rute ke-2>> 0 18 47 22 17 46 6 0 => Jarak =
191.98760145028504, dengan Demand = 97.0
Rute ke-3>> 0 13 41 32 26 0 => Jarak = 171.657032780931,
dengan Demand = 69.0
Rute ke-4>> 0 19 11 16 45 37 0 => Jarak = 197.8360879022482,
dengan Demand = 62.0
Rute ke-5>> 0 9 8 3 12 5 0 => Jarak = 191.62384194992882,
dengan Demand = 100.0
Rute ke-6>> 0 42 40 44 7 0 => Jarak = 190.53295920424637,
dengan Demand = 55.0
Rute ke-7>> 0 38 34 29 30 23 0 => Jarak = 191.86962948601837,
dengan Demand = 82.0
Rute ke-8>> 0 14 24 36 21 0 => Jarak = 185.52940300501626,
dengan Demand = 45.0
Rute ke-9>> 0 10 15 43 25 0 => Jarak = 190.43477370854208,
dengan Demand = 54.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 21 - 2
Rute ke-10>> 0 31 39 49 50 0 => Jarak = 183.38587233012908,
dengan Demand = 53.0
======= TOTAL JARAK SEMUA RUTE = 1557.8868358176037
=========== Solusi Terbaik ==========
Rute ke-0>> 0 33 4 28 0 => Jarak = 171.50596026666352, dengan
Demand = 46.0
Rute ke-1>> 0 48 1 20 35 27 2 0 => Jarak = 191.5236737335951,
dengan Demand = 114.0
Rute ke-2>> 0 18 47 22 17 46 6 0 => Jarak =
191.98760145028504, dengan Demand = 97.0
Rute ke-3>> 0 13 41 32 26 0 => Jarak = 171.657032780931,
dengan Demand = 69.0
Rute ke-4>> 0 19 11 16 45 37 0 => Jarak = 197.8360879022482,
dengan Demand = 62.0
Rute ke-5>> 0 9 8 3 12 5 0 => Jarak = 191.62384194992882,
dengan Demand = 100.0
Rute ke-6>> 0 42 40 44 7 0 => Jarak = 190.53295920424637,
dengan Demand = 55.0
Rute ke-7>> 0 38 34 29 30 23 0 => Jarak = 191.86962948601837,
dengan Demand = 82.0
Rute ke-8>> 0 14 24 36 21 0 => Jarak = 185.52940300501626,
dengan Demand = 45.0
Rute ke-9>> 0 10 15 43 25 0 => Jarak = 190.43477370854208,
dengan Demand = 54.0
Rute ke-10>> 0 31 39 49 50 0 => Jarak = 183.38587233012908,
dengan Demand = 53.0
======= TOTAL JARAK SEMUA RUTE = 1557.8868358176037
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 12 5 3 35 20 32 1 0 => Jarak =
182.90566996720997, dengan Demand = 130.0
Rute ke-1>> 0 27 23 7 14 24 6 4 47 0 => Jarak =
195.27985739335938, dengan Demand = 130.0
Rute ke-2>> 0 16 21 36 9 2 0 => Jarak = 184.0367804260445,
dengan Demand = 70.0
Rute ke-3>> 0 19 40 13 41 17 46 0 => Jarak =
167.99711818093886, dengan Demand = 74.0
Rute ke-4>> 0 18 37 45 39 49 50 38 0 => Jarak =
193.93657954856928, dengan Demand = 117.0
Rute ke-5>> 0 42 33 30 34 29 11 0 => Jarak =
188.64067782205944, dengan Demand = 106.0
Rute ke-6>> 0 48 25 43 26 31 22 0 => Jarak =
192.86624217073597, dengan Demand = 82.0
Rute ke-7>> 0 10 15 44 28 8 0 => Jarak = 188.83684402672753,
dengan Demand = 68.0
======= TOTAL JARAK SEMUA RUTE = 994.4997695356449
=========== Solusi Terbaik ==========
Rute ke-0>> 0 16 21 36 9 2 1 0 => Jarak = 199.27474525071867,
dengan Demand = 77.0
Rute ke-1>> 0 42 33 30 34 29 11 0 => Jarak =
188.64067782205944, dengan Demand = 106.0
Rute ke-2>> 0 10 15 44 28 8 0 => Jarak = 188.83684402672753,
dengan Demand = 68.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 21 - 3
Rute ke-3>> 0 18 37 45 39 49 50 38 0 => Jarak =
193.93657954856928, dengan Demand = 117.0
Rute ke-4>> 0 12 5 3 35 20 32 0 => Jarak =
162.93046344746193, dengan Demand = 123.0
Rute ke-5>> 0 27 23 7 14 24 6 4 47 0 => Jarak =
195.27985739335938, dengan Demand = 130.0
Rute ke-6>> 0 19 40 13 41 17 46 0 => Jarak =
167.99711818093886, dengan Demand = 74.0
Rute ke-7>> 0 48 25 43 26 31 22 0 => Jarak =
192.86624217073597, dengan Demand = 82.0
======= TOTAL JARAK SEMUA RUTE = 989.7625278405708
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 22 - 1
Lampiran 22 : Hasil Implementasi Program pada Permasalahan P07
Parameter inputan Jumlah semut / kendaraan = 22 Jumlah kota = 75 Jarak maksimal kendaraan = 160 Kapasitas kendaraan = 140 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 10
Output ======= Solusi =========
Rute ke- 0 >> 0 46 53 11 65 38 58 0 => Jarak =
135.99512685291734, dengan Demand = 140.0
Rute ke- 1 >> 0 3 49 55 25 32 0 => Jarak = 156.61726978120464,
dengan Demand = 65.0
Rute ke- 2 >> 0 17 51 6 40 12 50 0 => Jarak =
152.5435186202567, dengan Demand = 122.0
Rute ke- 3 >> 0 44 24 18 31 0 => Jarak = 155.47463143856868,
dengan Demand = 82.0
Rute ke- 4 >> 0 23 56 22 61 74 0 => Jarak =
157.30624452147168, dengan Demand = 69.0
Rute ke- 5 >> 0 75 5 29 2 73 1 68 0 => Jarak =
159.68107902266414, dengan Demand = 114.0
Rute ke- 6 >> 0 48 15 52 13 19 8 0 => Jarak =
156.02902983998507, dengan Demand = 90.0
Rute ke- 7 >> 0 59 27 34 4 0 => Jarak = 133.91215038673153,
dengan Demand = 90.0
Rute ke- 8 >> 0 26 67 39 72 10 9 0 => Jarak =
147.23393876832765, dengan Demand = 120.0
Rute ke- 9 >> 0 36 60 20 69 0 => Jarak = 151.19687918002188,
dengan Demand = 55.0
Rute ke- 10 >> 0 62 41 64 43 42 0 => Jarak =
158.18235019769938, dengan Demand = 90.0
Rute ke- 11 >> 0 70 71 21 47 30 0 => Jarak =
149.52761055605893, dengan Demand = 83.0
Rute ke- 12 >> 0 33 28 37 57 45 0 => Jarak =
151.07506828650966, dengan Demand = 105.0
Rute ke- 13 >> 0 66 14 54 35 7 0 => Jarak =
152.95192040279994, dengan Demand = 109.0
Rute ke- 14 >> 0 63 16 0 => Jarak = 67.85993014424372, dengan
Demand = 30.0
======= Total Jarak = 1435.5867479994604
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 53 1 68 2 0 => Jarak = 152.0324394875212,
dengan Demand = 76.0
Rute ke-1>> 0 51 73 43 41 64 0 => Jarak = 148.11423210826908,
dengan Demand = 79.0
Rute ke-2>> 0 59 18 0 => Jarak = 154.82662617071, dengan
Demand = 37.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 22 - 2
Rute ke-3>> 0 32 6 40 12 0 => Jarak = 117.61898779456172,
dengan Demand = 96.0
Rute ke-4>> 0 65 38 45 47 0 => Jarak = 154.6733843737332,
dengan Demand = 73.0
Rute ke-5>> 0 55 25 11 0 => Jarak = 148.81386642020865,
dengan Demand = 58.0
Rute ke-6>> 0 17 14 54 30 0 => Jarak = 139.2255739861263,
dengan Demand = 89.0
Rute ke-7>> 0 50 16 72 39 0 => Jarak = 145.70782493103027,
dengan Demand = 58.0
Rute ke-8>> 0 4 37 22 0 => Jarak = 126.54365319520937, dengan
Demand = 56.0
Rute ke-9>> 0 27 57 49 3 0 => Jarak = 153.54016140341452,
dengan Demand = 47.0
Rute ke-10>> 0 46 33 42 0 => Jarak = 124.02879832619084,
dengan Demand = 65.0
Rute ke-11>> 0 70 71 61 21 0 => Jarak = 149.79339216913021,
dengan Demand = 57.0
Rute ke-12>> 0 69 56 0 => Jarak = 143.27937870965852, dengan
Demand = 34.0
Rute ke-13>> 0 52 13 63 23 0 => Jarak = 145.586965444405,
dengan Demand = 48.0
Rute ke-14>> 0 9 75 5 28 0 => Jarak = 157.26060455936542,
dengan Demand = 99.0
Rute ke-15>> 0 44 8 20 0 => Jarak = 154.41094548833786,
dengan Demand = 55.0
Rute ke-16>> 0 24 26 67 7 34 0 => Jarak = 152.3590147648628,
dengan Demand = 109.0
Rute ke-17>> 0 10 48 15 0 => Jarak = 143.226341608853, dengan
Demand = 54.0
Rute ke-18>> 0 62 29 35 19 0 => Jarak = 140.04047123259608,
dengan Demand = 56.0
Rute ke-19>> 0 66 31 0 => Jarak = 119.64918537047762, dengan
Demand = 62.0
Rute ke-20>> 0 58 60 36 0 => Jarak = 155.69397935109555,
dengan Demand = 46.0
Rute ke-21>> 0 74 0 => Jarak = 50.0, dengan Demand = 10.0
======= TOTAL JARAK SEMUA RUTE = 2326.425826895757
=========== Solusi Terbaik ==========
Rute ke-0>> 0 53 1 68 2 0 => Jarak = 152.0324394875212,
dengan Demand = 76.0
Rute ke-1>> 0 51 73 43 41 64 0 => Jarak = 148.11423210826908,
dengan Demand = 79.0
Rute ke-2>> 0 59 18 0 => Jarak = 154.82662617071, dengan
Demand = 37.0
Rute ke-3>> 0 32 6 40 12 0 => Jarak = 117.61898779456172,
dengan Demand = 96.0
Rute ke-4>> 0 65 38 45 47 0 => Jarak = 154.6733843737332,
dengan Demand = 73.0
Rute ke-5>> 0 55 25 11 0 => Jarak = 148.81386642020865,
dengan Demand = 58.0
Rute ke-6>> 0 17 14 54 30 0 => Jarak = 139.2255739861263,
dengan Demand = 89.0
Rute ke-7>> 0 50 16 72 39 0 => Jarak = 145.70782493103027,
dengan Demand = 58.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 22 - 3
Rute ke-8>> 0 4 37 22 0 => Jarak = 126.54365319520937, dengan
Demand = 56.0
Rute ke-9>> 0 27 57 49 3 0 => Jarak = 153.54016140341452,
dengan Demand = 47.0
Rute ke-10>> 0 46 33 42 0 => Jarak = 124.02879832619084,
dengan Demand = 65.0
Rute ke-11>> 0 70 71 61 21 0 => Jarak = 149.79339216913021,
dengan Demand = 57.0
Rute ke-12>> 0 69 56 0 => Jarak = 143.27937870965852, dengan
Demand = 34.0
Rute ke-13>> 0 52 13 63 23 0 => Jarak = 145.586965444405,
dengan Demand = 48.0
Rute ke-14>> 0 9 75 5 28 0 => Jarak = 157.26060455936542,
dengan Demand = 99.0
Rute ke-15>> 0 44 8 20 0 => Jarak = 154.41094548833786,
dengan Demand = 55.0
Rute ke-16>> 0 24 26 67 7 34 0 => Jarak = 152.3590147648628,
dengan Demand = 109.0
Rute ke-17>> 0 10 48 15 0 => Jarak = 143.226341608853, dengan
Demand = 54.0
Rute ke-18>> 0 62 29 35 19 0 => Jarak = 140.04047123259608,
dengan Demand = 56.0
Rute ke-19>> 0 66 31 0 => Jarak = 119.64918537047762, dengan
Demand = 62.0
Rute ke-20>> 0 58 60 36 0 => Jarak = 155.69397935109555,
dengan Demand = 46.0
Rute ke-21>> 0 74 0 => Jarak = 50.0, dengan Demand = 10.0
======= TOTAL JARAK SEMUA RUTE = 2326.425826895757
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 62 41 64 43 42 0 => Jarak = 158.18235019769938,
dengan Demand = 90.0
Rute ke-1>> 0 75 5 29 2 73 1 68 0 => Jarak =
159.68107902266414, dengan Demand = 114.0
Rute ke-2>> 0 23 56 22 61 74 0 => Jarak = 157.30624452147168,
dengan Demand = 69.0
Rute ke-3>> 0 66 14 54 35 7 0 => Jarak = 152.95192040279994,
dengan Demand = 109.0
Rute ke-4>> 0 48 15 52 13 19 8 0 => Jarak =
156.02902983998507, dengan Demand = 90.0
Rute ke-5>> 0 3 49 55 25 32 0 => Jarak = 156.61726978120464,
dengan Demand = 65.0
Rute ke-6>> 0 26 67 39 72 10 9 0 => Jarak =
147.23393876832765, dengan Demand = 120.0
Rute ke-7>> 0 36 60 20 69 0 => Jarak = 151.19687918002188,
dengan Demand = 55.0
Rute ke-8>> 0 46 53 11 65 38 58 0 => Jarak =
135.99512685291734, dengan Demand = 140.0
Rute ke-9>> 0 17 51 6 40 12 50 0 => Jarak =
152.5435186202567, dengan Demand = 122.0
Rute ke-10>> 0 70 71 21 47 30 0 => Jarak =
149.52761055605893, dengan Demand = 83.0
Rute ke-11>> 0 44 24 18 31 0 => Jarak = 155.47463143856868,
dengan Demand = 82.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 22 - 4
Rute ke-12>> 0 33 28 37 57 45 0 => Jarak =
151.07506828650966, dengan Demand = 105.0
Rute ke-13>> 0 59 27 34 4 0 => Jarak = 133.91215038673153,
dengan Demand = 90.0
Rute ke-14>> 0 63 16 0 => Jarak = 67.85993014424372, dengan
Demand = 30.0
======= TOTAL JARAK SEMUA RUTE = 1435.5867479994604
=========== Solusi Terbaik ==========
Rute ke-0>> 0 46 53 11 65 38 58 0 => Jarak =
135.99512685291734, dengan Demand = 140.0
Rute ke-1>> 0 3 49 55 25 32 0 => Jarak = 156.61726978120464,
dengan Demand = 65.0
Rute ke-2>> 0 17 51 6 40 12 50 0 => Jarak =
152.5435186202567, dengan Demand = 122.0
Rute ke-3>> 0 44 24 18 31 0 => Jarak = 155.47463143856868,
dengan Demand = 82.0
Rute ke-4>> 0 23 56 22 61 74 0 => Jarak = 157.30624452147168,
dengan Demand = 69.0
Rute ke-5>> 0 75 5 29 2 73 1 68 0 => Jarak =
159.68107902266414, dengan Demand = 114.0
Rute ke-6>> 0 48 15 52 13 19 8 0 => Jarak =
156.02902983998507, dengan Demand = 90.0
Rute ke-7>> 0 59 27 34 4 0 => Jarak = 133.91215038673153,
dengan Demand = 90.0
Rute ke-8>> 0 26 67 39 72 10 9 0 => Jarak =
147.23393876832765, dengan Demand = 120.0
Rute ke-9>> 0 36 60 20 69 0 => Jarak = 151.19687918002188,
dengan Demand = 55.0
Rute ke-10>> 0 62 41 64 43 42 0 => Jarak =
158.18235019769938, dengan Demand = 90.0
Rute ke-11>> 0 70 71 21 47 30 0 => Jarak =
149.52761055605893, dengan Demand = 83.0
Rute ke-12>> 0 33 28 37 57 45 0 => Jarak =
151.07506828650966, dengan Demand = 105.0
Rute ke-13>> 0 66 14 54 35 7 0 => Jarak = 152.95192040279994,
dengan Demand = 109.0
Rute ke-14>> 0 63 16 0 => Jarak = 67.85993014424372, dengan
Demand = 30.0
======= TOTAL JARAK SEMUA RUTE = 1435.5867479994604
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 23 - 1
Lampiran 23 : Hasil Implementasi Program pada Permasalahan P08
Parameter inputan Jumlah semut / kendaraan = 20 Jumlah kota = 100 Jarak maksimal kendaraan = 230 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 10
Output ======= Solusi =========
Rute ke- 0 >> 0 58 87 43 15 25 39 2 6 0 => Jarak =
224.05009541094032, dengan Demand = 106.0
Rute ke- 1 >> 0 36 47 46 48 86 59 37 92 0 => Jarak =
228.85136177928848, dengan Demand = 142.0
Rute ke- 2 >> 0 97 96 91 42 61 99 40 12 89 0 => Jarak =
228.32864854825488, dengan Demand = 94.0
Rute ke- 3 >> 0 57 38 14 23 67 55 0 => Jarak =
223.4812883384822, dengan Demand = 99.0
Rute ke- 4 >> 0 80 54 3 79 34 78 35 71 81 33 0 => Jarak =
226.1080433680456, dengan Demand = 137.0
Rute ke- 5 >> 0 45 11 63 8 18 52 27 0 => Jarak =
200.2953623681263, dengan Demand = 84.0
Rute ke- 6 >> 0 70 20 9 30 65 32 90 0 => Jarak =
222.00125775378714, dengan Demand = 97.0
Rute ke- 7 >> 0 50 31 68 22 56 72 21 26 53 0 => Jarak =
225.39159126893074, dengan Demand = 167.0
Rute ke- 8 >> 0 29 24 75 4 41 28 1 0 => Jarak =
222.19798418450728, dengan Demand = 80.0
Rute ke- 9 >> 0 73 74 94 17 84 83 16 85 95 0 => Jarak =
220.88844660388028, dengan Demand = 144.0
Rute ke- 10 >> 0 13 98 93 100 44 49 64 0 => Jarak =
223.58729811832038, dengan Demand = 129.0
Rute ke- 11 >> 0 7 19 88 62 10 82 60 5 0 => Jarak =
196.7341682348373, dengan Demand = 111.0
Rute ke- 12 >> 0 51 66 69 77 76 0 => Jarak =
156.82947013281205, dengan Demand = 68.0
======= Total Jarak = 1798.7450161102124
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 58 87 1 69 88 90 62 0 => Jarak =
193.2479883134568, dengan Demand = 91.0
Rute ke-1>> 0 80 54 55 34 12 84 0 => Jarak =
218.24064300504708, dengan Demand = 66.0
Rute ke-2>> 0 36 37 50 89 99 0 => Jarak = 225.9439564277886,
dengan Demand = 50.0
Rute ke-3>> 0 83 16 72 2 32 0 => Jarak = 223.81645501695107,
dengan Demand = 85.0
Rute ke-4>> 0 57 21 26 44 13 75 0 => Jarak =
219.37598680948366, dengan Demand = 94.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 23 - 2
Rute ke-5>> 0 76 78 3 79 52 63 8 0 => Jarak =
227.82514220939134, dengan Demand = 80.0
Rute ke-6>> 0 45 11 40 94 92 93 0 => Jarak =
209.55578422319334, dengan Demand = 88.0
Rute ke-7>> 0 48 47 46 15 74 0 => Jarak = 188.00405980151453,
dengan Demand = 80.0
Rute ke-8>> 0 53 64 66 60 0 => Jarak = 198.1725660280125,
dengan Demand = 51.0
Rute ke-9>> 0 38 95 5 85 29 0 => Jarak = 221.56966463780205,
dengan Demand = 112.0
Rute ke-10>> 0 70 65 19 10 82 0 => Jarak = 211.8979153634176,
dengan Demand = 74.0
Rute ke-11>> 0 28 49 98 56 0 => Jarak = 206.22115011468546,
dengan Demand = 62.0
Rute ke-12>> 0 25 39 35 71 81 24 0 => Jarak =
228.38108866431563, dengan Demand = 89.0
Rute ke-13>> 0 6 51 14 77 0 => Jarak = 216.90691612832012,
dengan Demand = 47.0
Rute ke-14>> 0 27 30 68 31 4 41 0 => Jarak =
227.44080699036107, dengan Demand = 124.0
Rute ke-15>> 0 7 73 23 22 9 0 => Jarak = 222.4825917684935,
dengan Demand = 77.0
Rute ke-16>> 0 67 17 61 18 0 => Jarak = 193.63348063048878,
dengan Demand = 52.0
Rute ke-17>> 0 97 43 100 96 91 42 0 => Jarak =
168.50266454468806, dengan Demand = 53.0
Rute ke-18>> 0 33 20 59 86 0 => Jarak = 180.9141638462798,
dengan Demand = 83.0
======= TOTAL JARAK SEMUA RUTE = 2982.1330245236904
=========== Solusi Terbaik ==========
Rute ke-0>> 0 58 87 1 69 88 90 62 0 => Jarak =
193.2479883134568, dengan Demand = 91.0
Rute ke-1>> 0 80 54 55 34 12 84 0 => Jarak =
218.24064300504708, dengan Demand = 66.0
Rute ke-2>> 0 36 37 50 89 99 0 => Jarak = 225.9439564277886,
dengan Demand = 50.0
Rute ke-3>> 0 83 16 72 2 32 0 => Jarak = 223.81645501695107,
dengan Demand = 85.0
Rute ke-4>> 0 57 21 26 44 13 75 0 => Jarak =
219.37598680948366, dengan Demand = 94.0
Rute ke-5>> 0 76 78 3 79 52 63 8 0 => Jarak =
227.82514220939134, dengan Demand = 80.0
Rute ke-6>> 0 45 11 40 94 92 93 0 => Jarak =
209.55578422319334, dengan Demand = 88.0
Rute ke-7>> 0 48 47 46 15 74 0 => Jarak = 188.00405980151453,
dengan Demand = 80.0
Rute ke-8>> 0 53 64 66 60 0 => Jarak = 198.1725660280125,
dengan Demand = 51.0
Rute ke-9>> 0 38 95 5 85 29 0 => Jarak = 221.56966463780205,
dengan Demand = 112.0
Rute ke-10>> 0 70 65 19 10 82 0 => Jarak = 211.8979153634176,
dengan Demand = 74.0
Rute ke-11>> 0 28 49 98 56 0 => Jarak = 206.22115011468546,
dengan Demand = 62.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 23 - 3
Rute ke-12>> 0 25 39 35 71 81 24 0 => Jarak =
228.38108866431563, dengan Demand = 89.0
Rute ke-13>> 0 6 51 14 77 0 => Jarak = 216.90691612832012,
dengan Demand = 47.0
Rute ke-14>> 0 27 30 68 31 4 41 0 => Jarak =
227.44080699036107, dengan Demand = 124.0
Rute ke-15>> 0 7 73 23 22 9 0 => Jarak = 222.4825917684935,
dengan Demand = 77.0
Rute ke-16>> 0 67 17 61 18 0 => Jarak = 193.63348063048878,
dengan Demand = 52.0
Rute ke-17>> 0 97 43 100 96 91 42 0 => Jarak =
168.50266454468806, dengan Demand = 53.0
Rute ke-18>> 0 33 20 59 86 0 => Jarak = 180.9141638462798,
dengan Demand = 83.0
======= TOTAL JARAK SEMUA RUTE = 2982.1330245236904
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 97 96 91 42 61 99 40 12 89 0 => Jarak =
228.32864854825488, dengan Demand = 94.0
Rute ke-1>> 0 73 74 94 17 84 83 16 85 95 0 => Jarak =
220.88844660388028, dengan Demand = 144.0
Rute ke-2>> 0 70 20 9 30 65 32 90 0 => Jarak =
222.00125775378714, dengan Demand = 97.0
Rute ke-3>> 0 58 87 43 15 25 39 2 6 0 => Jarak =
224.05009541094032, dengan Demand = 106.0
Rute ke-4>> 0 13 98 93 100 44 49 64 0 => Jarak =
223.58729811832038, dengan Demand = 129.0
Rute ke-5>> 0 80 54 3 79 34 78 35 71 81 33 0 => Jarak =
226.1080433680456, dengan Demand = 137.0
Rute ke-6>> 0 29 24 75 4 41 28 1 0 => Jarak =
222.19798418450728, dengan Demand = 80.0
Rute ke-7>> 0 45 11 63 8 18 52 27 0 => Jarak =
200.2953623681263, dengan Demand = 84.0
Rute ke-8>> 0 57 38 14 23 67 55 0 => Jarak =
223.4812883384822, dengan Demand = 99.0
Rute ke-9>> 0 51 66 69 77 76 88 62 0 => Jarak =
218.07651958658312, dengan Demand = 96.0
Rute ke-10>> 0 7 19 10 82 60 5 47 0 => Jarak =
215.9991457459867, dengan Demand = 110.0
Rute ke-11>> 0 50 31 68 22 56 72 21 26 53 0 => Jarak =
225.39159126893074, dengan Demand = 167.0
Rute ke-12>> 0 36 37 92 59 86 0 => Jarak =
193.71149802678482, dengan Demand = 78.0
Rute ke-13>> 0 48 46 0 => Jarak = 94.97587316157171, dengan
Demand = 37.0
======= TOTAL JARAK SEMUA RUTE = 1939.0930524842015
=========== Solusi Terbaik ==========
Rute ke-0>> 0 58 87 43 15 25 39 2 6 0 => Jarak =
224.05009541094032, dengan Demand = 106.0
Rute ke-1>> 0 36 47 46 48 86 59 37 92 0 => Jarak =
228.85136177928848, dengan Demand = 142.0
Rute ke-2>> 0 97 96 91 42 61 99 40 12 89 0 => Jarak =
228.32864854825488, dengan Demand = 94.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 23 - 4
Rute ke-3>> 0 57 38 14 23 67 55 0 => Jarak =
223.4812883384822, dengan Demand = 99.0
Rute ke-4>> 0 80 54 3 79 34 78 35 71 81 33 0 => Jarak =
226.1080433680456, dengan Demand = 137.0
Rute ke-5>> 0 45 11 63 8 18 52 27 0 => Jarak =
200.2953623681263, dengan Demand = 84.0
Rute ke-6>> 0 70 20 9 30 65 32 90 0 => Jarak =
222.00125775378714, dengan Demand = 97.0
Rute ke-7>> 0 50 31 68 22 56 72 21 26 53 0 => Jarak =
225.39159126893074, dengan Demand = 167.0
Rute ke-8>> 0 29 24 75 4 41 28 1 0 => Jarak =
222.19798418450728, dengan Demand = 80.0
Rute ke-9>> 0 73 74 94 17 84 83 16 85 95 0 => Jarak =
220.88844660388028, dengan Demand = 144.0
Rute ke-10>> 0 13 98 93 100 44 49 64 0 => Jarak =
223.58729811832038, dengan Demand = 129.0
Rute ke-11>> 0 7 19 88 62 10 82 60 5 0 => Jarak =
196.7341682348373, dengan Demand = 111.0
Rute ke-12>> 0 51 66 69 77 76 0 => Jarak =
156.82947013281205, dengan Demand = 68.0
======= TOTAL JARAK SEMUA RUTE = 1798.7450161102124
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 1
Lampiran 24 : Hasil Implementasi Program pada Permasalahan P09 Parameter inputan Jumlah semut / kendaraan = 33 Jumlah kota = 150 Jarak maksimal kendaraan = 200 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 500 Konstanta Q = 1000 Service duration = 10
Output ======= Solusi =========
Rute ke- 0 >> 0 119 98 48 84 2 127 0 => Jarak =
193.04696892686718, dengan Demand = 117.0
Rute ke- 1 >> 0 148 55 110 111 137 107 54 0 => Jarak =
190.4123266350988, dengan Demand = 104.0
Rute ke- 2 >> 0 144 56 139 78 117 16 0 => Jarak =
193.69445033647156, dengan Demand = 101.0
Rute ke- 3 >> 0 145 133 14 25 96 24 60 51 0 => Jarak =
196.2724818155103, dengan Demand = 117.0
Rute ke- 4 >> 0 140 83 22 80 82 101 0 => Jarak =
189.59063014506583, dengan Demand = 76.0
Rute ke- 5 >> 0 66 64 150 135 88 40 44 0 => Jarak =
191.7858844326203, dengan Demand = 136.0
Rute ke- 6 >> 0 20 115 120 1 27 18 0 => Jarak =
194.1466603305492, dengan Demand = 116.0
Rute ke- 7 >> 0 49 53 74 130 34 118 30 10 0 => Jarak =
193.3700145088056, dengan Demand = 126.0
Rute ke- 8 >> 0 23 112 28 70 31 3 59 0 => Jarak =
192.75464602017593, dengan Demand = 101.0
Rute ke- 9 >> 0 72 71 17 109 146 136 142 0 => Jarak =
191.3676288399679, dengan Demand = 108.0
Rute ke- 10 >> 0 4 143 43 57 61 69 0 => Jarak =
196.98573802662116, dengan Demand = 76.0
Rute ke- 11 >> 0 52 138 12 15 91 33 0 => Jarak =
194.64685913540112, dengan Demand = 83.0
Rute ke- 12 >> 0 6 73 39 105 123 122 0 => Jarak =
197.75005634286302, dengan Demand = 94.0
Rute ke- 13 >> 0 108 147 93 42 19 92 5 103 0 => Jarak =
177.83627881254466, dengan Demand = 99.0
Rute ke- 14 >> 0 126 76 29 131 100 32 81 11 0 => Jarak =
190.89436277840787, dengan Demand = 133.0
Rute ke- 15 >> 0 128 50 129 62 9 38 77 0 => Jarak =
168.97489841380633, dengan Demand = 97.0
Rute ke- 16 >> 0 85 36 116 121 35 79 21 0 => Jarak =
197.08951225154118, dengan Demand = 88.0
Rute ke- 17 >> 0 75 89 106 124 104 45 37 0 => Jarak =
199.86916915554747, dengan Demand = 88.0
Rute ke- 18 >> 0 8 113 114 46 102 47 0 => Jarak =
179.4322382049065, dengan Demand = 81.0
Rute ke- 19 >> 0 125 65 41 134 141 94 0 => Jarak =
196.0118955673806, dengan Demand = 79.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 2
Rute ke- 20 >> 0 90 87 149 63 13 67 95 58 0 => Jarak =
198.5599351192529, dengan Demand = 99.0
Rute ke- 21 >> 0 97 7 26 99 86 132 68 0 => Jarak =
199.53011868019837, dengan Demand = 116.0
======= Total Jarak = 2724.0227544796026
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 140 83 79 143 0 => Jarak = 183.38696652413188,
dengan Demand = 45.0
Rute ke-1>> 0 96 24 60 71 0 => Jarak = 166.83657317821124,
dengan Demand = 38.0
Rute ke-2>> 0 75 119 27 18 110 14 0 => Jarak =
193.83443308559418, dengan Demand = 92.0
Rute ke-3>> 0 6 73 91 33 32 0 => Jarak = 188.9089917771398,
dengan Demand = 84.0
Rute ke-4>> 0 82 7 26 1 123 0 => Jarak = 188.83971650527005,
dengan Demand = 65.0
Rute ke-5>> 0 52 138 74 50 0 => Jarak = 166.99728433857248,
dengan Demand = 29.0
Rute ke-6>> 0 86 5 129 128 0 => Jarak = 191.2954970264001,
dengan Demand = 52.0
Rute ke-7>> 0 90 72 133 87 44 46 0 => Jarak =
186.39262319293326, dengan Demand = 67.0
Rute ke-8>> 0 51 144 56 137 107 54 10 0 => Jarak =
184.33628578592467, dengan Demand = 97.0
Rute ke-9>> 0 67 139 55 45 0 => Jarak = 160.6428682759795,
dengan Demand = 53.0
Rute ke-10>> 0 124 136 142 103 9 62 0 => Jarak =
195.7864373919003, dengan Demand = 89.0
Rute ke-11>> 0 85 48 132 0 => Jarak = 146.4603905203903,
dengan Demand = 41.0
Rute ke-12>> 0 12 15 80 49 53 0 => Jarak = 189.6747997737787,
dengan Demand = 91.0
Rute ke-13>> 0 148 68 41 38 2 0 => Jarak =
189.08300858397183, dengan Demand = 94.0
Rute ke-14>> 0 47 149 22 116 121 3 0 => Jarak =
183.18053899631929, dengan Demand = 98.0
Rute ke-15>> 0 125 94 111 146 65 0 => Jarak =
190.21651968695323, dengan Demand = 68.0
Rute ke-16>> 0 17 147 93 42 112 0 => Jarak =
166.2302685857656, dengan Demand = 54.0
Rute ke-17>> 0 28 70 31 108 4 0 => Jarak =
171.26202605943567, dengan Demand = 61.0
Rute ke-18>> 0 145 35 130 34 0 => Jarak = 167.78805095667707,
dengan Demand = 69.0
Rute ke-19>> 0 61 89 78 77 0 => Jarak = 183.0501617353475,
dengan Demand = 75.0
Rute ke-20>> 0 97 57 99 0 => Jarak = 144.35694439293323,
dengan Demand = 62.0
Rute ke-21>> 0 23 113 114 101 8 0 => Jarak =
194.45237063625194, dengan Demand = 68.0
Rute ke-22>> 0 20 115 120 118 30 0 => Jarak =
196.13641301702887, dengan Demand = 108.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 3
Rute ke-23>> 0 126 76 104 105 39 11 0 => Jarak =
158.0567279375131, dengan Demand = 83.0
Rute ke-24>> 0 102 63 13 98 95 58 0 => Jarak =
191.02666134728162, dengan Demand = 116.0
Rute ke-25>> 0 106 81 16 131 0 => Jarak = 179.49144426972697,
dengan Demand = 74.0
Rute ke-26>> 0 127 69 37 100 0 => Jarak = 189.08167101229043,
dengan Demand = 53.0
Rute ke-27>> 0 135 122 25 134 141 0 => Jarak =
196.5717498548933, dengan Demand = 102.0
Rute ke-28>> 0 59 19 92 0 => Jarak = 161.5878178095931,
dengan Demand = 30.0
Rute ke-29>> 0 66 64 40 109 21 0 => Jarak =
197.85849585001802, dengan Demand = 82.0
Rute ke-30>> 0 84 29 88 0 => Jarak = 186.63095668545063,
dengan Demand = 36.0
Rute ke-31>> 0 150 36 0 => Jarak = 156.1017659439609, dengan
Demand = 23.0
Rute ke-32>> 0 43 117 0 => Jarak = 191.1749303320912, dengan
Demand = 36.0
======= TOTAL JARAK SEMUA RUTE = 4436.73139106973
=========== Solusi Terbaik ==========
Rute ke-0>> 0 140 83 79 143 0 => Jarak = 183.38696652413188,
dengan Demand = 45.0
Rute ke-1>> 0 96 24 60 71 0 => Jarak = 166.83657317821124,
dengan Demand = 38.0
Rute ke-2>> 0 75 119 27 18 110 14 0 => Jarak =
193.83443308559418, dengan Demand = 92.0
Rute ke-3>> 0 6 73 91 33 32 0 => Jarak = 188.9089917771398,
dengan Demand = 84.0
Rute ke-4>> 0 82 7 26 1 123 0 => Jarak = 188.83971650527005,
dengan Demand = 65.0
Rute ke-5>> 0 52 138 74 50 0 => Jarak = 166.99728433857248,
dengan Demand = 29.0
Rute ke-6>> 0 86 5 129 128 0 => Jarak = 191.2954970264001,
dengan Demand = 52.0
Rute ke-7>> 0 90 72 133 87 44 46 0 => Jarak =
186.39262319293326, dengan Demand = 67.0
Rute ke-8>> 0 51 144 56 137 107 54 10 0 => Jarak =
184.33628578592467, dengan Demand = 97.0
Rute ke-9>> 0 67 139 55 45 0 => Jarak = 160.6428682759795,
dengan Demand = 53.0
Rute ke-10>> 0 124 136 142 103 9 62 0 => Jarak =
195.7864373919003, dengan Demand = 89.0
Rute ke-11>> 0 85 48 132 0 => Jarak = 146.4603905203903,
dengan Demand = 41.0
Rute ke-12>> 0 12 15 80 49 53 0 => Jarak = 189.6747997737787,
dengan Demand = 91.0
Rute ke-13>> 0 148 68 41 38 2 0 => Jarak =
189.08300858397183, dengan Demand = 94.0
Rute ke-14>> 0 47 149 22 116 121 3 0 => Jarak =
183.18053899631929, dengan Demand = 98.0
Rute ke-15>> 0 125 94 111 146 65 0 => Jarak =
190.21651968695323, dengan Demand = 68.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 4
Rute ke-16>> 0 17 147 93 42 112 0 => Jarak =
166.2302685857656, dengan Demand = 54.0
Rute ke-17>> 0 28 70 31 108 4 0 => Jarak =
171.26202605943567, dengan Demand = 61.0
Rute ke-18>> 0 145 35 130 34 0 => Jarak = 167.78805095667707,
dengan Demand = 69.0
Rute ke-19>> 0 61 89 78 77 0 => Jarak = 183.0501617353475,
dengan Demand = 75.0
Rute ke-20>> 0 97 57 99 0 => Jarak = 144.35694439293323,
dengan Demand = 62.0
Rute ke-21>> 0 23 113 114 101 8 0 => Jarak =
194.45237063625194, dengan Demand = 68.0
Rute ke-22>> 0 20 115 120 118 30 0 => Jarak =
196.13641301702887, dengan Demand = 108.0
Rute ke-23>> 0 126 76 104 105 39 11 0 => Jarak =
158.0567279375131, dengan Demand = 83.0
Rute ke-24>> 0 102 63 13 98 95 58 0 => Jarak =
191.02666134728162, dengan Demand = 116.0
Rute ke-25>> 0 106 81 16 131 0 => Jarak = 179.49144426972697,
dengan Demand = 74.0
Rute ke-26>> 0 127 69 37 100 0 => Jarak = 189.08167101229043,
dengan Demand = 53.0
Rute ke-27>> 0 135 122 25 134 141 0 => Jarak =
196.5717498548933, dengan Demand = 102.0
Rute ke-28>> 0 59 19 92 0 => Jarak = 161.5878178095931,
dengan Demand = 30.0
Rute ke-29>> 0 66 64 40 109 21 0 => Jarak =
197.85849585001802, dengan Demand = 82.0
Rute ke-30>> 0 84 29 88 0 => Jarak = 186.63095668545063,
dengan Demand = 36.0
Rute ke-31>> 0 150 36 0 => Jarak = 156.1017659439609, dengan
Demand = 23.0
Rute ke-32>> 0 43 117 0 => Jarak = 191.1749303320912, dengan
Demand = 36.0
======= TOTAL JARAK SEMUA RUTE = 4436.73139106973
...
======== ITERASI KE- 499 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 90 87 149 63 13 67 95 58 0 => Jarak =
198.5599351192529, dengan Demand = 99.0
Rute ke-1>> 0 52 138 12 15 91 33 0 => Jarak =
194.64685913540112, dengan Demand = 83.0
Rute ke-2>> 0 108 147 93 42 19 92 5 103 0 => Jarak =
177.83627881254466, dengan Demand = 99.0
Rute ke-3>> 0 140 83 22 80 82 101 0 => Jarak =
189.59063014506583, dengan Demand = 76.0
Rute ke-4>> 0 49 53 74 130 34 118 30 10 0 => Jarak =
193.3700145088056, dengan Demand = 126.0
Rute ke-5>> 0 125 65 41 134 141 94 0 => Jarak =
196.0118955673806, dengan Demand = 79.0
Rute ke-6>> 0 85 36 116 121 35 79 21 0 => Jarak =
197.08951225154118, dengan Demand = 88.0
Rute ke-7>> 0 97 7 26 99 86 132 68 0 => Jarak =
199.53011868019837, dengan Demand = 116.0
Rute ke-8>> 0 144 56 139 78 117 16 0 => Jarak =
193.69445033647156, dengan Demand = 101.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 5
Rute ke-9>> 0 6 73 39 105 123 122 0 => Jarak =
197.75005634286302, dengan Demand = 94.0
Rute ke-10>> 0 119 98 48 84 2 127 0 => Jarak =
193.04696892686718, dengan Demand = 117.0
Rute ke-11>> 0 8 113 114 46 102 47 0 => Jarak =
179.4322382049065, dengan Demand = 81.0
Rute ke-12>> 0 66 64 150 135 88 40 44 0 => Jarak =
191.7858844326203, dengan Demand = 136.0
Rute ke-13>> 0 72 71 17 109 146 136 142 0 => Jarak =
191.3676288399679, dengan Demand = 108.0
Rute ke-14>> 0 4 143 43 57 61 69 0 => Jarak =
196.98573802662116, dengan Demand = 76.0
Rute ke-15>> 0 23 112 28 70 31 3 59 0 => Jarak =
192.75464602017593, dengan Demand = 101.0
Rute ke-16>> 0 148 55 110 111 137 107 54 0 => Jarak =
190.4123266350988, dengan Demand = 104.0
Rute ke-17>> 0 75 89 106 124 104 45 37 0 => Jarak =
199.86916915554747, dengan Demand = 88.0
Rute ke-18>> 0 126 76 29 131 100 32 81 11 0 => Jarak =
190.89436277840787, dengan Demand = 133.0
Rute ke-19>> 0 145 133 14 25 96 24 60 51 0 => Jarak =
196.2724818155103, dengan Demand = 117.0
Rute ke-20>> 0 20 115 120 1 27 18 0 => Jarak =
194.1466603305492, dengan Demand = 116.0
Rute ke-21>> 0 128 50 129 62 9 38 77 0 => Jarak =
168.97489841380633, dengan Demand = 97.0
======= TOTAL JARAK SEMUA RUTE = 2724.0227544796035
=========== Solusi Terbaik ==========
Rute ke-0>> 0 119 98 48 84 2 127 0 => Jarak =
193.04696892686718, dengan Demand = 117.0
Rute ke-1>> 0 148 55 110 111 137 107 54 0 => Jarak =
190.4123266350988, dengan Demand = 104.0
Rute ke-2>> 0 144 56 139 78 117 16 0 => Jarak =
193.69445033647156, dengan Demand = 101.0
Rute ke-3>> 0 145 133 14 25 96 24 60 51 0 => Jarak =
196.2724818155103, dengan Demand = 117.0
Rute ke-4>> 0 140 83 22 80 82 101 0 => Jarak =
189.59063014506583, dengan Demand = 76.0
Rute ke-5>> 0 66 64 150 135 88 40 44 0 => Jarak =
191.7858844326203, dengan Demand = 136.0
Rute ke-6>> 0 20 115 120 1 27 18 0 => Jarak =
194.1466603305492, dengan Demand = 116.0
Rute ke-7>> 0 49 53 74 130 34 118 30 10 0 => Jarak =
193.3700145088056, dengan Demand = 126.0
Rute ke-8>> 0 23 112 28 70 31 3 59 0 => Jarak =
192.75464602017593, dengan Demand = 101.0
Rute ke-9>> 0 72 71 17 109 146 136 142 0 => Jarak =
191.3676288399679, dengan Demand = 108.0
Rute ke-10>> 0 4 143 43 57 61 69 0 => Jarak =
196.98573802662116, dengan Demand = 76.0
Rute ke-11>> 0 52 138 12 15 91 33 0 => Jarak =
194.64685913540112, dengan Demand = 83.0
Rute ke-12>> 0 6 73 39 105 123 122 0 => Jarak =
197.75005634286302, dengan Demand = 94.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 24 - 6
Rute ke-13>> 0 108 147 93 42 19 92 5 103 0 => Jarak =
177.83627881254466, dengan Demand = 99.0
Rute ke-14>> 0 126 76 29 131 100 32 81 11 0 => Jarak =
190.89436277840787, dengan Demand = 133.0
Rute ke-15>> 0 128 50 129 62 9 38 77 0 => Jarak =
168.97489841380633, dengan Demand = 97.0
Rute ke-16>> 0 85 36 116 121 35 79 21 0 => Jarak =
197.08951225154118, dengan Demand = 88.0
Rute ke-17>> 0 75 89 106 124 104 45 37 0 => Jarak =
199.86916915554747, dengan Demand = 88.0
Rute ke-18>> 0 8 113 114 46 102 47 0 => Jarak =
179.4322382049065, dengan Demand = 81.0
Rute ke-19>> 0 125 65 41 134 141 94 0 => Jarak =
196.0118955673806, dengan Demand = 79.0
Rute ke-20>> 0 90 87 149 63 13 67 95 58 0 => Jarak =
198.5599351192529, dengan Demand = 99.0
Rute ke-21>> 0 97 7 26 99 86 132 68 0 => Jarak =
199.53011868019837, dengan Demand = 116.0
======= TOTAL JARAK SEMUA RUTE = 2724.0227544796026
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 1
Lampiran 25 : Hasil Implementasi Program pada Permasalahan P10 Parameter inputan Jumlah semut / kendaraan = 42 Jumlah kota = 199 Jarak maksimal kendaraan = 200 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 250 Konstanta Q = 1000 Service duration = 10
Output ======= Solusi =========
Rute ke- 0 >> 0 6 150 127 123 13 14 0 => Jarak =
197.46402192757654, dengan Demand = 91.0
Rute ke- 1 >> 0 64 105 165 80 55 0 => Jarak =
194.366220986916, dengan Demand = 64.0
Rute ke- 2 >> 0 30 54 50 40 77 100 60 0 => Jarak =
173.3188148201463, dengan Demand = 126.0
Rute ke- 3 >> 0 180 52 133 11 164 129 0 => Jarak =
195.17047798808028, dengan Demand = 134.0
Rute ke- 4 >> 0 53 143 115 89 36 155 0 => Jarak =
194.04691288580034, dengan Demand = 71.0
Rute ke- 5 >> 0 139 86 101 140 48 103 167 149 0 => Jarak =
188.10292008469864, dengan Demand = 118.0
Rute ke- 6 >> 0 98 153 196 158 184 33 12 0 => Jarak =
189.16650227418972, dengan Demand = 160.0
Rute ke- 7 >> 0 19 134 170 178 78 35 99 0 => Jarak =
182.44321762156744, dengan Demand = 87.0
Rute ke- 8 >> 0 151 34 25 75 9 57 0 => Jarak =
188.26430180984158, dengan Demand = 101.0
Rute ke- 9 >> 0 58 119 24 68 0 => Jarak = 195.48973373090718,
dengan Demand = 56.0
Rute ke- 10 >> 0 197 136 21 37 124 154 29 152 0 => Jarak =
186.16091827860183, dengan Demand = 95.0
Rute ke- 11 >> 0 183 62 192 43 41 191 1 198 190 0 => Jarak =
195.57933512724335, dengan Demand = 115.0
Rute ke- 12 >> 0 31 71 131 17 95 2 0 => Jarak =
189.87734980607647, dengan Demand = 107.0
Rute ke- 13 >> 0 92 161 74 189 0 => Jarak = 197.7910518746664,
dengan Demand = 61.0
Rute ke- 14 >> 0 59 122 114 42 90 113 96 0 => Jarak =
199.28524543046345, dengan Demand = 125.0
Rute ke- 15 >> 0 162 147 72 110 148 130 0 => Jarak =
193.19015216269665, dengan Demand = 131.0
Rute ke- 16 >> 0 177 81 169 97 118 146 0 => Jarak =
190.3735083707124, dengan Demand = 81.0
Rute ke- 17 >> 0 106 18 109 107 181 117 61 0 => Jarak =
184.97645535819436, dengan Demand = 100.0
Rute ke- 18 >> 0 3 56 10 85 108 69 132 0 => Jarak =
198.8733545283902, dengan Demand = 117.0
Rute ke- 19 >> 0 121 120 93 91 199 66 160 0 => Jarak =
192.4008703101428, dengan Demand = 91.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 2
Rute ke- 20 >> 0 157 137 185 141 193 104 188 0 => Jarak =
198.03523959506947, dengan Demand = 142.0
Rute ke- 21 >> 0 168 111 179 70 94 79 0 => Jarak =
193.24694595200583, dengan Demand = 68.0
Rute ke- 22 >> 0 82 138 15 174 171 76 0 => Jarak =
187.55433251097844, dengan Demand = 120.0
Rute ke- 23 >> 0 65 47 46 102 175 176 87 126 0 => Jarak =
194.44843611494386, dengan Demand = 132.0
Rute ke- 24 >> 0 195 16 28 156 83 128 4 0 => Jarak =
199.2731511838366, dengan Demand = 131.0
Rute ke- 25 >> 0 38 84 51 26 125 194 0 => Jarak =
188.42668000543827, dengan Demand = 126.0
Rute ke- 26 >> 0 5 45 88 20 166 173 172 0 => Jarak =
186.86860132877965, dengan Demand = 120.0
Rute ke- 27 >> 0 159 116 44 63 144 145 0 => Jarak =
179.0264378691034, dengan Demand = 60.0
Rute ke- 28 >> 0 22 23 67 142 186 0 => Jarak =
167.58346345276132, dengan Demand = 92.0
Rute ke- 29 >> 0 112 163 39 187 32 0 => Jarak =
173.24312534273878, dengan Demand = 85.0
Rute ke- 30 >> 0 135 49 182 73 7 0 => Jarak =
197.21893295391504, dengan Demand = 46.0
Rute ke- 31 >> 0 8 27 0 => Jarak = 73.38566416949868, dengan
Demand = 33.0
======= Total Jarak = 3974.6523758559797
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 64 105 165 80 130 0 => Jarak =
184.21619662875227, dengan Demand = 76.0
Rute ke-1>> 0 61 17 135 23 67 30 0 => Jarak =
192.07026071318202, dengan Demand = 123.0
Rute ke-2>> 0 43 41 147 96 175 0 => Jarak =
179.30218687365092, dengan Demand = 107.0
Rute ke-3>> 0 90 29 82 151 0 => Jarak = 180.23988831026716,
dengan Demand = 72.0
Rute ke-4>> 0 121 120 155 46 9 0 => Jarak =
184.17056944301765, dengan Demand = 91.0
Rute ke-5>> 0 6 150 127 123 13 14 0 => Jarak =
197.46402192757654, dengan Demand = 91.0
Rute ke-6>> 0 59 11 164 0 => Jarak = 159.26413061494787,
dengan Demand = 62.0
Rute ke-7>> 0 33 49 149 7 162 44 0 => Jarak =
198.61940411252675, dengan Demand = 87.0
Rute ke-8>> 0 180 5 185 141 0 => Jarak = 199.00113965475185,
dengan Demand = 87.0
Rute ke-9>> 0 99 26 187 97 10 0 => Jarak = 157.9073630497902,
dengan Demand = 80.0
Rute ke-10>> 0 12 2 24 137 0 => Jarak = 195.11446668641057,
dengan Demand = 85.0
Rute ke-11>> 0 56 112 172 27 0 => Jarak = 169.84676183264736,
dengan Demand = 68.0
Rute ke-12>> 0 65 47 188 92 0 => Jarak = 192.8758843717436,
dengan Demand = 60.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 3
Rute ke-13>> 0 71 52 163 177 0 => Jarak = 197.92970106407108,
dengan Demand = 36.0
Rute ke-14>> 0 157 176 117 158 101 0 => Jarak =
165.91679413442174, dengan Demand = 79.0
Rute ke-15>> 0 181 16 28 79 45 0 => Jarak =
160.11737251111362, dengan Demand = 104.0
Rute ke-16>> 0 146 169 126 51 132 0 => Jarak =
175.73193203294437, dengan Demand = 89.0
Rute ke-17>> 0 102 122 114 139 95 0 => Jarak =
180.84587504659288, dengan Demand = 64.0
Rute ke-18>> 0 197 191 113 144 55 107 0 => Jarak =
183.17226070686186, dengan Demand = 72.0
Rute ke-19>> 0 60 8 18 106 87 0 => Jarak =
171.80267288793837, dengan Demand = 68.0
Rute ke-20>> 0 38 84 131 108 69 34 0 => Jarak =
196.0819677307237, dengan Demand = 127.0
Rute ke-21>> 0 156 83 128 58 119 0 => Jarak =
197.86614287993004, dengan Demand = 62.0
Rute ke-22>> 0 152 1 136 88 15 174 171 0 => Jarak =
189.8416044196908, dengan Demand = 105.0
Rute ke-23>> 0 3 21 20 81 0 => Jarak = 172.55782457203654,
dengan Demand = 73.0
Rute ke-24>> 0 4 22 91 199 50 40 0 => Jarak =
175.48402172608337, dengan Demand = 112.0
Rute ke-25>> 0 195 42 193 104 111 0 => Jarak =
158.8156402589523, dengan Demand = 94.0
Rute ke-26>> 0 54 153 98 138 190 0 => Jarak =
174.30952641260347, dengan Demand = 89.0
Rute ke-27>> 0 145 94 76 0 => Jarak = 171.48565478335826,
dengan Demand = 26.0
Rute ke-28>> 0 173 166 93 184 196 0 => Jarak =
177.3090001149367, dengan Demand = 102.0
Rute ke-29>> 0 63 194 116 159 0 => Jarak = 137.8027139073317,
dengan Demand = 46.0
Rute ke-30>> 0 53 143 115 198 179 70 0 => Jarak =
183.5834834918315, dengan Demand = 69.0
Rute ke-31>> 0 182 73 68 0 => Jarak = 137.6824224060156,
dengan Demand = 30.0
Rute ke-32>> 0 168 129 75 140 0 => Jarak =
172.45046112467776, dengan Demand = 39.0
Rute ke-33>> 0 89 36 37 0 => Jarak = 160.71415716624844,
dengan Demand = 33.0
Rute ke-34>> 0 66 35 57 118 74 0 => Jarak =
197.84649250810068, dengan Demand = 81.0
Rute ke-35>> 0 85 189 161 31 0 => Jarak = 188.0174921897646,
dengan Demand = 53.0
Rute ke-36>> 0 48 103 167 134 170 178 78 0 => Jarak =
196.25605617226643, dengan Demand = 127.0
Rute ke-37>> 0 142 186 86 72 39 0 => Jarak =
183.94093897263235, dengan Demand = 74.0
Rute ke-38>> 0 124 154 125 32 109 0 => Jarak =
175.11193416906855, dengan Demand = 69.0
Rute ke-39>> 0 160 19 25 0 => Jarak = 192.84870814020235,
dengan Demand = 42.0
Rute ke-40>> 0 183 62 192 77 100 0 => Jarak =
178.93637325562295, dengan Demand = 76.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 4
Rute ke-41>> 0 110 148 133 0 => Jarak = 174.32958334838597,
dengan Demand = 56.0
======= TOTAL JARAK SEMUA RUTE = 5528.881082353672
=========== Solusi Terbaik ==========
Rute ke-0>> 0 64 105 165 80 130 0 => Jarak =
184.21619662875227, dengan Demand = 76.0
Rute ke-1>> 0 61 17 135 23 67 30 0 => Jarak =
192.07026071318202, dengan Demand = 123.0
Rute ke-2>> 0 43 41 147 96 175 0 => Jarak =
179.30218687365092, dengan Demand = 107.0
Rute ke-3>> 0 90 29 82 151 0 => Jarak = 180.23988831026716,
dengan Demand = 72.0
Rute ke-4>> 0 121 120 155 46 9 0 => Jarak =
184.17056944301765, dengan Demand = 91.0
Rute ke-5>> 0 6 150 127 123 13 14 0 => Jarak =
197.46402192757654, dengan Demand = 91.0
Rute ke-6>> 0 59 11 164 0 => Jarak = 159.26413061494787,
dengan Demand = 62.0
Rute ke-7>> 0 33 49 149 7 162 44 0 => Jarak =
198.61940411252675, dengan Demand = 87.0
Rute ke-8>> 0 180 5 185 141 0 => Jarak = 199.00113965475185,
dengan Demand = 87.0
Rute ke-9>> 0 99 26 187 97 10 0 => Jarak = 157.9073630497902,
dengan Demand = 80.0
Rute ke-10>> 0 12 2 24 137 0 => Jarak = 195.11446668641057,
dengan Demand = 85.0
Rute ke-11>> 0 56 112 172 27 0 => Jarak = 169.84676183264736,
dengan Demand = 68.0
Rute ke-12>> 0 65 47 188 92 0 => Jarak = 192.8758843717436,
dengan Demand = 60.0
Rute ke-13>> 0 71 52 163 177 0 => Jarak = 197.92970106407108,
dengan Demand = 36.0
Rute ke-14>> 0 157 176 117 158 101 0 => Jarak =
165.91679413442174, dengan Demand = 79.0
Rute ke-15>> 0 181 16 28 79 45 0 => Jarak =
160.11737251111362, dengan Demand = 104.0
Rute ke-16>> 0 146 169 126 51 132 0 => Jarak =
175.73193203294437, dengan Demand = 89.0
Rute ke-17>> 0 102 122 114 139 95 0 => Jarak =
180.84587504659288, dengan Demand = 64.0
Rute ke-18>> 0 197 191 113 144 55 107 0 => Jarak =
183.17226070686186, dengan Demand = 72.0
Rute ke-19>> 0 60 8 18 106 87 0 => Jarak =
171.80267288793837, dengan Demand = 68.0
Rute ke-20>> 0 38 84 131 108 69 34 0 => Jarak =
196.0819677307237, dengan Demand = 127.0
Rute ke-21>> 0 156 83 128 58 119 0 => Jarak =
197.86614287993004, dengan Demand = 62.0
Rute ke-22>> 0 152 1 136 88 15 174 171 0 => Jarak =
189.8416044196908, dengan Demand = 105.0
Rute ke-23>> 0 3 21 20 81 0 => Jarak = 172.55782457203654,
dengan Demand = 73.0
Rute ke-24>> 0 4 22 91 199 50 40 0 => Jarak =
175.48402172608337, dengan Demand = 112.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 5
Rute ke-25>> 0 195 42 193 104 111 0 => Jarak =
158.8156402589523, dengan Demand = 94.0
Rute ke-26>> 0 54 153 98 138 190 0 => Jarak =
174.30952641260347, dengan Demand = 89.0
Rute ke-27>> 0 145 94 76 0 => Jarak = 171.48565478335826,
dengan Demand = 26.0
Rute ke-28>> 0 173 166 93 184 196 0 => Jarak =
177.3090001149367, dengan Demand = 102.0
Rute ke-29>> 0 63 194 116 159 0 => Jarak = 137.8027139073317,
dengan Demand = 46.0
Rute ke-30>> 0 53 143 115 198 179 70 0 => Jarak =
183.5834834918315, dengan Demand = 69.0
Rute ke-31>> 0 182 73 68 0 => Jarak = 137.6824224060156,
dengan Demand = 30.0
Rute ke-32>> 0 168 129 75 140 0 => Jarak =
172.45046112467776, dengan Demand = 39.0
Rute ke-33>> 0 89 36 37 0 => Jarak = 160.71415716624844,
dengan Demand = 33.0
Rute ke-34>> 0 66 35 57 118 74 0 => Jarak =
197.84649250810068, dengan Demand = 81.0
Rute ke-35>> 0 85 189 161 31 0 => Jarak = 188.0174921897646,
dengan Demand = 53.0
Rute ke-36>> 0 48 103 167 134 170 178 78 0 => Jarak =
196.25605617226643, dengan Demand = 127.0
Rute ke-37>> 0 142 186 86 72 39 0 => Jarak =
183.94093897263235, dengan Demand = 74.0
Rute ke-38>> 0 124 154 125 32 109 0 => Jarak =
175.11193416906855, dengan Demand = 69.0
Rute ke-39>> 0 160 19 25 0 => Jarak = 192.84870814020235,
dengan Demand = 42.0
Rute ke-40>> 0 183 62 192 77 100 0 => Jarak =
178.93637325562295, dengan Demand = 76.0
Rute ke-41>> 0 110 148 133 0 => Jarak = 174.32958334838597,
dengan Demand = 56.0
======= TOTAL JARAK SEMUA RUTE = 5528.881082353672
...
======== ITERASI KE- 249 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 22 23 67 142 186 0 => Jarak =
167.58346345276132, dengan Demand = 92.0
Rute ke-1>> 0 157 137 185 141 193 104 188 0 => Jarak =
198.03523959506947, dengan Demand = 142.0
Rute ke-2>> 0 135 49 182 73 7 0 => Jarak =
197.21893295391504, dengan Demand = 46.0
Rute ke-3>> 0 180 52 133 11 164 129 0 => Jarak =
195.17047798808028, dengan Demand = 134.0
Rute ke-4>> 0 112 163 39 187 32 109 0 => Jarak =
197.16476541226285, dengan Demand = 101.0
Rute ke-5>> 0 64 105 165 80 55 0 => Jarak = 194.366220986916,
dengan Demand = 64.0
Rute ke-6>> 0 59 122 114 42 90 113 96 0 => Jarak =
199.28524543046345, dengan Demand = 125.0
Rute ke-7>> 0 53 143 115 89 36 155 0 => Jarak =
194.04691288580034, dengan Demand = 71.0
Rute ke-8>> 0 82 138 15 174 171 76 0 => Jarak =
187.55433251097844, dengan Demand = 120.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 6
Rute ke-9>> 0 30 54 50 40 77 100 60 0 => Jarak =
173.3188148201463, dengan Demand = 126.0
Rute ke-10>> 0 168 111 179 70 94 79 0 => Jarak =
193.24694595200583, dengan Demand = 68.0
Rute ke-11>> 0 106 18 189 161 74 63 0 => Jarak =
186.435233819816, dengan Demand = 89.0
Rute ke-12>> 0 183 62 192 43 41 191 1 198 190 0 => Jarak =
195.57933512724335, dengan Demand = 115.0
Rute ke-13>> 0 197 136 21 37 124 154 29 152 0 => Jarak =
186.16091827860183, dengan Demand = 95.0
Rute ke-14>> 0 65 47 46 102 175 176 87 126 0 => Jarak =
194.44843611494386, dengan Demand = 132.0
Rute ke-15>> 0 195 16 28 156 83 128 4 0 => Jarak =
199.2731511838366, dengan Demand = 131.0
Rute ke-16>> 0 6 150 127 123 13 14 0 => Jarak =
197.46402192757654, dengan Demand = 91.0
Rute ke-17>> 0 151 34 25 75 9 57 0 => Jarak =
188.26430180984158, dengan Demand = 101.0
Rute ke-18>> 0 98 153 196 158 184 33 12 0 => Jarak =
189.16650227418972, dengan Demand = 160.0
Rute ke-19>> 0 5 45 88 20 166 173 172 0 => Jarak =
186.86860132877965, dengan Demand = 120.0
Rute ke-20>> 0 92 107 181 117 61 2 0 => Jarak =
168.784880062228, dengan Demand = 103.0
Rute ke-21>> 0 58 119 24 68 0 => Jarak = 195.48973373090718,
dengan Demand = 56.0
Rute ke-22>> 0 31 71 131 17 95 3 0 => Jarak =
196.95510877943053, dengan Demand = 92.0
Rute ke-23>> 0 159 116 44 72 110 148 0 => Jarak =
192.2495445628182, dengan Demand = 80.0
Rute ke-24>> 0 139 86 101 140 48 103 167 149 0 => Jarak =
188.10292008469864, dengan Demand = 118.0
Rute ke-25>> 0 19 134 170 178 78 35 99 0 => Jarak =
182.44321762156744, dengan Demand = 87.0
Rute ke-26>> 0 121 120 93 91 199 66 160 0 => Jarak =
192.4008703101428, dengan Demand = 91.0
Rute ke-27>> 0 162 147 10 85 0 => Jarak = 194.6052846907592,
dengan Demand = 78.0
Rute ke-28>> 0 177 81 169 97 118 146 0 => Jarak =
190.3735083707124, dengan Demand = 81.0
Rute ke-29>> 0 38 84 51 26 125 194 0 => Jarak =
188.42668000543827, dengan Demand = 126.0
Rute ke-30>> 0 8 27 144 145 0 => Jarak = 168.76229930433072,
dengan Demand = 50.0
Rute ke-31>> 0 56 69 132 108 130 0 => Jarak =
181.81770697576255, dengan Demand = 101.0
======= TOTAL JARAK SEMUA RUTE = 4071.063608352025
=========== Solusi Terbaik ==========
Rute ke-0>> 0 6 150 127 123 13 14 0 => Jarak =
197.46402192757654, dengan Demand = 91.0
Rute ke-1>> 0 64 105 165 80 55 0 => Jarak = 194.366220986916,
dengan Demand = 64.0
Rute ke-2>> 0 30 54 50 40 77 100 60 0 => Jarak =
173.3188148201463, dengan Demand = 126.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 7
Rute ke-3>> 0 180 52 133 11 164 129 0 => Jarak =
195.17047798808028, dengan Demand = 134.0
Rute ke-4>> 0 53 143 115 89 36 155 0 => Jarak =
194.04691288580034, dengan Demand = 71.0
Rute ke-5>> 0 139 86 101 140 48 103 167 149 0 => Jarak =
188.10292008469864, dengan Demand = 118.0
Rute ke-6>> 0 98 153 196 158 184 33 12 0 => Jarak =
189.16650227418972, dengan Demand = 160.0
Rute ke-7>> 0 19 134 170 178 78 35 99 0 => Jarak =
182.44321762156744, dengan Demand = 87.0
Rute ke-8>> 0 151 34 25 75 9 57 0 => Jarak =
188.26430180984158, dengan Demand = 101.0
Rute ke-9>> 0 58 119 24 68 0 => Jarak = 195.48973373090718,
dengan Demand = 56.0
Rute ke-10>> 0 197 136 21 37 124 154 29 152 0 => Jarak =
186.16091827860183, dengan Demand = 95.0
Rute ke-11>> 0 183 62 192 43 41 191 1 198 190 0 => Jarak =
195.57933512724335, dengan Demand = 115.0
Rute ke-12>> 0 31 71 131 17 95 2 0 => Jarak =
189.87734980607647, dengan Demand = 107.0
Rute ke-13>> 0 92 161 74 189 0 => Jarak = 197.7910518746664,
dengan Demand = 61.0
Rute ke-14>> 0 59 122 114 42 90 113 96 0 => Jarak =
199.28524543046345, dengan Demand = 125.0
Rute ke-15>> 0 162 147 72 110 148 130 0 => Jarak =
193.19015216269665, dengan Demand = 131.0
Rute ke-16>> 0 177 81 169 97 118 146 0 => Jarak =
190.3735083707124, dengan Demand = 81.0
Rute ke-17>> 0 106 18 109 107 181 117 61 0 => Jarak =
184.97645535819436, dengan Demand = 100.0
Rute ke-18>> 0 3 56 10 85 108 69 132 0 => Jarak =
198.8733545283902, dengan Demand = 117.0
Rute ke-19>> 0 121 120 93 91 199 66 160 0 => Jarak =
192.4008703101428, dengan Demand = 91.0
Rute ke-20>> 0 157 137 185 141 193 104 188 0 => Jarak =
198.03523959506947, dengan Demand = 142.0
Rute ke-21>> 0 168 111 179 70 94 79 0 => Jarak =
193.24694595200583, dengan Demand = 68.0
Rute ke-22>> 0 82 138 15 174 171 76 0 => Jarak =
187.55433251097844, dengan Demand = 120.0
Rute ke-23>> 0 65 47 46 102 175 176 87 126 0 => Jarak =
194.44843611494386, dengan Demand = 132.0
Rute ke-24>> 0 195 16 28 156 83 128 4 0 => Jarak =
199.2731511838366, dengan Demand = 131.0
Rute ke-25>> 0 38 84 51 26 125 194 0 => Jarak =
188.42668000543827, dengan Demand = 126.0
Rute ke-26>> 0 5 45 88 20 166 173 172 0 => Jarak =
186.86860132877965, dengan Demand = 120.0
Rute ke-27>> 0 159 116 44 63 144 145 0 => Jarak =
179.0264378691034, dengan Demand = 60.0
Rute ke-28>> 0 22 23 67 142 186 0 => Jarak =
167.58346345276132, dengan Demand = 92.0
Rute ke-29>> 0 112 163 39 187 32 0 => Jarak =
173.24312534273878, dengan Demand = 85.0
Rute ke-30>> 0 135 49 182 73 7 0 => Jarak =
197.21893295391504, dengan Demand = 46.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 25 - 8
Rute ke-31>> 0 8 27 0 => Jarak = 73.38566416949868, dengan
Demand = 33.0
======= TOTAL JARAK SEMUA RUTE = 3974.6523758559797
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 26 - 1
Lampiran 26 : Hasil Implementasi Program pada Permasalahan P11
Parameter inputan Jumlah semut / kendaraan = 8 Jumlah kota = 120 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 119 11 4 9 7 3 5 10 6 12 20 42 48 50 71 73 74 101
107 0 => Jarak = 308.4119245340831, dengan Demand = 197.0
Rute ke- 1 >> 0 110 57 56 66 52 59 64 61 62 60 37 43 108 90 112
111 88 0 => Jarak = 304.0458809509304, dengan Demand = 194.0
Rute ke- 2 >> 0 120 99 77 75 1 115 109 104 105 102 87 2 84 0 =>
Jarak = 338.6950015990059, dengan Demand = 200.0
Rute ke- 3 >> 0 22 34 33 31 23 30 27 29 49 46 51 41 47 44 28 54
55 18 118 91 0 => Jarak = 401.4551237550494, dengan Demand =
195.0
Rute ke- 4 >> 0 86 89 98 114 94 93 26 19 35 36 32 24 25 13 15 14
81 82 0 => Jarak = 255.87173387187357, dengan Demand = 197.0
Rute ke- 5 >> 0 16 17 21 79 70 72 8 38 40 45 67 69 96 113 117 83
0 => Jarak = 486.44635558536095, dengan Demand = 200.0
Rute ke- 6 >> 0 116 106 100 92 85 97 53 63 58 65 39 68 80 78 76
103 95 0 => Jarak = 318.77493127453744, dengan Demand = 192.0
======= Total Jarak = 2413.7009515708405
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 90 5 15 3 1 81 120 104 101 99 111 63 54 31 91 103 0
=> Jarak = 433.0342019681111, dengan Demand = 194.0
Rute ke-1>> 0 119 11 4 9 7 2 84 53 114 94 93 96 88 19 35 36 32 24
25 26 0 => Jarak = 463.6472432084274, dengan Demand = 197.0
Rute ke-2>> 0 95 89 86 102 105 87 82 6 12 42 48 50 71 73 74 112
117 97 0 => Jarak = 330.4454442359096, dengan Demand = 199.0
Rute ke-3>> 0 72 8 107 68 80 75 76 14 13 58 59 57 61 62 0 =>
Jarak = 549.0420480553412, dengan Demand = 192.0
Rute ke-4>> 0 52 28 34 27 20 21 30 33 92 85 10 43 37 45 70 115 79
78 109 108 0 => Jarak = 646.8078481776238, dengan Demand =
199.0
Rute ke-5>> 0 83 16 23 17 100 65 116 55 113 18 118 41 47 44 22 40
0 => Jarak = 714.3363010807242, dengan Demand = 196.0
Rute ke-6>> 0 39 38 77 60 106 56 66 29 49 46 51 67 69 98 110 64 0
=> Jarak = 738.9778026800367, dengan Demand = 198.0
======= TOTAL JARAK SEMUA RUTE = 3876.2908894061743
=========== Solusi Terbaik ==========
Rute ke-0>> 0 90 5 15 3 1 81 120 104 101 99 111 63 54 31 91 103 0
=> Jarak = 433.0342019681111, dengan Demand = 194.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 26 - 2
Rute ke-1>> 0 119 11 4 9 7 2 84 53 114 94 93 96 88 19 35 36 32 24
25 26 0 => Jarak = 463.6472432084274, dengan Demand = 197.0
Rute ke-2>> 0 95 89 86 102 105 87 82 6 12 42 48 50 71 73 74 112
117 97 0 => Jarak = 330.4454442359096, dengan Demand = 199.0
Rute ke-3>> 0 72 8 107 68 80 75 76 14 13 58 59 57 61 62 0 =>
Jarak = 549.0420480553412, dengan Demand = 192.0
Rute ke-4>> 0 52 28 34 27 20 21 30 33 92 85 10 43 37 45 70 115 79
78 109 108 0 => Jarak = 646.8078481776238, dengan Demand =
199.0
Rute ke-5>> 0 83 16 23 17 100 65 116 55 113 18 118 41 47 44 22 40
0 => Jarak = 714.3363010807242, dengan Demand = 196.0
Rute ke-6>> 0 39 38 77 60 106 56 66 29 49 46 51 67 69 98 110 64 0
=> Jarak = 738.9778026800367, dengan Demand = 198.0
======= TOTAL JARAK SEMUA RUTE = 3876.2908894061743
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 110 57 56 66 52 59 64 61 62 60 37 43 108 90 112 111
88 0 => Jarak = 304.0458809509304, dengan Demand = 194.0
Rute ke-1>> 0 120 99 77 75 1 115 109 104 105 102 87 2 84 0 =>
Jarak = 338.6950015990059, dengan Demand = 200.0
Rute ke-2>> 0 16 17 21 79 70 72 8 38 40 45 67 69 96 113 117 83 0
=> Jarak = 486.44635558536095, dengan Demand = 200.0
Rute ke-3>> 0 116 106 100 92 85 97 53 63 58 65 39 68 80 78 76 103
95 91 0 => Jarak = 330.35839539946926, dengan Demand = 196.0
Rute ke-4>> 0 119 11 4 9 7 3 5 10 6 12 20 42 48 50 71 73 74 101
107 0 => Jarak = 308.4119245340831, dengan Demand = 197.0
Rute ke-5>> 0 22 34 33 31 23 30 27 29 49 46 51 41 47 44 28 54 55
18 118 0 => Jarak = 401.2314724330049, dengan Demand = 191.0
Rute ke-6>> 0 86 89 98 114 94 93 26 19 35 36 32 24 25 13 15 14 81
82 0 => Jarak = 255.87173387187357, dengan Demand = 197.0
======= TOTAL JARAK SEMUA RUTE = 2425.060764373728
=========== Solusi Terbaik ==========
Rute ke-0>> 0 119 11 4 9 7 3 5 10 6 12 20 42 48 50 71 73 74 101
107 0 => Jarak = 308.4119245340831, dengan Demand = 197.0
Rute ke-1>> 0 110 57 56 66 52 59 64 61 62 60 37 43 108 90 112 111
88 0 => Jarak = 304.0458809509304, dengan Demand = 194.0
Rute ke-2>> 0 120 99 77 75 1 115 109 104 105 102 87 2 84 0 =>
Jarak = 338.6950015990059, dengan Demand = 200.0
Rute ke-3>> 0 22 34 33 31 23 30 27 29 49 46 51 41 47 44 28 54 55
18 118 91 0 => Jarak = 401.4551237550494, dengan Demand =
195.0
Rute ke-4>> 0 86 89 98 114 94 93 26 19 35 36 32 24 25 13 15 14 81
82 0 => Jarak = 255.87173387187357, dengan Demand = 197.0
Rute ke-5>> 0 16 17 21 79 70 72 8 38 40 45 67 69 96 113 117 83 0
=> Jarak = 486.44635558536095, dengan Demand = 200.0
Rute ke-6>> 0 116 106 100 92 85 97 53 63 58 65 39 68 80 78 76 103
95 0 => Jarak = 318.77493127453744, dengan Demand = 192.0
======= TOTAL JARAK SEMUA RUTE = 2413.7009515708405
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 27 - 1
Lampiran 27 : Hasil Implementasi Program pada Permasalahan P12 Parameter inputan Jumlah semut / kendaraan = 12 Jumlah kota = 100 Jarak maksimal kendaraan = 0 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 0
Output ======= Solusi =========
Rute ke- 0 >> 0 68 56 60 37 29 5 9 84 66 40 42 43 3 4 0 =>
Jarak = 290.75826711008085, dengan Demand = 200.0
Rute ke- 1 >> 0 63 65 67 74 72 53 58 55 69 0 => Jarak =
109.32851214207804, dengan Demand = 200.0
Rute ke- 2 >> 0 25 34 39 18 15 17 30 26 23 1 0 => Jarak =
155.6970020363125, dengan Demand = 200.0
Rute ke- 3 >> 0 19 16 12 14 11 10 2 13 21 20 0 => Jarak =
148.39696984940753, dengan Demand = 190.0
Rute ke- 4 >> 0 61 77 76 8 6 7 52 35 38 44 50 27 24 22 0 =>
Jarak = 272.7525838733746, dengan Demand = 200.0
Rute ke- 5 >> 0 95 100 99 32 36 28 49 51 41 46 47 48 0 =>
Jarak = 212.028268166955, dengan Demand = 200.0
Rute ke- 6 >> 0 71 70 79 73 80 62 59 57 54 45 0 => Jarak =
196.40510570929692, dengan Demand = 200.0
Rute ke- 7 >> 0 33 31 64 81 78 83 82 85 91 86 0 => Jarak =
197.07659571670558, dengan Demand = 200.0
Rute ke- 8 >> 0 98 96 94 93 97 92 89 88 87 90 0 => Jarak =
117.31481659651458, dengan Demand = 200.0
Rute ke- 9 >> 0 75 0 => Jarak = 31.622776601683793, dengan
Demand = 20.0
======= Total Jarak = 1731.3808978024094
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 66 71 24 38 44 47 42 7 3 5 6 1 0 => Jarak =
272.1875965083167, dengan Demand = 180.0
Rute ke-1>> 0 86 27 46 50 43 8 10 4 75 2 13 9 0 => Jarak =
216.29127275731577, dengan Demand = 200.0
Rute ke-2>> 0 22 72 48 41 68 63 65 21 80 12 14 11 0 => Jarak
= 312.1440924310629, dengan Demand = 190.0
Rute ke-3>> 0 23 25 34 39 18 15 17 60 55 0 => Jarak =
208.92303503492425, dengan Demand = 200.0
Rute ke-4>> 0 96 98 79 70 28 30 26 87 89 92 56 0 => Jarak =
387.5261539828591, dengan Demand = 190.0
Rute ke-5>> 0 57 67 69 74 88 73 62 59 94 0 => Jarak =
320.9023819539952, dengan Demand = 190.0
Rute ke-6>> 0 52 20 16 37 64 33 31 29 32 36 0 => Jarak =
290.1785535663656, dengan Demand = 200.0
Rute ke-7>> 0 81 78 83 82 85 40 49 51 53 54 0 => Jarak =
223.51624105549442, dengan Demand = 200.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 27 - 2
Rute ke-8>> 0 91 84 93 97 100 99 90 76 77 45 35 19 0 => Jarak
= 310.59762260137535, dengan Demand = 190.0
Rute ke-9>> 0 58 61 95 0 => Jarak = 161.39726277015123,
dengan Demand = 70.0
======= TOTAL JARAK SEMUA RUTE = 2703.664212661861
=========== Solusi Terbaik ==========
Rute ke-0>> 0 66 71 24 38 44 47 42 7 3 5 6 1 0 => Jarak =
272.1875965083167, dengan Demand = 180.0
Rute ke-1>> 0 86 27 46 50 43 8 10 4 75 2 13 9 0 => Jarak =
216.29127275731577, dengan Demand = 200.0
Rute ke-2>> 0 72 48 41 68 63 65 22 21 80 12 14 11 0 => Jarak
= 294.2211365701234, dengan Demand = 190.0
Rute ke-3>> 0 23 25 34 39 18 15 17 60 55 0 => Jarak =
208.92303503492425, dengan Demand = 200.0
Rute ke-4>> 0 96 98 79 70 94 30 26 87 89 92 56 0 => Jarak =
420.8212490665165, dengan Demand = 180.0
Rute ke-5>> 0 57 67 69 74 88 73 62 59 28 0 => Jarak =
268.49883958532547, dengan Demand = 200.0
Rute ke-6>> 0 52 20 16 37 64 33 31 29 32 36 0 => Jarak =
290.1785535663656, dengan Demand = 200.0
Rute ke-7>> 0 81 78 83 82 85 40 49 51 53 54 0 => Jarak =
223.51624105549442, dengan Demand = 200.0
Rute ke-8>> 0 91 84 93 97 100 99 90 76 77 45 35 19 0 => Jarak
= 310.59762260137535, dengan Demand = 190.0
Rute ke-9>> 0 58 61 95 0 => Jarak = 161.39726277015123,
dengan Demand = 70.0
======= TOTAL JARAK SEMUA RUTE = 2666.632809515909
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 68 56 60 37 29 5 9 84 66 40 42 43 3 4 0 =>
Jarak = 290.75826711008085, dengan Demand = 200.0
Rute ke-1>> 0 33 31 64 81 78 83 82 85 91 86 0 => Jarak =
197.07659571670558, dengan Demand = 200.0
Rute ke-2>> 0 61 77 76 8 6 7 52 35 38 44 50 27 24 22 0 =>
Jarak = 272.7525838733746, dengan Demand = 200.0
Rute ke-3>> 0 75 2 13 21 20 10 80 62 59 57 0 => Jarak =
248.8482484978262, dengan Demand = 200.0
Rute ke-4>> 0 63 65 67 74 72 53 58 55 69 0 => Jarak =
109.32851214207804, dengan Demand = 200.0
Rute ke-5>> 0 25 34 39 18 15 17 30 26 23 1 0 => Jarak =
155.6970020363125, dengan Demand = 200.0
Rute ke-6>> 0 98 96 94 93 97 92 89 88 87 90 0 => Jarak =
117.31481659651458, dengan Demand = 200.0
Rute ke-7>> 0 71 70 79 73 11 47 48 45 49 51 41 46 99 12 0 =>
Jarak = 334.8518736372138, dengan Demand = 200.0
Rute ke-8>> 0 19 16 14 36 28 32 95 100 0 => Jarak =
244.3117060026425, dengan Demand = 170.0
Rute ke-9>> 0 54 0 => Jarak = 80.09993757800315, dengan
Demand = 40.0
======= TOTAL JARAK SEMUA RUTE = 2051.0395431907523
=========== Solusi Terbaik ==========
Rute ke-0>> 0 68 56 60 37 29 5 9 84 66 40 42 43 3 4 0 =>
Jarak = 290.75826711008085, dengan Demand = 200.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 27 - 3
Rute ke-1>> 0 63 65 67 74 72 53 58 55 69 0 => Jarak =
109.32851214207804, dengan Demand = 200.0
Rute ke-2>> 0 25 34 39 18 15 17 30 26 23 1 0 => Jarak =
155.6970020363125, dengan Demand = 200.0
Rute ke-3>> 0 19 16 12 14 11 10 2 13 21 20 0 => Jarak =
148.39696984940753, dengan Demand = 190.0
Rute ke-4>> 0 61 77 76 8 6 7 52 35 38 44 50 27 24 22 0 =>
Jarak = 272.7525838733746, dengan Demand = 200.0
Rute ke-5>> 0 95 100 99 32 36 28 49 51 41 46 47 48 0 => Jarak
= 212.028268166955, dengan Demand = 200.0
Rute ke-6>> 0 71 70 79 73 80 62 59 57 54 45 0 => Jarak =
196.40510570929692, dengan Demand = 200.0
Rute ke-7>> 0 33 31 64 81 78 83 82 85 91 86 0 => Jarak =
197.07659571670558, dengan Demand = 200.0
Rute ke-8>> 0 98 96 94 93 97 92 89 88 87 90 0 => Jarak =
117.31481659651458, dengan Demand = 200.0
Rute ke-9>> 0 75 0 => Jarak = 31.622776601683793, dengan
Demand = 20.0
======= TOTAL JARAK SEMUA RUTE = 1731.3808978024094
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 28 - 1
Lampiran 28 : Hasil Implementasi Program pada Permasalahan P13 Parameter inputan Jumlah semut / kendaraan = 18 Jumlah kota = 120 Jarak maksimal kendaraan = 720 Kapasitas kendaraan = 200 Alpha = 2 Beta = 1
Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 50
Output ======= Solusi =========
Rute ke- 0 >> 0 18 81 29 8 115 80 78 87 0 => Jarak =
716.0839219617916, dengan Demand = 96.0
Rute ke- 1 >> 0 22 57 54 7 43 100 0 => Jarak =
698.1557784194565, dengan Demand = 66.0
Rute ke- 2 >> 0 82 65 106 99 13 97 105 102 0 => Jarak =
702.7185410183001, dengan Demand = 95.0
Rute ke- 3 >> 0 32 112 3 113 79 77 68 0 => Jarak =
698.3492558571269, dengan Demand = 79.0
Rute ke- 4 >> 0 47 62 42 23 44 58 55 0 => Jarak =
718.1950589842164, dengan Demand = 81.0
Rute ke- 5 >> 0 63 64 49 110 72 119 111 0 => Jarak =
677.5082215373317, dengan Demand = 82.0
Rute ke- 6 >> 0 73 35 12 108 40 1 0 => Jarak =
696.2533523148418, dengan Demand = 84.0
Rute ke- 7 >> 0 48 61 38 10 15 9 14 6 0 => Jarak =
685.907685812588, dengan Demand = 99.0
Rute ke- 8 >> 0 41 46 45 51 37 21 50 74 0 => Jarak =
709.6951063630579, dengan Demand = 101.0
Rute ke- 9 >> 0 60 53 24 39 5 2 83 0 => Jarak =
692.6200955409471, dengan Demand = 68.0
Rute ke- 10 >> 0 107 120 101 52 16 31 109 89 0 => Jarak =
678.6037232010652, dengan Demand = 91.0
Rute ke- 11 >> 0 66 117 95 94 88 67 75 0 => Jarak =
694.8867296403632, dengan Demand = 95.0
Rute ke- 12 >> 0 85 114 11 33 27 34 25 20 17 4 0 => Jarak =
715.1484613169986, dengan Demand = 95.0
Rute ke- 13 >> 0 71 76 116 26 36 86 96 103 0 => Jarak =
685.6742722234321, dengan Demand = 75.0
Rute ke- 14 >> 0 28 19 59 98 84 69 70 0 => Jarak =
701.6410326641916, dengan Demand = 93.0
Rute ke- 15 >> 0 56 30 93 90 104 92 91 118 0 => Jarak =
707.7181359964854, dengan Demand = 75.0
======= Total Jarak = 5179.159372852191
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 66 117 95 94 78 87 104 0 => Jarak =
700.1605759945822, dengan Demand = 74.0
Rute ke-1>> 0 16 31 109 68 76 93 111 92 0 => Jarak =
664.9168244433303, dengan Demand = 84.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 28 - 2
Rute ke-2>> 0 18 81 29 8 115 80 0 => Jarak =
610.9159259557114, dengan Demand = 68.0
Rute ke-3>> 0 82 65 106 99 13 97 105 102 0 => Jarak =
702.7185410183001, dengan Demand = 95.0
Rute ke-4>> 0 40 6 4 118 96 103 86 91 116 0 => Jarak =
703.5366972578469, dengan Demand = 80.0
Rute ke-5>> 0 101 52 83 36 26 28 0 => Jarak =
631.0534446359004, dengan Demand = 57.0
Rute ke-6>> 0 73 35 12 21 71 89 0 => Jarak =
646.7435581865803, dengan Demand = 59.0
Rute ke-7>> 0 63 5 49 72 119 0 => Jarak = 660.1501176975275,
dengan Demand = 68.0
Rute ke-8>> 0 11 70 30 3 113 1 0 => Jarak = 685.81602051681,
dengan Demand = 91.0
Rute ke-9>> 0 22 54 7 75 110 112 0 => Jarak =
700.3344706404439, dengan Demand = 85.0
Rute ke-10>> 0 32 20 17 108 2 43 57 0 => Jarak =
718.8443786737691, dengan Demand = 68.0
Rute ke-11>> 0 60 53 24 19 88 67 0 => Jarak =
653.2367335814612, dengan Demand = 62.0
Rute ke-12>> 0 48 61 38 10 15 9 14 0 => Jarak =
635.5372957565367, dengan Demand = 94.0
Rute ke-13>> 0 47 62 42 23 44 58 55 0 => Jarak =
718.1950589842164, dengan Demand = 81.0
Rute ke-14>> 0 85 114 39 90 50 74 0 => Jarak =
645.9493278223501, dengan Demand = 64.0
Rute ke-15>> 0 41 46 45 51 37 34 25 33 27 0 => Jarak =
705.5990731052511, dengan Demand = 110.0
Rute ke-16>> 0 56 79 77 59 98 84 69 0 => Jarak =
701.0852243735319, dengan Demand = 96.0
Rute ke-17>> 0 107 120 64 100 0 => Jarak = 411.999200032668,
dengan Demand = 39.0
======= TOTAL JARAK SEMUA RUTE = 5896.792468676818
=========== Solusi Terbaik ==========
Rute ke-0>> 0 66 117 95 94 78 87 104 0 => Jarak =
700.1605759945822, dengan Demand = 74.0
Rute ke-1>> 0 16 31 109 68 76 93 111 92 0 => Jarak =
664.9168244433303, dengan Demand = 84.0
Rute ke-2>> 0 18 81 29 8 115 80 0 => Jarak =
610.9159259557114, dengan Demand = 68.0
Rute ke-3>> 0 82 65 106 99 13 97 105 102 0 => Jarak =
702.7185410183001, dengan Demand = 95.0
Rute ke-4>> 0 40 6 4 118 96 103 86 91 116 0 => Jarak =
703.5366972578469, dengan Demand = 80.0
Rute ke-5>> 0 101 52 83 36 26 28 0 => Jarak =
631.0534446359004, dengan Demand = 57.0
Rute ke-6>> 0 73 35 12 21 71 89 0 => Jarak =
646.7435581865803, dengan Demand = 59.0
Rute ke-7>> 0 63 5 49 72 119 0 => Jarak = 660.1501176975275,
dengan Demand = 68.0
Rute ke-8>> 0 11 70 30 3 113 1 0 => Jarak = 685.81602051681,
dengan Demand = 91.0
Rute ke-9>> 0 22 54 7 75 110 112 0 => Jarak =
700.3344706404439, dengan Demand = 85.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 28 - 3
Rute ke-10>> 0 32 20 17 108 2 43 57 0 => Jarak =
718.8443786737691, dengan Demand = 68.0
Rute ke-11>> 0 60 53 24 19 88 67 0 => Jarak =
653.2367335814612, dengan Demand = 62.0
Rute ke-12>> 0 48 61 38 10 15 9 14 0 => Jarak =
635.5372957565367, dengan Demand = 94.0
Rute ke-13>> 0 47 62 42 23 44 58 55 0 => Jarak =
718.1950589842164, dengan Demand = 81.0
Rute ke-14>> 0 85 114 39 90 50 74 0 => Jarak =
645.9493278223501, dengan Demand = 64.0
Rute ke-15>> 0 41 46 45 51 37 34 25 33 27 0 => Jarak =
705.5990731052511, dengan Demand = 110.0
Rute ke-16>> 0 56 79 77 59 98 84 69 0 => Jarak =
701.0852243735319, dengan Demand = 96.0
Rute ke-17>> 0 107 120 64 100 0 => Jarak = 411.999200032668,
dengan Demand = 39.0
======= TOTAL JARAK SEMUA RUTE = 5896.792468676818
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 85 114 11 33 27 34 25 20 17 4 0 => Jarak =
715.1484613169986, dengan Demand = 95.0
Rute ke-1>> 0 107 120 101 52 16 31 109 89 0 => Jarak =
678.6037232010652, dengan Demand = 91.0
Rute ke-2>> 0 18 81 29 8 115 80 78 87 0 => Jarak =
716.0839219617916, dengan Demand = 96.0
Rute ke-3>> 0 56 30 93 90 104 92 91 118 0 => Jarak =
707.7181359964854, dengan Demand = 75.0
Rute ke-4>> 0 73 35 12 108 40 1 0 => Jarak =
696.2533523148418, dengan Demand = 84.0
Rute ke-5>> 0 41 46 45 51 37 21 50 74 0 => Jarak =
709.6951063630579, dengan Demand = 101.0
Rute ke-6>> 0 32 112 3 113 79 77 68 0 => Jarak =
698.3492558571269, dengan Demand = 79.0
Rute ke-7>> 0 47 62 42 23 44 58 55 0 => Jarak =
718.1950589842164, dengan Demand = 81.0
Rute ke-8>> 0 60 53 24 39 5 2 83 0 => Jarak =
692.6200955409471, dengan Demand = 68.0
Rute ke-9>> 0 66 117 95 94 88 67 75 0 => Jarak =
694.8867296403632, dengan Demand = 95.0
Rute ke-10>> 0 82 65 106 99 13 97 105 102 0 => Jarak =
702.7185410183001, dengan Demand = 95.0
Rute ke-11>> 0 63 64 49 110 72 119 111 0 => Jarak =
677.5082215373317, dengan Demand = 82.0
Rute ke-12>> 0 71 76 116 26 36 86 96 103 0 => Jarak =
685.6742722234321, dengan Demand = 75.0
Rute ke-13>> 0 22 57 54 7 43 100 0 => Jarak =
698.1557784194565, dengan Demand = 66.0
Rute ke-14>> 0 48 61 38 10 15 9 14 6 0 => Jarak =
685.907685812588, dengan Demand = 99.0
Rute ke-15>> 0 28 19 59 98 84 69 70 0 => Jarak =
701.6410326641916, dengan Demand = 93.0
======= TOTAL JARAK SEMUA RUTE = 5179.159372852193
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 28 - 4
=========== Solusi Terbaik ==========
Rute ke-0>> 0 18 81 29 8 115 80 78 87 0 => Jarak =
716.0839219617916, dengan Demand = 96.0
Rute ke-1>> 0 22 57 54 7 43 100 0 => Jarak =
698.1557784194565, dengan Demand = 66.0
Rute ke-2>> 0 82 65 106 99 13 97 105 102 0 => Jarak =
702.7185410183001, dengan Demand = 95.0
Rute ke-3>> 0 32 112 3 113 79 77 68 0 => Jarak =
698.3492558571269, dengan Demand = 79.0
Rute ke-4>> 0 47 62 42 23 44 58 55 0 => Jarak =
718.1950589842164, dengan Demand = 81.0
Rute ke-5>> 0 63 64 49 110 72 119 111 0 => Jarak =
677.5082215373317, dengan Demand = 82.0
Rute ke-6>> 0 73 35 12 108 40 1 0 => Jarak =
696.2533523148418, dengan Demand = 84.0
Rute ke-7>> 0 48 61 38 10 15 9 14 6 0 => Jarak =
685.907685812588, dengan Demand = 99.0
Rute ke-8>> 0 41 46 45 51 37 21 50 74 0 => Jarak =
709.6951063630579, dengan Demand = 101.0
Rute ke-9>> 0 60 53 24 39 5 2 83 0 => Jarak =
692.6200955409471, dengan Demand = 68.0
Rute ke-10>> 0 107 120 101 52 16 31 109 89 0 => Jarak =
678.6037232010652, dengan Demand = 91.0
Rute ke-11>> 0 66 117 95 94 88 67 75 0 => Jarak =
694.8867296403632, dengan Demand = 95.0
Rute ke-12>> 0 85 114 11 33 27 34 25 20 17 4 0 => Jarak =
715.1484613169986, dengan Demand = 95.0
Rute ke-13>> 0 71 76 116 26 36 86 96 103 0 => Jarak =
685.6742722234321, dengan Demand = 75.0
Rute ke-14>> 0 28 19 59 98 84 69 70 0 => Jarak =
701.6410326641916, dengan Demand = 93.0
Rute ke-15>> 0 56 30 93 90 104 92 91 118 0 => Jarak =
707.7181359964854, dengan Demand = 75.0
======= TOTAL JARAK SEMUA RUTE = 5179.159372852191
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 29 - 1
Lampiran 29 : Hasil Implementasi Program pada Permasalahan P14
Parameter inputan Jumlah semut / kendaraan = 15 Jumlah kota = 100 Jarak maksimal kendaraan =
1040 Kapasitas kendaraan = 200 Alpha = 2
Beta = 1 Rho = 0,8 Pheromon awal = 0,1 Total iterasi = 1000 Konstanta Q = 1000 Service duration = 90
Output ======= Solusi =========
Rute ke- 0 >> 0 75 83 85 41 36 39 33 42 31 0 => Jarak =
1034.3992454022123, dengan Demand = 180.0
Rute ke- 1 >> 0 80 79 61 73 77 70 45 94 0 => Jarak =
1035.1529322974227, dengan Demand = 100.0
Rute ke- 2 >> 0 35 13 50 64 55 60 72 87 0 => Jarak =
979.211701405598, dengan Demand = 120.0
Rute ke- 3 >> 0 96 63 74 24 4 7 8 21 44 0 => Jarak =
1016.8178973928821, dengan Demand = 200.0
Rute ke- 4 >> 0 28 40 58 51 56 38 3 1 0 => Jarak =
972.7971942721796, dengan Demand = 150.0
Rute ke- 5 >> 0 43 54 59 76 93 25 20 49 0 => Jarak =
972.7248347717949, dengan Demand = 170.0
Rute ke- 6 >> 0 67 65 97 10 16 52 48 37 0 => Jarak =
958.6180254781443, dengan Demand = 140.0
Rute ke- 7 >> 0 68 82 84 81 71 15 11 34 0 => Jarak =
997.5351957161569, dengan Demand = 170.0
Rute ke- 8 >> 0 53 57 90 78 89 22 2 88 0 => Jarak =
998.6048961537472, dengan Demand = 180.0
Rute ke- 9 >> 0 12 27 29 47 69 30 18 19 17 0 => Jarak =
1014.5364765125278, dengan Demand = 120.0
Rute ke- 10 >> 0 32 100 14 86 98 91 92 66 0 => Jarak =
1034.5560033102963, dengan Demand = 130.0
Rute ke- 11 >> 0 26 46 62 9 6 95 99 5 23 0 => Jarak =
990.45924081424, dengan Demand = 150.0
======= Total Jarak = 3005.4136435271994
Running ======== ITERASI KE- 0 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 56 38 26 89 22 2 73 0 => Jarak =
973.1237738639752, dengan Demand = 140.0
Rute ke-1>> 0 12 27 34 29 47 71 15 0 => Jarak =
937.2399089508388, dengan Demand = 130.0
Rute ke-2>> 0 28 40 58 51 45 5 23 70 0 => Jarak =
1008.0486434284405, dengan Demand = 130.0
Rute ke-3>> 0 96 44 63 1 83 75 17 3 0 => Jarak =
991.7037885264922, dengan Demand = 140.0
Rute ke-4>> 0 68 82 84 30 55 66 90 81 0 => Jarak =
1005.1575314915243, dengan Demand = 120.0
Rute ke-5>> 0 80 79 20 25 88 13 50 64 0 => Jarak =
1015.8058068433359, dengan Demand = 150.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 29 - 2
Rute ke-6>> 0 18 69 19 99 21 86 72 61 0 => Jarak =
1026.6387260681197, dengan Demand = 100.0
Rute ke-7>> 0 35 87 94 36 9 6 78 0 => Jarak =
981.563032515596, dengan Demand = 100.0
Rute ke-8>> 0 39 33 91 92 49 31 53 0 => Jarak =
933.3522525910555, dengan Demand = 140.0
Rute ke-9>> 0 43 85 41 76 93 59 54 0 => Jarak =
965.3059535164465, dengan Demand = 150.0
Rute ke-10>> 0 74 24 4 7 8 46 62 77 0 => Jarak =
949.4593466843905, dengan Demand = 170.0
Rute ke-11>> 0 11 42 98 95 60 57 14 0 => Jarak =
945.3702447585997, dengan Demand = 150.0
Rute ke-12>> 0 67 65 97 10 16 52 48 37 0 => Jarak =
958.6180254781443, dengan Demand = 140.0
Rute ke-13>> 0 32 100 0 => Jarak = 313.34125243779266, dengan
Demand = 50.0
======= TOTAL JARAK SEMUA RUTE = 4004.7282871547523
=========== Solusi Terbaik ==========
Rute ke-0>> 0 56 38 26 89 22 2 73 0 => Jarak =
973.1237738639752, dengan Demand = 140.0
Rute ke-1>> 0 12 27 34 29 47 71 15 0 => Jarak =
937.2399089508388, dengan Demand = 130.0
Rute ke-2>> 0 28 40 58 51 45 5 23 70 0 => Jarak =
1008.0486434284405, dengan Demand = 130.0
Rute ke-3>> 0 96 44 63 1 83 75 17 3 0 => Jarak =
991.7037885264922, dengan Demand = 140.0
Rute ke-4>> 0 68 82 84 30 55 66 90 81 0 => Jarak =
1005.1575314915243, dengan Demand = 120.0
Rute ke-5>> 0 80 79 20 25 88 13 50 64 0 => Jarak =
1015.8058068433359, dengan Demand = 150.0
Rute ke-6>> 0 18 69 19 99 21 86 72 61 0 => Jarak =
1026.6387260681197, dengan Demand = 100.0
Rute ke-7>> 0 35 87 94 36 9 6 78 0 => Jarak =
981.563032515596, dengan Demand = 100.0
Rute ke-8>> 0 39 33 91 92 49 31 53 0 => Jarak =
933.3522525910555, dengan Demand = 140.0
Rute ke-9>> 0 43 85 41 76 93 59 54 0 => Jarak =
965.3059535164465, dengan Demand = 150.0
Rute ke-10>> 0 74 24 4 7 8 46 62 77 0 => Jarak =
949.4593466843905, dengan Demand = 170.0
Rute ke-11>> 0 11 42 98 95 60 57 14 0 => Jarak =
945.3702447585997, dengan Demand = 150.0
Rute ke-12>> 0 67 65 97 10 16 52 48 37 0 => Jarak =
958.6180254781443, dengan Demand = 140.0
Rute ke-13>> 0 32 100 0 => Jarak = 313.34125243779266, dengan
Demand = 50.0
======= TOTAL JARAK SEMUA RUTE = 4004.7282871547523
...
======== ITERASI KE- 999 =============
============== RUTE CONSTRUCTION ==========
Rute ke-0>> 0 35 13 50 64 55 60 72 87 0 => Jarak =
979.211701405598, dengan Demand = 120.0
Rute ke-1>> 0 28 40 58 51 56 38 3 1 0 => Jarak =
972.7971942721796, dengan Demand = 150.0
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 29 - 3
Rute ke-2>> 0 68 82 84 81 71 15 11 34 0 => Jarak =
997.5351957161569, dengan Demand = 170.0
Rute ke-3>> 0 75 83 85 41 36 39 33 42 31 0 => Jarak =
1034.3992454022123, dengan Demand = 180.0
Rute ke-4>> 0 80 79 61 73 77 70 45 94 0 => Jarak =
1035.1529322974227, dengan Demand = 100.0
Rute ke-5>> 0 53 57 90 78 89 22 2 88 0 => Jarak =
998.6048961537472, dengan Demand = 180.0
Rute ke-6>> 0 32 100 14 86 98 91 92 66 0 => Jarak =
1034.5560033102963, dengan Demand = 130.0
Rute ke-7>> 0 67 65 97 10 16 52 48 37 0 => Jarak =
958.6180254781443, dengan Demand = 140.0
Rute ke-8>> 0 12 27 29 47 69 30 18 19 17 0 => Jarak =
1014.5364765125278, dengan Demand = 120.0
Rute ke-9>> 0 43 54 59 76 93 25 20 49 0 => Jarak =
972.7248347717949, dengan Demand = 170.0
Rute ke-10>> 0 96 63 74 24 4 7 8 21 44 0 => Jarak =
1016.8178973928821, dengan Demand = 200.0
Rute ke-11>> 0 26 46 62 9 6 95 99 5 23 0 => Jarak =
990.45924081424, dengan Demand = 150.0
======= TOTAL JARAK SEMUA RUTE = 3005.413643527201
=========== Solusi Terbaik ==========
Rute ke-0>> 0 75 83 85 41 36 39 33 42 31 0 => Jarak =
1034.3992454022123, dengan Demand = 180.0
Rute ke-1>> 0 80 79 61 73 77 70 45 94 0 => Jarak =
1035.1529322974227, dengan Demand = 100.0
Rute ke-2>> 0 35 13 50 64 55 60 72 87 0 => Jarak =
979.211701405598, dengan Demand = 120.0
Rute ke-3>> 0 96 63 74 24 4 7 8 21 44 0 => Jarak =
1016.8178973928821, dengan Demand = 200.0
Rute ke-4>> 0 28 40 58 51 56 38 3 1 0 => Jarak =
972.7971942721796, dengan Demand = 150.0
Rute ke-5>> 0 43 54 59 76 93 25 20 49 0 => Jarak =
972.7248347717949, dengan Demand = 170.0
Rute ke-6>> 0 67 65 97 10 16 52 48 37 0 => Jarak =
958.6180254781443, dengan Demand = 140.0
Rute ke-7>> 0 68 82 84 81 71 15 11 34 0 => Jarak =
997.5351957161569, dengan Demand = 170.0
Rute ke-8>> 0 53 57 90 78 89 22 2 88 0 => Jarak =
998.6048961537472, dengan Demand = 180.0
Rute ke-9>> 0 12 27 29 47 69 30 18 19 17 0 => Jarak =
1014.5364765125278, dengan Demand = 120.0
Rute ke-10>> 0 32 100 14 86 98 91 92 66 0 => Jarak =
1034.5560033102963, dengan Demand = 130.0
Rute ke-11>> 0 26 46 62 9 6 95 99 5 23 0 => Jarak =
990.45924081424, dengan Demand = 150.0
======= TOTAL JARAK SEMUA RUTE = 3005.4136435271994
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid
Lampiran 30 - 1
Lampiran 30 : Output Program
1.) Form input parameter
2.) Form solusi
ADLN Perpustakaan Universitas Airlangga
Skripsi Algoritma Improved Ant Colony Optimization (IACO) untuk Menyelesaikan Vehicle Routing Problem
Muhammad Harun Ar Rosyid