5. Alat transportasi selalu tersedia dalam kondisi baik.
6. Kepadatan lalu lintas dan kondisi jalan setiap harinya adalah normal.
7. Kapasitas kendaraan angkut 130 unit dan biaya sewa Rp.500.000,- dengan
asumsi sewa per rute. 8.
Biaya BBM kendaraan Rp. 4.500,-liter dengan asumsi kendaraan tersebut per- liter mampu menempuh jarak 15 km.
9. Dalam permasalahan ini yang mempengaruhi adalah biaya pendistribusian
adalah jarak tempuh. Perhitungan selanjutnya adalah perhitungan-perhitungan fungsi tujuan, kendala
dan perhitungan asumsi yang dibutuhkan seperti perhitungan total biaya sewa kendaraan, biaya perjalanan dan total biaya perjalanan. Untuk lebih jelasnya dapat
dilihat perhitungan sebagai berikut ini. 1.
Biaya sewa kendaraan = jumlah kendaraan dikali biaya sewa per kendaraan dengan jumlah kendaraan
≈ jumlah rute solusi yang dibentuk algoritma genetika.
2. Biaya kendaraan.
Biaya Kendaraan 4
56789 :8;8 =?8?A8B 7?AC ; 9D7;
E F Harga minyak per liter 3.
Total biaya = biaya sewa kendaraan + biaya perjalanan
4.2 Inisialisasi Populasi dan Evaluasi Individu
Pada tahap inisialisasi individu akan dibangkitkan sebuah populasi yang berisi sejumlah kromosom yang berisi sejumlah gen. Masukan untuk fungsi ini adalah ukuran populasi
jumlah kromosom dalam populasi dan jumlah gen dalam satu kromosom. Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika
yang akan diimplementasikan. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada populasi tersebut.
Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada. Dalam populasi
tersebut terdapat anggota populasi yang disebut dengan kromosom. Tahap evaluasi individu bertujuan untuk menghitung nilai fitness dari suatu
individu x. Fungsi ini sangat bergantung pada masalah yang akan diselesaikan. Dalam
permasalahan ini yang dibahas adalah menentukan semua rute dengan jaral minimal dari 31 verteks, oleh sebab itu nilai fitness yang bisa digunakan adalah 1 total jarak.
Dalam hal ini yang dimaksud total jarak adalah jumlah jarak antara node dalam sebuah subrute yang merupakan solusi. Variabel yang digunakan untuk mencari nilai fitness
yaitu populasi, jumlah gen, dan jarak antar node dalam suatu kromosom. Dari persoalan diatas maka selanjutnya dilakukan inisialisasi populasi dan evaluasi individu sebanyak
ukuran populasi yaitu 50, peluang crossover dan peluang mutasi masing-masing 0.699 dan 0.03 serta maksimum generasinya adalah 100. Untuk membangkitkan kromosom
ini, digunakan fungsi random yang telah tersedia dalam Matlab.
Untuk penyelesaian VRP-DP, kromosom dirancang dengan menggunakan prinsip pengacakan, dimana untuk perhitungan dilakukan hanya untuk jalur yang dilalui
dari depot ke node dan kembali ke depot, dengan sisa kromosom node yang tidak dilalui berfungsi sebagai pelengkap agar kromosom tidak terpotong. Sintak
selengkapnya adalah sebagai berikut:
Fungsi di atas dideklarasikan dengan nama InisialisasiPopulasi. Dengan dua variabel yaitu popsize, N. Keluaran yang dihasilkan dari fungsi ini adalah Populasi.
Bangkitkan Populasi Awal fprintffb,Populasi Awal;
fprintffb,\n; s=randperm100;
for i=1:popsize y=xsi,:;
for m=1:N if ym==1
y1=y1:m; Jaraki = A1,y11;
for k=2:m; Jaraki=Jaraki+Ay1k-1,y1k;
end end
end; popi,1=i;
popi,2:N+1=y; popi,N+2=1Jaraki;
fprintffb,3d,popi,1:N+1; fprintffb,10.5f,popi,N+2;
fprintffb,\n; end
F=0; for i=1:popsize
F=F+popi,N+2; end
Untuk menyatakan kromosom ke-ii pada populasi yang jumlah kolomnya sama dengan
jumlah gen digunakan perintah Populasiii,:. Popsize menyatakan ukuran populasi
atau jumlah kromosom dalam populasi, dimana nilainya dimasukkan lewat perintah
input Masukkan Ukuran Populasi: . N menyatakan jumlah gen dalam kromosom, dimana gen ini merepresentasikan jumlah kota yang ada. Nilai dari N dimasukkan
melalui perintah input Masukkan Jumlah Gen : . Perintah sort rand1,N menyatakan pembangkitan matriks berukuran 1 x N yang berisi bilangan random dalam
interval 0 – 1 yang terurut dari kecil ke besar. Kemudian disimpan program ini dengan
nama InisialisasiPopulasi.m melalui perintah save inisialisasi popsize N Populasi. Dari
program di atas terbentuklah kromosom yaitu sebagai berikut.
InisialisasiPopulasi Masukkan Ukuran Populasi: 50
Masukkan Jumlah Gen: 31
Generasi ke 1 Populasi Awal
1 2 18 21 5 13 1 11 14 17 29 9 22 30 26 20 6 15 31 3 10 7 16 4 12 27 28 24 23 19 25 8 0.01802
2 2 20 12 30 27 22 9 26 25 16 10 14 1 3 24 21 28 19 17 23 6 7 11 31 15 4 5 29 18 13 8 0.01093
3 2 19 8 13 16 26 31 27 21 6 9 3 1 18 22 5 15 24 7 14 12 17 4 20 28 10 11 25 23 29 30 0.01478
4 2 5 3 21 11 26 25 23 18 13 8 30 27 1 16 7 29 22 19 28 6 24 9 12 31 15 4 20 14 17 10 0.00771
5 2 8 25 27 28 24 18 13 1 23 15 5 9 14 7 21 31 26 19 29 16 30 10 11 6 4 3 22 20 12 17 0.01418
6 2 9 4 6 20 14 15 18 11 27 8 28 7 1 26 30 12 29 24 23 3 25 21 31 17 13 5 19 16 10 22 0.01096
7 2 22 18 10 28 3 23 17 29 27 6 16 25 1 5 4 20 21 14 19 26 15 24 9 31 30 13 7 11 12 8 0.00856
8 2 13 14 29 6 20 17 18 22 21 23 7 26 28 16 3 27 12 10 24 5 9 30 4 8 31 25 19 15 1 11 0.00516
9 2 7 11 21 13 18 16 31 14 24 6 1 30 15 28 5 4 10 23 12 19 22 3 17 26 25 29 8 9 27 20 0.01431
10 2 12 3 22 9 19 16 8 24 4 18 30 28 26 14 25 7 11 31 29 20 15 10 23 27 5 21 13 17 1 6 0.00549
11 2 3 8 19 25 13 15 1 9 29 17 14 21 31 22 6 28 7 24 23 20 18 4 30 12 11 16 26 5 10 27 0.01064
12 2 12 23 24 17 29 7 25 6 19 28 30 14 11 1 20 18 16 31 22 9 13 4 3 21 10 5 26 8 15 27 0.00934
13 2 21 16 27 3 20 17 29 1 10 30 23 26 13 15 19 7 25 6 4 14 11 12 28 22 18 9 8 24 5 31 0.00980
14 2 19 10 3 16 30 22 26 23 31 11 17 12 18 29 28 14 20 6 25 9 27 4 24 21 1 13 8 5 7 15 0.00664
15 2 8 5 17 9 24 3 10 29 25 13 15 19 28 20 16 11 21 22 23 30 18 26 27 31 1 7 14 6 12 4 0.00592
16 2 13 16 4 24 31 23 6 14 19 26 18 22 1 9 5 29 27 21 7 28 17 3 15 10 8 12 20 30 25 11 0.00707
17 2 19 24 21 4 12 27 8 7 28 11 22 14 23 16 26 29 13 6 17 10 5 30 9 25 31 1 18 3 15 20 0.00550
18 2 19 28 13 10 29 12 23 1 22 3 17 30 4 11 16 27 21 20 18 5 7 26 31 24 6 9 25 8 15 14 0.00920
19 2 20 18 3 15 29 24 6 17 19 7 25 4 21 9 22 27 14 31 5 12 10 26 1 30 11 8 13 28 16 23 0.00585
20 2 22 30 16 19 24 10 21 9 1 15 27 11 7 20 12 3 13 17 25 5 8 23 18 28 14 6 29 31 26 4 0.02096
21 2 23 17 30 28 24 16 31 29 12 11 4 3 8 19 21 26 10 9 22 14 5 13 25 7 1 6 15 27 20 18 0.01229
22 2 18 11 10 16 15 8 5 1 22 17 29 7 20 23 30 14 27 12 25 9 6 13 31 19 21 26 24 3 4 28 0.01377
23 2 15 6 28 9 25 7 27 23 11 31 8 4 5 16 1 10 30 17 26 19 14 12 21 13 20 3 24 29 18 22 0.00566
24 2 17 29 10 18 13 22 31 23 6 28 27 16 24 21 1 30 19 3 15 12 25 5 20 9 11 26 4 14 7 8 0.00825
25 2 3 29 17 21 22 10 16 9 1 30 12 28 11 6 27 4 18 14 31 23 19 20 7 13 26 5 8 25 15 24 0.02050
26 2 5 7 16 14 24 19 8 1 11 30 28 13 20 4 25 10 6 26 15 29 12 9 18 3 31 21 22 23 27 17 0.01625
27 2 6 22 16 4 21 23 1 30 28 8 19 10 27 26 14 18 29 17 31 9 11 3 20 12 25 7 5 15 13 24 0.00962
28 2 14 31 26 27 28 29 9 1 10 25 24 16 20 22 30 23 13 6 21 4 7 5 8 3 11 15 18 19 12 17 0.02349
29 2 9 19 6 4 23 7 1 17 26 29 13 10 27 18 5 28 8 11 3 22 16 21 25 30 31 20 12 15 24 14 0.01558
30 2 8 11 15 5 13 27 26 24 12 25 20 31 23 19 28 14 1 16 10 4 3 6 9 7 18 22 29 21 30 17 0.00808
31 2 6 26 22 9 21 25 24 31 14 1 23 4 27 5 16 13 10 18 30 12 11 20 29 19 15 3 8 28 17 7 0.01114
32 2 14 20 6 17 29 13 27 31 18 8 4 9 15 19 23 26 11 3 22 12 7 25 5 1 24 10 28 30 16 21 0.00793
33 2 12 11 22 14 20 30 1 16 7 26 15 8 24 13 19 3 31 4 10 5 18 29 28 9 17 21 25 6 23 27 0.00797
34 2 21 13 24 12 10 3 26 11 1 16 27 5 4 22 14 9 29 23 8 18 25 31 7 6 28 19 30 20 17 15 0.01377
35 2 8 10 26 6 30 9 22 3 13 20 19 1 18 17 14 7 29 21 27 5 28 25 12 11 31 4 16 24 15 23 0.00777
36 2 12 18 3 8 19 28 20 1 5 15 27 26 23 31 25 24 16 14 7 30 6 11 21 13 9 22 4 29 17 10 0.00842
37 2 12 8 9 16 29 23 15 25 27 10 7 1 19 13 5 24 17 20 30 3 6 26 4 22 11 18 31 21 14 28 0.01151
38 2 6 9 11 13 23 12 25 7 1 18 28 27 14 20 26 29 19 4 21 15 30 3 17 16 5 8 24 31 10 22 0.01705
39 2 19 28 6 23 22 8 29 21 12 4 15 14 11 17 18 30 10 31 16 20 13 7 3 27 5 25 9 1 24 26 0.00762
40 2 16 29 17 18 31 28 30 24 21 8 20 10 9 7 11 4 15 27 5 1 26 23 3 12 6 14 19 22 25 13 0.01155
41 2 10 20 21 18 4 9 23 25 24 29 13 3 26 28 8 15 17 14 12 31 22 1 5 27 19 7 16 30 11 6 0.00614
42 2 19 29 18 31 8 11 14 6 1 17 27 20 21 24 10 22 26 9 3 25 13 15 23 28 30 12 16 4 5 7 0.01945
43 2 16 5 20 30 3 18 27 22 7 8 19 14 31 24 13 10 25 28 1 26 11 17 15 21 9 4 23 6 12 29 0.00646
44 2 5 23 6 19 16 24 1 30 14 20 17 29 21 9 18 12 22 25 11 7 15 10 8 28 13 4 3 27 31 26 0.00883
45 2 12 3 30 25 26 18 22 23 31 4 10 8 28 20 15 9 11 29 24 5 27 6 17 1 16 7 21 13 14 19 0.00600
46 2 19 26 21 20 5 30 8 7 3 28 10 9 23 24 22 31 16 12 6 11 17 27 1 25 4 15 13 14 18 29 0.00649
47 2 6 5 14 16 12 8 1 3 11 27 22 21 29 23 17 19 20 28 15 7 24 25 9 18 4 30 26 10 13 31 0.01759
48 2 10 25 5 28 4 30 14 1 16 20 7 15 6 9 27 3 18 23 24 21 26 22 8 31 12 11 17 29 19 13 0.00938
49 2 12 25 20 13 9 17 15 10 3 29 22 31 5 21 1 30 6 14 28 26 19 7 11 16 18 23 24 4 27 8 0.00658
50 2 9 10 30 16 27 24 3 1 20 4 18 25 21 5 7 28 17 14 23 12
6 15 19 29 31 22 13 26 8 11 0.01939 . . .
4.3 Probabilitas Fitness