• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
18
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

Pada bab ini akan dibicarakan beberapa model penyelesaian problema Knapsack dengan memakai beberapa metode yang telah ada yang akan digunakan pada bab pembahasan.

2.1 Problema Knapsack dengan Algoritma Branch and Bound.

2.1.1. Algoritma Branch and bound

Sebagaimana pada algortima runut-balik, algoritma Branch & Bound juga merupakan metode pencarian didalam ruang solusi secara sistematis. Ruang Solusi diorganisasikan ke dalam pohon ruang status. Pembentukan pohon ruang status. Pembentukan pohon ruang status pada algoritma Branch & Bound berbeda dengan pembentukan pohon pada algoritma runut balik. Bila pada algoritma runut-balik ruang solusi dibangun secara Depth-First Search (DFS), maka pada algoritma Branch & Bound ruang solusi dibangun dengan skema Breadth-First Search (BFS). Pada algoritma Branch & Bound, pencarian ke simpul solusi dapat dipercepat dengan memilih simpul hidup berdasarkan nilai ongkos (cost). Setiap simpul hidup diasosiasikan dengan sebuah ongkos yang menyatakan nilai batas (bound). Pada prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan. Fungsi heuristik untuk menghitung taksiran nilai tersebut dinyatakan secara umum sebagai :

( )

i f

( ) ( )

i g i cˆ = + ˆ yang dalam hal ini,

( )

( )

( )

ongkosmencapaisimpul tujuan darisimpulakar (diperkirakan) ˆ akar dari simpul mencapai untuk ongkos simpul untuk ongkos ˆ i i g i i f i i c = = =

(2)

Nilai cˆ digunakan untuk mengurutkan pencarian. Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki cˆ minimum (Simpul-E). Strategi memilih simpul-E seperti ini dinamakan strategi pencarian berdasarkan biaya terkecil (least cost search).

Prinsip dari algoritma branch and bound ini adalah :

1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi (goal node), maka solusi telah ditemukan. Stop.

2. Jika Q kosong, tidak ada solusi . Stop.

3. Jika Q tidak kosong, pilih dari antrian Q simpul i yang mempunyai cˆ

( )

i paling kecil. Jika terdapat beberapa simpul i yang memenuhi, pilih satu secara sembarang.

4. Jika simpul i adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul i bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika i tidak mempunyai anak, kembali ke langkah 2.

5. Untuk setiap anak j dari simpul i, cˆ

( )

j hitung , dan masukkan semua anak-anak tersebut ke dalam antrian Q.

6. Kembali ke langkah 2.

2.1.2. Pohon

Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. Dengan setiap kemungkinan solusi dianggap sebagai sebuah simpul dan akar dari pohon, banyak algoritma yang menggunakan ruang solusi berupa pohon ini karena akan lebih memudahkan dalam penelusuran solusi yang ada berupa simpul-simpul pohon.

2.1.3. Metode

Untuk lebih memahami tahap-tahap penyelesaian problema Knapsack ini, kita ambil contoh persoalan seperti yaitu dimana seorang pedagang keperluan rumah

(3)

tangga keliling harus memilih barang-barang yang akan dijual setiap harinya dengan batas daya angkut gerobak yang dimilikinya. Untuk mempermudah, kita misalkan pedagang keliling tersebut hanya memiliki 4 jenis barang untuk dijual dengan berat dan keuntungan penjualan yang berbeda-beda untuk tiap jenisnya. Gerobak yang akan dipakai untuk mengangkut barang-barang tersebut hanya mampu menampuk beban seberat 16kg. Berikut merupakan tabel penggambaran berat dan keuntungan yang akan diperoleh untuk tiap penjualan barang tersebut.

Barang ke- Berat (W) Keuntungan (P) P/W 1 2 3 4 2 5 10 5 12 15 50 10 6 3 5 2 Tabel 2.1 Keterangan berat, keuntungan dan P/W

tiap jenis barang

Dalam algoritma ini , kita akan menentukan cost dari tiap tiap simpul anak untuk dapat menentukan simpul mana yang kelak akan dibangkitkan yaitu simpul dengan cost tertinggi dalam penelusuran pohon untuk mencapai solusi dari permasalahan ini. Dalam permasalahan ini, kita akan mencari simpul-simpul yang akan membawa kita pada keuntungan terbesar oleh karena itu urutan pembangkitan simpul akan ditentukan oleh simpul mana yang memiliki cost tertinggi.

Cost dari tiap simpul akan ditentukan dengan perhitungan :

( )

i f

( ) ( )

i g i

cˆ = + ˆ yang dalam hal ini,

( )

i =

cost untuk simpul i

( )

i =

f cost untuk sampai ke simpul i dalam hal ini merupakan keuntungan dari simpul akar ke simpul i.

( )

i =

cost dari simpul i untuk sampai ke simpul tujuan, dalam hal ini dapat diperoleh dengan menggunakan rumus :

(4)

Pada tahap awal kita akan melakukan perhitungan dengan menggunakan rumus diatas untuk memperoleh batas awal atau akar dari pohon yang juga merupakan simpul pertama. Pada keadaan ini, batas dihitung dengan pemikiran bahwa belum ada satupun barang yang dimasukan kedalam alat pengangkut maka kita dapat memilih 6 sebagai (P/W) terbesar karena belum ada satu barangpun yang dimasukan kedalam alat pengangkut dan kapasitas daya angkutpun masih utuh yaitu seberat 16 kg.

( )

i f

( ) ( )

i g i cˆ = + ˆ

( )

i =

keuntungan yang diperoleh sampai disimpul awal + (P/W0max*daya angkut yang tersisa

= 0 + 6 * = 96

Maka kita memperoleh 96 batas awal atau cost dari simpul awal.

96

Gambar 2.1 Akar Pohon Problema Knapsack dengan n-4

Selanjutnya kita akan membangkitkan simpul-simpul anak dari akar pohon yaitu dengan membangkitkan simpul 1, simpul 2, simpul 3 dan simpul 4 sebagai gambaran dari 4 pilihan barang yang akan dimasukan pertama kali pada alat pengangkut dengan x1 merupakan keuntungan yang akan diperoleh pada penjualan

tiap barang tersebut. Kemudian kita akan menghitung cost dari tiap simpul anak yang hidup dan juga kelayakannya untuk tetap hidup atau harus dibunuh. Dalam hal ini, simpul yang jumlah dari lintasannya tidak bisa lagi dibangkitkan (jika ditambah barang lagi kedalam alat pengangkut maka beratnya akan melebihi daya angkut) akan dibunuh.

( )

(

)

( )

(

)

( )

(

)

( )

4 10 6*

(

16 5

)

76 ˆ 86 10 16 * 6 50 3 ˆ 81 5 16 * 6 15 3 ˆ 82 2 16 * 5 12 2 ˆ = − + = = − + = = − + = = − + = c c c c 1

(5)

1 2 3 4 5 12 1 = x 1 3 4 5 2 8 7 12 1 = x 96 x1 =10 x1 =15 x1 =50 82 81 86 76

Gambar 2.2 Pohon status problema Knapsack tahap awal

Dari simpul-simpul yang telah dibangkitkan dan dihitung cost nya, maka diperoleh bahwa simpul 4 lah yang memiliki cost tertinggi oleh karena itu maka simpul 4 akan di perluas lagi. Simpul 6 ,7,8 akan dibangkitkan sebagai perluasan dari simpul 4 dengan barang yang mungkin dimasukan kedalam alat pengangkut adalah barang ke 1,2 dan 4. kemudian kita akan mengkitung cost dari simpul 6,7dan 8.

( ) (

) (

)

( ) (

)

(

)

( ) (

8 50 10

)

6*

(

16 10 5

)

66 ˆ 71 5 10 16 * 6 15 50 7 ˆ 74 2 10 16 3 12 50 6 ˆ = − − + + = = − − + + = = − − + + = c c c

Setelah melakukan perhitungan, kita dapat melihat bahwa ketiga simpul yaitu simpul 6,7 dan 8 tidak bias lagi diperluas oleh karena itu ketiga simpul ini akan dibunuh dengan menambahkan keterangan huruf B pada bagian bawah simpulnya. Simpul 96 x1=10 x1 =15 x1 =50 80 81 86 76 x2 =12 x2 =15 x2 =10 74 71 66 B B B

(6)

Gambar 2.4 Pohon status problema Knapsack tahap ketiga

Sekarang kita hanya memiliki simpul 2,3 dan 5 sebagai simpul hidup. Diantara simpul-simpul tersebut, simpul 2 lah yang memiliki cost terbesar sehingga selanjutnya akan dilakukan perluasan pada simpul 2 dengan metode yang serupa dan diperoleh simpul 9,10, dan 11 dengan cost 72,74, dan 67. pada simpul 2, dapat dilihat bahwa simpul tersebut tidak dapat lagi diperluas oleh karena itu makan simpul ini akan dibunuh.

Gambar 2.5 Pohon status knapsack problem

Sekarang kita memiliki simpul 3,5,9 dan 11 sebagai simpul hidup dan diantar simpul-simpul tersebut, simpul 3 lah yang memiliki cost terbesar sehingga simpul tersebut akan diperluas dengan metode yang diterapkan pada perluasan simpul-simpul sebelumnya. Perluasan simpul-simpul hidup terus dilakukan sampai tidak ada lagi simpul hidup yang ditemukan dan dapat diperluas atau semua simpul telah dibunuh. Hal ini dilakukan karena pencarian solusi pada permasalahan ini tidak dapat diketahui

(7)

kapan kita harus berhenti karena telah sampai kepada solusi tetapi penyelesaian masalah akan dilakukan dengan membandingkan solusi pada tiap daun. Dalam persoalan ini, akan dibandingkan jumlah keuntungan yang diperoleh pada tiap daun dan solusi permasalah merupakan lintasan yang menuju daun yang memiliki keuntungan terbesar.

Dari gambar diatas dapat disimpulkan bahwa solusi permasalahan dibentuk oleh lintasan yang menuju simpul 13 dan 7 dimana keduanya merupakan solusi yang serupa yaitu memilih barang 2 dengan berat 5 kg , keuntungan 15 dan barang 3 dengan berat 10 kg, keuntungan 50 sebagai solusi permasalahan dan akan menghasilkan keuntungan yang maksimal pada penjualan yaitu sebesar 65.

2.2 Problema Knapsack dengan Algoritma Greedy

Problema knapsack 0/1 pada bab ini akan dibahas dengan menggunakan strategy greedy. Pendekatan yang digunakan di dalam algoritma greedy adalah membuat pilihan yang “tampaknya” memberikan perolehan terbaik, yaitu dengan membuat pilihan optimum local (local optimum) pada setiap langkah dengan harapan bahwa sisanya mengarah ke solusi optimum global (global optimum)

Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah, pada setiap langkah :

1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan konsekuensi ke depan (prinsip “take what you can get now!”) 2. Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan optimum global.

Dengan algoritma greedy, persoalan knapsack dapat dipecahkan dengan memasukkan objek satu per satu ke dalam knapsack. Sekali objek dimasukkan ke dalam knapsack, objek tersebut tidak bias dikeluarkan lagi.

Terdapat beberapa strategy greedy yang heuristik yang dapat digunakan untuk memilih objek yang akan dimasukkan ke dalam knapsack.

(8)

2.2.1. Greedy by profit

Pada setiap langkah , knapsack diisi dengan objek yang mempunyai keuntungan terbesar. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang paling menguntungkan terlebih dahulu.

Pertama kali yang dilakukan adalah secara menurun objek – objek berdasarkan profitnya. Kemudian baru diambil satu – persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bias dimasukkan. Algoritmanya yaitu :

Berdasarkan algoritma diatas maka dapat dihitung komplesitas waktu asimptotik-nya adalah O(n)

Sebagai data pengujian diberikan data-data untuk w (Weight) dan P (Profit) :

Dengan kapasitas knapsack W = 16

procedure Giby Profit (var dt3 : arrayData;W : real); Var i,j: integer temp: data cW: real tukar:boolean program UrutkanDataBerdasarkanProfit(dt3) While((cW<W)and(i<=length(dt3))do if(dt3[i].w<=W-cW)then cW←cW+dt3[i].w dt3[i].status←True inc(i) 10 5 50 ; 10 15 ; 5 12 ; 2 1 4 1 3 1 2 1 1 = = = = = = = = p w p w p w p w

(9)

Tabel 2.2 Greedy by profit Properti I wi pi Pi/wi Status 3 10 50 5 Diambil 2 5 15 3 Diambil 1 6 12 2 Tidak 4 5 10 2 Tidak 2.2.2. Greedy by weight.

Pada setiap langkah, knapsack diisi dengan objek yang mempunyai berat paling ringan. Strategi ini mencoba memaksimumkan keuntungan dengan memasukkan sebanyak mungkin objek ke dalam knapsack.

Pertama kali yag dilakukan adalah mengurutkan secara menaik objek-objek berdasarkan weightnya. Kemudian baru diambil satu persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bias dimasukkan. Algoritma greedy by profit sebagai berikut :

Berdasarkan algoritma di atas maka dapat dihitung komplesitas waktu asimptotik-nya adalah O(n)

procedure Giby Weight (var dt3 : arrayData;W : real); Var i,j: integer temp: data cW: real tukar:boolean program UrutkanDataBerdasarkanWeight(dt3) While((cW<W)and(i<=length(dt3))do if(dt3[i].w<=W-cW)then cW←cW+dt3[i].w dt3[i].status←True inc(i)

(10)

Sebagai data pengujian diberikan data-data untuk w (Weight) dan P (Profit) :

Dengan kapasitas knapsack W = 16

Tabel 2.3 Greedy by weight

Properti I wi pi pi/wi Status 2 5 15 3 Diambil 4 5 10 2 Diambil 1 6 12 2 Diambil 3 10 50 5 Tidak 2.2.3. Greedy by density

Pada setiap langkah, knapsack diisi dengan objek yang mempunyai densitas terbesar. Strategi ini mencoba memaksimumkan keuntungan dengan memilih objek yang mempunyai keuntungan per unit berat terbesar.

Pertama kali yang dilakukan adalah mencari nilai profit per unit (density) dari tiap-tiap objek. Kemudian objek-objek tersebut diurutkan berdasarkan densitynya. Kemudian baru diambil satu-persatu objek yang dapat ditampung oleh knapsack sampai knapsack penuh atau sudah tidak ada objek lagi yang bisa dimasukkan.

Pemilihan objek berdasarkan salah satu dari ketika strategi di atas tidak menjamin akan memberikan solusi optimal. Berbeda dengan strategi brute force yang selalu dapat memberikan hasil yang optimal. Tetapi greedy mengurangi jumlah langkah (kompleksitas) pencarian.

10 5 50 ; 10 15 ; 5 12 ; 2 1 4 1 3 1 2 1 1 = = = = = = = = p w p w p w p w

(11)

Berdasarkan algoritma diat maka dapat dihitung komplesitas waktu asimptotik-nya adalah O(n)

Sebagai data pengujian diberikan data-data untuk w (Weight) dan P (Profit) :

Dengan kapasitas knapsack W = 16

Tabel 2.4 Greedy by density

Properti I wi pi pi/wi Status 3 10 50 5 Diambil 2 5 15 3 Diambil 4 5 10 2 Tidak 1 6 12 5 Tidak procedure GbyPW (var dt3 : arrayData;W : real);

Var i,j: integer temp: data cW: real tukar:boolean program UrutkanDataBerdasarkanWeight(dt3) →//Mengurutkan data berdasarkan

while((cW<W)and(i<=length(dt3))do //nilai density yang terbesar if(dt3[i].w<=W-cW)then //ke nilai yang terkecil cW←cW+dt3[i].w dt3[i].status←True inc(i) 10 5 50 ; 10 15 ; 5 12 ; 2 1 4 1 3 1 2 1 1 = = = = = = = = p w p w p w p w

(12)

Maka, hasil akhirnya kita mendapatkan dta seperti di bawah ini:

Tabel 2.5 Greedy by density

Properti objek Greedy by

i wi pi pi/wi profit weight Density

1 6 12 2 0 1 0 2 5 15 3 1 1 1 3 10 50 5 1 0 1 4 5 10 2 0 1 0 Total bobot 15 16 15 Total keuntungan 65 37 65

2.3 Problema Knapsack dengan Exhaustive Search

Exhaustive Search merupakan salah satu strategi dalam Brute Force atau pendekatan secara langsung pada permasalahannya. Langkah-langkah pencarian solusi 0/1 Knapsack secara exhaustive search dirangkum dalam table di bawah ini dengan sebagai data pengujian diberikan data-data untuk w (Weight) dan P (Profit) :

Dengan kapasitas knapsack W = 16 10 5 50 ; 10 15 ; 5 12 ; 2 1 4 1 3 1 2 1 1 = = = = = = = = p w p w p w p w

(13)

Tabel 2.6 Exhaustive search Himpunan Bagian Total Bobot (w) Total Keuntungan (P) {} {1} {2} {3} {4} {1, 2} {1, 3} {1, 4} {2, 3} {2, 4} {3, 4} {1, 2, 3} {1, 2, 4} {1, 3, 4} {2, 3, 4} {1, 2, 3, 4} 0 6 5 10 5 11 16 11 15 10 15 21 16 21 20 26 0 12 15 50 10 27 62 22 65 25 60 tidak layak 37 tidak layak tidak layak tidak layak

Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2, 3} dengan total keuntungan adalah 65.

Dari keempat cara diatas didapatkan keuntungan optimum yaitu 65 dengan objek yang diambil no. 2 dan 3. Namun, dilihat dari kecepatan atau banyaknya data yang diproses terlihat greedy lebih efisien terutama greedy profit karena tujuan dari knapsack sendiri mencari keuntungan yang maksimal.

(14)

2.4 Problema Knapsack dengan Algoritma Genetika

2.4.1. Algoritma Genetika

Algoritma genetika adalah algoritma komputasi yang diinspirasi oleh teori evolusi yang kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara yang alamiah. Algoritma ini dikembangkan oleh Goldberg yang terinspirasi dari teori evolusi Darwin yang menyatakan bahwa kelangsungan hidup suatu makhluk dipengaruhi oleh aturan “yang kuat adalah yang menang”. Darwin juga menyatakan bahwa kelangsungan hidup suatu makhluk dapat dipertahankan melalui proses reduksi, crossover, dan mutasi.

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 yang disebut sebagai gen dan nilainya dapat berupa bilangan numeric, biner, symbol atau pun karakter tergantung dari permasalahan yang ingin diselesaikan. Kromosom-kromosom tersebut akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dlam tiap generasi, kromosom-kromosom tersebut dievaluasi tingkat keberhasilan solusinya terhadap masalah yang ingin diselesaikan (fungsi_objektif) menggunakan ukuran yang disebut fitness.

Untuk memilih kromosom yang tetap dipertahankan untuk generasi selanjutnya, dilakukanlah proses seleksi. Kromosom dengan nilai fitness tinggi akan memiliki peluang lebih besar untuk terpilih lagi pada generasi selanjutnya.

Offspring merupakan kromosom-kromosom baru yang dibentuk dengan cara melakukan perkawinan antar kromosom dalam satu generasi, atau sering disebut sebagai proses crossover. Jumlah kromosom yang mengalami crossover ditentukan oleh parameter Pcrossover. Mekanisme perubahan susunan unsur penyusun makhluk hidup akibat adanya faktor alam disebut dengan mutasi. Jadi, mutasi direpresentasikan sebagai suatu proses berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak. Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter Permutasi. Setelah beberapa generasi akan dihasilkan kromosom-kromosom yang nilai gennya konvergen ke suatu nilai tertentu yang merupakan solusi

(15)

terbaik yang dihasilkan oleh Algoritma Genetika terhadap permasalahan yang ingin diselesaikan.

Algoritma Genetika sangat cocok untuk menyelesaikan masalah optimasi dengan ruang lingkup yang besar, karena Algoritma Genetika selalu bergerak dengan mencari sejumlah solusi sekaligus, selama solusi tersebut masih bersifat feasible (tidak melanggar constraint). Dengan setting parameter yang tepat, diharapkan salah satu dari sekian banyak solusi yang dibangkitkan oleh Algoritma Genetika merupakan solusi optimum global.

Akan tetapi, Algoritma Genetika ini juga masih memiliki kelemahan yaitu ketidakpastian untuk menghasilkan solusi optimum global, karena sebagian besar dari algoritma ini berhubungan dengan bilangan random yang bersifat probabilistik. Peranan programer disini adalah memaksimalkan probabilitas dalam menghasilkan solusi optimum global dengan cara membuat suatu skema pengolahan input argumen (fungsi fitness) dan setting parameter yang tepat.

2.4.2. Penerapan Algoritma Genetika dalam Problema Knapsack

Berikut adalah pengolahan fitness dan setting parameter yang kami terapkan : • Representasi Barang

Kami merepresentasikan barang dalam dua array, dimana array pertama berisi weight (berat) barang, dan array kedua berisi profit (keuntungan) barang.

Weight : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 180 170 100 150 270 120 190 140 180 100 140 70 150 120 190 140 80 150 200 130 Profit : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 200 150 90 220 250 80 170 120 190 70 160 110 120 160 220 140 120 110 160 180 • Constraint

(16)

Adapun constraint yang digunakan dalam aplikasi ini adalah weight. Jadi, total berat dari sekumpulan barang yang dipilih tidak boleh melebihi kapasitas Knapsack.

• Enconding Kromosom

Untuk mempresentasikan kromoso, kami menggunakan array 1 dimensi yang berisi 1 atau 0.

Misal:

Kromosom : 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 0 1 0 0 Art : Barang 1, 4, 8, 9, 10, 12, 14, 16, 18 diambil

Barang 2, 3, 5, 6, 7, 11, 13, 15, 17, 19, 20 tidak diambil.

• Termination Conditions

Pencarian solusi berhenti jika terdapat > 60% kromosom yang mempunyai nilai fitness maksimum ATAU jumlah lebih besar limit evolusi yang telah ditentukan (jika jumlah evolusi > 1000).

• Fitness Function

Pada evolusi di dunia nyata, individu bernilai fitness tinggi akan bertahan hidup. Sedangkan individu bernilai fitnesss rendah akan mati. Pada AG, suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran niali fitness nya. Pada aplikasi ini, fitness dihitung dengan menjumlahkan profit tiap barang yang masuk ke dalam knapsack. Jika berat total dalam satu kromosom lebih besar daripada kapasitas maksimum knapsack, maka nilai fitnessnya diassign 0.

Selain dihitung nilai fitnessnya, dihitung pula berat total dari tiap kromosom untuk kemudian dilakukan pengecekan, dimana apabila ada kromosom yang berat totalnya melebihi kapasitas dari knapsack, maka akan dilakukan pencarian gen dalam kromosom tersebut yang bernilai 1 untuk diganti dengan nilai 0. Hal ini dilakukan terus menerus sampai dipastikan bahwa semua kromosom tidak ada yang melanggar constraint.

Untuk mencegah adanya individu yang dominan dalam suatu populasi (dalam pemilihan parent untuk dicrossover), maka diperlukan suatu fungsi Linier Fitness Ranking. Fungsi ini akan menurunkan perbedaan nilai fitness antar individu, sehingga perbedaan antara nilai fitness terbaik dengan nilai fitness terendah dapat diperkecil.

(17)

Dengan begitu setiap kromosom memiliki kemungkinan untuk terpilih menjadi parent secara lebih merata (lebih adil).

• Selection Function

Aplikasi ini menggunakan metode seleksi Roulette Wheel yang dikombinasikan dengan Elitism. Roulette Wheel merupakan suatu metode pemilihan kromosom untuk dijadikan parent, dimana komosom dengan fitness tinggi mempunyai peluang lebih besar untuk dijadikan parent. Sedangkan Elitism adalah suatu metode yang berguna untuk mempertahankan nilai best fitness suatu generasi agar tidak turun di generasi berikutnya.Dalam AG caranya adalah dengan mengcopykan individu terbaik (maxfitness) sebanyak yang dibutuhkan

• Crossover

Crossover merupakan proses mengkombinasikan bit bit dalam satu kromosom dengan kromosom lain yang terpilih sebagai parent. Jumlah kromosom yang mengalami crossover ditentukan oleh parameter Pcrossover. Dimana Pcrossover ini kami assign sebesar 80%, karena kami mengharapkan 80% dari populasi mengalami crossover agar populasi individu menjadi lebih variatif.

• Mutation

Mutation diperlukan untuk mengembalikan informasi bit yang hilang akibat crossover. Mutasi ini dilakukan pada tingkat gen, dan jumlah gen yang dimutasi kami batasi dalam suatu variable Permutasi sebesar 5%. Nilai ini kami rasa cukup karena semakin banyak gen yang dimutasi maka kualitas dari suatu individu bisa mengalami penurunan.

Setelah dilakukan mutasi, kembali dicek untuk tiap kromosomnya apakah melanggar constraint atau tidak. Jika ada kromosom yang total beratnya melebihi kapasitas Knapsack, maka secara random, gen yang bernilai 1 akan diganti dengan 0 sampai kromosom tersebut tidak melanggar constraint. Jadi dapat disimpulkan, aplikasi kami akan selalu menemukan solusi.

(18)

2.4.3. Flowchart

Gambar 2.6 Flowchart Algoritma Genetika Start

Inisialisasi populasi pertama secara random

Hitung nilai fitness dan volume dari tiap kromosom, cari juga nilai fitness maks

Secara random, pilih 2 kromosom untuk dijadikan parent

Crossover 2 kromossom terpilih tadi

Lakukan mutasi

Pengecekkan coinstraint (kapasitas knapsack)

Apakah terdapat > 60%

kromosom yang mempunyai nilai fitness maksimum | |

Jumlah evolusi lebih besar limit evolusi yang telah ditentukan??

STOP No

Gambar

Gambar 2.3 Pohon status problema Knapsack tahap kedua
Gambar 2.4 Pohon status problema Knapsack tahap ketiga
Tabel 2.2 Greedy by profit  Properti   I w i  p i  Pi/w i  Status  3 10  50  5 Diambil 2 5 15 3  Diambil 1 6 12 2 Tidak  4 5 10 2 Tidak  2.2.2
Tabel 2.3 Greedy by weight
+5

Referensi

Dokumen terkait

: Mahasiswa mampu menerapkan konsep yajna dan bhakti, memahami tentang kedudukan Pandita dan Pinandita. Mampu mengamalkan ninai filosofis dari masing-masing hari

Penelitian ini menggunakan pendekatan penelitian pengembangan (Research and Development).Tempat penelitian di Jurusan Teknik Mesin, SMKN 3 Yogyakarta.Obyek penelitian ini

Perusahaan harus tanggap dan siap untuk menyikapi dengan tepat situasi darurat atas terjadinya bencana, melakukan operasi bisnis minimal ketika terjadi bencana, melakukan

Target penerimaan perpajakan pada APBN tahun 2013 ditetapkan sebesar Rp1.193,0 triliun, terdiri atas pendapatan pajak dalam negeri sebesar Rp1.134,3 triliun

[r]

Di atas sudah sangat jelas bahwa peneliti pasti akan melakukan observasi langsung dan terstruktur untuk mendapatkan pengalaman secara langsung sekaligus mendapatkan

Bagi Pemerintah Provinsi Bali dan Nusa Tenggara Timur dpelaksanaan Survei Monitoring Jenis Ikan Terancam Punah, dilindungi/tidak dilindungi (Pari Manta) dapat menjadi masukan

Berdasarkan penelitian yang telah dilakukan dan hasil penelitian yang diperoleh, maka dapat diambil kesimpulan mengenai jenis dan penyebab kesalahan yang dilakukan oleh