سؤال

ولقد حصلت على وظيفة A * الاستطلاعية كبيرة جدا أن يحصل على استدعاء كثيرا ويجب أن توضع في موضوع آخر لأن خلاف ذلك سوف أجعل لعبة تلعثم. لقد جئت من خلفية جافا، وقرأت مؤخرا مناقشة حول سرعة في HashMap (أساسا ما يعادل NSDictionary) وتطبيقات مختلفة يمكنك استخدامها. أنا الغريب مدى سرعة NSDictionary وما إذا وجدت أي شخص أن يكون خيارا قابلا للتطبيق للتعامل مع الكثير من المخصصات الكائن فورية ومؤقتة، أم انها بطيئة جدا لذلك.

وحاليا أنا باستخدام NSMutableArray لالمفتوحة والمغلقة القوائم في A * خوارزمية - وأود أن يكون استبدال القائمة المغلقة مع NSMutableDictionary بسبب O (1) setObject: فوركي وremoveObject: فوركي، وخلق أيضا NSMutableDictionary أن "المرايا" القائمة المفتوحة. يتم تخزين البيانات في تحديد المسارات NSMutableArray كبير - أود أن أترك هذا كما هو بين لوصول مؤشر سريع بما فيه الكفاية (طبعا)

.

وهكذا سؤالي هو ... وهذا سيكون تحسنا ملحوظا سرعة أو ينبغي أن نشمر القوائم و / أو الخرائط الخاصة بي؟ أنا فقط لم تكن متأكدا ما NSDictionary <م> لا وأود أن أعرف.

هل كانت مفيدة؟

المحلول

إذا كنت أتساءل كيف لتحسين A*، كنت أطلب منكم أولا إذا كنت تستخدم ملحقات منصة مستقلة، مثل التكرارية تعميق A* (IDA* الملقب)، أي نوع من الكشف عن مجريات الأمور التي تستخدمها، وإذا كنت تستخدم التخزين المؤقت (الجداول تبديل وقواعد البيانات نمط). الأسئلة كنت طالبا قريبة جدا من المعدن في الوقت الحالي، لأنك تحسين أجزاء النظام التي من المحتمل أن لا عقد بعودتكم.

وإلقاء نظرة على هذه بالطبع الشرائح ( خصوصا محاضرة 10 و < وأ href = "http://www.cs.ualberta.ca/~jonathan/Courses/657/Notes/11.Evaluations.pdf" يختلط = "نوفولو noreferrer"> محاضرة 11 )

نصائح أخرى

وبالتأكيد أنه يحدث فرقا - أنا غيرت مؤخرا تطبيق ساذج من A * استخدام NSArray للقوائم وadjacents لNSDictionary (شيء في القائمة تكرار لمعرفة ...؟) (في القائمة objectForKey؟!) وزيادة الأداء من غير المقبول أن مقبولة مع عدم الكثير من العمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top