Algoritma Genetik

Goldberg (1989) menjelaskan bahwa algoritma genetik merupakan algoritma pencarian berdasarkan mekanisme seleksi alam dan genetika alam. Algoritma genetik mengkawinkan struktur string yang bertahan untuk membentuk algoritma pencarian baru. Pada setiap generasi sejumlah individu baru diciptakan melalui bagian yang kuat dari orang tuanya. Metode algoritma genetik dikembangkan oleh John Holland dan mahasiswanya di Universitas Michigan. Tujuan dari penelitian yang dilakukan adalah untuk meneliti proses adaptasi dari sistem alam serta mendesain perangkat lunak yang memiliki kecerdasan buatan dengan mencontoh mekanisme sistem alam.

Goldberg (1989) menjelaskan beberapa istilah yang digunakan dalam algoritma genetik. Istilah strings dalam sistem genetik buatan analog dengan kromosom dalam sistem biologi. Pada sistem biologi, satu atau lebih kromosom dikombinasi untuk membentuk resep genetik secara keseluruhan. Resep genetika ini digunakan untuk pembentukan dan operasi beberapa organisme.

Pada sistem alamiah, keseluruhan paket genetik disebut genotip. Pada sistem genetik buatan, keseluruhan paket strings disebut sebuah struktur. Pada sistem alamiah, organisme dibentuk oleh interaksi dari keseluruhan paket genetik dengan lingkungannya yang disebut fenotip.

Pada sistem genetik buatan, struktur di-decode untuk membentuk paket parameter, alternatif solusi, atau titik pada ruang solusi. Pada sistem alamiah, kromosom terdiri dari gen-gen, yang terdiri dari sejumlah nilai yang disebut allel. Pada genetik, posisi (locus) dari sebuah gen diidentifikasi secara terpisah dari fungsi gen. Tabel 1 menjelaskan perbandingan istilah yang digunakan oleh sistem alamiah dan algoritma genetik.

Tabel 1. Perbandingan Istilah pada Sistem Alamiah dan Algoritma Genetik.

Sistem Alamiah

Algoritma Genetik

Kromosom String
Gen Fitur, Karakter, atau detektor
Allel Nilai fitur
Locus Posisi String
Genotip Struktur
Fenotip Set parameter, solusi alternatif, struktur yang di-decode
Epitasis Non linieritas

Sumber: Goldberg (1989)

Gen dan Cheng (2000) menjelaskan bahwa secara umum algoritma genetik memiliki lima komponen dasar yang telah diringkaskan oleh Michalewicz. Lima komponen dasar tersebut adalah:

1. Sebuah genetik yang merepresentasikan solusi dari masalah.

2. Sebuah cara untuk menciptakan populasi awal dari penyelesaian masalah.

3. Sebuah fungsi evaluasi untuk menilai fitness.

4. Operator genetik yang mengubah komposisi genetik anak selama reproduksi.

5. Nilai untuk parameter algoritma genetik.

Gen dan Cheng (2000) menjelaskan bahwa algoritma genetik memelihara populasi dari individu (Pi) pada setiap generasi i. Setiap individu merepresentasikan sebuah solusi potensial. Setiap individu dievaluasi untuk dinilai fitness-nya. Setiap individu menjalani stochastic transformations dengan menggunakan opreasi genetik untuk membentuk individu baru. Ada dua jenis transformasi yang digunakan yaitu mutasi dan kawin silang (crossover). Individu baru yang disebut offspring C(i) dievaluasi kembali. Setelah beberapa generasi diharapkan setiap individu menjadi konvergen menjadi individu terbaik. Individu terbaik inilah yang diharapkan menjadi solusi optimal atau suboptimal dari masalah. Struktur umum dari algoritma genetik dijelaskan sebagai berikut:

Teroma Skema

Tahap1
Teorema skema merupakan dasar teori yang menjelaskan bagaimana Algoritma Genetik bekerja. Skema adalah keserupaan pola dalam mendeskripsikan suatu himpunanan bagian dari beberapa string yang mempunyai kesamaan pada posisi tertentu. Sebuah skema dibentuk dengan menambahkan sebuah simbol spesial, yaitu sebuah simbol * (don’t care) dalam representasi biner (0 atau 1).

Contoh: *01 adalah 101 atau 001 yaitu 5 atau 1

Tahap2
Tingkatan dari sebuah skema S(dinotasikan denga o(S)) menunjukkan jumlah dari posisi angka 0 atau 1 yang sudah tetap(Bukan posisi don’t care) yang ada dalam skema. Tingkatan ini menunjukkan spesialisasi dari sebuah skema. Contoh:

S1=(* * * 0 0 1 * 1 1 0)

S2=(* * * * 0 0 * * 0 * )

S3=(1 1 1 0 1 * * 0 0 1)

Dimana

o(S1)= 6

o(S2)= 3

o(S3)= 8

Tahap3
Batasan panjang dari skema S (dinotasikan dengan δ(S)) adalah jarak antara posisi angka 0 atau 1 yang pertama hingga terakhir. Angka ini menunjukkan kerapatan informasi yang ada dalam sebuah skema. Contoh:

δ(S1)= 10-4=6

δ(S2)= 9-5 =4

δ(S3)= 10-1=9

Procedure: Algoritma Genetik

begin

i ← 0;

initialize P(i);

evaluate P(i);

while (not termination condition) do

begin

recombine P(i);

evaluate C(i);

select P(i+1) from P(i) and C(i);

i ← i + 1;

end

end

Besarnya populasi pada setiap generasi akan mempengaruhi kecepatan konvergensi. Semakin besar jumlah populasi akan mengakibatkan konvergensi yang lambat, akan tetapi bila jumlah populasi awal semakin kecil maka dapat terjadi konvergensi prematur. Jumlah titik coba yang dipakai oleh Harb dan Matthews pada tahun 1987 adalah sebesar jumlah variabel desain ditambah 1. Box mengusulkan jumlah titik coba adalah 2 kali jumlah variabel desain. Sedangkan Biles pada tahun 1983 mengusulkan jumlah titik coba adalah jumlah variabel desain ditambah dengan 2.

Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai kandidat solusi suatu masalah ke dalam suatu kromosom. Gen dan Cheng (2000) juga menjelaskan bahwa pengkodean merupakan kunci pokok persoalan, dalam melakukan pengkodean harus diperhatikan apakah dapat membangun pencarian genetik yang efektif menggunakan pengkodean. Beberapa prinsip untuk mengevaluasi pengkodean adalah yang diajukan oleh Rechenberg (1973) dalam Gen dan Cheng (2000):

1. Tidak berlebihan (non redundancy), pemetaan antara kode dan solusi harus 1-to-1 mapping. Pemetaan 1-to-1 menjamin tidak ada operasi sia-sia yang terjadi ketika membuat keturunan. Pada pemetaan n-to-1, algoritma genetik akan membuang waktu saat mencari, karena dua individu diduplikasi pada ruang fenotip tetapi tidak pada ruang genotip, pengukuran jarak pada ruang genotip tidak dapat memperlakukan individual sebagai identik, hal ini akan menjadikan algoritma genetik menjadi konvergen secara prematur. Pada pemetaan 1-to-n, dibutuhkan prosedur tambahan pada ruang fenotip untuk menentukan sebuah solusi di antara banyak kemungkinan solusi.

2. Legality, permutasi dari sebuah pengkodean berhubungan pada sebuah solusi. Prinsip ini menjamin bahwa sebagian besar operator genetik yang ada dapat dengan mudah diaplikasikan pada pengkodean.

3. Completeness, solusi mempunyai hubungan dengan pengkodean. Prinsip ini menjamin bahwa suatu titik pada ruang solusi dapat dicapai pada pencarian genetik.

4. Sifat Lamarckian, allel untuk sebuah gen tidak tergantung pada konteks. Sifat Lamarckian pada pengkodean berhubungan dengan apakah sebuah kromosom dapat mewariskan sifatnya pada generasi yang akan datang melalui operasi genetik. Sebuah teknik pengkodean diharapkan dapat mewariskan sifat baik orang tua.

5. Causality, berarti variasi kecil pada ruang genotip karena mutasi berimplikasi pada variasi kecil pada ruang fenotip.

Gen dan Cheng (2000) menjelaskan bahwa berdasarkan jenis simbol yang digunakan sebagai nilai suatu gen maka pengkodean dapat diklasifikasikan sebagai berikut:

1. Pengkodean biner, yaitu metode pengkodean yang menggunakan bilangan biner. Metode ini banyak digunakan karena sederhana untuk diciptakan dan mudah dimanipulasi (Davis, 1991).

2. Pengkodean bilangan riil, yaitu metode pengkodean dalam bentuk bilangan riil. Masalah optimalisasi fungsi dan optimalisasi kendala lebih tepat jika diselesaikan dengan pengkodean bilangan riil karena struktur topologi ruang genotip untuk pengkodean bilangan riil identik dengan ruang fenotipnya, sehingga mudah membentuk operator genetika yang efektif dengan cara memakai teknik yang dapat digunakan yang berasal dari metode konvensional.

3. Pengkodean bilangan bulat, yaitu metode pengkodean menggunakan bilangan bulat. Pengkodean ini baik digunakan untuk masalah optimasi kombinatorial.

4. Pengkodean struktur data, yaitu model pengkodean yang menggunakan struktur data.

Goldberg (1989) mengemukakan bahwa ada empat hal yang membedakan algoritma genetik dari teknik optimasi tradisional. Perbedaan tersebut adalah:

1. Manipulasi langsung dari pengkodean.

2. Pencarian dari sebuah populasi, bukan dari single point.

3. Pencarian melalui metode sampel.

4. Pencarian menggunakan operator stochastic, bukan deterministik.

Gen dan Cheng (2000) menjelaskan bahwa selama dua dekade beberapa metode seleksi telah diperkenalkan, dipelajari dan dibandingkan. Beberapa jenis seleksi yang umum dipakai adalah:

1. Roulette wheel selection. Metode ini diajukan oleh John Holland. Ide dasarnya adalah untuk menentukan proporsi probabilitas seleksi atau probabilitas survival pada tiap kromosom sesuai dengan nilai fitness-nya. Individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya. Sebuah bilangan random dibangkitkan dan individu yang memiliki segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses ini diulang hingga diperoleh sejumlah individu yang diharapkan.

2. (μ + λ) selection. Metode ini merupakan prosedur deterministik yang memilih kromosom terbaik dari orang tua dan keturunan. Metode ini biasanya digunakan pada masalah optimasi combinatorial.

3. Tournament selection. Metode ini memilih secara acak sejumlah kromosom dan memilih kromosom terbaik untuk reproduksi.

4. Steady-state reproduction. Pada metode ini sejumlah fitness parents yang terburuk digantikan dengan sejumlah individu baru (offspring).

5. Ranking and scaling. Ide dasar metode ini adalah mengurutkan berdasarkan ranking fitness-nya, kemudian menetapkan probabilitas seleksi tiap kromosom berdasarkan urutan ranking-nya.

6. Sharing. Teknik sharing diperkenalkan oleh Goldberg dan Richardson untuk optimasi dengan fungsi multi model. Teknik ini digunakan untuk menjaga keanekaragaman populasi. Fungsi sharing adalah sebuah cara untuk menentukan degradasi fitness individu dikarenakan jaraknya dengan tetangga. Dengan adanya degradasi, probabilitas reproduksi individu pada puncak keramaian ditahan, individu lain akan memperoleh keturunan.

Gen dan Cheng (2000) menjelaskan bahwa beberapa operator cross-over untuk pengkodean dengan bilangan riil dapat dibagi menjadi 4 metode:

1. Operator konvensional. Operator konvensional merupakan adaptasi operator biner untuk yang dipakai untuk operator bilangan riil.

2. Operator aritmatika. Konsep dasar operator jenis ini diambil dari convex set theory. Operator kawin silang (cross-over) aritmatika didefinisikan sebagai kombinasi dari dua kromosom yang menggunakan persamaan di bawah ini.

x1′ = λ1. x1 + λ2. x2

x2′ = λ1. x2 + λ2. x1

λ1 + λ1 = 1

λ1 ≥ 0

λ2 ≥ 0

3. Operator berdasarkan arah. Pada metode ini digunakan nilai dari fungsi sasaran untuk menentukan arah dari pencarian genetik. Operator akan membuat keturunan tunggal x’ dari dua orang tua x1 dan x2 sesuai dengan persamaan (21), r merupakan bilangan acak antara 0 dan 1. Diasumsikan bahwa x2 lebih baik dari x1.

x’ = r(x2 – x1) + x2

4. Operator Stokastik. Metode ini menggunakan bilangan acak untuk melakukan mutasi genetik individu. Mutasi diperlukan untuk memperluas ruang pencarian genetik, sehingga hasil optimasi tidak terjebak pada solusi optimum lokal.

Yohan Naftali
http://yohanli.com

56 Comments

ani

terapan algoritma genetika utk masalah optimasi bs g?

yohanli

Penerapan algoritma genetik sudah banyak, salah satu contohnya adalah untuk penyelesaian salesman travelling problem (TSP), untuk contoh lainnya coba cari di google deh

Eko Andrianto

wah aku malah udah lupa soal optimasi, udah lama ga pake

vicky

punya landasan teori tentang proses mutasi dan contohnya?terus penerapan algoritma genetika untuk kasus penjadwalan job shop gimana yach?thx banget yach..

Yohan Naftali

Proses mutasi bertujuan untuk memperluas ruang pencarian, sehingga diharapkan hasil optimasi tidak terjebak pada optimum lokal. Metode mutasi ada banyak cara. Coba baca buku dari Gen dan Cheng dan buku karangan Goldberg di sana banyak dijelaskan aplikasi ag.

yk merlin

bs ga bt artikel yg lbh lngkp tntg algoritma genetik yg brhbngn dgn kecerdasan buatan(AI)?

Yohan Naftali

coba di
en.wikipedia.org/wiki/Genetic_algorithm
http://www.genetic-programming.com
http://www.genetic-programming.org
http://www.cs.bgu.ac.il/~sipper/ga.html
fog.neopages.org/helloworldgeneticalgorithms.php
xxx.lanl.gov

Ario

mau tanya info ttg perbandingan metode2 untuk decoding, crossover, mutasi.. kan banyak tuh metode2nya,,, apa ada yang terbaik?

Yohan Naftali

Metode terbaik? Harus dilihat dari kasusnya dulu, contohnya decoding dengan metode decoding dengan bilangan riil tentunya lebih baik bila digunakan untuk kasus yang memerlukan hitungan presisi (desimal) daripada decoding biner, Pengkodean biner baik digunakan untuk data diskrit, dlsb. Semua metode memiliki keunggulan dan kelemahan masing-masing.

nisa

saya skrng lg buat skripsi ttg optimalisasi fungsi kendala menggunakan algoritma genetika..pengkodeannya dalam bentuk biner..tp kasus ini sudah pernah dibahas dalam skripsi seniorku tapi dalam kode riil..bisa berikan kelemahan dan kelebihan antara kode biner dan kode rill secara umum dan terkhusus dalam kasusku…klo bisa scepatnya yah…krn sudah 2 semester sy berkutat di mslah ini…plisss..thanks b4

Yohan Naftali

“Masalah optimalisasi fungsi dan optimalisasi kendala lebih tepat jika diselesaikan dengan pengkodean bilangan riil karena struktur topologi ruang genotip untuk pengkodean bilangan riil identik dengan ruang fenotipnya, sehingga mudah membentuk operator genetika yang efektif dengan cara memakai teknik yang dapat digunakan yang berasal dari metode konvensional”

Apa Keuntungan pengkodean bilangan biner?
1. Biasanya (tidak selalu) pengkodean bilangan biner menghasilkan perhitungan yang lebih cepat (karena adanya pembulatan angka)
2. Mudah digunakan untuk kasus yang menggunakan bilangan diskrit (tidak kontinyu)

Apa kerugian pengkodean bilangan biner?
1. Harus membuat coding untuk menerjemahkan bilangan riil ke biner
2. Harus membuat decoding untuk menerjemahkan bilangan biner ke riil
3. Ruang fenotip tidak identik dengan ruang genotip, sehingga harus ada pembulatan angka

bimo

Konvergensi AG dengan JST untuk aplikasi prediksi bagus ga ya mas?trus untuk itu pake metode apa ya yg bagus? misalnya untuk prediksi gempa…mas tolong email ke saya ya, minta tolong bgt nih…thanks

Yohan Naftali

Semua metode memiliki keunggulan dan kelemahannya sendiri-sendiri. Tentunya bagus sekali kalau bimo melakukan prediksi gempa menggunakan gabungan dari teknik AG dan JST, hal yang perlu dicermati dalam penelitian tersebut adalah dalam membangun modelnya sehingga akan menghasilkan prediksi yang handal dan akurat.

Ajunk

bisa gak kasi tau contoh codink untuk permasalahan optimalisasi pemanfaatan ruang?…..thank bepore

Yohan Naftali

coba lihat buku ag di gen dan cheng utk contohnya

wida

bisa ga minta algoritma seleksi roulette wheel untuk kasus penjadwalan job shop… thx b4..

Yohan Naftali

Berikut listing untuk rws, silakan modifikasi untuk kasus anda

void Seleksi
(
int JumlahPopulasi,
int JumlahVariabel,
int Generasi,
int JumlahGenerasi,
long double *Fitness,
long double (*KoefisienC)[MaxVariabel]
)
{
/****************************************************************************
Rutin untuk Seleksi Individu dengan Metode Roulette Wheel
****************************************************************************/
long double (*TempKoefisienC)[MaxVariabel];
TempKoefisienC = new long double [JumlahPopulasi][MaxVariabel];
for (int i = 0; i < JumlahPopulasi; i++)
{
for (int j = 0; j < JumlahVariabel; j++)
{
TempKoefisienC[i][j] = KoefisienC[i][j];
}
}

long double JumlahFitness = 0.;
for (int i = 0; i < JumlahPopulasi; i++)
{
JumlahFitness = JumlahFitness + Fitness[i];
}
long double *Share = new long double [JumlahPopulasi];
for (int i = 0; i < JumlahPopulasi; i++)
{
Share[i] = Fitness[i]/JumlahFitness;
if (i != 0)
{
Share[i] = Share[i] + Share[i-1];
}
}
for (int i = 0; i < JumlahPopulasi; i++)
{
long double Roulette = random(100)/100.;
for (int j = 0; j < JumlahPopulasi; j++)
{
// Pilih individu ke-j
if (Roulette <= Share[j])
{
for (int k = 0; k < JumlahVariabel-1; k++)
{
KoefisienC[i][k] = TempKoefisienC[j][k];
}
j = JumlahPopulasi-1;
}
}
}

// Preserve Individu Terbaik
for (int i = 0; i < JumlahVariabel-1; i++)
{
KoefisienC[0][i] = TempKoefisienC[0][i];
}
delete Share;
delete [] TempKoefisienC;
}

opi

bagaimana hubungan antara algoritma genetik dengan optimasi sistem kelistrikan

Yohan Naftali

AG hanyalah salah satu metode optimasi heuristik. Aplikasinya untuk memecahkan masalah optimasi non linier (linier juga bisa!).

tika

mas bs g jelasin penggunaann GA pd studi kasus yg dinamis,mis dlm nentuin arsitektur dari jaringan syaraf tiruan dimana kendala dlm penggunaan GA ad di pindah silang n mutasiny (panjang tiap kromosom dinamis/berubah-ubah)

rain

gmn ci solusi untuk konvergensi prematur?skrg kan sy lg ngbuat sistem iris recognition pake JST FFNN puls AG (AG digunain bwt algoritma pelatihan JSTx), tp hasil fitness-nya konvergensi prematur..kl bs tlg bales ke email y.tks

sofyan

bagaimana hubungan antara efisiensi saluran transmisi tegangan tinggi 150 kV dengan algoritma genetik

Yohan Naftali

To Tika: Coba perhatikan beberapa prinsip untuk mengevaluasi pengkodean adalah yang diajukan oleh Rechenberg (1973)

To Rain: Tinjau kembali populasi awal anda, pastikan populasi awal benar benar acak dan memungkinkan untuk mengeksplore ruang variabel desain

To Sofyan: Pertanyaannya tidak jelas, bisa lebih dijelaskan pertanyaan anda

e3

mas, bisa g kasih algo untuk partial schedule exchange crossover?
lalu pada job pair exchange mutation bilangan random yang harus dibangkitkan apkah hrs 2 untuk setiap ortu yang melakukan mutasi? lalu bagaimana penggunaan untuk prob mutasi pada metode ini, bisa tolong jelaskan.. trims.

e3

oya mas 1 lg.. punya referensi buku AG selain gen n cheng g? boleh aku pinjam? atau aku bisa dapetin buku itu dimana? thx a lot…

Yohan Naftali

Ada beberapa buku mengenai AG. 2 buku AG pemberian dari teman kuliah saya Dr. Saludin Muis yaitu karangan gen dan cheng serta goldberg.

Ini info dari teman saya kalau membutuhkan buku import seperti AG karangan goldberg (fotocopy) hubungi Mr. Aliong: 0811224598 (Lokasi Bandung, buku bisa dikirim) mungkin masih banyak lagi…

e3

trims atas informasinya.. oya maaf bagaimana dengan pertanyaan saya yang pertama? mas bisa bantu ga? tentang job pair exchange mutation dan partial schedule exchange crossover..

bestari

apa kelebihan&kekurangan antara routewheel selection sm tournament selection? makasih sblmnya ^^

hendry

aku boleh nanya..,?
apa ada yang tau dmana dapatin buku yg bahas ga dalam aplikasinya untuk menemukan rute optimum untuk mobile robot?

yendrika

aq bisa minta algoritma untuk membuat kromosom pada kasus penjadwalan kuliah ga n bentuk kromosomnya bagaimana?
tolong ya, makasih

Saiful

Bang bisa minta tolong pengimplementasian Algoritma Genetik ke PHP untuk membuat sebuah Recommender System pada search engine untuk memberikan hasil link informasi yang sesuai dengan user profile

Yohan Naftali

to: Hendry, Yendrika, dan Saiful

Bagi yang bertanya mengenai Implementasi GA, tolong dijelaskan lebih terinci, karena implementasi GA setiap kasus dapat berbeda, sebagai contoh mengenai algoritma untuk membuat kromosom pada kasus yendrika, anda akan menggunakan pengkodean bilangan riil/biner/kompleks/atau lainnya? lalu bagaimana mengenai variabel desain anda? fungsi optimasinya mau seperti apa, dlsb. Mengenai pertanyaan mas Saiful, apakah anda sudah punya bentuk matematika fungsi optimasi/kendala-nya

Saiful

Itu dia masalahnya mas apa yang harus saya lakukan untuk membentuk matematika fungsi optimasi dari permasalhan saya?bisa kasih contoh Permasalahan dan Bentuk Matematika Optimasi.
yang pasti nantinya adalah pada saat User melakukan searching maka dari keyword yang dimasukkan kita optimasi kebiasaan user.
sperti contoh:
Keyword yang dimasukkan User adalah “PHP”, maka pola kebiasaan Link web yang diBuka oleh user yang memasukkan Keyword itu adalah yang nantinya dapat dijadikan rekomendasi bagi user laen yang memasukkan Keyword sama atau hampir sama.
makasi mas sebelumnya.

Yohan Naftali

To Saiful:

Dari yang saya tangkap, maksud mas saiful adalah membuat program seperti adsense (google), ini adalah masalah selection pada database.

1. Buat database link yang dimaksud.
2. Beri tiap database keyword, keyword bisa lebih dari satu.
3. Masukkan parameter lainnya, bila perlu, misalnya lokasi user, dlsb.
4. Apabila user mengetik input, program akan menentukan database mana yang paling optimal dengan input-an user.

Tentunya anda harus bisa membuat kriteria yang diperlukan.

Untuk memahami masalah ini mungkin lebih tepat mas saiful memperdalam database untuk php.

Contoh referensi: W. Jason Gilmore. Beginning PHP and MySQL From Novice to Professional, Penerbit Apress

Selamat belajar.

Saiful

saya udah punya web crawler dengan database MySQL, dan sudah melakukan Crawling ke Internet jadi saat ini saya sudah punya sekumpulan data berupa Link-Link web site, skumpulan Keyword dari masing2 Web yang saya Crawl dan priority dari tiap2 link.
emang pola adsense(google) sperti itu ya mas?
jadi tiap user yang search sperti qta menyedian log yang merekam dari keyword yang dimasukkan dia membuka link apa aja nantinya kita optimasi dengan hasil log user laen dan dijadikan suatu rekomendasi.
klo dengan GA nantinya hasil log masing2 user dioptimasi untuk dihasilkan suatu Populasi yang akan dijadikan suatu rekomendasi,
Tapi kata mas Klo dengan GA harus dibentuk dulu pola Matematikanya biar bisa di dapet iterasinya,itu dia masalahnya aq belum bentuk pola Matematikanya soalnya bingung mau dibentik dari mana?
makasi sbelumnya ya mas udah nanggepin smua permasalhanq.

Yohan Naftali

To Mas Saiful:

Pertama-kali buat indeks pada keyword berdasarkan kelompok
1. C++
2. PHP
3. VB
4. .Net
5. Google

Maka untuk situs dapat dibuat stringnya masing-masing (dalam contoh string mungkin pendek, aktualnya bisa panjang, sepanjang jumlah keyword !, bisa dipikirkan cara lain supaya string tidak panjang)

Jadi string untuk situs adalah:
http://www.google.com = 00001 (artinya keyword google itu true)
http://www.codegear.com = 11000 (hanya keyword c++ dan PHP yang true)
http://www.php.net = 01000

Lalu bisa kita formulasikan

minimumkan f(x) , x ε X

yang memenuhi kendala :

gj(x) ≤ 0 j=1,2,…,n

hj(x) = 0 j=1,2,…,m

f(x) = x0 – x1

x0 = nilai string input

x1 = nilai string dari random search database

sehingga yang menjadi variabel adalah x1, karena x0nyakan variabel tetap, pencarian variabel dengan melakukan penelusuran variabel x1
misal user input google,

maka string x0 adalah 00001

pada pembangkitan populasi awal didapat

individu 1 untuk x2 = 00000
individu 2 untuk x2 = 11111
individu 3 untuk x2 = 10101

dari 3 individu kita hitung (operatornya silahkan tentukan sendiri, ini saya cuma contoh ya)

f(x) = 00001 – 00000 = 00001
f(x) = 00001 – 11111 = 11110
f(x) = 00001 – 10101 = 10100

dari hasil penghitungan fitness individu pertama paling fit, sehingga berhak kawin dengan individu yang kedua fitnessnya (aturan ini hanya contoh ya) misalnya ditentukan lokasi kawin silang pada stiring ke 3 dengan tetap mempertahankan individu awal

sehingga 000 00 dikawinkan dengan 101 01
anak 1 = 000 01
anak 2 = 101 00
anak 3 = 000 00

hitung lagi nilai fitnessnya

anak 1 = 00001 – 00001 = 00000
anak 2 = 00001 – 10100 = 10101
anak 3 = 00001 – 00000 = 00001

dilihat dari fitnessnya, anak 1 paling fitness! karena proses meminimumkan sudah ditemukan maka proses optimasi dihentikan dan didapatkan dari database kalau link http://www.google.com adalah link yang paling optimal dengan input user.

Di samping cara ini masih banyak cara lainnya yang mungkin bisa didapatkan

silahkan coba (contoh memang dibuat sederhana supaya garis besar-nya mudah dipahami)

Saiful

aq crawlernya pake sphider yang open source, mas tau kan software itu?
aq download di http://www.sphider.eu.
mas, boleh ga minta alamat Email?klo boleh sih da nomor yang bisa dihubungi biar saya ntar bisa nanya lebih lanjut atau sekedar konsultasi.

Yohan Naftali

alamat email bisa lihat di daftar isi…
email saja

Sebagai info:

Ada 2 tujuan kenapa harus menyediakan link suggestion
1. Sebagai search engine
Untuk ini tidak perlu optimasi jadi tinggal berikan list
semua link terkait (contoh google, yahoo)
2. Untuk keperluan advertising
Untuk ini perlu optimasi advertising mana yang bayar paling
mahal dan keyword mana yang cocok, serta lokasi user
(contoh google ad sense)

Yohan Naftali

Satu lagi, sebaiknya mas saiful batasi jumlah link-nya, berat kalau sekaligus membuat search engine… yang penting untuk keperluan akademik adalah ide dasarnya saja, pembuatan search engine seperti google membutuhkan perangkat keras dan engine database yang handal, mySQL gratisan yang digunakan spidher kurang handal dalam meng-handle database yang besar.

dhy

mas, bisa kasih tau kelebihan dan kekurangan GA pada TSP?

Yohan Naftali

Sebenarnya AG hanya tools saja, semuanya tergantung metode coding anda.

Qning

mas, bisa gak kasih tau kelebihan dan kekurangan AG pada job-shop scheduling dengan pengkodean operation based representation. trims sebelumnya..

Yohan Naftali

sudah pernah saya jawab

Ad!e PutrA

Mas Boleh minta Algoritma GA pada Job Shop tapi di Proses Inisialisasi

Tri Sari

Saya sedang melakukan penelitian pada permasalahan transportasi umum. Pada masalah ini saya menggunakan pendekatan GA. Bisa beritahu literatur yg dpt saya pelajari ndk?! Makasih sebelumnya

Tri Sari

Saya sedang melakukan penelitian pada permasalahan transportasi umum. Pada masalah ini saya menggunakan pendekatan GA. Bisa beritahu literatur yg dpt saya pelajari ndk?! Makasih sebelumnya …

leonard

gimana mendapatkan program evolver 5.1?

Yohan Naftali

Palisade Evolver
Versi terbaru 5.0
http://www.palisade.com/evolver/
Pricing starts at AUD $1495 including maintenance.
Palisade Evolver turns Microsoft Excel into a powerful optimization tool. Evolver uses innovative genetic algorithm technology to quickly solve complex optimization problems.
Trial Version: http://www.palisade.com/trials.asp

surface evolver 2.3
The Surface Evolver program is freely available and is in use by a number of researchers. Some of the applications of the Evolver so far include modelling the shape of fuel in rocket tanks in low gravity [Te], calculating areas for the Opaque Cube Problem [B4], computing capillary surfaces in cubes [MH] and in exotic containers [C], simulating grain growth [FT] [WM], studying grain boundaries pinned by inclusions, finding partitions of space more efficient than Kelvin’s tetrakaidecahedra [WP] [KS1], foam rheology [KR1] [KR2], sphere eversion [FS], modelling the shape of molten solder on microcircuits [RSB], studying polymer chain packing, modelling cell membranes [MB], and classifying minimal surface singularities.

http://www.stderr.org/doc/evolver-doc/install.htm

Evolver is written to be portable between systems. There are pre-compiled versions for Windows and Macintosh; source files and a Makefile are provided for unix/Linux systems. The distribution packages for various systems are available from the Evolver homepage. Each package also contains documentation and sample datafiles and scripts. The documentation subdirectory is named doc, and contains the manual in PDF format, an HTML version of the documentation (except for the mathematical parts), and a brief unix man page evolver.1. The HTML files are also used by the Evolver help command. The samples are in the subdirectory fe (which is the file extension I use for datafiles; it stands for “facet-edge,” referring to the internal structure of surfaces in the Evolver).

http://www.susqu.edu/brakke/evolver/evolver.html

nathalia

sore mas…aq bikin skripsi ttg alg genetik utk penjadwalan kuliah di fakultasku…
aq msh bingung menentukan seleksi yg hrs aq pke…pengkodeannya aq pke biner…cmn seleksinya pilih pke roulette wheels atau tournament?
bls ya mas…makasih

admin

sama saja, belum tentu tournament lebih bagus dari rw, ini kan pencarian heuristik, semuanya heuristik…

rw itu yang dipakai john holland, saya sendiri lebih suka memakai rw daripada sistem tournament yang harus melakukan pertandingan “head to head”, dalam rw, individu yang kurang baik pun ada kemungkinan masih survive sehingga dapat mengurangi kemungkinan terjebak kepada optimasi lokal

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.