2008-09-17 10 views
29

क्या हम लोगों को ए * पथदर्शी एल्गोरिदम के सरल, अनुकूलित कार्यान्वयन के कोड को प्रत्येक भाषा में पोस्ट कर सकते हैं?मैं प्रत्येक प्रोग्रामिंग भाषा के लिए आंदोलन लागत के साथ ए * पथदर्शी एल्गोरिदम को कैसे कार्यान्वित करूं?

यह ज्यादातर मजेदार है और जो स्टैक ओवरफ्लो स्वयं सक्षम है, उसके साथ खेलने के लिए ... हालांकि मुझे वास्तव में इसमें एक्शनस्क्रिप्ट 3 संस्करण प्राप्त करने में रूचि है।

लेकिन विचार यह है कि यह "प्रश्न" भविष्य में हमेशा के लिए अद्यतन किया जा रहा है, भले ही विभिन्न प्रोग्रामिंग भाषाएं बनाई गई हों!

मुझे किसी अन्य स्थान के बारे में ऑनलाइन पता नहीं है जहां आप छद्म कोड "अनुवाद" को कई (बहुत कम हर) अलग-अलग भाषा में देख सकते हैं। ऐसा लगता है कि यह एक सार्थक संसाधन है, और यह आवश्यक नहीं है कि इस साइट को किस प्रकार डिजाइन किया गया था, इसे देखने में कोई हानि नहीं है और यह देखने में कोई हानि नहीं है कि यह एक सार्थक बात है कि स्टैक ओवरफ्लो का उपयोग किया जा सकता है!

+0

यदि आप "परीक्षण" भूलभुलैया/बाधा क्षेत्र जैसे अधिक ग्राउंड नियम देते हैं तो शायद बेहतर होगा। आदर्श रूप से प्रत्येक कार्यान्वयन को एक ही मार्ग या संभावित समाधानों की एक बहुत ही सामान्य शॉर्ट-सूची मिल जाएगी! –

+1

मैं एक समुदाय विकी का सुझाव देता हूं। – strager

+0

@ रे हेस, शायद एक ही मार्ग नहीं है (क्योंकि एक ही लक्ष्य के लिए कई मार्ग हो सकते हैं), लेकिन एक ही लंबाई मार्ग। – strager

उत्तर

5

यहां एक C# implementation भाषा बनाने वाले लोगों में से एक द्वारा किया गया है।

0

एक वीबी 6 कार्यान्वयन।

http://www.gandraxa.com/pathfinding_with_a_star.xml

इसका कारण यह है कि आप प्रक्रिया के माध्यम से कदम और कैसे काम करता है एल्गोरिथ्म की अच्छी समझ प्राप्त कर सकते हैं विशेष रूप से उपयोगी है। एल्गोरिदम को दूसरी भाषा में परिवर्तित करते समय यह काफी मूल्यवान हो सकता है।

+0

यह उत्तर 404 के रूप में लिंक सड़ांध से पीड़ित है! – t0mm13b

+0

अभी भी सड़े हुए लिंक। –

+0

संपादन स्वीकार किए जाने पर फिक्स किया गया। – Pip

9

यहां एक सी ++ कार्यान्वयन है। अब तक इसका काफी परीक्षण किया गया है, और वाणिज्यिक वीडियो गेम और विभिन्न एआई परियोजनाओं में उपयोग किया जाता है।

http://code.google.com/p/a-star-algorithm-implementation/

और वहाँ एक ट्यूटोरियल है, जो मैं वास्तव में पहले लिखा है:

http://www.heyes-jones.com/astar.html

11

यहाँ एक JavaScript implementation है, source code के साथ और एक online demo मैं एक शौक/अनुसंधान परियोजना के रूप में किया था।

यह बहुत आसान है, लेकिन आप कुछ पैरा (ग्रिड आकार, # दीवारों, डीबगिंग जानकारी चालू/बंद) को बदल सकते हैं। यह आपको निरीक्षण किए गए प्रत्येक नोड के लिए गणना की गई एफ (एक्स), जी (एक्स), और एच (एक्स) मान दिखाएगा।

डेमो पृष्ठ कार्यान्वयन jQuery का उपयोग करता है।

+0

ध्यान दें कि यह jquery reliant है। – Sir

+3

डेमो jQuery पर निर्भर है, प्लगइन स्वयं नहीं है। मैंने गैर-आश्रित भाग को इंगित करने के लिए उत्तर को अद्यतन किया है और अधिक प्रमुख रूप से –

1

एक Clojure कार्यान्वयन, भारी PAIP में दिए गए एक उदाहरण पर आधारित है।

1

कार्यान्वयन नहीं, लेकिन मुझे http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html मिला जो एल्गोरिदम का विशेष रूप से स्पष्ट स्पष्टीकरण है। छद्म कोड है जो विभिन्न डेटा संरचनाओं की एक विस्तृत समीक्षा के साथ कार्यान्वित करना बहुत आसान बनाता है जिसका उपयोग खुले & बंद सेटों को लागू करने के लिए किया जा सकता है, अलग-अलग स्थितियों में लागू विभिन्न ह्युरिस्टिक्स की चर्चा, विशिष्ट व्यवहार प्राप्त करने के लिए हेरिस्टिक में संशोधन (उदाहरण के लिए सिस्टम में सीधी रेखाओं के अनुमान प्राप्त करना जो केवल आंदोलन के सीमित कोणों का समर्थन करते हैं), आम नुकसान (उदाहरण के लिए वास्तविक आंदोलन लागत के लिए एक अलग पैमाने के साथ एक ह्युरिस्टिक का उपयोग करना), और कुछ अनुकूलन (उदाहरण के लिए एक समान लागत के क्षेत्रों के साथ काम करना ग्रिड)।

0

एक अनुकूलित Java implementation ग्राफ़होपर में उपलब्ध है।

+0

लिंकी सड़ांध से पीड़ित है! 404! : डी – t0mm13b

+0

नए ग्राफ़ोपर रिपोजिटरी को इंगित करने के लिए तय किया गया है – Karussell

3

स्रोत कोड और विभिन्न प्रोग्रामिंग भाषाओं में क़ौम:

प्रत्येक भाषा के लिए डेमो के की सूची:

C++: 1 
Java: 3 
Processing: 1 
Actionscript 3 (Flash): 4 
Flex (Flash): 1 
Javascript: 6 
C#: 1 
Ruby: 1 
Prolog: 1 
Unity: 1 
Lua: 1 

Pathfinding Demo in different languages

:)

0

मैं के रूप में सी में एक * कार्यान्वित का आनंद लें सी सीखने का एक तरीका है, इसलिए मैं इसे सुंदर नहीं कर सकता, लेकिन यह काम करता है! मैंने प्रोजेक्ट यूलर # 83 को हल करने के लिए इसका इस्तेमाल किया और यह दो टेस्ट मामलों पर काम करता था।

https://github.com/PeterMitrano/A-star-Pathfinding/blob/master/problem_83.c

1

interactive tutorial के साथ Python and C++ source code। कोड सामान्य रूप से ग्राफ पर काम करने के लिए लिखा जाता है, और यह ग्रिड के लिए विशिष्ट नहीं है (जैसा कि आप वेब पर ए * के कई उदाहरणों में पाएंगे)। यह प्राथमिकता कतार के लिए बाइनरी ढेर का उपयोग करता है (पाइथन और सी ++ दोनों में उनके मानक पुस्तकालयों में बाइनरी ढेर होते हैं)। मेरे पास उस पृष्ठ पर ब्रेडथ फर्स्ट सर्च, डिजस्ट्रा का एल्गोरिदम, और ए * है। कोड काफी छोटा है (मुझे लगता है कि अधिकांश ए * नमूना कोड से छोटा)।

संबंधित मुद्दे