Professional Documents
Culture Documents
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).
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
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
S 84 85(100,12
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
90(100,110,120 ) 10
15
f(D)=110
E
84 110(130) 20
f(J)=130