Inisialisasi Populasi dan Evaluasi Individu

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