Anda di halaman 1dari 31

[AIMA] Russel, Stuart J., Peter Norvig, "Artificial Intelligence, A Modern Approach" 3rd Ed.

,
Prentice Hall, New Jersey, 2010

KI091322 Kecerdasan Buatan


Materi 5: Pencarian dengan Optimasi
(Local Search & Optimization )
Teknik Informatika, Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember Surabaya
2012
Pengembangan Bahan Ajar sebagai Pendukung Student Centered-Learning
(SCL) melalui e-Learning : Share ITS

Variasi Teknik Pencarian


1.
2.
3.
4.
5.

Pencarian tanpa informasi (uninformed search)


Pencarian dengan informasi (informed search)
Pencarian dengan optimasi (local search & optimization)
Pencarian dengan informasi status lawan (adversarial search)
Pencarian dengan batasan kondisi (constraint satisfaction problems)

Teknik 1 dan Teknik 2 mencari jalur (path) status solusi dari


initial state sampai goal state.
Teknik 3 hanya membutuhkan state yang memenuhi
kondisi final.
2

Pencarian dengan Optimasi


(local search & optimization)
hanya butuh state yang memenuhi kondisi final
Solusi problem 8-queen = posisi 8 bidak dengan
jumlah bidak tidak saling menyerang minimal
Solusi adalah konfigurasi akhir 8 bidak
Tidak perlu tahu urutan bidak yang diletakkan di papan

Berbeda dengan problem pencarian jarak


terpendek yang membutuhkan urutan jalur dari
kota awal ke kota akhir
Path: initial state state antara goal state
3

Pencarian dengan Optimasi


(local search & optimization)
Pilih initial state dan mulai mencari solusi dari
state terdekat
Algoritma untuk pencarian dengan optimasi:
Hill-Climbing Search
Pemilihan state berdasarkan nilai objektifnya

Genetic Algorithm
Pemilihan state berdasarkan aturan seleksi alam yang
diterapkan pada state collection (sering disebut sebagai
populasi)
4

Algoritma Hill-Climbing Search


function Hill-Climbing(problem)
returns a state that is a local maximum
current <- Make-Node(problem.Initial-State)
loop do
neighbor <- a highest-valued successor of current
if neighbor.Value <= current.Value
then return current.State
current <- neighbor

Hill-Climbing Search disebut juga Greedy Local Search


-> ambil state terdekat yang terlihat baik saat itu
Sumber: [AIMA] Russel, Stuart J., Peter Norvig, "Artificial Intelligence, A Modern Approach" 3rd Ed.,
Prentice Hall, New Jersey, 2010
5

Persiapan untuk Hill-Climbing Search


Cara untuk menentukan initial state
Random?? State dengan nilai objektif terkecil??

Fungsi Objektif untuk hitung nilai state


Problem: 8-queens
Pilih initial state
Posisi bidak random dari 1-8; posisi teratas

Fungsi Objektif
Heuristic cost function h = jumlah pasangan bidak ratu
yang dapat saling menyerang
6

Contoh Heuristic Cost Function h untuk


Problem 8-queens
1

8
a
b
c

h = 1 pasangan bidak ratu


yang dapat saling
menyerang

d
e

Yaitu 1a-8h

f
g
h

Contoh 8-queens dengan Hill-Climbing


Secara random, state current = 1e 2f 3g 4d 5e 6f 7g 8f
Nilai h(current)=17 pasangan saling menyerang
1e-2f; 1e-3g; 1e-5e; 2f-3g; 2f-4d; 2f-6f; 2f-8f;
3g-5e; 3g-7g; 4d-5e; 4d-6f; 4d-7g; 5e-6f; 5e-7g;
6f-7g; 6f-8f; 7g-8f;
Hitung semua nilai h jika posisi satu
1 2 3 4 5 6 7 8
bidak catur dirubah
a
Misal 1: posisi 1e dirubah ke 1d maka
b
state 1d 2f 3g 4d 5e 6f 7g 8f; h=15
c
Misal 2: posisi 2f dirubah ke 2e maka
d
state 1e 2e 3g 4d 5e 6f 7g 8f; h=14
e
Nilai h terkecil adalah h=12, jadi
f
Kondisi state dapat diubah ke:
g
1e 2a 3g 4d 5e 6f 7g 8f
h
1e 2f 3g 4d 5e 6f 7h 8f (8 pilihan)
Aturan Hill-Climbing, pilihan state selanjutnya nilai h <= 12
8
Misal state current = 1e 2a 3g 4d 5e 6f 7g 8f

Contoh 8-queens dengan Hill-Climbing


state current = 1e 2a 3g 4d 5e 6f 7g 8f
Nilai h(current)= 12 pasangan saling menyerang
1

a
b
c
d
e
f

Hitung semua nilai h jika posisi satu


bidak catur dirubah

Nilai h terkecil adalah h=??, jadi


Kondisi state dapat diubah ke:
(?? pilihan)

g Aturan Hill-Climbing, pilihan state


h selanjutnya nilai h <= 12

Proses berhenti saat nilai h(semua neighbor)> h(current) dan


return state current sebagai solusi
9

Kekurangan Hill-Climbing
Terjebak dalam kondisi local maxima
Seolah-olah tidak ada pilihan, nilai terkecil h(neighbor)
> h(current)
Namun jika state terpilih saat current-1 adalah state
lain, maka mungkin ditemukan nilai terkecil
h(neighbor) <= h(current)

Alternatif cara untuk hindari local maxima


Pilih state dari neighbor dengan hitung nilai
h(current+1)
Hitung h(neighbor) dan h(current=neighbor)
Pilih current baru dari neighbor dengan h(current=neighbor)
<= h(current)
10

Contoh Hill-Climbing untuk Cari Jalur


Pemasangan poster Gemastik dalam ITS akan
dilakukan di Jurusan Matematika(M), T.Computer(C),
Warung Gebang(W), T.Elektro(E), Statistika (S)
Jarak antar lokasi sbb dalam km
Cari jalur
M
C
W
E
S
pemasangan dengan
M
0
.9
.6
.8
.7
jarak terpendek
C
0
1.3
1.5
1.3
W
0
.2
.3
Nilai h = total jarak
E
S

.2
0
11

Contoh Hill-Climbing untuk Cari Jalur


Initial state = (M -> E -> C -> S -> W) secara random
Nilai h = .8 + 1.5 + 1.3 + .3 = 3.9
Contoh proses swap: (A->B->C)
Tukar A-B didapat (B->A->C)
Tukar A-C didapat (C->B->A)
Tukar B-C didapat (A->C->B)

Neighbor terbentuk dengan merubah (swap) 2 lokasi


(E -> M -> C -> S -> W) = 3.3
(S -> E -> C -> M -> W) = 3.2
(M -> C -> E -> S -> W) = 2.9
(M -> W -> C -> S -> E) = 3.4
(M -> E -> W -> S -> C) = 2.6

(C -> E -> M -> S -> W) = 3.3


(W -> E -> C -> S -> M) = 3.7
(M -> S -> C -> E -> W) = 3.7
(M -> E -> S -> C -> W) = 3.6
(M -> E -> C -> W -> S) = 3.9

Hill-Climbing akan memilih h=2.6

untuk current state (M -> E -> W -> S -> C)

Proses swap dilakukan 1x lagi, dan solusi optimal didapat

(S->E->W->M->C) dengan h=1.9

12

Problem Romanian

Jalur terpendek dari Arad ke Bucharest adalah ???


Pendekatan solusi: teknik pencarian

13

AIMA untuk Problem Romanian

14

AIMA untuk Problem Romanian

15

AIMA untuk Problem Romanian

16

AIMA untuk Problem Romanian

17

Perbandingan Algoritma Pencarian


1. Pencarian tanpa informasi (uninformed search)
a.
b.
c.

Depth-First Search (DFS): path cost = 733, expanded = 10 nodes


Breadth-First Search (BFS): path cost = 450, expanded = 5 nodes
Uniform Cost Search (UCS): : path cost = 418, expanded = 12 nodes

2. Pencarian dengan informasi (informed search)


a.
b.

Greedy Best First (greedy): path cost = 450, expanded = 3 nodes


A* (baca: A-star): path cost = 418, expanded = 5 nodes

3. Pencarian dengan optimasi (local search & optimization)


Hill-Climbing Search (hillclimb): path cost = 450, expanded = 4 nodes

Rekomendasi pencarian dengan informasi A* memberikan hasil


yang bagus
Pencarian dengan optimasi memberikan hasil yang mendekati A*
18

Algoritma Genetik
(Genetic Algorithm, GA)
Rekapitulasi Materi tentang pemilihan state berikut
Hill-Climbing Search: berdasarkan nilai objektifnya
Genetic Algorithm: berdasarkan aturan seleksi alam yang diterapkan pada
state collection (sering disebut sebagai populasi)

Pada GA
Inisialisasi state diambil dari populasi (kumpulan sejumlah
n state)
Kandidat state berikut adalah populasi baru berisi state
baru hasil kombinasi state pada populasi sekarang
Pemilihan state dari populasi baru berdasarkan nilai
tertinggi hasil perhitungan fitness function
19

Tahapan dalam Algoritma Genetika


Pengkodean state atau disebut kromosom
(encoding technique)
Proses inisialisasi pembentukan state atau
kromosom awal (initialization procedure)
Fungsi evaluasi nilai kromosom (fitness function)
Penentuan kromosom pilihan sebagai parent
(selection)
Operator genetika untuk kombinasi kromosom
baru (mutation)
20

Algoritma Genetika
function Genetic-Algorithm(population, Fitness-Fn)
returns an individual
inputs:
population, a set of individuals
Fitness-Fn,
a function that measures the fitness of an individual
repeat
new_population <- empty set
for i=1 to Size(population) do
x <- Random-Selection(population, Fitness-Fn)
y <- Random-Selection(population, Fitness-Fn)
child <- Reproduce(x, y)
if (small random probability) then child <- Mutate(child)
add child to new_population
population <- new_population
until some individual is fit enough, or enough time has elapsed
return the best individual in population, according to Fitness-Fn
Sumber: [AIMA] Russel, Stuart J., Peter Norvig, "Artificial Intelligence, A Modern Approach" 3rd Ed.,
Prentice Hall, New Jersey, 2010

21

Algoritma Genetika
function Reproduce(x, y) returns an individual
inputs: x, y, parent individuals
n <- Length(x);
c <- random number from 1 to n
return
Append(Substring(x, 1, c), Substring(y, c+1, n))

Sumber: [AIMA] Russel, Stuart J., Peter Norvig, "Artificial Intelligence, A Modern Approach" 3rd Ed.,
Prentice Hall, New Jersey, 2010
22

Pengkodean Kromosom (encoding)


Representasi state menjadi kromosom
Contoh problem pencarian rute jalan (travelling
salesman problem) untuk 4 kota
Satu state atau satu rute 12341 berarti kunjungan dari
kota 1->2->3->4->diakhiri ke->1
Kromosom tertulis 1234 (permutation encoding)

Pencarian koefisien yang sesuai untuk persamaan


y=ax5+bx4+cx3+dx2+ex+f (value encoding)
Contoh kromosom [0, 0, 0, 2, 3, 5] berarti persamaan
menjadi = 0x5 + 0x4 + 0x3 + 2x2 +3x + 5
23

Pengkodean Kromosom (encoding)


Teknik sebelumnya
permutation encoding & value encoding
Binary encoding
Pengkodean kromosom terdiri dari angka 1 dan 0
Problem Knapsack -> optimasi pemilihan benda untuk
dimasukkan ke wadah dengan keterbatasan ruang
Berat dan nilai benda menjadi prioritas pemilihan
Misal 4 benda: A(3kg, 6rb), B(2kg, 5rb), C(5kg, 9rb), D(4 kg, 8rb)

Contoh: kromosom 0101 berarti wadah berisi B & D

24

Contoh Problem Persamaan


Pencarian koefisien yang sesuai untuk persamaan
y = ax5 + bx4 + cx3 + dx2 +ex + f
Contoh kromosom [0, 0, 0, 2, 3, 5] berarti persamaan
menjadi = 0x5 + 0x4 + 0x3 + 2x2 +3x + 5
Fungsi Evaluasi (fitness function)
Cek dengan contoh data (x, y), hitung = ax5 + bx4 + cx3 + dx2 +ex + f
Hitung jumlah (y )2 yang disebut sebagai Sum Squared Error
(SSE) untuk semua x
Jika nilai jumlah semakin besar menunjukkan kombinasi koefisien
pada kromosom tidak tepat
Diambil dari: Nysret Musliu, Materi Kuliah SS 2012 Problem Solving and Search in Artificial Intelligence, Technische
Universitt Wien, Austria
25
url: http://www.dbai.tuwien.ac.at/staff/musliu/ProblemSolvingAI/

Contoh Problem Persamaan


Untuk kromosom [0, 0, 0, 2, 3, 5] dan data (1, 12) (2, 22):
= 0x5 + 0x4 + 0x3 + 2x2 +3x + 5 = 2 + 3 + 5 = 10 jika x =1
= 0x5 + 0x4 + 0x3 + 2x2 +3x + 5 = 8 + 6 + 5 = 19 jika x =2
SSE = (12 10)2 + (22 19)2 = 22 + 32 = 13
Untuk kromosom [0, 0, 0, 2, 3, 6] dan data (1, 12) (2, 22):
= 0x5 + 0x4 + 0x3 + 2x2 +3x + 6 = 2 + 3 + 6 = 11 jika x =1
= 0x5 + 0x4 + 0x3 + 2x2 +3x + 6 = 8 + 6 + 6 = 20 jika x =2
SSE = (12 11)2 + (22 20)2 = 12 + 22 = 5

Jadi untuk contoh data (1, 12) dan (2, 22) maka kromosom dengan nilai
error (hasil fitness function) yang lebih baik adalah [0, 0, 0, 2, 3, 6]
Kromosom tersebut dipilih untuk masuk dalam populasi berikutnya

26

Langkah-Langkah Algoritma Genetik


untuk Problem Persamaan
Buat populasi berisi 100 kromosom secara random
@kromosom = array 6 angka, misal: [0, 0, 0, 2, 3, 5]

Ulangi proses berikut sampai 500 kali (atau n kali):


Hitung SSE dari 100 kromosom dengan contoh data
tersedia
Ambil 10 kromosom dengan nilai SSE terkecil
Dari setiap kromosom, buat kromosom baru dengan
aturan sbb
Pilih satu angka secara random dari 6 angka dalam array
Ambil angka konstanta secara random antara 0.0-2.0
Kalikan konstanta dengan angka pilihan

Setelah n kali perulangan, ambil kromosom terbaik


sebagai jawaban koefisien dari persamaan
Kromosom dengan nilai SSE terkecil
27

Metode Seleksi
Roulette-wheel

Selection
Stochastic universal
sampling
Local selection

Truncation selection
Tournament Selection
Group Selection

Rank-based Fitness
Selection
Steady-State
Selection
Boltzmann Selection
Elitism

28

Operator Genetika
Crossover
Mengkombinasikan sebagian kromosom parent 1
dengan parent 2

Parent 1
Parent 2
Offspring 1
Offspring 2

100|0111
111|1000
1001000
1110111

(a|b)
(c|d)
(hasil ad)
(hasil cb)

Mutasi
Kromosom hasil perubahan 1 gen / karakter
1 0 0 0 1 1 1 menjadi 1 1 0 0 1 1 1 (perubahan di bit 2)
29

Variasi Crossover & Variasi Mutasi


CROSSOVER

MUTASI

One-point
Two-point
Uniform
Arithmetic
Heuristic

Flip Bit
Boundary
Non-Uniform
Uniform
Gaussian

30

Parameter Penting Algoritma Genetik


Probabilitas Mutasi
Probabilitas Crossover
Ukuran populasi

31

Anda mungkin juga menyukai