একটি নির্দেশিত গ্রাফ বিবেচনা করুন যার উপরে কেউ প্রান্তিকভাবে প্রান্তগুলি যুক্ত করতে এবং কিছু নির্দিষ্ট প্রশ্ন তৈরি করতে পারে।
উদাহরণ: বিরক্তি-সেট বন
নিম্নলিখিত প্রশ্নের সেট বিবেচনা করুন:
arrow(u, v)
equiv(u, v)
find(u)
প্রথম এক একটি তীর যোগ গ্রাফ, যদি দ্বিতীয় সিদ্ধান্ত নেয় গত এক সমানতা বর্গ একটি ক্যানোনিকাল প্রতিনিধি খুঁজে বের করে , অর্থাত্ একটি যেমন যে অর্থ ।ইউ ↔ ∗ ভি ↔ ∗ আর ( ইউ ) ইউ ↔ ∗ ভি আর ( ভি ) = আর ( ইউ )
অর্ধ-ধ্রুবক amorised জটিলতায় এই কোয়েরিগুলিকে বাস্তবায়নকারী বিশ্লেষণ-সেট বন তথ্য কাঠামো ব্যবহার করে একটি সুপরিচিত অ্যালগরিদম রয়েছে । নোট করুন যে এই ক্ষেত্রে ব্যবহার করে প্রয়োগ করা হয় ।equiv
find
আরও জটিল রূপ
এখন আমি আরও জটিল সমস্যাটিতে আগ্রহী যেখানে দিকনির্দেশগুলি গুরুত্বপূর্ণ:
arrow(u, v)
confl(u, v)
find(u)
প্রথম একটি তীর যোগ সেকেন্ডের সিদ্ধান্ত নেয় যদি একটি নোড উভয় থেকে পৌঁছানো এবং , অর্থাত্ । একটি বস্তুর যেমন বোঝায় যেখানে সহজেই গণনাযোগ্য হয়। (বলতে গেলে, গণনা করা )। লক্ষ্যটি হ'ল একটি ভাল ডেটা কাঠামো সন্ধান করা যাতে এই ক্রিয়াকলাপগুলি দ্রুত হয়।ডব্লু ইউ ভি ইউ → ∗ ← ∗ ভি আর ( ইউ ) আপনি → ∗ ← ∗ ভি আর ( ইউ ) ∙ আর ( ভি ) ∙confl
আবর্তক
গ্রাফটিতে চক্র থাকতে পারে।
আমি জানি না যে কেবলমাত্র প্রধান সমস্যার জন্য ডিএজিগুলিকে বিবেচনা করার জন্য, দৃ strongly়ভাবে সংযুক্ত উপাদানগুলি দক্ষ ও বর্ধমানভাবে গণনার কোনও উপায় আছে কিনা ।
অবশ্যই আমিও ডিএজিগুলির জন্য একটি সমাধানের প্রশংসা করব। এটি সর্বনিম্ন সাধারণ পূর্বপুরুষের বর্ধিত গণনার সাথে মিল রাখে।
নিষ্পাপ পদ্ধতির
বিভেদ-সেট বন তথ্য কাঠামো এখানে সহায়ক নয়, কারণ এটি প্রান্তের দিকটিকে অগ্রাহ্য করে। মনে রাখবেন যে একক নোড হতে পারে না, ক্ষেত্রে গ্রাফটি সমান নয়।
এক বর্ণনা করতে পারেন এবং সংজ্ঞায়িত করতে হিসাবে যখন । তবে কীভাবে এটি বাড়ানো যায়?
সম্ভবত যে এত বড় সেট গণনা কার্যকর নয়, একটি ছোট সেট আরও আকর্ষণীয় হওয়া উচিত, যেমনটি সাধারণ ইউনিয়ন-অনুসন্ধান অ্যালগরিদমের মতো।