A এর বিন্দু এবং B এর বিন্দুর মধ্যে স্বল্পতম দূরত্ব


9

দুটি সেট দেওয়া হয়েছে একজন এবং বি প্রতিটি সমন্বিত এন বিমানের পয়েন্টগুলিকে বিচ্ছিন্ন করুন, একটি বিন্দুর মধ্যে সংক্ষিপ্ততম দূরত্বটি গণনা করুন একজন এবং একটি পয়েন্ট বিঅর্থাৎ, সর্বনিম্ন { Dist(পি,কুই) | পিএকজনকুইবি }

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


4
এখানে প্রশ্ন কি?
রাফেল


আমি একজন বিশেষজ্ঞ নই তবে সাধারণত মেশিন লার্নিংয়ে, যেখানে এই পয়েন্টগুলি ডেটা হয়, সেটগুলি বেশিরভাগ সময় ভাল আচরণ করে এবং একসাথে গ্রুপ করা হয়, সুতরাং @ পেড্রো দ্বারা প্রস্তাবিত মতো আলগোরিদিমগুলি ভাল কাজ করে।
চিজিসপ

3
"যা স্পষ্টতই এল পি দ্বারা দ্বি-মাত্রিক স্থানে ও (এন) এর মাধ্যমে সমাধান করা যায়" - আমি অবাক হয়েছি কী এই বিবৃতিটি উত্সাহিত করেছিল। "লিনিয়ার প্রোগ্রামিং" সাধারণত রৈখিক সময়ে দ্রবণযোগ্য হয় না; "লিনিয়ার" বলতে অন্য কিছু বোঝায়। তাহলে এলপির একটি বিশেষ ফর্ম রয়েছে?
রাফেল

উত্তর:


5

আমার একটি সমাধান রয়েছে যা কিছুটা সংশ্লেষিত মনে হতে পারে তবে নির্দোষ ব্রুট ফোর্স অনুসন্ধানের চেয়ে আরও দক্ষ হওয়া উচিত :হে(এন2)

  1. এবং এর ভরকেন্দ্রের কেন্দ্রগুলির মধ্যে হিসাবে অক্ষ হওয়া যাক ।বনামএকজনবি
  2. মধ্যে বাছাই পয়েন্ট এবং সাজানো এবং যথাক্রমে অর্ডার আরোহী, সিকোয়েন্স ফলে এই অক্ষ বরাবর , , ..., এবং , , ..., ।একজনবিএকটি0একটি1একটিএন01এন

এটি পরিষ্কার করার জন্য বাকীটি সিউডো-কোডে রয়েছে:

d = infinity.
for j from 1 to n
    if (b_1 - a_j) along v > d then break endif
    for k from 1 to n
        if (b_k - a_j) along v > d then
            break
        else
            d = min( d , ||b_k - a_j|| )
        endif
    enddo
enddo

যে হল, বরাবর পয়েন্ট প্রাক বাছাই , আপনি জোড়া মধ্যে যে কখনো হবে ফিল্টার করতে পারে একে অপরের থেকে বরাবর সবসময় হতে হবে।বনাম-একটিবনাম-একটি

আরও খারাপ ক্ষেত্রে এটি এখনও , তবে যদি এবং ভালভাবে আলাদা হয় তবে এটি এর চেয়ে অনেক দ্রুত হওয়া উচিত, তবে চেয়ে ভাল নয় , যা প্রয়োজনীয় বাছাইয়ের জন্যহে(এন2)একজনবিহে(এনলগএন)

হালনাগাদ

এই সমাধানটি কোনওভাবেই টুপি থেকে টানা নয়। স্থানিক বিন্ন সহ কণার সমস্ত মিথস্ক্রিয়াশীল জোড়গুলি খুঁজতে আমি কণার সিমুলেশনগুলিতে যা ব্যবহার করি এটির একটি বিশেষ ঘটনা। আমার নিজের কাজটি আরও সাধারণ সমস্যার ব্যাখ্যা দেয় এখানে

পরিবর্তিত লাইন-সুইপ অ্যালগরিদম ব্যবহার করার পরামর্শ হিসাবে, যদিও স্বজ্ঞাতভাবে সহজ, আমি বিচ্ছিন্ন সেটগুলি বিবেচনা করা হলে this তা আমি নিশ্চিত নই । রবিনের এলোমেলোনাযুক্ত অ্যালগরিদমের ক্ষেত্রেও এটি একই রকম।হে(এনলগএন)

অনেক অসংলগ্ন করা সেটে নিকটতম যুগল সমস্যা সঙ্গে তার আচরণ সাহিত্য হবে বলে মনে হচ্ছে না, কিন্তু আমি পেয়েছি এই , যার অধীনে হচ্ছে কোনো দাবি তোলে , এবং এই , যা মনে হচ্ছে না কিছু সম্পর্কে কোন দাবি করা।হে(এন2)

উপরের অ্যালগরিদমটিকে প্রথম কাগজে (শান, ঝাং এবং সালজবার্গ) প্রস্তাবিত বিমানের সুইপের বৈকল্পিক হিসাবে দেখা যেতে পারে, তবুও -এক্সিস এবং কোনও বাছাইয়ের পরিবর্তে সেটগুলির মধ্যে অক্ষটি ব্যবহৃত হয় এবং সেটগুলি ট্র্যাশ করা হয় অবতরণ / আরোহী ক্রমে।এক্স


2
@ পেড্রো: দুঃখিত আমি আগে কোনও মন্তব্য করি নি (সময় নেই)। আমি আপনার উত্তরটিকে নিম্নমানের কারণটি ছিল এটি একটি খারাপ উত্তর এবং শীর্ষে থাকা উচিত হয়নি। এটি হ'ল সবচেয়ে খারাপ সমস্যা হে (এন লগ এন) এর সাথে গণ্য জ্যামিতিতে একটি সুপরিচিত সমস্যা। একটি ভাল উত্তর জানা সমস্যা (সম্ভবত একটি রেফারেন্স সহ) এবং সাধারণ সমাধানগুলিতে ইঙ্গিত করত, যার মধ্যে রয়েছে: কেডি গাছ ব্যবহার এবং উপাদান হিসাবে পরীক্ষা করা, সুইপ অ্যালগরিদম ইত্যাদির সাধারণ ধারণাটি একটি আদেশযুক্ত কাঠামোতে প্রাক প্রসেস করা এবং এটি ব্যবহার করা উচিত । 1 ডি কেস দেখুন - আরও সুস্পষ্ট ও (এন লগ এন) সেখানে।
ex0du5

2
@ ex0du5: মনে হচ্ছে আপনার নিজের উত্তর পোস্ট করা উচিত! নোট করুন যে "আরও ভাল উত্তর আছে" সাধারণত ডাউনভোটিংয়ের পক্ষে ভাল কারণ নয়; এই পরিমাপটি ভুল, স্প্যাম এবং খুব খারাপভাবে ফর্ম্যাট করা উত্তরের জন্য সংরক্ষণ করা উচিত। পেড্রোরও নয়। ডাউনওয়েটের আগে কিছু লোকের কতটা চিন্তাভাবনা করা উচিত বলে মনে হয় সে জন্য এখানে দেখুন for
রাফেল

1
@ রাফেল: আমি উত্তর দিলাম না কারণ এখানে একটি সুস্পষ্ট উত্তর ছিল এবং রেফারেন্সগুলি দেখার জন্য আমার কাছে সময় ছিল না। আপনার কীভাবে ডাউনওয়েট করবেন সে বিষয়ে আপনার উল্লেখ হিসাবে, এটি এই সাইটের জন্য একটি ভয়াবহ অ্যালগরিদম! সিএস শিক্ষার্থীদের বিশেষত আনুষ্ঠানিকতার জন্য লক্ষ্যটি না হারানোর গুরুত্বটি বোঝা উচিত। ভোটদানের লক্ষ্য হ'ল একটি র‌্যাঙ্কিংয়ের উত্তরগুলি স্থানান্তর করা যা একই সমস্যার পরবর্তী শিক্ষার্থীদের সবচেয়ে দরকারী উত্তরের দিকে পরিচালিত করবে। ভোট দেওয়ার জন্য আমার অ্যালগরিদম এটি করে। সেই আলগো: স্পষ্টতই নয় not আপনি যদি চান তবে এটি মেটা নিয়ে আলোচনা করা যেতে পারে, তবে প্রাপ্তবয়স্ক হিসাবে আমাদের উচিত আমাদের শক্তিগুলি ভালোর জন্য ব্যবহার করা, আমার মনে হয়।
ex0du5

1
@ ex0du5: আপনার হাতে এখন কিছুটা সময় আছে বলে মনে হচ্ছে। আপনি কি প্রকৃতপক্ষে প্রদর্শন করতে পারবেন যে এই দৃষ্টান্তটি আসলে "সবচেয়ে খারাপ সমস্যা সাথে পরিচিত সমস্যা "? হে(এনলগএন)
পেড্রো

1
@ ex0du5: প্রকৃতপক্ষে, নিকটতম প্রতিবেশী অনুসন্ধান, যেমন কেডি গাছ ব্যবহার করে , কেবলমাত্র গড় জটিলতা (লগইন) থাকে । সুতরাং আমরা ফিরে এক বর্গ।
পেড্রো

4

আপনি "নিকটতম যুগল" অভিযোজিত করতে পারে linesweep অ্যালগরিদম যা ।O(nlogn)

আপনার কেবলমাত্র পরিবর্তনটি করতে হবে তা হ'ল একই সেটের সাথে যুক্ত জোড়া উপেক্ষা করা।

সম্পাদনা: আমি বর্ণিত হিসাবে এটি আসলে সহজ (বা এমনকি সম্ভব) নয়। আলোচনার জন্য মন্তব্য দেখুন।


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

1
র্যান্ডমাইজড লিনিয়ার টাইম অ্যালগরিদমের জন্য, উদাহরণস্বরূপ রবিন লিপটনের ব্লগে একটি মুদ্রা ফ্লিপ করুন।
জুহো

3
আপনি কীভাবে বিচ্ছিন্ন সেটগুলির জন্য এটি বাস্তবায়ন করবেন সে সম্পর্কে কিছুটা সুনির্দিষ্ট হতে পারেন, বিশেষত রক্ষণাবেক্ষণের ক্ষেত্রে হে(এনলগএন)আবদ্ধ?
পেড্রো

ভুলের জন্য -1। আপনার লিঙ্কটি নিকটতম জোড়া লাইনসেইপ অ্যালগরিদমযুক্ত বাছাই করা সেটটিতে নির্ভর করেহে(1) উপাদানগুলি, তবে বিচ্ছিন্ন সেটগুলির ক্ষেত্রে, এই সেটটি ধারণ করে শুরু হয় এন উপাদান, তাই এটি আর নেই হে(এনলগএন), কমপক্ষে সবচেয়ে খারাপ ক্ষেত্রে না।
পেড্রো

1
@ পেড্রো: কেন এটি আরও বড় হবে? যদি কিছু হয় তবে বর্তমান প্রার্থী পয়েন্টগুলির সেট সঙ্কুচিত হওয়া উচিত।
রাফায়েল

4

এর মতো সমস্যাগুলির ধারণাটি হ'ল নিকটবর্তী নিকটবর্তী অঞ্চলের দক্ষ প্রশ্নের সন্ধানের জন্য সেটগুলির মধ্যে একটি থেকে একটি আদেশযুক্ত কাঠামো তৈরি করা। সুনির্দিষ্ট মাত্রার জন্য একটি ও (লগ এন) কোয়েরি কাঠামো উপস্থাপন করা ক্লাসিক কাগজটি হ'ল:

শমোস এবং হোয়ে ভোরোনাই সমাধানের জন্য

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

সুতরাং, এই সমস্যার প্রাথমিক সমাধান হ'ল:

  1. সেট সেট এ নিন এবং আপনার পছন্দের দক্ষতম নিকটবর্তী নিকটবর্তী ক্যোয়ারী কাঠামোটি তৈরি করুন। এই নির্মাণ পদক্ষেপটি হ'ল (এন লগ এন) [উপপাদ্য 4 দেখুন]।
  2. বি এর প্রতিটি উপাদানের জন্য, নিকটতম প্রতিবেশীর জন্য ক্যোয়ারী কাঠামো এ। প্রতিটি ক্যোয়ারী হ'ল (লগ এন) [উপপাদ্য 15, নির্দিষ্ট মাত্রা দেখুন], সুতরাং বি এর সমস্ত পয়েন্টের জন্য মোট ক্যোয়ারির সময় হ'ল (এন লগ এন)।
  3. প্রতিটি বি-তে নিকটতম পয়েন্টের ফলাফল পুনরুদ্ধার করা হলে, এটি দূরত্বে অর্ডার করা কাঠামোতে রাখুন। এটি হ'ল (লগ এন) প্রতিটি ফলাফল .োকান, বা সকলের জন্য ও (এন লগ এন)।
  4. সমস্ত বিয়ের দিকে নজর দেওয়া হলে আপনি দ্রুত (ও (1)) এ এর ​​বিন্দুতে সবচেয়ে ছোট প্রতিবেশী দূরত্বের সাথে অর্ডারযুক্ত কাঠামোতে পয়েন্ট বি পেতে পারেন quickly

যেহেতু প্রতিটি পদক্ষেপের জটিলতার দিকে তাকিয়ে দেখা যায়, মোট জটিলতা হ'ল (এন লগ এন)। ক্লাসিক কাগজপত্র না দেখে আধুনিক পাঠকের পক্ষে এটি অনেকগুলি অ্যালগরিদম বইতে আচ্ছাদিত, যেমন স্কিয়েনার "দ্য অ্যালগরিদম ডিজাইন ম্যানুয়াল"।


1
"উদাহরণস্বরূপ, আর্টিয়ামের সমাধানটি এই ফর্মটিতে লেখা যেতে পারে এবং এটি সম্পূর্ণ বৈধ।" - ভাল, আপনি এখানে যা প্রস্তাব করেন তা আর (খাঁটি) সুইপ-লাইন অ্যালগোরিদম হয় না, তাই আমি সে সম্পর্কে জানি না।
রাফেল

@ রাফেল: অবশ্যই। সুইপলাইন অ্যালগরিদমগুলি এখানে বর্ণিত হিসাবে অর্ডারযুক্ত কাঠামোতে পয়েন্টগুলি প্রিপ্রোসেস করে। এমনকি আমি তার উত্তরের অধীনে ফরচুনের অ্যালগরিদমের সাথে সংযুক্ত করেছি, যা দেখায় যে সুইপলাইন অ্যালগরিদমটি কেবল ভোরোনাই অ্যালগরিদমের একটি উদাহরণ। সমাধানটি ক্যোয়ারী কাঠামোর জেনেরিক রাখার কারণ হ'ল এখানে প্রচুর পরিমাণে জ্যামিতিক প্রক্রিয়া রয়েছে যা এর জন্য বিকাশ করা হয়েছে।
ex0du5

পুনরাবৃত্তি করার সময় আপনার কোনও নির্দিষ্ট ক্রমের দরকার নেই বি, যদিও অর্ডারটি (বহু / সমস্ত?) সুইপলাইন অ্যালগরিদমগুলির জন্য প্রয়োজনীয় (সুতরাং নামটি, আমি অনুমান করি)।
রাফেল

1

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

এই সমস্যার জন্য নিম্ন সীমাবদ্ধ হয় হে(এন*লগএন)বীজগণিত সিদ্ধান্ত গাছের মডেল অধীনে। আমি এখানে তার প্রমাণের মোটামুটি স্কেচ দেব।

আমরা এলিমেন্ট স্বতন্ত্রতার সমস্যা E থেকে C হ্রাস করব C.

  • ই তে ইনপুট: এস={একটি1,একটি2,একটি3,,একটিএন}
  • দিন ε > 0 ছোট ছোট ভগ্নাংশ হতে পারে
  • এ = {(একটিআমি,0):1আমিএন}, বি={(একটিআমি+ +ε):1আমিএন}
  • এখন যদি আমরা সেট এ এবং বি এর মধ্যে সবচেয়ে কম দূরত্ব (d) খুঁজে পেতে পারি তবে আমরা উপাদানগুলির স্বতন্ত্রতার সমস্যাটি অতিরিক্ত সিদ্ধান্ত নিতে পারি হে(এন) সময় হিসাবে নিম্নলিখিত
    • সেট এস যদি একটি ডুপ্লিকেট থাকে এবং কেবলমাত্র = = ε

আমরা জানি যে এলিমেন্ট স্বতন্ত্রতা সমস্যাটি সিদ্ধান্ত নেওয়ার জন্য রানটাইমের উপর নিম্ন সীমাটি হে(এন*লগএন)। সুতরাং, হ্রাস দ্বারা নিম্ন সীমাটিও আমাদের সমস্যার জন্য প্রযোজ্য।

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