সাধারণত, আসুন s ( U , Q ) = { V | ভি ∈ ইউ এবং ভি ⊆ কিউ } যেখানে ইউ , কিউ , এবং ভি সমস্ত সেট উপস্থাপন করে এবং ইউ আরও নির্দিষ্ট করে সেটগুলির একটি সেট উপস্থাপন করে। উদাহরণস্বরূপ অনুরোধে জন্য, ইউ সঙ্গে একটি পাকপ্রণালীর বিভিন্ন রেসিপি জন্য প্রয়োজন বোধ করা উপাদানগুলো (এর সেট) একটি সেট হতে পারে প্রশ্নঃ উপাদানগুলো সেট প্রতিনিধিত্বমূলক আমি ভী একটি রেসিপি আমি ঐ উপাদানের সঙ্গে বানাতে পারে উপস্থাপন করে। ক্যোয়ারী গুলি ( ইউ , প্রশ্ন) প্রশ্নের সাথে মিলে যায় "এই উপাদানগুলি দিয়ে আমি কীভাবে তৈরি করতে পারি?"
আমি কি খুঁজছি একটি ডাটা উপস্থাপনা যে ইনডেক্স হয় ইউ এমনভাবে যে এটা দক্ষ প্রশ্নের সমর্থন গুলি ( ইউ , প্রশ্ন ) যেখানে প্রশ্ন এবং সকল সদস্যদের ইউ সাধারণত সব সদস্যদের ইউনিয়ন তুলনায় অল্প হবে ইউ । তদতিরিক্ত, আমি এটি দক্ষতার সাথে ইউ আপডেট করতে সক্ষম হতে চাই (উদাহরণস্বরূপ, একটি রেসিপি যুক্ত করুন বা মুছে ফেলুন)।
আমি সাহায্য করতে পারি না তবে ভাবতে পারি যে এই সমস্যাটি অবশ্যই ভালভাবে বুঝতে হবে তবে আমি এর জন্য কোনও নাম বা রেফারেন্স খুঁজে পাইনি able এটিকে কীভাবে দক্ষতার সাথে সমাধান করার কৌশল বা এমন জায়গা সম্পর্কে আমি আরও পড়তে পারি সে সম্পর্কে কি কেউ জানেন?
যতদূর সমাধানের বিষয়ে চিন্তাভাবনা করা যায়, আমার মনে হয়েছিল সেট ইউ এর জন্য সিদ্ধান্ত গাছ তৈরি করা । গাছের প্রতিটি নোডে, প্রশ্নটি "আপনার উপাদানগুলির তালিকায় কি x রয়েছে ?" উত্তর দিয়ে মুছে ফেলা ইউ এর সদস্য সংখ্যা সর্বাধিক করতে এক্স এর সাথে জিজ্ঞাসা করা হবে । হিসাবে ইউ আপডেট করা হয়েছে, এই সিদ্ধান্ত গাছ পুনরায় সুষম সঠিক ফলাফল খুঁজে নিতে প্রয়োজনীয় প্রশ্ন সংখ্যা কমানোর জন্য হতে করার প্রয়োজন হবে। আর একটি চিন্তাধারা হ'ল ইউ- কে একটি এন- ডাইমেনশনাল বুলিয়ান 'অক্ট্রি' (যেখানে এন অনন্য উপাদানের সংখ্যা) এর মতো কিছু দিয়ে প্রতিনিধিত্ব করে ।
আমি বিশ্বাস করি যে "এই উপাদানগুলি দিয়ে কী রেসিপি তৈরি করা যেতে পারে?" যে কোনও উপাদানগুলির পাওয়ারেটের সাথে কুকবুকের (প্রয়োজনীয় উপাদানের সেটগুলির) রেসিপিগুলির কার্টেসিয়ান পণ্য গ্রহণ করে এবং উভয় উপাদান সমান হয় এমন জোড়গুলির জন্য ফলিত অর্ডারযুক্ত জোড়গুলি ফিল্টার করে উত্তর দেওয়া যায়, তবে এটি একটি নয় দক্ষ সমাধান এবং আমি যা সম্পর্কে জিজ্ঞাসা করছি তা হল এই ধরণের অপারেশন কীভাবে অনুকূল করা যায়; কীভাবে একজন এসকিউএল-তে এটি রচনা করবেন যাতে এটি দক্ষ হবে এবং এসকিউএল কী করে যে এটি কার্যকর হতে দেয়?
যদিও আমি রেসিপিগুলির একটি রান্নাঘরের চিত্র এবং উপাদানগুলির সেট ব্যবহার করি তবে আমি অনুমান করি যে 'রেসিপি' এবং 'উপাদানের সংখ্যা' খুব বড় হবে (প্রতিটি কয়েক হাজার পর্যন্ত), যদিও উপাদানের সংখ্যা প্রদত্ত রেসিপিতে এবং প্রদত্ত উপাদান সেটে উপাদানের সংখ্যা তুলনামূলকভাবে কম হবে (সাধারণত একটি 'সাধারণ' রেসিপি'র জন্য 10-50 এবং একটি সাধারণ 'উপাদান সেট'-এর জন্য প্রায় 100)। উপরন্তু, সবচেয়ে সাধারণ অপারেশন হবে ক্যোয়ারী গুলি ( ইউ , প্রশ্ন ,) তাই এটা সবচেয়ে অনুকূল হওয়া উচিত। এর অর্থ হ'ল একটি নিখুঁত বলের অ্যালগরিদম যাতে প্রতিটি রেসিপিটি পরীক্ষা করতে হয় বা প্রতিটি উপাদানগুলির উপর অপারেটিং প্রয়োজন তা অবশ্য নিজেরাই অনস্বীকার্যভাবে ধীর হয়ে যাবে। চতুর ক্যাচিং সহ,