sutikno Algoritma Genetika

ALGORITMA GENETIKA
UNTUK PENYELESAIAN MASALAH KNAPSACK

Knapsack problem
 Knapsack problem adalah masalah optimasi kombinatorial.
 Masalah maksimasi untuk pilihan paling tepat dari barang-barang
yang akan dibawa dalam sebuah tas pada sebuah perjalanan.
 Sejumlah barang yang tersedia ini, masing masing memiliki berat dan
nilai, yang menentukan jumlah barang yang dapat dibawa sehingga
total berat tidak melebihi kapasitas tas dan dengan total nilai yang
sebesar mungkin.
Penerapan pada Algoritma Genetika
Representasi Kromosom
 Gen direpresentasikan dalam bentuk string bit.
 Caranya yaitu dengan memilih barang secara manual, di mana barang
yang terpilih diberi tanda √ dan tanda x untuk barang yang tidak
dipilih. Kedua tanda tersebut bisa dikodekan sebagai 1 untuk tanda √
dan 0 untuk tanda x.
 Contoh :
Kode
b1

b2
b3
b4

Nama Barang
A
B
C
D

Berat (kg)
3
2
5
4

Nilai (Rp)
6
5
9

8

Pilihan I
x

x


Pilihan II


x


Sehingga didapatkan kromosom seperti pada gambar berikut ini.

K1=b2+b4=0101
Nilai=0*6+1*5+0*9+1*8=13

Berat=0*3+1*2+0*5+1*4=6

K2=1101
Nilai = 1*6+1*5+0*9+1*8=19
Berat=1*3+1*2+0*5+1*4=9
Pada masalah knapsack barang yang dibawa dibatasi total beratnya,
sehingga kromosom-kromosm yang dibangkitkan dilakukan pengecekan
apakah kurang/melebihi total berat yang diijinkan. Misal dari contoh
diatas total berat maksimal yang dijinkan 6 kg, maka
Untuk K1 = 2+4=6
K2=3+2+4=9
Dari hasil perhitungan diatas K1 Valid dan K2 tidak Valid
Prosedur Inisialisasi
 Gen di presentasikan dalam bentuk string bit
 Inisialisasi terhadap kromosom dilakukan secara acak (random).
 Jumlah gen pada kromosom tergantung jumlah barang yang akan di
bawa.

FungsiFitness
Fungsi Fitnes pada masalah ini diambil dari tujuan dan batasan, yaitu
menentukan total nilai barang yang jumlah total beratnya tidak melebihi
yang diijinkan, sehingga dapat dituliskan:


Dengan batasan

bi
vi
wi
w

= Nilai Gen kromosom ke-i (bernilai 0 atau 1)
= nilai barang ke-i
= berat barang ke-i
= berat toral yang diijinkan

Kode
b1
b2
b3
b4

Nama

Barang
A
B
C
D

Berat
(kg)
3
2
5
4

Nilai
(Rp)
6
5
9
8


Pilihan
I
x

x


Pilihan
II


x


NIlai

K1=0101
K1=13
K2=1101
K2=19

Berat

K1 = 2+4=6
K2=3+2+4=9
Seleksi
Untuk menyelesaikan masalah knapsack problem, digunakan roulette
wheel.
Langkah langkah penyeleksiannya:
 Hitung fungsi fitnesnya
 Hitung total fitnesnya
 Hitung probabilitas masing-masing kromoson
 Hitung frekuensi komulatif masing-masing kromosom
 Bangkitkan bilangan acak untuk menentukan kromosom yang terpilih
 Pilih kromosom berdasarkan pembangkitan bilangan acak.
Contoh:
F[1]=9, B[1]=5
F[2]=6,B[2]=12
F[3]=7,B[3]=3

F[4]=3,B[4]=11

Batasnya 11
Ftotal=25
P[1]=9/25=0,36
P[2]=6/25=0,24
P[3]=7/25=0,28
P[4]=3/25=0,12
Fk[1]=0,36
Fk[2]=0,6
Fk[3]=0,88
Fk[4]=1
Membangkitkan 4 bilangan acak, misal:
Ba[1]=0,3
Ba[2]=0,8
Ba[3]=0,4
Ba[4]=0,6
K1,K3,K2,K2
Operator Genetika
 Metode crossover yang digunakan pada kromosom crossover satu titik
(onepoint crossover)


1101 >