yohanli.com

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.

56 comments for “Algoritma Genetik

  1. ani
    January 25, 2008 at 11:33 am

    terapan algoritma genetika utk masalah optimasi bs g?

  2. yohanli
    January 25, 2008 at 1:39 pm

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

  3. Eko Andrianto
    February 29, 2008 at 11:07 pm

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

  4. vicky
    March 4, 2008 at 1:41 pm

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

  5. March 5, 2008 at 1:37 pm

    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.

  6. yk merlin
    March 24, 2008 at 7:30 pm

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

  7. March 25, 2008 at 9:21 am

    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

  8. April 1, 2008 at 3:08 pm

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

  9. April 2, 2008 at 8:04 am

    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.

  10. nisa
    April 7, 2008 at 11:19 am

    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

  11. April 7, 2008 at 4:27 pm

    “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

  12. bimo
    April 27, 2008 at 8:37 pm

    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

  13. April 28, 2008 at 10:42 am

    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.

  14. Ajunk
    April 29, 2008 at 7:50 pm

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

  15. May 1, 2008 at 12:40 am

    coba lihat buku ag di gen dan cheng utk contohnya

  16. wida
    May 14, 2008 at 4:34 pm

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

  17. May 22, 2008 at 3:31 pm

    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;
    }

  18. opi
    July 10, 2008 at 12:10 pm

    bagaimana hubungan antara algoritma genetik dengan optimasi sistem kelistrikan

  19. July 10, 2008 at 12:46 pm

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

  20. tika
    July 19, 2008 at 3:50 pm

    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)

  21. rain
    July 23, 2008 at 2:56 pm

    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

  22. July 26, 2008 at 10:05 pm

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

  23. July 27, 2008 at 10:05 am

    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

  24. e3
    August 5, 2008 at 7:49 am

    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.

  25. e3
    August 5, 2008 at 7:55 am

    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…

  26. August 5, 2008 at 8:57 am

    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…

  27. e3
    August 6, 2008 at 8:44 am

    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..

  28. bestari
    August 13, 2008 at 12:51 pm

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

  29. hendry
    August 13, 2008 at 4:00 pm

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

  30. yendrika
    October 18, 2008 at 11:44 am

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

  31. Saiful
    October 20, 2008 at 3:40 pm

    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

  32. October 20, 2008 at 4:26 pm

    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

  33. Saiful
    October 30, 2008 at 11:37 am

    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.

  34. October 30, 2008 at 12:48 pm

    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.

  35. Saiful
    October 30, 2008 at 5:23 pm

    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.

  36. October 31, 2008 at 9:44 am

    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)

  37. Saiful
    October 31, 2008 at 2:07 pm

    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.

  38. October 31, 2008 at 3:52 pm

    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)

  39. October 31, 2008 at 3:58 pm

    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.

  40. dhy
    December 9, 2008 at 3:16 pm

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

  41. December 10, 2008 at 9:25 am

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

  42. Qning
    January 27, 2009 at 8:39 pm

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

  43. January 30, 2009 at 12:02 pm

    sudah pernah saya jawab

  44. January 31, 2009 at 3:31 pm

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

  45. Tri Sari
    February 17, 2009 at 7:47 pm

    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

  46. Tri Sari
    February 17, 2009 at 7:50 pm

    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 …

  47. leonard
    March 10, 2009 at 8:39 am

    gimana mendapatkan program evolver 5.1?

  48. March 11, 2009 at 8:44 am

    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

  49. nathalia
    May 29, 2009 at 5:02 pm

    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

  50. admin
    May 29, 2009 at 7:10 pm

    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

Your email address will not be published. Required fields are marked *