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