পয়েন্ট সেট ক্রিয়াকলাপগুলির জন্য বিকল্প সূচক পদ্ধতি


17

বিপুল সংখ্যক বৈশিষ্ট্য নিয়ে কাজ করার সময় পারফরম্যান্স উন্নত করতে বাউন্ডিং বক্স স্পেসিয়াল ইনডেক্স ব্যবহার করা সাধারণ। বিপুল সংখ্যক শীর্ষে উল্লিখিত পৃথক জ্যামিতির বিরুদ্ধে অপারেশনগুলি সঞ্চালিত হলে একই ধরণের অপটিমাইজেশন কৌশলগুলি উপস্থিত রয়েছে?

উদাহরণস্বরূপ, এমন কোনও ডেটা স্ট্রাকচার কি বিদ্যমান যা বহুভুজ বা ইউনিয়ন ক্রিয়াকলাপগুলিকে গতি বাড়িয়ে তুলতে পারে?


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

ধন্যবাদ, আমি মনে করি আমার পাঠ্যপুস্তক পড়ার দরকার আছে। আমার প্রশ্নের মূল বিষয় ছিল কীভাবে সেই ডেটা স্ট্রাকচারগুলি সময়ের আগে প্রাক-গণনা করা যেতে পারে। কোনও প্রাক-গণিত বাস্তবায়ন কি বিদ্যমান?
ম্যাথু স্নেপ

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

আমি মনে করি সমস্যা 2 ডি অবজেক্টের "ফ্র্যাক্টাল প্রকৃতি" এবং অনিশ্চিত এবং ভারসাম্যহীন বিতরণ তথ্যের ঘনত্বের ভিত্তিতে।
হাকফিন

উত্তর:


2

পলিগনে পয়েন্টের জন্য ঠিক আছে:

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

সূচক দুটি জিনিস পরিচালনা করার চেষ্টা করে:

  1. একটি দ্রুত রুটিন যা আপনাকে একটি সেট বালতি দেয় যাতে আপনি অবজেক্টগুলি সংগ্রহ করেন যা আপনি স্থানিকভাবে ছড়িয়ে দিতে পারেন (বালতি!)! এবং বিবিক্সগুলি গণনা করা এবং পরিচালনা করা সহজ।

  2. স্থানিক স্টাফ (বস্তুগুলি) আলাদা করতে বা সম্পর্কিত করতে সম্পর্কের একটি সেট (ওভারল্যাপ, স্পর্শ)।

দুর্ভাগ্যক্রমে BBoxes আপনাকে কোনও চিহ্ন দেবে না, প্রতিটি বিবিক্সে কতগুলি পয়েন্ট রয়েছে, কীভাবে বস্তুগুলি আকৃতিযুক্ত (গর্ত, উত্তল, ...) এবং কীভাবে স্থানীয়ভাবে তথ্যটি বিতরণ করা হয় (উপরের বাম কোণে 90% পয়েন্ট রয়েছে) BBox)। সুতরাং আপনি অবজেক্ট পর্যায়ে দ্রুত অপারেশন সদস্যদের খুঁজে পেতে এবং পরীক্ষার সম্পর্ক বিল্ডিংয়ে অনেক সময় আলগা করতে পারেন।

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

পয়েন্ট-ইন-বহুভুজ-পরীক্ষার উদাহরণের জন্য এটি ব্যবহার করে একটি অনিয়মিত ক্যাশে তৈরি করা সম্ভব:

  1. আপনার পলি কভারের সীমাবদ্ধ ডেলাউন ট্রায়াঙ্গুলেশন, কভারের বাইরে-বাইরে সনাক্তকরণের জন্য অতিরিক্ত সীমান্ত জাল পয়েন্টগুলি
  2. এটিকে চতুষ্কোণ সূচক স্কিমে রাখুন প্রতি বাক্সে এন ত্রিভুজগুলির চেয়ে বেশি নয় (ফ্র্যাক্টাল বালতি)
  3. কোয়াড্ট্রি তে থাকা পয়েন্টটি - ত্রিভুজ সেটটি সন্ধান করুন
  4. বিন্দুটি যে ত্রিভুজটিতে রয়েছে তা সন্ধান করুন (সর্বাধিক পরীক্ষার অংশ। এন ত্রিভুজগুলির উপরে)
  5. এবং ত্রিভুজ শীর্ষকে বহুভুজ আইডি জিজ্ঞাসা করুন
  6. যদি আইডিটি অনন্য হয় তবে বিন্দুটি বহুভুজের অন্তর্ভুক্ত, যদি এটি বাইরে না থাকে

টিন এবং চতুষ্কোণ তৈরির ব্যয়টি খুব বেশি এবং গণনা করা শক্ত এবং চতুর্ভুজটি বড় এবং ছোট ত্রিভুজগুলির (ত্রিভুজগুলি যা ছোট ছোট সাবট্রি বাক্সে ফিট করবে না) ভারসাম্য বজায় রাখতে হয়।

কিছু সরঞ্জাম এবং লিঙ্ক:

ত্রিভুজ - সীমাবদ্ধ বহুভুজ ত্রিভুজ

চতুর্ভুজ - উত্স উদাহরণ সহ

স্টনি ব্রুক রিপোজিটরি - ডেটা স্ট্রাকচার এবং বিচ্ছিন্ন জ্যামিতি

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