Saat menggunakan A * (atau algoritma pencarian jalur terbaik lainnya), kami mengatakan bahwa heuristik yang digunakan harus dapat diterima , yaitu, ia tidak boleh melebih-lebihkan panjang jalur solusi aktual (atau bergerak).
Bagaimana heuristik yang dapat diterima memastikan solusi yang optimal? Saya lebih suka mencari penjelasan intuitif.
Jika mau, Anda bisa menjelaskan menggunakan heuristik jarak 8-puzzle di Manhattan .
Jawaban:
Sementara jawaban Anton benar-benar sempurna, izinkan saya mencoba memberikan jawaban alternatif: diterima berarti bahwa heuristik tidak melebih-lebihkan upaya untuk mencapai tujuan, yaitu, untuk semua di sebutkan spasi (dalam 8-puzzle, ini berarti hanya untuk permutasi dari ubin dan tujuan yang sedang Anda pertimbangkan) di mana adalah biaya optimal untuk mencapai target.n h ∗ ( n )h ( n ) ≤ h∗( n ) n h∗( n )
Saya pikir jawaban paling logis untuk melihat mengapa memberikan solusi optimal jika dapat diterima adalah karena itu mengurutkan semua node dalam OPEN dalam urutan menaik dari dan, juga, karena itu tidak berhenti ketika menghasilkan tujuan tetapi ketika mengembangkannya: h ( n ) f ( n ) = g ( n ) + h ( n )SEBUAH∗ h ( n ) f( n ) = g( n ) + h ( n )
Dan ini, pada dasarnya, semua yang Anda akan temukan dalam bukti asli oleh Nilsson et al.
Semoga ini membantu,
sumber
Jika fungsi heuristik tidak dapat diterima, maka kita dapat memiliki estimasi yang lebih besar dari biaya jalur aktual dari beberapa node ke node tujuan. Jika estimasi biaya jalur yang lebih tinggi ini berada pada jalur biaya terendah (yang kami cari), algoritme tidak akan menjelajahinya dan mungkin menemukan jalur lain (bukan biaya terendah) ke sasaran.
Lihatlah contoh sederhana ini.
Biarkan heuristik menjadi
sumber