একটি লাল এবং কালো গাছের সাব্রিন্জেশন


14

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

পরিষ্কার করে বলার জন্য, আমি একটি অ্যালগরিদমের কথা বলছি যা একটি লাল ও কালো গাছ এবং দুটি সীমানা দেওয়া হলে সেই সীমানার মধ্যে থাকা প্রথম গাছের সমস্ত উপাদান সহ একটি নতুন লাল এবং কালো গাছ তৈরি করবে।

অবশ্যই, জটিলতার জন্য একটি উপরের সীমাটি হ'ল একটি গাছকে পাড়ি দেওয়া এবং উপাদান যুক্ত করে অন্যটি নির্মাণের জটিলতা।


3
@ রাদু: মন্তব্য সম্পাদনা বৈশিষ্ট্যটিতে একটি বাগ রয়েছে। আপনি কি একটি মন্তব্য এবং সম্পাদনা মন্তব্যে ক্ষীর ব্যবহার করেন, তাহলে অদ্ভুত আচরণের দেখুন, অনুলিপি ইত্যাদি
আর্যভট্ট

@ রাদু আমি আমার প্রশ্নের আরও ভাল ব্যাখ্যা করার জন্য কয়েকটি অনুচ্ছেদ যুক্ত করেছি।
ড্যানিয়েল সি সোব্রাল

গাছ কি অপরিবর্তনীয়?
Tsuyoshi Ito

এছাড়াও, আপনি কি গত অনুচ্ছেদে নিম্ন বাউন্ডের পরিবর্তে উপরের বাউন্ডকে বোঝাতে চেয়েছিলেন?
Tsuyoshi Ito

2
দেখে মনে হয় যে লাল-কালো গাছে বিভক্তকরণ অপারেশনটি সবচেয়ে খারাপ ক্ষেত্রে ও (লগ এন) এ প্রয়োগ করা যেতে পারে, যেখানে n একটি গাছের উপাদানগুলির সংখ্যা। এই দাবিটি জেরথ স্টলটিং ব্রডাল, ক্রিস্টোস ম্যাকরিস এবং কোস্টাস সিচ্লাস, ESA 2006 দ্বারা "সম্পূর্ণরূপে কার্যকরী সবচেয়ে খারাপ ক্ষেত্রে ধ্রুবক সময়ের জন্য উপযুক্ত বাছাই করা তালিকাগুলি" পত্রিকার সূচনায় পাওয়া যেতে পারে: cs.au.dk/~gerth/pub/esa06trees.html । যেমনটি আমি আমার পূর্ববর্তী মন্তব্যে উল্লেখ করেছি, এটি সাবরেঞ্জ অপারেশনটির সবচেয়ে খারাপ ক্ষেত্রে O (লগ এন) -র সময় কার্যকর করতে দেয় allows
Tsuyoshi Ito

উত্তর:


10

এই উত্তরটি প্রশ্নের সাথে আমার কিছু মন্তব্যকে যুক্ত করে সেগুলি প্রসারিত করে।

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

প্রথমে লক্ষ্য করুন যে সাব্রিজ অপারেশন দুটি বিভক্ত ক্রিয়াকলাপ দ্বারা প্রয়োগ করা যেতে পারে। এখানে বিভক্ত অপারেশনটি একটি লাল-কালো গাছ টি এবং একটি কী এক্স নেয় এবং দুটি গাছ এল এবং আর তৈরি করে যে এল টির চেয়ে বেশি কম টি এর সমস্ত উপাদান এবং এক্স এর চেয়ে বড় টি এর উপাদান সমন্বিত করে। অতএব, আমাদের লক্ষ্য এখন সবচেয়ে খারাপ ক্ষেত্রে হে (লগ এন) সময়ে লাল-কালো গাছগুলির উপর বিভক্ত অপারেশন বাস্তবায়ন করা।

ও (লগ এন) সময়ে আমরা কীভাবে লাল-কালো গাছে বিভক্ত অপারেশন করব? ঠিক আছে, দেখা গেল যে একটি সুপরিচিত পদ্ধতি ছিল। (আমি এটি জানতাম না, তবে আমি ডেটা কাঠামোর কোনও বিশেষজ্ঞ নই।) যোগদানের ক্রিয়াকলাপটি বিবেচনা করুন , যা দুটি গাছ এল এবং আর গ্রহণ করে যে এল এর প্রতিটি মান আর এর প্রতিটি মানের চেয়ে কম এবং সমস্ত গাছ সমন্বিত একটি গাছ উত্পন্ন করে এল এবং আর-তে মানগুলি join যোগদানের ক্রিয়াকলাপটি সবচেয়ে খারাপ ক্ষেত্রে ও (| r L −r R | +1) এ প্রয়োগ করা যেতে পারে , যেখানে আর এল এবং আর আরযথাক্রমে এল এবং আর এর র‌্যাঙ্ক হয় (যেটি মূল থেকে প্রতিটি পাতায় যাওয়ার পথে কালো নোডের সংখ্যা)। জোড় অপারেশন ও (লগ এন) বার ব্যবহার করে বিভক্ত অপারেশনটি প্রয়োগ করা যেতে পারে এবং টেলিস্কোপিংয়ের যোগফল বিবেচনা করে মোট খারাপের ক্ষেত্রে এখনও ও (লগ এন) হয়।

টারজানের একটি বই [তার 8383] এর ৪.১ এবং ৪.২ বিভাগে কীভাবে সবচেয়ে খারাপ পরিস্থিতিতে ও (লগ এন) -এ লাল-কালো গাছে যোগদান এবং বিভক্ত অপারেশনগুলি প্রয়োগ করা যায় তা বর্ণনা করা হয়েছে। এই বাস্তবায়নগুলি মূল গাছগুলিকে ধ্বংস করে তবে এগুলিকে পরিবর্তন করার পরিবর্তে নোডগুলি অনুলিপি করে এগুলি পরিবর্তনযোগ্য, কার্যকরী বাস্তবায়নে রূপান্তর করা সহজ।

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

তথ্যসূত্র

[টার83] রবার্ট এন্ড্রে টারজন। ডেটা স্ট্রাকচার এবং নেটওয়ার্ক অ্যালগরিদমফলিত গণিতে সিবিএমএস-এনএসএফ আঞ্চলিক সম্মেলন সিরিজের খণ্ড 44 , 1983, সিয়াম, 1983।


@ রাদু গ্রেগোর: হ্যাঁ, যদি না আমি কিছু মিস করি।
Tsuyoshi Ito

@ রাড়ু গ্রেগোর: নাও হতে পারে, এখন আমি নিশ্চিত নই। বিভাজন অপারেশনের এই প্রয়োগটি আউটপুট গাছের জন্য ও (লগ এন) নতুন নোড বরাদ্দ করে, তবে আমি মনে করি যে পুরো অপারেশনটি সম্ভবত টেল-রিকার্সিভ পদ্ধতিতে প্রয়োগ করা যেতে পারে, কেবলমাত্র ও (1) কার্যক্ষম স্থানের প্রয়োজন। যদি এটি সঠিক হয় তবে আপনার প্রশ্নের উত্তর নির্ভর করবে আপনি "অতিরিক্ত স্থান" বলতে কী বোঝাতে চান on
Tsuyoshi Ito

@ রাদু গ্রেগোর: সেক্ষেত্রে আমি মনে করি অতিরিক্ত জায়গা হে (1), যদিও আমি এটি সাবধানতার সাথে পরীক্ষা করে নিই।
Tsuyoshi Ito

@ রাদু গ্রেগোর: ফলাফলটি সংরক্ষণের জন্য প্রয়োজনীয় জায়গার পরিমাণ সম্পর্কে যত্ন না নিয়ে কেউ কর্মক্ষেত্রের পরিমাণ সম্পর্কে যত্ন নিয়ে থাকার কারণটি আমি দেখতে পাচ্ছি না। জটিলতার তত্ত্বে, সমস্যাটি সাধারণত ফলাফলটি কী তা নির্দিষ্ট করে এবং ফলস্বরূপ সংরক্ষণের জন্য প্রয়োজনীয় স্থানটি অ্যালগরিদমের উপর নির্ভর করে না। যাইহোক, বর্তমান সমস্যাটিতে প্রয়োজনীয় অপারেশন বাস্তবায়নের জন্য অনেকগুলি উপায় রয়েছে এবং কিছু বাস্তবায়নের ক্ষেত্রে ফলাফলের জন্য অন্যদের তুলনায় আরও বেশি জায়গার প্রয়োজন হয়। আপনি যদি এই পরিমাণ জায়গার পার্থক্যটি উপেক্ষা করেন তবে আমাদের কাজের ক্ষেত্রের প্রয়োজনীয়তা আপনি কেন যত্ন করছেন তা আমি দেখতে পাচ্ছি না।
Tsuyoshi Ito

পরিবর্তনীয় গাছের জন্য সমস্যা পরিবর্তিত গাছের চেয়ে আলাদা। আমি পার্থক্যটি বুঝতে পারি তাই এ সম্পর্কে আমার জিজ্ঞাসা করার কিছুই ছিল না। এখন, দুটি সমস্যার মধ্যে একটি জুম করে আলোচনার দুটি দিক রয়েছে --- স্মৃতি এবং সময়। আপনি কত স্মৃতি ব্যবহার করেছেন তা আপনি বলেন নি এবং উত্তরটি কী বলেছে তা আমার কাছে স্পষ্ট মনে হয়নি। এটি আপনাকে কীভাবে ভাবিয়ে তোলে যে আমি দুটি সমস্যার মধ্যে পার্থক্য উপেক্ষা করছি তা দেখতে আমি ব্যর্থ হয়েছি।
রাদু গ্রেগোর

8

সমাধানটি হ'ল লাল-কালো গাছ ব্যবহার না করা। স্প্লে ট্রি এবং এভিএল গাছগুলিতে বিভাজন এবং যোগদানের কোড খুব সহজ। আমি আপনাকে স্প্লে গাছ এবং এভিএল গাছগুলির জাভা কোড সহ নিম্নলিখিত URL গুলি উল্লেখ করি that নীচের ইউআরএল এ যান এবং সেট.জভা (এভিএল ট্রি) এবং স্প্লেট্রি.জভা (স্প্লে ট্রি) দেখুন।

ftp://ftp.cs.cmu.edu/usr/ftp/usr/sleator/splaying/

--- ড্যানি স্লিয়েটার


5
সাইটে স্বাগতম, ড্যানি!
সুরেশ ভেঙ্কট

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

6

(এটি একটি মন্তব্য হতে বোঝানো হয়েছে তবে আমি মন্তব্য করতে খুব নতুন।

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

কে। हॉফম্যান, কে। মেহলহর্ন, পি। রোসেন্টিহল এবং আর আর টারজন, লেভেল লিঙ্কযুক্ত অনুসন্ধান গাছ ব্যবহার করে রৈখিক সময়ে জর্ডান ক্রমগুলি বাছাই করা হচ্ছে, তথ্য ও নিয়ন্ত্রণ, 68 (1986), 170–-184

পিএস উপরের উদ্ধৃতিটি সিডেলের ট্রেপ লিখনআপ থেকে এসেছে। ট্র্যাপগুলিও বিসর্জনকে সমর্থন করে।


এই পদ্ধতিটি ধরে নিয়েছে যে ইতিমধ্যে দুটি সীমানায় পয়েন্টার (বা "আঙুল") রয়েছে।
jbapple

3

nm[a,b]

  1. O(lgn)aa 'র উত্তরাধিকারী)।
  2. সেখান থেকে একটি ইন-অর্ডার ট্র্যাভারসাল শুরু করুন যা এ পছন্দসই উপাদানগুলির সাথে একটি অ্যারে তৈরি করে buildO(m) সময়ে ।
  3. O(m)

O(m+lgn)O(n+mlgm)

o(m)Ω(lgm)klgm

আমি বিশদটি কার্যকর করি নি, সুতরাং অতিরিক্ত বুককিপিং চলমান সময়কে কীভাবে প্রভাবিত করে তা আমি নিশ্চিত নই।

O(1)Ω(lgm)


এই সম্পর্কে চিন্তাভাবনা করে, আমি মনে করি আমি মোটামুটি একটি গণনা পেতে পারি O(logn), যার সাহায্যে আমি অস্থায়ী অ্যারে এড়াতে পারি।
ড্যানিয়েল সি সোব্রাল

আপনি ও (এলজি এন) এর শিকড়গুলিতে সাবট্রি আকারগুলি সংরক্ষণ করে গণনা পেতে পারেন।
রাদু গ্রেগোর

... তবে নোডগুলিতে আকারগুলি সংরক্ষণ করা সহায়ক স্থান ব্যবহার না করার প্রয়োজনের পরিপন্থী, সুতরাং আমার পর্যবেক্ষণটি স্মৃতি সম্পর্কে আপনার উদ্বেগের সমাধান করে না।
রাদু গ্রেগোর

1
বাইনারি গাছগুলি কেবলমাত্র অতিরিক্ত অতিরিক্ত জায়গা (গাছ নিজেই ব্যবহার করে) পুরোপুরি ভারসাম্যহীন হতে পারে: eecs.umich.edu/~qstout/abs/CACM86.html
জেফি

@JeffE: আমি আসলে glanced যে কাগজ এ কিন্তু আমি (বোকার মত) অধিকৃত 'আঙ্গুরলতা' আমার অ্যারে। সুতরাং, সংক্ষেপে, আপনি যদি আমার অ্যারেটিকে একটি 'দ্রাক্ষালতা' এবং 3 টি পদক্ষেপের সাথে আপনার লিঙ্কযুক্ত কাগজের সাথে দ্রাক্ষালতা_ত্যাগ করে প্রতিস্থাপন করেনহে(মি+ +এলজিএন) সময় এবং হে(1)সহায়ক স্থান। ধন্যবাদ!
রাদু গ্রিগোর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.