কম্পিউটার টিউটোরিয়াল

বहুমাত্রিক সার্চ স্ট্রাকচার হিসেবে BSP ট্রি

স্পেশিয়াল সার্চ স্ট্রাকচার उन्हीं আইডিয়াগুলোর ওপর ভিত্তি করে যা কম্পিউটার সাইয়েন্সে ৬০ এবং ৭০ এর দশকে আবিষ্কৃত হয়েছিল বড় সেট অফ সিম্বলিক ডেটা দ্রুত প্রসেস করার সমস্যা সমাধান করতে, জ্যামিতিক ডেটার বিপরীতে, যেমন মানুষের নামের লিস্ট। এটি আবিষ্কৃত হয়েছিল যে একটি নামের লিস্টকে アルফাবেটিক্যালি সর্ট করে, এবং সর্টেড লিস্টকে একটি অ্যারে-এ স্টোর করে, আমরা কম্পিউট করতে পারি কিনা কোনো নতুন নাম ইতিমধ্যে লিস্টে আছে কিনা log2n অপারেশনে বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে,而不是 n/2 এক্সপেক্টেড অপারেশন যা সিকুয়েনশিয়াল সার্চের সাথে দরকার হতো। এটি একটি ভালো উদাহরণ স্ট্রাকচার এক্সট্রাক্ট করার জন্য (অ্যালফাবেটিক্যাল অর্ডার) যা নামের লিস্টে একজিস্ট করে এবং সেই স্ট্রাকচার এক্সপ্লویت করা পরবর্তী অপারেশনে (এক নাম লুকআপ) কম্পিউটেশন কমাতে।

তবে, যদি কেউ অডিশন এবং ডিলিশন অফ নাম দিতে চায় যখন একটি সর্টেড লিস্ট মেইন্টেইন করা থাকে, তবে একটি ডাইনামিক ডেটা স্ট্রাকচার দরকার, অর্থাৎ যেটি পয়েন্টার বাস্তবায়ন করে। সাদা একটি সবচেয়ে কমন উদাহরণ এমন ডেটা স্ট্রাকচার হলো কিছু না এক বাইনারি সার্চ ট্রি।

একটি বাইনারি সার্চ ট্রির ক্ষেত্রে, যেখানে এটি ব্যবহার করা হয় ইন্টিজারের একটি সেট রিপ্রেজেন্ট করতে যেমন A = {1, 2, 5, 6, 7, 9} রিয়াল লাইন-এ লাইড। কম্পিউট করতে পারি কিনা একটি নাম্বার/পয়েন্ট ইতিমধ্যে ট্রিতে আছে কিনা, অ্যানেবল টু ইনসার্ট দ্য পয়েন্ট ইন্টু দ্য ট্রি অ্যান্ড টু ফলো দ্য পাথ করেসপন্ডিং টু দ্য সিকোয়েন্স অফ নেস্টেড ইন্টারভ্যালস দ্য কন্টেইনস দ্য পয়েন্ট। একটি ব্যালেন্সড ট্রির জন্য, এই প্রসেস নো মোর দান O(log n) স্টেপস কনসুম করবে; ফ্যাক্টে, আমরা একটি বাইনারি সার্চ করেছি, কিন্তু একটি ট্রি ব্যবহার করে অ্যারে বদলে। এখন, ট্রি নিজে এনকোড করতে পারে সার্চ অ্যালগরিদমের একটি পোर्शन যেহেতু এটি ডিসাইড করে সার্চ এডভ্যান্স করার অর্ডার।

এটি আমাদের ফেরত আনে পার্টিশনিং ট্রিসের দিকে, সেগুলো বিবেচিত হয় বাইনারি সার্চ ট্রির জেনারেলাইজেশন ডাইমেনশন > 1 অর্থাৎ মাল্টি-ডাইমেনশনাল (১ডি-তে, তারা এসেনশিয়ালি সেম)। ফ্যাক্টে, একটি পার্টিশনিং ট্রি বিল্ড করা কল্পনা করা যায় কুইক সর্টের একটি জ্যামিতিক ভার্সন হিসেবে।

পরিবর্তন (ডিলিশন এবং ইনসার্শন) অর্জিত হয় ট্রি মার্জিং দ্বারা, সাদৃশ্য মার্জিং সর্টেড লিস্টস ইন মার্জ সর্ট।

তবে, যেহেতু পয়েন্টস স্পেস ডিভাইড করে না যেকোনো ডাইমেনশন > 1-এ, আমাদের হাইপারপ্লেন ব্যবহার করতে হবে যারা দ্বারা সাবডিভাইড করতে।

হাইপারপ্লেন সর্বদা সাবডিভাইড বা পার্টিশন করে একটি রিজন দুটি হাফ স্পেসে ইরেসপেক্টিভ অফ দ্য ডাইমেনশন।

  1. ডেটা স্ট্রাকচরে B+ ট্রি

  2. ডেটা স্ট্রাকচরে BSP ট্রি

  3. ডেটা স্ট্রাকচরে রেঞ্জ ট্রি

  4. মাল্টি-ওয়ে ট্রি (Multi-Way Trees)