Pengantar
as Kecerdasan Komputasional
Rezania A. Azdy
Sekilas Kecerdasan Komputasional
• Intelligence?
• Kemampuan untuk memahami
• Kemampuan untuk memahami dan mengambil keuntungan dari pengalaman
• Kemampuan untuk menafsirkan
• Memiliki kapasitas untuk berpikir dan mencari sebab/alasan
• Artificial Intelligence?
• Sebuah study tentang bagaimana membuat komputer dapat melakukan sesuatu yang dapat
dilakukan dengan lebih baik oleh manusia [IEEE Neural Networks Council of 1996]
Apa itu Computational Intelligence?
• Jaringan otak manusia disusun tidak kurang dari 1013 neuron yang masing2
terhubung oleh sekitar 1015 dendrite.
• Dendrite adalah penyampain sinyal dari neuron tsb ke neuron lain yang
terhubung dengannya (keluaran --> axon, penerima --> synapse)
Jaringan Saraf Tiruan
• Kumpulan dari neuron dibuat sebagai jaringan yang berfungsi sebagai alat
komputasi.
• Jumlah neuron dan struktur jaringan pada setiap kasus berbeda.
Algoritma Genetika
Konsep
as dasar Fuzzy, Himpunan Klasik, Himpunan Fuzzy,
Komponen Fuzzy
Rezania A. Azdy
Pengantar
• Contoh 1:
Seseorang dikatakan TINGGI jika tinggi badannya lebih dari 1,7 meter.
Bagaimana dengan orang yang memiliki tinggi 1,69999 meter?
• Contoh 2:
Kecepatan berkendara dikatakan PELAN ketika kecepatannya dibawah 20 km/jam.
Bagaimana dengan kendaraan yang dipacu dengan kecepatan 20,0001km/jam?
Pengantar
• Contoh 1:
Seseorang dikatakan TINGGI jika tinggi badannya lebih dari 1,7 meter.
Bagaimana dengan orang yang memiliki tinggi 1,69999 meter?
Persepsi manusia: agak tinggi, kurang tinggi sedikit
• Contoh 2:
Kecepatan berkendara dikatakan PELAN ketika kecepatannya dibawah 20 km/jam.
Bagaimana dengan kendaraan yang dipacu dengan kecepatan 20,0001 km/jam?
• Himpunan klasik adalah himpunan yang selama ini dipelajari, dimana pada
himpunan klasik keanggotaan suatu unsur didalam himpunan dinyatakan secara
tegas.
• Untuk sembarang himpunan A, unsur x adalah anggota himpunan A apabila x
terdapat atau terdefinisi didalam A.
• Contoh:
A = {1,2,3,4,5}, maka 5 ∈ A, tetapi 7 ∉ A.
Himpunan Klasik (Crisp Set)
• Contoh 1:
Misalkan S = {1, 2, 3, 4, 5, 6} dan A ⊆ S dimana A = {1, 2, 5}. Maka:
A = {(1,1), (2,1), (3,0), (4,0), (5,1), (6,0)}
Ket:
(2,1) berarti χA(2) = 1 2 merupakan unsur dari S yang merupakan anggota A
(4,0) berarti χA(4) = 0 4 merupakan unsur dari S yang bukan anggota A
Himpunan Klasik (Crisp Set)
• Contoh 2:
Misalkan S = {x|0≤x≤10, x∈R }, A ⊆ S, dan A = {x|5≤x≤8, x∈R}. Maka:
χA(6) = 0;
χA(4,8) = 0;
χA(7) = 1;
χA(8,654) = 1
• Arti:
1. jika μA(x) = 1, maka x adalah anggota penuh dari himpunan A
2. jika μA(x) = 0, maka x bukan anggota himpunan A
3. jika μA(x) = p , dengan 0 < μ < 1, maka x adalah anggota himpunan A dengan
derajat keanggotaan sebesar p
Himpunan Fuzzy
S S
b A b A
a aa
Gambar Himpunan Klasik Penentuan Umur Gambar Himpunan Fuzzy Penentuan Umur
Fungsi
as Keang gotaan Himpunan Fuzzy, Operasi
Himpunan Fuzzy
Rezania A. Azdy
Fungsi Keanggotaan
• Contoh:
Jawab:
Diketahui fungsi keanggotaan PANAS pada variabel
temperatur ruangan seperti gambar berikut: Fungsi linier naik:
μPANAS(32) = (32-25)/(35-25)
= 7/10
= 0.7
• Contoh:
Jawab:
Diketahui fungsi keanggotaan untuk suhu yang
termasuk dalam himpunan NORMAL seperti Fungsi segitiga:
terlihat pada gambar berikut:
μNORMAL(23) = (23-15)/(25-15)
= 8/10
= 0.8
• Pada dasarnya hampir mirip dengan kurva segitiga, hanya saja terdapat beberapa
titik yang memiliki nilai keanggotaan 1.
Fungsi Keanggotaan - Trapesium
• Contoh:
Jawab:
Diketahui fungsi keanggotaan untuk suhu yang
termasuk dalam himpunan NORMAL seperti Fungsi segitiga:
terlihat pada gambar berikut:
μNORMAL(32) = (35-32)/(35-27)
= 3/8
= 0.375
• Kasus:
Sebuah mesin menerapkan logika fuzzy untuk mendeteksi temperatur dengan 3
himpunan sbb.:
DINGIN = {0..28}
NORMAL = {25..35}
PANAS = {33...}
1. Kurva-S Pertumbuhan.
• Bergerak dari sisi paling kiri dengan derajat keanggotaan nol hingga ke sisi kanan dengan
derajat keanggotaan yang lebih tinggi. Fungsi keanggotaannya akan bertumpu pada 50%
nilai keanggotaannya yang disebut dengan titik infleksi.
Fungsi Keanggotaan - S (Sigmoid)
2. Kurva-S Penyusutan.
• Merupakan kebalikan dari Kurva-S Pertumbuhan.
Fungsi Keanggotaan - Bentuk Lonceng
• Contoh:
A = {1.0, 0.2, 0.75}
B = {0.2, 0.45, 0.50}
A ∩ B = {min(1.0, 0.2), min(0.2, 0.45), min(0.75, 0.50)}
= {0.2, 0.2, 0.5}
Operasi Himpunan Fuzzy - OR
• Contoh:
A = {1.0, 0.2, 0.75}
B = {0.2, 0.45, 0.50}
A ∪ B = {max(1.0, 0.2), max(0.2, 0.45), max(0.75, 0.50)}
= {1.0, 0.45, 0.75}
Operasi Himpunan Fuzzy - NOT
• Contoh:
A = {1.0, 0.2, 0.75}
Ac = {1 - 1.0, 1 - 0.2, 1 - 0.75}
= {0, 0.8, 0.25}
Contoh Kasus
1. Diketahui nilai keanggotaan umur 27 pada himpunan usia MUDA adalah 0.6,
dan nilai keanggotaan 2 juta pada himpunan penghasilan TINGGI adalah 0.8.
Maka α-predikat untuk usia himpunan usia MUDA dan penghasilan TINGGI
adalah:
μMUDA(27) = 0.6
μTINGGI(2juta) = 0.8
μMUDA ∩ μTINGGI = min(μMUDA(27), μTINGGI(2juta))
= min(0.6, 0.8)
= 0.6
2. Misal nilai keanggotaan umur 27 pada himpunan usia MUDA adalah 0.6,
maka α-predikat untuk usia tersebut pada himpunan tidak muda adalah:
μMUDAc (27) = 1 - μMUDA(27)
= 1 - 0.6
= 0.4
Contoh Kasus
3. Sebuah pabrik kue kering memproduksi kue setiap harinya dengan permintaan
dari distributor yang tidak menentu. Permintaan tertinggi mencapai angka 500
toples/hari dan permintaan terkecil adalah 100 toples/hari. Persediaan kue
kering di gudang juga bervariasi, yaitu persediaan terkecil adalah 10 toples/hari
dan persediaan terbanyak adalah 60 toples/hari.
a. Gambarkan fungsi keanggotaan yang sesuai untuk permintaan dan persediaan kue kering.
b. Bagaimana nilai keanggotaan untuk permintaan 400 toples kue kering?
Jawab:
Variabel Himpunan Domain
Permintaan Naik [500 ∞]
Turun [0 100]
Persediaan Banyak [60 ∞]
Sedikit [0 10]
Contoh Kasus
a. Fungsi keanggotaan
Permintaan
Contoh Kasus
Persediaan
Contoh Kasus
b. Permintaan
Jawab:
a. Lama Bekerja Nilai Atasan
Contoh Kasus
b. μLAMA(8) = 0
μBAIK(82) = (85-82)/(85-80) = 3/5 = 0.6
Proses
as Sistem Fuzzy, Metode Tsukamoto
Rezania A. Azdy
Proses Sistem Fuzzy
• Proses dimana masukan (input) yang nilai kebenarannya bersifat pasti (crisp)
dikonversi ke bentuk fuzzy input yang berupa nilai linguistik yang semantiknya
ditentukan berdasarkan fungsi keanggotaan.
• Contoh:
1. Suhu 20o dikonversi menjadi HANGAT dengan derajat keanggotaan 0.7.
2. Kecepatan 50 km/jam dikonversi menjadi CEPAT dengan derajat keanggotaan 0.1.
Proses Sistem Fuzzy - Inference
• Proses penalaran dengan memperhitungkan semua aturan yang ada dalam basis
pengetahuan.
• Secara sintaks, aturan fuzzy dituliskan:
IF antecendent THEN consequent
• Aturan fuzzy yang umum digunakan:
1. model Tsukamoto
2. model Mamdani
3. model Sugeno
Proses Sistem Fuzzy - Inference
dengan:
• x dan y : variabel input yang didapat dari user
• z : variabel output
• rendah : fungsi keanggotaan untuk x
• tinggi : fungsi keanggotaan untuk y
• medium : fungsi keanggotaan untuk z
• Contoh:
IF permintaan turun AND persediaan banyak THEN produksi barang = berkurang
Proses Sistem Fuzzy - Defuzzification
• Proses mengubah fuzzy output menjadi nilai pasti (crisp) berdasarkan fungsi
keanggotaan yang telah ditentukan.
• Metode defuzzification yang umum digunakan:
1. Centroid method
2. Height method
3. First (or Last) Maxima
4. Mean-Max method
5. Weighted Average
Proses Sistem Fuzzy - Defuzzification
1. Centroid method
Metode ini menghitung nilai crisp menggunakan rumus:
dengan:
y = nilai crisp
μR(y) = derajat keanggotaan dari y
Proses Sistem Fuzzy - Defuzzification
2. Height method
• Hanya bisa dipakai untuk fungsi keanggotaan yang derajat keanggotaannya 1 pada
suatu nilai crisp tunggal dan 0 pada semua nilai crisp yang lain (singleton).
Proses Sistem Fuzzy - Defuzzification
4. Mean-Max method
Perhitungan nilai crisp metode ini menggunakan rumus:
dengan:
m = nilai crisp yang paling kecil
M = nilai crisp yang paling besar
Proses Sistem Fuzzy - Defuzzification
5. Weighted Average
Perhitungan nilai crisp metode ini menggunakan rumus:
dengan:
y = nilai crisp
μ(y) = derajat keanggotaan dari y
Metode Tsukamoto
Sebuah pabrik kue kering memproduksi kue setiap harinya dengan permintaan dari
distributor yang tidak menentu. Permintaan tertinggi mencapai angka 500
toples/hari dan permintaan terkecil adalah 100 toples/hari. Persediaan kue kering
di gudang juga bervariasi, yaitu antara 10 - 60 toples/hari.
Dengan segala keterbatasannya, hingga saat ini pabrik baru dapat memproduksi
kue kering hingga 700 toples/hari, dan demi efisiensi mesin dan SDM maka tiap
hari diharapkan pabrik dapat memproduksi paling tidak 200 toples/hari.
Berapa topless kue kering yang harus diproduksi jika jumlah permintaan sebanyak
400 toples dan persediaan yang ada di gudang masih 30 toples?
Studi Kasus 1 - Solusi
Aturan yang dapat diterapkan pada proses produksi pabrik tersebut adalah:
[R1] IF permintaan TURUN and persediaan BANYAK
THEN produksi barang BERKURANG;
[R2] IF permintaan TURUN and persediaan SEDIKIT
THEN produksi barang BERKURANG;
[R3] IF permintaan NAIK and persediaan BANYAK
THEN produksi barang BERTAMBAH;
[R4] IF permintaan NAIK and persediaan SEDIKIT
THEN produksi barang BERTAMBAH;
Studi Kasus 1 - Solusi
Permintaan Persediaan
Produksi
Next:
• Mencari nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi
implikasinya!
Studi Kasus 1 - Solusi
[R1] IF permintaan TURUN and persediaan BANYAK [R2] IF permintaan TURUN and persediaan SEDIKIT
Lihat himpunan produksi barang BERKURANG: Lihat himpunan produksi barang BERKURANG:
μBERKURANG(z) = (700-z)/500 μBERKURANG(z) = (700-z)/500
0.25 = (700-z)/500 0.25 = (700-z)/500
⇔ z1 = 575 ⇔ z2 = 575
Studi Kasus 1 - Solusi
[R3] IF permintaan NAIK and persediaan BANYAK [R4] IF permintaan NAIK and persediaan SEDIKIT
Lihat himpunan produksi barang BERTAMBAH: Lihat himpunan produksi barang BERTAMBAH:
μBERTAMBAH(z) = (z-200)/500 μBERTAMBAH(z) = (z-200)/500
0.4 = (z-200)/500 0.6 = (z-200)/500
⇔ z3 = 400 ⇔ z4 = 500
Studi Kasus 1 - Solusi
• Jadi nilai z:
• Sehingga banyaknya kue kering yang harus diproduksi adalah 498 toples.
Studi Kasus 2
[R1] IF permintaan TURUN and persediaan BANYAK [R2] IF permintaan TURUN and persediaan SEDIKIT
Lihat himpunan produksi barang BERKURANG: Lihat himpunan produksi barang BERKURANG:
μBERKURANG(z) = (700-z)/500 μBERKURANG(z) = (700-z)/500
0 = (700-z)/500 0 = (700-z)/500
⇔ z1 = 700 ⇔ z2 = 700
Studi Kasus 2 - Solusi
[R3] IF permintaan NAIK and persediaan BANYAK [R4] IF permintaan NAIK and persediaan SEDIKIT
Lihat himpunan produksi barang BERTAMBAH: Lihat himpunan produksi barang BERTAMBAH:
μBERTAMBAH(z) = (z-200)/500 μBERTAMBAH(z) = (z-200)/500
1 = (z-200)/500 0 = (z-200)/500
⇔ z3 = 700 ⇔ z4 = 200
Nilai z = ?
Logika Fuzzy
Metode
as Mamdani
Rezania A. Azdy
Metode Mamdani
Proses defuzzifikasi:
Metode Max (Maximum) (1)
700 700
Proses defuzzy
Menghitung momen dan Luas daerah:
z
325 500 700
325
Jadi jumlah kue kering yang harus diproduksi adalah 424.8 toples.
Logika Fuzzy
Implementasi
as Logika Fuzzy pada Java
Rezania A. Azdy
Implementasi
• Pada pembahasan ini, implementasi sistem fuzzy yang telah dipelajari akan
diterapkan ke dalam bahasa pemrograman, yaitu bahasa Java.
• Sistem fuzzy yang akan diterapkan menggunakan metode Tsukamoto dengan
studi kasus yang telah dipelajari pada Pertemuan 4.
Implementasi - Persiapan
Implementasi
as Logika Fuzzy pada Java (Lanjutan)
Rezania A. Azdy
Implementasi - Rules.java
• Kemudian buat sebuah konstruktor untuk menampilkan jendela program sesuai dengan
pengaturan yang telah dibuat.
Implementasi - mainFrame.java
Konsep
as Dasar Algoritma Genetika
Rezania A. Azdy
Pengantar
• Dalam ilmu biologi, sekumpulan individu yang sama hidup, bereproduksi, dan
mati dalam suatu area yang disebut populasi. Jika anggota-anggota populasi
(individu) terpisah (misalkan karena bencana alam), maka individu-individu
tersebut membentuk beberapa populasi yang terpisah.
• Dalam waktu cukup lama, mungkin saja akan terjadi proses pembentukan spesies
baru (speciation). Dalam hal ini terjadi perubahan hereditas secara bertahap dan
membentuk ciri-ciri baru pada spesies tersebut.
• Hereditas adalah sebuah konsep yang menyatakan bahwa sifat-sifat individu
dapat dikodekan dengan cara tertentu sehingga sifat tersebut dapat diturunkan
kepada generasi berikutnya. Bagaimana informasi yang dapat diturunkan ini
disimpan dalam suatu individu?
Genetika Alamiah
• Setiap individu dari suatu spesies membawa sebuah genome yang berisi beberapa kromosom
dalam bentuk molekul DNA. Setiap kromosom berisi sejumlah gen, dimana unit hereditas dan
pengkodean informasi diperlukan untuk membangun dan menjaga suatu individu.
• Masing-masing gen bisa memiliki beberapa setting, sebagai contoh gen yang mengkodekan warna
mata manusia. Manusia dapat memiliki warna mata berbeda-beda: coklat, hitam, biru, hijau, dan
sebagainya.
• Selanjutnya, genome yang lengkap dari suatu individu dengan semua setting-nya disebut
genotype.
• Suatu individu dengan semua sifat-sifatnya dikenal dengan istilah phenotype.
Genetika Alamiah
• Konsep penting dalam teori evolusi adalah fitness dan selection untuk proses
reproduksi.
• Pada sexual reproduction, kromosom dari dua individu orangtua dikombinasikan
untuk menghasilkan individu baru, yaitu kromosom pada individu baru berisi
beberapa gen yang diambil dari orangtua pertama dan beberapa gen lainnya yang
diambil dari orangtua kedua (disebut dengan crossover/pindah silang).
• Kesalahan pengkopia gen dikenal dengan istilah mutation (mutasi).
Struktur Umum Algoritma Genetika
• Pada algoritma ini, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin yang
dikenal dengan istilah populasi.
• Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom.
• Populasi awal dibangu secara acak, sedangkan populasi berikutnya merupakan hasil evolusi
kromosom-kromosom melalui iterasi yang disebut dengan generasi.
• Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur
yang disebut dengan fungsi fitness. Nilai fitness pada kromosom akan menunjukkan kualitas
kromosom dalam populasi tersebut.
• Generasi berikutnya dikenal dengan istilah anak (offspring) terbentuk dari dua kromosom
generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator
penyilangan (crossover).
• Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan
operator mutasi.
Struktur Umum Algoritma Genetika
• Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari
kromosom induk (parent) dan nilai fitness dari kromosom anak (offspring), serta
menolak kromosom-kromosom yang lainnya sehingga ukuran populasi (jumlah
kromosom dalam suatu populasi) kontan.
• Setelah melalui beberapa generasi, maka algoritma ini akan menghasilkan
kromosom terbaik.
Siklus Algoritma Genetika
Komponen Algoritma Genetika
1. Teknik Penyandian
2. Prosedur Inisialisasi
3. Fungsi Evaluasi
4. Seleksi
5. Operator Genetika
6. Penentuan Parameter
Komponen Algoritma Genetika
Teknik Penyandian
• Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis
operator genetika yang akan diimplementasikan.
• Setelah ukuran populasi ditentukan, bangkitkan sejumlah kromosom (sesuai
dengan ukuran populasi) untuk dijadikan anggota populasi awal.
• Populasi terdiri dari sejumlah kromosom yang merepresentasikan solusi yang
diinginkan.
Komponen Algoritma Genetika
Fungsi Evaluasi
• Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa individu
dengan nilai tertinggilah yang akan selalu terpilih.
• Adanya kemungkinan individu dengan nilai fitness tertinggi tersebut rusak
dikarenakan proses crossover yang dilaluinya.
• Untuk menjaga individu dengan nilai fitness tertinggi tetap utuh (tidak hilang
selama evolusi), perlu dibuat copy/salinan individu tersebut.
Penggantian Populasi
Studi
as Kasus Algoritma Genetika (1)
Rezania A. Azdy
Studi Kasus 1
3. Evaluasi Kromosom.
Nilai variabel (a, b, c, d) yang dicari adalah yang nilainya memenuhi persamaan a + 2b + 3c + 4d = 30.
Sehingga fungsi objektif yang dapat digunakan untuk memperoleh solusi adalah:
fungsi_objektif(Kromosom[i]) = | a + 2b + 3c + 4d - 30 |
Menghitung fungsi objektif dari kromosom pada langkah 2:
fungsi_objektif(Kromosom[1]) = | 12 + 2*5 + 3*3 + 4*8 - 30 | = 33
fungsi_objektif(Kromosom[2]) = | 2 + 2*1 +3*8 + 4*3 - 30 | = 10
fungsi_objektif(Kromosom[3]) = | 10 + 2*4 +3*3 + 4*4 - 30 | =13
fungsi_objektif(Kromosom[4]) = | 20 + 2*1 +3*10 + 4*6 - 30 | =46
fungsi_objektif(Kromosom[5]) = | 1 + 2*4 +3*3 + 4*9 - 30 | = 24
fungsi_objektif(Kromosom[6]) = | 20 + 2*5 +3*7 + 4*1 - 30 | = 25
3. Evaluasi Kromosom.
Nilai variabel (a, b, c, d) yang dicari adalah yang nilainya memenuhi persamaan a + 2b + 3c + 4d = 30.
Sehingga fungsi objektif yang dapat digunakan untuk memperoleh solusi adalah:
fungsi_objektif(Kromosom[i]) = | a + 2b + 3c + 4d - 30 |
Menghitung fungsi objektif dari kromosom pada langkah 2:
fungsi_objektif(Kromosom[1]) = | 12 + 2*5 + 3*3 + 4*8 - 30 | = 33
fungsi_objektif(Kromosom[2]) = | 2 + 2*1 +3*8 + 4*3 - 30 | = 10
fungsi_objektif(Kromosom[3]) = | 10 + 2*4 +3*3 + 4*4 - 30 | =13
fungsi_objektif(Kromosom[4]) = | 20 + 2*1 +3*10 + 4*6 - 30 | =46
fungsi_objektif(Kromosom[5]) = | 1 + 2*4 +3*3 + 4*9 - 30 | = 24
fungsi_objektif(Kromosom[6]) = | 20 + 2*5 +3*7 + 4*1 - 30 | = 25
4. Seleksi Kromosom.
Proses seleksi dilakukan untuk memilih kromosom dengan nilai fitness tertinggi yang dapat melakukan reproduksi
untuk menghasilkan turunan (offspring). Nilai fitness diperoleh dari fungsi fitness yang dapat diturunkan dari
fungsi objektif. Kromosom yang memiliki fungsi objektif kecil mempunyai kemungkinan terpilih yang
besar/mempunyai nilai probabilitas yang tinggi. Maka fungsi fitness yang dapat digunakan:
fungsi_fitness(Kromosom[i]) = 1/(fungsi_objektif[i] + 1*)
*) fungsi objektif ditambahkan dengan 1 untuk menghindari kesalahan pembagian 0
Dari nilai fitness dapat ditentukan probabilitas/kemungkinan sebuah kromosom dipilih untuk
diteruskan ke generasi berikutnya. Probabilitas:
P[i] = fitness[i]/total_fitness
Dari nilai probabilitas dapat dilihat bahwa kromosom 2 mempunyai kemungkinan untuk dipilih pada
generasi berikutnya lebih besar dari kromosom yang lain.
Studi Kasus 1 - Penyelesaian
Untuk proses seleksi, akan digunakan metode roulette wheel. Sehingga untuk memudahkan pengelompokkan
dapat dicari kumulatif probabilitasnya terlebih dahulu.
C[1] = 0.1009
C[2] = 0.1009 + 0.3119 = 0.4128
C[3] = 0.4128 + 0.2450 = 0.6578
C[4] = 0.6578 + 0.0728 = 0.7306
C[5] = 0.7306 + 0.1373 = 0.8679
C[6] = 0.8679 + 0.1321 = 1
Proses seleksi roulette wheel dilakukan dengan membangkitkan nilai acak dengan rentang 0 sampai 1.
Pembangkitan dilakukan sebanyak jumlah kromosom dalam satu populasi.
Acak[1] = 0.201 --> Kromosom 2
Acak[2] = 0.284 --> Kromosom 2
Acak[3] = 0.009 --> Kromosom 1
Acak[4] = 0.822 --> Kromosom 5
Acak[5] = 0.398 --> Kromosom 2
Acak[6] = 0.501 --> Kromosom 3
Studi Kasus 1 - Penyelesaian
Dari bilangan acak yang telah dibangkitkan, maka populasi kromosom baru hasil proses seleksi adalah:
Kromosom[1] = Kromosom[2] = [02 01 08 03]
Kromosom[2] = Kromosom[2] = [02 01 08 03]
Kromosom[3] = Kromosom[1] = [12 05 03 08]
Kromosom[4] = Kromosom[5] = [01 04 03 09]
Kromosom[5] = Kromosom[2] = [02 01 08 03]
Kromosom[6] = Kromosom[3] = [10 04 03 04]
Algoritma Genetika
Studi
as Kasus Algoritma Genetika (1 - Lanjutan)
Rezania A. Azdy
Studi Kasus 1 - Penyelesaian
5. Crossover
Metode yang digunakan untuk proses crossover adalah one-cut point (Crossover Satu Titik).
Kromosom yang akan dijadikan induk (mengalami crossover) dipilih secara acak dan jumlahnya dipengaruhi oleh
parameter crossover_rate (ρc).
Misal ditentukan ρc = 25%, maka kromosom yang akan mengalami crossover adalah kromosom yang nilai acaknya
tidak lebih dari ρc atau banyaknya crossover tidak lebih dari ρc.
Pembangkitan nilai acak untuk setiap kromosom:
Acak[1] = 0.191
Acak[2] = 0.259
Acak[3] = 0.760
Acak[4] = 0.006
Acak[5] = 0.159
Acak[6] = 0.340
Studi Kasus 1 - Penyelesaian
Dari bilangan acak yang dibangkitkan sebelumnya, maka kromosom yang akan mengalami crossover adalah
Kromosom[1], Kromosom[4], dan Kromosom[5].
Setelah memperoleh induk, selanjutnya menentukan posisi crossover dengan membangkitkan bilangan acak
dengan rentang 1 sampai (panjang kromosom - 1). Sehingga dalam kasus ini bilangan acak yang dibangkitkan
adalah 1 sampai 4 - 1 atau [1..3].
Posisi cut-point crossover dipilih menggunakan bilangan acak yang dibangkitkan sebanyak proses crossover yang
dilakukan:
Cut[1] = 1
Cut[2] = 1
Cut[3] = 2
Studi Kasus 1 - Penyelesaian
Proses crossover yang dilakukan menghasilkan kromosom baru turunannya yang disebut dengan
offspring.
6. Mutasi
Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan dengan mutation rate (ρm).
Proses mutasi dilakukan dengan cara mengganti satu gen yang terpilih secara acak dengan nilai baru yang
diperoleh secara acak. Adapun langkah dalam melakukan mutasi adalah:
1. Hitung panjang total gen yang ada dalam satu populasi.
2. total_gen = jumlah gen dalam kromosom * jumlah populasi = 4 * 6 = 24
3. Memilih posisi gen yang mengalami mutasi dengan membangkitkan nilai acak integer dengan rentang 1
sampai total_gen [1..24], dan memilih gen yang (jumlah) bilangan acaknya tidak lebih dari mutation rate
(ρm).
4. Misal mutation_rate = 10%, maka terdapat 10% dari total gen yang mengalami mutasi.
5. Jadi jumlah mutasi = 10/100 * 24 = 2.4
Studi Kasus 1 - Penyelesaian
Dari bilangan acak yang dibangkitkan untuk setiap gen, terpilih posisi gen 12 dan 18 yang mengalami mutasi.
Dengan demikian, yang akan mengalami mutasi adalah kromosom ke 3 gen nomor 4, dan kromosom ke 5 gen
nomor 2. Maka nilai gen tersebut diganti dengan bilangan acak dengan rentang 0 sampai 30.
Acak[gen[12]] = 2
Acak[gen[18]] = 5
Studi Kasus 1 - Penyelesaian
Setelah proses mutasi selesai, maka algoritma telah menyelesaikan satu generasi (iterasi).
Rata-rata fungsi objektif (dari kromosom yang baru) = (25 +10 + 9 + 9 + 18 + 13) / 6 = 84 / 6 = 14
Dari perhitungan rata-rata fungsi objektif diatas dapat dilihat, bahwa setelah satu generasi fungsi objektifnya
menurun dibandingkan rata-rata fungsi objektif sebelum mengalami proses crossover dan mutasi. Hal ini
menunjukkan bahwa kromosom yang dihasilkan pada populasi baru lebih baik dari kromosom generasi
sebelumnya. Maka kromosom pada generasi selanjutnya adalah:
Kemudian kromosom ini akan mengalami proses yang sama dengan generasi sebelumnya hingga ditemui
kriteria penghentian algoritma.
Studi Kasus 1 - Penyelesaian
Dari pencarian solusi menggunakan algoritma genetika, maka ditemukan nilai variabel:
a=7
b=5
c=3
d=1
Algoritma Genetika
Studi
as Kasus Algoritma Genetika (2)
Rezania A. Azdy
Studi Kasus 2
gambar disamping. 7
6
• Tentukan urutan kota mana saja yang 9 5
Inisialisasi
Misalkan ukuran populasi dalam satu generasi adalah 6 (1 populasi terdiri dari 6 kromosom). Proses inisialisasi
dilakukan dengan memberi nilai awal untuk gen secara acak pada tiap kromosom.
Maka:
Kromosom[1] = [B D E C]
Kromosom[2] = [D B E C]
Kromosom[3] = [C B D E]
Kromosom[4] = [E B C D]
Kromosom[5] = [E C B D]
Kromosom[6] = [C D E B]
Studi Kasus 2 - Penyelesaian
Evaluasi Kromosom
Berikutnya akan dihitung nilai fitness dari tiap kromosom yang telah dibangkitkan. Nilai fitness diperoleh dari
total jarak yang ditempuh dengan menelusuri lintasan kota pada kromosom:
Fitness[1] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23
Fitness[2] = AD+DB+BE+EC+CA = 9 + 2 + 8 + 3 + 5 = 27
Fitness[3] = AC+CB+BD+DE+EA = 5 + 7 + 2 + 6 + 9 = 29
Fitness[4] = AE+EB+BC+CD+DA = 9 + 8 + 7 + 4 + 9 = 37
Fitness[5] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30
Fitness[6] = AC+CD+DE+EB+BA = 5 + 4 + 6 + 8 + 7 = 30
Studi Kasus 2 - Penyelesaian
Proses roulete-wheel adalah membangkitkan nilai Setelah itu, populasi baru akan terbentuk yaitu :
acak R antara 0-1. Roulete-wheel diputar sebanyak Kromosom[1] = [K2] = [D B E C]
jumlah kromosom yaitu 6 kali (membangkitkan Kromosom[2] = [K1] = [B D E C]
bilangan acak R). Kromosom[3] = [K3] = [C B D E]
R[1] = 0,314 → K2 Kromosom[4] = [K5] = [E C B D]
R[2] = 0,111 → K1 Kromosom[5] = [K4] = [E B C D]
R[3] = 0,342 → K3 Kromosom[6] = [K6] = [C D E B]
R[4] = 0,743 → K5
R[5] = 0,521 → K4
R[6] = 0,911 → K6
Studi Kasus 2 - Penyelesaian
Crossover (1)
Pindah silang pada TSP dapat diimplementasikan dengan skema order crossover. Pada skema ini, satu bagian
kromosom dipertukarkan dengan tetap menjaga urutan kota yang bukan bagian dari kromosom tersebut.
Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom yang dicrossover dipengaruhi oleh
parameter crossover probability (ρc). Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi yaitu
6 kali.
R[1] = 0,451
R[2] = 0,211
R[3] = 0,302
R[4] = 0,877
R[5] = 0,771
R[6] = 0,131
Kromosom ke-k yang dipilih sebagai induk jika R[k] < ρc. Maka yang akan dijadikan induk adalah kromosom[2],
kromosom[3], dan kromosom[6].
Studi Kasus 2 - Penyelesaian
Crossover (2)
Setelah melakukan pemilihan induk, proses selanjutnya adalah menentukan posisi crossover. Hal tersebut
dilakukan dengan membangkitkan bilangan acak antara 1 sampai dengan panjang kromosom-1.
Dalam kasus ini bilangan acaknya adalah antara 1-3 (karena ukuran kromosom = 4). Misal diperoleh bilangan
acaknya 1, maka gen yang ke-1 pada kromosom induk pertama diambil kemudian ditukar dengan gen pada
kromosom induk kedua yang belum ada pada induk pertama dengan tetap memperhatikan urutannya.
Crossover (3)
Proses crossover :
Kromosom[2] = Kromosom[2] >< Kromosom[3] = [B D E C] >< [C B D E] = [B D D E]
Kromosom[3] = Kromosom[3] >< Kromosom[6] = [C B D E] >< [C D E B] = [C D E B]
Kromosom[6] = Kromosom[6] >< Kromosom[2] = [C D E B] >< [B D E C] = [C D B E]
Mutasi (1)
Pada kasus TSP ini skema mutasi yang digunakan adalah swapping mutation. Jumlah kromosom yang
mengalami mutasi dalam satu populasi ditentukan oleh parameter mutation rate(ρm). Proses mutasi dilakukan
dengan cara menukar gen yang dipilih secara acak dengan gen sesudahnya. Jika gen tersebut berada di akhir
kromosom, maka ditukar dengan gen yang pertama.
Pertama kita hitung dulu panjang total gen yang ada pada satu populasi:
Panjang total gen = jumlah gen dalam 1 kromosom * jumlah Kromosom
=4*6
= 24
Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan membangkitkan bilangan acak antara 1 –
Panjang total gen yaitu 1- 24. Misal kita tentukan ρm = 20 %, maka jumlah gen yang akan dimutasi adalah =
20/100*24 = 4,8 = 5.
Studi Kasus 2 - Penyelesaian
Mutasi (2)
Bilangan acak yang dibangkitkan untuk setiap gen:
Gen[1] = 13 Gen[7] = 05 Gen[13] = 20 Gen[19] = 09
Gen[2] = 11 Gen[8] = 12 Gen[14] = 17 Gen[20] = 01
Gen[3] = 03 Gen[9] = 24 Gen[15] = 14 Gen[21] = 19
Gen[4] = 18 Gen[10] = 02 Gen[16] = 08 Gen[22] = 15
Gen[5] = 06 Gen[11] = 10 Gen[17] = 23 Gen[23] = 21
Gen[6] = 16 Gen[12] = 07 Gen[18] = 22 Gen[24] = 04
5 buah posisi gen yang akan dimutasi, setelah diacak adalah posisi 3,7,10,20,24.
Studi Kasus 2 - Penyelesaian
Mutasi (3)
Proses mutasi : Proses algoritma genetik untuk 1 generasi telah selesai. Maka nilai
Kromosom[1] = [D B C E] fitness setelah 1 generasi adalah:
Kromosom[2] = [B D E C] Fitness[1] = AD+DB+BC+CE+EA = 9 + 2 + 7 + 3 + 9 = 30
Kromosom[3] = [C E D B] Fitness[2] = AB+BD+DE+EC+CA = 7 + 2 + 6 + 3 + 5 = 23
Kromosom[4] = [E C B D] Fitness[3] = AC+CE+ED+DB+BA = 5 + 3 + 6 + 2 + 7 = 23
Kromosom[5] = [D B C E] Fitness[4] = AE+EC+CB+BD+DA = 9 + 3 + 7 + 2 + 9 = 30
Kromosom[6] = [E D B C] Fitness[5] = AD+DB+BC+CE+EA = 9 + 2 + 7 + 3 + 9 = 30
Fitness[6] = AE+ED+DB+BC+CA = 9 + 6 + 2 + 7 + 5 = 29
Studi Kasus 2 - Penyelesaian
Setelah 1 generasi terlihat bahwa nilai fitness terkecil tidak berubah. Sehingga jika perhitungan
dilanjutkan hingga ke generasi ke-N maka diyakinkan bahwa nilai fitness yang terendah tetap tidak
akan berubah.
Sehingga solusi permasalahan diatas mengenai rute yang dipilih terdapat pada kromosom 2 (B, D, E,
C) dan kromosom 3 (C, E, D, B).
Jaringan Syaraf Tiruan
Konsep
as Dasar Jaringan Syaraf Tiruan
Rezania A. Azdy
Definisi
• Jaringan syaraf merupakan salah satu representasi buatan dari otak manusia yang
selalu mencoba untuk mensimulasikan proses pembelajaran pada otak manusia
tsb.
• Disebut buatan karena jaringan syaraf diimplementasikan dengan menggunakan
program komputer yang mampu menyelesaiakn sejumlah proses perhitungan.
• Menurut Alexander dan Morton:
JST adalah prosesor tersebar paralel (paralel distributed processor) yang sangat besar yang
memiliki kecenderungan untuk menyimpan pengetahuan yang bersifat pengalaman dan
membuatnya siap untuk digunakan. JST menyerupai otak manusia dalam dua hal, yaitu:
1. Pengetahuan diperoleh jaringan melalui proses belajar;
2. Kekuatan hubungan antar sel syaraf (Neuron) yang dikenal sebagai bobot-bobot sinaptik
digunakan untuk menyimpan pengetahuan.
Jaringan Syaraf Alami
Meskipun terdapat berbagai tipe JST, pada umumnya seluruh tipe ini memiliki
kompoenen yang sama.
No Komponen Arti
1 Neuron Unit pemrosesan informasi yang merupakan dasar dari operasi JST
2 Input Informasi yang dikirim ke neuron dengan bobot kedatangan tertentu.
3 Bobot Sekumpulan sinapsis (jalur hubungan), dimana masing2 sinapsis memiliki bobot atau kekuatan hubungan.
4 adder Fungsi perambatan yang menjumlahkan sinyal input yang telah diberi bobot oleh sinapsis neuron yang
sesuai.
5 Fungsi Hasil penjumlahan akan dibandingkan dengan nilai ambang tertentu (threshold) melalui fungsi aktivasi.
aktivasi Apabila input tsb melewati nilai threshold, maka neuron diaktifkan, jika tidak maka neuron tidak akan aktif.
Apabila neuron aktif, maka neuron akan mengirimkan output ke semua neuron yang berhubungan
dengannya.
Komponen JST (2)
• Pada jaringan syaraf, neuron dikumpulkan dalam lapisan yang disebut dengan
lapisan neuron (neuron layers).
• Neuron pada suatu lapisan akan dihubungkan dengan lapisan sebelum dan
sesudahnya (kecuali lapisan input dan lapisan output).
• Informasi akan dirambatkan lapisan ke lapisan, mulai dari lapisan input hingga
lapisan output melalui lapisan lainnya yang disebut dengan lapisan tersembunyi
(hidden layer).
• Informasi akan dirambatkan sesuai dengan algoritma pembelajarannya.
Komponen JST (4)
• Fungsi aktivasi mendefinisikan nilai output dari suatu neuron dalam level aktivasi
tertentu berdasarkan nilai output pengkombinasi linier ui.
• Fungsi aktivasi yang sering digunakan pada JST:
1. Fungsi undak biner
2. Fungsi linear
3. Fungsi sigmoid biner
4. Fungsi sigmoid bipolar
Fungsi Aktivasi (2)
2. Fungsi linear
Fungsi Aktivasi (4)
Perceptron
as
Rezania A. Azdy
Perceptron
• Misal v adalah vektor (v1, v2, v3), dan a adalah skalar (a1, a2, a3), maka .
Dalam komputasi, linear classifer didefinisikan sebagai algoritma yang (pada
bidang 2 dimensi) dapat menemukan garis yang dapat memisahkan beberapa
kelas. Sehingga objek-objek yang berada pada sisi garis yang sama maka objek
tersebut berada pada satu kelas.
Perceptron
Single layer perceptron memiliki bobot yang dapat diatur dan nilai threshold.
Pelatihan pada perceptron ini dilakukan dengan mengubah nilai bobot sehingga
sesuai dengan kebutuhan yang dilakukan dengan membandingkan keluaran dengan
nilai target (output yang telah diperkirakan).
Istilah:
• x : Input • α : Learning rate/laju pemahaman (LR)
• b : bias • w : Bobot
• Target (T) : Output yang diprediksi • Ø : Nilai threshold
• y_in : Luaran proses pembelajaran • Epoh : Tahapan pembelajaran/iterasi
• y : Fungsi aktivasi y = f(y_in)
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)
Langkah 1:
a. Menyiapkan data set pembelajaran.
b. Inisialisasi semua bobot dan bias.
(untuk mudahnya set semua bobot awal dan bobot bias sama dengan nol)
c. Tentukan learning rate (0 < α ≤ 1)
(untuk mudahnya set LR sama dengan 1)
Pembelajaran pada Perceptron
(Algoritma Single Layer Perceptron)
Langkah 2:
Hitung y_in berdasarkan input, bobot, dan bias:
y _ in b xi wi
i
Hitung y = f(y_in) berdasarkan fungsi aktivasi (cth: menggunakan fungsi undak biner dengan threshold)
Langkah 3:
Kembali ke langkah 2 untuk menghitung data selanjutnya dengan bobot baru.
Langkah 4:
Berhenti jika bobot tetap untuk semua data atau iterasi maksimal epoh terpenuhi.
Jaringan Syaraf Tiruan
Backpropagation
as
Rezania A. Azdy
Backpropagation
0. Inisialisasi bobot dan bias (ambil nilai bobot awal dengan nilai random yang kecil dengan kisaran -1
hingga 1), konstanta learning rate, dan maksimal epoh (bisa juga toleransi error atau nilai bobot
sebagai kondisi berhenti).
Tahap 1: Feedforward
3. Setiap input xi (dari unit ke-1 hingga unit ke-n) mengirimkan sinyal input ke setiap input yang berada
pada hidden layer.
4. Setiap unit di hidden layer zj (dari unit ke-1 hingga ke-n) dikalikan dengan bobotnya dan
ditambahkan dengan biasnya:
dan menggunakan fungsi aktivasi untuk menghitung sinyal output dari hidden unit yang
bersangkutan:
Backpropagation - Algoritma
5. Setiap unit output yk (dari unit ke-1 hingga ke-p) akan menjumlahkan sinyal input yang telah
berbobot termasuk biasnya:
dan menggunakan fungsi aktivasi untuk menghitung sinyal output dari unit output yang
bersangkutan:
Backpropagation - Algoritma
6. Setiap unit output (yk) menerima pola target tk sesuai dengan pola pelatihan yang telah diberikan,
dan menghitung koreksi error lapisan output (δk):
Hitung suku perubahan bobot wkj (yang akan digunakan untuk mengubah wjk):
7. Setiap unit di hidden layer menjumlahkan input delta yang telah berbobot (yang dihasilkan pada
Langkah 6):
9. Uji kondisi berhenti. Jika kondisi berhenti terpenuhi, maka pelatihan jaringan dapat dihentikan
Backpropagation - Algoritma