2 डी रेसिंग गेम के लिए एआई बनाने के लिए टिप्स


10

मेरे पास 2 डी रेसिंग गेम के लिए एआई बनाने के लिए एक स्कूल प्रोजेक्ट है जिसमें यह कई अन्य एआई ( कोई टक्कर नहीं ) के साथ प्रतिस्पर्धा करेगा ।

हमें रेसिंग ट्रैक की एक काली और सफेद बिटमैप छवि दी गई है, हमें मानचित्र प्राप्त करने के बाद हमारी कार (हैंडलिंग, त्वरण, अधिकतम गति और ब्रेक) के लिए बुनियादी आँकड़े चुनने की अनुमति है। AI गेम के सर्वर से जुड़ता है और वर्तमान त्वरण और स्टीयरिंग के लिए इसे कई बार दूसरे नंबर देता है। जिस भाषा को मैंने चुना है वह है C ++, वैसे। प्रश्न हैं:

सबसे अच्छी रणनीति या एल्गोरिथ्म क्या है (क्योंकि मैं कोशिश करना और जीतना चाहता हूं)? वर्तमान में मेरे पास कुछ विचार हैं जो नेट पर पाए जाते हैं और मेरे अपने एक या दो हैं, लेकिन मैं इससे पहले कि मैं यह कोड करना शुरू करूं कि मेरा दृष्टिकोण सबसे अच्छा है। उस मामले पर क्या अच्छी किताबें हैं? मुझे किन साइटों का उल्लेख करना चाहिए?

2d  c++  ai  racing 

1
यह भौतिकी सिमुलेशन की सटीकता पर निर्भर करेगा। अगर कोई भौतिकी नहीं है, तो मैं हर समय पूरी गति से चलूंगा ... अन्यथा, मैं प्रत्येक मोड़ से पहले धीमा करना शुरू कर दूंगा और मोड़ के माध्यम से 2/3 की गति बढ़ाऊंगा।
नैट

जवाबों:


2

एक मूल ऐ सेट करें, फिर अपनी कार को संभालने के लिए एक एपीआई सेट करें। यदि आप इसे हरा सकते हैं, तो आपको एक रिकॉर्डिंग एल्गोरिथ्म सेट करना चाहिए जो तब आपके एआई को सकारात्मक रूप से सुदृढ़ कर सकता है। यह आपके AI के कार्यों को मोड़ने के लिए एक तंत्रिका नेटवर्क हो सकता है। जैसे कि एक कोने में धीरे-धीरे ब्रेक लगाना आदि।

क्या आपको अपनी परियोजना में बाहरी पुस्तकालयों का उपयोग करने की अनुमति है? यदि हां, तो मेरा सुझाव है कि आप FANN को देखें । यह एक तेज़ तंत्रिका नेटवर्क लाइब्रेरी है; आप अपने खुद के लेखन को बचाने के लिए। यदि आपको स्रोत कोड की आवश्यकता है, तो आप हमेशा इसे स्वयं लिख सकते हैं, हालांकि इसमें कुछ समय लग सकता है।


1
मुझ पर हावी हो जाता है।
ओ ० '।

2
@ लोरिस निश्चित रूप से, विशेष रूप से चूंकि यह संभवतया एक सरल स्कूल प्रोजेक्ट है जिसमें सीमित समय के लिए एक समाधान तैयार किया गया है, मुझे नहीं लगता कि पर्यवेक्षित शिक्षण इस के साथ जाने का तरीका है, सिर्फ व्यावहारिकता के लिए।
रे डे

यह स्थापित करने के लिए कठिन नहीं है, और ओपी कर रहे विषय के स्तर पर निर्भर करता है, यह दृष्टिकोण जरूरी ओवरकिल नहीं हो सकता है। यह वह है जो मैं (और किया है), इसका मज़ा, और प्रभावी परिणाम प्राप्त करने के लिए काफी सरल हो सकता है। सबसे कठिन हिस्सा यह निर्धारित कर रहा है कि प्री-प्रोसेसिंग में क्या किया जाना चाहिए ...
डिकेल्टेडकविवर

2

यदि आप AI को चलाने से पहले मानचित्र को प्रीप्रोसेस कर सकते हैं, तो बस मानचित्र के सेगमेंट के माध्यम से सर्वश्रेष्ठ रेसिंग लाइनों की गणना करें।

GameDev.net पर इस पोस्ट में कई सुझाव हैं।

ऐ बुद्धि किताबें ऐ रेसिंग के बारे में लेख की एक बहुत कुछ है। मैं निश्चित रूप से उनकी सिफारिश करूंगा, विशेष रूप से पहले एक जिसमें लेख है कि आप अपने AI के भीतर डेटा संरचना के रूप में मानचित्र का प्रतिनिधित्व कैसे कर सकते हैं।

एक अन्य विधि जो मैंने देखी है वह है सरल रीइनफोर्समेंट लर्निंग (क्यू-लर्निंग), जो संभवतया इष्टतम पथ प्राप्त करने के लिए कुछ हज़ार पुनरावृत्तियों को ले जाएगा। यह इस पत्र में वर्णित है: http://www.cs.ubc.ca/~zhijin/540report.pdf


1

एआई ड्राइविंग के लिए एक उत्कृष्ट संदर्भ यहां दिया गया है: स्वायत्त वर्णों के लिए स्टीयरिंग व्यवहार । हर किसी के संदर्भ के लिए यहां पोस्ट किया गया। आपको आरंभ करने के लिए बहुत सारी जानकारी है, लेकिन बहुत सी जानकारी भी है, इसलिए विवरणों में बहुत अधिक गड़बड़ न करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.