কোনও বল খুঁজে পাওয়ার জন্য জটিলতা যা এতে পড়ে থাকা পয়েন্টের সংখ্যা সর্বাধিক করে


10

পয়েন্ট একটি সেট দেওয়া এবং একটি ব্যাসার্ধ । চেয়ে কম দূরত্বে বেশি সংখ্যক পয়েন্টের সাথে পয়েন্টটি খুঁজে পাওয়ার জটিলতা । উদাহরণস্বরূপ that সর্বোচ্চ ?x1,,xnR2rri=1n1xxir

একটি ব্রুট ফোর্স অ্যালগরিদম হ'ল প্রতিটি বিন্দু পেরিয়ে r এর চেয়ে কম দূরত্বে থাকা পয়েন্টগুলির সংখ্যা গণনা করা r। এটি \ mathcal {O} (n ^ 2) এর জটিলতা দেয় O(n2)

একটি ভাল পদ্ধতির আছে কি?


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

( ballশিরোনাম থেকে কেন্দ্রটি সেট থেকে হওয়া দরকার?) একটি ধারণা হতে পারে নিকটতম প্রতিবেশীর গড় দূরত্বের তুলনায় ব্যাসার্ধটি ছোট বা ব্যাসের ক্রমের তুলনায় ব্যাসার্ধটি ছোট কিনা (এবং এই চূড়ান্তগুলির জন্য পদ্ধতির বিবেচনা করুন) (ছোট সমতল মিষ্টির r ) এবং এর মধ্যে বিস্তৃত স্থান)।
গ্রেইবার্ড

বলের কেন্দ্রটি একটি x_i হওয়া উচিত xiতবে যদি আরও ভাল শর্ত থাকে তবে আমিও আগ্রহী।
ম্যানুয়েল

দেখে মনে হচ্ছে রেঞ্জ গণনা সমস্যার জন্য অ্যালগরিদমের চেয়ে দ্রুত গতি অজানা। তবে, আপনি যদি একটি নির্ভুল উত্তর গ্রহণ করতে পারেন তবে আপনি বিভিন্ন অরিয়েন্টেশন সহ স্কোয়ারের সেট দ্বারা একটি ডিস্ক আনুমানিক করতে পারেন। প্রতিটি ওরিয়েন্টেশনের জন্য আপনাকে একটি রেঞ্জ ট্রি তৈরি করতে হবে উইকিপিডিয়া.org / উইকি / রেঞ্জ_ট্রি ), যা আপনাকে সময় (কে মধ্যে একটি স্কোয়ারের মধ্যে সমস্ত পয়েন্ট গণনা করতে দেয় - ফলাফলের একটি সংখ্যা)। O(n)O(log2(n)+k)
হেক্টো

@ হেকটো আপনি কি ব্যয় একটি আয়তক্ষেত্রের মধ্যে একটি পয়েন্ট রয়েছে কিনা তা জানতে ক্যোয়ারী- ম্যাথকল কে কাঠামোর কাঠামো তৈরি করার পরামর্শ দিচ্ছেন ? তারপরে সমস্ত পয়েন্টের উপর নির্ভর করে আরও কতগুলি পয়েন্ট আনুমানিক বলটিতে রয়েছে? এটি কাজ করতে পারে তবে তারপরে, এই জাতীয় ডেটা কাঠামোর জন্য প্রয়োজনীয় মেমরিটি কী হবে? এটি কি চেয়ে কম হবে ? O(nlog(n))O(log2(n)+k)O(n2))
ম্যানুয়েল

উত্তর:


5

দেখে মনে হচ্ছে বল রেঞ্জ গণনা সমস্যার জন্য একটি সাবলাইনার অ্যালগরিদম আপাতত জানা নেই।

তবে, আপনি যদি একটি নির্ভুল উত্তর গ্রহণ করতে পারেন তবে আপনি বিভিন্ন অরিয়েন্টেশন সহ স্কোয়ারের সেট দ্বারা একটি ডিস্ক আনুমানিক করতে পারেন। প্রতিটি ওরিয়েন্টেশনের জন্য আপনাকে একটি ব্যাপ্তি গাছ তৈরি করতে হবে, যা আপনাকে সময় (কে - ফলাফল প্রাপ্ত সংখ্যক স্কোয়ারের মধ্যে সমস্ত পয়েন্ট গণনা করতে দেয় ।O(log2(n)+k)

প্রতিটি ব্যাপ্তি গাছের জন্য মেমরির প্রয়োজন হবে, আপনার আরও বেশি প্রাচুর্য ব্যবহার করা উচিত। উদাহরণস্বরূপ, দুটি অভিব্যক্তি আপনাকে একটি অষ্টভুজ দেবে , যা error% এরও কম অঞ্চলের ত্রুটিযুক্ত একটি ডিস্ককে প্রায় দেয়।O(nlog(n))


3

উত্তরটি এত সহজ নয়, জটিলতা তত্ত্বে এই প্রশ্নটির উন্নত অধ্যয়ন রয়েছে; এটি অধ্যয়ন হিসাবে মনে হয় যেমন নিম্নলিখিত সমস্যা হিসাবে, যা দ্রুত "গোলাকৃতির পরিসীমা গণনা" ক্যোয়ারীগুলির চারপাশে কেন্দ্রীভূত। হ্যাঁ, উন্নত তাত্ত্বিক সীমাগুলি সম্ভব, তবে এগুলি বিমূর্ত আলগোরিদিম বলে মনে হয় যা কারও দ্বারা প্রয়োগ করা হয়নি। আপনি যদি বাস্তব বাস্তবায়ন চান তবে এটি একটি আলাদা প্রশ্ন।

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