2010-05-24 16 views
31

Bazı kağıtlara D * here linkleri var, ama benim için biraz fazla matematiksel. Yeni başlayanlara yönelik D */D * Lite hakkında daha fazla bilgi var mı?D * veya D * Lite pathfinding algoritması hakkında bilgi nereden bulabilirim?

+2

D * algoritmasının bir acemi tür değildir ve bu kullanım durumu oldukça dar var. Başvurunuz için sadece A * 'a ihtiyacınız olmadığından emin misiniz? – Donnie

+2

Duvarların etrafında gezinmek için bir hedefe ihtiyacım var. Oyuncu botun önüne engeller koyabilir ve bot gerçek zamanlı olarak yeni bir yol bulabilmelidir. D *, bu gibi ortamları değiştirmek için iyidir, değil mi? – tehalynn

+1

Tamamen katılıyorum. Ne * defalarca uygulanan ve grafikler çok çeşitli ve ben de bir süre D * (abi) uygulamak isteyen oldum ettik. İnternette iki veya üç tane beyaz sayfa var, ancak henüz okunamayan matematiksel açıklamalardan faydalı bir şey elde etmeyi henüz başaramadım. – Trillian

cevap

1

Bu
http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf ile geldi ve bu
http://www.cs.cmu.edu/~maxim/docs/dlitemap_iros02.pdf

O bağlantı yardımcı olacağını umuyoruz :)
Edit: Farkettim gönderdikten sonra ben size işaret bağlantı vardı verdi bağlantılar dışarıda. Yine de bunları doğrudan Google’da buldum. Neyse, onlara biraz baktım ve o kadar karmaşık görünmüyorlar. Eğer A'yı bilirseniz * iyi de D * 'yi de anlayabilirsiniz.
Deneyimden, A * 'nın ne istediğiniz için kullanılabileceğini söyleyebilirim.

+0

Evet, onlar googling tarafından kendimi buldukları beyaz kağıtlardır. Açıklamalar dayanılmaz matematik jargonunda ve sözde kod çok daha iyi değil. A * kullanımı ile ilgili olarak, RTS oyunumda oldukça optimize edilmiş bir uygulama var, ancak bu kadar dinamik bir dünya değil. – Trillian

12

Vikipedi konuda bir makale vardır: http://en.wikipedia.org/wiki/D*

Ayrıca C D * Lite uygulaması Sven Koenig 'sayfasından edinilebilir

: http://idm-lab.org/code/dstarlite.tar Ancak C kaynak kodu daha çok daha kolay okunur aşılmaz matematik bulmak; -)

C D * Lite (++ başka uygulama) burada mevcuttur: http://code.google.com/p/dstarlite/ sözde kodu teoremleri ve ispatları okumak gerekmez (senin için zor Eh eğer

+0

+1 Kendimi aramadım, ancak burada verilen cevaplardan yola çıkarak ve wiki makalesini okuyarak, OP'nin istediği en yakın şey bu gibi görünüyor. –

9

- sahte kod yalındır güzel eğer standart algoritmalar biliyorsan) ve sen şikayet yayınlanan C ve C++ koduna karşı daha sonra başka bir şey yapmaya gitmeniz gerektiğini tahmin ediyorum :-)

Cidden, bir kaç web paragraflarında size bir üst sınıf algoritma öğretmeni beklemeyin. Bir kalem ve kağıt alın ve neler olup bittiğini kağıda yazın, çizin ve takip edin. Bir şeyi iki kez okumanız ve bir ya da iki referansı bir kaç kavramla tanımak zorunda kalabilirsiniz. Ayrıca, yazarı yanlış olduğunu ispat etmediğiniz sürece, teoremleri ve ispatları kazmaya gerek yoktur.

Daha fazla matematik - c'est la vie olmadan ileriye gidemiyorum. Birinin size yeryüzünde neyin matris inversiyon olduğunu öğretmesini istediğini, ancak vektörlerin ne olduğunu bilmediğini düşünün. İlk önce matematiksel içeriği yeterince öğrenene kadar kimse yardım edemezdi.

+6

İnternette, A * 'nın D * için hiçbiri olmadığına gerçekten çok şaşırdığım pek çok net açıklama var. Biliyorum D * karmaşıklık açısından A * 'ya atılmış bir adımdır, ama birilerinin layman için bir açıklama yazmasını bekledim. Evet, bu tembellik, biliyorum ve uygun cevaplar olmadığı için tekrar gazetelere dalacağım. Sadece matematikle dolu bir tanıtım belgesinin sezgisel bir algoritma anlayışı geliştirmenin en iyi yolu olmadığını hissediyorum. – Trillian

+4

Vektörler hakkında bilgi sahibi olmadığınızda ve A * hakkında _know_ hakkında bilgi aldığınızda D * hakkında soru sorduğunuzda, matris inversiyonları sormak arasında bir adım var. – zneak

7

Bunu söyledikten sonra, neden birkaç tane daha fazla kağıt eklemiyorsunuz, evet, matematikte de var :-) ama daha yeni şeyler almaya çalışacağım.İnsanlar genellikle zaman geçtikçe kendi çalışmalarını açıklayan daha iyi olsun, böylece odak Stentz, Likhachev ve Koenig üzerinde

+0

Daha pratik cevap için teşekkürler. Bu gazetelerin çoğunu bulamadım. Diğer cevabınızın otomatik olarak alınmasını önlemek için bu cevabı sadece ödül olarak verebilirim. Sonuçta, diğer cevabınız bir cevaptan ziyade bir düşüncedir, eğer beni sadece beyaz eşyalara dalmak için motive etsem bile, eğer bunu yapabileceğimi ispatlamak için :) – Trillian

+0

Akademik veya corp internette olmanız gerekecek PDF-s kolay yolu istiyorsanız Springer "abone" dir. Bazı yazarlar, diğer dergilerle birlikte hafifçe değiştirilmiş makaleler yayınlar, bazıları yapmaz. İşte bu yüzden arama araştırmam, ilk olarak yazarları takip etmeyi denemeli ve Springer sitesi hızlı bir şekilde taze bilgi almanın kolay yoludur. Birincisi, sadece algo için değil, yeni algo'nun D * Lite'a dayandığını belirten bir Stantz kağıdını okumak için değil, bir araştırmacının örtük bir şekilde bile itiraf etmesi için çok zor bir şey olsaydı bile satın almaya değebilir. – ZXX

3

layperson

D * için D * Lite Açıklama karga-sinekler, Start ve Goal arasındaki idealist yolu ile başlar; engelleri yalnızca (ve genellikle bitişik bir düğüme doğru hareket ederek) karşımıza geldikçe ve ele alırken işler. Yani - D * Lite, ile arasındaki herhangi bir engel hakkında hiçbir bilgiye sahip değildir, bu ideal yol boyunca hareket etmeye başlar.

Herhangi bir pathfinding uygulaması ile kutsal kazı en kısa yoldan veya en azından iyi bir yoldan (aynı zamanda burada tüm özel koşullarınızla ilgilenirken) D * Lite için hızlı bir şekilde yapmaktır. Mars Rover olarak bilinmeyen harita yapabilir)).

D * Lite'un en büyük zorluklarından biri, ulaşıldıkça ucuza engellere uyum sağlamaktır. Onları bulmak kolaydır - siz hareket ederken komşularınızın düğüm durumunu kontrol edin. Ancak, mevcut haritanın maliyet tahminlerini her düğümden geçmeden nasıl uyarlayabiliriz ki ... bu çok maliyetli olabilir mi?

LPA * maliyetleri uyarlamak için akıllı bir numara kullanmaktadır, D * Lite iyi bir kullanıma sokmuştur. Mevcut düğüm komşularına sorar: Beni en iyi tanıyor musun, kendim hakkında gerçekçi olduğumu mu düşünüyorsun? Özellikle, bu, ilk düğümden kendisine, yani geçerli düğüme gitmenin bilinen maliyeti olan g değeri hakkında sorar. Komşular kendi g numaralarına bakarlar, mevcut düğümün kendileriyle ilgili olduğu yere bakarlar ve daha sonra maliyetinin ne olması gerektiğini tahmin ederler. Bu tekliflerin asgari değeri, geçerli düğümün rhs değeri olarak ayarlanmıştır, daha sonra g değerini güncellemek için kullanılır; tahmin edilirken, komşular, dikkate yeni keşfedilen bir engel (ler) (ya da serbest boşluk) almak böyle sorumluydu cari güncellemeler grhs kullanırken, yeni engeller (veya serbest boşluklar) ile oluşturduğundan emin. Biz yönüyle gerçekçi g değerlere sahip kez

Ve tabii ki, yeni bir kısa yol görünür.

+0

D * Lite, D * 'yi tamamen gizliyor. Bu yüzden, buradakileri buraya dahil etmedim. –