দুটি বাইনারি অনুসন্ধান গাছ একত্রিত করা হচ্ছে


17

আমি স্বেচ্ছাসেবী আকার এবং ব্যাপ্তি দুটি বাইনারি অনুসন্ধান গাছ একত্রিত করতে একটি অ্যালগরিদম খুঁজছি। এর বাস্তবায়ন সম্পর্কে আমি যে সুস্পষ্ট উপায়টি যাব তা হ'ল সম্পূর্ণ সাবট্রিজির সন্ধান করা হবে যার পরিসরটি অন্য গাছের মধ্যে একটি নির্বিচারে বাহ্যিক নোডের সাথে ফিট করতে পারে। তবে, এই ধরণের অ্যালগরিদমের জন্য সবচেয়ে খারাপ সময় চলার সময়টি যথাক্রমে O(n+m)যেখানে প্রতিটি গাছের আকার nএবং সেখানে রয়েছে তার ক্রম mঅনুসারে।

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


আমি জানি না এরিক আমারও একই প্রশ্ন রয়েছে।

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

আমি কি কিছু মিস করছি, বাইনারি গাছগুলি মার্জ করে কি O(log n)কোনও সরল নোড ফাংশনটি দিয়ে সহজেই সম্পন্ন করা যায় না ?
এটি

@AT হ্যাঁ, তবে আমরা জানতাম না যে একটি বিএসটি থেকে কীগুলি অন্যটির থেকে পারস্পরিক একচেটিয়া ছিল।
এফ্রিটজ

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

উত্তর:


24

ইন arXiv: 1002.4248 , জন Iacono এবং Özgür ozkan মধ্যে একত্রীকরণ দুই বাইনারি অনুসন্ধান গাছ করার জন্য একটি অপেক্ষাকৃত সহজ অ্যালগরিদম বর্ণনা amortized সময়; বিশ্লেষণটি হার্ড অংশ। [ আপডেট: জো তার উত্তরটিতে সঠিকভাবে পর্যবেক্ষণ করলে, এই অ্যালগরিদমটি ব্রাউন এবং টারজানের কারণে]] তারা আরও জটিল অভিধানের ডেটা স্ট্রাকচারকেও বর্ণনা করে, পক্ষপাতদুষ্ট স্কিপ তালিকার উপর ভিত্তি করে, যা ( লগ এন ) মোড়িত সময়ে মার্জকে সমর্থন করে ।O(log2n) O(logn)

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


একটি নোট: আমি যদি এই কাগজটিতে বর্ণনাটি সঠিকভাবে পড়ে থাকে তবে এই গাছগুলি সন্নিবেশ এবং মোছা সমর্থন করে না। একত্রীকরণ মাত্র (জো এর উত্তরে হিসাবে বর্ণনা করেছে) আঙুল অনুসন্ধান বৃক্ষ মার্জ জন্য পদ্ধতি অনুসরণ করে। অপারেশনগুলির সীমাবদ্ধ সেটটি ( এন এলজি এম) থেকে আরও ভাল বিশ্লেষণের অনুমতি দেয়O(lg2n)এক। O(nlgmn)
jbapple

1
উন্নত বিশ্লেষণটি কৃত্রিমকরণের কারণে, অনুমোদিত ক্রিয়াকলাপগুলির সীমাবদ্ধতার কারণে নয়। সন্নিবেশ এবং মুছে ফেলা একই মোড়িত সময়সীমার মধ্যে বিভাজন এবং একত্রীকরণ (আসলে "যোগ দেয়") দিয়ে সমর্থনযোগ্য । O(logn)
জেফি

শুধু আউট কৌতুহল, নেই যদি গাছ লিঙ্ক তালিকাভুক্ত করে (যা আমি অনুমান আপনি কি যখন বলছে "পরিবর্তন ... বোঝানো পরিবর্তে বিন্যাসে সংরক্ষণ করা হয় সময় আক্রান্ত পেতে পয়েন্টার ")? Ω(n)
এমটাহেমেড

ডিফল্টরূপে, "বাইনারি অনুসন্ধান গাছগুলি" পয়েন্টার ভিত্তিক কাঠামো ("লিঙ্কযুক্ত তালিকাগুলি নয়"); প্রতিটি নোড তার দুটি বাচ্চা এবং সম্ভবত এর পিতামাতাকে নির্দেশ করে। তবে নিম্ন সীমাটি সঠিক প্রতিনিধিত্বের উপর নির্ভর করে না। আছে দুটিএন-নোড বাইনারি অনুসন্ধান গাছগুলিকেএকীভূত করার উপায়, সুতরাং যে কোনও তুলনা-ভিত্তিক অ্যালগরিদম কমপক্ষেলগ2 ( 2এন) প্রয়োজন(2nn)nতুলনা করুন সঠিকটি চয়ন করতে। log2(2nn)2nO(logn)
জেফি

1
@ জে ff ই: আমি সম্মত হই যে বিভাজন এবং যোগ দেওয়া সমর্থন করে তবে আমি মনে করি না যে গাছ তৈরি এবং ধ্বংস হচ্ছে। সুতরাং, উদাহরণস্বরূপ, আমি যদি বর্ণমালা থেকে "x" মুছতে চাই, আমি কেবল "এ..উইজ" পাই না, "এক্স "ও পাই। মহাবিশ্বের আকার (যা , বিভাগ 2.1 দেখুন) পরিবর্তন হয় না। এছাড়াও, বিভাগ 1 এর অন্তর্ভুক্তটি নোট করে যে সেটগুলিতে অবশ্যই মহাবিশ্বকে বিভাজন করা উচিত, যার অর্থ আমি ব্যাখ্যা করছি (সম্ভবত ভুলভাবে) মহাবিশ্বের প্রতিটি উপাদান কোনও না কোনও গাছে রয়েছে। সুতরাং, আমি এটি যেভাবে পড়েছি, এই নির্মাণটি সীমাহীন মহাবিশ্বগুলির উপর কাজ করে না। উপরে আমার মন্তব্যটি আমার এইভাবে লেখা উচিত। n
jbapple

9

আপনি এই রেফারেন্সটি সহায়ক হিসাবে পেতে পারেন: ব্রাউন এবং টারজান, একটি দ্রুত মার্জিং অ্যালগরিদম , যাতে লেখকরা ( এন লগ এম ) এর মধ্যে ভারসাম্য বাইনারি (এভিএল) গাছগুলি কীভাবে মার্জ করবেন তা দেখায়যা সর্বোত্তম (তুলনা ভিত্তিক অ্যালগরিদমের জন্য)। মিএবংএনবাইনারি অনুসন্ধান গাছ দ্বারা প্রতিনিধিত্ব সাজানো তালিকার লেন্থ, এবং এটা যে অধিকৃত হয়মিএনO(nlogmn)mnmn

আপনি এই পেপারের ১১.৫ সেকশনে আঙুলের অনুসন্ধানের গাছগুলিতে অর্ডার করা সেটগুলি মার্জ করার জন্য বিভিন্ন কৌশল সম্পর্কেও আলোচনা দেখতে পাচ্ছেন


2
উভয় সময় সীমাবদ্ধ এবং মিলে যাওয়া নিম্নসীমাটিমিঃ mnধরে নেয়। O(nlogmn)mn
জেফি

আমি ভেবেছিলাম যে এটি সময়সীমাবদ্ধ দ্বারা আবদ্ধ হয়েছিল, তবে আমি এটিকে স্পষ্ট করার জন্য প্রশ্নটি সম্পাদনা করেছি।
জো

0

1
তাদের ডেটা স্ট্রাকচারটি মার্জিন নয় ও (1) মোড়িত সময়ে যোগদানের সমর্থন করে । একটি গাছের সমস্ত উপাদান অন্য গাছের সমস্ত উপাদানের চেয়ে ছোট হওয়া উচিত।
জেফি

TiTjTiTjTjTiw(Ti)=w(Tj). In this case, tree Tj is attached to tree Ti , and the result of this operation is the tree TiTj is attached to a node on the spine of Ti."
A T
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.