Genetic Programming Genetic Programming GP dan Evolutionary

86 5 3 18 6 5 56 7 4 35 8 6 84 9 5 56 10 8 148 Tabel di atas sebenarnya dihasilkan dari sebuah fungsi non-linear dengan persamaan berikut: Fungsi ini bisa direpresentasikan dalam bentuk binary tree seperti ditunjukkan pada Gambar 7.1. Tree ini disusun atas sejumlah node dan link. Node menunjukkan instruksi yang harus dilaksanakan misalnya dan +. Link merujuk ke argumen dari tiap instruksi misalnya x 1 dan x 2 . Gambar 7.1. Binary tree sebuah fungsi non-linear Masalahnya adalah bagaimana merancang GP untuk menghasilkan binary tree di atas berdasarkan tabel yang diberikan dalam hal ini fungsinya belum diketahui sebelumnya. Secara umum, siklus GP mirip dengan GAs. Dua hal yang harus ditambahkan pada representasi solusi GP adalah: - Penentuan himpunan terminal set of terminals - Penentuan himpunan fungsi set of functions x 1 3 x 2 - x 1 x 1 2 x 2 8 - + Mahmudy, WF 2013, Algoritma Evolusi, Program Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya, Malang. 87

7.2. Siklus Genetic Programming

Untuk kasus penentuan fungsi non-liner bisa didefinisikan himpunan terminal dan fungsi sebagai berikut: - Himpunan terminal: { } - Himpunan fungsi: { }

7.2.1. Representasi Chromosome

Setiap chromosome berupa sebuah binary tree. Bagaimana sebuah binary tree disimpanditangani oleh program komputer, silahkan membuka ulang materi mata kuliah struktur data.

7.2.2. Inisialisasi dan Evaluasi

Chromosome dari dua individu yang dibangkitkan secara acak diberikan sebagai berikut: individu 1 P 1 individu 2 P 2 Gambar 7.2. Contoh dua individu random Evaluasi individu dilakukan dengan menyusun fungsi non-linear dari binary tree yang dihasilkan. Fitness dihitung berdasarkan total selisih antara output fungsi non-linear yang dihasilkan dengan nilai y pada tabel. Tabel berikut menunjukkan perhitungan total selisih output untuk P 1 dan P 2 . x 1 + x 2 - 2 x 1 x 2 5 + 6 + x 1 x 1 x 2 4 + 88 x 1 x 2 y P 1 P 2 | | | | 1 2 1 20 19 7 6 2 3 12 36 24 8 4 3 2 5 44 39 -7 12 4 5 46 68 22 10 36 5 3 18 72 54 -16 34 6 5 56 92 36 -10 66 7 4 35 100 65 -27 62 8 6 84 120 36 -22 106 9 5 56 128 72 -40 96 10 8 148 152 4 -26 174 Total 371 596 Dari tabel di atas, fitness dari P 1 bisa dihitung sebagai ⁄ . Fitness dari P 2 bisa dihitung sebagai ⁄ . Hasil perhitungan ini menunjukkan bahwa P 1 lebih baik daripada P 2 .

7.2.3. Crossover

Crossover antara dua induk P 1 dan P 2 dilakukan dengan memilih satu node secara acak dari P 1 . Sub-tree yang dimulai dari node ini dihapus dan digantikan dengan sub-tree yang dipilh secara acak dari P 2 . Hasil offspring C yang terbentuk dari proses ini diilustrasikan dalam Gambar 7.3.