Kabul edilebilir bir buluşsal yöntem en uygun çözümü nasıl sağlar?


16

A * (veya başka herhangi bir en iyi yol bulma algoritması) kullanırken, kullanılan buluşsal yöntemin kabul edilebilir olması gerektiğini , yani gerçek çözüm yolunun uzunluğunu (veya hareketlerini) fazla abartmaması gerektiğini söylüyoruz .

Kabul edilebilir bir buluşsal yöntem en uygun çözümü nasıl sağlar? Tercihen sezgisel bir açıklama arıyorum.

İsterseniz 8 bulmacanın Manhattan mesafe buluşsal yöntemini kullanarak açıklayabilirsiniz .


2
@Ashwin Sezgisel olarak, algoritma uzunluğunda bir yol bulduğunda , muhtemelen en fazla uzunluğunda olabilecek diğer tüm yolları denemiştir . Bu yüzden sezgisel işleviniz asla hedefin maliyetini abartmamalıdır . Fazla tahmin edebilecek sezgisel bir işlev yaparak kendiniz deneyin. kkk
GD GD

Yanıtlar:


7

Anton'un cevabı kesinlikle mükemmel olsa da, alternatif bir cevap vermeye çalışmama izin verin: kabul edilebilir olmak, sezgisel olanın hedefe ulaşma çabasını abartmaması anlamına gelir, yani, devlet alanındaki tüm n için (8-bulmacada, bu sadece karoların herhangi bir permütasyonu ve şu anda düşündüğünüz hedef için anlamına gelir) burada h ( n ) hedefe ulaşmak için en uygun maliyettir.h(n)h*(n)nh*(n)

Ben en mantıklı cevabı neden görmek düşünmek eğer optimum çözümler sunar h ( n ) bunun artan düzende AÇIK bütün düğümlerin sıralar becauase kabul mesafesindedir f ( n ) = g ( n ) + h ( n ) da ve , çünkü hedefi oluştururken değil, hedefi genişletirken durur:bir*h(n)f(n)=g(n)+h(n)

  1. Düğümler 'ye göre artan sırada genişletildiğinden, başka hiçbir düğümün mevcut düğümden daha ümit verici olmadığını bilirsiniz. Unutmayın: h ( n )f(n)h(n) kabul edilebilir, böylece en düşük değerine sahip olmak, OPEN'deki diğer düğümlerin sahip olmadığı daha ucuz bir yolla hedefe ulaşma fırsatı olduğu anlamına gelir. Ve bunun tersini, yani geçerli düğümü genişleterek kanıtlayamadıkça bu doğrudur.f(n)
  2. Yana o (bunu oluştururken durağı oppossed gibi) (yukarıdaki ilk noktadan) eminiz daha ucuz bir yol boyunca başka hiçbir düğüm uçları buna o gol düğümünü ilerler sadece durur.bir*

Ve bu, esasen, Nilsson ve ark.

Bu yardımcı olur umarım,


3
Teşekkürler. Yardımcı oldu. Nilsson ve ark. Kim bu? Ve kanıtı nerede bulabilirim?
Ashwin

1
@Ashwin Nils J. Nilsson (1982) tarafından yazılan " Yapay Zekanın Prensipleri " (yaklaşık sayfa 80) kitabına bakınız .
nbro

12

Sezgisel işlev kabul edilebilir değilse, bazı düğümlerden hedef düğüme gerçek yol maliyetinden daha büyük bir tahmin yapabiliriz. Bu daha yüksek yol maliyet tahmini (aradığımız) en düşük maliyet yolundaysa, algoritma bunu araştırmaz ve hedefe giden başka bir (en az maliyet değil) yol bulabilir.

Bu basit örneğe bakın.

resim açıklamasını buraya girin

Let ve G, ayrı ayrı olacak bir başlangıç ve hedef düğüm. Let h ( K ) düğümü ile ilgili yolun uzunluğunun bir tahmin olarak N için G , N grafikte. Ayrıca, izin c ( N , X, i ) olduğu aşama maliyet fonksiyonu düğümünden N komşusuna X i , N ve i = 1 .. m , m,AGh(N)NGNc(N,Xi)NXiNi=1..mm komşularının sayısıdır ile komşularından biri ). (yani, düğüm N arasındaki kenarın maliyetini döndüren bir işlevNN

Buluşsal yöntemler olsun

  • h(B)=3

  • h(C)=4

Bu sezgisel tarama işlevi kabul edilemez, çünkü h ( C ) = 4 > c ( C , G ) = 2H

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

Eğer algoritmaA düğümü gelen başlangıçta başlar , bir sonraki düğüm seçecektir B genişlemesi için ve, bundan sonra, bu düğüm ulaşacak G oradan. Ve yol olacaktır bir B G maliyetle 4 yerine, bir G maliyetle 3 . Sezgisel işlev kabul edilebilir olsaydı, bu olmazdı.ABGABG4ACG3


1
Tamam. Ancak kabul edilebilir bir sezgisel yöntem en uygun çözümü nasıl sağlar?
Ashwin

- h (b) <h (c) 'nin hem h (b) hem de h (c) kabul edilebilir olduğu, ancak gerçek_cost (b)> actual_cost (c) doğru mu? Dolayısıyla b, gerçekte c'nin en iyi yolu vereceği bir sonraki yol olarak seçilecektir.
Ashwin

1. yorum için: kabul edilebilir sezgisel tarama en kısa yolu bulmanızı sağlar . Sezgisel yöntem tutarlıysa çözümün kendisi en uygunudur .
Anton

2. yorum için: buluşsal yöntem kabul edilebilirse, bir sonraki düğümün genişlemesi için A-> B seçilebilir, ancak bundan sonra A *, A-> B-> G'yi değil A-> C'yi seçer. Ve sonunda A-> C-> G ile sonuçlanacak.
Anton

1
Çünkü A * böyle çalışır. Düğümü, o düğüme en az toplam mesafe + o düğümden sezgisel tahmin ile genişletir. d (A, G) + h (G) = 4 + 0 = 4 ve d (A, C) + h (C) = 1 + bir şey <= 2 (çünkü kabul edilebilir). Yani C daha düşük toplamı kullanır ve A * onu seçer. Aynı şekilde G'yi genişletip en az yolu bulacaktır.
Anton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.