Bagaimana heuristik yang dapat diterima memastikan solusi yang optimal?


16

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 .


2
@Ashwin Secara intuitif karena ketika algoritma menemukan jalur dengan panjang , ia telah mencoba setiap jalur lain yang mungkin panjangnya paling banyak dari . Itu sebabnya fungsi heuristik Anda tidak boleh melebih - lebihkan biaya untuk tujuan. Cobalah sendiri dengan membuat fungsi heuristik yang mungkin melebih-lebihkan. kkk
Pål GD

Jawaban:


7

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)nh(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 )SEBUAHh(n)f(n)=g(n)+h(n)

  1. Karena node diperluas dalam urutan Anda tahu bahwa tidak ada node lain yang lebih menjanjikan daripada yang saat ini. Ingat: dapat diterima sehingga memiliki terendah berarti ia memiliki kesempatan untuk mencapai tujuan melalui jalur yang lebih murah yang tidak dimiliki oleh node lain dalam OPEN. Dan ini benar kecuali Anda dapat membuktikan sebaliknya, yaitu dengan memperluas node saat ini.h ( n ) f ( n )f(n)h(n)f(n)
  2. Karena berhenti hanya ketika ia melanjutkan untuk memperluas node tujuan (seperti yang berlawanan berhenti ketika membuatnya), Anda yakin (dari titik pertama di atas) bahwa tidak ada simpul lain yang memimpin melalui jalur yang lebih murah untuk itu.SEBUAH

Dan ini, pada dasarnya, semua yang Anda akan temukan dalam bukti asli oleh Nilsson et al.

Semoga ini membantu,


3
Terima kasih. Itu membantu. Anda merujuk pada beberapa bukti oleh Nilsson et al. Siapa itu? Dan di mana saya dapat menemukan buktinya?
Ashwin

1
@Ashwin Lihat buku " Principles of Artificial Intelligence " (sekitar halaman 80) oleh Nils J. Nilsson (1982).
nbro

11

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.

masukkan deskripsi gambar di sini

SEBUAHGh(N)NGNc(N,Xsaya)NXsayaNsaya=1 ..mmNN

Biarkan heuristik menjadi

  • h(B)=3

  • h(C)=4

H

h(C)=4>c(C,G)=2

SEBUAHSEBUAHBGSEBUAHBG4SEBUAHCG3


1
Baik. Tetapi bagaimana heuristik yang dapat diterima memastikan solusi yang optimal?
Ashwin

Dapat terjadi bahwa - h (b) <h (c) dengan h (b) dan h (c) diterima, tetapi actual_cost (b)> actual_cost (c) benar? Jadi b akan dipilih sebagai jalan berikutnya di mana seperti dalam kenyataan c akan memberikan jalan terbaik.
Ashwin

Untuk komentar pertama: heuristik yang dapat diterima memastikan untuk menemukan jalur terpendek. Solusinya sendiri optimal jika heuristik konsisten .
Anton

Untuk komentar ke-2: jika heuristik diterima A-> B dapat dipilih untuk node berikutnya untuk diperluas, tetapi setelah itu A * akan memilih A-> C dan bukan A-> B-> G. Dan pada akhirnya akan berakhir dengan A-> C-> G.
Anton

1
Karena A * berfungsi seperti ini. Itu memperluas node dengan jumlah setidaknya jarak ke node + estimasi heuristik dari node itu. d (A, G) + h (G) = 4 + 0 = 4 dan d (A, C) + h (C) = 1 + sesuatu <= 2 (karena dapat diterima). Jadi C memiliki jumlah yang lebih rendah dan A * akan memilihnya. Cara yang sama akan memperluas G dan menemukan jalan paling sedikit.
Anton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.