15
1. Crossover satu titik
Sebuah titik potong crossover dipilih kemudian dari hasil titik potong dari salah satu kromosom saling tukar ke titik potong kromosom yang
lainnya sehingga menghasilkan kromosom yang baru. Titik potong bias ditentukan di mana saja hanya saja yang harus dipertimbangkan
adalah jumlah titik kromosom orang tua 1 dengan orang tua 2 harus sama. Pada gambar 2-3 dapat dilihat proses crossover satu titik di
bawah ini :
1 1
1 1
1 2
3 4
5 6
7 8
Titik potong
1 1
1 1
1
a b
c d
e f
g h
1 1
1 1
1
1 2
c d
e f
g h
1 1
1 1
a b
3 4
5 6
7 8
Gambar 0-3 Proses Crossover Satu Titik
Orang tua 1
Orang tua 2
Anak 1
Anak 2 Gen ke-1
Kromosom
Gen ke-1 Kromosom
16
2. Crossover banyak titik
Seperti crossover satu titik hanya saja titik potongnya lebih dari satu. Titik potong bisa ditentukan di mana saja hanya saja yang harus
dipertimbangkan adalah jumlah titik kromosom orang tua 1 dengan orang tua 2 yang dipotong harus sama. Proses crossover banyak titik
dapat dilihat pada gambar 2-4 di bawah ini :
1 1
1 1
1 2
3 4
5 6
7 8
1 1
1 1
1
a b
c d
e f
g h
1 1
1 1
1
1 2
c d
e 6
7 h
1 1
1 1
a b
3 4
5 f
g 8
Gambar 0-4 Proses Crossover Satu Titik
Orang tua 2
Anak 1
Anak 2
Titik potong 1 Titik potong 2
Titik potong 3
Kromosom Orang tua 1
Kromosom
17
b Mutasi
Operator genetika selain crossover ini menghasilkan perubahan secara acak pada kromosom. Operator ini akan mengubah bit yang awalnya 0
menjadi 1 sedangkan bit awal yang awalnya bernilai 1 akan diganti menjadi 0 sehingga pada mutasi ini memungkinkan muncul kromosom
baru yang sebelumnya tidak ada di populasi awal.
6. Penentuan Parameter
Nilai dari parameter ditentukan berdasarkan permasalahan yang akan dipecahkan yang digunakan sebagai parameter kontrol algoritma genetika.
Parameter kontrol algoritma genetika adalah ukuran populasi popsize, peluang crossover p
c
dan peluang mutasi p
m
.
2.4. Algoritma Backtracking
Algoritma backtracking merupakan algoritma yang berbasis pada Depth First Search DFS, tetapi hanya pencarian yang mengarah ke solusi saja yang
dipertimbangkan. Artinya, jika dalam pencarian menemui langkah yang tidak mengarah ke solusi, maka akan dicari langkah yang lain. Langkah-langkahnya
adalah sebagai berikut [11] : a. Solusi dicari dengan membentuk lintasan dari akar ke daun. Aturan
pembentukan yang dipakai adalah aturan dalam metode DFS. Simpul- simpul yang sudah dilahirkan dinamakan simpul hidup live node. Simpul
hidup yang sedang diperluas dinamakan simpul-E expand node. Simpul dinomori dari atas ke bawah sesuai dengan urutan kelahirannya.
b. Tiap kali simpul-E diperluas, lintasan yang dibangun olehnya bertambah panjang. Jika lintasan yang sedang dibentuk tidak mengarah ke solusi,
maka simpul- E tersebut “dibunuh” sehingga menjadi simpul mati dead
node. Fungsi yang digunakan untuk membunuh simpul-E adalah dengan menerapkan fungsi pembatas bounding function. Simpul yang sudah
mati tidak akan pernah diperluas lagi.
18
c. Jika pembentukan lintasan berakhir pada simpul mati, maka proses pencarian diteruskan dengan membangkitkan simpul anak yang lainnya.
Bila tidak ada lagi simpul anak yang dapat dibangkitkan, maka pencarian solusi dilanjutkan dengan melakukan backtrack ke simpul hidup terdekat
simpul orang tua. Selanjutnya simpul ini menjadi simpul-E yang baru. Lintasan baru dibangun kembali sampai lintasan tersebut membentuk
solusi. d. Pencarian dihentikan bila solusi ditemukan atau tidak ada lagi simpul
hidup untuk backtrack.
2.5. Big-O
Notasi Big O merupakan suatu notasi matematika untuk menjelaskan batas atas dari magnitude suatu fungsi dalam fungsi yang lebih sederhana. Dalam dunia
ilmu komputer, notasi ini sering digunakan dalam analisis kompleksitas algoritma. Notasi Big O pertama kali diperkenalkan pakar teori bilangan Jerman, Paul
Bachman tahun 1894, pada bukunya yang berjudul Analytische Zahlentheorie edisi kedua. Notasi tersebut kemudian dipopulerkan oleh pakar teori bilangan
Jerman lainnya, Edmund Landau, dan oleh karena itu, terkadang disebut sebagai symbol Landau.
Untuk membandingkan kompleksitas algoritma yang satu dengan yang lain, dapat digunakan tabel 2-1 jenis kompleksitas, yang diurutkan berdasarkan
kompleksitas yang paling baik ke yang paling buruk. Sebuah masalah yang mempunyai algoritma dengan kompleksitas polinomial kasus-terburuk dianggap
m empunyai algoritma yang “bagus” artinya masalah tersebut mempunyai
algoritma yang mangkus, dengan catatan polinomial tersebut berderajat rendah. Jika polinomnya berderajat tinggi, waktu yang dibutuhkan untuk mengeksekusi
algoritma tersebut panjang [1].
Tabel 0-3 Jenis Kompleksitas
Notasi Nama
O1 Konstan