বুলিয়ান ম্যাট্রিক্সে দ্বীপ গণনা করা


9

বুলিয়ান ম্যাট্রিক্স একটি দেওয়া , টি এন্ট্রিগুলি সমুদ্রকে প্রতিনিধিত্ব করবে এবং টি প্রবেশদ্বারগুলি ভূমির প্রতিনিধিত্ব করবে। দ্বীপটিকে উল্লম্ব বা অনুভূমিকভাবে সংজ্ঞায়িত করুন (তবে ত্রিভুজ নয়) সংলগ্ন টি এন্ট্রি।এন×মিএক্স011

মূল প্রশ্নটি ছিল একটি প্রদত্ত ম্যাট্রিক্সে দ্বীপের সংখ্যা গণনা করা। লেখক একটি পুনরাবৃত্ত সমাধান ( মেমরি) বর্ণনা করেছেন।হে(এনমি)

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


countফাংশনটির জন্য নির্দিষ্ট ইনপুটগুলির জন্য প্রত্যাশিত আউটপুটগুলির কয়েকটি উদাহরণ :

তোমার দর্শন লগ করাএনটি(২010111২010)=1;তোমার দর্শন লগ করাএনটি(101২010101)=5;তোমার দর্শন লগ করাএনটি(111101111)=1;

তোমার দর্শন লগ করাএনটি(1111100100010110100011011111)=2

তোমার দর্শন লগ করাএনটি(101111)=1


1
1. "অরথোগোনাল" বলতে কী বোঝ? আপনি কি কোনও সংযুক্ত উপাদান বলতে চান? ২. ম্যাট্রিক্স কীভাবে সংরক্ষণ করা হয় সে সম্পর্কে আমরা কী ধরে নিতে পারি? আমরা কী ধরে নিতে পারি যে এটি বাহ্যিক স্টোরেজে সঞ্চয় করা আছে (যেমন, একটি ধীর হার্ড ডিস্ক), যাতে আপনি যে কোনও অংশটি পড়তে পারেন, তবে এটি একবারে এটির ব্লকটি পড়তে আরও দ্রুত হবে? অথবা আমরা স্ট্রিমিং ফ্যাশনে ম্যাট্রিক্স পাই, যেখানে একবার আমরা কিছুটা ইনপুট ম্যাট্রিক্স পেয়েছি আমরা কখনই সেই বিট ইনপুটটি আর দেখতে পাব না?
ডিডাব্লিউ

1
শীতল ধন্যবাদ. আমি আপনাকে এই পয়েন্টগুলি স্পষ্ট করতে প্রশ্ন সম্পাদনা করতে উত্সাহিত করি। যদি এটি স্ট্রিমিং হয় তবে ম্যাট্রিক্সের বিটগুলি কী অর্ডারে আসে? একটি সারির মধ্যে বাম থেকে ডান স্ক্যান করা হচ্ছে, তারপরে পরবর্তী সারিতে নীচে?
DW

1
এই সমস্ত বিবরণ অন্তর্ভুক্ত করতে দয়া করে প্রশ্ন সম্পাদনা করুন। মন্তব্যগুলি সংক্ষিপ্ত।
যুবাল ফিল্মাস

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

1
প্রয়োজনীয় সময়ের জটিলতা কী?
হেনগ্সিন 11

উত্তর:


4

এখানে একটি অ্যালগরিদমের স্কেচ রয়েছে যা একবারে কেবল দুটি সারি স্মৃতিতে রাখে হে(মি)স্মৃতি. তবে যেহেতু আপনি ইস্যু ছাড়াই ম্যাট্রিক্সের ট্রান্সপোসে এই অ্যালগরিদমটি চালাতে পারেন তাই আসল জটিলতাহে(সর্বনিম্ন(মি,এন))স্মৃতি. প্রসেসিং সময় হয়হে(মিএন)

  1. আরম্ভ. প্রথম সারিতে স্ক্যান করুন এবং সেই সারিটির সমস্ত সংযুক্ত সাবস্ট্রিংগুলি সন্ধান করুন। প্রতিটি অনাহুতকে একটি অনন্য ইতিবাচক আইডি অন্তর্ভুক্ত করুন এবং এটি ভেক্টর হিসাবে সংরক্ষণ করুন যেখানে শূন্যএক্স শূন্য এবং অন্যথায় অনন্য পজিটিভ আইডি।

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

    010402220333300506607080009990010402220333300504402020003330

    এই অ্যালগরিদমের নির্ভুলতার জন্য পূর্ববর্তী সারিটি আপডেট করার দরকার নেই, কেবলমাত্র বর্তমান।

    এটি হয়ে যাওয়ার পরে, পূর্ববর্তী সারিতে থাকা সমস্ত আইডির সেটটি সন্ধান করুন যা পরের সারিতে সংযুক্ত হয় না, নকলগুলি ত্যাগ করে । আপনার দ্বীপগুলির চলমান কাউন্টারে এই সেটটির আকার যুক্ত করুন।

    আপনি এখন আগের সারিটি বাতিল করতে এবং বর্তমান সারিটি পূর্ববর্তী সারিতে নির্ধারণ করে এগিয়ে যেতে পারেন।

  3. শেষ সারির ভানটি সঠিকভাবে পরিচালনা করতে নীচের দিকে আরও একটি সারি রয়েছে শূন্য এক্স এবং আবার পদক্ষেপ 2 চালান।


6

Orlp ব্যবহার করে একটি সমাধান দেয় হে(এন) স্থান শব্দ, যা হয় হে(এনলগএন) স্থান বিট (সরলতার জন্য অনুমান যে এন=মি)। বিপরীতে, এটি দেখানো সহজΩ(এন) আপনার সমস্যার জন্য সেট বিরক্তি হ্রাস করে জায়গার বিটগুলি প্রয়োজন।

মনে করুন যে অ্যালিসের একটি বাইনারি ভেক্টর রয়েছে এক্স1,...,এক্সএন এবং বব একটি বাইনারি ভেক্টর ধারণ করে Y1,...,Yএন, এবং তারা জানতে চান যে কোনও সূচক রয়েছে কিনা আমি যেমন যে এক্সআমি=Yআমি=1। তারা আপনার জন্য অ্যালগরিদম চালায়2×(2এন-1) যার সারি ম্যাট্রিক্স এক্স1,0,এক্স2,0,...,0,এক্সএন এবং Y1,0,Y2,0,...,0,Yএন। প্রথম সারিটি পড়ার পরে, এলিস ববকে প্রেরণ করেΣআমিএক্সআমি পাশাপাশি মেমরির বিষয়বস্তু, যাতে বব অ্যালগরিদম সম্পূর্ণ করতে এবং তুলনা করতে পারে Σআমি(এক্সআমি+ +Yআমি)সংযুক্ত উপাদান সংখ্যা। যদি দুটি সংখ্যার মিল হয় তবে দুটি ভেক্টর বিযুক্ত হয় (কোনও সূচক নেইআমি), এবং বিপরীতভাবে. যেহেতু সেট ডিসঅজিনিস্টনেসের কোনও প্রোটোকল প্রয়োজনΩ(এন) বিটস (এটি যদি একটি ছোট ধ্রুবক সম্ভাবনার সাথে ভুলও করতে পারে), আমরা একটি হ্রাস করি Ω(এন) নিম্ন সীমাবদ্ধ, যা এমনকি এলোমেলো প্রোটোকলগুলির জন্য ধারণ করে যা কিছু ছোট ধ্রুবক সম্ভাবনার সাথে ভুল হওয়ার অনুমতি দেয়।

ননক্রসিং পার্টিশন ব্যবহার করে আমরা অরলপের সমাধানটিতে উন্নতি করতে পারি । আমরা একের পর এক ম্যাট্রিক্স সারিটি পড়ি। প্রতিটি সারিটির জন্য, আমরা মনে করি যে পূর্ববর্তী সারিগুলির মধ্য দিয়ে যে 1 টি সংযুক্ত রয়েছে via সংশ্লিষ্ট পার্টিশনটি ননক্রসিংয়ের, এবং তাই ব্যবহার করে এনকোড করা যেতে পারেহে(এন)বিটস (যেহেতু ননক্রসিং পার্টিশনগুলি কাতালান সংখ্যার দ্বারা গণনা করা হয়, যার বৃদ্ধির হার ফ্যাকটোরিয়াল না হয়ে তাত্পর্যপূর্ণ)। নিম্নলিখিত সারিটি পড়ার সময়, আমরা এটি প্রতিনিধিত্বমূলক বজায় রাখি এবং যখনই কোনও অংশের সমস্ত প্রান্ত বর্তমান সারিতে সংযুক্ত না হয় তখন কাউন্টার বাড়িয়ে তুলি (কাউন্টারটি অতিরিক্ত লাগেহে(লগএন)বিট)। অরলপের সমাধান হিসাবে, আমরা ম্যাট্রিক্সের প্রক্রিয়া শেষ করতে জিরোগুলির একটি চূড়ান্ত ডামি সারি যুক্ত করি। এই সমাধান ব্যবহার করেহে(এন) বিটস, যা আমাদের নিম্ন সীমানা প্রদত্ত asympototically অনুকূল।

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