BAB 2
DASAR TEORI
2.1 Teka-Teki Silang
Teka-teki silang atau disingkat TTS adalah suatu permainan yang mengharuskan penggunanya untuk mengisi ruang-ruang kosong dengan huruf-huruf yang membentuk sebuah kata berdasarkan petunjuk yang diberikan (wikipedia, 2007). Petunjuk biasa dibagi dalam kategori mendatar dan menurun tergantung posisi kata yang harus diisi. PERTANYAAN Mendatar 1
1. Cukai
2
3. Tidak Benar 3
4
5. Sejenis kain dari bulu domba Menurun 1. Alat Transportasi
5
2. Memperbolehkan (Inggris) 4. Urusan,masalah
Gambar 2.1 Contoh sebuahTTS sederhana
Teka-teki silang (TTS) pertama kali diterbitkan dalam majalah New York World dalam format yang hampir sama dengan teka-teki silang yang dikenal pada saat ini. Teka-teki yang
sering disebut sebagai teka-teki silang yang pertama ini
ditemukan oleh Wynne. TTS kemudian menjadi fitur mingguan di majalah tersebut. Dalam perkembangan selanjutnya TTS tidak hanya menjadi fitur sebuah majalah. Buku kumpulan TTS yang pertama diterbitkan oleh Simon dan Schuster pada tahun 1924. TTS menjadi salah satu benda terpopuler pada era tersebut. Di Indonesia sendiri, perkembangan teka-teki silang diawali pada tahun 1970-an. Pada waktu itu di
Universitas Sumatera Utara
Jakarta terbit “Asah Otak”, sebuah majalah TTS dan teka-teki lainnya. Penerbitan ini ternyata juga menuai sukses sehingga banyak terbitan serupa yang mengikuti.
2.2 Algoritma Genetika
Algoritma genetika adalah suatu algoritma pencarian (searching) berdasarkan cara kerja melalui mekanisme seleksi alam dan genetik. Tujuannya untuk menentukan struktur-struktur yang disebut individu berkualitas tinggi di dalam suatu domain yang disebut populasi untuk mendapatkan solusi persoalan (Pandjaitan, 2007, hal:163).
Pada tahun 1975, John Holland memperkenalkan algoritma genetika untuk yang pertama kalinya. Algoritma genetika berbeda dengan algoritma konvensional karena dimulai dari suatu himpunan awal yang disebut populasi. Algoritma genetika menggunakan dua prinsip dasar dalam sistem biologis, yaitu seleksi terhadap spesies yang ada dan peningkatan keanekaragaman (gen dengan operasi genetik).
2.3 Parameter Algoritma Genetika
Skema algoritma genetika menentukan bagaimana jalannya proses algoritma genetika, sehingga pada proses ini juga perlu ditentukan parameter algoritma genetika yang akan digunakan, yaitu sebagai berikut:
2.3.1 Ukuran populasi
Ukuran populasi adalah jumlah kromosom yang ada pada populasi. Kromosom merepresentasikan bentuk dari teka-teki silang. Memilih ukuran populasi yang tepat akan meningkatkan kinerja algoritma genetika. Apabila ukuran populasi terlalu kecil, maka algoritma genetika hanya mempunyai alternatif solusi yang sedikit. Namun, jika ukuran populasi terlalu, besar proses algoritma genetika akan berjalan lambat. 2.3.2 Jumlah generasi
Universitas Sumatera Utara
Satu proses rangkaian algoritma genetika dimulai dari proses seleksi, crossover (pindah silang), mutasi sampai update generasi. Proses algoritma genetika akan dihentikan apabila jumlah generasi sudah terpenuhi. Solusi yang diambil adalah kromosom dengan nilai fitness (nilai kelayakan) terbaik dari generasi terakhir.
2.3.3 Crossover probability (peluang pindah silang)
Peluang crossover (PC) akan menentukan banyaknya crossover (pindah silang) yang terjadi. Nilai PC berkisar dari 0 sampai 1. Apabila nilai PC sama dengan 1, maka seluruh kromosom akan mengalami crossover. Apabila PC sama dengan 0, maka tidak akan terjadi proses crossover, atau dengan kata lain kromosom offspring (kromosom anak hasil pindah silang) akan sama dengan kromosom parent (kromosom induk).
2.4
Kromosom dan Pola Representasi
Dalam konsep ilmu biologi dikenal adanya istilah sel. Sel merupakan bagian terkecil yang menyusun organisme. Secara umum organisme terdiri dari sel-sel penyusun. Sebuah sel tersusun dari kumpulan beberapa kromosom. Sebuah kromosom tersusun dari beberapa gen. Gen merupakan sekumpulan DNA (Deoxyribo Nucleic Acid). Konsep biologi semacam ini yang diadaptasi pada algoritma genetika. Dalam algoritma genetika, kromosom merupakan alternatif solusi dari sebuah permasalahan. Kromosom dapat disajikan dalam beberapa bentuk sesuai dengan jenis pengkodean yang digunakan.
2.4.1 Pengkodean kromosom
Universitas Sumatera Utara
Pengkodean
merupakan
bagian
yang
penting
dalam
menyelesaikan
suatu
permasalahan dengan algoritma genetika. Pengkodean adalah pengkorversian masalah dalam dunia nyata menjadi bentuk yang dapat diolah dengan menggunakan algoritma genetika. Pengkodean yang tepat sangat menentukan berhasil atau tidaknya proses algoritma genetika dalam menyelesaikan sebuah permasalahan. Pengkodean yang tepat juga akan menentukan tingkat efisiensi komputasi yang digunakan.
Ada beberapa jenis pengkodean yang dapat digunakan dalam algoritma genetika, diantaranya pengkodean biner (binary encoding) dan pengkodean permutasi (permutation encoding).
2.4.1.1 Pengkodean biner (binary encoding)
Pengkodean biner merupakan pengkodean yang sering digunakan dan paling sederhana. Sesuai dengan namanya, pada pengkodean biner nilai gen pada sebuah kromosom hanya terdiri dari 0 dan 1. Contoh kromosom yang menggunakan pengkodean biner ditunjukkan pada gambar 2.2.
Kromosom 1
1010101011
Kromosom 2
1100001010
Gambar 2.2 Kromosom dengan pengkodean biner
2.4.1.2 Pengkodean permutasi
Pengkodean permutasi dapat digunakan untuk menyelesaikan ordering problem, seperti traveling salesman problem dan masalah penjadwalan. Dalam pengkodean permutasi urutan atau posisi gen pada kromosom merepresentasikan urutan dari suatu proses. Dalam pengkodean permutasi tidak ada nilai gen yang sama dalam suatu kromosom. Contoh kasus yang dapat diselesaikan dengan pengkodean permutasi
Universitas Sumatera Utara
adalah TSP (traveling salesman problem). Traveling salesman problem merupakan cara bagaimana menentukan rute minimal untuk mengunjungi beberapa tempat atau kota. Jika ada 10 kota yang akan dikunjungi, maka satu kromosom akan mempunyai 10 gen, dimana tiap-tiap gen mewakili satu kota. Posisi atau urutan gen dalam kromosom menentukan urutan kota yang harus dilalui. Contoh kromosomnya dapat dilihat pada gambar 2.3.
Kromosom 1
2 6 7 5 1 3 4 9 8 10
Kromosom 2
10 5 4 9 7 1 3 2 6 8
Gambar 2.3 Kromosom dengan pengkodean permutasi
Pada kromosom 1 berarti kota yang pertama dikunjungi adalah kota 1, kemudian kota 2 demikian seterusnya sampai kota 10.
2.4.2 Nilai fitness (nilai kelayakan) dan fungsi objektif (fungsi tujuan)
Dalam proses evolusi individu yang survive (bertahan hidup) dari proses seleksi alam akan mempunyai kesempatan untuk bereproduksi kembali. Dengan demikian, kemampuan individu untuk dapat beradaptasi dan bertahan hidup untuk selamat sangat penting. Dalam terminologi algoritma genetika kemampuan suatu individu (kromosom) untuk bertahan hidup dapat diukur berdasarkan nilai fitness-nya. Semakin baik nilai fitness (nilai kelayakan) suatu kromosom maka akan semakin baik peluang kromosom tersebut untuk bertahan hidup dan ikut dalam proses reproduksi. Nilai fitness suatu kromosom dapat dihitung dengan menggunakan fungsi objektif.
2.4.3 Seleksi
Universitas Sumatera Utara
Proses seleksi bertujuan untuk memilih kromosom yang akan dijadikan sebagai parent (kromosom induk) pada proses crossover (pindah silang). Ada beberapa metode yang dapat dipilih pada proses seleksi, antara lain Roulette Wheel Selection, Rank Selection dan Tournament Selection.
2.4.3.1 Roulette wheel selection
Pada roulette wheel selection, kromosom akan dipilih secara acak ditentukan dengan memperhitungkan nilai kelayakan masing-masing kromosom. Semakin besar nilai kelayakan suatu kromosom, semakin besar pula peluang kromosom tersebut untuk terpilih sebagai parent (kromosom induk). Pengkodean roulette wheel dapat dianalogikan seperti permainan roda putar. Pada permainan roda putar, lingkaran roda dibagi menjadi beberapa wilayah. Pada roulette wheel selection, lebar suatu wilayah kromosom ditentukan menurut nilai fitness-nya, semakin besar nilai fitness-nya maka akan semakin besar wilayahnya, dan semakin besar pula peluang kromosom tersebut untuk terpilih.
Ilustrasi dari roulette wheel selection dapat dilihat pada gambar 2.4.
Gambar 2.4 Roulette wheel selection
Proses roulette wheel selection dijelaskan pada algoritma sebagai berikut: 1. [Sum] Jumlahkan semua nilai fitness (nilai kelayakan) tiap-tiap kromosom pada populasi S. 2. [Select] Generate bilangan random pada interval (0,S)-r.
Universitas Sumatera Utara
3. [Loop] secara sekuensial dari kromosom pertama, jumlahkan nilai fitness kromosom-s. apabila pada kromosom ke-i s>r maka berhenti, maka kromosom i terpilih sebagai kandidat parent.
Contoh dari roulett whell selection dapat dilihat pada tabel 2.1.
Tabel 2.1 Contoh roulett wheel selection Kromosom
Fitness
Si
Bil.Random r Kromosom (0, 110)
Terpilih
Kromosom 1
20
20
35
Kromosom 3
Kromosom 2
10
30
90
Kromosom 5
Kromosom 3
30
60
45
Kromosom 3
Kromosom 4
10
70
10
Kromosom 1
Kromosom 5
40
110
70
Kromosom 4
Jumlah
S = 110
Pada tabel di atas dapat disimpulkan bahwa ukuran pupulasi adalah 5. Nilai Si merupakan nilai akumulasi dari nilai fitness kromosom ke 1 sampai kromosom ke i. Untuk memilih kromosom yang akan menjadi calon parent maka dibangkitkan bilangan random (0, S). Bilangan random yang dibangkitkan sebanyak 5 buah sesuai dengan ukuran populasinya. Apabila ri < Si dan ri > Si-1 maka kromosom yang terpilih adalah kromosom ke i. Pada tabel di atas r1 = 35, karena 35 < S3 (60) dan 35 > S2 (30) maka kromosom yang terpilih adalah kromosom 3.
2.4.3.2 Rank selection
Pada pengkodean ranking, kromosom pada populasi diranking sesuai dengan nilai fitness-nya, kemudian kromosom diberi nilai fitness (nilai kelayakan) yang baru sesuai dengan rankingnya. Kromosom dengan ranking terbawah akan mendapat nilai fitness 1, ranking terbawah kedua mendapat nilai fitness 2, demikian seterusnya. Kromosom dengan ranking terbaik akan mendapat nilai fitness N. Gambar 2.5 dan gambar 2.6
Universitas Sumatera Utara
masing-masing mengilustrasikan kondisi dari nilai fitness sebelum dan sesudah proses ranking.
Gambar 2.5 Nilai fitness sebelum diranking
Gambar 2.6 Nilai fitness sesudah diranking
Dari gambar 2.6 dapat diketahui setelah diranking, semua kromosom mempunyai kesempatan terpilih karena kromosom dengan nilai terbaik tidak mempunyai perbedaan yang besar dengan kromosom yang lain. Contoh dari rank selection dapat dilihat pada tabel 2.2.
Tabel 2.2 Contoh rank selection Kromosom
Fitness
Ranking
Awal
Fitness
Si
setelah
Bil.Random
Kromosom
r (0, 15)
Terpilih
5
Kromosom
ranking Kromosom 1
20
3
3
3
2 Kromosom 2
10
4
2
5
3
Kromosom 1
Kromosom 3
30
2
4
9
7
Kromosom 3
Kromosom 4
40
1
5
14
8
Kromosom
Universitas Sumatera Utara
3 Kromosom 5
5
5
1
15
13
Kromosom 4
Jumlah
S = 15
Pada tabel di atas dapat dilihat bahwa rank selection hampir sama dengan roulett whell selection. Hanya saja sebelum kromosom dipilih nilai fitness tiap kromosom diganti sesuai dengan rankingnya. Nilai fitness hasil dari pemeringkatan ini yang kemudian dijadikan acuan pada saat pemilihan kromosom.
2.4.3.3 Tournament selection
Pada tournament selection, setiap satu kromosom kandidat parent dipilih dari proses tournament. Untuk memilih satu calon parent, dipilih dua buah kromosom secara acak. Kemudian nilai fitness kedua kromosom tersebut dibandingkan, kromosom dengan nilai fitness terbaik dipilih sebagai calon parent. Demikian juga untuk memilih calon parent yang lain. Ilustrasi dari tournament selection ditunjukkan pada gambar 2.7.
Kromosom 1 Fitness : 10 Kromosom 2 Kromosom 2 Fitness : 15 Kromosom 3 Kromosom 3 Fitness : 20 Kromosom 4 Fitness : 40
Kromosom 5 Kromosom 6 Kromosom 4
Kromosom 5 Fitness : 35 Kromosom 6 Fitness : 25 Kromosom 7 Fitness : 30
Kromosom 5 Kromosom 8
Kromosom 8
Kromosom 8 Fitness : 45
Gambar 2.7 Tournament selection
Universitas Sumatera Utara
Pada gambar di atas dapat disimpulkan ukuran populasinya adalah 8. Untuk memilih sebuah kromosom mula-mula dipilih sepasang kromosom. Selanjutnya sepasang kromosom yang terpilih dibandingkan nilai fitness-nya. Kromosom dengan nilai fitness yang lebih besar adalah kromosom yang dipilih. Pada contoh di atas kromosom 2 yang dipilih dari proses turnamen antara kromosom 2 dan kromosom 1.
2.4.4 Crossover
Crossover atau pindah silang adalah proses pembentukan kromosom anak (offspring). Crossover bertujuan menambah keanekaragaman string dalam satu populasi dengan penyilangan antar-string yang diperoleh dari reproduksi sebelumnya (Arhami, 2005, hal:196). Beberapa jenis crossover sebagai berikut:
2.4.4.1 Crossover pengkodean biner
Ada beberapa metode crossover (pindah silang) dengan pengkodean biner, yaitu sebagai berikut:
2.4.4.1.1 Crossover 1 titik
Proses crossover dilakukan dengan memisahkan suatu string menjadi dua bagian dan selanjutnya salah satu bagian dipertukarkan dengan salah satu bagian dari string yang lain yang telah dipisahkan dengan cara yang sama.
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11001111
Gambar 2.8 Contoh crossover 1 titik
Universitas Sumatera Utara
2.4.4.1.2 Crossover 2 titik
Proses crossover (pindah silang) ini dilakukan dengan memilih dua titik crossover. Kromosom keturunan kemudian dibentuk dengan barisan bit dari awal kromosom sampai titik crossover pertama disalin dari orangtua pertama, bagian dari titik crossover pertama dan kedua disalin dari orangtua kedua, kemudian selebihnya disalin dari orang tua pertama lagi.
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11011111
Gambar 2.9 Contoh crossover 2 titik
2.4.4.1.3 Crossover seragam
Crossover (pindah silang) seragam menghasilkan kromosom keturunan dengan menyalin bit-bit secara acak dari kedua orangtuanya.
Kromosom orangtua 1
11001011
Kromosom orangtua 2
11011111
Keturunan
11011111
Gambar 2.10 Contoh crossover seragam
2.4.4.1.4 Arithmatic crossover
Kromosom offspring (kromosom anak) diperoleh dengan melakukan operasi aritmatika terhadap parent (induk). Operasi yang dapat dilakukan antara lain AND, OR, XOR dan lain-lain. Contoh dari arithmatic crossover dapat dilihat pada gambar 2.11.
Universitas Sumatera Utara
Parent-1
10101001 AND
Parent-2
10111010
Offspring
10101000
Gambar 2.11 Contoh arithmatic crossover
2.4.4.1.5 Crossover pengkodean permutasi
Jenis crossover (pindah silang) untuk pengkodean permutasi hanyalah single point crossover. Metode ini dilakukan dengan memilih satu titik crossover p pada kromosom parent (kromosom induk) secara acak. Gen ke-1 sampai gen ke-p pada parent 1 dikopikan menjadi gen offspring (kromosom anak). Sisa gen yang belum terpenuhi diambil dari parent 2 dengan cara sekuensial dari gen ke-1 parent 2 sampai gen terakhir, dengan syarat gen tersebut belum ada dalam kromosom offspring. Contoh dari crossover pada pengkodean permutasi dapat dilihat pada gambar 2.12.
Parent 1
23415768
Parent 2
51386427
Offspring1
23415867
Offspring2
51382476
Gambar 2.12 Contoh single point crossover pengkodean permutasi
Titik crossover pada gen ke-4. Offspring pertama dihasilkan dari gen 1 sampai gen 4 parent 1, kemudian gen yang berikutnya pada offspring 1 diambil dari parent 2. Gen parent 2 dicek secara sekuensial dari gen 1 sampai gen 8. Apabila gen yang dicek belum ada pada gen yang diambil dari parent 1 maka gen pada parent 2 tersebut diambil untuk menjadi bagian pada offspring 1.
Universitas Sumatera Utara
2.4.5 Update generasi
Proses crossover akan menghasilkan kromosom-kromosom baru (offspring) yang akan menyebabkan ukuran populasi akan bertambah. Untuk menjaga agar ukuran populasi tetap, maka harus ada kromosom yang dibuang. Proses ini dinamakan dengan update generasi. Proses update generasi dapat dilakukan dengan mengurutkan kromosom dalam populasi berdasarkan nilai fitness-nya, selanjutnya diambil n kromosom dengan nilai kromosom terbaik. Kromosom yang terpilih kemudian akan menjadi populasi yang baru.
2.4.6 Langkah algoritma genetika
Algoritma genetika dimulai dengan membuat himpunan solusi (kromosom) yang disebut dengan populasi. Populasi mula-mula dibuat secara acak. Selanjutnya populasi yang sudah terbentuk akan digunakan untuk membentuk populasi yang baru dengan harapan populasi yang baru lebih baik dari populasi sebelumnya. Solusi-solusi yang ada dalam populasi kemudian dipilih untuk membentuk solusi baru (offspring), yang dipilih berdasarkan nilai fitness-nya. Proses ini diulang sampai kondisi yang diinginkan. Berikut ini adalah urutan proses algoritma genetika:
1. Inisialisasi populasi, membuat populasi secara acak. 2. Evaluasi nilai fitness. 3. Membuat populasi baru dengan cara seleksi, crossover dan mutasi 4. Update generasi, ganti populasi yang lama dengan populasi baru. 5. Cek kondisi berhenti, apabila belum terpenuhi maka kembali ke proses 2.
Universitas Sumatera Utara
Mulai
Bangkitkan populasi awal
Evaluasi fungsi tujuan
Ya Apakah kriteria optimasi tercapai?
Individuindividu terbaik
Tidak Seleksi
Rekombinasi
Hasil
Selesai
Mutasi Gambar 2.13 Diagram alir algoritma genetika sederhana
Universitas Sumatera Utara
2.4.7 Konsep algoritma genetika
Siklus perkembangbiakan algoritma genetika diawali dengan pembuatan himpunan solusi secara acak yang dinamakan populasi, dimana di dalamnya terdapat individuindividu yang dinamakan kromosom. Kromosom ini secara lambat laun mengalami iterasi atau perkembangbiakan dalam sebuah generasi. Selama dalam sebuah generasi kromosom-kromosom ini dievaluasi dengan menggunakan fungsi fitness (fungsi kelayakan). Untuk menciptakan generasi berikutnya dengan kromosom yang baru dinamakan keturunan atau kromosom anak (offspring) dapat dilakukan dengan menggabungkan dua kromosom yang telah didapat sebelumnya dengan menggunakan operator pindah silang (crossover) ataupun dengan memodifikasi sebuah kromosom dengan menggunakn operator mutasi. Sebuah generasi baru sebelum dievaluasi lagi, maka generasi tersebut diseleksi berdasarkan nilai fitness-nya. Dari seleksi ini, kromosom-kromosom yang paling fit (kuat) mempunyai kemungkinan besar untuk terseleksi.
Universitas Sumatera Utara