teny handhayani · fitness digunakan sebagai istilah untuk performa string. crossover ... memilih...

Post on 16-Mar-2019

228 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Teny Handhayani

Algoritma Genetika Algoritma yang meniru seleksi alam

Diperkenalkan oleh Prof. John Holland pada tahun1975

Algoritma Genetika terdiri atas siklus sederhana yaitu:

1. Membuat populasi string secara acak

2. Evaluasi setiap string

3. Seleksi string terbaik

4. Manipulasi genetika untuk memperoleh populasibaru yang lebih baik

Siklus Algoritma Genetika

Population(chromosomes)

Fitness EvaluationGenetic Operators

Selection(Mating Pool)

Parents

Decoded strings

ReproductionManipulation

OffspringNew Generation

Algoritma Genetika Elemen-elemen dalam populasi dikodekan sebagai

bit-strings

Bit-string disebut sebagai kromosom

Fitness digunakan sebagai istilah untuk performastring

Crossover

11010 1010

11010 1001

10101 1001

10101 1010

Parents

Offspring

10101 1001 10011

10101 1110 10011

01101 1110 11101

01101 1001 11101

Single point crossover

Two point crossover

Parents

Offspring

Mutation

1 0 1 0 1 1 0 1 0 1 0 1

1 0 1 0 1 1 1 1 0 1 0 1

Contoh Algoritma Genetika untuk fungsi pada

interval 0 ≤ x ≤ 31

Dimuali dengan 4 string inisialisasi

� � = ��

String no

Initial population x F(x) Strength fitness(% of total)

1 01101 13 169 14.4

2 11000 24 576 49.2

3 01000 8 64 5.5

4 10011 19 361 30.9

Sum-Fitness 1170 100.00

String no

Mating Pool MatesString

Swapping New Population

1 01101 2 0110[1] 01100

2 11000 1 1100[0] 11001

3 11000 4 01[000] 11011

4 10011 2 10[011] 10000

InitialPopulation

x F(x)(fitness)

Strength (% of total)

01100 12 144 8.2

11001 25 635 35.6

11011 27 729 41.5

10000 16 256 14.7

Sum-Fitness 1754 100.00

Nilai fitness pada generasi ke dua

Latihan

Mencari solusi

Tahap 0 Inisialisasi populasi

Menggunakan 10 kromosom dengan 5 bit string

� � = �� − 64

� � = �� − 64

Tahap 1: Evaluasi fitness function

Fungsi yang digunakanx adalah nilai desimal dari kromosom

Mencari nialai �� − 64 = 0 � = ±8

Misalnya dicari solusi x = 8, sehingga fungsi f akan memberikan nilai mendekati 0

�� =�(��)

∑ �(��)�����

��

= � ��

�=1

= �1

+ �2

+ ⋯ + ��−1

+ ��

= ��−1

+ ��

Untuk menyeleksi kromosom, maka dibuat 10 nilai secara acak pada rentang [0 1]Misalnya nilai tersebut yaitu:

0.5436 0.7412 0.8924 0.2455 0.6874 0.2842 0.3864 0.9981 0.3684 0.7240

1 2 3 4 5 6 7 8 9 10

Mencari qj > 0.5436 dan qj-1 <0.5436Sehinggaq8 = 0.6221 > 0.5436q7 = 0.5063 < 0.5436 sehingga kromosom 8 dipilih pertama

Diperoleh sebagai berikut:

Tahap 2 Cross Over

Memilih probabilitas crossover sebesar pc = 0.25Membuat 10 bilangan random pada rentang [0 1], cross over dilakukan jika bilangan < 0.25

0.2890 0.1527 0.2690 0.1890 0.2630 0.1442 0.1628 0.2585 0.5830 0.6532

1 2 3 4 5 6 7 8 9 10

�6′′ = 10 000

�7′′ = 11 001

� �ℎ�����

�6′ = 10 001

�7′ = 11 000

� ������

Hasil crossover

Tahap 3: Mutation

Menentukan pm =0.01Membuat 10 bilangan random pada rentang [0 1]Bilangan yang pm < 0.01 maka dilakukan mutasi

Perulahan tahapan algoritma genetikadilakukan sampai pada threshold tertentu (batasan yg ditetapkan) ataurata-rata fitness telah melewatithreshold

Algoritma Genetika MenggunakanMATLAB

Contoh 1 Sum Squares Function

function y = sum2(x)% The default value of n = 15.n = 15;s = 0;for j = 1:n s=s+j*x(j)^2;

endy = s;

Contoh 2 Ackley Function

Contoh 3 Rastrigin’s Function

function y = rast(x)n = 2;s = 0;for j = 1:n

s = s+(x(j)^2-10*cos(2*pi*x(j))); endy = 10*n+s;

Contoh 4 Easom Function

function y = easom(x)y = -cos(x(1))*cos(x(2))*exp(-(x(1)-pi)^2-(x(2)-pi)^2);

Tugas 1 Buatlah script untuk menyelesaikan persamaan

Carilah nilai best fitness dan mean fitness untukkedua nilai!

Ada berapa banyak generasi?

� � = �� − 64a

b

top related