Anda di halaman 1dari 20

III.

PERANCANGAN ARSITEKTUR METODE GENETIC ALGORITHM

1. PERANCANGAN ARSITEKTUR SECARA UMUM Sebagian tentang arsitektur Genetic Algorithm (GA) telah dibahas dalam uraian singkat, dan pada bab ini akan dibahas lebih mendetail lagi. Seperti yang telah dijelaskan dalam uraian singkat, problem yang dipilih adalah Traveling Salesman Problem, hanya saja diaplikasikan pada robot (misalnya pada robot pengangkut barang). Robot tersebut diplot untuk melewati beberapa titik, dan dengan program GA yang terdapat dalam chip, robot tersebut dapat secara otomatis menentukan rute perjalanan yang terpendek. Seperti sudah dijelaskan dalam pembatasan masalah, chip yang dihasilkan dari program ini bukanlah chip yang nantinya mengendalikan keseluruhan sistem kontrol robot tersebut, tetapi chip ini hanya memampukan robot tersebut mengambil keputusan mengenai rute perjalanan yang

terpendek. Jadi masalah bagaimana robot tersebut dapat mengetahui jarak antara posisinya dengan tiap-tiap titik dan bagaimana menggerakkan robot tersebut untuk melewati serangkaian titik yang telah ditentukan, programnya tidak terdapat dalam chip ini dan perancangannya tidak dibahas dalam Tugas Akhir ini.

38

Dari keseluruhan sistem operasi GA, input yang dibutuhkan adalah jarak tiap-tiap titik satu dengan yang lain dan jarak tiap-tiap titik tersebut dengan posisi awal robot. Sedangkan output akhirnya (setelah operasi GA dijalankan dalam beberapa generasi) berupa rute perjalanan yang terpendek dalam bentuk kromosom yang berisi gen-gen yang terbaik. Dalam perancangan GA kali ini, titiknya ditentukan sebanyak 4 titik, yaitu titik A, B, C, dan D, sedangkan posisi awal robot ada di titik O. Sehingga ada 10 buah input, yaitu jarak O-A, O-B, O-C, O-D, A-B, A-C, A-D, B-C, B-D, dan C-D. Jarak tiap-tiap titik tersebut dikodekan dengan bilangan biner dari "0000" sampai "1111" (dari 0 h sampai 15 h).

Cam bar 3.1 Layout TSP untuk Rute O - B - C - D - A

?y

Pada gambar 3.1, O adalah titik awal robot, sedangkan A, B, C, D adalah titik-titik yang akan ditempuh. Rute pada gambar tersebut selanjutnya direpresentasikan dalam angka, sehingga rute direpresentasikan menjadi 2 - 3 - 4 - 1 . Chip yang dihasilkan dari perancangan arsitektur GA ada dua buah chip. Chip yang pertama berfungsi untuk menghasilkan populasi mula-mula (initial population). Input yang diperlukan adalah salah satu nilai jarak yang digunakan untuk proses random. Sedangkan outputnya adalah kromosom sejumlah 8 kromosom (sama dengan jumlah populasi). Kromosom tersebut merupakan hasil pengkodean (decoding) dari gen-gen yang didapat dari proses random. Chip yang kedua berfungsi untuk menjalankan keseluruhan proses GA selanjutnya. Inputnya berupa kromosom-kromosom dari output chip pertama dan jarak tiap-tiap titik (sejumlah 10 buah). Sedangkan outputnya adalah populasi yang baru dan gen-gen serta fitness value yang terbaik. Proses looping untuk menjalankan operasi generasi selanjutnya dilakukan secara eksternal. Jadi output populasi yang baru, di-looping sebagai input chip kedua (dihubungkan dengan pin-pin input kromosom dari chip kedua) yang selanjutnya diproses untuk menghasilkan populasi baru selanjutnya. Sehingga jumlah generasi yang diinginkan dapat diset di luar chip (secara eksternal). Chip yang kedua dirancang agar tiap generasinya memberikan output gen-gen dan fitness value yang terbaik agar O - B - C - D - A

perkembangan proses GA dalam tiap generasi dapat dipantau. Dan hasil akhir berupa kromosom terbaik setelah jumlah generasinya terpenuhi itulah yang

10

merupakan output dari keseluruhan sistem operasi GA, yang akan diproses dalam proses selanjutnyadari keseluruhan sistem kontrol robot. Sebagai tambahan, untuk tiap chip ada pin input untuk reset dan clock. Program akan beroperasi apabila pin reset diberi logika T dan pin clock-nya diberi pulsa trigger. Bila tidak, maka output chip-nya akan bernilai Oh.

2. PERANCANGAN ARSITEKTUR UNTUK TIAP PROSES OPERASI GENETIC ALGORITHM 2.1. Proses untuk Menghasilkan Initial Population Initial population dihasilkan dari suatu proses random. Input yang dibutuhkan adalah salah satu nilai jarak, dalam hal ini O-A, sebagai bilangan randomnya. Nilai O-A tersebut dalam program diubah dari signal ke variabel karena loopingnya menggunakan array yang hanya dapat dilakukan bila modenya variabel. Jadi seluruh proses GA dalam chip pertama dilakukan dalam mode variabel. Untuk menginisialisasi tiap nilai gen yang didapat, dilakukan secara array dari 1 sampai 8, untuk memberi address dari gen-gen baris pertama sampai baris ke delapan (karena populasinya terdiri dari 8 kromosom). Tiap-tiap baris terdiri dari 4 gen karena jumlah titiknya ada 4 titik, sehingga untuk menggerakkan robot dari titik awal sampai titik terakhir yang dilewati ada 4 step. Sehingga total ada 32 gen, yaitu dari g e n l ( l ) (gen baris pertama kolom pertama) sampai gen_4(8) (gen baris ke delapan kolom ke empat). Proses deklarasi input-output,

41

deklarasi variabel, dan pengubahan dari signal ke variabel, dapat dilihat pada bagian program di bawah :

entity chip is port (rst, elk : in bit; OA : in bitvector (3 downto 0); c h r o m l , chrom_2, chrom 3, chrom_4, chrom_5, chrom_6, chrom_7, chrom_8 : out bitvector (4 downto 0)); end chip; architecture GAchip of chip is type out^gen is array (1 to 8) of integer; begin all_proc : process(rst, elk, OA) variable O A i n t : integer; variable i, total: integer; variable g e n l , gen_2, gen_3, gen_4 : outgen; begin if rst = '0' then OAJnt 0; i := 0; total := 0; gen_l(l :=:=0;gen_2(l):=0;gen_3(l):=0; gen_4(l :=0; gen_l(2 := 0; gen_2(2) := 0; gen_3(2) := 0; gen_4(2 :=0; gen_l(3 := 0; gen_2(3) := 0; gen_3(3) := 0; gen_4(3 :=0; gen 1(4 := 0; gen_2(4) := 0; gen_3(4) := 0; gen_4(4 :=0; gen_l(5 :=0;gen_2(5):=0;gen_3(5):=0; gen_4(5 :=0; gen_l(6 := 0; gen_2(6) := 0; gen_3(6) := 0; gen_4(6 :=0; gen_l(7 := 0; gen_2(7) := 0; gen_3(7) := 0; gen_4(7 :=0; gen_l(8 := 0; gen_2(8) := 0; gen_3(8) := 0; gen_4(8 :=0; c h r o m l <= "00000"; chrom_2 <= "00000"; chrom_3 <= "00000"; chrom_4 <= "00000"; chrornS <= "00000"; chrom_6 <= "00000";

12

chrom_7 <= "00000"; chrom_8 <= "00000"; elsif (clk'event and elk = T ) then if (OA >= "0000" and OA <= "1111") then OAint := bvtoi(OA); end if;

Selanjutnya dilakukan proses looping i kali (i = 8) untuk menghasilkan initial population sebanyak 8 kromosom. Untuk tiap looping-nya dihasilkan gen-gen dalam satu baris, yaitu genl(i), gen_2(i), gen_3(i), gen_4(i) dan kromosom pada baris yang

bersangkutan (chromi). Bagian program untuk i = 1 dapat dilihat di bawah ini:

if i= 1 then if total = 1 then gen_l(l):=l;gen_2(l):=2; gen_3(l):=3;gen_4(l):=4; chromi <= "00001"; elsif total = 2 then gen_l(l):=l;gen_2(l):=2; gen_3(l):=4;gen_4(l):=3; chromi <= "00010"; elsif total = 3 then genj(l):=l;gen_2(l):=3; gen_3(l):=2;gen_4(l):=4; chromi <= "00011"; elsif total = 4 then genj(l):=l;gen_2(l):=3; gen_3(l):=4;gen_4(l):=2; c h r o m i <= "00100"; elsif total = 5 then genj(l):=l;gen_2(l):=4; gen_3(l):=2;gen_4(l):=3; chromj <= "00101"; elsif total = 6 then genj(l):=l;gen_2(l):=4;

43

gen_3(l):=3;gen_4(l):=2; chromj <="00110"; el si f total = 7 then genj(1):=l;gen_2(l):=2; gen_3(l):=3;gen_4(l):=4; chromj <= "00001"; elsif total = 8 then genj(l):=l;gen_2(l):=2; gen_3(l):=4;gen_4(l)~3; chrom 1<= "00010"; elsif total = 9 then genj(l):=l;gen_2(l):=3; genj(l):=2;gen_4(l):=4; c h r o m l < = "00011"; elsiftotal = 10then genj(l):=l;gen_2(l):=3; gen__3(l):=4;gen_4(l):=2; c h r o m j <= "00100"; elsif total = 11 then genj(l):=l;gen_2(l):=4; gen_3(l):=2;gen_4(l):=3; c h r o m j <= "00101"; elsiftotal = 12then genj(l):=l;gen_2(l):=4; gen_3(l):=3;gen_4(l):=2; chroml<="00110"; end if;

Kromosom yang dihasilkan, dari kromosom pertama sampai kromosom ke delapan, merupakan output dari chip pertama.

--M

chroml rst chrom_2 chrom 3

elk
chrom_4 chrom_5

OA
chrom 6 chrom 7 chrom 8

Gambar 3.2 Pin Input dan Output Chip Pertama

Proses Encoding dan Menghitung Fitness Value Tidak seperti pada chip pertama, seluruh operasi pada chip kedua dilakukan dalam mode signal, sehingga tidak ada yang istimewa pada deklarasi signalnya. Adapun proses deklarasi input-outputnya dapat dilihat pada bagian program di bawah :

entity chip is port (rst, elk : in bit; OA, OB, OC, OD, AB, AC, AD, BC, BD, CD : in bit vector (4 downto 0); c h r o m l , chrom_2, chrom_3, chrom_4, chrom_5, chrom_6, chrom_7, chrom_8 : in bitvector (4 downto 0); n e w c h r o m l , new_chrom_2, new_chrom_3, new_chrom_4, new_chrom_5, new_chrom_6, new_chrom_7, new chrom_8 : out bitvector (4 downto 0); best gen 1, best_jgen_2, bestgen 3,

45

best_gen_4 : out bitvector (2 downto 0); bestval: out bitvector (5 downto 0)); end chip;

Delapan kromosom pada pin input selanjutnya di-encoding menjadi gen-gen yang bersesuaian dan dihitung fitness value-nya. Nilainilai yang diperlukan untuk menghitung fitness value adalah nilai-nilai jarak yang terdapat pada pin input. Proses encoding dan penghitungan fitness value untuk kromosom pertama dapat dilihat pada program berikut:

ifchrom_l = "00001" then g e n i i <= "001"; gen_12 <= "010"; gen_13 <= "011"; gen_14<="100"; fitvall <= itobv(bvtoi(OA) + bvtoi(AB) + bvtoi(BC) + bvtoi(CD), 6); elsif chroml = "00010" then g e n i i <= "001"; gen_12 <= "010"; gen_13 <= "100"; gen_14<="011"; fitvall <= itobv(bvtoi(OA) + bvtoi(AB) + bvtoi(BD) + bvtoi(CD), 6); elsif c h r o m l = "00011" then g e n j l <= "001"; gen_12 <= "011"; gen_13 <= "010"; gen_14<="100"; fit_val_l <= itobv(bvtoi(OA) + bvtoi(AC) + bvtoi(BC) + bvtoi(BD), 6); elsif c h r o m l = "00100" then g e n i i <= "001"; gen_12 <= "011"; g e n J 3 <= "100"; gen_14<="010"; fitvall <= itobv(bvtoi(OA) + bvtoi(AC) + bvtoi(CD) + bvtoi(BD), 6); elsif chroml = "00101" then g e n i i <= "001"; gen_12 <= "100"; gen_13 <= "010"; gen_14<="011"; fitvall <= itobv(bvtoi(OA) + bvtoi(AD) + bvtoi(BD) + bvtoi(BC), 6); elsif chrom 1 ="00110" then

46

g e n i i <= "001"; gen_12 <= "100"; gen_13 <= "Oil"; gen_14<="010"; fit_val_l <= itobv(bvtoi(OA) + bvtoi(AD) + bvtoi(CD) + bvtoi(BC), 6); end if;

Proses Crossover Prosedur crossover yang digunakan adalah Order Crossover (OX). Misalkan pada kromosom pertama, g e n i i = 1, gen_12 = 3, gen_13 = 2, dan gen_14 = 4, dan kromosom kedua, gen_21 = 4, gen_22 = 3, gen_23 = 1, dan gen_24 = 2, prosedur Order Crossover dikerjakan sebagai berikut: Tentukan substring dari parent 1 (kromosom 1), dalam program sebagai substring-nya adalah g e n l 1. Copy-kan substring tersebut pada offspring 1, pada posisi yang bersesuaian (offl 1). Dengan demikian o f f l 1 = 1. Hilangkan nilai gen pada parent 2 (kromosom 2) yang terdapat pada substring, yaitu ' 1' pada gen_23. Tempatkan nilai-nilai gen parent 2 yang tersisa, pada offspring 1 secara berurutan dari kiri ke kanan. Sehingga dihasilkan offspring 1 yaitu [ 1 4 3 2 ] . Dengan prosedur yang sama, dihasilkan offspring 2 yaitu [ 3 2 1 4 ] . Agar lebih jelas, prosedur Order Crossover yang diaplikasikan pada program, dapat dilihat pada gambar di halaman berikut.

47

substring yang dipilih Parent 1


1 3 2

Offspring 1

1
1
/

4
/

t
1

Parent 2

Gambar 3.3 Prosedur Order Crossover yang Diaplikasikan pada Program

Pada program, pc (probability crossover) dibuat sama dengan satu sehingga tiap kromosom mengalami proses crossover. Dengan demikian proses crossover pada program, menghasilkan 8 offspring. Adapun programnya adalah sebagai berikut:

o f f l 1 <=g e n i i ; off_12 <= = gen_21 o f f l 3 <= gen_22; off_14 <= = gen_24 off_21 <= gen_12; off_22 <= =gen_13 off_23 <= gen_23; off_24 <= =gen_14 off_51 <= gen_31; off_52 <= = gen_41 off_53 <= gen_42; off_54 <= =gen_44 off_61 <= gen_32; off_62 <= =gen_33 off 63 <= gen_43; off 64 <== gen_34 off_91 <= gen_51; off_92 <= gen_61; off_93 <= gen_62; off_94 <= gen_64; offJOl <= gen_52; off_102 <= gen_53 off_103 <= gen_63; off_104 <= gen_54 off_131 <= gen_71; off_132 <= gen_81 off_133 <= gen_82; off_134 <= gen_84

48

off_141 <= gen_72; off_142 <= gen_73; off_143 <= gen_83; off_144 <= gen_74;

Proses Mutasi Prosedur mutasi yang digunakan adalah Reciprocal Exchange Mutation. Misalkan pada kromosom pertama, g e n i i = 1, gen_12 = 3, gen_13 = 2, dan gen_14 - 4, prosedur Reciprocal Exchange Mutation dikerjakan sebagai berikut: Tentukan dua posisi gen pada kromosom, dalam program ditentukan pada gen_12 dan gen_14. Pertukarkan nilai kedua gen tersebut, sehingga gen_12 bernilai '4' dan gen_14 bernilai ' 3 ' . Agar lebih jelas, prosedur Reciprocal Exchange Mutation yang diaplikasikan pada program, dapat dilihat pada gambar di bawah ini.

tentukan dua posisi gen

I, . I
pertukarkan nilai kedua gen tersebut 1 2 3

Gambar 3.4 Prosedur Reciprocal Exchange Mutation yang Diaplikasikan pada Program

49

Seperti halnya pada proses crossover, pm (probability mutation) dibuat sama dengan satu sehingga tiap kromosom mengalami proses mutasi. Dengan demikian proses mutasi pada program, menghasilkan 8 offspring. Adapun programnya adalah sebagai berikut:

off_31 <= g e n l 1; off_32 off_33 <= gen_13; off_34 off_41 <= gen_21; off_42 off_43 <= gen_23; off_44 off_71 <= gen_31; off_72 off_73 <= gen_33; off_74 off_81 <= gen_41; off_82 off 83 <= gen_43; off_84

<= gen_14; <= g e n j 2; <= gen_24; <= gen_22; <= gen_34; <= gen_32; <= gen_44; <= gen_42;

off_l 11 <= gen_51; off_l 12 <= gen_54; o f f l 13 <= gen_53; o f f l 14 <= gen_52; off_121 <= gen_61; off_122 <= gen_64; off_123 <= gen_63; off_124 <= gen_62; off_151 <= gen_71; off_152 <= gen_74; off_153 <= gen_73; off_154 <= gen_72; off_161 <= gen_81; off_162 <= gen_84; off_163 <= gen_83; off_164 <= gen_82;

Proses Menghitung Fitness Value dari Offspring Prosedurnya sama dengan menghitung fitness value dari gengen, yang dilakukan sebelum proses crossover. Hanya saja kali ini penghitungan fitness valuenya dilakukan untuk keenam belas

kromosom offspring. Programnya untuk offspring pertama adalah sebagai berikut: ifoff_12 = *'010,,then ifoff_13 = "011" then f i t o f f j <= itobv(bvtoi(OA) + bvtoi(AB) + bvtoi(BC) + bvtoi(CD), 6);

so

chrom off J <= "00001"; elsifoff_13 = "100" then fit_offJ <= itobv(bvtoi(OA) + bvtoi(AB) + bvtoi(BD) + bvtoi(CD), 6); chrom_off_l<= "00010"; end if; elsifoff_12 = "011" then ifoff_13 = "010" then fit o f f l <= itobv(bvtoi(OA) + bvtoi(AC) + bvtoi(BC) + bvtoi(BD), 6); chrom off 1<= "00011"; elsif off_13 = "100" then fit_off_l <= itobv(bvtoi(OA) + bvtoi(AC) + bvtoi(CD) + bvtoi(BD), 6); chrom_off_l<= "00100"; end if; elsifoff_12 = "100" then ifoff_13 = "010" then fit_off_l <= itobv(bvtoi(OA) + bvtoi(AD) + bvtoi(BD) + bvtoi(BC), 6); chrom off! <= "00101"; elsifoff_13 = "011" then fit_off_l <= itobv(bvtoi(OA) + bvtoi(AD) + bvtoi(CD) + bvtoi(BC), 6); chrom_off_l<="00110"; end if; end if;

Proses Seleksi Prosedur seleksi yang digunakan adalah top pop-size selection. Prosedur ini menyeleksi populasi dengan mengambil kromosom yang menghasilkan fitness value yang terbaik (yang paling minimum). Dalam program, pertama-tama proses ini dilakukan dengan

membandingkan fitness value dari kromosom-kromosom dalam initial population dengan fitness value dari kromosom-kromosom offspring. Selanjutnya, kromosom-kromosom yang membenkan fitness value

51

yang terbaik, diinisialisasi sebagai anggota populasi yang baru. Sebagian programnya dicantumkan di bawah ini :

if (fit_off_l <= fit_off_3) then if (fit_off_l <= f i t v a l l ) then n e w g e n l 1 <= off 11; newgen 12 <= off_12; new_gen_13 <= off_13; new_gen_14 <= off_14; n e w c h r o m l <=chrom_off_l; best_val_l<= fit_off_l; else n e w g e n l 1 <= g e n l 1 ; new_gen_12 <= gen_12; new_gen_13 <= gen_13; new_gen_14 <= gen_14; n e w c h r o m l <=chrom_l; bestval__1 <=fit_val_l; end if; elsif (fit_off_3 <= fit_off_l) then if (fit_off_3 <= f i t v a l l ) then n e w g e n l 1 <= off_31; new_gen_12 <= off_32; new_gen_13 <= off_33; new_gen_14 <= off_34; n e w c h r o m l <= chrom_off_3; best_val_l <= fit_off_3; else n e w g e n l 1 <= g e n l 1; new_gen_12 <= gen_12; new_gen_13 <= gen_13; new_gen_14 <= gen_14; n e w c h r o m l <=chrom_l; bestval 1 <=fit_val_l; end if; end if;

Kromosom-kromosom anggota populasi yang baru (sebanyak 8 kromosom), selanjutnya dikeluarkan pada pin output untuk kemudian di-looping sebagai input chip dalam proses untuk menghasilkan generasi selanjutnya.

52

Proses Pencarian Gen-gen dan Fitness Value yang Terbaik Seperti telah dijelaskan sebelumnya bahwa fitness value dari kromosom initial population dibandingkan dengan fitness value kromosom offspring untuk menghasilkan kromosom-kromosom yang terbaik yang selanjutnya diinisialisasi sebagai anggota populasi yang baru. Untuk mencari gen-gen dan fitness value yang terbaik dalam populasi yang baru tersebut, fitness value dari tiap-tiap anggota populasi dibandingkan satu dengan yang lain. Setelah menemukan fitness value yang terbaik, fitness value tersebut dikeluarkan pada pin output sebagai fitness value yang terbaik (best val) dan gen-gen yang bersangkutan dikeluarkan pada pin output sebagai gen-gen yang terbaik (best gen). Arsitektur programnya dicantumkan di bawah ini:

if b e s t v a l l <= best_val_2 then b e s t v a l l 2 <= b e s t v a l l ; else best_val_12 <= best_val_2; end if; if best_val_3 <= best_val_4 then best_val_34 <= best_val_3; else best_val_34 <= best_val_4; end if; if best_val_5 <= best_val_6 then best_val_56 <= b e s t v a l S ; else best_val_56 <= best_val_6; end if; if best_val_7 <= bestval 8 then bestval 78 <= best val_7; else

53

bestval 78 <= bestval 8; end if; if best_val_12 <= best_val_34 then best_val_ 14 <= best_val_ 12; else best_val_14 <= best_val_34; end if; if best_val_56 <= best_val_78 then best_val_58 <= bestval 56; else best_val_58 <= best_val_78; end if; if best_val_14 <= best_val_58 then bestval <= best_val_14; if best_val_14 = b e s t v a l l then b e s t g e n l <= n e w g e n l 1; best_gen_2 <= new_gen_12; best_gen_3 <= new_gen_13; best_gen_4 <= new_gen_14; elsif best_val_14 = best_val_2 then best_gen_l <=new_gen_21; best^gen_2 <= new_gen_22; best_gen_3 <= new_gen_23; best_gen_4 <= new_gen_24; elsif best_val_14 = bestval_3 then b e s t g e n l <= new_gen_31; best_gen_2 <= new_gen_32; best_gen_3 <= new_gen_33; best_gen_4 <= newj*en_34; elsif best_val_14 = best_val_4 then best_gen_l <=new_gen_41; best_gen_2 <= new_gen_42; best_gen_3 <= new_gen_43; best_gen_4 <= new_gen_44; end if; else bestval <= best_val_58; if best_val_58 = best_val_5 then best_gen_1 <= new_gen_51; best_gen_2 <= new_gen_52; best_gen_3 <= new^gen_53; best_gen_4 <= new_gen_54; elsifbest val 58 = best val 6 then

54

b e s t g e n l <= new_gen_61; best_gen_2 <= new_gen_62; best_gen_3 <= new_gen_63; best_gen_4 <= new_gen_64; elsif best_val_58 = best_val_7 then b e s t g e n l <= new_gen_71; best_gen_2 <= new_gen_72; best_gen_3 <= new_gen_73; best_gen_4 <= new_gen_74; elsif bestval_58 = best_val_8 then b e s t g e n l <=new_gen_81; best_gen_2 <= new_gen_82; best_gen_3 <= new_gen_83; best_gen_4 <= new_gen_84; end if; end if;

Sampai di sini, seluruh proses operasi GA untuk satu generasi telah selesai dilakukan. Agar dapat lebih memahami uraian di atas, pin input dan output chip kedua dibenkan dalam gambar di bawah ini:

s^

rst elk OA OB OC OD AB AC AD BC BD CD

n chrom 1 n chrom 2 n chrom 3 n_chrom_4 n chrom 5 n_chrom_6 nchrom 7 n chrom 8

bestjgenl best_jgen_2 best_gen 3 best_gen 4 bestval chrom 1 chrom 2 chrom_3 chrom 4 chrom_5 chrom_6 chrom_7 chrom_8

Gambar 3.5 Pin Input dan Output Chip Kedua

Proses untuk Menghasilkan Generasi Selanjutnya Untuk menghasilkan generasi selanjutnya, kromosom-

kromosom dari populasi yang baru, dikeluarkan pada pin output chip kedua. Lalu pin-pin tersebut dihubungkan (di-looping) dengan pin input kromosom dari chip yang sama. Berapa jumlah generasi yang diinginkan tergantung dari berapa kali proses looping dilakukan, dan proses looping tersebut dikontrol secara eksternal.

56

Proses looping dilakukan dengan mengkontrol input pada pin clock chip kedua. Bila pin clock diberi satu kali pulsa trigger, maka proses operasi GA pada chip akan dilakukan sebanyak satu kali (karena program akan aktif bila input clock-nya 'event' dan berlogika '1'). Dengan demikian jumlah generasi yang diinginkan tergantung dari berapa banyak pulsa trigger yang diberikan pada pin clock. Setelah jumlah generasinya terpenuhi, gen-gen terbaik (bestgen) yang terakhir itulah yang diproses pada proses selanjutnya.

Anda mungkin juga menyukai