Sabtu, 28 Februari 2009

Representasi genetik

Dalam AG Representasi genetik atau lebih sering disebut dengan pengkodean menurut beberapa sumber, terdapat 3 macam representasi yaitu;
  1. Biner, menggunakan pengkodean secara biner 0 atau 1,
  2. Float, pengkodean bilangan riil positif biasanya dalam rentang [0,1),
  3. Integer, pengkodean menggunakan bilangan bulat.
Pada kesempatan ini akan diulas mengenai bagaimana membuat suatu fungsi atau prosedur menggunakan VB 6.0 untuk representasi genetik. Hasil dari representasi genetik ini berupa Populasi yang memiliki variabel masukan berupa ukuran populasi dan panjang gen. Keluarannya berupa array Populasi(UkPop, JumGen);
1. Biner, representasi secara biner nilai-nilai gen hanya akan bernilai 0 atau 1.
Function Populasi(UkPop As Integer, JumGen As Integer) As Variant()
  Dim Brs, Kol As Integer
  Dim BilRnd As Single
 
  ReDim Populasi(UkPop, JumGen)
  For Brs = 1 To UkPop
    For Kol = 1 To JumGen
      Randomize
      Populasi(Brs, Kol) = Round(Rnd(), 0)
    Next Kol
  Next Brs
End Function
2. Float, representasi menggunakan bilangan riil (bilangan pecahan) yang nilai-nilai gennya berada pada rentang nilai 0 dan 1 dengan pembulatan 6 digit di belakang koma.
Function Populasi(UkPop As Integer, JumGen As Integer) As Variant()
  Dim Brs, Kol As Integer
  Dim BilRnd As Single
 
  ReDim Populasi(UkPop, JumGen)
  For Brs = 1 To UkPop
    For Kol = 1 To JumGen
      Randomize
      Populasi(Brs, Kol) = Round(Rnd(), 6)
    Next Kol
  Next Brs
End Function

2. Integer, representasi menggunakan bilangan bulat yang nilai-nilai gennya ditentukan dalam suatu rentang tertentu, misalnya dalam rentang 0 s/d 9.
Function Populasi(UkPop As Integer, JumGen As Integer) As Variant()
  Dim Brs, Kol As Integer
  Dim BilRnd As Single
 
  ReDim Populasi(UkPop, JumGen)
  For Brs = 1 To UkPop
    For Kol = 1 To JumGen
      Randomize
      Populasi(Brs, Kol) = int((Rnd()*9)
    Next Kol
  Next Brs
End Function

3 komentar:

  1. Bos, boleh minta contoh aplikasi AG menggunakan VB6? mohon pencerahannya

    BalasHapus
  2. Bapak Eko saya sangat terbantu dengan blog ini, saya lagi belajar buat program AG dengan VB6, sy tunggu kelanjutannya pak sperti :
    fungsi fitness,roullet whell,tournament slection,mutasi, crossover.
    trimakasih

    BalasHapus
  3. pak, klo boleh sya juga minta contoh aplikasi yg JST menggunakan VB??
    Mohon jawabnnya, pak..
    Terima kasih..

    BalasHapus