সরল মূ ?় ফানেল অ্যালগরিদম কীভাবে কাজ করে?


14

ডাইজেস্টিং হাঁসের উপর দেখানো ফানেলিং অ্যালগরিদমের সাথে কাজ করা আমি নিশ্চিত না যে ফানেল সনাক্তকরণ কীভাবে কাজ করে।

কেউ আমাকে কীভাবে পদ্ধতিটি পরিষ্কারভাবে ব্যাখ্যা করতে পারেন বা ফানেল সনাক্ত করার বিকল্প উপায়ের পরামর্শ দিতে পারেন এবং যদি ফানেলগুলি ওভারল্যাপ করে?

উত্তর:


18

অ্যালগরিদম আপনি যে পথটি পেয়েছিলেন তার সাথে শুরু করে, এই ক্ষেত্রে ত্রিভুজগুলির একটি তালিকা:

পথ

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

এই ছবিগুলিতে এই পোর্টালগুলির তালিকা হলুদ বিন্দুযুক্ত রেখাংশ হিসাবে দেখানো হয়েছে।

পোর্টাল

অ্যালগরিদম একটি প্রশস্ত ফানেল দিয়ে শুরু হয় এবং যতক্ষণ না এই ফানেলটি (AD) শক্ত করে ততক্ষণ পোর্টাল সাইড পয়েন্টগুলি (লাইন বিভাগগুলির শেষ পয়েন্ট) বরাবর ফানেল পক্ষগুলি এগিয়ে নিয়ে এগিয়ে যায়।

অ্যালগরিদম

এর অর্থ প্রতিটি পদক্ষেপের ফানেল প্রান্তগুলি অভ্যন্তরের দিকে সরানো উচিত, এটি পুরানো পাশ এবং সম্ভাব্য নতুন দিকটি উপস্থাপনকারী ভেক্টরগুলির ক্রস প্রোডাক্ট ( নীচের চিত্রটিতে পি × কিউ ; triarea2মিক্কো কোডটিতেও দেখুন ) পরীক্ষা করা যেতে পারে। যদি কোনও পক্ষের জন্য অগ্রসর হওয়া ফানেলটি শক্ত না করে, আমরা পোর্টালগুলির বর্তমান পুনরাবৃত্তির (ই) জন্য সেই দিকটি আপডেট করি না।

অভ্যন্তরীণ চলমান

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

ফানেল হ্রাস

যদি এটি হয় তবে ফানেল শীর্ষে এবং সঠিক দিকের শেষের বিন্দু থেকে ভেক্টরটি স্মুথড পাথ ( উপরের চিত্রে আর ) যুক্ত করা হয় এবং অ্যালগরিদমটি নতুন শীর্ষ (এফজি) হিসাবে তার শেষ পয়েন্ট দিয়ে পুনরায় চালু করা হয়, যদি না, অবশ্যই, যদি এটি লক্ষ্য পয়েন্ট হয়।


2
@ রल्फকোর উত্তর কি পরিষ্কার? যদি না হয়, কোন অংশে উন্নতি প্রয়োজন?
এরিক

আমি মনে করি তিনি কেবল উত্তরটি গ্রহণ করতে ভুলে গেছেন, এইটি খুব ভাল এবং ক্রমিকভাবে উত্সাহিত করা উচিত ^^
গেম ডেভেলপার

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