ক্রমবর্ধমান অপরিবর্তিত গ্রাফের সুষম প্রশস্ত গাছ বজায় রাখা


19

আমি গ্রাফের তুলনামূলকভাবে সুষম প্রশস্ত গাছ বজায় রাখার উপায়গুলি খুঁজছি, কারণ আমি গ্রাফটিতে নতুন নোড / প্রান্ত যুক্ত করেছি।

আমার একটি পুনর্নির্দেশিত গ্রাফ রয়েছে যা একটি একক নোড হিসাবে শুরু হয়, "মূল"।

প্রতিটি পদক্ষেপে, আমি গ্রাফটিতে দুটি নতুন পুরানো নোড সংযুক্ত করে একটি নতুন নোড এবং এটিকে গ্রাফের সাথে সংযুক্তকারী একটি প্রান্ত বা কেবল একটি নতুন প্রান্ত যুক্ত করব। গ্রাফটি বাড়ার সাথে সাথে আমি একটি বিস্তৃত গাছ বজায় রাখছি। বেশিরভাগ সময় এর অর্থ হ'ল আমি যখন একটি নতুন নোড এবং প্রান্ত যুক্ত করি তখন আমি নতুন নোডটিকে এটির সাথে সংযুক্ত হওয়া পুরাতন নোডের সন্তান হিসাবে সেট করি।

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

পুনরায় বৃক্ষরোপণে করা কাজের পরিমাণকে হ্রাস করার সময়, অনলাইনের হুরিস্টিকস সম্পর্কে কেউ কি জানেন যে বিস্তৃত গাছটিকে "তুলনামূলকভাবে সুষম" রাখবে? গাছের কাঠামোর উপরে আমার পুরো নিয়ন্ত্রণ রয়েছে। আমি যা নিয়ন্ত্রণ করি না তা হ'ল গ্রাফ সংযোগ বা ক্রম যাতে নতুন নোড যুক্ত হয়।

মনে রাখবেন যে "সুষম" "স্প্যানিং" এবং "ট্রি" এর মতো শর্তগুলির জন্য স্ট্যান্ডার্ড গুগলের প্রতিক্রিয়াগুলি বাইনারি গাছ এবং বি-ট্রি হিসাবে মনে হয়, যার দুটিই প্রযোজ্য নয়। আমার গ্রাফ নোডে যে কোনও সংখ্যক প্রতিবেশী থাকতে পারে, তাই গাছের নোডে বাইনারি গাছের মতো 2 টি না করে যে কোনও সংখ্যক বাচ্চা থাকতে পারে। বি-গাছগুলি তাদের সংলগ্ন তালিকা পরিবর্তন করে ভারসাম্য বজায় রাখে এবং আমি গ্রাফের সংযোগটি পরিবর্তন করতে পারি না।


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

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

আপনি উপরে গাছ পরীক্ষা করেছেন? en.wikipedia.org/wiki/Top_tree
পিয়ার Sommerlund

উত্তর:


4

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


2

আমি নিম্নলিখিতগুলি শেষ করে দিয়েছি:

ভিনিসিয়াস সান্টোসের উত্তর এটির প্রথম অংশ। যেমনটি তিনি বলেছেন, যে কোনও ফ্রেমে আমি এটির সাথে সংযুক্ত একটি নতুন নোড এবং পিতা-সন্তানের প্রান্ত যুক্ত করব বা দুটি বিদ্যমান নোডের মধ্যে কেবল একটি ক্রস-এজ যুক্ত করব। পিতা-মাতার শিশু প্রান্তগুলি গাছের কাঠামো পরিবর্তনের জন্য কোনও সুযোগ দেয় না, কেবল ক্রস এজ হয়। নোড A এবং B এর মধ্যে ক্রস-এজ E যুক্ত করার বিষয়ে বিবেচনা করুন, যেখানে খের গাছের গভীরতা বেশি। যদি (এ। ডিপথ + ১) <বিডেপথ হয়, তবে আমরা এ-এর সন্তান তৈরি করে B.depth হ্রাস করতে পারি

বি এর গভীরতা কমিয়ে আনার পরে, আমাদের এখন বি এর প্রতিবেশীদের পরীক্ষা করে দেখতে হবে, তারা বিয়ের সন্তান হয়ে তাদের গভীরতা কমিয়ে দিতে পারে কিনা তা দেখার জন্য আমরা বি থেকে প্রথম প্রান্তের ট্রভারসাল করি, যা এক্স থেকে Y এর প্রান্তকে পেরিয়ে যায় if গভীরতা + 1 <ওয়াই.ডেপথ এবং ওয়াইটিকে এক্সের সন্তানের জন্য সেট করে

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