You are on page 1of 6

PEMBAHASAN

Untukmasalahtertentudimanamemorikomputerterbatas, algoritma A* mungkintidakmampumenemukansolusikarenasudahtidaktersedialagimemori untukmenyimpansimpul-simpulyg di bangkitkan. Algoritma IDA* dapatdugnakandalamkondisisepertiinikarena IDA* hanyahanyamembutuhka n sedikitmemori.Tetapisatukelemahan IDA* adalahbahwapencarian yang dilakukansecarainteratifakanmembutuhkanwaktu yang lama karenaakanmembangkitkansimpulberulang kali. Berlawanandengan IDA* yang hanyamengingatsatuf-limit,algoritma SMA* mengingatf-cost , darisetiapiterasisampaisejumlahsimpul yang adadidalammemori. Karenabatasanmemoridalamjumlahtertentu, makakitadapatmematasipencarianhanyasampaisimpul-simpul yang dapatdicapaidariroot sepanjangjalur yang memorinyamasihmencukupi.Kemudianmengembalikanruteterbaikdiantararut e-rute yang adadalambatasansimpultersebut.Jikakomputerhanyamampumenyimpan 100 simpul, makakita bias membatsi proses pencariansampai level 99. Algoritma SMA*(bintang). TerdapatsebuahsenaraiQueue yang digunakanuntukmemanipulasiantriansimpul yang terurutberdasarkanfcost.Disini yang dimaksuddenganfcostadalahgabunganbiayasebernarnyadanbiayaperkiraan, yang secaramatematikadinyatakansebagaif-cost=g(n) + h(n).

functionSMA*(masalah) returns solusi inputs: masalah, sebuahmasalah

localvariable: Queue, antrian nodes yang terurutberdasarkanf-cost

Queue MAKE QUEUE({MAKE SIMPUL(INITIAL-STATE[masalah])}) loopdo ifQueuekosongthen return gagal Nsimpul di Queue yang memilikif-costterkecildan level terdalam ifGOAL-TEST(n) then return suksen S NEXT-SUCCESSOR(n) If s bukangoal danlevelnyasudahmaksimumthen f(s) INFINITE else f(s)MAX(f(n),g(s)+h(s)) end ifsemuasuksesordari n sudahdibangkitkan then gantif-costpadan dengannilaif(s) yang terkecil . Gantikannilaif(s)terkecilinikesemua ancestors dari n (ayah, kakek, dansemuanyakeatas) kecualiancentoris yang memilikifcostlebihkecildarif(s)terkeciltersebut. IfsemuaSUCCESSOR(n) sudah di memori then KeluarkandariQueue (tetapitidakdihapussecarafisik di memori) If memoripenuhthen

Hapussimpulterburuk yang memilikif-costterbesardan level terdangkal (artinya, jikaterdapatlebihdarisatusimpuldenganf-costterbesar, makadipilihsimpul yang levelnyaterdangkal). Keluarkansimpulterburuktersebutdaridaftarsuksesor parent-nya. Masukan parent darisimpulterburuktersebutkeQueuejika parent tersebuttidakada di Queue End Insert s in Queue End

Padaawalnya ,Queueberisiinitial state yang memilikif-cost = h(n)karenag(n) = 0 (biayadariinitial statemenujukeinitial stateadalah 0). Selanjutnya, dilakukaniterasisampai goal ditemukanatausampaiQueuekosong.Awalnya, intial state akanterpiihsebagai n. Kemudian, satu per satu, suksesornyadibangkitkandandihitungbiayanyadilambangkandenganf(s). Ketikasemuasuksesordari n sudahdibangkitkan, makagantinilaif-costpada n dengannilaif-costterkecildarinilai-nilaif-cost yang adapadasemuasuksesornya.Penggantianinidilakukanjugadilakukanuntuksem ua ancestor-nya n (ayah, kake, danseterusnya k atas).Tetapijika ancestornya n tersebutmemilikinilaif-cost yanglebihkecildarinilaif-cost yang barupada n, makanilaif-costpada ancestor tersebuttidakperludiganti. Selanjutnyajikasemuasuksesordari n sudah di memori, makakeluarkan n dariQueuetapitidakdihapussecarafisik di memori (biarkan n tetapberada di memori).Pengeluaran n dariQueueinidilakukan agar n tidakterhapusketikamemorisudahpenuh.Karenapenghapusandilakukanpadap enghapusansimpulterburuk yang memilikif-costterbesardengan level terdangkal (danjikaterdapatlebihdarisatusimpul yang memilikif-costterbesar,

makapilih yang levelnyaterdangkal), maka n akanterhapusketikasuksesornyamemilikif-cost yang samadengannya (dimanaf-costtersebutadalah yang tebesardiantarasemuasimpul yang ada di memori). Proses berikutnyaadalahpenghapusansipulsecarafisikdarimemoriketikamemorisuda hpenuh. Simpul yang terpilihakandihapusdarimemoridanperubahanatributsudadilakukanpada parent-nya, yaitudafarsuksesor yang berisisimpulterhapus yang dihilangkan. Kemudian parent darisimpulterhapustersebutdimasukankedalamQueuejika parent tersebuttidakadadalamQueue (arinya: jika parent tidakadadalamQueueberarti parent tersebutadalah n yang dikeluarkandariQueue). Contohkasus: simpulberwarnaunguadalah goal, busurmenyatakanbiayasebenarnya (g(n)), angkasebelahkiriataukanansimpulmenyatakanf-cost()=g(n)+h(n).

A 0+12=12
10 10+5=15 8

8+5=13 16

10 20+5=25 10

10

C
10

20+0=20

16+2=18 5

H
8

20+4=24

E
30+0=30

F
30+1=31 21+2=23

20+0=24

Padacontohini, memorihanyamampumenyimpan 3 simpul.Penelusuranpohon, darilangkah 1 sampailangkah 8.

Langkahlanhkahdalammeyeledsiksnmasalahpadacontohdiatas.Misalkanmem orikomputerhanyamampumenyimpan 6 simpul.Olehkarenaitu level maksimum yang dapatdijangkauoleh SMA* adalah level 5.

Langkah 1

80

A
10 25 Langkah 2 80 84

f(A)=MAX(f(S),g(A) +h(A))=MAX(80,90)=90

B C D E

f(B)=85

30 35 10

f(C)=100

f(D)=120

f(E)=84

Langkah 3 10

A B

f(A)=MAX(f(S),g(A) +h(A))=MAX(80,90)=90 f(B)=85 f(J)=MAX(f(E),g(J) f(D)=MAX(f(E),g(D)

S 84 85(100,12

C D E JD 84 15 20 110 f(C)=100 f(D)=120

25 30 35 10

Langkah 4 10

f(A)=MAX(f(S),g(A) +h(A))=MAX(80,90)=90

10 85

f(A)=MAX(f(B),g(A) +h(A))=MAX(85,115)=115

25

B
85 100

5 30

F K

f(F)=MAX(f(B),g(F) +h(F))=MAX(85,100)=100 f(K)=MAX(f(B),g(K) +h(K))=MAX(85,105)=105

90(100,110,120 ) 10

15

f(D)=110

E
84 110(130) 20

f(J)=130

You might also like