মানচিত্রের গাছের জন্য সর্বোত্তম ডেটা কাঠামো কী।


9

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

উদাহরণস্বরূপ, একটি মূল নোড থাকতে পারে:

root = {'car':1, 'boat':2}

এবং 2 বাচ্চা, প্রতিটি প্যারেন্ট ম্যাপে একটি উপাদান যুক্ত করে

child1 = {'car':1, 'boat':2, 'jet':35}
child2 = {'car':1, 'boat':2, 'scooter':-5}

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

আমি ভাবছিলাম সম্ভবত একটি স্মার্ট হ্যাশ ফাংশন রয়েছে যার জন্য আমি এটি ব্যবহার করতে পারি তবে কিছুই নিয়ে আসতে পারিনি।

নিষ্পাপ দৃষ্টিভঙ্গি প্রতিটি নোডে নতুন যুক্ত হওয়া এন্ট্রিগুলি একটি মানচিত্রে সংরক্ষণ করে এবং যদি কিছু না পাওয়া যায় তবে গাছটি উপরে নিয়ে যাবে। আমি এটি পছন্দ করি না কারণ এটি গাছের গভীরতার উপর নির্ভর করে।


সুতরাং প্রতিটি নোড এমন কোনও মানচিত্রের প্রতিনিধিত্ব করে যা পিতামাতায় সঞ্চিত মানচিত্রকে সংশোধন করে?
সুরেশ ভেঙ্কট

এছাড়াও, আপনি গণিত বা কার্টোগ্রাফিক অর্থে মানচিত্র বলতে চান?
সুরেশ ভেঙ্কট

আমি গণিত / সিএস অর্থে একটি মানচিত্র বোঝাতে চাইছি। উদাহরণস্বরূপ STL এ মানচিত্র পছন্দ করুন।
ফ্রিজা

@ সুরেশ: মনে হচ্ছে এটি পরিমার্জন নয়। যদি আমি প্রশ্ন ঠিক, একটি শিশু নোড যোগ তার পিতা বা মাতা নোডের মানচিত্রে নতুন উপাদান।
জুলকা সুমেলা

এবং প্রথম প্রশ্নের উত্তর দেওয়ার জন্য, প্রতিটি নোড আরও কী / মান জোড় যুক্ত করা হয়েছে সেই অর্থে মানচিত্রটিকে সংশোধন করে।
ফ্রিজা

উত্তর:


10

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


5
তবে এই উদাহরণটি দেখায় না যে আপনাকে অবশ্যই অতিরিক্ত বাজে তথ্য সংরক্ষণ করতে হবে (অর্থাত, প্রতিটি সন্তানেরও আপনাকে রুট নোডের এন্ট্রিগুলি নকল করতে হবে)!
Jukka Suomela

আমি বিভ্রান্ত গভীরতার গাছে1 সঙ্গে n নোডগুলি এটি পরিষ্কার যে আপনি সঞ্চয় করতে পারবেন না m বাঁধা o(m)স্থান। আপনার উদাহরণ কি আরও কিছু দেখাচ্ছে?
রাদু গ্রেগোর

15

প্রথমত, আমি মনে করি আপনি "মানচিত্র" বলতে যা বোঝায় তা হ'ল টিসিএস লিঙ্গোর একটি "অভিধান"। দ্বিতীয়ত, "আদর্শভাবে এখনও চেহারাটি হবে" এই বাক্যাংশটি আমি বুঝতে পারি নাO(logN)", যেহেতু একটি অভিধানে অনুসন্ধানে বিভিন্ন হ্যাশ টেবিলের সাথে ও (1) সময় লাগে Third তৃতীয়ত, আপনি সমস্যাটি স্থিতিশীল বা গতিশীল কিনা তা বলেননি; আমি স্থির ধরে নিচ্ছি।

এই সমস্যার সর্বোত্তম জটিলতা হ'ল Θ(পূর্বসূরি অনুসন্ধান), যেমন O(lglgN)ভ্যান Emde Boas ব্যবহার। আপনার শব্দের আকার হলে এটি সর্বোত্তমΘ(lgn); অনুকূল পূর্বসূরি সীমার জন্য http://people.csail.mit.edu/mip/papers/pred/pred.pdf দেখুন ।

সমস্যার আক্রমণ করার উপযুক্ত উপায় হ'ল একটি গ্লোবাল হ্যাশ টেবিল তৈরি করা এবং সারণির প্রতিটি কীটির জন্য পৃথকভাবে শ্রেণিবিন্যাসের সাথে ডিল করা। একটি চাবি জন্যx, আমরা যে নোডগুলি প্রদর্শিত হবে তা জানি। গাছের একটি অর্ডার ট্রভারসাল বিবেচনা করুন। নোড যেখানেxএই ক্রমে অন্তরগুলি সংজ্ঞায়িত প্রদর্শিত হয়। কিনা তা নির্ধারণ করাx কিছু নোডের হ্যাশ টেবিলের মধ্যে রয়েছে v, আপনাকে জিজ্ঞাসা করতে হবে কিনা vউপরে বর্ণিত যেকোন বিভাগকে ছুরিকাঘাত করে। এটি সহজেই পূর্বসূরি অনুসন্ধান দ্বারা সম্পন্ন হয়, যেখানে আমরা সমস্ত অন্তর্বর্তী শেষের পয়েন্টগুলির জন্য পূর্বসূরী টেবিল তৈরি করি।

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

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