2011-10-18 75 views
6

द्वि-आयामी, स्थानिक सिमुलेशन में एजेंटों का ट्रैक रखने के लिए कुछ अच्छी डेटा संरचनाएं क्या हैं?स्थानिक एजेंट आधारित मॉडलिंग के लिए डेटा संरचना

मैंने क्वाड्रिस (जो मैं समझता हूं) और केडी-पेड़ (जिन्हें मैं बहुत अच्छी तरह समझ नहीं पा रहा हूं) के कुछ संदर्भ देखे हैं।

मैं ऐसा कुछ ढूंढ रहा हूं जिसके माध्यम से कोई एजेंट कुशलता से कह सकता है, "मुझे अपना स्थान पता है, और मैं जानना चाहता हूं कि कौन से एजेंट मेरे पास हैं (स्वयं के एक निश्चित त्रिज्या के भीतर)।"

उदाहरण (छद्म कोड ठीक है) की सराहना की जाएगी।

मैं जावा में काम कर रहा हूं।

उत्तर

2

मैं पाया है कुछ एक Bucket PR Quadtree कहा जाता है:

आप के लिए सबसे अच्छी बात स्रोत कोड यहाँ पर एक नज़र लेने के लिए शायद है।

+0

अपडेट: मैंने एक साधारण ग्रिड कार्यान्वयन के साथ जाने का फैसला किया। – Peter

2

ठीक है, मुझे यकीन नहीं है कि यह वास्तव में कैसे कार्यान्वित किया जाता है, लेकिन MASON toolkit एक विघटन एल्गोरिदम का उपयोग करता है जो एक हैश तालिका के एक ही "बाल्टी" में एजेंटों को एक दूसरे के करीब रखता है। यह बहुत तेज़ लुकअप के लिए बनाता है, क्योंकि प्रत्येक बाल्टी के लिए केवल कुछ बाल्टी जांचनी पड़ती है। http://code.google.com/p/mason/source/browse/trunk/mason/sim/field/continuous/Continuous2D.java?r=529