Sezgisel işlev olarak kullanıldığında Manhattan'ın mesafesi monotonik midir?


25

Kare tabanlı bir haritam var. Sadece yatay ve dikey harekete izin verilir (diyagonal değil). Hareket maliyeti her zaman 1'dir.

Manhattan mesafesini bir sezgisel olarak kullanarak, bu haritaya bir A * algoritması uyguluyorum . Bu buluşsal tutarlı mı? g(node)KAPALI setteki düğümleri kontrol etmekten kaçınabilir miyim ?

Düzenleme: Tutarlı olarak monotonik demek istiyorum.


1
Hareket maliyetiniz her karoda
aynıysa

Hey, bu çok hoş!
Emiliano

Yanıtlar:


10

Aslında sorunuzu yanıtlamak için: manhatten mesafesi, ağırlıksız bir ızgara boyunca dikey / yatay olarak hareket etmeyi kısıtladığınızda tutarlıdır (bu, wikipedia'daki tanımla kolayca gösterilebilir) . Yani evet, sizin durumunuzda kapalı setteki düğümleri tekrar kontrol etmekten kaçınabilirsiniz.

Bununla birlikte, bir kez çapraz veya herhangi bir açı hareketine izin verdiğinizde , manhatten mesafesi kabul edilemez hale gelir, çünkü diyagonal maliyetleri abartır , bu da mutlaka tutarlı olmadığı anlamına gelir.


Evet, bu tam da aradığım cevaptı. Sezgisel işlevin ne olduğunu bilmek güzel olurdu h(x) = min(manhattan(p1), manhattan(p2))(örneğin, p1 veya p2 iyi bir bitiş noktasıdır ve en yakınına ulaşmak isterim). Bu h(x)hala monoton mu?
Emiliano

1
@happy_emi: Evet, h(x, p1)ve h(x, p2)tutarlı, daha sonra min(h(x,p1), h(x,p2))da tutarlı olacaktır. Bu wikipedia tanımından göstermek kolaydır (biz olduğunu göstermek gerekir min(h(x, p1), h(x, p2)) <= distance(x,y) + min(h(y, p1), h(y, p2))tüm düğümler için xve y. Aralarında bir kenar ile Şimdi varsayalım h(x, p1)asgari olduğu; bunun kesinlikle olduğunu gösterebilir <=gerçeği olduğunu kullanılarak sağ taraf Her iki
buluşma

31

Evet, iki nokta arasındaki Manhattan mesafesi her zaman aynıdır, tıpkı aralarındaki normal mesafe gibi. Manhattan mesafesinin, iki nokta arasında uzanan bir çizginin X ve Y bileşenleri olduğunu düşünebilirsiniz.

Bu görüntü ( Wikipedia'dan ) bu durumu iyi göstermektedir:

Manhattan mesafeleri

Yeşil hat gerçek mesafedir.

Mavi , kırmızı ve sarı çizgiler aynı Manhattan mesafe (12 adet) temsil eder. Sol alt köşeden sağ alt köşeye hangi hareketlerin yukarı ve sağa çekildiğine bakılmaksızın , aynı toplam Manhattan mesafesini elde edersiniz.


2
Harika cevap: kısa, tatlı, noktaya ve güzel bir resimle.
Tom 'Blue' Piddock

1
Bu cevap yakın, ancak hatalı. Bu görüntü Manhattan mesafesinin tutarlı olmadığını (aslında, yeşil çizginin mesafe olduğunu düşünürseniz, tutarlı olmadığını gösterir ) ve düğümleri yeniden kontrol etmesi gerekmediğinin gerekçesini göstermez çünkü “Manhattan arasındaki mesafe iki nokta daima aynıdır " tutmaz (ifade aynı zamanda doğrudur h(x) = 1000, ki tutarlı değildir) . O yapabilirsiniz düğümleri yeniden denetleme önlemek, ama Manhattan mesafesi tutarlı çünkü sadece bu cevap göstermez hangi.
BlueRaja - Danny Pflughoeft

2
Bağladığın tanımla, Manhattan mesafesinin tutarlı olduğuna inanıyorum. Yeşil çizgi mesafesi farklı bir sezgisel tarama kullanıyor olacaktır. Kırmızı, Mavi ve Sarı çizgiler, iki düğüm arasındaki mesafenin aynı kaldığını gösterir (aynı sezgisel yöntemi kullanırken). Yaklaşmak, buluşsal bulguyu azaltır ve uzaklaşmak buluşsal bulguyu artırır. Bu OP'nin monotonik ihtiyacını karşılar. Grafik oluşturulurken, her "kesişme noktasında" bir düğüm varken, Manhattan mesafesi tutarlıdır. Farklı bir senaryo olsaydı (diyagonal harekete izin vermek gibi), sezgisel çözüm kötü olurdu.
MichaelHouse

2
Daha önce Manhatten Distance'ın tutarlı olduğunu söyledim ama bahsettiğiniz nedenlerden dolayı değil. Cevabınız tutarlılık göstermiyor ve yorumlarda argüman göstermiyor. "Tutarlı / monoton sezgisel", kafamı karıştırmakta gibi görünen monoton bir işlevle aynı olmayan (yukarıdaki bağlantımda verilen) kesin bir tanımlamaya sahiptir . Belirten "yaklaşmayı sezgisel bir yaklaşım azaltır ve daha uzak hareket sezgisel artırır" o örn tutarlı olduğunu göstermeye yeterli değildir. Bunu tatmin eder, ancak tutarlı değildir. 2*manhatten
BlueRaja - Danny Pflughoeft,

3
Neden yanlış olduğunu söylediğini bilmiyorum , bu cevabın eksik olduğu konusunda ısrar ediyor görünüyorsun . Cevabınızdaki kanıtlar da zayıf gözüküyor: “manhatten mesafesi tutarlıdır…”, ardından senaryonun farklı olmasının nasıl kabul edilemez olacağını izleyerek, sorunun orijinal özelliklerini tekrarlamaya devam edersiniz. . Cevap tam bir matematik kanıtı gerektiriyormuş gibi hissetmedim. Bu sorunun bunu gerektirdiğini düşünüyorsanız, lütfen cevabınıza ekleyin ve ben de oyu vereyim. Yapıcı eleştiri için teşekkürler.
MichaelHouse

6

Byte56'nin cevabını genişlettiğimde, belirli veri setinizde, Manhattan Mesafesini buluşsal işleviniz olarak kullanmanın aslında her zaman gerçek yol maliyetini her zaman geri getireceği anlamında mükemmel bir buluşsal olacağını belirtmek isterim (varsayalım ) hiçbir şey "yolları engelleyen" değil).

Ayrıca, doğru yönde (tümleşik veya dikey olarak) tüm düğümlerin aynı beklenen mesafeyi sağlayacağına (hedefe eşit derecede kısa yollar olduğundan) dikkat etmelisiniz. Öncelik sıranızın (açık küme) bağlı öncelikler söz konusu olduğunda önce en son eklenen düğümü (LIFO - İlk Giren İlk Çıkış) çıkarması gerektiğinin farkında olmalısınız. Bunu yaparak sadece en uygun yolda sonuçlanacak düğümleri inceleyeceksiniz . Eşit derecede uygun düğümleri FIFO (İlk Giren İlk Çıkar) şeklinde incelerseniz , en iyi yolun bir parçası olan tüm düğümleri etkili bir şekilde incelersiniz . Bu problem ortaya çıkar, çünkü hedef düğüm için eşit derecede iyi yollar vardır.


“(yolu tıkayan bir şey olmadığını varsayarak)” - bu oldukça büyük bir varsayım. Yolu engelleyen hiçbir şey yoksa, yol bulma algoritmasına başlamak için gerek yoktur!
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft: Bu doğru, sadece Byte56'nın resmine bakarken ortaya çıkan bir düşünce idi. Gerisi yine de doğrudur.
Thorkil Holm-Jacobsen,

4

"Sürekli" derken neyi kastettiğinizden emin değilim. Manhattan uzaklığı, alınan yoldan bağımsız olarak sabit bir ızgara üzerinde mi? Evet, Byte56'ın cevabının dediği gibi.

Bununla birlikte, örneğin, Manhattan mesafesi rotasyonlar altında değişmez. Örneğin, Manhattan mesafe ( L1-norm kökenli bir nokta arasındaki) (10,10)bir |10-0| + |10-0| = 20. Bununla birlikte, koordinatlarınızı 45 derece döndürürseniz (bu nedenle şimdi sabit noktanız kılavuzun yönlerinden biri boyunca uzanır), şimdi aynı noktanın şu anda olduğunu göreceksiniz (10sqrt(2),0), yani menşeine Manhattan'da bir mesafe vardır 10sqrt(2)~14.14.


Bunu işaret etmek için +1; OTOH Manhattan mesafe olan çok ayrı bir ızgara üzerinde 'sürekli' yapılabilir tek olanlar 90 derecelik dönüş altında değişmeyen.
Steven Stadnicki

1
İyi yakalama, ancak yatay ve dikey harekete izin verildiğinden bahsetti.
Thorkil Holm-Jacobsen

1
Asıl soru monotonik olduğu gibi tutarlıydı.
Emiliano
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.