BAB 2 LANDASAN TEORI 2.1 Pengertian Optimasi - Penerapan Algoritma Genetika Untuk Penyelesaian Vehicle Routing Problem With Delivery And Pick-Up (VRP-DP)

BAB 2 LANDASAN TEORI

2.1 Pengertian Optimasi

  Optimasi adalah salah satu ilmu dalam matematika yang fokus untuk mendapatkan nilai minimum atau maksimum secara sistematis dari suatu fungsi, peluang maupun pencarian nilai lainnya dalam berbagai kasus. Optimasi sangat berguna dihampir segala bidang dalam rangka melakukan usaha secara efektif dan efisien untuk mencapai target hasil yang ingin dicapai. Pengoptimalan dilakukan untuk menekan pengeluaran untuk menghasilkan output yang maksimal. Optimasi ini juga penting karena persaingan sudah sangat ketat disegala bidang yang ada.

  Seperti yang dikatakan sebelumnya, bahwa optimasi sangat berguna bagi hampir seluruh bidang yang ada, maka berikut ini adalah contoh-contoh bidang yang sangat terbantu dengan adanya teknik optimasi tersebut. Bidang tersebut, antara lain: Arsitektur, Data Mining, Jaringan Komputer, Signal and Image Processing, Telekomunikasi, Ekonomi, Transportasi, Perdagangan, Pertanian, Perikanan, Perkebunan, Kehutanan dan sebagainya.

  Teknik optimasi secara umum dapat dibagi menjadi dua bagian, yang pertama adalah Mathematical Programing, dan yang kedua adalah Combinatorial Optimization. Dalam bidang mathematical programming dapat dibagi dua, yaitu support vector

  

machines dan gradient descent. Sedangkan pada bidang Combinatorial Optimization

  dibagi dalam dua bidang., yaitu Graph Theory dan Genetic Algorithm. Pemfokusan bidang tersebut dikarenakan beberapa parameter, diantaranya, Restoration, Feature

  selection , Classification, Clustering, RF assignment, Compression, dan sebaginya.

  Adapun cara untuk membuat optimasi yang baik, adalah dengan memperhatikaan hal-hal berikut, Model dan Starting Poin -

  Convergence to global minimum / maximum - Classes of nice optimization problems - Find a threshold - Constraint give a trade off -

  Optimasi kombinatorial adalah topik dalam ilmu komputer teroritis dan matematika terapan yang berfungsi untuk mencari solusi dengan biaya yang terkecil untuk masalah matematika dimana setiap solusi dikaitkan dengan numerical cost. Dalam beberapa permasalahan, pencarian menyeluruh tidak dapat dilakukan. Beroperasi pada daerah yang dioptimasi, dimana set solusi yang layak adalah diskrit atau dapat dikurangi menjadi diskrit, dan dimana tujuannya adalah mencari solusi yang terbaik. Beberapa masalah umum yang melibatkan optimasi kombinatorial adalah traveling salesman problem dan the minimum spanning tree problem.

  Optimasi kombinatorial adalah bagian dari optimasi yang berhubungan dengan riset operasi, teori algoritma, dan teori kompleksitas komputasi. Ini memiliki aplikasi penting dalam bebrapa bidang termasuk artificial intelligence, matematika dan rekayasa perangkat lunak.

  Beberapa penilitian literatur menganggap optimasi diskrit terdiri dari program integer bersama-sama dengan optimal kombinatorial walaupaun semua terjalin erat dengan penelitian literature. Hal ini sering melibatkan cara penentuan yang efisien untuk mengalokasi sumber daya yang digunakan untuk mencari untuk masalah matematika.

2.2 Vehicle Routing Problem

  VRP diperkenalkan pertama kali oleh Dantziq dan Ramser pada tahun 1959 dan semenjak itu dipelajari secara luas. VRP didefnisikan sebagai sebuah pencarian atau penggunaan yang efisien untuk sejumlah kendaraan (vehicle) dimana kendaraan tersebut harus mengunjungi sejumlah tempat untuk mengantar dan/atau menjemput orang/barang. Istilah pelanggan digunakan untuk menunjukkan tempat pemberhentian. Dan seorang pelanggan hanya boleh dilayani oleh sebuah kendaraan (vehicle) saja. Hal ini dilakukan untuk meminimalkan biaya yang diperlukan dengan mempertimbangkan kapasitas sebuah kendaraan dalam satu kali pengantaran.

  VRP juga dapat dipandang sebagai kombinasi dari dua permasalahan optimasi lain yaitu Bin Packing Problem (BPP) dan Travelling Salesman Problem (TSP). BPP dapat digambarkan sebagai berikut: “Diberikan sejumlah angka, yang melambangkan ukuran dari sejumlah item, dan sebuah konstanta K, yang melambangkan kapasitas dari

  

bin . Berapa jumlah bin minimum yang diperlukan?”. Tentu saja satu item hanya dapat

  berada dalam satu bin saja, dan total kapasitas item pada setiap bin tidak boleh melebihi kapasitas dari bin tersebut. Dan TSP adalah suatu kondisi dimana seorang pedagang keliling yang harus mengunjungi n kota dengan aturan bahwa pedagang tersebut harus mengunjungi setiap kota hanya sebanyak satu kali untuk meminimalisasi total jarak perjalanannya dan pada akhirnya ia harus kembali ke kota asalnya. Hubungan keduanya dengan VRP adalah, vehicle dapat dihubungkan dengan pelanggan menggunakan BPP, dan urutan kunjungan vehicle terhadap tiap konsumen dapat diselesaikan menggunakan TSP.

  BPP dan TSP dikategorikan sebagai permasalahan NP-hard problem, sehingga

  VRP juga dapat dikategorikan sebagai NP-hard problem, dalam optimasi kombinatorial yang mungkin belum ditemukan metode eksak untuk mencari nilai optimalnya. Untuk memecahkan VRP berskala kecil dengan beberapa pelanggan dan semua kendaraannya mempunyai kapasitas yang sama, algoritma branch and bound terbukti sebagai metode terbaik dalam mencari solusi optimal. Dan untuk memecahkan VRP berskala besar dapat diselesaikan secara heuristik. Heuristik adalah algoritma berbasis kira-kira, yang berusaha mencari solusi optimal secepat mungkin. Metaheuristik adalah aturan-aturan

  

penyelesaian secara umum yang memperluas ruang solusi untuk mengidentifikasi solusi

yang baik dan sering menyimpan beberapa susunan rute standar serta perbaikan

heuristik.

2.3 Algoritma Genetika

  2.3.1 Sejarah Singkat Algoritma Genetika

  Algoritma Genetika ditemukan pertama kali oleh John Holland pada tahun 1960-an dan kemudian dikembangkan bersama murid dan rekan kerjanya di Universitas Michigan pada tahun 1960-an sampai 1970-an. Tujuan Holland mengembangkan algoritma genetika saat itu bukan untuk mendesain suatu algoritma yang dapat menyelesaiakna suatu masalah, namun lebih mengarah ke studi mengenai fenomena adaptasi yang terjadi di alam dan mencoba menerapkan mekanisme adaptasi alam tersebut ke dalam sistem komputer.

  Algoritma Genetika yang dibuat Holland merupakan sebuah metode untuk memisahkan satu populasi kromosom (terdiri dari bit-bit 1 dan 0) ke populasi baru dengan menggunakan “seleksi alam” dan operator genetik seperti crossover, mutation (mutasi) dan inversion. Crossover menukar bagian kecil dari dua kromosom, mutasi mengganti secara acak nilai gen beberapa lokasi pada kromosom dan inversion membalikkan urutan beberapa gen yang berurutan dalam kromosom. Dasar teori inilah yang menjadi dasar kebanyakan program yang menggunakan Algoritma Genetika saat ini.

  2.3.2 Karakteristik Algoritma Genetika

  Algoritma Genetika memberikan suatu pilihan bagi penentuan nilai parameter dengan meniru cara reproduksi genetika, pembentukan kromosom baru serta seleksi alam seperti yang terjadi pada makhluk hidup. Algoritma Genetika mempunyai karakteristik-karakteristik yang perlu diketahui sehingga dapat terbedakan dari prosedur pencarian atau optimasi yang lainnya. Karakteristiknya dapat di asumsikan sebagai berikut.

  1. Algoritma Genetika bekerja dengan pengkodean dari himpunan solusi permasalahan berdasarkan parameter yang telah ditetapkan dan bukan parameter itu sendiri.

  2. Algoritma Genetika malakukan pencarian pada sebuah populasi dari sejumlah individu-individu yang merupakan solusi permasalahan bukan hanya dari sebuah individu.

  3. Algoritma Genetika merupakan informasi fungsi objektif (fitness), sebagai cara untuk mengevaluasi individu yang mempunyai solusi terbaik, bukan turunan dari suatu fungsi.

  4. Algoritma Genetika aturan-aturan transisi peluang, bukan aturan-aturan deterministik.

2.3.3 Komponen-komponen Algoritma Genetika

  Pada dasarnya algoritma genetika memiliki 7 komponen, antara lain:

a. Pendefenisian Individu

  Pendefenisian individu merupakan proses pertama yang harus dilakukan dalam Algoritma Genetika yang menyatakan salah satu solusi yang mungkin dari suatu permasalahan yang diangkat. Pendefenisian individu dilakukan dengan mendefenisikan jumlah dan tipe dari gen yang digunakan dan tentunya dapat mewakili solusi permasalahan yang diangkat. Sebuah kromosom dibentuk dari komponen-komponen penyusun yang disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan. Menurut Marek Obitko terdapat beberapa macam teknik pengkodean antara lain :

1. Binary Encoding (Pengkodean Biner)

  Pada binary encoding, setiap kromosom akan terdiri dari deretan bilangan biner, sehingga allela setiap gen-nya ada dua, yaitu bernilai 0 atau 1. Contohnya:

  Kromosom 1 1101100100110110 Kromosom 2 1101011000011110

  2. Permutation Encoding (Pengkodean Permutasi)

  Pada permutation encoding, setiap kromosom terdiri atas deretan angka yang menyatakan posisi dalam suatu urutan. Nilai dalam suatu lokus yang ada pada satu kromosom tidak boleh ada yang sama. Biasanya digunakan pada permasalahan TSP. Contohnya: Pada permasalahan TSP (vehicle routing problem), dimana seorang sales harus mengantarkan barang dengan melewati beberapa kota. Syaratnya dia tidak boleh melewati kota yang sama.

  Kromosom 1 1 4 7 9 6 3 5 2 8 Kromosom 2 9 3 2 5 8 1 6 4 7

  3. Value Encoding (Pengkodean Nilai)

  Pada value encoding, setiap kromosom berupa kumpulan dari suatu nilai yang bisa berupa macam-macam nilai sesuai dengan permasalahan yang dihadapi. Seperti bilangan real, char dan lain-lain. Contohnya:

  

Kromosom 1 A B E D B C A E D D

Kromosom 2 N W W N E S S W N N

  4. Tree Encoding (Pengkodean Pohon)

  Pada tree encoding, tiap kromosom adalah pohon dari objek-objek seperti fungsi atau perintah dalam bahasa pemrograman. Contohnya: (+ x (/5 y))

  • + * /

  5 y

Gambar 2.1 Tree Encoding

  b. Nilai Fitness

  Suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran performansinya. Di dalam evolusi alam, individu yang bernilai fitness tinggi yang akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pengertian nilai fitness ini sendiri adalah nilai yang menyatakan baik tidaknya suatu solusi (individu). Algoritma Genetika bertujuan mencari individu dengan nilai fitness yang paling tinggi. Umumnya kromosom ber-fitness tinggi akan bertahan dan berlanjut kegenerasi berikutnya. Kromosom yang telah terbentuk akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi kromosom-kromosom tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan menggunakan ukuran yang disebut dengan nilai fitness. Nilai fitness inilah yang dijadikan acuan dalam mencapai nilai optimal dalam Algoritma Genetika.

  c. Seleksi

  Proses seleksi adalah proses evaluasi kualitas setiap kromosom di dalam populasi untuk memperoleh peringkat calon solusi. Seleksi bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Proses seleksi dilakukan dengan mencari kromosom terbaik dalam satu generasi, dimana untuk menentukan suatu kromosom terbaik dapat dilihat dari nilai fitness-nya. Proses seleksi dilakukan dengan mengevaluasi setiap kromosom berdasarkan nilai fitness untuk mendapatkan peringkat terbaik. rekombinasi. Umumnya kromosom ber-fitness tingggi yang berpeluang lebih besar untuk terpilih. Kromosom dengan kualitas yang lebih baik akan memiliki peluang lebih besar untuk terpilih sebagai calon kromosom generasi berikutnya.

  Kemampuan Algoritma Genetika untuk memproduksi kromosom yang lebih baik secara progresif tergantung pada penekanan selektif (Selektif

  Pressure ) yang diterapkan ke populasi. Penekanan selektif dapat diterapkan

  dalam dua cara yaitu dengan membuat lebih banyak kromosom anak yang dipelihara dalam populasi dan memilih hanya kromosom-kromosom terbaik bagi generasi berikut. Walaupun induk dipilih secara acak, metode ini akan terus menghasilkan kromosom yang lebih baik berhubungan dengan penekanan selektif yang diterapkan pada individu anak tersebut. Cara lainnya adalah dengan memilih induk yang lebih baik ketika membuat keturunan baru. Dengan metode ini, hanya kromosom sebanyak yang dipelihara dalam populasi yang perlu dibuat bagi generasi berikutnya. Walaupun penekanan selektif tidak diterapkan ke level keturunan, metode ini akan terus menghasilkan kromosom yang lebih baik, karena adanya penekanan selektif yang diterapkan ke induk.

  Terdapat beberapa metode seleksi untuk mendapatkan calon induk yang baik, namun proses seleksi yang biasa digunakan adalah Roulette Wheel

  Selection (Seleksi Roda Roulette). Sesuai dengan namanya, metode ini

  menirukan permainan roulette-wheel dimana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai fitness-nya.

d. Perkawinan Silang (Crossover)

  Salah satu komponen paling penting dalam Algoritma Genetika adalah

  crossover atau perkawinan silang, dikenal juga dengan pindah silang. Crossover

  bertujuan menambah keanekaragaman kromosom digenerasi berikutnya berdasarkan kromosom-kromosom dari generasi saat ini. Crossover melibatkan dua induk untuk menghasilkan keturunan yang baru. Crossover dilakukan dengan melakukan pertukaran gen dari dua induk secara acak. Kromosom baru yang terbentuk akan mewarisi sebagian dari sifat kromosom induknya. Dalam proses ini dilakukan penukaran bagian gen yang telah dipilih posisinya secara acak dalam satu kromosom. Dalam proses ini, perkawinan silang yang terjadi adalah perkawinan antar seluruh gen dalam suatu generasi.

  Perkawinan Silang(Crossover) juga dapat berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang sangat kecil, suatu kromosom dengan gen-gen yang mengarah ke solusi akan sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini digunakan suatu aturan bahwa perkawinan silang hanya bisa dilakukan dengan suatu probabilitas tertentu . Artinya pindah silang bisa dilakukan hanya jika

  ρ c

  suatu bilangan random yang dibangkitkan kurang dari probabilitas yang ditentukan tersebut. Pada umumnya probabilitas tersebut diset mendekati 1.

  Probabilitas crossover merupakan nilai perbandingan jumlah

  ρ c

  kromosom yang diharapkan akan mengalami perkawinan silang terhadap jumlah kromosom dalam suatu populasi. Probabilitas crossover yang tinggi akan memungkinkan pencapaian alternatif solusi yang lebih bervariasi dan mengurangi kemungkinan menghasilkan nilai optimum yang tidak dikehendaki. Tetapi bila nilai ini terlalu tinggi akan mengakibatkan pemborosan waktu untuk melakukan perhitungan di daerah solusi yang tidak menjanjikan hasil yang optimal.

e. Mutasi

  Mutasi menciptakan individu baru dengan melakukan modifikasi satu atau lebih gen dalam individu yang sama. Mutasi berfungsi untuk menggantikan gen yang hilang dari populasi selama proses seleksi serta menyediakan gen yang tidak ada dalam populasi awal, sehingga mutasi akan meningkatkan variasi populasi. Dalam proses ini dilakukan mutasi atau penukaran pasangan gen yang telah dipilih secara acak dalam satu kromosom. Penukaran pasangan ini dilakukan pada dua gen dalam suatu kromosom. Melalui mutasi, kromosom baru dapat diciptakan dengan melakukan modifikasi terhadap satu atau lebih karakter pada kromosom yang sama.

  Cara termudah untuk melakukan mutasi adalah dengan mengubah satu atau lebih bagian dalam kromosom dan hal ini tergantung pada probabilitas mutasi. Probabilitas mutasi menentukan probabilitas jumlah gen di dalam satu populasi yang diharapkan mengalami mutasi. Apabila nilai probabilitas mutasi terlalu kecil, banyak kromosom yang berguna mungkin tidak akan muncul dalam populasi, tetapi apabila terlalu tinggi maka keturunan yang dihasilkan akan kehilangan sifat-sifat yang mungkin saja merupakan sifat yang unggul dari induknya dan Algoritma Genetika akan kehilangan kemampuan untuk belajar dari pencarian-pencarian sebelumnya.

  f. Elitisme

  Proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa suatu individu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitness-nya menurun) karena proses perkawinan silang. Untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama proses evolusi, maka perlu dibuat satu atau beberapa kopinya. Prosedur inilah yang dikenal sebagai elitisme.

  Proses ini dilakukan untuk mempertahankan individu yang terbaik dari tiap generasi, karena setelah dilakukan proses perkawinan silang dan mutasi, kemungkinan untuk kehilangan kromosom yang terbaik sangat besar. Proses

  elitisme ini dilakukan dengan menggantikan kromosom terburuk dari generasi

  berikutnya dengan kromosom terbaik dari generasi sebelumnya apabila kromosom yang baru tersebut tidak lebih buruk dari yang lama.

  g. Evaluasi Solusi

  Proses evaluasi dilakukan dengan menghitung nilai fitness dari setiap kromosom dalam suatu generasi. Bila ada kromosom yang tidak mempunyai informasi titik tujuan maka kromosom ini dianggap mempunyai nilai fitness terbesar dan dikatakan tidak valid.

  Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai

  fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria

  berhenti. Beberapa kriteria berhenti yang sering digunakan antara lain: 1. Berhenti pada generasi tertentu.

  2. Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah.

  3. Berhenti bila dalam n generasi berikut tidak didapatkan nilai fitness yang lebih tinggi.

2.3.4 Parameter Genetik

  Yang disebut dengan parameter disini adalah parameter kontrol Algoritma Genetika, yaitu: ukuran populasi (popsize), probabilitas crossover (peluang crossover-

  ) dan probabilitas mutasi (peluang mutasi- ). Nilai parameter ini ditentukan juga

  ρ c ρ m

  berdasarkan permasalahan yang akan dipecahkan. Tidak ada aturan pasti tentang berapa nilai setiap parameter ini. (Koza, 2001). Ukuran populasi kecil berarti hanya tersedia sedikit pilihan untuk crossover dan sebagian kecil dari domain solusi saja yang dieksplorasi untuk setiap generasinya. Sedangkan bila terlalu besar, kinerja Algoritma Genetika menurun. Penelitian menunjukkan ukuran populasi besar tidak mempercepat proses pencarian solusi. Disarankan ukuran populasi berkisar antara 20-30, probabilitas

  

crossover umumnya berkisar antara 0,6 sampai dengan 0,9 dan probabilitas mutasi kecil

  berkisar 0.5%-1% atau sekitar 1 dibagi dengan jumlah gen. Jumlah generasi besar berarti semakin banyak iterasi yang dilakukan, dan semakin besar domain solusi yang akan dieksplorasi (Nico saputro dan Yento, 2004).

  Menurut Kusumadewi dan Purnomo (2005), ada beberapa rekomendasi yang bisa digunakan untuk menentukan nilai parameter tersebut, antara lain :

  1. Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong merekomendasikan untuk nilai parameter control : (popsize; ; ) = (50; 0,6; 0,001)

  ρ c ρ m

  2. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette merekomendasikan :

  (popsize; ; ) = (30; 0,95; 0,01)

  

ρ c ρ m

  3. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya adalah : (popsize; ; ) = (80; 0,45; 0,01)

  ρ c ρ m

2.3.5 Mekanisme Kerja Algoritma Genetika

  Algoritma Genetika dimulai dengan pembentukan sejumlah solusi yang dilakukan secara acak. Sebuah solusi yang dibangkitkan dalam Algoritma Genetika disebut sebagai kromosom, sedangkan kumpulan kromosom-kromosom tersebut disebut sebagai populasi. Sebuah kromosom dibentuk dari komponen-komponen penyusun disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan.

  Kromosom-kromosom tersebut akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi, kromosom-kromosom tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan dengan menggunakan ukuran yang disebut dengan nilai fitness. Untuk memilih kromosom yang tetap dipertahankan untuk generasi selanjutnya dilakukan proses yang disebut dengan seleksi. Proses seleksi kromosom menggunakan konsep teori evolusi Darwin yaitu kromosom yang mempunyai nilai fitness tinggi akan memiliki peluang lebih besar untuk terpilih lagi pada generasi selanjutnya.

  Kromosom-kromosom baru yang disebut dengan kromosom anak (offspring), dibentuk dengan cara melakukan perkawinan antar kromosom-kromosom dalam satu generasi yang disebut sebagai proses perkawinan silang (crossover). Mekanisme perubahan susunan unsur penyusun makhluk hidup akibat adanya faktor alam yang disebut dengan mutasi direpresentasikan sebagai proses berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak. Jumlah gen dalam populasi yang beberapa generasi akan dihasilkan kromosom-kromosom yang nilai gen-gennya konvergen ke suatu nilai tertentu yang merupakan solusi terbaik yang dihasilkan oleh Algoritma Genetika terhadap permasalahan yang ingin diselesaikan.

  Secara umum, blok diagram dari mekanisme kerja Algoritma Genetika ini adalah seperti yang terlihat pada gambar Gambar 2.3.

  Mulai Bangkitkan Populasi Awal

  Evaluasi Fungsi Tujuan Apakah Kriteria

  Seleksi

  Optimasi Tidak tercapai

  Bangkitkan Populasi

  Pindah Silang

  Baru

  Ya

  Individu-individu Mutasi Terbaik Selesai