algoritma runut-balik

31
7/26/2019 Algoritma Runut-balik http://slidepdf.com/reader/full/algoritma-runut-balik 1/31 Algoritma Runut-balik  (Backtracking ) Bagian 1

Upload: rizkenadya

Post on 02-Mar-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 1/31

Algoritma Runut-balik  

(Backtracking)

Bagian 1

Page 2: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 2/31

Pendahuluan

• Runut-balik (backtracking) adalahalgoritma yang berbasis pada DFSuntuk mencari solusi persoalan

secara lebih mangkus.

• Runut-balik yang merupakanperbaikan dari algoritma brute-force

secara sistematis mencari solusipersoalan di antara semuakemungkinan solusi yang ada.

Page 3: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 3/31

• Dengan metode runut-balik kita tidak perlumemeriksa semua kemungkinan solusi yang

ada. !anya pencarian yang mengarah kesolusi sa"a yang selalu dipertimbangkan.#kibatnya $aktu pencarian dapat dihemat.

• Saat ini algoritma runut-balik banyakditerapkan untuk program games (sepertipermainan tic-tac-toe menemukan "alan

keluar dalam sebuah labirin catur dll) danmasalah-masalah pada bidang kecerdasanbuatan (articial intelligence).

Page 4: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 4/31

Properti Umum MetodeRunut-balik 

1. Solusi persoalan.

• Solusi dinyatakan sebagai %ektor

dengan n-tuple& X  ' ( x 1 x (  x n)  x i ∈ Si .

• *ungkin sa"a S1 ' S( ' ' Sn.• +ontoh& Si ' , 1  x i ' atau 1

Page 5: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 5/31

. Fungsi pembangkit nilai x k 

Dinyatakan sebagai&T (k )

T (k ) membangkitkan nilai untuk x k 

yang merupakan komponen %ektorsolusi.

Page 6: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 6/31

/. Fungsi pembatas (pada beberapa persoalan0ungsi ini dinamakan 0ungsi kriteria)

• Dinyatakan sebagai

  B( x 1 x   x k )

• B bernilai true "ika ( x 1 x   x k ) mengarah

ke solusi. ika true maka pembangkitannilai untuk x k 21 dilan"utkan tetapi "ika false

maka ( x 1 x   x k ) dibuang dan tidak

dipertimbangkan lagi dalam pencariansolusi.

Page 7: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 7/31

Pengorganisasian Solusi

• Semua kemungkinan solusi daripersoalan disebut ruang solusi (solution space).

•  ika x i ∈ Si, maka S1 × S ×  × Sn 

disebut ruang solusi.

•  umlah anggota di dalam ruang solusiadalah 3 S13 ⋅ 3 S3 ⋅  ⋅ 3 Sn 3.

Page 8: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 8/31

•  4in"au Knapsack  51 untuk n ' /.

• Solusi persoalan dinyatakan sebagai%ektor ( x 1 x  x /) dengan x i ∈ ,1.

Ruang solusinya adalah

,1 × ,1 × ,1 ' ,( )

( 1 ) ( 1) (1 ) (1 1 )(1 1)

( 1 1) (1 1 1).

Page 9: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 9/31

• Pada Knapsack  51 dengan n ' /terdapat n ' / ' 6 kemungkinan

solusi yaitu& 

( ) ( 1 ) ( 1)

(1 ) (1 1 ) (1 1)( 1 1) dan (1 1 1).

• Penyelesaian secara exhaustive search adalah dengan mengu"i setiapkemungkinan solusi.

Page 10: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 10/31

• Ruang solusi diorganisasikan ke dalamstruktur pohon.

•  4iap simpul pohon menyatakan status(state) persoalan sedangkan sisi (cabang)dilabeli dengan nilai-nilai x i.

• 7intasan dari akar ke daun menyatakansolusi yang mungkin.

• Seluruh lintasan dari akar ke daunmembentuk ruang solusi. Pengorganisasianpohon ruang solusi diacu sebagai pohonruang status (state space tree).

Page 11: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 11/31

 4in"au persoalan Knapsack  15 untuk n ' /.

Ruang solusinya& 

Page 12: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 12/31

Prinsip Pencarian Solusi denganMetode Runut-balik 

• Solusi dicari dengan membentuklintasan dari akar ke daun. #turanpembentukan yang dipakai adalah

mengikuti aturan pencarianmendalam (DFS). Simpul-simpulyang sudah dilahirkan dinamakan

simpul hidup (live node). Simpulhidup yang sedang diperluasdinamakan simpul-E (Expand-node).

Page 13: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 13/31

•  4iap kali simpul-8 diperluas lintasan

yang dibangun olehnya bertambahpan"ang. ika lintasan yang sedangdibentuk tidak mengarah ke solusimaka simpul-8 tersebut 9dibunuh:

sehingga men"adi simpul mati (dead node). Fungsi yang digunakanuntuk membunuh simpul-8 adalahdengan menerapkan fungsi

pembatas (bounding function).Simpul yang sudah mati tidak akanpernah diperluas lagi.

Page 14: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 14/31

•  ika pembentukan lintasan berakhir

dengan simpul mati maka prosespencarian diteruskan denganmembangkitkan simpul anak yanglainnya. Bila tidak ada lagi simpul

anak yang dapat dibangkitkanmaka pencarian solusi dilan"utkandengan melakukan runut-balik ke

simpul hidup terdekat (simpulorangtua). Selan"utnya simpul inimen"adi simpul-8 yang baru.

Page 15: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 15/31

• Pencarian dihentikan bila kita telahmenemukan solusi atau tidak adalagi simpul hidup untuk runut-balik.

Page 16: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 16/31

•  4in"au persoalan Knapsack  51 denganinstansiasi&

n ' /

(1 ( /) ' (/; / ;)

( p1 p( p/) ' (< ; ;)

! ' /

• Solusi dinyatakan sebagai X  ' ( x 1 x ( x /)

 x i ∈ , 1.

• Fungsi pembatas&

Page 17: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 17/31

Pohon dinamis yang dibentuk selama pencarianuntuk persoalan Knapsack  51 dengan n ' /! ' /,  ' (/; / ;) dan p ' (< ; ;)

1

2 9

1 01 3

1 4 1 5

x 1  = 1   x 

1  = 0

x 2  = 1   x 

2  = 0

x 3  = 1   x 

3  = 0

B

B

Page 18: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 18/31

Penomoran ulang simpul-simpul sesuaiurutan pembangkitannya

Solusi optimumnya adalah  X  = (0, 0, 1) dan F  = 50.

Page 19: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 19/31

Skema Umum Algoritma Runut-Balik 

(ersi rekursif)

Page 20: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 20/31

Skema Umum Algoritma Runut-Balik 

(ersi iteratif)

Page 21: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 21/31

• Setiap simpul dalam pohon ruang statusberasosiasi dengan sebuah pemanggilan

rekursi0.

•  ika "umlah simpul dalam pohon ruang

status adalah n atau n= maka untukkasus terburuk algoritma runut-balikmembutuhkan $aktu dalam "( p(n)n)atau "(#(n)n$) dengan p(n) dan #(n)

adalah polinom dera"at n yangmenyatakan $aktu komputasi setiapsimpul.

Page 22: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 22/31

Mencari !alan keluar di dalamlabirin (Maze Problem)" 

Page 23: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 23/31

Penyelesaian dengan bactracking&

• Bagi lintasan men"adi sederetanlangkah. Sebuah langkah terdiri daripergerakan satu unit sel pada arah

tertentu.

• #rah yang mungkin& ke atas (up) keba$ah (don) ke kiri (left ) ke kanan(right ).

Page 24: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 24/31

>aris besar algoritma runut-baliknya&

Page 25: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 25/31

• Bagaimana mengetahui langkah yang

mana yang perlu di"e"aki kembali?

• #da dua solusi untuk masalah ini&

pertama simpan semua langkah yangpernah dilakukan atau kedua gunakanrekursi (yang secara implisitmenyimpan semua langkah).

• Rekursi adalah solusi yang lebihmudah.

Page 26: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 26/31

Page 27: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 27/31

Contoh runut-ali! pada s"uah lairin. #unut-ali! dip"rlihat!an d"n$an

$aris putus-putus.

Page 28: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 28/31

+ontoh lain&

Page 29: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 29/31

Page 30: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 30/31

@elebihan Backtracking &

- Dibandingkan dengan pencarian

lainnya ini lebih cepat "ika ditemukansolusi karena tidak mengu"inyasemua artinya hanya memilih yangbenar tanpa mengulangnya.

Page 31: Algoritma Runut-balik

7/26/2019 Algoritma Runut-balik

http://slidepdf.com/reader/full/algoritma-runut-balik 31/31

 48RA*# @#SA!