বাধাগুলি চলমান অবস্থায়ও কি * দক্ষ?


30

আমি কেবল পাথ-সন্ধান সম্পর্কে শিখতে শুরু করেছি এবং এ * অ্যালগরিদম সন্ধান করছি এবং আমার প্রধান উদ্বেগ হ'ল এটি যে সমস্ত উদাহরণ আমি দেখেছি তার সবগুলিই স্থির বাধা দেখায় যা এটি চারপাশে গণনা করে।

আমার যদি প্রতিবন্ধকতাগুলি চলতে থাকে, উদাহরণস্বরূপ অন্যান্য চরিত্রগুলি বলুন, চরিত্রটি অবশ্যই তাদের চারপাশটি সন্ধান করবে, আমি ধরে নিচ্ছি আমাকে প্রতিটি ফ্রেমটি অ্যালগরিদম চালাতে হবে, তবে আমি উদ্বিগ্ন যে এটি ব্যয়বহুল হয়ে উঠবে will হার্ডওয়্যার প্রতিটি চলমান অভিনেতার জন্য প্রতিটি ফ্রেম প্রক্রিয়া করতে।

বাধা যখন খুব বেশি চলছে তখনও * কি * এখনও যথেষ্ট দক্ষ, বা পথ-সন্ধানের অন্য কোনও পদ্ধতি আছে যা বাধাগুলি আরও স্পষ্টভাবে পরিচালনা করে?

উত্তর:


27

যখন আপনার চলমান বাধাগুলির সাথে কোনও পথকে পুনরায় গণনা করতে হবে তখন একাধিক অ্যালগরিদম এ * এর চেয়ে অনেক বেশি দ্রুত। "সরল পুনরাবৃত্তি" এর অধীনে এখানে দেখুন ।

তবে আপনি সম্ভবত তাদের যে কোনও একটির জন্য অফ-দ্য শেল্ফ সমাধান আবিষ্কার করতে যাচ্ছেন না, সুতরাং 99% ক্ষেত্রে তারা কোনও গেমের জন্য ওভারকিল করে। আপনার সময়টি একটি বিদ্যমান, পুরোপুরি-অনুকূলিত A * সমাধান ব্যবহার করে এবং গেমগুলিতে পাথফাইন্ডিংয়ের গতি বাড়ানোর জন্য সাধারণ বিদ্যমান কৌশলগুলি ব্যবহার করে আরও ভাল ব্যয় করতে পারে:

  • বিরল বিরতিতে কেবল সেরা পথটি পুনরায় গণনা করা
  • একাধিক ইউনিটের মধ্যে সেরা-পথ ভাগ করে নেওয়া ( উদাহরণস্বরূপ )
  • একটি শ্রেণিবিন্যাসের গ্রাফ তৈরি করা যাতে আপনার কেবলমাত্র পথের কিছু অংশ পুনঃসংযোগ করা দরকার

ইত্যাদি। আপনি এই কৌশলগুলি সম্পর্কে আরও তথ্য এবং এই সাইট জুড়ে বা অমিতের এ * পৃষ্ঠাগুলিতে আরও সন্ধান করতে পারেন


10

হ্যাঁ। এ * এখনও প্রায় প্রতিটি ক্ষেত্রে যাওয়ার উপায়। এটি আপনার নোড ব্যয়ের গণনা যা গতিশীল হয়ে ওঠে এবং তাই গণনা এবং ট্র্যাক করার জন্য আরও জটিল।

আপনি যদি ইতিমধ্যে জানেন যে ভবিষ্যতে চলমান বাধাগুলি কোথায় আসবে আপনার এ * ব্যয়টির কার্যকারিতার ক্ষেত্রে বাধাগুলির সাময়িকতা গ্রহণ করতে পারে।

উদাহরণস্বরূপ: এই নোডটি 4 টিকিটে পৌঁছে যাবে, টিক # 3 থেকে টিকিট # 6 অবধি রক্ষা করা হবে, সুতরাং এই নোডে ভ্রমণের ব্যয় 6 - 4 = + 2 টিক্স। এটি এখনও সেরা পথ হতে পারে।

বাধাটির ভ্রমণের দিকটিও আমলে নিতে হবে।

আপনি যদি আগে থেকে জানেন না তবে আপনি কোনও প্রতিবন্ধকতা অনুমান করতে পারবেন এবং বাধা পৌঁছে গেলে পথটি পুনরায় গণনা করতে পারবেন তবে আপনাকে ডেডলক এবং লাইভলকগুলি সম্পর্কে কিছু করা দরকার। (আপনি যদি ভবিষ্যদ্বাণী করতে পারেন যে কোথায় বাধা আসবে তবে এটি একই ক্ষেত্রে প্রযোজ্য তবে এটি নিজেই একধরণের ডেডলক / লাইভলক এড়ানো এবং এটি আপনার উদ্দেশ্যে যথেষ্ট ভাল হতে পারে))

একটি অচলাবস্থা তখন হয় যখন উভয় অপরের অপেক্ষার জন্য অপেক্ষা করে এবং কোনওটি নড়ে না।

একটি লাইভলক তখন হয় যখন উভয় ( বা আরও <- এটি বিবেচনা করা গুরুত্বপূর্ণ) একে অপরকে একই দিকে এড়াতে সরানো এবং কোনও অগ্রগতি ছাড়াই পিছনে পিছনে যেতে শেষ করে।

লাইভলকগুলি সমাধান করা খুব জটিল হয়ে উঠতে পারে এবং এটি সম্পূর্ণরূপে আপনার গেমের সংঘর্ষের নিয়ম এবং যান্ত্রিকগুলির উপর নির্ভর করে (যেমন: তাদের লড়াই করা উচিত এবং বাধাটি ধ্বংস করা উচিত?)।

এটি প্রায়শই আপনার চলমান বস্তুগুলির শিড নোড / পাথ রিজার্ভেশন রাখার বিষয়ে ফিরে আসে (তারা যখন পথ পরিবর্তন করে বা মারা যায় তখন বাতিলকরণগুলি ভুলে যাবেন না) যাতে অন্যান্য চলন্ত বস্তুগুলি আগে পরিকল্পনা করতে পারে।

আপনার কাছে এই তথ্যটি একবার হয়ে গেলে আপনি বিযুক্তিগুলিও পরিকল্পনা করতে পারেন।


19
ওহে আমার ,শ্বর, "লাইভলক" - আপনি বর্ণনা করেছেন যে এই ভয়াবহ বাম-ডান ডজ জিনিসটি আমি সবসময় হলওয়েতে শেষ পর্যন্ত করতে পারি।
এথান দ্য সাহসী

2
একটি সহজ লাইভ / অচল সমাধানটি এলোমেলোভাবে উপলভ্য বিকল্পগুলির মধ্যে বেছে নেওয়া (উদাহরণস্বরূপ, স্থানান্তরিত না হওয়ার 50% সুযোগ এবং বাম দিকে সরানোর 50% সুযোগ)। যতক্ষণ না প্রতিটি অভিনেতা এলোমেলোভাবে চয়ন করেন ততক্ষণ শূন্যতার সুযোগ নেই যে লকটি সমাধান হয়ে যাবে।
Draco18s

@ ড্রাকো 18 গুলি এবং দ্রুতগতিতে আপনার জ্বলন্ত আকারের পরিমাণ বাড়িয়ে দিন যতক্ষণ না কেউ উপায় না দেয় (আমি কেবল ইথারনেটের সংঘর্ষগুলি কীভাবে সমাধান করা যায় তা আমি বর্ণনা করে থাকতে পারি!)
কর্ট অ্যামন - মনিকা পুনরায়

আমি মনে করি তারা এর পরিবর্তে রক পেপার কাঁচি বা পেট্রি ডিশ প্রিজনারের দ্বিমা একটি বন্ধুত্বপূর্ণ খেলা খেলতে পারে । ; পি
Draco18s
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.