রিয়েল টাইম ডায়নামিক পাথফাইন্ডিং?


19

আমি বর্তমানে কিছু প্যাথফাইন্ডিং গবেষণা করছি এবং আমার সিমুলেশনটি নিম্নলিখিত: আমার একটি 3 ডি দৃশ্য রয়েছে যার একটি সূচনা এবং শেষ পয়েন্ট উপস্থাপিত হয়েছে, আমি পথনির্দেশক সাহায্যে নেভিগেশনাল মেস, ওয়েপয়েন্টস এবং বহুভুজ তৈরি করতে সক্ষম।

আমি একটি এ * অ্যালগরিদম এবং এর কয়েকটি বৈকল্পিক চেষ্টা করেছি এবং সেগুলি পুরোপুরি কাজ করে। তবে, এখন আমি 'ডায়নামিক' প্যাথফাইন্ডিংয়ের প্রতি আরও আগ্রহী। উদাহরণস্বরূপ, বিন্দু A থেকে পয়েন্ট বি পর্যন্ত কোনও পথ সন্ধান করার সময়, যদি হঠাৎ কোনও নতুন বাধা উপস্থিত হয়, আমি চাই আমার অ্যালগরিদম অবিলম্বে কোনও পথ পুনরায় পরিকল্পনা করতে সক্ষম হবে এবং আবার স্ক্র্যাচ থেকে অনুসন্ধান শুরু না করে।

আমি ডি * অ্যালগরিদমের উপর কিছু পাঠ করেছি এবং ভাবছিলাম যে এটি আমার প্রয়োজনের জন্য উপযুক্ত কিনা বা এটি ওভারকিলের মতো বলে মনে হচ্ছে।

সুতরাং আমার প্রশ্নগুলি মূলত: রিয়েল টাইম ডায়নামিক পাথফাইন্ডিংয়ের জন্য কোন অ্যালগরিদম সেরা হবে? বা এর পরিবর্তে আমি কোন কৌশলগুলির সংমিশ্রণটি ব্যবহার করতে পারি?


আমি নিশ্চিত তারা যা ব্যবহার অ্যালগরিদম নই তাই এই একটি উত্তর নয়, কিন্তু আমি কল্পনা এই আপনি অনুকরণ করার চেষ্টা করছেন হল: ইউটিউব ভিডিও
MichaelHouse

এ * বাড়ানোর বিষয়ে কী? আপনি যা চান সেটি দিয়ে এর উন্মুক্ত / বদ্ধ সেটগুলির নোডগুলিতে কী সঞ্চিত রয়েছে তা বাড়ানো এবং এটি বিবেচনা করার জন্য এ * প্রসারিত করুন।
ব্যবহারকারী 712092

আমি আপনার মতো উত্তরটির সন্ধান করছিলাম এবং আমি এইচপিএ * সম্পর্কে একটি নিবন্ধ পেয়েছি এবং এটি ভিডিও গেমের সাথে সম্পর্কিত। আমি এখনও নিবন্ধটি খুঁজছি এবং সম্ভবত এটি বাস্তবায়ন করতে যাচ্ছি। এখন পর্যন্ত এটি আমার কাছে পারফরম্যান্স উন্নত করার জন্য অর্থবোধ করে এবং এটি স্থিতিশীল এবং গতিশীল উভয় পরিবেশে ব্যবহার করা যেতে পারে। এখানে নিবন্ধটি রয়েছে
নেলসনপঞ্চ

উত্তর:


19

ডি * বেশ জড়িত - আমি এটি প্রয়োগ করার চেষ্টা করার পরামর্শ দিচ্ছি না। এমনকি যখন প্রকল্পগুলি ভাল অর্থায়নে পরিচালিত হয় এবং স্মার্ট / অভিজ্ঞ ব্যক্তিদের দ্বারা বিকাশ করা হয় তখনও ডি * লাইট ব্যবহার করা হয়, কারণ ড * সঠিক পেতে ব্যথা হয়।

আপনি এই উপস্থাপনাটিতে আগ্রহী হতে পারেন, যার মধ্যে বাম 4 মৃতের পাথফাইন্ডিংয়ের আলোচনা অন্তর্ভুক্ত রয়েছে:

http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf

একটি পন্থা হ'ল এজেন্টের জন্য সাধারণ পথ পাওয়ার জন্য মোটা স্তরের A * অনুসন্ধান ব্যবহার করা এবং তারপরে একটি এজেন্টের স্থানীয় পরিবেশের জন্য সূক্ষ্ম বিশদ স্তরের A * অনুসন্ধান করা। এইভাবে, আপনি এই অঞ্চলটি পরিবর্তিত হলে কোর্সের বিশদটি একটি * অনুসন্ধানের সাথে পুনরায় সংশোধন করতে পারেন এবং তারপরে দ্রুত পরিবেশের একটি ছোট অংশের জন্য অনুসন্ধান * সূক্ষ্ম বিশদটি পুনরুদ্ধার করতে পারেন *। এটি নিখুঁত নয়। এটি যতক্ষণ না আপনার বাধাগুলি একাধিক কোর্সের বিশদ গ্রাফ নোডগুলি ব্লক করতে না পারে ততক্ষণ কাজ করে যা বেশিরভাগ গেমের জন্যই ঠিক fine আপনার যদি 100 টিরও কম এজেন্ট থাকে তবে আমি এটি প্রস্তাব করি recommend

আপনি যদি কয়েকশ, বা হাজারো এজেন্টকে সমর্থন করতে চান তবে আপনি ক্রমাগত ভিড়ের মতো কিছু বাস্তবায়ন করতে পারেন। এই গবেষণাটি দেখুন: http://grail.cs.washington.edu/projects/crowd-flows/ এটি একটি খাঁটি সিপিইউ ভিত্তিক পদ্ধতি নিয়ে আলোচনা করে যা একটি গতিশীল পরিবেশে হাজার হাজার অভিনেতাকে সমর্থন করতে পারে।

আপনি যদি কয়েক হাজার, বা কয়েকশো এজেন্টকে সমর্থন করতে চান তবে আপনি জিপিইউ সহায়তায় ধারাবাহিক ভিড়ের মতো কিছু বাস্তবায়ন করতে পারেন। সম্পর্কিত গবেষণার জন্য এখানে দেখুন: https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/misc/sigographic_asia_08/GPUCrowdSimulation_SLIDES.pdf

ক্রিয়াকলাপে ক্রমাগত ভিড় দেখানো একটি ভিডিও এখানে রয়েছে: http://www.youtube.com/watch?v=lGOvYyJ6r1c (একটি শহর ঘুরে বেড়ানো শত শত লোককে প্রভাবিত গাড়ি এবং স্টপলাইটের মতো বড় গতিশীল বাধাগুলি দেখতে 4:10 এ যান))


লিঙ্কগুলির জন্য ধন্যবাদ। ডি * লাইট যা পড়ছিলাম তা থেকে ঠিক মনে হয়
আন্ড্রেই

9

আপনি কি সাধারণ স্টিয়ারিং আচরণগুলি দেখেছেন?

http://www.red3d.com/cwr/steer/

স্থানীয় বাধা এড়ানোর জন্য আপনি এগুলিকে আপনার এ * পথটি থেকে বিচ্যুত করতে ব্যবহার করতে পারেন এবং আপনার কাজটি শেষ হয়ে যাওয়ার পরে আপনার পথে ফিরে যেতে পারেন।

এটি একাধিক আচরণ একত্রিত করা মোটামুটি সহজ।


+1 টি। আমি কেন নিশ্চিত হলাম না কেন তা হ্রাস পেয়েছে। যদিও এটি সহজ, এবং সম্ভবত প্রশ্নকর্তা যে উত্তরটি খুঁজছিলেন তা না হলেও, আমি মনে করি এটি অনন্য বিষয় এবং আমি এটি দরকারী বলে মনে করেছি :)
ওলহভস্কি

1
আমি আমাদের সর্বশেষ গেমটিতে এই স্টিয়ারিং আচরণটি পড়েছি এবং প্রয়োগ করেছি। এখন আমরা এটি আবার অন্য পদ্ধতির সাথে প্রতিস্থাপন করতে যাচ্ছি। আমি মনে করি এটি পূর্ববর্তী সর্বোত্তম পথগুলির সাথে একসাথে ভালভাবে কাজ করে না। একাধিক আচরণের "সংমিশ্রণ" সাধারণত খারাপ ফল দেয়। আপনি যদি এখনও এটি ব্যবহার করার পরিকল্পনা করেন তবে একই সাথে আপনার পথ চালানোর চেষ্টা করবেন না। পরিবর্তে, 100% স্টিয়ারিং এ স্যুইচ করুন এবং একবার বাধা পেরিয়ে গেলে 100% পিছনে স্যুইচ করুন।
ইমি

4

যেহেতু আপনার পোস্টটি স্ট্যাক এক্সচেঞ্জের "গেম ডেভলপমেন্ট" অংশে রয়েছে, তাই এখানে বেশিরভাগ গেম প্রোগ্রামাররা আপনাকে কী উত্তর দেবে: এটি রিয়েল টাইম ডায়নামিক পাথফাইন্ডিং সম্পর্কিত নয়, এটি রিয়েল টাইম ডায়নামিক পাথ * অনুসরণ করা * সম্পর্কে!

কিছু প্রান্তের ক্ষেত্রে যেখানে আপনার নেভিগেশন গ্রাফের একটি প্রান্ত পুরোপুরি বাধা হয়ে দাঁড়িয়েছে তার জন্য অন্য পথটি সংশোধন করার জন্য প্যাথফাইন্ডারের প্রয়োজন হবে, তবে বেশিরভাগ সময় আপনি কেবলমাত্র অবস্থানগুলির ভবিষ্যদ্বাণী করে আপনার সত্তাকে বাধা দিতে পারেন এবং সঠিক দিকটিতে এড়াতে পারেন। বেশিরভাগ গেমগুলির জন্য, গতিশীল এজেন্টগুলির অবস্থান সময়ের সাথে সাথে ভবিষ্যদ্বাণী করা খুব বেশি ভারী হবে, বিশেষত যেহেতু আপনি সঠিকভাবে খেলোয়াড়ের ক্রিয়া বা এজেন্টের সিদ্ধান্তের সঠিক অনুমান করতে পারবেন না।

সুতরাং, আমার পরামর্শটি হ'ল স্টিয়ারিং বিহেভিয়ার্স (http://red3d.com/cwr/steer/) প্রয়োগ করে, পথটি অসম্ভব হয়ে ওঠে এমন ক্ষেত্রে পরিচালনা করুন এবং তারপরে একটি স্তর যুক্ত করুন যাতে প্রান্তের মামলাগুলি পরিচালনা করতে পারে না ' টি পূর্ববর্তী দুটি সমাধান দ্বারা পরিচালিত।

আশাকরি এটা সাহায্য করবে


আহ, না। "পথ অনুসরণ" পথ সন্ধানের সমান। একটি ডেস্কটপ পিসিতে অনেকগুলি পন্থাগুলি রয়েছে যেগুলি প্রতিবন্ধকতাগুলি পরিবর্তিত হওয়ার সময় হাজার হাজার এজেন্টের রিয়েলটাইম অনুসরণের অনুমতি দেয় । অবশ্যই কোনও একক এজেন্টের জন্য পথ খুঁজে পাওয়া খুব ব্যয়বহুল নয় , যখন বাধাগুলি ঘুরে দেখা যায়। অনেকের মধ্যে এই জাতীয় একটি পদ্ধতি রয়েছে: গ্রেইল.সি.ওয়াশিংটন.ইডু / প্রজেক্টস / ক্রডফ্লোস জিপিইউ অবিচ্ছিন্ন সংস্করণের অবিচ্ছিন্ন সংস্করণ বিদ্যমান।
ওলোভস্কি

এই বিষয়ে আমার একমত হতে হবে না। যে কোনও ইঞ্জিন দু'টি স্বতন্ত্র সমস্যা হিসাবে পাথ সন্ধান এবং পথ অনুসরণ করে চিকিত্সা করবে, যেখানে প্রথমটি হ'ল নাব্য অঞ্চলগুলির একটি গ্রাফ অনুসন্ধান এবং অন্যটি স্থানীয় স্থানের মধ্যে সর্বোত্তম আন্দোলনের ভেক্টর সন্ধান করতে চায়। আমি জিপিইউর উপর নির্ভর না করে এএএ গেমসের মাধ্যমে মিডলওয়্যার ব্যবহার করে এমন ভিড় সিমুলেশন তৈরির কাজ করেছি। বেশিরভাগ বাস্তবায়নগুলি প্রবাহটি অনুসরণ করতে এবং অন্যান্য এজেন্টগুলি (পথফোলার) এড়ানোর জন্য একটি ফ্লো ফিল্ড (পথচিকিত্সক) এবং স্টিয়ারিং ব্যবহার করবে। আমার উত্তর যেমনটি বলেছে, এটি একটি "গেম প্রোগ্রামার" উত্তর, একাডেমিক উত্তর নয়।
emartel

আমি জানি যে কন্টিয়াম ভিড়ের জন্য আপনার জিপিইউ দরকার নেই, এ কারণেই আমি একটি সিপিইউ ভিত্তিক সংস্করণ যুক্ত করেছি। আপনার অনুসরণের পাথের বিবরণটি এখনও একটি প্যাথফাইন্ডিং অনুসন্ধান, এটি অন্য কোনও ডেটাसेटে একটি ভিন্ন বিশদ স্তরে কেবল একটি প্যাথফাইন্ডিং অনুসন্ধান। সুতরাং আপনার কাছে যা আছে তা হ'ল একটি কোর্স ডিটেল প্যাথফাইন্ডিং পাস এবং একটি দুর্দান্ত ডিটেইল পাথফাইন্ডিং পাস। শেষ পর্যন্ত আপনি কোনও অভিনেতার অনুসরণ করা উচিত সেই পথটি সন্ধান করার চেষ্টা করছেন । এটির জন্য নতুন পদ আবিষ্কার করা কেবল জিনিসগুলিকে বিভ্রান্ত করে।
ওলোভস্কি

1
আমি দুঃখিত তবে "পথ অনুসরণ" কোনও উদ্ভাবিত শব্দ নয়। শিল্প উত্পাদিত নথি পড়ুন এবং আপনি এটিকে ব্যবহার করা হয় এবং আবার দেখতে পাবেন: লিংক বা লিংক মাত্র কয়েক লিঙ্ক করতে। দুর্ভাগ্যক্রমে আমি আপনাকে এনডিএর শিল্পে বহুল ব্যবহৃত ইঞ্জিন / মিডলওয়্যারের সুরক্ষিত নথিগুলির সাথে লিঙ্ক করতে পারি না।
emartel

1
আপনার প্রথম লিঙ্কটি আমার উত্তর বিটিডব্লুতে দেওয়া লিঙ্কটি। ঠিক আছে যথেষ্ট, এই ধরণের পাথটিকে অনুসরণের পথ হিসাবে বর্ণনা করা উপযুক্ত হতে পারে। শেষ পর্যন্ত তারা দু'জনেই অনুসরণ করার পথ অনুসন্ধান করার চেষ্টা করছেন, তবে আমি মনে করি যে এই ক্ষেত্রে আমি ভুল, এবং আমাদের দ্বিতীয় লিঙ্কে আমরা যা দেখি তাকে অনুসরণের পথ হিসাবে কল করা উচিত। উদাহরণস্বরূপ ঘন স্প্লাইস / বিজার কার্ভস / সন্নিবেশ-আপনার-পদ্ধতি-এখানে একসাথে মোটা পথের সাথে সংযোগ স্থাপনের কাজ। এটি বলেছিল, আমি এখনও দৃ strongly়ভাবে একমত নই যে গতিশীল বাধার আশেপাশে পথ সন্ধান করা কার্যকর হবে না, যেমনটি আপনার উত্তর বলে মনে হচ্ছে।
ওলোভস্কি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.