নেভিগেশন জাল জুড়ে "দৃষ্টির রেখা" পথ


9

আমি একটি নেভিগেশন জাল দর্শন লাইন গণনা করতে চান।

নীচের চিত্রটি বিবেচনা করুন, হলুদ লাইনটি কেবল এ * এর ফলাফল এবং লাল রেখাটি একটি রেখার দৃষ্টিভঙ্গির ফলাফল "আলগোরিদম যা হলুদ রেখাটিকে ইনপুট হিসাবে ব্যবহার করে Now এখন ইউনিটটি" জিগ-জাগিং "ছাড়াই সরাসরি চলতে পারে।

সেই "দৃষ্টির রেখা" গণনা করার জন্য একটি অ্যালগরিদম কী?

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


6

আপনি একটি ফানেল অ্যালগরিদম খুঁজছেন।

এখানে আপনি একটি সহজ

http://digestingduck.blogspot.com.es/2010/03/simple-stupid-funnel-algorithm.html

মূলত, অ্যালগরিদম প্রান্তগুলি পোর্টাল হিসাবে চিহ্নিত করে এবং একটি ফানেল তৈরি করে যা প্রান্তের শীর্ষের বিরুদ্ধে পরীক্ষা করা হয় যা তারা ফানেলের ভিতরে রয়েছে কিনা তা পরীক্ষা করতে।

পদক্ষেপে ফানেলটি শুরুর অবস্থান এবং পোর্টালটি হলুদ লাইনের সাহায্যে নির্মিত হয়।

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

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

এখানে চিত্র বর্ণনা লিখুন

বুঝতে পারেন যে এই ধরণের অ্যালগরিদম মডেল আকার সমস্যারও একটি সহজ সমাধান করতে দেয়, কারণ আপনি বিবেচনা করতে পারেন যে আপনার মডেলটির 2xradius দ্বারা পোর্টালগুলি ছোট।

এখানে চিত্র বর্ণনা লিখুন


6

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

এখানে চিত্র বর্ণনা লিখুন

একটি গামসূত্র নিবন্ধে নিম্নলিখিত সিউডো কোড উদাহরণ রয়েছে:

checkPoint = starting point of path
currentPoint = next point in path
while (currentPoint->next != NULL)
if Walkable(checkPoint, currentPoint->next)
// Make a straight path between those points:
temp = currentPoint
currentPoint = currentPoint->next
delete temp from the path
else
checkPoint = currentPoint
currentPoint = currentPoint->next

এই অ্যালগরিদমটি আপনি যেমন চান তেমনই করেন যেখানে Walkableফাংশনটি মূলত দৃষ্টিশক্তিযুক্ত একটি লাইন হয় তবে পথটি দৃশ্যমান এমন পরিস্থিতিতে অন্তর্ভুক্ত করার জন্য কিছুটা উন্নত হয় তবে হাঁটা যায় না (যেমন পিটস, ট্র্যাপস, সীমাবদ্ধ অঞ্চল)।


আপনি কী বলছেন তা আমি বুঝতে পেরেছি, তবে কীভাবে দৃষ্টির রেখাটি গণনা করতে হবে তা আমি এখনও জানি না। ত্রিভুজ নেভিগেশন জাল ব্যবহার করে আপনি কি ওয়াকটেবল ফাংশনটিতে থাকতে পারবেন তা বর্ণনা করতে পারেন?
ইয়ানিক ল্যাঞ্জ

এই উত্তরটি গ্রিড ভিত্তিক পাথ সম্পর্কে, এবং নেভিগেশন জাল দৃশ্যে অকেজো
ব্লু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.