Lampiran 1 Matriks Jarak Tempuh Asal dan Tujuan Distribusi Gula di Wilayah Yogyakarta Node 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
0 0 9,2 7,4 21 9,6 15 5,2 9,4 8,6 19 9,3 6 9 6,5 3,2 16 15 6,3 6,2 3,4 8,6 18 20 17 16 15
1 9,2 0 7,7 37 12 23 14 12 9,1 19 12 14 5 9,7 6,5 15 14 9,6 9,6 8,3 13 26 28 16 14 13
2 3 4 5 6 7 8 9 7,4 21 9,6 15 5,2 9,4 8,6 19 7,7 37 12 23 14 12 9,1 19 0 27 6,4 15 8 6 1,3 13 27 0 16 7,6 14 17 21 18 6,4 16 0 10 4 0,85 6,7 8,3 15 7,6 10 0 8,9 12 16 13 8 14 4 8,9 0 5 8,4 13 6 17 0,85 12 5 0 5,8 10 1,3 21 6,7 16 8,4 5,8 0 11 13 18 8,3 13 13 10 11 0 5,9 17 1,7 12 5,1 0,1 8,7 7,2 13 20 10 9,1 6,8 10 14 20 11 33 15 25 15 14 13 21 4,7 26 4,8 15 4,8 3,1 5,7 11 8,6 17 12 19 9,3 11 10 19 5,7 18 2,8 13 6,8 3,7 7,4 6 8 19 4,9 14 8,9 5,9 6,7 5,1 4,6 17 4,8 15 4,6 3,1 5,6 11 3,8 17 3,9 15 4,4 3,1 4,8 10 4 18 7,2 19 5,4 6,1 5,4 13 6,9 14 1,3 9,4 3,1 1,8 8 8,9 12 9,6 6,8 7,7 7,6 8,2 19 10 18 3,7 13 5,5 12 13 21 16 10 12 3,7 7,4 7,4 5,1 16 7 8,5 17 4,7 12 8,7 5,6 8,5 5,7 7,3 18 4,2 14 8,2 5,2 6 4,4
10 9,3 12 5,9 17 1,7 12 5,1 0,1 8,7 7,2 0 9,2 14 3,9 11 3,7 5,8 3,9 3,6 6 1,3 7 13 5 5,5 5,1
11 6 14 13 20 10 9,1 6,8 10 14 20 9,2 0 15 6 8,6 11 20 5,9 5,8 8,2 8,4 13 15 12 13 19
12 9 5 11 33 15 25 15 14 13 21 14 15 0 11 5,9 19 19 11 11 9,3 14 27 29 26 19 18
13 6,5 9,7 4,7 26 4,8 15 4,8 3,1 5,7 11 3,9 6 11 0 9 4,7 6,8 1,4 0,95 3,6 4,5 8,1 14 5,8 6,6 7,3
14 3,2 6,5 8,6 17 12 19 9,3 11 10 19 11 8,6 5,9 9 0 18 17 8,1 8,1 5,1 11 20 23 20 17 16
15 16 15 5,7 18 2,8 13 6,8 3,7 7,4 6 3,7 11 19 4,7 18 0 4,7 6,7 5,9 9,2 4,6 9,4 15 6,3 1,9 1,4
16 15 14 8 19 4,9 14 8,9 5,9 6,7 5,1 5,8 20 19 6,8 17 4,7 0 9,7 8,9 10 7,6 12 18 8,6 4,5 3,1
17 6,3 9,6 4,6 17 4,8 15 4,6 3,1 5,6 11 3,9 5,9 11 1,4 8,1 6,7 9,7 0 0,9 3,8 3 8,2 14 5,9 6,7 6,2
18 6,2 9,6 3,8 17 3,9 15 4,4 3,1 4,8 10 3,6 5,8 11 0,95 8,1 5,9 8,9 0,9 0 3 3,4 8,6 15 6,3 7,1 6,6
19 3,4 8,3 4 18 7,2 19 5,4 6,1 5,4 13 6 8,2 9,3 3,6 5,1 9,2 10 3,8 3 0 6,1 12 16 9 11 9,3
20 8,6 13 6,9 14 1,3 9,4 3,1 1,8 8 8,9 1,3 8,4 14 4,5 11 4,6 7,6 3 3,4 6,1 0 6,1 12 2,9 6,9 6,5
21 18 26 12 9,6 6,8 7,7 7,6 8,2 19 10 7 13 27 8,1 20 9,4 12 8,2 8,6 12 6,1 0 8,1 3,8 8,8 10
22 20 28 18 3,7 13 5,5 12 13 21 16 13 15 29 14 23 15 18 14 15 16 12 8,1 0 10 15 17
23 17 16 10 12 3,7 7,4 7,4 5,1 16 7 5 12 26 5,8 20 6,3 8,6 5,9 6,3 9 2,9 3,8 10 0 5,6 7
24 16 14 8,5 17 4,7 12 8,7 5,6 8,5 5,7 5,5 13 19 6,6 17 1,9 4,5 6,7 7,1 11 6,9 8,8 15 5,6 0 2
25 15 13 7,3 18 4,2 14 8,2 5,2 6 4,4 5,1 19 18 7,3 16 1,4 3,1 6,2 6,6 9,3 6,5 10 17 7 2 0
Lampiran 2 Matriks Waktu Tempuh Asal dan Tujuan Distribusi Gula di Wilayah Yogyakarta
Node 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
0 0 11 9 25 12 18 6 12 10 23 11 7 11 8 4 19 18 8 8 4 10 22 24 20 19 18
1 11 0 9 44 14 28 16 14 11 23 14 17 6 12 8 18 17 12 12 10 16 31 34 19 17 16
2 9 9 0 32 8 18 10 7 2 16 7 16 13 6 10 7 10 6 5 5 8 14 22 12 10 19
3 25 44 32 0 19 9 17 20 25 22 20 24 40 31 20 22 23 20 20 22 17 11 4 14 20 22
4 12 14 8 19 0 12 5 1 8 10 7 12 18 6 14 3 6 6 5 9 2 8 16 4 6 5
5 18 28 18 9 12 0 11 14 19 16 14 11 30 18 23 16 17 18 18 23 11 9 7 9 14 17
6 6 16 10 17 5 11 0 6 9 16 6 8 18 6 11 8 11 6 5 6 4 9 14 9 10 10
7 12 14 7 20 1 14 6 0 7 13 1 12 17 5 13 4 7 5 4 7 2 10 16 6 7 6
8 10 11 2 25 8 19 10 7 0 13 10 17 16 7 12 9 8 7 6 7 10 23 25 19 9 7
9 23 23 16 22 10 16 16 12 13 0 9 24 25 13 23 7 6 13 12 16 11 12 19 8 7 5
10 11 14 7 20 7 14 6 1 10 9 0 11 17 5 13 4 7 5 4 7 2 8 16 6 7 6
11 7 17 16 24 12 11 8 12 17 24 11 0 18 7 10 13 24 7 7 10 10 16 18 14 16 23
12 11 6 13 40 18 30 18 17 16 25 17 18 0 13 7 23 23 13 13 11 17 32 35 31 23 22
13 8 12 6 31 6 17 6 5 7 13 5 7 13 0 11 6 8 2 1 4 3 10 17 7 8 9
14 4 8 10 20 14 23 11 13 12 23 13 10 7 11 0 22 20 10 10 6 13 24 28 24 20 19
15 19 18 7 22 3 16 8 4 9 7 4 13 23 6 22 0 3 8 7 11 6 11 18 8 2 2
16 18 17 10 23 6 17 11 7 8 6 7 24 23 8 20 3 0 12 11 14 9 14 22 10 5 4
17 8 12 6 20 6 18 6 5 7 13 5 7 13 2 10 8 12 0 1 5 4 10 17 7 8 7
18 8 12 5 20 6 18 5 4 6 12 4 7 13 1 10 7 11 1 0 4 4 10 18 8 9 8
19 4 10 5 22 9 23 6 7 7 16 7 10 11 4 6 11 14 5 4 0 7 14 19 11 13 11
20 10 16 8 17 2 11 4 2 10 11 2 10 17 3 13 6 9 4 4 7 0 7 14 4 8 8
21 22 31 14 11 8 9 9 10 23 12 8 16 32 10 24 11 14 10 10 14 7 0 10 5 11 12
22 24 34 22 4 16 7 14 16 25 19 16 18 35 17 28 18 22 17 18 19 14 10 0 12 18 20
23 20 19 12 14 4 9 9 6 19 8 6 14 31 7 24 8 10 7 8 11 4 5 12 0 7 8
24 19 17 10 20 6 14 10 7 9 7 7 16 23 8 20 2 5 8 9 13 8 11 18 7 0 2
25 18 16 9 22 5 17 10 6 7 5 6 23 22 9 19 2 4 7 8 11 8 12 20 8 2 0
Lampiran 3 Data Permintaan Harian Gula di Yogyakarta Kode 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Jumlah
Alamat Agen DEPOT Pacar, Sewon, Trimulyo, Bantul Jl. Pramuka No.84, Giwangan, Umbulharjo Jl. Magelang Km. 15,5 Jl. Colombo No.26, Caturtunggal, Kec. Depok Jl. Kebon Agung No.88, Tlogoadi, Mlati Jl. HOS. Cokroaminoto No. 176, Tegalrejo Jl. Urip Sumoharjo No.38A, Klitren, Jl. Ngeksigondo No.7, RT.09 / RW.02, Jl. Ringroad Utara - Maguwoharjo, Depok, Jl. Urip Sumoharjo, Klitren, Gondokusuman Jalan Raya Wates No.256, Ambarketawang, Jl. Parangtritis Km 11 Sabdodadi Bantul JL Madukismo, Yogyakarta, Ngupasan, Jl. Bantul, Pendowoharjo, Sewon, Bantul Plaza Ambarukmo LG, Jl. Laksda Adisucipto Jl. Raya Solo KM 8 No. 234, Maguwoharjo Jl. Mayor Suryotomo No.29, Ngupasan, Jl. Sultan Agung No.10, Wirogunan, Jalan DI Panjaitan No.54, Suryodiningratan Jl. C. Simanjuntak No.70, Terban, Jalan Palagan Tentara Pelajar No. 31, Ngaglik Triharjo, Kec. Sleman, Kabupaten Sleman Jalan Kaliurang KM 6,2 No. 51, Sinduadi, Jl. Raya Seturan Kav.IV, Depok Sports Center, Jalan Yogya Solo KM. 7, Babarsari,
Jumlah 1050 1250 350 50 700 625 500 500 1000 375 25 1100 1100 175 1000 750 1500 500 625 1000 750 1000 450 250 250 16875
Lampiran 4 Langkah-langkah Menggambar Koordinat Kartesius dengan Software Geogebra 1. Membuka software Geogebra 2. Memilih menu File > Insert image from > File
3. Memilih file gambar peta yang akan digambar dalam koordinat kartesius kemudian memilih Open
4. Setelah gambar peta ada di layar Software Geogebra selanjutnya klik kanan pada peta, kemudian memilih Object Properties
114
5. Pada kotak Preference, memilih pilihan Color kemudian mengatur Opacity yang berfungsi untuk mengatur tampilan gambar peta supaya gambar dapat terlihat transparan
6. Setelah gambar terlihat transparan selanjutnya memposisikan gambar peta sedemikian hingga depot (titik 0) berada di titik pusat koordinat kartesius
115
7. Memilih pilihan point untuk menandai masing-masing titik pada peta supaya diperoleh titik-titik pada koordinat kartesius
8. Menandai masing-masing titik pada peta dengan klik kiri satu kali sehingga titik koordinat kartesius akan muncul di bagian kiri Software Geogebra
116
9. Selanjutnya klik kanan pada gambar peta kemudian Show Object yang berfungsi untuk menghilangkan gambar peta sehingga di layar hanya ada tampilan koordinat kartesius
10. Langkah-langkah untuk menggambar koordinat kartesius dengan Software Geogebra selesai.
117
Berikut tampilan koordinat kartesius yang ada pada Software Geogebra (apabila ingin menampilkan koordinat kartesius dengan kotak kecil-kecil seperti gambar dibawah ni maka klik kanan kemudian memilih Grid)
Selanjutnya untuk mengubah koordinat kartesius menjadi koordinat polar, klik kanan pada koordinat kartesius kem udian pilih Polar Coordinates
118
11. Berikut tampilan koordinat polar yang ada pada Software Geogebra
119
Lampiran 5 Surat Izin Penelitian
120
Lampiran 6 Prosedur algoritma genetika menggunakan software Matlab dalam penyelesaian Capacitated Vehicle Routing Problem (CVRP) untuk distribusi gula di Kota Yogyakarta. Prosedur ini dimodifikasi dari Suyanto (2005: 86).
1. Membangkitkan Populasi Awal Membangkitkan populasi awal diimplementasikan menggunakan baris-baris perintah pada fungsi PopulasiAwal.m berikut ini. function Populasi=PopulasiAwal(ukpop,jumgen) for ii=1:2ukpop [X,Y] = sort(rand(1,jumgen)); Populasi(ii,:) = Y; end
Perintah rand (1, jumgen) menyatakan pembangkitan matriks berukuran 1 x jumlah gen yang berisi bilangan random dalam interval [0,1). Pada perintah [X, Y] = sort (rand(1, jumgen)), X menyatakan bilangan-bilangan random dalam interval [0,1) hasil pengurutan dari kecil ke besar (ascending). Sedangkan Y merupakan indeks dari bilangan-bilangan yang dibangkitkan random. Indeks Y merupakan nomer urut pelanggan gula kemasan yang dibangkitkan. Iterasi di atas dilakukan sebanyak ukpop (banyaknya individu dalam populasi), sehingga didapatkan populasi awal. 2. Menghitung Nilai Fitness Perhitungan nilai fitness dari populasi awal yang sudah terbentuk diimplementasikan dalam perintah pada fungsi NilaiFitness.m berikut ini. FunctionFitness= NilaiFitness(kromosom,jumgen,JarakAgen,JarakDepot) jalur=jd(kromosom(1))+jd(kromosom(jumgen)); for ii=1:jumgen-1
121
jalur=jalur+JarakAgen(kromosom(ii),kromosom(ii+1)); end fitness=1/jalur;
Variabel pada fungsi NilaiFitness.m adalah kromosom (individu dari populasi), jumgen (jumlah gen), JarakDepot (jarak depot dengan agen), dan JarakAgen (jarak antar lokasi agen). Sedangkan nilai fitness suatu individu dinyatakan dalam 1/jalur. function LFR = linearfitnessranking(ukpop,fitness,maxF,minF) [s,h] = sort(fitness); for rr=1:ukpop, LFR(h(ukpop-rr+1))=maxF-(maxF-minF)*((rr-1)/(ukpop-1)); end
Variabel pada fungsi linearfitnessrangking.m yaitu ukpop (banyaknya individu dalam populasi), fitness (nilai fitness individu dalam populasi), maxF (nilai fitness tertinggi pada populasi), dan minF (nilai fitness terendah dalam populasi). Mula-mula urutkan nilai fitness dari yang terkecil sampai yang terbesar, kemudian simpan nilai fitness yang sudah terurut pada sebuah variabel s dan indeks dari fitness yang menyatakan nomer urut kromosom pada suatu populasi disimpan pada variabel h. Fungsi ini digunakan untuk mencegah terjadinya konvergen pada optimum lokal karena perbedaan nilai-nilai fitness yang terlalu kecil pada semua individu dalam populasi. 3. Roulette Wheel Selection Operator seleksi dari populasi awal yang sudah terbentuk diimplementasikan dalam perintah pada fungsi RouletteWheel.m berikut ini. function p = RouletteWheel(ukpop,linearfitness); jumfitness=sum(linearfitness); kumulatiffitness = 0; RN = rand; ii=1; while ii<=ukpop, kumulatiffitness=kumulatiffitness+linearfitness(ii);
122
if (kumulatiffitness/jumfitness)>RN, p=ii; break; end ii=ii+1; end
variabel pada fungsi RouletteWheel.m adalah ukpop (banyaknya individu dalam populasi) dan linearfitness (hasil dari fungsi linearfitness.m), sedangkan jumfitness = sum (linearfitness) merupakan jumlah keseluruhan nilai fitness dalam populasi. kumulatiffitness merupakan nilai fitness kumulatif dari individu. Jika kumulatif fitness dibagi jumlah fitness lebih dari bilangan random yang dibangkitkan pada interval [0,1) maka iterasi berhenti, sehingga didapatkan p (indeks) dari individu yang terpilih sebagai induk. 4. Pindah Silang (order crossover) Operator pindah silang dari populasi awal
yang sudah terbentuk
diimplementasikan dalam perintah pada fungsi PindahSilang.m berikut ini. function anak = pindahSilang(bapak,ibu,jumgen) cp1=1+fix(rand*(jumgen-1)); cp2=1+fix(rand*(jumgen-1)); while cp2==cp1, cp2=1+fix(rand*(jumgen-1)); end if cp1
123
anak(2,cps+1:cpd)=bapak(cps+1:cpd); sisagenbapak=[]; sisagenibu=[]; for ii=1:jumgen, if ~ismember(bapak(ii),anak(1,:)), sisagenbapak=[sisagenbapak bapak(ii)]; end if ~ismember(ibu(ii),anak(2,:)), sisagenibu=[sisagenibu ibu(ii)]; end end anak(1,cpd+1:jumgen)=sisagenbapak(1:jumgen-cpd); anak(1,1:cps)=sisagenbapak(1+jumgencpd:length(sisagenbapak)); anak(2,cpd+1:jumgen)=sisagenibu(1:jumgen-cpd); anak(2,1:cps)=sisagenibu(1+jumgen-cpd:length(sisagenibu));
variabel pada fungsi PindahSilang.m adalah bapak (induk pertama yang terpilih), ibu (induk kedua yang terpilih) dan jumgen (jumlah gen). Pertama 2 buah bilangan dibangkitkan secara acak untuk menentukan titik potong kedua induk. Kemudian dua kromosom anak mendapatkan gen-gen dari kromosom bapak dan ibu. Posisi-posisi gen yang masih kosong pada anak pertama diisi dengan gen dari bapak yang belum ada pada anak pertama, dan anak kedua diisi dengan gen dari ibu yang belum ada pada anak kedua. Hasil dari fungsi ini adalah dua kromosom baru yang membawa sifat dari induknya. 6. Mutasi dengan Swapping Mutation Operator pindah silang dari populasi awal
yang sudah terbentuk
diimplementasikan dalam perintah pada fungsi Mutasi.m berikut ini. function mutkrom = Mutasi(kromosom,jumgen,pmutasi)
124
mutkrom=kromosom; for ii=1:jumgen, if rand
variabel pada fungsi Mutasi.m diatas adalah adalah kromosom (anak hasil pindah silang), jumgen (jumlah gen) dan pmutasi (probabilitas mutasi). Pertama membangkitkan bilangan random dalam interval [0,1). Jika bilangan random yang dibangkitkan kurang dari pmutasi maka akan ditentukan posisi gen dalam kromosom yang akan ditukar. Kemudian menukar nilai gen yang terpilih dalam kromosom sehingga didapatkan kromosom baru hasil mutasi (mutkrom).
7. Program Utama Sebagai program utama, fungsi SeptiaGenetika.m memanggil semua fungsifungsi diatas. Pada program utama berikut, memasukkan variabel-variabel jd (jarak depot dengan agen), kapasitas (permintaan dari setiap agen), JarakAgen (jarak tempuh antara agen dengan agen lainnya), jumgen (jumlah gen), kendaraan, q (kapasitas kendaraan), ukpop (ukuran populasi, yaitu banyaknya individu dalam populasi), psilang (probabilitas pindah silang), pmutasi (probabilitas mutasi), maxG (jumlah generasi). Program di bawah ini juga ditambahkan perintah untuk menampilkan grafik. Pada akhir program variabel jalur terbaik menyatakan rute optimal yang didapatkan. clear all
125
JarakDepot = [9.2 7.4 21 9.6 15 5.2 9.4 8.6 19 9.3 6 9 6.5 3.2 16 15 6.3 6.2 3.4 8.6 18 20 17 16 15]; kapasitas = [1050 1250 350 50 700 625 500 500 1000 375 25 1100 1100 175 1000 750 1500 500 625 1000 750 1000 450 250 250]; JarakAgen = [0 7.7 37 12 23 14 12 9.1 19 12 14 5 9.7 6.5 15 14 9.6 9.6 8.3 13 26 28 15 14 13; 7.7 0 27 6.4 15 8 6 1.3 13 5.9 13 11 4.7 8.6 5.7 8 4.6 3.8 4 6.9 12 18 10 8.5 7.3; 37 27 0 16 7.6 14 17 21 18 17 20 33 26 17 18 19 17 17 18 14 9.6 3.7 12 17 18; 12 6.4 16 0 10 4 0.85 6.7 8.3 17 10 15 4.8 12 2.8 4.9 4.8 3.9 7.2 1.3 6.8 13 3.7 4.7 4.2; 23 15 7.6 10 0 8.9 12 16 13 12 9.1 25 15 19 13 14 15 15 19 9.4 7.7 5.5 7.4 12 14; 14 8 14 4 8.9 0 5 8.4 13 5.1 6.8 15 4.8 9.3 6.8 8.9 4.6 4.4 5.4 3.1 7.6 12 7.4 8.7 8.2; 12 6 17 0.85 12 5 0 5.8 10 0.1 10 14 3.1 11 3.7 5.9 3.1 3.1 6.1 1.8 8.2 13 5.1 5.6 5.2; 9.1 1.3 21 6.7 16 8.4 5.8 0 11 8.7 14 13 5.7 10 7.4 6.7 5.6 4.8 5.4 8 19 21 16 8.5 6; 19 13 18 8.3 13 13 10 11 0 7.2 20 21 11 19 6 5.1 11 10 13 8.9 10 16 7 5.7 4.4; 12 5.9 17 1.7 12 5.1 0.1 8.7 7.2 0 9.2 14 3.9 11 3.7 5.8 3.9 3.6 6 1.3 7 13 5 5.5 5.1; 14 13 20 10 9.1 6.8 10 14 20 9.2 0 15 6 8.6 11 20 5.9 5.8 8.2 8.4 13 15 12 13 19; 5 11 33 15 25 15 14 13 21 14 15 0 11 5.9 19 19 11 11 9.3 14 27 29 26 19 18; 9.7 4.7 26 4.8 15 4.8 3.1 5.7 11 3.9 6 11 0 9 4.7 6.8 1.4 0.95 3.6 4.5 8.1 14 5.8 6.6 7.3;
126
6.5 8.6 17 12 19 9.3 11 10 19 11 8.6 5.9 9 0 18 17 8.1 8.1 5.1 11 20 23 20 17 16; 15 5.7 18 2.8 13 6.8 3.7 7.4 6 3.7 11 19 4.7 18 0 4.7 6.7 5.9 9.2 4.6 9.4 15 6.3 1.9 1.4; 14 8 19 4.9 14 8.9 5.9 6.7 5.1 5.8 20 19 6.8 17 4.7 0 9.7 8.9 10 7.6 12 18 8.6 4.5 3.1; 9.6 4.6 17 4.8 15 4.6 3.1 5.6 11 3.9 5.9 11 1.4 8.1 6.7 9.7 0 0.9 3.8 3 8.2 14 5.9 6.7 6.2; 9.6 3.8 17 3.9 15 4.4 3.1 4.8 10 3.6 5.8 11 0.95 8.1 5.9 8.9 0.9 0 3 3.4 8.6 15 6.3 7.1 6.6; 8.3 4 18 7.2 19 5.4 6.1 5.4 13 6 8.2 9.3 3.6 5.1 9.2 10 3.8 3 0 6.1 12 16 9 11 9.3; 13 6.9 14 1.3 9.4 3.1 1.8 8 8.9 1.3 8.4 14 4.5 11 4.6 7.6 3 3.4 6.1 0 6.1 12 2.9 6.9 6.5; 26 12 9.6 6.8 7.7 7.6 8.2 19 10 7 13 27 8.1 20 9.4 12 8.2 8.6 12 6.1 0 8.1 3.8 8.8 10; 28 18 3.7 13 5.5 12 13 21 16 13 15 29 14 23 15 18 14 15 16 12 8.1 0 10 15 17; 16 10 12 3.7 7.4 7.4 5.1 16 7 5 12 26 5.8 20 6.3 8.6 5.9 6.3 9 2.9 3.8 10 0 5.6 7; 14 8.5 17 4.7 12 8.7 5.6 8.5 5.7 5.5 13 19 6.6 17 1.9 4.5 6.7 7.1 11 6.9 8.8 15 5.6 0 2; 13 7.3 18 4.2 14 8.2 5.2 6 4.4 5.1 19 18 7.3 16 1.4 3.1 6.2 6.6 9.3 6.5 10 17 7 2 0]; jumgen = length(JarakAgen(:,1)); ukpop = 25; q = 6000; kendaraan=3; psilang = 0.8; pmutasi = 0.05; maxG = 1500; pjh = 30;
127
fth = 1/pjh; bgraf = fth; % inisialisasi grafis hfig = figure; hold on set(hfig, 'position', [50,50,600,400]); set(hfig, 'doublebuffer', 'on'); axis([1 maxG 0 bgraf]); hbestplot1 = plot(1:maxG,zeros(1,maxG)); hbestplot2 = plot(1:maxG,zeros(1,maxG)); htext1
=
text(0.6*maxG,0.25*bgraf,sprintf('fitness
terbaik:
%7.6f', 0.0)); htext2 = text(0.6*maxG,0.20*bgraf,sprintf('fitness rata-rata: %7.6f', 0.0)); htext3
=
text(0.6*maxG,0.15*bgraf,sprintf('panjang
jalur
terbaik: %7.3f', 0.0)); htext4
=
text(0.6*maxG,0.10*bgraf,sprintf('ukuran
populasi:
%3.0f', 0.0)); htext5 = text(0.6*maxG,0.05*bgraf,sprintf('probabilitas mutasi: %4.3f', 0.0)); xlabel('generasi'); ylabel('fitness'); hold off drawnow; % inisialisasi grafis hfig = figure; hold on set(hfig, 'position', [50,50,600,400]); set(hfig, 'doublebuffer', 'on'); axis([1 maxG 0 bgraf]); hbestplot1 = plot(1:maxG,zeros(1,maxG)); hbestplot2 = plot(1:maxG,zeros(1,maxG));
128
htext1
=
text(0.6*maxG,0.25*bgraf,sprintf('fitness
terbaik:
%7.6f', 0.0)); htext2 = text(0.6*maxG,0.20*bgraf,sprintf('fitness rata-rata: %7.6f', 0.0)); htext3
=
text(0.6*maxG,0.15*bgraf,sprintf('panjang
jalur
terbaik: %7.3f', 0.0)); htext4
=
text(0.6*maxG,0.10*bgraf,sprintf('ukuran
populasi:
%3.0f', 0.0)); htext5 = text(0.6*maxG,0.05*bgraf,sprintf('probabilitas mutasi: %4.3f', 0.0)); xlabel('generasi'); ylabel('fitness'); hold off drawnow; %inisialisasi populasi Populasi=PopulasiAwal(ukpop,jumgen); for generasi=1:maxG, maxF = NilaiFitness(Populasi(1,:),jumgen,JarakAgen,JarakDepot);
minF = maxF; indeksindividuterbaik = 1; for ii=1:ukpop, fitness(ii)= NilaiFitness(Populasi(ii,:),jumgen,JarakAgen,JarakDepot); if(fitness(ii)>maxF), maxF=fitness(ii); indeksindividuterbaik=ii; jalurterbaik=Populasi(ii,:); end if(fitness(ii)<=minF), minF=fitness(ii); end end
129
maxF; minF; fitnessratarata=mean(fitness); plotvector1=get(hbestplot1, 'YData'); plotvector1(generasi)=maxF; set(hbestplot1, 'YData',plotvector1); plotvector2=get(hbestplot2, 'YData'); plotvector2(generasi)=fitnessratarata; set(hbestplot2, 'YData',plotvector2); set(htext1,'String',sprintf('fitness terbaik: %7.6f', maxF)); set(htext2,'String',sprintf('fitness
rata-rata:
%7.6f',
fitnessratarata)); set(htext3,'String',sprintf('panjang
jalur
terbaik:
%7.3f',
1/maxF)); set(htext4,'String',sprintf('ukuran populasi: %3.0f', ukpop)); set(htext5,'String',sprintf('probabilitas
mutasi:
%4.3f',
pmutasi)); drawnow; if maxF>fth, break; end tempopulasi=Populasi; %etilisme: %-buat satu kopi kromosom terbaik jika ukuran populasi ganjil %-buat dua kopi kromosom terbaik jika ukuran populasi genap if mod(ukpop,2)==0 %ukuran populasi genap iterasimulai=3; tempopulasi(1,:)=Populasi(indeksindividuterbaik,:); tempopulasi(2,:)=Populasi(indeksindividuterbaik,:); else iterasimulai=2; tempopulasi(1,:)=Populasi(indeksindividuterbaik,:);
130
end linearfitness=linearfitnessranking(ukpop,fitness,maxF,minF); %Roulette-wheel selection dan pindah silang for jj=iterasimulai:2:ukpop, IP1=RouletteWheel(ukpop,linearfitness); IP2=RouletteWheel(ukpop,linearfitness); if(rand
8. Pembagian rute Setelah jalur terbaik di dapatkan dari program utama, selanjutnya dilakukan pembagian rute menjadi dua beserta jumlah total permintaan dari setiap masing-masing rute. Fungsi ini disimpan pada file bagidua.m berikut ini. function [rute1,kap1,rute2,kap2]=bagidua(kromosom,kapasitas,q) kap1=kapasitas(kromosom(1));
131
kap2=0; akhir=1; while kap1<=q akhir=akhir+1; kap1=kap1+kapasitas(kromosom(akhir)); end if kap1>q kap1=kap1-kapasitas(kromosom(akhir)); akhir=akhir-1; end rute1=kromosom(1:akhir); rute2=kromosom(akhir+1:size(kromosom,2)); for ii=akhir+1:size(kromosom,2) kap2=kap2+kapasitas(kromosom(ii)); end
variabel pada fungsi bagidua.m diatas adalah kromosom (jalur terbaik yang telah dihasilkan dari program utama), kapasitas (permintaan dari setiap agen), dan q (kapasitas kendaraan yaitu 6000 kg). Kapasitas 1 merupakan kapasitas permintaan dari semua agen yang dilalui pada rute 1 dan tidak melebihi dari kapasitas maksimal mobil box yaitu 6000 kg, jika sudah melebihi 6000 kg maka akan terbentuk rute 2 beserta kapasitas permintaan dari semua agen yang dilalui pada rute 2.
132
Lampiran 7 Hasil pengambilan rute secara acak yang membentuk populasi pada generasi awal dengan bantuan software Matlab. Individu 1 =
Individu 2 =
9 19 11
24
8
10
18
14
10
21
12
16
5 Individu 3 =
Individu 4 =
Individu 5 =
Individu 6 =
18
9
22
21
24
19
4
4
21
20
25
15 25
12
10
23
20
14
3
15
17
13
12
2 16
17
7
19
2
18
14
7
6
1
7 17 24
6
5 12
25
11
16
10
2
14
19
15
1
17
20
10
8
13
22
21
3
25
6
9
4
9
8
17
6
12
7
15
20
25
22
18
2
16
1
6
16
23
18 11
21
9
7
3
25
2
21
24
13
16
19
7
1
3 11
4
20
18
Individu 10 = 5 13
22
8 12 24 3
19
11
4
18
11
11
14
24 1
8
12
9 21
3
20
13
13
9
3 20
15
13
23
19
14 5
10
5
14
2
3
20 10
22
11
15
15
20
9
133
8
23
1
17
14
8 13 21 16
22
2
2
6
16
8
5
22
6 15 24 19
25
7 17 25 19 23 15 18 2
24
7
19
10
23
24
5
17
7
16
4
5
5
22
8 23 13 4
10
8
23
1
23
2 12 14 9
12
17
11
6 13
14 24
4
12 7
1 3
1
16
9 22
18
3
5
21 18
Individu 7 = 25
Individu 9 =
6
11
21
Individu 8 =
4 23 15 22 17 25
20
4 10
1
6
Individu 11 = 16
8
5
3
25
10
13
17
12
11
Individu 12 = 12
1
10
14
1
2
15
21
6
13
3
8
17
14
24
Individu 13 = 7
24
19
11
12
2
23
20
15
8
5
22
14
6
Individu 14 = 4
23
7
8
13
14
18
6
16
11
3
22
2
24
20
1
9 25
2
19
10
5
Individu 15 = 14 21 8
15
9
4 24 10 12
23
19
4
20
22
19
24
23
5
20
9
19
16
7
2
11
1
9
18
3
16
7 18 22
13
Individu 16 = 10
14
12
1
22
24
23
18
17
16
8
3
Individu 17 = 22
20
24
1
25
7 5
8
23
11
13
10
12
21
15
7
19
17
16
Individu 18 = 20
15
5
23
22
6
3
2
7
4
Individu 19 = 17
2
11
16
25
19
9
1
Individu 20 = 7 14
3 24 11
17
1
16 14 24
21
8
18 12
19 6
21
9 3
13
16
12
134
8
6
18
15
25
22
4
13
17
4
21
10
15
17
12
1 16
6
21
11
3
25
3
25
6
2
4
15
5
11
18
13
9
14
12
25
10
24
8
7
10
5
4 20
4 18 17
23 5
22
18
15
4
20
9 19 10 25 21 13 15
6
21
2
23
13
21
5 17
20
6
11
7
20
14
1
18
25
19 9
9
2 23 22
Lampiran 8 Individu yang terpilih sebagai induk dengan bantuan software Matlab. 1) Induk 1= Individu 5 17 4
20 18
10 12
8 7
13 22 11
19
21 1
3
25
16 24
5
2
23
15
6
9
25
16 24
5
2
23
15
6
9
14 12
25
10
24
1 11
18
25
22
4
10
8
14
Induk 2= Individu 5 17 4
20 18
10 12
8 7
13 22 11
21
3
19
1
14
2) Induk 1= Individu 18 20
15
5
23
22
6
3
2
7
13
4
16
21
8
19
9
17
13
3
23
5
18
Induk 2= Individu 12 12
1
21
6
17
14
24
19
16
7
2
11
20
9
15
3) Induk 1= Individu 4 21
18
9
22
7
17
24
6
11
16
10
2
14
19
15
1
23
24
8
13
5
12
8
23
13 4
3
20
25
5
14
2
3
20 10
22
4
11
6
9
Induk 2= Individu 7 25
18
6
16
21
9
7
1
12
17
19
15
4) Induk 1= Individu 5 17 4
20 18
10 12
8 7
13 22 11
19
21 1
3 14
135
25
16 24
5
2
23
15
Induk 2= Individu 8 3 16
25 19
2
21
12
24 8
7 23
10
4
6
1
20
9
5
17 14
11
22
15
18 13
7
21
6
17
12
20 10
22
4
11
5) Induk 1= Individu 11 16
8
5
3
25
10
13
23
11
14
1
2
15
22
19
24
8
13
4
20
9
18
5
14
2
3
Induk 2= Individu 7 25
18
6
16
21
9
7
1
23 12
24 17
19
15
6) Induk 1= Individu 5 17 4
20 18
10 12
8 7
13 22 11
19
21 1
3
25
16 24
12
3
5
2
23
15
6
9
11
18
13
9
14
6
14 12
25
10
24
1 11
25 19
14
Induk 2= Individu 17 22
20
24
1
25
8
2
23
21
15
7
19
17
16
10
5
4
7) Induk 1= Individu 18 20
15
5
23
22
6
3
2
7
13
4
16
21
8
19
9
17
14 18
6
3
18
Induk 2= Individu 19 17 9
2 1
11 24
16 12
21
13
5
23
22
15
4
8
7
10
5
12
8
23
13 4
3
20
8) Induk 1= Individu 4 21
18
9
22
7
17
24
6
11
16
10
2
14
19
15
1
136
20
25
Induk 2= Individu 11 16
8
5
3
25
10
13
23
11
14
1
2
15
22 19
24
4
20
9
18
7
6
2
21
6
17
12
9) Induk 1= Individu 16 10 14 12
1 22 24
17
3
16
8
5
9
7 19 20 11 25 13
21
7 23
10
4 15 23 18
Induk 2= Individu 8 3 16
25 19
2
21
12
24 8
6
1
20
9
4
5
17 14
3
16
11
22
15
4
21
10
18 13
10) Induk 1= Individu 13 7 20
24 15
19
11
12
1
9
18
8
5
22
14
6
25
13
17
2
23
6
9
Induk 2= Individu 5 17 4
20 18
10 12
8 7
13 22 11
19
21 1
3 14
137
25
16 24
5
2
23
15
Lampiran 9 Hasil crossover (pindah silang) dengan bantuan software Matlab. 1) Anak 1 17 20 10 4
18
8 13 22 21
12
7
11
19
3 25 16 24
1
5
2 23 15
6
9
5
2 23 15
6
9
14
Anak 2 17 20 10 4
8 13 22 21
3 25 16 24
18
12
7
11
19
1
14
1
11
13
4
16
21
8
19
6
3
2
10
24
2) Anak 1
7
14
12
17
9
18 15
25
20
5
23 22
1 21
6 13
Anak 2 10 3
8 17 24 19 16 23
5
20
9
15
7
2 11 18 14 12 25
22
4
3) Anak 1 21
18
9
22
7
17
24
6
11
16
10
2
14
19
15
1
25
18
6
16
23
24
8
13
21
9
7
1
10
13
22
21
16
19
12
8
6
2
21
24
23
5
12
8
23
13 4
3
20
25
5
14
2
3
20 10
22
4
11
2
23
15
Anak 2
12
17
19
15
4) Anak 1 3
25 1
24 20
5
9 4
18
7
11
14
13
16
8
6
20
17
Anak 2 25 9
4
18
12
7
11
10 19
5
17 1
3
138
14
22
15
5) Anak 1 22 6
19 17
24
16
12
11
8 14
5 1
3
25
2
10
13
23
4 20
9
18
7
21
15
Anak 2 17 19 15 22
4
3 25 18
11
21
9
7
6 16 23 24
8 13
5 14
2 20 10
1 12
6) Anak 1 7
19
24
1
25
8
2
10
23
17
20
22
21
16
15
17
10
8
13
22
21
12
3
5
11 18
13
9
14
6
5 2
23
15
6
9
25
19
4
Anak 2 19 4
20
1
12
11
18
14
3
25
16
24
7
7) Anak 1 16
21
9
17
14
18
6
3
20
5
2
12
24
1
11
13
21
13
5
20
22
6
3
2
17
16
23
15
4
8
19
9
23
22
15
4 8
7
10
Anak 2 7
18
14 12
17
24
6
10
13
23
25
10
24
1 11
12 23
13
4
3
7
21
6 17
8) Anak 1 1
8
5
21
18
9
22
25
11
16
10
2
14
19
24
18
9
16
8
5
3
12
11
14
1
2
15
22
7
20
15
Anak 2 25 19
139
4
20
9) Anak 1 2 12
16
8
3
9
21 23
10
1
24
7
19
20
25 6
16
12
8
1
9
7
5
17
14 22
16
13
17
4
5
17 14
20
11
25
21
10
2
2
23
15
11
22
15
18 13
2
4
15
23 18
Anak 2 13 3
21
24
10
9
18
3
19
6
10) Anak 1 1 14
4
6
25
7
11
19
24 12
10
8
13
21
3
25
16
11
19
1
5
22
14
17 20
23 20
15
8
5
22
4
18
12
7
Anak 2 24
140
6
9
Lampiran 10 Hasil mutasi dengan bantuan software Matlab. 1) Individu baru anak 1 17 6
20 9
10 4
8
18
13 12
22 7
21
11
3
19
25
16
24
5 2
23
15
1 14
Individu baru anak 2 17 20 10 9
4
18
8 13 22 21 12
7
11
3 25 16 24
19
5 2 23 15
6
1 14
2) Individu baru anak 1 2 23
11
13
4
16
21
6
3
1
7
22
9
19
14
15
12
8
20
17 25
18
5
18
14
12 25
1
21
12
8
23
4
3
2
3
20
10
22
4
18
7
10 24
Individu baru anak 2 10 6
8 13
17 3
24 23
19 5
16
20
7 9
2
15
11 22 4
3) Individu baru anak 1 21
18
9
22
7
17
24
6
5
20
25
11
16
10
2
14
19
15 1
16
23
24
8
13
5
13
Individu baru anak 2 25 4
18 11
6 21
9
7
1
12
17
14
19 15
4) Individu baru anak 1 10
13
22
21
3
25
24
11
14
16
19
12
8
6
141
5 1
2
23
20 17
15
9
Individu baru anak 2 25
2
21
20
9
4
24
23
18
12
10
5
7
17
11
14
19
22
15
13
23
24
8
13
16
8
6
4 20
9
18
14
2
1 3
5) Individu baru anak 1 22 7
19 21
24 6
16 17
8 12
5
3
11
25
14
10
1
2 15
Individu baru anak 2 17
19
15
3
25
18
6
16
20
10
22
4
11
21
9
7
23
13
5
1 12
6) Individu baru anak 1 7 19 24
1 25
8
6
20
21
23
17
22
2 10 12 16
3
5 11 18 13
9 14
15 4
Individu baru anak 2 19
17
6
9
10 4
8
20
13 1
22
12
21
11
3
18
25
16
24
5
2
23
15
22
15
4
8
7
10
25
10
24
14 7
7) Individu baru anak 1 16
21
9
17
14
25
19
20
5
2
20
22
18
6
3
12
24
1
6
3
2
23
11 13
Individu baru anak 2 21 1
13 11
5 17
16
23
15
4
8
7
18
14
12
19 9
8) Individu baru anak 1 1
8
20
25
5
21 11
18 16
9 22 10
2
7 14
142
17
24
19 15
6 12 23
13
4
3
Individu baru anak 2 24 6
18 17
9 12
16
8
11
14
3
9
5
3
25 15
10
13
1
2
21
23
10
4
19
20
25 6
23
4
20
7
21
14
11
22
15
2
4
15
22 19
9) Individu baru anak 1 2 18
16 13
8 12
1
24
7
5
17
Individu baru anak 2 13 23
16
12
18
3
8 21
1
9
7
19
20
11
24
10
5
17
14 22
25
6
10) Individu baru anak 1 1 22
9 18 14
3 16 13 17 6
25
7
11
4 21 10
19
2 23 20 15
8
5
24 12
Individu baru anak 2 10
8
13
21
3
25
12
7
11
19
1
5
16 22
143
24 14
2
23
17 20
15
6
9
4
18
Lampiran 11 Hasil populasi baru pada generasi selanjutnya dengan bantuan software Matlab. Individu 1 = 17 20 10 9
4
18
12
Individu 2 = 17 20 10 9 Individu 3 = 11
4
18
13
8 13 22 21 7
7
16
22
6
3
1
Individu 4 = 10
8
17
24
6
13
Individu 5= 21 18
3
19
11
7
23
9 22
9
14
19
9
7 17 24
10
2
14
19
Individu 6 = 25
18
6
16
23
24
8
9
7
Individu 7 = 10 13 22 21
1
12
16
19
12
8
6
Individu 8 = 25
2
21
24
23
10
20
9
4
12
7
Individu 9 = 22 19 24 16
8
5
21
12
11
14
6
17
18
Individu 10 = 17
19
15
3
25
20
10
22
4
11
Individu 11 = 7 6
19 24
1 25
8
23
20
21
17
22
20
17 25
11
18
14
5 12
13
17
1
18
5
23
12 25
1
21
8 23 13
11
5
14
2
3
3 20
20
10
22
19 15
5
2 23 15
9
17 19
14
22
15
4 18
7 11
1 6 9
16
8
6
4 20
9 18
7
5
2
2 15 16 7
23
24
8
13
14
1 12
2 10 12 16
13
1 3
3 25 10 13 23
144
4
20 17 5
18 21
8
15 1
3 25 24
14
6
22 4
6
16
21
2
15
11
11
15
7
25
4
5 2 23 15
10 24
16
20
6
1 14
12
19 5
3 25 16 24
19
21
5 2 23 15
1 14
8 13 22 21 12
4
11
3 25 16 24
15 4
3
5 11
18 13
9 14
Individu 12 = 19 6
17 9
10 4
8
20
Individu 13 = 16 21
1
13
5
20
1
11
17
Individu 15 = 1
8
5
16 21
11
Individu 16 = 24 18
13
16
24
9 16
8
6 15 9
1
4 22
10 8
3
2 5 2
2 8 7
7
18
24
4 20
4
Individu 18 = 13 16 12
8
1
9
7 19 20 11 25
24
10
22 Individu 20 = 10 7
14
3 16 13 17 6
25
8 13 21 11
19
1
7
11
19
22
14
145
4
3
7 21
6
13
25 6 6
2
4 15 23
14 22 4 21 10
2 23
20 15
8
5
24 12
3 25 16 24 5
24
5 17 14 11 22 15 18
20
9 18
10
22 19
19
Individu 19 = 1
15
7 10 25
25
3 25 10 13 23
17
23
19 15
9 21 23 10
5
12
12 23
15
17
7
21
8
6
14
2
19 9
24
3
4
14
1
18
12
23
14 3
24
22
18
16
11
12
5
14 7
11 13
Individu 14 = 21
Individu 17 = 2 16
18
25
1
2
12
11
3
3 23 22 15
5
17
12
21
6
20
25
22
9 17 14 18
19
20
13
2 23 15
17 20
6
9
4 18 12
Lampiran 12 Nilai fitness generasi selanjutnya yang didapatkan dengan bantuan software Matlab. Nilai Fitness individu 1 =
0.0046
Nilai Fitness individu 11 =
0.0045
Nilai Fitness individu 2 =
0.0046
Nilai Fitness individu 12 =
0.0043
Nilai Fitness individu 3 =
0.0037
Nilai Fitness individu 13=
0.0041
Nilai Fitness individu 4 =
0.0039
Nilai Fitness individu 14 =
0.0036
Nilai Fitness individu 5 =
0.0034
Nilai Fitness individu 15 =
0.0033
Nilai Fitness individu 6 =
0.0036
Nilai Fitness individu 16 =
0.0045
Nilai Fitness individu 7 =
0.0036
Nilai Fitness individu 17 =
0.0045
Nilai Fitness individu 8 =
0.0036
Nilai Fitness individu 18=
0.0036
Nilai Fitness individu 9 =
0.0042
Nilai Fitness individu 19 =
0.0035
Nilai Fitness individu 10 =
0.0037
Nilai Fitness individu 20 =
0.0040
146
Lampiran 13 Hasil populasi baru pada generasi ke-1000 dengan bantuan software Matlab. Individu 1 =
Individu 2 =
Individu 3 =
11
13
20
7
11
13
20
7
10
20
7
15
2
19
4
6
12
1 Individu 4 =
Individu 5 =
Individu 6 =
Individu 7 =
Individu 8 =
Individu 9 =
13
18
17
10
15
18
15
2
19
13
5
9
23
4
19
2
14
6 2
8
17 2
9
19
6
15
1
24
9
19
24 18
14
25
12
14
16
25
12
14
1
24 8
16
1
9 8
16
22
14
3
4
6
22
21
23
20
7
8
15
1
14
24
16
3
11
18
6
17
12
5 17 24
9 23
8
1
15
13
22
21
10
19 2
24
9
16
25
5
22
2
3
19
1
5
9
18
3
20
7
16
17
24
19
15
4
Individu 10 = 5 13
15 6
10
12
15 3
22
21 23
4
5
3
22
21 23
4
3
24
20 7
5
4
11
25 22
13
21
10
3 11 18
6
8 20
18
10
15
17 22
21
23
4
7
5
23
1
7
4
18
25
17
6
19
1
12
14
13
11
2
8
6
16
25
10
8
25
18
6
20
9
12
14
11
1
12
2
19
21
9
23
14
24
16
17
3
22
8
20
10
149
8
7
13
13
18
7 12
11
2
17 12
9
14
22
11
25
23
24
21 23
10
4 20
16
25
17
16
21
3
5
10
25
5
21
11
Individu 11 = 18
6
19
13
24
4
16
25
14
21
23
15
Individu 12 = 14
12
2
9
8
1
10
20
7
12
11
11
5
3
24
21
9
23
17
5
3
22
2
13
19
1
10
6
15
4
16
25
17
22
7
20
8
18
Individu 13 = 25
5
3
22
21
23
4
20
7
10
152
8
19
1
16
14
24
11
13
18
17
6
9
12
19
12
14
4
16
25
9
8
17
23
2
16
25
14
5
23
2
16
25
14
5
14
3
22
21
23
4
4
5
Individu 14 = 6 1 Individu 15 = 12 3 Individu 16 = 12 3
24
21
5
3
17 24 17 24
Individu 17 = 13
24
20
7
7 22
10 21 11 21
Individu 18 = 13 18 17 7 Individu 19 = 14
10 11
17
1
Individu 20 = 19
13
25
1
15
15
23
2
18 8
6
8
1 6
1
2
8
19
22
13
21
23
20
12
17 8
6 14
9
20
7
22 4
16 19
18
9
20
7
25 1
5 12
11
9 16 25 20 11
9
18
4
10
8
13 22
13
9
6 24 2
13 11
18
15
11
15
19 6
20 15
19
18
17 10
10
1
12
3 7
10
14
4
25
6
10
15
2
9
16
11
24
4
150
7
322 21 23
15
24
5
12
18
8
16
3
22
21
23
20
19 5 2
Lampiran 14 Nilai fitness generasi ke-1000 yang didapatkan dengan bantuan software Matlab. Nilai Fitness individu 1 =
0.0080
Nilai Fitness individu 11 =
0.0042
Nilai Fitness individu 2 =
0.0080
Nilai Fitness individu 12 =
0.0044
Nilai Fitness individu 3 =
0.0052
Nilai Fitness individu 13=
0.0041
Nilai Fitness individu 4 =
0.0047
Nilai Fitness individu 14 =
0.0044
Nilai Fitness individu 5 =
0.0044
Nilai Fitness individu 15 =
0.0048
Nilai Fitness individu 6 =
0.0054
Nilai Fitness individu 16 =
0.0043
Nilai Fitness individu 7 =
0.0033
Nilai Fitness individu 17 =
0.0046
Nilai Fitness individu 8 =
0.0050
Nilai Fitness individu 18=
0.0042
Nilai Fitness individu 9 =
0.0057
Nilai Fitness individu 19 =
0.0042
Nilai Fitness individu 10 =
0.0047
Nilai Fitness individu 20 =
0.0041
151
152