You are on page 1of 39

Kecerdasan Buatan (Minggu 5)

Iterative improvement algorithms

Dalam banyak masalah optimisasi, maka mendapatkan path bukanlah yang utama tetapi :

State tujuan adalah solusi yang diinginkan Contoh :

Mendapatkan konfigurasi susunan kota yang dikunjungi pada TSP Problem Mendapatkan konfigurasi yang memenuhi persyaratan yang diinginkan /ditentukan pada penjadwalan. Mendapatkan segmentasi paragraph pada suatu dokumen teks Melakukan segmentasi terhadap dokumen suara dengan jalan melakukan segmentasi terhadap transkripsi dokumen suara.

Dalam kasus-kasus seperti itu maka dapat digunakan algoritma iterative improvement
2

Contoh problem optimalisasi

N-Queens problem

Meletakkan n queens pada papan n n board, dimana tidak terdapat 2 queen dalam satu baris, kolom atau diagonal

Solusi dapat dilakukan dengan menggerakkan queen dalam kolom untuk meminimalisasi konflik

State Space Landscape


Lokasi State Space Elevasi :

Fungsi obyektif Global maksimum Fungsi cost heuristic Global minimum

Hill Climbing (Steepest Ascent)

Algoritma ini akan mengembalikan :


state yang merupakan lokal maksimum Jika fungsi obyektif yang digunakan untuk mendapatkan successor State yang merupakan lokal minima Jika fungsi heuristik yang digunakan.

function Hill-Climbing( problem) returns a state that is a local Optimal

inputs: problem, a problem local variables : current, a node neighbor, a node current Make-Node(Initial-State[problem]) loop do Neighbor a highest-valued successor of current
if Value[neighbor] Value[current] then return State[current]

current neighbor end

Hill Climbing (Steepest Ascent)

Contoh penerapan SHC pada TSP :

A
3

8
4

B
5

Hill Climbing (Steepest Ascent)

Maksimal Operator yang digunakan :


4! 6 4 C2 2!(4 2)!

Mempertukarkan posisi urutan kota:


(1,2) (2,3) (3,4) (4,1) (2,4) (1,3)


7

Hill Climbing (Steepest Ascent)

Contoh SA Hill Climbing pada TSP :

Ruang Keadaan TSP :


CBAD ABCD ABCD
19 20

DCBA

19

ADCB BACD

ABDC
17

18

ADBC CABD

16

BCAD

15

ACDB
12

13

ACBD

DBCA

Hill Climbing (Steepest Ascent)

Penggunaan SA Hill Climbing pada 8 Puzzle


Jika Fungsi obyektif yang digunakan adalah jumlah posisi kotak yang benar (walaupun ada manhattan distance) Operator yang digunakan Pergerakan kotak kosong ke:

Kanan Kiri Atas bawah

Tujuan :

1 2 3 8 4 7 6 5

f=4

1 2 3 7 8 4 6 5

Kondisi Awal

Hill Climbing (Steepest Ascent)


1 2 3 8 4 8 7 6 5 f=8

1 2 3 8 4 7 6 5 f=7 1 2 3 7 8 4 6 5
1 2 3 7 8 4 6 5

f=6
1 2 3 7 8 4 6 5

2 3 1 8 4 7 6 5 1 2 3 7 8 4 6 5

f=6

f=5 1 7 f=4 2 3 8 4

1 2 3 7 4 6 8 5 1 2 3 7 8 4 6 5

f=5

f=5

f=5

6 5
1 2 3 7 8 6 5 4 f=3

f=4

10

Text Tiling Algorithm

11

Text Tiling Algorithm

12

Simulated-Annealing

function Simulated-Annealing( problem, schedule) returns a solution state inputs: problem, a problem schedule, a mapping from time to temperature local variables: current, a node next, a node T, a temperature controlling prob. of downward steps current Make-Node(Initial-State[problem]) for t 1 to do

T schedule[t] if T = 0 then return current Next a randomly selected successor of current E Value[next] Value[current] if E > 0 then current next else current next only with probability e E/T

Loop pada simulated annealing memiliki kemiripan dengan Hill Climbing, tetapi dilakukan secara random, jika menunjukkan hasil yang baik maka akan dilaksanakan, jika tidak maka langkah yang dilakukan dengan probabilitas lebih kecil dari 1 dan lebih besar dari e E/T
13

Local Beam Search

Ide:

Menggunakan top k states (k states terbaik dari seluruh successor yang ada) Seringkali seluruh k states menuju local hill yang sama Untuk memperbaiki ini maka k successor yang dipilih dilakukan secara random

Problem:

Genetic Algorithm

Pembahasan terpisah .
14

Constraint Satisfaction Problem

Standard search problem:


state adalah black box direpresentasikan sebagai struktur data yang hanya dapat diakses dengan

problem-specific routines

successor function, goal test dan evaluation function

CSP:

Variabel

Constraint

{X1, X2, } setiap variabel memiliki himpunan nilai yang mungkin dari Domain Di Setiap constraint akan menentukan nilai yang mungkin dapat dipilih dari Domain untuk suatu variabel Memberikan nilai pada variabel {Xi = vi, Xi = vj } Pemberian nilai pada suatu variabel tidak melanggar salah satu constraint Pemberian nilai pada seluruh variabel tanpa melanggar constraint yang ada

Problem :

Consistent assignment :

Solusi :

15

Constraint Satisfaction Problem


NT WA SA NS V

Variabel T WA, NT, Q, NS, V , SA, T Domains Di {merah, hijau, biru} Constraints: Setiap kotak yang bersinggungan harus memiliki nilai (warna) yang berbeda Contoh : WA NT (diartikan bahwa nilai WA tidak boleh sama dengan nilai NT) (WA,NT) {(merah, hijau), (merah, biru), (hijau, merah), (hijau, biru), . . .}
16

Constraint Satisfaction Problem

NT WA SA

NS
V T

Solusi :

Pemberian nilai yang tidak melanggar constraint {WA=merah,NT =biru,Q=merah,NS =biru, V =merah, SA=hijau, T =biru}

17

Constraint Satisfaction Problem

Representasi CSP dengan Constraint Graph

NT

NT WA SA

Q
WA SA NS

NS
V

V
T

Dari graph dapat terlihat :

Untuk mempercepat penyelesaian maka node T Sub adalah subproblem yang terpisah (Constraint tidak berlaku pada T)
18

Constraint

Unary constraints

Melibatkan single variabel


NT hijau

Binary constraints

Melibatkan pasangan variabel


SA WA

Higher-order constraints

Melibatkan 3 atau lebih variabel Dapat digambarkan dengan hyper-constraint graph


Cryptarithmetic

Constraint :

Absolut constraint

Preferences (soft constraints) constraint

Jika dilanggar maka hasil bukan merupakan solusi Menunjukkan pilihan solusi yang akan dipilih

19

Hyper-Constraint Graph pada Cryptarithmetic

TWO T W O+ FOUR

X3

X2

X1

Variables: F T U W R O

Auxiliary variable : X1, X2 , X3 merepresentasikan (0 dan 1)

Domains: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Constraints alldi(F, T,U,W,R,O) Binary constraint (F T, FW,) O + O = R + 10 X1, X1 + W + W = U + 10 X2, X2 + T + T = O + 10 X3, X3 = F,

20

TWO T W O+ FOUR

Solusi : (F=1;O=8;W=2;T=9;U=5;R=6;X1=1; X2=0; X3=1)

928 9 2 8+ 1856
21

function Backtracking-Search(csp) returns solution/failure return Recursive-Backtracking({ }, csp) function Recursive-Backtracking(assignment, csp) returns soln/failure if assignment is complete then return assignment
var Select-Unassigned-Variable(Variables[csp], assignment, csp)

for each value in Order-Domain-Values(var, assignment, csp) do


if value is consistent with assignment given Constraints[csp] then

add {var = value} to assignment result Recursive-Backtracking(assignment, csp) if result failure then return result remove {var = value} from assignment return failure
22

Contoh BackTracking
NT WA SA NS V T Q

23

NT WA SA

Q NS V T

NT WA

Q WA NS

NT

Q WA NS

NT

Q NS

SA

SA

SA

V
T

V
T

V
T

24

NT WA SA

Q NS V T

NT WA

Q WA NS

NT

Q WA NS

NT

Q NS

SA

SA

SA

V
T

V
T

V
T

NT WA SA

Q WA

NT

NS
V

SA

NS
V

25

NT WA SA

Q NS V T

NT WA SA

Q NS V T WA

NT

Q NS V T WA

NT

Q NS V T

SA

SA

NT WA SA

Q NS V T WA

NT

Q NS V T

SA

NT WA SA

Q NS V T WA

NT

Q NS V T

SA

26

Peningkatan efisiensi Backtracking

General-purpose methods dapat memberikan peningkatan dengan memberikan pertanyaan : 1. Variabel apa yang harus dicari nilainya?
2. Dengan urutan seperti apa nilai harus dicoba? 3. Dapatkah kita mendeteksi kegagalan secara dini? 4. Dapatkah kita mendapat keuntungan dari jika diketahui struktur problemnya ?

27

Minimum remaining values

Minimum remaining values (MRV):


fail-first heuristic
Memilih variabel berikutnya yang memiliki paling kecil kemungkinan nilainya

Contoh : Setelah menentukan WA = Merah dan NT = Biru, maka variabel berikut yang memiliki kemungkinan paling minimal adalah variabel SA

NT
WA SA

Q WA NS V T

NT

Q WA NS V T

NT

Q WA NS V T

NT

Q NS V T

SA

SA

SA

28

Degree heuristic

Digunakan untuk menentukan variabel awal yang diberikan nilainya

Memilih variabel yang memiliki constraint tertinggi

NT WA SA

Q WA NS

NT

Q WA NS

NT

Q WA NS

NT

Q NS

SA

SA

SA

V
T

V
T

V
T

V
T

29

Least constraining value

Metoda yang digunakan untuk memilih pemberian nilai pada variabel :

Pemilihan akan menyingkirkan kemungkinan yang menyisakan sedikit kemungkinan untuk pemberian nilai pada variabel berikutnya
Memungkinkan 1 nilai untuk SA
NT WA SA Q NS V T

NT
WA

Q NS V WA

NT SA

Q NS V WA

NT SA

Q NS V

SA

T WA

NT SA

Q NS V T

Memungkinkan 0 nilai untuk SA 30

Forward Checking

Ide:

Melihat/memperhatikan kemungkinan nilai utnuk variabel yang belum diberikan nilai Proses search akan dihentikan jika ditemukan terdapat variabel yang tidak memiliki pilihan nilai
NT Q NS V T

WA SA

WA

NT

NS

SA

31

Forward Checking

NT WA SA

Q NS V T WA

NT SA

Q NS V T

WA

NT

NS

SA

32

Forward Checking

NT WA

Q
NS V T WA

NT

Q
NS V T WA

NT

Q
NS V T

SA

SA

SA

WA

NT

NS

SA

33

Forward Checking

NT WA SA

Q NS V T WA

NT SA

Q NS V T WA

NT SA

Q NS V T WA

NT SA

Q NS V T

WA

NT

NS

SA

34

Forward checking

Menyampaikan informasi dari variabel yang telah diberikan nilainya ke variabel yang belum diberi nilai Kurang dapat mengidentifikasi secara dini kegagalan
NT
Q NS V T WA SA

NT

Q NS V T WA

NT
SA

Q NS V T

WA SA

WA

NT

NS

SA

NT dan SA tidak dapat hijau kedua-duanya

35

Arc consistency

X Y bersifat consistent i

Untuk setiap nilai x dari X terdapat beberapa y dari Y yang mungkin.


NT Q NS V T WA SA NT Q NS V T WA SA NT Q NS V T

WA SA

WA

NT

NS

SA

Arc SA ke NS konsisten karena untuk setiap x dari SA terdapat nilai yang berbeda pada NS
36

Arc consistency

NT WA SA

Q NS V T WA

NT SA

Q NS V T WA

NT SA

Q NS V T

WA

NT

NS
X

SA

Arc NS ke SA tidak konsisten karena untuk nilai hijau dari NS tidak terdapat nilai berbeda dari SA Agar arc NS ke SA konsisten maka hijau dihapus

37

Arc consistency

NT WA SA

NT WA SA

NT WA SA

NS
V T

NS
V T

NS
V T

WA

NT

NS X

SA

Arc SA ke NT tidak konsisten tetapi tidak ada nilai SA yang dapat dihapus untuk menjaga konsistensi sehingga dapat disimpulkan terjadi kesalahan
38

function AC-3( csp) returns the CSP, possibly with reduced domains
inputs: csp, a binary CSP with variables {X1, X2, . . . , Xn} local variables: queue, a queue of arcs, initially all the arcs in csp while queue is not empty do (Xi, Xj )Remove-First(queue) if Remove-Inconsistent-Values(Xi, Xj ) then for each Xk in Neighbors[Xi] do add (Xk, Xi) to queue

function Remove-Inconsistent-Values(Xi, Xj) returns true i succeeds


removedfalse for each x in Domain[Xi] do if no value y in Domain[Xj] allows (x,y) to satisfy the constraint Xi Xj then delete x from Domain[Xi]; removedtrue return removed

39

You might also like