BAB 2 LANDASAN TEORI 2.1 Artificial Intelligence 2.1.1 Definisi dan Penjelasan Singkat AI (Artificial Intelligence) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika. AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin. Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game. 6 7 2.2 Algoritma Genetika 2.2.1 Definisi dan pengertian dasar Algoritma Kata algoritma berasal dari nama seorang ahli matematika dari Uzbekistan Al Khawārizmi ,sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algoritma adalah istilah yang menunjuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik Arab. Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. 2.2.2 Teori Genetika Teori tentang genetika sudah berkembang sejak lama. Teori yang menyatakan bahwa makhluk hidup menurunkan sifat dari induknya telah dikembangkan sejak zaman pra-sejarah. Dimana teori tersebut digunakan dalam proses penyatuan jenis tumbuhan maupun hewan untuk didapatkan sifat yang sesuai dengan keinginan. Walaupun begitu, ilmu genetika modern yang menelusuri proses penurunan sifat itu dimulai sejak pertengahan abad ke-19 yang dilakukan oleh Gregor Mendel. Walaupun dia tidak tahu basis utama dari kesamaan sifat yang diturunkan itu, Mendel mengobservasi bahwa makhluk hidup menurunkan sifat melalui sebuah unit penurunan yang bukan lain adalah gen. Sejak ditemukan penurunan sifat melalui gen inilah proses perkembangan teori 8 genetika ini berkembang dengan pesat. Mendel menyatakan gen terbagi dalam berbagai bagian dalam sel makhluk hidup yang adalah DNA, sebuah molekul yang dibangun dari himpunan 4 nucleotide yang berbeda. 4 nucleotide ini terhimpun secara selang seling dimana akan terbentuk himpunan DNA yang berbeda – beda. Himpunan yang berbeda inilah yang akhirnya akan menghasilkan sifat yang berbeda - beda pula. Himpunan nucleotide tersebut akan di terjemahkan oleh sel membentuk asam amino yang nantinya akan menghasilkan protein, hubungan antara himpunan nucleotide tersebut dengan asam amino itulah yang disebut kode genetik. Untuk itu sampai saat ini banyak peneliti yang terus bereksperimen dengan mengganti – ganti himpunan susunan dari DNA agar dapat menghasilkan bentuk sifat yang diinginkan dari makhluk hidup. 2.2.3 Sejarah Algoritma Genetika Teori Darwin yang sempat membuat orang orang berfikir bahwa manusia berasal dari kera, bahkan lebih rendah telah membuat membutakan kita sekitar abad 19 hingga beberapa tahun belakangan ini. Pada abad ke 19 banyak ilmuwan yang mencoba untuk membuktikan dan mensimulasikannya. Neo darwinisme yang menyebutkan bahwa sejarah kehidupan mahkluk hidup adalah melalui suatu mekanisme proses statistika yang terjadi antara populasi dan spesies, yang dikenal dengan proses manipulasi genetika. Proses ini masing-masing adalah reproduksi, mutasi, kompetisi dan pemilihan. 9 Cikal bakal penggunaan GA (Algoritma Genetika) untuk pencarian dalam sistem buatan diprakarsai oleh beberapa ahli biologi yang menggunakan komputer digital untuk mengerjakan simulasi dari sistem genetika. Diantara para ahli tersebut adalah: 1. Baricelli, N.A pada tahun 1957 melakukan penelitian tentang proses evolusi simbiogenetik yang direalisasikan dengan sistem artificial. 2. Baricelli, N.A pada tahun 1962 mengajukan teori evolusi dan analisis numeriknya 3. Fraser, A.S pada tahun 1960 menyimulasikan sistem genetika dengan komputer, yang meliputi aspek-aspek S-linkage,dominasi dan epistasis. Meskipun penelitian–penelitian tersebut bertujuan untuk meneliti gejala alam namun yang mereka kerjakan secar kebetulan memiliki pemikiran paralel yang memunculkan ide tentang Algoritma Genetika. Fraser mensimulasikan evolusi dari 15 bit Biner sebagai string generasi dan menghitung presentase dari individu-individu yang terpilih oleh fenotip dengan generasigenerasi yang berurutan. Pada saat itu Fraser tidak menyebutkan dalam laporannya bahwa algoritma pencarian dalam gejala alam akan berguna dalam sistem buatan, namun ternyata hasil dari penemuannya ternyata menyerupai optimasi fungsi. Hal itulah yang memberikan inspirasi bagi John Holand dan murid-muridnya untuk mengaplikasikan proses genetika ini pada sistem buatan. Holand menancapkan pondasi dalam karya tulisnya pada teori sistem adaptif yaitu: 10 1. Concern efficient adaptive systems (1962) 2. Information prosessing and prosesing systems (1962) 3. Outline for a logical theory of adaptive systems (1962) Tahun 1962-1965 Holand mengajar tentang theory of adaptive system dan sering memberikan seminar-seminar tentang ini. Dalam masa itu penyempurnaan GA makin jelas. Selanjutnya dibuatlah rumus standart untuk GA ini. 2.2.4 Operasi Dalam Algoritma Genetika Dalam Algoritma Genetika ada 3 operasi penting yang digunakan. Operasi itu akan terus diulang sampai batas waktu yang ditentukan atau sampai menemukan nilai fitness yang sama dalam suatu populasi. Operasi penting itu adalah : 1. Selection (Seleksi) Seleksi adalah tahap dari Algoritma Genetika ketika memilih gen-gen dari populasi yang ada dan kemudian akan dilanjutkan ke tahap selanjutnya yaitu perkembangbiakan (Crossover dan Mutation). Ada beberapa algoritma khusus untuk menjalankan tahap seleksi ini. Contohnya adalah cara roulette-wheel yang langkah-langkahnya adalah sebagai berikut : 1. Fungsi fitness ditentukan pada tiap-tiap individu. Kemudian dinormalisasi. Maksud dari normalisasi ini adalah dengan membagi nilai fitness tiap individu dengan 11 jumlah total dari total fitness yang ada, sehingga jumlah total dari semua fitness pada populasi adalah 1. 2. Populasi diurutkan menurun berdasarkan nilai fitness 3. Kemudian nilai fitness yang sudah ada diakumulasikan berdasarkan gen yang sudah diurutkan. Sehingga nilai fitness suatu individu adalah jumlah dari nilai fitness individu itu dan nilai fitness individu sebelumnya. 4. Random nilai R dari 0 sampai dengan 1 5. Individu yang dipilih adalah individu yang mempunyai nilai akumulasi fitness di atas R. Ada pula beberapa algoritma yang digunakan selain roulette-wheel tersebut. Yang digunakan oleh kebanyakan orang adalah dengan menentukan sendiri batas dari fitness yang diinginkan. Kalau kurang atau melewati batas yang ditentukan maka individu terebut akan dibuang atau diseleksi. Kalau sesuai dengan batas yang ditentukan maka individu tersebut akan dipilih dan kemudian akan dilanjutkan ke proses selanjutnya. 2. Crossover Crossover kalau diterjemahkan secara harafiah ke dalam Bahasa Indonesia adalah Perkawinan Silang. Memang benar yang dilakukan pada tahap ini adalah dengan mengawinkan atau mengkombinasikan 2 individu agar diperoleh individu yang baru. Yang dapat dimisalkan dengan menyilangkan 2 parents (orang tua) dan juga akan menghasilkan 2 children (anak). 12 Ada beberapa jenis crossover : 1. One Point Crossover Yaitu menyilangkan 2 individu dengan 1 batas yang tertentu pada kedua parents. Contoh : Gambar 2.1 One Point Crossover. 2. Two-point crossover Yaitu menyilangkan 2 individu dengan 2 batas yang tertentu pada kedua parents. Contoh : Gambar 2.2 Two Point Crossover. 3. Cut and Splice Crossover 13 Yaitu menyilangkan 2 individu dengan 1 atau lebih batas yang tidak ditentukan pada kedua parents. Contoh : Gambar 2.3 Cut and Splice Crossover. 3. Mutation (mutasi) Mutasi adalah dengan memutasi atau mengganti salah satu gen dengan gen lain pada suatu individu tertentu. Bukan semua individu pada populasi melaikan hanya satu individu yang mengalami mutasi tersebut. Hal ini dilakukan agar diharapkan menemukan individu yang mempunyai nilai fitness yang diinginkan. 2.2.5 Konsep algoritma genetika Algoritma Genetika khususnya diterapkan sebagai simulasi komputer dimana sebuah populasi representasi abstrak (kromosom) dari solusi-solusi calon (individual) pada sebuah masalah optimisasi akan berkembang menjadi solusi-solusi yang lebih baik. Secara tradisional, solusi-solusi dilambangkan dalam biner sebagai string '0' dan '1', walaupun dimungkinkan juga penggunaan penyandian (encoding) yang berbeda. Evolusi dimulai dari 14 sebuah populasi individual acak yang lengkap dan terjadi dalam generasi-generasi. Dalam tiap generasi, kemampuan keseluruhan populasi dievaluasi, kemudian multiple individuals dipilih dari populasi sekarang (current) tersebut secara stochastic (berdasarkan kemampuan mereka), lalu dimodifikasi (melalui mutasi atau rekombinasi) menjadi bentuk populasi baru yaitu populasi sekarang (current) pada iterasi berikutnya dari algoritma. Dalam teori genetika sebuah individu akan mengalami perkembang biakan, dimana pada saat perkembangbiakan tersebut terdapat penurunan sifat kepada keturunannya (offspring). Keturunan ini dapat memiliki sifat gabungan dari kedua parent. Pada saat penurunan sifat maka akan terdapat individu baru yang akan di seleksi alam. Bila turunan tersebut mampu baik maka akan mampu bertahan, sebaliknya pula bila tidak maka akan musnah. Pada akhirnya kita akan mendapat keturunan yang terbaik. Pada akhirnya individu yang terbaik tersebut adalah solusi optimal bagi permasalahan kita. 2.2.6 Mekanisme Algoritma Genetika Mekanisme yang ada dalam Algoritma Genetika adalah sangat sederhana, yaitu hanya melibatkan penyalinan string dan pertukaran bagian string. Siklus perkembangbiakan GA diawali dengan pembuatan himpunan solusi secara acak yang dinamakan populasi. Dimana didalamnya terdapat individu-individu yang dinamakan kromosom. Kromosom ini secara lambat laun mengalami iterasi ’Perkembangbiakan’ dalam sebuah generasi. Selama dalam sebuah generasi kromosom- 15 kromosom ini di evaluasi dengan menggunakan rumus yang telah ditentukan dengan rumus fitness. Untuk menciptakan generasi berikutnya dengan kromosom yang baru (offspring) dapat dilakukan dengan menggabungkan dua potongan kromosom yang telah didapatkan dengan operator crossover atau mutasi. Sebuah generasi baru sebelum dievaluasi lagi, maka dia melalui proses seleksi berdasarkan fungsi fitnessnya. Dari kreasi ini kromosomkromosom yang paling fit mempunyai kemungkinan besar untuk diseleksi. Setelah beberapa generasi maka algoritma ini akan mengalami konvergen pada kromosom terbaik yang merupakan nilai optimum dari permasalahan yang diselesaikan. 2.2.7 Proses Algoritma Genetika Siklus Algoritma Genetika bisa Disingkat sebagai berikut : Populasi Awal Seleksi Individu Reproduksi : Crossover dan Mutasi Populasi Baru Gambar 2.4 Siklus Algoritma Genetika. 16 Langkah pertama dalam pemecahan masalah dengan GA adalah pengkodean terhadap masalah yang akan kita pecahkan. Pada algoritma ini dalam mengasumsikan sebuah solusi untuk sebuah persoalan dimungkinkan dengan diwakili oleh satu set parameter. Parameter ini dinamakan gen. Berisi nilai-nilai yang bersatu membentuk string (Kromosom). Selanjutnya kromosom yang berkumpul membentuk populasi. Dari sebuah populasi inilah GA memulai untuk pencarian. Dalam GA fungsi Fitness harus dirancang sesuai dengan masing-masing masalah yang akan diselesaikan. Misalnya saja untuk masalah mencari rute terpendek dari suatu perjalanan, maka fungsi Fitnessnya adalah jarak tempuh. Sedangkan untuk optimasi penjadwalan kuliah fungsi Fitnessnya melibatkan faktor-faktor seperti adanya dua kuliah atau lebih yang akan diajarkan dalam satu kelas, kepadatan dosen mengajar setiap hari, penempatan kuliah dan praktikum tidak semestinya. Sebagai contoh untuk pengkodean jika kita mempunyai masalah yaitu mencari maximum sebuah fungsi dari 3 variabel(x,y,z) dan akan menampikan masing-masing variabel dengan 6 bit. Dari contoh ini kita melakukan pengkodean dengan membentuk kromosom yang terdiri dari 3 gen yang masing-masing gen terdiri dari 6 bit sehingga sebuah kromosom terdiri dari 18 bit. Suatu hal yang sangat mendasar dari GA adalah bahwa algoritma ini bekerja pada daerah pengkodean dan daerah solusi. Operasi genetika (Crossover dan Mutasi) bekerja 17 pada daerah pengkodean, sedang proses evaluasi dan proses seleksi bekerja pada daerah solusi. Dalam reperesentasi nonbiner, ada dua hal yang perlu diperhatikan untuk pengkodean baik dalam fenotip ataupun genetik, yaitu: 1. Feasibilitas dan legalitas dari sebuah kromosom 2. Pemetaan Feasibilitas adalah apakah solusi/kromosom berada pada daerah yang feasible dari domain permasalahan InFeasibilitas kromosom menghilangkan kealamian batasan-batasan dalam permasalah optimasi. Legalitas adalah apakah suatu solusi/kromosom dapat menyelesaikan masalah. Untuk beberapa permasalahan kasus metode pinalti telah diajukan untuk mengatasi kasus kromosom yang tidak dimungkinkan. Dalam permasalan kasus optimasi nilai optimum secara typikal akan berada di wilayah antara daerah yang mungkin ataupun yang tidak mungkin. Penerapan metode pinalti akan mengeksploitasi pencarian GA pada nilai optimum di dua daerah tersebut. Kromosom-kromosom yang tidak legal menghilangkan kealamian dari teknik encoding. Untuk beberapa permasalah kombinasional, beberapa cara digunakan untuk menghindari keturunan yang tidak legal karena tidak dapat mewakili suatu solusi, dalam arti kromosom tersebut tidak dapat di evaluasi. Salah satu cara, misalnya PMX (Partially Matched Crossover) operator. Metode ini digunakan untuk mencegah dihasilkannya kromosom yang tidak mungkin dan tidak ilegal. 18 Pemetaan dari kromosom-kromosom ke solusi memungkinkan satu dari tiga kasus ini terjadi: 1. Pemetaan dari 1 ke –n 2. Pemetaan dari 1 ke 1 3. Pemetaan dari –n ke 1 Pemetaan 1 ke 1 merupakan pemetaan terbaik, karena dari pemetaan ini satu kromosom dapat dipasangkan dengan satu solusi. Pada pemetaan –n ke 1, sejumlah –n kromosom mewakili satu solusi yang sama, sedangkan pemetaan 1 ke –n adalah pemetaan yang tidak diinginkan karena merelasikan satu kromosom dengan banyak solusi, yang menjelaskan banyak solusi sehingga menjadi tidak jelas solusi mana yang sebenarnya yang ditujukan. 2.3 VRP(Vehicle Routing Problem) VRP merupakan program non-linear yang mencari sebuah solusi pemecahan masalah. Program ini pertama kali ditemukan oleh Dantzig and Ramser pada tahun 1959. VRP terdiri dari penentuan rute kendaraan yang melayani beberapa pelanggan. Setiap kendaraan memiliki kapasitas angkut, dan setiap pelanggan memiliki demand. Tiap pelanggan dikunjungi tepat satu kali dan total demand tiap rute tidak boleh melebihi kapasitas angkut kendaraan. Dalam VRP sendiri dikenal pula istilah depot, dimana tiap kendaraan harus berangkat dan kembali ke depot itu. Hal tersebutlah yang menyebabkan VRP sering disebut sebagai permasalahan n-TSP. 19 Faktor yang sering muncul pada VRP adalah masalah kapasitas yang dikenal dengan nama Capacitated Vehicle Routing Problem (CVRP) dan juga masalah batasan waktu yang dikenal sebagai Vehicle Routing Problem with Time Windows (VRPTW). Kedua permasalahan ini dapat digabungkan dengan prioritas utama yaitu semua permintaan terpenuhi batas waktunya. Ada pun beberapa macam tipe Vehicle Routing Problem (VRP) berdasarkan faktor – faktor yang ditemui: • Capacitated VRP (VRP) Faktor : setiap kendaraan mempunyai kapasitas yang terbatas. • VRP With Time Windows (VRPTW) Faktor : pelanggan harus dilayani dengan waktu tertentu • Multiple Depot VRP (MDVRP) Faktor : distributor memiliki banyak depot • VRP With Pick-Up and Delivering (VRPPD) Faktor : pelanggan diperbolehkan mengembalikan barang ke depot asal dan menerima barang dari pelanggan • Split Delivery VRP (SDVRP) Faktor : pelanggan dilayani dengan kendaraan berbeda 20 • Stochastic VRP (SVRP) Faktor : munculnya random values (seperti jumlah pelanggan, jumlah permintaan, waktu perjalanan atau waktu pelayanan) • Periodic VRP Faktor : pengantaran hanya dilakukan di hari tertentu 2.3.1 VRPTW Menurut Kallehauge dkk. (2001), vehicle routing problem dengan time windows (VRPTW) adalah perluasan dari VRP. Jika pada VRP ditambahkan time window pada masing–masing konsumen, maka permasalahan tersebut menjadi VRPTW. Untuk VRPTW, selain adanya kendala kapasitas kendaraan, terdapat tambahan kendala yang mengharuskan kendaraan untuk melayani tiap konsumen pada time frame tertentu. Kendaraan boleh datang sebelum time window “open”, tetapi konsumen tersebut tidak dapat dilayani sampai time window “open”. Kendaraan tidak diperbolehkan untuk datang setelah time window “closed”. Tangiah (1995) mendefinisikan VRPTW sebagai permasalahan untuk menjadwalkan sekumpulan kendaraan, dengan kapasitas dan travel time terbatas, dari central depot kesekumpulan konsumen yang tersebar secara geografis, dengan demand diketahui, dalam time windows tertentu. Time windows adalah two sided, yang berarti bahwa tiap konsumen harus dilayani saat atau setelah earliest time, dan sebelum latest time dari konsumen tersebut. Jika kendaraan datang ke konsumen sebelum earliest time dari 21 konsumen tersebut, maka akan menghasilkan idle atau waktu tunggu. Kendaraan yang datang ke konsumen setelah latest time adalah tardy. Terdapat pula waktu service yang diperlukan untuk melayani tiap konsumen. Biaya rute dari suatu kendaraan adalah total dari waktu travel (proposional dengan jarak), waktu tunggu, dan waktu service, yang diperlukan untuk mengunjungi sekumpulan konsumen. Homberger dkk. (1999) mendefinisikan permasalahan VRPTW sebagai berikut: n konsumen akan dilayani dari sebuah depot, dengan sejumlah kendaraan yang memiliki kapasitas, Q, yang sama. Untuk tiap konsumen i, i=1, 2, ..., n, terdapat demand qi, waktu service si, dan service time window zi=[ei, fi]. Lower bound ei merupakan waktu paling awal untuk melakukan service, dan upper bound fi, waktu paling lambat untuk melakukan service. Demand qi dari konsumen i harus dipenuhi dengan sekali service saja, dalam batas time window zi. Sebagai tambahan, e0 merupakan waktu paling awal untuk kendaraan berangkat dari depot i, i=0, dan f0 merupakan waktu paling lambat untuk kendaraan kembali ke depot. Data mengenai lokasi dari depot, dan konsumen, jarak terpendek dij, serta waktu travel d’ij antara dua lokasi, diketahui. Tujuannya untuk menentukan jadwal rute yang feasible, yaitu pertama untuk meminimalkan jumlah kendaraan, dan kedua untuk meminimalkan total jarak travel. Konsumen tidak dapat dilayani diluar time window mereka masing–masing. Tetapi kendaraan diperbolehkan untuk datang sebelum lower bound dari time window. Apabila hal ini terjadi, maka kendaraan harus menunggu sampai batas waktu paling awal service tersebut dapat dilakukan.