BAB2 LANDASAN TEORI .1 Kecerdasan Buatan Kecerdasan buatan (Artificial Intelligence) merupakan salah satu cabang dalam ilmu komputer yang membuat seolah-olah sebuah komputer menunjukkan suatu perilaku cerdas. Perilak:u cerdas tersebut seolah-olah membuat komputer menirukan apa yang dikerjakan oleh otak manusia. Definisi kecerdasan buatan merturut Andri Kristanto yang mengutip Paul Y. Gloess (Kristanto, 2004, p2) adalah ilmu yang mempelajari bagaimana membuat suatu mesin seolah-olah memiliki kecerdasan dalam memecahkan suatu masalah yang diberikan kepadanya. Adapun definisi kecerdasan buatan adalah sebagai berikut (Kristanto, 2004,p2): ® Kecerdasan buatan adalah cabang ilmu komputer yang berhubungan dengan studi dan kreasi sistim komputer yang mempertunjukan beberapa bentuk kecerdasan. " Sistim yang mempelajari konsep-konsep barn dan tugas-tugas. " Sistim yang dapat berpikir dan menarik kesimpulan yang berguna bagi dunia di sekitar kita. .. Sistim yang dapat mengerti bahasa dan memaharni pemandangan visual. .. Sistim yang rnelak:ukan tipe-tipe yang lain seperti prestasi yang 8 membutuhkan kecerdasan manusia. Dari definisi-definisi tersebut maka dapat diambil suatu kesimpulan bahwa kecerdasan buatan adalah salah satu cabang ilmu komputer yang mempelajari pembuatan suatu sistim terotomatisasi, dimaua sistim tersebut mempunyai kemampuau untuk tindakan yang mengerti, berpikir dan mengambilkan suatu sesuai berdasarkan suatu prinsip kecerdasan yang diterapkan kepadanya. Dengan adanya sistim yang cerdas ini maka pekerjaan yang membutuhkan. kecerdasan manusia dapat dikerjakan olehnya. .2 Algmritma, Permasalahan dan Kompleksitas. 2.:u Definisi Algoritma Algoritma berasal dari kata Algoris dan Ritmis diungkapkan pertama kali oleh Abu Ja'far Mohammad Ibn Musa AI Khowarizmi dari buku Al-Jabr w'almuqabala (Horowitz dan Sahni, 1978, pl). Menumt Ellis Horowitz dan Sartaj Sahni (1978, pl) ada beberapa definisi yang diberikan mengenai pengertian a!goritma diantara yaitu : 1. Menumt Abu Ja'far Mohammad lbn Musa Al Khowarizmi. />.Jgoritma adalah suatu metode k.husus untuk menyelesaikan suatu permasalahan. 2. Menurut Goodman Hedetniemi. Algoritma adalah umt-umtan terbatas dari operasi-operasi yang terdefinisi dengan baik, yang masing-masing membutuhkan suatu 9 memori dan waktu yang terbatas dalam menyelesaikan suatu problem. 3. Dalam ilmu komputer. A!goritma adalah suatu metode yang terdiri dari suatu rangkaian langkah-langkah yang terstruktur dan dituliskan secara sistematis yang kelak dikerjakan dalam penyelesaian suatu masalah dengan bantuan komputer. [ Masalah I ..-.j Algoritma I..-.[ Solusi Gambar 2.1 Hubungan Antara Masalah, Algoritma dan Solusi Tetapi algoritma menurut Horowitz et. a!. (Horowitz et .al., 1997, p1 ) harus memenuhi kriteria : 1. Input. Nol atau sejumlah kuantitas harus disuplai secara eksterual. 2. Output. Paling sedikit dihasilkan satu kuantitas. 3. Definiteness. Setiap instruksijelas dan tidak ambigu. 4. Finitness. Jika suatu instruksi algoritma akan ditelusuri, dan dalam semua kasus, algoritma berakhir dalam beberapa langkah yang terbatas. 5. Effectiveness. Setiap instruksi haruslah bersifat mendasar sehingga mudah diterapkan, secara prinsip, dapat dikeljakan oleh walaupun dengan menggunakan pensil dan kertas. seseorang 10 2.2.2 Permasalalmn Optimalillasi Kombinatlllrial Permasalahan optimalisasi kombinatorial banyak dijumpai dalam kehidupan sehari-ha:ri terlebih lagi dalam bidang telmik. Karakteristik dari permasalahan optimalisasi kombinatorial adalab jumlab solusi yang mungkin adalah terbatas (Gen dan Cheng, 1997, p97). Solusi optimal dari suatu permasalahan secara prinsip diperoleh dari perhitungan sederhana, tetapi pada kenyataannya seringkali hal ini tidak climungkinkan. Terutama untuk pennasalaban yang real jmnlab dengan kemungkinan solusi yang sangat besar. Sehingga tantangan terbesar dalarn pemecahan masalah optimalisai kombinatorial adalah menghadapi ledakan kombinatorial (Gen dan Cheng, 1997, p97). 2.2.3 Kompleksitas Waktu Algoritma dan Masalah Salah satu ukuran biaya dalam rnengeksekusi sebuah algoritma adalah lamanya waktu yang dibutuhkan. Pengulruran waktu yang clilakukan pada saat mengeksekusi suatu algoritma dinamakan dengan kompleksitas waktu (Liu, C. L, 1995, p272). Besa:ran wakiu yang clibutuhkan suatu algoritma untuk mengeljakan suatu problem akan tergantung dari banyalmya input yang cliberikan dalam problem tersebut. Biasanya semakin banyak input yang dimasukkan akan semakin besar waktu yang clibutuhkan, misalnya untuk mengurutkan 10000 data daripada 100 data. akan clibutuhkan waktu yang lebih besar Tetapi dalam kenyataannya suatu algoritma 11 dipengaruhi oleh banyak faktor misalnya kecepatan dari prosesor komputer yang digunakan, kualitas kompiler dan kualitas programnya (Weiss, 1996, p277)_ Berdasarkan pengertian tersebut terdapat beberapa problem yang tidak mempunyai algoritma solusi_ Sehingga permasalahan dibagi menjadi duajenis (Leahy, Billy, 2000, p21-24) yaitu: 1. Permasalahan yang dapat dipecahkan (Decidable I Solvable problem) Permasalahan yang termasuk dalam klasifikasi ini adalah semua jenis permasalal1an yang mempunya algoritma solusi walaupun kadangkala tidalc praktis dalam segi komputasi_ Permasalahan dalam klasifikasi ini dapat dibedakan dalam 3 jenis yaitu: a. Pennasalahan Tractable (Mudah dalam segi komputasi). Suatu masalah dikatakan tractable jika masalah tersebut dapat dipecabkan oleh suatu algoritma yang efisien_ b. Permasalahan Intractable (Sulit dalan segi komputasi)_ Suatu masalah dikatakan intactable jika tidak ada algoritma yang efisien untuk memecahkan masalah tersebut c_ Permasalahan Non-deterministik Polinomial (NP) Complete. Suatu masalah dikatalcan NP Complete apabila masalah tersebut telah berhasil dibuktikan tennasuk dalam masalah intractable_ 2. Pennasalahan yang tidak dapat dipecahkan (Undecidable Unsolvable problem)_ Pennasalahan yang termasuk dalam klasifikasi ini adalah semua permasalahan yang tidak mempunyai algoritma I 12 dipengaruhi oleh banyak faktor misalnya kecepatan dari prosesor jawaban da1arn waktu yang terbatas). Untuk mengulrur kompleksitas masalah digunakan beberapa definisi (Weiss, 1996, pl61) yaitu: 1. Big-Oh Definisi: T(n) O(F(n)). Jika ada konstanta positif c dan No dimana T(n)<cF(n) ketika N>= No 2. Big-Omega Definisi: T(n) Q (F(n)) Jika ada konstanta positif c dan N0 dimana T(n)2 cF(n) ketika N2N0• 3. BigTheta Definisi: T(n) 8(F(n)) Jika dan hanyajika T(n) O(F(n)) dan T(n) Q (F(n)) 4. Litt!e-Oh Defmisi: T(n) o(F(n)) Jika dan hanyajika T(n) O(F(n)) dan T(n) * 8(F(n)) 2.2.4 Geometri Komputasi, l'ermutasi dan Kombinasi Geometri komputasi (computational geometry) ada!ah suatu studi tentang algoritrna yang efisien dalarn memecahkan geometri (Weisstein, 1999, p1) suatu masalah 13 Permutasi adalah jika terdapat r dan n, dan r merupakan bagian dari n. dan r disusun diantara n benda untuk memenuhi suatu aturan (Liu. C. L., 1995, p70). Secara matematik ditulis: P(n,r)= n' · (n -r)! Sedangkan kombinasi adalah banyaknya kemungkinan cara untuk mengambil r benda dari n benda (Liu. C. L., 1995, p76). Secara maternatik dituliskan sebagai berikut : c(n,r) = .3 nl · r!(n -r)l Evolutionary Computing Evolutionmy Computing (Algoritma Evolusi) pertama kali diperkenalkan sekitar tahun "Evolution 1960-an oleh I. Rechenberg dalam karyanya yang strategie"' beljudul (bahasa Perancis : Evolutions Strategie). Metode ini diperkenalkan karena terdapat permasalahan yang sangat kompleks dan sulit untuk diselesaikan dengan tekni.k optimisasi yang biasa. Penyimulasian proses evolusi alami manusia menghasilkan teknik optimasi stokastik yang disebut evolutionary algorithms (Gen dan Cheng, 1997, pl). Dalam prakteknya evolutionmy algorithms dibagi menjadi tiga bagian besar yaitu: Genetic Algorithms (Algoritma Genetik), Evolutionmy Programming, dan Evolution strategies. Masing - masing bidang juga berkembang sesuai dengan variasi dan parameter yang digunakan dalam suatu perrnasalahan, sehingga tidak dapat dinilai algoritma evolusi yang mana yang terbaik karena menurut Xin Yao 14 (1996, pl) tidak ada algoritma terbaik yang berlaku universal yang dapat memberikan hasil yang terbaik untuk semua pennasalahan. Algoritma evolusi mempunyai dua karalcteristik yang berbeda dengan Search Algorithm (Algoritn1a pencarian) yang membuatnya lain. Pertarna algoritma evolusi ini didasarkan pada populasi dari solusi yang mungkin. Kedua terdapat komunikasi dan pertukaran infonnasi dari individn - individn dalam populasi tersebnt untul( menghasilkan solusi yang lebih baik. Algoritma Evolusi yang sederhana dapat ditu!iskan dalam pseudo code beriknt: 1. Buat populasi awal P(O) secara random, dan set i =0 2. REPEAT a) Evaluasi fitness (kelayakan) untuk masing- masing individu dalam P(i); b) Pilih induk dari P(i) yang didasarkan pada fitness dalam P(i); c) terapkan operator pencarian terhadap induk dan hasilkan genera.si P(i+1); 3. UNTIL populasi konvergen atau waktu yang cliten1-ukan selesai. Dalam a!goritma genetik operator pencarian sering disebut dengan operator genetik. Jika metode presentasi atan peng-e:ncoding, skema seleksi, dan operator pencariannya berbeda maka akan rnenghasilkan algoritma evolusi yang berbeda pula. silang) dan Misalnya algoritma genetik menggunakan crossover (pindah mutation (mutasi I perubahan diri) sebagai operator pencarian sedangkan Evolutionary Programming hanya menggunakan mutation. Algoritma genetik seringkali menekankan pada evolusi genetik sedangkan Evolutionary Programming menekaukan pada evolution of behaviours (evolnsi tingkah laku) 2.4 15 (Xin Yao, 1996, pl) Aigoritma Genetik Telah dijelaskan sebelumnya bahwa Genetic Algorithm (Algoritma Genetik) merupakan salah satu cabang evolutionary computing yang juga digunakan dalam kecerdasan buatan. Algoritma ini diperkenalkan oleh John Holland dan kemudian dikembangkan olehnya beserta para murid dan rekanrekannya. Pemikiran John Holland ini kemudian dituliskan dalam bukunya yang berjudul Adnption in Natural and Artificial Systems yang diterbitkan pada tahun 1975 (http://cs.felk.evut.cz/ xobitko/gal). 2.4.1 Lamr Beliakang Bioliogi Algoritma genetik didasarkan pada teori Darwin tentang evolusi. Teori darwin berprinsip bahwa makh.!uk hidup yang mampu bertahan hiduplah yang terbaik (menang). Sehingga makhluk hidup hams berevolusi untuk bertahan hidup dan akibatnya ia hams berupaya untuk memperbaiki spesiesnya dari generasi ke generasi agar sesuai dengan perkembangan alam. Dan jika ia tidak mampu melakukan perubahan maka akhimya ia akan tersisih dan kemudian mati. Semua makhluk hidup terdiri dari sel - se!. Dan masing - masing sel terdiri dari kromosom- kromosom yangjumlahnya sama untuk setiap sel. Kmmosom dapat dianggap sebagai suatu untaian dari DNA dan merupakan model dari organisme tersebut. Sebuah Kromosom terdapat 16 gen - gen yang merupakan kelompok- kelompok DNA (blocks ofDNA). Setiap gen berhubungan dengan protein tertentu dalam tubuh organisme yang menandakan suatu sifat tertentu dari makhluk hidup misalnya saja wama mata. Kemungkinan dari sifat - sifat tersebut dinamakan alleles. Setiap gen diposisikan pada tempat - tempat tertentu dalam kromosom. Posisi ini dinamakan locus. Suatu kelompok kromosom makhluk hidup lengkap disebut genome. Sekelompok gene dalam genome disebut dengan genotype. Genotype inilah yang menjadi basis perkembangan makhluk hidup (phenotype) setelah kelahirannya, misalnya karakteristik fisik dan mentalnya seperti warna mata, tingkat kecerdasan dan lain - lain. Ketika makhluk hidup bereproduksi, kombinasi ulang (recombination) teljadi. Gen dari masing- masing induk dikombinasikan untuk membentuk suatu kromosom yang barn. Anak (Offspring) yang barn dihasilkan dapat juga termutasi. Mutasi berarti elemen - elemen tertentu pada DNA-nya sedikit berubah. Perubahan ini dapat disebabkan dari penggandaan yang kurang sempuma dari induknya. Kemampuan makhluk hidup tersebut bertahan hidup (Fitness of an organism) diulrur dari kemampua1mya untuk hidup. Untuk memudahkan pemetaan dari permasalahan penjelasannya. berikut ini adalah tabel genetik ke dalam suatu istilah genetik beserta 18 populasi atau diketemukannya solusi terbaik ) terpenuhi. Berikut ini struktur algoritma genetik yang sederhana L [start] generasikan populasi secara acak dari n kromosom (solusi yang mungkin dari suatu problem) 2. [fitness] Evaluasi fitness f(x) untuk setiap kromosom x dalam populasi 3. [New population] Bentuk populasi barn dengan mertgulang langkahlangkah berikut sampai pembentukannya selesai a. [Selection] Pilih dua indul' kromosom dari populasi berdasarkan tingkat kelayakatmya (fitness), semakin besar tingkat kelayakannya semakin besar kesempatannya untuk dipilih) b. [Crossover] Dengan tingkat peluang crossover (persentase kemungkinan kawin silang) terbentuklah anAA (offipring) dari pengawinsilangan kedua induk. Dan jika tidAA teljadi kawin silang mAAa anAA mernpakan duplikat dari induknya. c. [Mutation] Dengan tingkat peluang Mutasi, mutasikan anal< pada locus-nya (posisi dalam kromosom). 4. [Accepting] Taruh anak dalam populasi barn 5. [Replace] Gunakan populasi yang barn dihasilkan untuk digunAAan sebagai ganti populasi yang lama. 6. [Test] Jika kondisi akhir terpenuhi, berhenti, dan berikan hasil terbaik dari populasi yang paling akhir 7. [LoopJ ulangi langkal12 19 Genetic Algorithms HOOlll H!IO Hlli!OUiO cl!romOS<>mes ing r 1!0010!010 Wi!IO!HO l 001101!00! 1100!10001 1 t-- t UOOlOUIO llll!IO lOHl "'"tation I OOWHIOOII f-- J [I 00!10 OlOO!l :J evaluation selectitm offspring I- ! ® 1100!0 I!RO IOlllO IIllO 1-- 001 !001001 f d«oding !'Oillette wl!eel fi!rless \ oomplnation Gambar 2.2 Struktur Umum A!goritma Genetik Strulrur tersebut dituliskan dalam pseudo code dan gambar berikut ini (Gen dan Cheng, 1997, p3) Procedure : Genetic Algorithms Begin t 0; initialize P(t); evaluate P(t); 20 while ( not tennination condition ) do recombine P(t) to yield C(t); evaluate C(t); select P(t+1) from P(t) and C(t); t t+1; end end 2.4.3 Operator Algoritma Genetik Dalam algoritma genetik dapat dilihat bahwa didalamnya terdapat dua operator yang culmp penting, yaitu operator crossover dan operator mutation. Baik atau buruknya suatu pennasalahan diselesaikan dengan algoritma ini tergantung dari kedua operator ini 2.4.3.1 Encode Kromosom Sebuah kromosom dalam algorima genetik hams memiliki infonnasi tentang suatu penyelesaian masalah. Umumnya encode kromosom menggunakan suatu string biner. Berikut adalah contoh sebuah kromosom. Kromosom 1 1101100100110110 Kromosom 2 1101111000011110 Setiap kromosom diwujudkan dalam bentuk string biner dan setiap bit dalam string tersebut mewakili karateristik suatu 21 solusi. Kemungkinan lainnya, keseluruhan string tersebut mewakili suatu angka. Teknik peng-encode kromosom diantaranya adalah o Binary Encoding - menggunakan angka biner nntuk merepresentasikan solusi. e Permutation Encoding menggnnakan representasi urutan dari suatu solusi. e Value Encoding - menggnnakan representasi nilai dari suatu solusi e Tree Encoding - menggnnakan representasi struktur tree dalam penyelesaian masalah (misalnya ekspresi aritmetik). 2.4.3.2 KawiKI Sililmg (Crossover) Setelah memutuskan encoding mana yang akan digunakan maka langkah se!anjutnya adalah menentukan operasi crossover. Crossover beroperasi pada gen tertentu dari kromosom indulrnya dalam membuat suatu offspring. Cam termudah nntuk menerapkan operator ini adalah dengan memilih secara random titik crossover dan meng-copy semua bit sebelwn titik crossover tersebut dari induk pertama dan meng-copy semua bit setelah titik crossover dari induk kedua. Operasi crossover dapat diilustrasikan sebagai berikut (dengan I sebagai titik crossovernya). 22 Kromosom 1 11011J00100110110 Kromosom 2 11011111000011110 Offspring l 11011111000011110 Offspring 2 11011100100110110 Terdapat berbagai metode untuk crossover, misa1nya satu titik dengan memilih titik Tingkat kerumitan membuat skenario crossover lebih dari crossover tergantung dari pendekatan yang digunakan dalam meng-encode kromosom. Beberapa metode crossover yang biasa digunakan jika teknik encoding kromosom yang digunakan adalah permutation encoding, antara lain adalah: Uniform Order-Based Crossover Langkah-langkah untuk mendapatkan Child 1 dari Parent 1 dan Parent 2 adalah sebagai berikut L Buatlah satu bit string yang sama panJangnya dengan kromosom parent. 2. kemudian isi gen-gen pada kromosom Child 1 sesuai dengan gen-gen pada kromosom Parent 1 jika bit string berisi angka 1. 3. Sisa gen pada Parent l yang belum diisi pada Child l dipermutasi sehingga urutannya sesuai dengan Parent 2. 23 4. Isi gen yang kosong pada Child 1 sesuai dengan gen hasil permutasi pada langkah 3 diatas. Untuk tnembuat Child 2 dengan cara yang sama seperti diatas hanya ditukar antara Parent 1 dan Parent 2. Partially Matclt Crossover (PMX) llustrasi berikut ini akan menjelaskan bagaimana menghasilkan 2 child dari 2 parent yang diberikan. Misalkan terdapat 2 parent: Pl =9 8 4 I 5 6 7 ll 3 2 P2=871[239[546 Maka untuk menghasilkan child diambil 2 titik potong seperti pada gambar diatas, kemudian bagian yang tengah dipertukarkan secara utuh yaitu "5 6 7" dengan "2 3 9". Sisa gen yang lain akan dipetakan sesuai dengan pertukaran tersebut. Pada Pl gen 2, 3, dan 9 akan ditukar dengan gen 5, 6, dan 7. Demikian pula sebaliknya, sehingga dihasilkan child seperti berikut: Cl =7 8 4[2 3 9! l 6 5 C2=891[567[243 2.4.3.3 Mutasi (Mutation) Setelab crossover diproses langkah selanjutnya adalah mutation. Mutasi diperlukan untuk mencegah solusi yang dijalankan masuk ke dalam local optimum dari solusi masalah. 24 Mutasi beroperasi secara random dalam mengubah offspring yang dihasilkan crossover. Misalnya dalam encoding biner dengan mengubah beberapa bit secara random dari 1 ke 0 atau dari 0 ke 1 Operasi mutasi di ilustrasikan sebagai berikut. Offspring Asli l 1101111000011110 Offspring As!i 2 1101100100110110 Offspring Mutasi 1 1100111000011110 Offspring Mutasi 2 1101101100110110 Teknik mutasi juga tergantung dari pendekatan yang digunakan dalam meng-encode kromosom. encoding yang digunakan adalah pennutasi, Misalnya jika maka mutasi dilakukan dengan mempertukarkan dua gene. 2.4.3.4 Tingkat Kemungkinan Crossover dan Mutasi Tingkat kemungkinan Crossover (Crossover Probability) adalah kadar kekerapan crossover akan dilakukan. Jika tidak teljadi crossover, maka offspring tepat sama dengan induknya. Jika terdapat crossover, offspring merupakan campuran dari dua buah induk kromosom. Jika tingkat kemungkinannya 100% maka semua offspring dibentuk dari crossover begitu juga tingkat kemungkinannya 0% maka seluruk generasi dibentuk dari kromosom yang sama dengan populasi sebelumnya (ini bukan berarti generasi yang baru adalah sama dengan generasi yang 25 terdahulu). Crossover dibentuk dengan harapan kromosom yang barn akan berisi bagian yang terbaik dari kromosom yang lama sehingga kromosom yang barn akan lebih baik dari kromsom yang lama. Tingkat kemungkinan mutasi adalah kadar kekerapan suatu kromosom akan termutasi. Jika tidak terjadi mutasi, offtpring akan dihasilkan tepat setelah crossover dilakukan tanpa ada perubahan. Jika mutasi diterapkan maka satu atau lebih bagian kromosom akan diubah. Jika tingkat kemungkinan mutasi 100% malca seluruh kromosom akan diubah dan jika 0% maka tidak akan teljadi perubahan. Mutasi berfungsi untuk mencegah algoritma genetik jatuh ke dalam pencarian lokal saja, na.mun mutasi jangan diterapkan dengan kadar yang sering, karena algoritma genetik akan mengarah kepada pencarian sepenuhnya random. 2.4.3.5 Popu1asi Da!am algoritma genetik terdapat beberapa parameter lain yang sering digunakan, yaitu Uknran Populasi (Population size) adalah banyaknya kromosom dalam suatu populasi. Jika populasi terlalu sedikit maka algoritma genetik hanya mempunyai sedikit kesempatan untuk melakukan crossover dan hanya sebagian 26 lingkup pencarian yang dieksplorasi. Dan sebaliknya jika populasi terlalu banyak akan mengakibatkan performa algorima genetik akan menurun. 2.4.4 Tal:mp Seleksi (Selection) Untuk menghasilkan kromosom yang baru maka diperlukan seleksi dari kromosom yang lama. Dalam hal ini yang terbaiklah yang mempunyai kesempatan tertinggi untuk membuat offipring. Terdapat berbagai metode untuk memilil1 kromosom yang terbaik, diantaranya adalah: Roulette Wheel Selection (Seleksi Roda Rolet) Induk dipilih berdasarkan kelayakarmya (fitness). Semakin baik suatu kromosom, semakin tinggi kesempatarmya untuk dipi!ih. Seleksi ini diilustrasikan dengan Roda Rolet dimana semua kromosom dalam populasi dipetakan. Besar wilayah dalam roda rolet sebanding dengan nilai kelayakan dari setiap kromosom (semakin tinggi nilainya maka besar wilayahnya dalarn lingkaran. Seleksi ini digambarkan sebagai berikut : ...-:-:----:=-:;-] la Kromosom 1: Irl':i Kro.mosom?_[, !o Kromosom 31 !oKromosom 4! Gambar 2.3 Diagram Seleksi pada metode seleksi roda rolet 27 Rank Selection (Seleksi Tingkllt) Dalam Seleksi. Rocla Rolet jika tingkat kelayakan kromosom terbaik aclalah 90% maka jumlah seluruh kelayakan akan didominasi olehnya sehingga akan mempersulit kromosom yang lain untulc dipilih. Seleksi tingkat membuat peringkat clari populasi clan kemudian setiap kromosom diberikan suatu tingkat kelayakan sendiri yang ditentukan clari peringkatnya. Misalnya yang terburuk akan bemilai 1 clan yang terbaik akan bemilai N (Jumlah kromosom clalam populasi). Seleksi i ni dii!Iustrasikan pada gambar 2.4. Walaupun dalam seleksi 1m setiap kromosom mempunym kesempatan untuk dipilih tetapi metode ini mengakibatkan konvergensi yang lambat karena kromosom yang terbaik dianggap tidak berbecla dengan kromosom yang lain. l0 Kromosom 1 ! ! m Kromosom 2j Kromosom -.; t Kromosom 4! · Kondisl Sebelum diranking {Graph of fitnesses) j a Kromosom im Kromosom : io Kromosom 1 -:< o Kromosom 4 Kondisi Setelah diranking (Graph of order numbers) Gambar 2.4 Gambar perbandingan antara seleksi roda rolet dan seleksi tingkat 28 Steady-State Selection Ide utama dari seleksi ini menghasilkan kromosom untuk generasi akan offiprirtg adalah memilih yang generasi yang terdapat kromosom yang daripada yang kesempatan lebih untuk lain, maka dipilih. Dan barn. terbesar Dalam setiap menghasilkan lebih banyak kromosom untuk ini mempunyai kromosom yang sedikit menghasilkan offipring akan dibuang dan posisinya akan digantikan oleh yang lain. Elitism Dalam setiap penyeleksian untuk menghasilkan populasi barn akan terdapat kemungkinan kromosom yang terbaik akan hilang, dan oleh sebab itu dengan metode seleksi Elitism, kromosom yang terbaik dimasukkan ke dalam populasi yang baru. Sisa dari populasi kemudian dibentuk dengan crossover dan (atau) mutasi. 2.4.5 Algoritma genetik hibrid. Walaupun algoritma genetik dapat memberikan hasil yang cukup baik dalam menyelesaikan masalah optimasi tetapi tetap terdapat dimana situasi yang membuat algoritma genetik berfungsi k:urang baik dan untuk menanggulanginya, beberapa kombinasi dengan algoritma lain dikembangkan. Algoritma genetik yang seperti ini algoritma genetik hibrid (Hybrid Genetic algorithm). mulai disebut dengan 29 Salah satu tujuan untuk mengembangkan algoritma genetik hibrid adalah untuk: mempercepat optimasi lokal sebagai tambahan pada proses perulangan di saat kombinasi ulang (t;rossover) dan seleksi. Dengan pendekatan ini, optimasi lokal diterapkan untuk: setiap generasi bam yang dihasilkan, sehingga akan memasuk:i local optimum sebelum masuk ke dalam populasi (Gen dan Cheng, 1997, p31) Kombinasi 1m memanfaatkan algoritma genetik untuk penjelajahan global (global exploration) diantara populasi dan metode lain (heuristik m:isalnya) untuk melakukan penjelajahan lokal (local exploration) diantara kromosom-kromosom (Gen dan Cheng, 1997, p31). .5 Metode Greedy Metode greedy merupakan salah satn metode heuristik yang digunakan untuk: mempercepat pemecahan masalah dalam algorima genetik. Metode greedy dimisalkan ada n input, maka akan dicari suatu subset {xl, x2, x3,... ,xn} yang memenulri suatu kendala (constrain) yang ditentuk:an, Subset yang memenulri kendala yang ditentnkan pada suatu persoalan disebut solusi yang mungkin (feasible solution). Jika dapat dicari suatu subset dari solusifeasible yang meng-optimalkan fungsi tujuan (objective jUnction) maka subset demikian disebut solusi optimal (optimal solution). Metode greedy adalah salah satu cam untuk mencari solusi yang optimal dari solusi feasible secara bertahap, dengan memperhatikan fungsi tnjuan demikian sehingga didapat solusi optimal. Langkah-langkah untuk: 30 mencari set solusi optimal dari metode greedy dapat dilihat pada gambar 2.5. ( Start ) ! < i -7 n I > ' X e Set solusi feasible j Masukl<an X sebagai anggota solusi optimal Dapatkan solusi I optimal dari set solusi I feasible denaan . memperhatikan fungsi I tujuan ( j End , I 1 ) Gambar 2.5 Flow chart algoritma Greedy Container Loading Problem adalah masalah dimana sejumlah kotak (hoks) akan dimasukkan ke suatu kontainer yang herdi.me:nsi tc:tr (Pisinger. 2002, r1 ). PermasBlahan ini mempunyai tingkat kesulitan yang tinggi dan dalam prakteknya sulit nntuk dipecahkan, dan digolongkan sebagai permasa\ahan NP- hard. 31 Penempatan yang optimal akan mengurangi biaya pengmman dan menambah stabilitas dan dulrungan daya beban. Menurut Pisinger (Pisinger, 2002, p2) terdapat beberapa variasi dari pennasalahan ini yaitu: .. Strip Packing. Dalam masalah ini, kontainer diasumsikan mempunyai Iebar dan tinggi yang tetap, tetapi kedalamannya diasumsikan tidak terbatas. Dan semua kotak hams dimasukkan ke dalam kontainer sehingga menghasilkan keda!aman yang minimal. w Knapsack Loading. Dalam masalah ini setiap kotak berhubungan dengan .suatn keuntungan (profit) dan dikehendaki memuat beberapa kotak dari - . keseluruhan kotak yang ada ke dalam satu kontainer tetapi keuntungan yang didaoat dari pemuatan kotak tersebut adalah v- ang g op .....-_palin . timal. "- ,. Bin Packing. Dalam masalah ini terdapat beberapa kontainer yang berdimensi tetap dan semua kotak hams dimasukkan kedalam kontainerkontainer tersebut, namun diharapkan kontainer yang dibutJ.Jhlmn minimal .. Multi Container Loading. MaBalah ini hampir sama dengan pennasalah;m bin packing, hanya saja kontainer-kontainer yang digunakan memiliki ukuran dimensi yang berbeda-beda. Pemecahan yang diharapkan adalah dengan memilih sejumlah kontainer sehingga menghasilkan biaya pengiriman yang minimal. Pemecahan masalah muatan kontainer tidak mempunyai algoritma pemecahan yang .khusus, namun terdapat beberapa pendekatan yang digunakan untuk memecahkan masalah ini (Pisinger, 2002, p3) diantaranya yaitu: " Pendekatan Wall Building. Mengisi !container dengan sejumlah layer yang 32 memenuhi suatu kedalaman dari kontainer. ® Pendekatan Stack Building. Menempatkan kotak ke dalam suatu susunan dan kemndian mengatumya pada lantai kontainer dengan solusi penempatan dua dimensi_ * Pendekatan Guilloutine Cutting. Didasarkan pada pembagian guilloutine suatu kontainer ke da1am bagian-bagian kecil dimana node-node merupakan representasi kotak " Pendekatan Cuboid Arrangement_ Secara rekursif mengisi kontainer dengan pengaturan knboid (diatur berdasarkan kotak-kotak yang sama)_