একটি ডিএফটি-তে ক্রস এজ এবং ফরোয়ার্ড এজগুলির মধ্যে পার্থক্য


11

গভীরতার প্রথম গাছে, প্রান্তগুলি গাছটিকে সংজ্ঞায়িত করে (অর্থাত্ প্রান্তগুলি যা ট্র্যাভারসাল ব্যবহৃত হত)।

অন্যান্য নোডগুলির সাথে কিছু সংযোগ স্থাপনকারী কিছু অবশিষ্ট প্রান্ত রয়েছে। ক্রস প্রান্ত এবং একটি সামনের প্রান্তের মধ্যে পার্থক্য কী?

উইকিপিডিয়া থেকে:

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

ট্র্যাভারসলে ব্যবহৃত হয় না এমন একটি কিনারা যা একটি নোড থেকে অন্য নোডকে নির্দেশ করে কোনও পিতামাতার-সন্তানের সম্পর্ক স্থাপন করে না?


সম্পর্কিত: cs.stackexchange.com/questions/99988/… একটি অ্যালগরিদম প্রতিষ্ঠার চেষ্টা করে যা নির্দেশিত গ্রাফের জন্য, গভীরতা-প্রথম অনুসন্ধানের সময় ক্রস এজগুলির পরিবর্তে সামনের প্রান্তগুলি তৈরি করতে পছন্দ করে।
pfalcon

উত্তর:


23

উইকিপিডিয়া এর উত্তর আছে:

এখানে চিত্র বর্ণনা লিখুন

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


এটি চিত্রটি ব্যাখ্যা করবে: -

ফরোয়ার্ড প্রান্ত: (u, v), যেখানে v আপনার বংশধর, তবে গাছের কিনারা নয় a এটি একটি বৃক্ষহীন প্রান্ত যা একটি ডিএফএস-গাছে একটি বংশের সাথে একটি প্রান্তকে যুক্ত করে।

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


6 টির পক্ষে প্রথমে (ডান দিকটি প্রথমে) অতিক্রম করা কেন অসম্ভব? যদি এটি ঘটে থাকে তবে 2-> 3 প্রান্তটি কী বলা হত?
soandos

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

আমি বুঝতে পারি যে এটি কোনও ডিএফএস করার একটি বৈধ উপায়। আমি কেবল জিজ্ঞাসা করছি এটি অন্য উপায়ে সম্পন্ন করা হয় কিনা।
soandos

তারপরে ফলাফলগুলি ভিন্ন হবে। আমি দুঃখিত, আপনি এটি নিজেই কাজ করতে হবে।
যুবাল ফিল্মাস

2
@ সানডোস সাধারণভাবে, খুব ভালভাবে একাধিক ডিএফএস ট্র্যাভারসাল হতে পারে। এখানে ব্যবহৃত ধারণাগুলি একটি প্রদত্ত ট্র্যাভারসালের সাথে সম্পর্কিত এবং একাধিক ট্র্যাভারসালের জন্য পৃথক হবে।
রাফেল

9

অপরিবর্তিত গ্রাফের একটি ডিএফএস ট্রভারসাল কোনও ক্রস প্রান্ত ছাড়বে না যেহেতু একটি শীর্ষবিন্দুতে ঘটে যাওয়া সমস্ত প্রান্ত অন্বেষণ করা হয়েছে।

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


অপোরভ, প্রতিক্রিয়াটির জন্য ধন্যবাদ। এটি এখনও আমার কাছে মনে হয় যে আপনি যখন উইকিপিডিয়ায় ডায়াগ্রামযুক্ত হিসাবে ডিএফএসে ভার্টেক্স to পেয়ে যাবেন, তখন আপনার 6 থেকে প্রান্তের তিনটি কিনারা রয়েছে that বিন্দুতে, ভার্টেক্স 6টি "বর্তমান" " অবশেষে আপনি প্রান্তটি ভার্টেক্স 3 এ অতিক্রম করতে যাচ্ছেন While যদিও 3 টি ইতিমধ্যে পরিদর্শন করা হয়েছে, তবে যেহেতু 6 থেকে 3 পর্যন্ত প্রান্ত রয়েছে, তবে 3টি "বর্তমান" শীর্ষবিন্দুর 6 বংশধর যদি এটি হয় তবে এটি লঙ্ঘন করে একটি ক্রস প্রান্ত সংজ্ঞা। সংজ্ঞাটির আরও কিছু অবশ্যই থাকতে হবে যা খুব স্পষ্টভাবে তৈরি করা হচ্ছে না।

প্রকৃতপক্ষে, ডিএফএসে কেবল পিছনের প্রান্তের জন্য গাছের কিনারা রয়েছে (ইন্ট্রোর টু অ্যালগোরিদম থিম। 22.10)।
jrhee17

2

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

ডি [নোড] নোডের আবিষ্কারের সময় হোক, একইভাবে চ [নোড] সমাপ্তির সময় হোক।

প্যারেনথেসিস উপপাদ্য সকলের জন্য আপনার, ভি, নীচেরগুলির মধ্যে একটি হ'ল:
১ ডি [ইউ] <চ [ইউ] <ডি [ভি] <চ [ভি] বা ডি [ভি] <চ [ভি] <ডি [ইউ ] <f [u] এবং ইউ এবং ভি উভয়ই অপরের বংশধর নয়।

  1. d [u] <d [v] <f [v] <f [u] এবং v আপনার বংশধর।

  2. d [v] <d [u] <f [u] <f [v] এবং আপনি v এর বংশধর।

সুতরাং, d [u] <d [v] <f [u] <f [v] ঘটতে পারে না।
প্রথম বন্ধনীগুলির মতো: () [], ([]), এবং [()] ঠিক আছে তবে ([)] এবং [(]) ঠিক আছে না।

উদাহরণস্বরূপ, প্রান্তগুলি সহ গ্রাফটি বিবেচনা করুন:
এ -> বি
এ -> সি
বি -> সি

পরিদর্শন করার ক্রমটি নোড লেবেলের একটি স্ট্রিং দ্বারা প্রতিনিধিত্ব করা হোক, যেখানে "এবিসিবিএ" এর অর্থ এ -> বি -> সি (সমাপ্ত) বি (সমাপ্ত) এ (সমাপ্ত), ((())) এর অনুরূপ।

সুতরাং "দুদকবিবিএ" "(())" এর মডেল হতে পারে।

উদাহরণস্বরূপ:
"সিসিএবিবিএ": তারপরে এ -> সি একটি ক্রস প্রান্ত, যেহেতু সিসি এ এর ​​অভ্যন্তরীণ নয়
"এবিসিবিএ": তারপরে এ -> সিটি একটি সামনের প্রান্ত (পরোক্ষ বংশধর)।
"এসিসিবিবিএ": তারপরে এ -> সিটি একটি গাছের প্রান্ত (সরাসরি বংশধর)।

সূত্র:
CLRS:
https://mitpress.mit.edu/books/introduction-algorithms
Lecure নোট http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorithms/GraphAlgor/depthSearch.htm

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