না, আপনি এর চেয়ে ভাল করতে পারবেন না Θ(n2) সবচেয়ে খারাপ ক্ষেত্রে.
পয়েন্টগুলির প্রতিটি জোড়া দূরত্বে রয়েছে এমন পয়েন্টগুলির একটি বিন্যাস বিবেচনা করুন 1একে অপরের থেকে. (এটি একটি সম্ভাব্য কনফিগারেশন)) তারপরে আপনি প্রতিটি প্রান্তটি পরীক্ষা করার চেয়ে ভাল করতে পারবেন না। বিশেষত, যদি এমন কোনও কিনারা থাকে যা আপনি পরীক্ষা করেন নি, তবে কোনও শত্রু edge প্রান্তটির দৈর্ঘ্যটি বেছে নিতে পারে either0.9, 1.0, বা 1.1; এই সমস্ত পছন্দগুলি আপনার তৈরি অন্যান্য পর্যবেক্ষণগুলির সাথে এবং মেট্রিকের প্রয়োজনীয়তার (যেমন, ত্রিভুজ অসমতার সাথে) সাথে সামঞ্জস্যপূর্ণ, তাই তিনটিই সম্ভব; তবে তাদের বিভিন্ন আউটপুট প্রয়োজন। সুতরাং, যদি আপনার অ্যালগরিদম সেই প্রান্তটি পরীক্ষা করে না এবং তারপরে কিছু আউটপুট করে, একটি শত্রু সর্বদা অমীমাংসিত প্রান্তের জন্য একটি দৈর্ঘ্য চয়ন করতে পারে যা আপনার অ্যালগরিদমের আউটপুটকে ভুল করে দেবে।
তবে, আপনি যদি জানেন যে সমস্ত পয়েন্ট বাস করে Rd (যদিও আপনাকে তাদের স্থানাঙ্ক দেওয়া হয়নি) তবে সমস্যাটি পরিমাপের মাধ্যমে সমাধান করা যেতে পারে O((d+1)n) দূরত্ব, ধরে নেই কোনও ডিজেনারেসি (কোনও উপসেট নেই) d+1 পয়েন্টগুলি সহ-পরিকল্পনাকারী)।
বিশেষত, বাছাই d+1এলোমেলোভাবে পয়েন্ট। এগুলি অ্যাঙ্কর পয়েন্ট হবে। তাদের জোড়া লাগার দূরত্বগুলি দেওয়া, আপনি তাদের জন্য স্থানাঙ্কগুলি গণনা করতে পারেন যা তাদের জোড়াযুক্ত দূরত্বের সাথে সামঞ্জস্যপূর্ণ। এখন, প্রতিটি অন্যান্য পয়েন্ট জন্যPথেকে দূরত্ব গণনা করুন Pঅ্যাঙ্কর পয়েন্ট প্রতিটি। ত্রিভঙ্গীকরণ এবং এই দূরত্বগুলি ব্যবহার করে আপনি এর অবস্থান গণনা করতে পারেনP অ্যাঙ্কর পয়েন্টগুলির সাথে সম্পর্কিত এবং এর জন্য স্থানাঙ্কগুলি P। প্রতিটি অ-অ্যাঙ্কর পয়েন্টের জন্য এটি করুনP। এখন আপনার কাছে প্রতিটি পয়েন্টের জন্য স্থানাঙ্ক রয়েছে এবং আপনি সেই স্থানাঙ্কগুলি ব্যবহার করে কেন্দ্রীয় বিন্দুটি খুঁজে পেতে ওরাকলকে আপনাকে আর জোড়া লাগানোর দূরত্ব না দিয়ে জিজ্ঞাসা করতে পারেন। এই শেষ পদক্ষেপটি এর চেয়ে দ্রুততর করা যায় কিনা তা আমি জানি নাO(n2) সময় , তবে এটি আর জোড়াযুক্ত দূরত্বগুলি পরিমাপ না করেই করা যেতে পারে।