সুইপ লাইন দ্বারা আয়তক্ষেত্রের কভারেজ


9

দুর্ভাগ্যক্রমে আমি নিজেই একটি মহড়া দিয়েছি I

আয়তক্ষেত্রগুলির একটি সেট রয়েছে R1..Rn এবং একটি আয়তক্ষেত্র R0। প্লেন সুইপিং অ্যালগরিদম ব্যবহার করে তা নির্ধারণ করেR0 সম্পূর্ণরূপে সেট দ্বারা আচ্ছাদিত করা হয় R1..Rn

সুইপ লাইন অ্যালগোরিদমের নীতি সম্পর্কে আরও তথ্যের জন্য এখানে দেখুন

শুরু থেকে শুরু করা যাক। প্রথমদিকে আমরা সুইপ লাইন অ্যালগরিদমকে লাইন সেগমেন্ট ছেদগুলির জন্য আলগোরিদিম হিসাবে জানি যাতে দুটি ডেটা স্ট্রাকচার প্রয়োজন:

  • একটি সেট Q ইভেন্ট পয়েন্টগুলির (এটি বিভাগগুলি এবং ছেদ পয়েন্টগুলির শেষ পয়েন্টগুলি সঞ্চয় করে)
  • একটি স্ট্যাটাস T (বিভাগগুলির সেটের জন্য গতিময় কাঠামো সুইপ লাইন ছেদ করছে)

জেনারেল আইডিয়া: ধরে নিন যে সুইপ লাইনlএকটি উল্লম্ব রেখা যা বাম দিক থেকে আয়তক্ষেত্রের সেট কাছে আসতে শুরু করে। সমস্ত বাছাই করুনx আয়তক্ষেত্রগুলির স্থানাঙ্ক এবং এগুলিতে সঞ্চয় করে Q ক্রমবর্ধমান ক্রম - নেওয়া উচিত O(nlogn)। প্রথম ইভেন্ট পয়েন্ট থেকে শুরু করুন, প্রতিটি বিন্দুর জন্য প্রদত্ত আয়তক্ষেত্রের সেট নির্ধারণ করুন givenx সমন্বয় করুন, চৌরাস্তা আয়তক্ষেত্রগুলির ক্রমাগত বিভাগগুলি সনাক্ত করুন এবং তারা কভার করে কিনা তা পরীক্ষা করুন R0 সম্পূর্ণরূপে বর্তমান xতুল্য। সঙ্গেT বাইনারি গাছ হিসাবে এটি গ্রহণ করা হবে O(logn)। কোন অংশ যদিR0 উন্মোচিত যে R0 সম্পূর্ণরূপে আচ্ছাদিত নয়।

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

সমস্যাটি কীভাবে তৈরি এবং বজায় রাখা যায় T, এবং বিল্ডিং এবং রক্ষণাবেক্ষণের জটিলতা Tহয়। আমি ধরে নিয়েছি যে এই ক্ষেত্রে আর গাছগুলি খুব কার্যকর হতে পারে তবে আমি দেখতে পেয়েছি যে আর ট্রিগুলি ব্যবহার করে ন্যূনতম সীমাবদ্ধ আয়তক্ষেত্রটি নির্ধারণ করা খুব কঠিন।

কীভাবে এই সমস্যাটি সমাধান করবেন এবং বিশেষত কীভাবে তৈরি করবেন সে সম্পর্কে আপনার কোনও ধারণা আছে? T?


1
এই অক্ষগুলি সংযুক্ত আয়তক্ষেত্রগুলি না কি? (আপনি এটি যে কোনও উপায়ে করতে পারেন, তবে তারা যদি এটি হয় তবে এটি আরও সহজ))
লুই লন্ডন

@ লুইস, আসুন এটি কিছুটা সহজ করুন, ধরে নেওয়া যাক অক্ষের সাথে সংযুক্ত আয়তক্ষেত্র রয়েছে তবে অবশ্যই সাধারণ ক্ষেত্রে আরও আকর্ষণীয়
com

কোন আয়তক্ষেত্রের কোন বিন্দু ইভেন্ট পয়েন্ট? সব কোণে, উপরের বাম এক ...?
রাফায়েল

@ রাফেল, কেবল এক্স এর ইভেন্ট পয়েন্টগুলি রয়েছে
কম

উত্তর:


6

চলো আমরা শুরু করি nঅক্ষ-সংযুক্ত আয়তক্ষেত্রগুলি, যেহেতু এক ধরণের সহজ প্রত্যক্ষ যুক্তি রয়েছে। আমরা একটি উল্লম্ব লাইন পরিষ্কার করব। ইভেন্টগুলি আয়তক্ষেত্রগুলির অনুভূমিক প্রান্তগুলির শেষ বিন্দু। সুইপ করার সময় আমরা সুইপ লাইনে "অন্তর্ভুক্ত" থাকা ব্যবস্থার একটি সেট বজায় রাখিRi, i1:

  • আয়তক্ষেত্র দ্বারা আবৃত উল্লম্ব বিরতি যুক্ত করুন Ri সুইপ লাইনে যখন আমরা প্রথম মুখোমুখি হই Ri
  • আয়তক্ষেত্র দ্বারা আচ্ছাদিত উল্লম্ব বিরতি সরান Ri সুইপ লাইন থেকে যখন এটি চলে যায় Ri

বাইনারি ট্রি দিয়ে এটি করা সহজ যাতে আপডেটগুলি লাগে O(logn)সময়। (সমস্যাটি মূলত, 1-মাত্রিক।

তারপরে আপনি কেবল এটি পরীক্ষা করে দেখুন R0, উন্মুক্ত বিরতিগুলির কোনওটিই এর উল্লম্ব স্প্যানটিকে কখনও ছেদ করে না R0। পুরো বিষয়টি হ'লO(nlogn) সময় একটি O(n) স্থান।

সাধারণ ক্ষেত্রে, সুস্পষ্ট কৌশলটি এত দ্রুত নয়। আয়তক্ষেত্র দ্বারা প্ররোচিত পুরো প্ল্যানার মহকুমার গণনা করতে স্ট্যান্ডার্ড সুইপ লাইন অ্যালগরিদম ব্যবহার করুন।

স্পষ্টত কিছু ডিস্কের মতো সেট F মুখ কভার R0। নিজেই, এটি আমাদের যথেষ্ট পরিমাণে বলে না, যেহেতু আমরা যা আগ্রহী তা হ'ল এই মুখগুলির কোনওটি ভিতরে রয়েছে কিনাR0এবং অন্যান্য আয়তক্ষেত্রের বাইরে। এটি করার জন্য, আমরা নির্মাণকে কিছুটা সংশোধন করি, যাতে আমরা যখন একটি প্রান্ত যুক্ত করি, আমরা এর অভ্যন্তরের আয়তক্ষেত্রের পরিচয় দিয়ে একপাশে ট্যাগ করি। এটি যুক্ত করেO(1) ওভারহেড, তাই নির্মাণ O(n2logn)সময়; আয়তক্ষেত্রগুলিতে কোনও অনুমান ছাড়া, আউটপুট হতে পারেΩ(n2) আকারে, তাই আমরা সবচেয়ে বেশি জায়গাটি সবচেয়ে খারাপ ক্ষেত্রে ব্যবহার করছি, তাই সময়টি "আউটপুট সংবেদনশীল" না হলেও "অস্তিত্বের অনুকূল"।

অবশেষে, R0 কোনও মুখের মধ্যে না থাকায় এতক্ষণ coveredাকা থাকে F শুধুমাত্র একটিতে প্রান্ত হিসাবে ট্যাগ নেই Ri। মুল বক্তব্যটি যদি একটি কিনারা হয়f ভিতরে আছে Ri, তারপর পুরো fপাশাপাশি। একটি লাইন উপর ঝাড়ু কল্পনা করুনf orthogonally এই প্রান্ত বরাবর: এটি কেবল ছেড়ে যেতে পারে Ri হয় বাইরে f অথবা f এর একাধিক প্রান্ত দ্বারা আবদ্ধ Ri

সুতরাং উপসংহারটি হল বিশেষ কেসটি O(nlogn) এবং সাধারণ এক O(n2logn) কমপক্ষে, তবে আমার সন্দেহ হয় এটি উন্নত হতে পারে।


আপনার উত্তর জন্য আপনাকে অনেক ধন্যবাদ। সাধারণ বিষয় সম্পর্কে আমি কয়েকটি বিষয় পরিষ্কার করতে চাই।Q - ইভেন্ট পয়েন্ট হয় x নির্ধারিত স্থানাঙ্ক, T - স্থিতি - "অনাবৃত" অন্তর, যেমন আমি বুঝতে পারি যে এটি অন্তরের সংবাদদাতা xi এক Rএটি অন্য কোনও দ্বারা অনাবৃত Ri,i1। সঙ্গে অংশR0বুঝলাম না। আমি মনে করি প্রতিটি পুনরাবৃত্তির উপর (যোগ করা) আমাদের বিরতিটি ছেদ করে কিনা তা পরীক্ষা করা উচিতR0, এটা কি ঠিক?
com

সাধারণ ক্ষেত্রে, আমি মূলত ধরেই নিচ্ছি যে আপনি কীভাবে আয়তক্ষেত্র দ্বারা প্ররোচিত পুরো প্ল্যানার মানচিত্রটি তৈরি করতে জানেন এবং তারপরে আমি যুক্তি দিচ্ছি যে এর চেহারা সম্পূর্ণরূপে রয়েছে Ri যদি এর একটি সীমানা প্রান্তটি "ভিতরে" তে থাকে Ri। আপনি সুইপ লাইনে যুক্ত হওয়ার পরে বিভাগগুলির "অভ্যন্তরীণ" এবং "বাইরের" দিকগুলি কেবল রেকর্ড করে সাধারণ সুইপ অ্যালগরিদমগুলিতে এটি (যেমন, "মার্কস" বই থেকে) ট্র্যাক করতে পারেন।
লুই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.