প্রদত্ত পয়েন্ট কো-অর্ডিনেটের সেট থেকে সীমানা সমন্বয়গুলি সন্ধান করছেন?


18

স্থানাঙ্কের একটি সেট দেওয়া, আমরা কীভাবে সীমানা স্থানাঙ্কগুলি খুঁজে পাই।
স্থানাঙ্কের সেট <== চিত্র 1
উপরের সেটটিতে স্থানাঙ্ক দেওয়া, আমি কীভাবে লাল সীমানায় স্থানাঙ্ক পেতে পারি। সীমানা হ'ল বহুভুজ যা কোণটি ইনপুট স্থানাঙ্কগুলির দ্বারা গঠিত হয়, এমনভাবে এটি অঞ্চল সর্বাধিক করে তোলে।

আমি এমন একটি অ্যাপে কাজ করছি যা কোনও শহরের 'x' মাইলের মধ্যে বৈশিষ্ট্য অনুসন্ধান করে । আমার যা আছে তা হ'ল:

  1. সমস্ত সম্পত্তি সমন্বয়।
  2. প্রতিটি শহরের জন্য সমন্বয়গুলির একটি সেট (প্রতিটি জিপের জন্য আমার একটি সমন্বয় থাকে And এবং বেশিরভাগ শহরে একাধিক জিপ থাকায় প্রতিটি শহরে স্থানাঙ্কের সেট থাকে)

আমি সর্বাধিক ক্ষেত্রের জন্য জিজ্ঞাসা করার কারণটি হ'ল আমি নীচের মত বহুভুজটি নিয়ে আসতে পারি না:

আঁকাবাঁকা বহুভুজ <== চিত্র 2

আমার যা প্রয়োজন তা হল সীমানার জন্য স্থানাঙ্কের সেট নিয়ে আসা আলগোরিদম । একটি অ্যালগরিদম যা চিত্র 1 এর জন্য আমাকে সীমানা স্থানাঙ্ক নিয়ে আসতে দেবে ।



4
না, সদৃশ নয়, এটি উত্তল
হাল

1
আপনি কি নির্দিষ্ট বিদ্যমান সফ্টওয়্যার পরিবেশে কোড, তাত্ত্বিক তথ্যসূত্র বা সমাধান খুঁজছেন?
ওল্ফঅড্রেড

1
@ খাজা না, আপনি অঞ্চলটি সর্বাধিকতর করতে চান না, আপনি পয়েন্টগুলি সমেত সমস্ত উত্তল বহুভুজের মধ্যে এটি হ্রাস করতে চান । (এরিয়া পূর্ণবিস্তার করার একমাত্র উপায় ধারণকারী বহুভুজ যেমন সমগ্র বিশ্বের ব্যবহার করা।)
whuber

1
@ হু হ্যাঁ, এখন আমি কী বলতে চাইছি তা দেখতে পাচ্ছি, আমি ন্যূনতম অঞ্চল সহ একটি উত্তল বহুভুজ চাই। আমার চূড়ান্ত লক্ষ্য হল একটি নৈকট্য অনুসন্ধান করা। যেভাবে আমরা আমাদের নৈকট্য অনুসন্ধান কাজ করতে চাই তা হ'ল: প্রদত্ত একটি শহরে (উত্তল হাল), যদি আমরা "x" মাইলের মধ্যে বাড়িগুলি (প্রতিটি বাড়ির একটি সমন্বিত থাকে) অনুসন্ধান করি তবে এটি আমাকে সমস্ত ঘর প্রদান করবে যা উভয়ের মধ্যেই রয়েছে either উত্তল হাল বা "x" মাইলেরও কম দর্শনীয় দূরত্বে রয়েছে
খাজা মিনহাজউদ্দিন

উত্তর:


21

এই সমস্যাটি সমাধান করার জন্য অনেক অ্যালগরিদম রয়েছে ( উইকিপিডিয়া "কনভেক্স_হুল_ালগোরিদিম" ):

  • উপহার মোড়ানোর জন্য ওরফে জার্ভিস মার্চ - ও (এনএইচ): অন্যতম সহজ অ্যালগরিদম। এটিতে ও (এনএইচ) সময়ের জটিলতা রয়েছে, যেখানে এন সেটটিতে পয়েন্টের সংখ্যা এবং h হল হলের পয়েন্টগুলির সংখ্যা। সবচেয়ে খারাপ ক্ষেত্রে জটিলতা হ'ল ও (এন 2)।
  • গ্রাহাম স্ক্যান - ও (এন লগ এন): সামান্য আরও পরিশীলিত, তবে আরও কার্যকর অ্যালগরিদম। যদি পয়েন্টগুলি ইতিমধ্যে কোনও স্থানাঙ্ক দ্বারা বা একটি স্থির ভেক্টরের সাথে কোণ অনুসারে বাছাই করা হয় তবে অ্যালগরিদম ও (এন) সময় নেয়। [ সিউডো কোড ]
  • কুইকহুল: কুইকসোর্ট অ্যালগরিদমের মতো এটিতেও ও (এন লগ এন) এর প্রত্যাশিত জটিলতা রয়েছে তবে সবচেয়ে খারাপ ক্ষেত্রে ও (এনএইচ) = ও (এন 2) এর অবনতি হতে পারে। [ সচিত্র বিবরণ ]
  • ভাগ করুন এবং জয় করুন - ও (এন লগ এন): এই অ্যালগরিদম ত্রি-মাত্রিক ক্ষেত্রে প্রযোজ্য।
  • মনোোটোন চেইন - ও (এন লগ এন): গ্রাহাম স্ক্যানের একটি বৈকল্পিক যা তাদের স্থানাঙ্ক দ্বারা ডিক্সিকগুলি পয়েন্টগুলি সাজায়। ইনপুটটি ইতিমধ্যে বাছাই করা হলে, অ্যালগরিদম O (n) সময় নেয়।
  • বর্ধক উত্তল হোল অ্যালগরিদম - ও (এন লগ এন)
  • বিবাহ-পূর্ব-বিজয় - O (n লগ এইচ): অনুকূল আউটপুট-সংবেদনশীল অ্যালগরিদম।
  • চ্যানের অ্যালগরিদম - ও (এন লগ এইচ): সহজ অনুকূল আউটপুট-সংবেদনশীল অ্যালগরিদম।

এই @unddark তালিকাবদ্ধ করার জন্য আপনাকে ধন্যবাদ ... আপনার চয়ন কোনটি?
মেরিন


3

অর্থজিআইএসের জন্য হাথের সরঞ্জামগুলির এই কার্যকারিতা রয়েছে । আরকআইএনফো 10 এর জন্য একটি স্ক্রিপ্ট প্লাস করুন ।

কোয়ান্টামজিআইএস-এ ফ্লোস প্লাগইনের মাধ্যমে উত্তল হলের সরঞ্জামও রয়েছে



1

আপনি যদি এটি করতে কোনও অ্যালগরিদম চান (এটি করতে পারে এমন প্যাকেজগুলির চেয়ে) তবে আমি মনে করি আপনাকে ডেটাটি ত্রিভুজ করা দরকার; অথবা মূলত প্রতিটি বিন্দু থেকে প্রতিটি পয়েন্টে একটি রেখা সংজ্ঞায়িত করুন। তারপরে, সর্বাধিক Y মান দিয়ে বিন্দুতে (বলুন) শুরু করে, ক্ষুদ্রতম বাহ্যিক কোণ / ভারবহন দিয়ে সংযুক্ত রেখার নীচে বাইরের চারপাশে একটি পথ চিহ্নিত করুন।

আপনি প্রথমে ছেদকৃত লাইনগুলি ফেলে দিয়ে ট্রেসিংকে গতি দিতে সক্ষম হবেন। বাহ্যিক সীমানায় ছেদ থাকবে না।

বিটিডব্লিউ - এফএমই কনভেক্সহুলএকুমিউলেটর বা উত্তলহালার রেপ্লেজার ট্রান্সফর্মারগুলির সাথে এটিও করবে!


1

আপনি যদি কোডটিতে প্রয়োগ করা একটি বিদ্যমান অ্যালগরিদমটি দেখতে আগ্রহী হন, নেটটোপোলজি স্যুটটির এটি করার জন্য একটি অ্যালগরিদম রয়েছে

উত্তলHull.cs দেখুন

ঘটনাক্রমে এনটিএস এবং অন্যান্য গ্রন্থাগারগুলির একটি গোছা এখানে পাওয়া যায় ডটস্পটিয়াল নামে একটি দুর্দান্ত প্রকল্পে

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