• Tidak ada hasil yang ditemukan

ALGORITMA IMPROVED ANT COLONY OPTIMIZATION (IACO) UNTUK MENYELESAIKAN VEHICLE ROUTING

N/A
N/A
Protected

Academic year: 2019

Membagikan "ALGORITMA IMPROVED ANT COLONY OPTIMIZATION (IACO) UNTUK MENYELESAIKAN VEHICLE ROUTING"

Copied!
195
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

PEDOMAN PENGGUNAAN SKRIPSI

(5)

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

(6)

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”.

(7)

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

(8)

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.

(9)

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.

(10)

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

(11)

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

(12)

DAFTAR GAMBAR

Gambar

Judul

Halaman

2.1

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 cek nilai_

random

Pm(t)

(13)

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

(14)

DAFTAR LAMPIRAN

No.

Judul Lampiran

1.

Data Permasalahan P01

2.

Data Permasalahan P02

3.

Data Permasalahan P03

4.

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

v

i

dan elemen dari E(G) dinotasikan dengan

v

i

v

j

dan kadang

dinotasikan dengan

e

i

. Jika terdapat garis

e

yang menghubungkan titik

v

i

dan

v

j

maka

v

i

dikatakan terhubung (

adjacent

) dengan

v

j

dalam hal ini

titik

v

i

dan

v

j

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 :

(20)

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

(21)

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

q

i

.

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

(22)

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:

(23)

Tabel 2.1 Parameter yang digunakan pada model matematis dasar VRP

Notasi

Keterangan

x

ijk

Kendaraan

k

melayani kota

j

setelah mengunjungi kota

i

d

ij

Jarak antara kota

i

dengan kota

j

q

i

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:

(24)

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

(25)

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

(26)

(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.

(27)

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

(28)

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

(29)

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]

n [ ] [ 1]

(30)

p

ij

(

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

n 1-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

(31)

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

d

ij

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

(32)

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

(33)

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 1 n

dengan

n

adalah jumlah semua pelanggan (kota),

adalah tingkat probabilitas

mutasi tertinggi yang didefinisikan dengan persamaan

1

n

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

(34)

pelanggan

c

i

, c

j

dengan

i

<

j

;

i,j

{1, 2, … ,

k

− 1} akan diperiksa apakah jalur dari

c

i−1

ke

c

j

dan dari

c

i

ke

c

j+1

lebih baik daripada jalur awal dari

c

i−1

ke

c

i

dan dari

c

j

ke

c

j+1

. Jika demikian, bentuk jalur baru dari

c

i

ke

c

j

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:

c

0

, c

1

, c

2

, … ,

i−1

, c

i

, c

i+1

, c

i+2

,… ,

j−1

, c

j

, c

j+1

, …,

k

, c

0.

maka setelah perbaikan menjadi:

c

0

, c

1

, c

2

, … ,

i−1

, c

j

, c

j−1

, c

j−2

,… ,

i+1

, c

i

, c

j+1

, c

j+2

,…,

k

, c

0.

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

).

(35)

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

di

update

,

adalah feromon jarak pelanggan (kota)

i

ke pelanggan (kota)

j

sebelum di

update

,

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

.

(36)

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 (

d

ij

), permintaan

setiap pelanggan (

q

i

), 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

(37)

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

(38)

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.

(39)

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

(40)

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

(41)

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_randomPm(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

(42)

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

(43)

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

P

ij

(k)

, cek

(44)

Prosedur konstruksi rute

mulai

hitung nilai Pij(k)()

cek konstrain() pembentukan rute() selesai

Gambar 4.5 Prosedur konstruksi rute

P

ij

(k)

adalah suatu nilai probabilitas untuk semut

k

memilih kota

j

setelah

mengunjungi kota

i

. Prosedur hitung nilai

P

ij

(k)

bertujuan untuk menghitung nilai

probabilitas

P

ij

(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

P

ij

(k)

komulatif, maka pilih kota dengan nilai

P

ij

(k)

terpilih tersebut. Prosedur hitung

P

ij

(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

P

ij

(k)

, formula yang digunakan dalam

perhitungan nilai PijkAvCity adalah

, dengan

adalah feromon jarak

(45)

nilai

diperoleh dari

dimana

d

ij

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

P

ij

(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

(46)

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

P

ij

(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

Gambar

Gambar Judul
Tabel Judul
Gambar 2.1  Contoh penyelesaian VRP dengan 3 rute
Tabel 2.2  Indeks yang digunakan pada model matematis VRP
+7

Referensi

Dokumen terkait

Dengan demikian Algoritma Palgunadi ini dapat diajukan sebagai salah satu algoritma alternatif pemecahan masalah penentuan rute kendaraan untuk kasus Vehicle Routing Problem

Permasalahan Multi Depot Vehicle Routing Problem with Time Window (MDVRPTW) merupakan permasalahan VRP dengan kondisi dimana depo yang digunakan sebagai pusat

Toth and Vigo (2002) menyatakan Vehicle Routing Problem (VRP) merupakan suatu permasalahan penentuan rute pengiriman atau distribusi yang melibatkan sekumpulan

CVRP adalah sebuah VRP di mana diberikan sejumlah kendaraan dengan kapasitas tersendiri yang harus melayani sejumlah permintaan pelanggan yang telah diketahui

Jenis permasalahan VRP berdasarkan kendalanya antara lain Capacitated Vehicle Routing Problem (CVRP) dengan kendala setiap kendaraan mempunyai kapasitas yang

Langkah-langkah menyelesaikan multiple trip vehicle routing problem dengan menggunakan algoritma sequential insertion adalah sebagai berikut: Langkah 1: Memilih kendaraan..

VRP atau Vehicle Routing Problem adalah sebuah cakupan masalah yang di dalamnya ada sebuah problem dimana ada sejumlah rute untuk sejumlah kendaraan yang berada pada

VRP (Vehicle Routing Problem) merupakan salah satu bagian dari penyelesaian masalah rute kendaraan yang biasanya merupakan masalah dari TSP (Travelling Salesman Problem)