Anda di halaman 1dari 4

Iterative Deepening A* (IDA*)

IDDFS menggabungkan ruang-efisiensi depth-first search dan kelengkapan breadth-first


pencari (ketika faktor percabangan terbatas). Hal ini optimal ketika biaya jalan adalah
fungsi non-penurunan kedalaman node.
Iterative Deepening A* (IDA*) adalah varian dari iterative deepening pencarian depthfirst search yang meminjam ide untuk menggunakan fungsi heuristik untuk
mengevaluasi biaya yang tersisa untuk sampai ke tujuan dari algoritma pencarian
A*. Karena perdasarkan iterative deepening depth-first search, penggunaan memori
lebih rendah daripada di A*, tapi tidak seperti biasa iterative deepening depth-first
search, berkonsentrasi pada eksplorasi node yang paling menjanjikan dan dengan
demikian tidak pergi ke kedalaman yang sama mana-mana di pohon pencarian. Tidak
seperti A *, IDA * tidak menggunakan pemrograman dinamis dan oleh karena itu sering
berakhir menjelajahi node yang sama berkali-kali.
Sejauh ini, tidak ada metode yang dibahas telah ideal; satu-satunya yang menjamin
bahwa jalan akan ditemukan memerlukan ruang eksponensial. Salah satu cara untuk
menggabungkan efisiensi ruang pencarian mendalam-pertama dengan optimalitas
metode luas-pertama adalah dengan menggunakan pendalaman berulang. Idenya
adalah untuk menghitung ulang elemen perbatasan daripada menyimpannya. Setiap
recomputation bisa menjadi pencarian mendalam-pertama, yang dengan demikian
menggunakan ruang kurang.
Pertimbangkan membuat pencarian luas-pertama ke pencarian pendalaman berulang.
Hal ini dilakukan dengan memiliki pencari depth-first, yang hanya mencari dengan
kedalaman terbatas. Hal pertama dapat melakukan pencarian mendalam-pertama yang
mendalam 1 dengan membangun jalur panjang 1 dengan cara depth-first. Kemudian
dapat membangun jalan ke kedalaman 2, maka kedalaman 3, dan seterusnya. Hal ini
dapat membuang semua perhitungan sebelumnya setiap kali dan mulai lagi. Akhirnya
akan menemukan solusi jika ada, dan, seperti yang pencacahan jalan dalam rangka,
jalan dengan busur paling sedikit akan selalu ditemukan pertama.
Ketika menerapkan pencarian memperdalam berulang, Anda harus membedakan
antara kegagalan karena kedalaman terikat dicapai dan kegagalan yang tidak
melibatkan mencapai kedalaman terikat.

Dalam kasus pertama, pencarian harus dicoba dengan yang lebih besar kedalaman
terikat. Dalam kasus kedua, itu adalah buang-buang waktu untuk mencoba lagi dengan
lebih mendalam terikat, karena tidak ada jalan ada tidak peduli apa kedalaman. Kami
mengatakan bahwa kegagalan karena mencapai kedalaman terikat gagal wajar, dan
kegagalan tanpa mencapai kedalaman terikat gagal secara alami.
Sementara pencarian mendalam-pertama pendalaman berulang standar menggunakan
kedalaman pencari sebagai cutoff untuk setiap iterasi, IDA * menggunakan f lebih
informatif (n) = g (n) + h (n) di mana g (n) adalah biaya untuk perjalanan dari akar ke
simpul n dan h (n) adalah perkiraan heuristik dari biaya untuk perjalanan dari n untuk
solusi.
Kode Pemograman:

Perbandingan dengan algoritma lain:


Pencarian A * salah satu yang terbaik untuk tujuan umum algoritma pencarian
graph ketika ada cara untuk memperkirakan jarak ke tujuan. IDA* sedikit lebih
lambat dibandingkan A* (ini mengeksplorasi sama node beberapa kali karena
tidak ingat kerja sebelumnya) tetapi bermanfaat bila masalahnya adalah memori
dibatasi. Pencarian A* membuat antrian besar node yang belum dijelajahi yang
dapat dengan cepat mengisi memori. Karena IDA * tidak ingat semua simpul
kecuali orang-orang di jalan saat ini memiliki profil memori sangat kecil.

Masalah yang jelas dengan iterative deepening adalah perhitungan terbuang


yang terjadi pada setiap langkah. Bagaimanapun, mungkin tidak seburuk yang
satu mungkin berpikir, terutama jika faktor percabangan tinggi. Pertimbangan
waktu berjalan dari algoritma.

Source:
http://www.cse.sc.edu/~mgv/csce580f09/gradPres/korf_IDAStar_1985.pdf
http://en.wikipedia.org/wiki/Artificial_Intelligence_(journal)
http://dx.doi.org/10.1016%2F0004-3702%2885%2990084-0
http://artint.info/html/ArtInt_62.html

Anda mungkin juga menyukai