Aplikasi Algoritma Genetik (Pencarian Dan Pengurutan Nilai)

13
TUGAS SISTEM CERDAS APLIKASI ALGORITMA GENETIK DALAM PENCARIAN NILAI (SEARCHING) DAN PENGURUTAN NILAI (SORTING) PADA TABEL Oleh : Dosen : Ir. Darwison , MT. JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS ANDALAS

description

aplikasi Algoritma Genetik

Transcript of Aplikasi Algoritma Genetik (Pencarian Dan Pengurutan Nilai)

TUGASSISTEM CERDASAPLIKASI ALGORITMA GENETIKDALAM PENCARIAN NILAI (SEARCHING) DANPENGURUTAN NILAI (SORTING) PADA TABEL

Oleh :

Dosen :

Ir. Darwison , MT.

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS ANDALAS

PADANG

2011PENDAHULUANAlgoritma genetik ditemukan oleh John Holland pada tahun 1975 melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya yaitu David Goldberg. Algoritma genetik berusaha menerapkan pemahaman tentang evolusi alamiah biologis untuk tugas-tugas pemecahan-masalah (problem solving). Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak berbagai pilihan solusi terbaik di dalam suatu kumpulan untuk mendapatkan generasi solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya atau lazim disebut fitness. Generasi ini akan merepresentasikan perbaikan-perbaikan pada populasi awalnya. Dengan melakukan proses ini secara berulang, algoritma ini diharapkan dapat mensimulasikan proses evolusioner.Pada akhirnya, akan didapatkan solusi yang paling tepat bagi permasalahan yang dihadapi. Untuk menggunakan algoritma genetik, solusi permasalahan direpresentasikan sebagai khromosom. algoritma genetik memerlukan dua hal:1. Representasi genetik dari domain solusi representasi genetik ini berupa array of bits.2. Fitness function untuk mengevaluasi domain solusi.Jika kedua aspek di atas telah didefinisikan, algoritma genetik generik akan bekerja dengan baik.

Gambar 2. Contoh Aplikasi Algoritma Genetik

Algoritma genetik dimulai dengan memilih sekumpulan set status yang dipilih secara random, yang disebut populasi. Algoritma ini mengkombinasikan dua populasi induk. status atau individual direpresentasikan sebagai string.

Fitness functionFitness function digunakan untuk mengevaluasi setiap individual. Sebuah fitness function akan mengembalikan nilai tertinggi untuk individual yang terbaik. Setelah itu setiap individu akan diurutkan berdasarkan nilai atau disebut dengan selection. CrossoverUntuk setiap pasang induk, sebuah titik crossover dipilih secara random dari posisi dalam string. Pada titik crossover terletak pada indeks ketiga dalam pertama dan setelah indeks kelima pada pasangan kedua. MutasiDi dalam proses mutasi, tiap lokasi menjadi sasaran mutasi acak, dengan probabilitas independen yang kecil. Sebuah digit dimutasikan pada anak pertama, ketiga, dan keempat. Algoritma genetik mengkombinasikan suatu kecenderungan menaik dengan pengeksplorasian acak diantara thread pencarian paralel. Keuntungan utamanya, bila ada, datang dari operasi crossover. Namun, secara matematis dapat tunjukkan bahwa bila posisi dari kode genetik dipermutasikan di awal dengan urutan acak, crossover memberikan keunggulan.Secara intuisi, keuntungannya didapat dari kemampuan crossover untuk menggabungkan blok-blok huruf berukuran besar yang telah berevolusi secara independen untuk melakukan fungsi yang bermanfaat sehingga dapat menaikkan tingkat granularity di mana pencarian dilakukan.

SchemaBerdasarkan teori dari algoritma genetik, cara ker algortima ini menggunakan suatu schema, yaitu substring dengan posisi yang tidak disebutkan. apabila fitness rata-rata dari schema maka jumlah instansiasi dari schema di dalam populasi akan bertambah seiring bertambaahnya waktu. Jelas sekali bahwa efek ini tidak akan signifikan bila bit sama sekali tidak berhubungan satu sama sekali, karena akan ada beberapa blok kontigu yang memberikan keuntungan yang konsisten. Algoritma genetik paling schema-schema berkorespondensi menjadi komponen dari sebuah solusi.Sebagai contoh, bila string representasi dari sebuah antena, maka schema merepresentasikan komponen-komponen dari antena, reflector dan deflector. Sebuah komponen yang cenderung akan berkerja baik pada rancangan yang berbeda. Ini menunjukkan bahwa penggunaan algoritma yang benar memerlukan rekayasa yang baik pada representasinya.

Gambar 3. Diagram Alur Algoritma GenetikKamus Umum Pemrosesan Tabel Integerconstant Nmin: integer = 1

constant Nmax: integer = 100

{Nmin dan Nmax : batas bawah dan

batas atas yang ditentukan}

type Infotype: integer

{suatu tipe terdefinisi, yaitu

integer}

T: array [Nmin..Nmax] of infotype

{tabel T yang didefinisikan

dengan indeks dari Nmin sampai

Nmax dengan elemen bertipe

infotype}

procedure Inisialisasi

{persiapan yang harus dilakukan

sebelum pemrosesan}

procedure Proses (input x:int)

{proses terhadap currentelement

pada tabel T}

procedure Terminasi

{penutuoan yang harus dilakukan

setelah pemrosesan selesai}

SKEMA PEMROSESAN TABEL T UNTUK

INDEKS [Nmin..Nmax]

{traversal tabel T untuk indeks

bernilai Nmin..Nmax}

Skema:

Inisialisasi

i Nmin

iterate

Proses (Ti)

stop : i = Nmax {EOP}

i i + 1 {Next element}

TerminasiPENCARIAN NILAI (SEARCHING)

Algoritma ini mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Untuk nilai fitness, secara logis dapat diberikan pada nilai maksimum pada tabel sehingga dapat memberikan nilai yang eligible pada nilai yang lain, Sehingga untuk perhitungan fitness function akan lebih mudah. Implementasi algoritma tanpa boolean dalam bahasa C adalah sebagai berikut. void SeqSearch1 (int T[], int Nmax,

int value, int *idx)

/*I.S. T tabel dgn elemen bertipe*/

/* integer, tidak kosong*/

/*F.S. idx terdefinisi sebagai index

tempat value ditemukan, idx = 0 jika

tidak ketemu*/

/*Proses : melakukan pencarian harga

value dalam table T*/

{

/*kamus lokal*/

int i;

/*Algoritma*/

i = 1;

while ((i

index))

{

*T[j] = *T[j-1];

j = j - 1;

}

*T[j] = index;

}

}Algoritma pengurutan seleksi mempunyai kompleksitas algoritma O(n2), Namun jika kedua algoritma tersebut dijalankan untuk table dengan data yang sama, algoritma dengan pengurutan seleksi 60% lebih cepat dibandingkan dengan algoritma memakai pengurutan yang lain.

DAFTAR PUSTAKAWikipedia. Pencarian biner. http://id.wikipedia.org/wiki/Pencarian_biner. January 16, 2011,01:48 WIB.Michael Lamont. The sorting algorithms. http://linux.wku.edu/~lamonml/algor/sort/index.html. January 16, 2011,01:54 WIB.Analisis Kompleksitas Algoritma untuk Berbagai Macam Metode Pencarian Nilai (Searching) dan Pengurutan Nilai (Sorting) pada Tabel, http://groups.yahoo.com/group/sc-ina/ atau http://soft-computing.org January 16, 2011, 2011,01:23 WIB.