ডিএফএসকে কেন বিবেচনা করা হয়


11

এই নোটগুলি অনুসারে , ডিএফএস রয়েছে বলে মনে করা হয়O(bm) স্থান জটিলতা, যেখানে b গাছের শাখা ফ্যাক্টর এবং m রাষ্ট্র স্থানের যে কোনও পাথের সর্বাধিক দৈর্ঘ্য।

অবিজ্ঞাত অনুসন্ধানের এই উইকিউইব পৃষ্ঠায় একই কথা বলা হয়েছে ।

এখন ডিএফএসে উইকিপিডিয়া নিবন্ধের "ইনফোবক্স" অ্যালগরিদমের স্পেস জটিলতার জন্য নিম্নলিখিতটি উপস্থাপন করেছে:

O(|V|), যদি পুরো গ্রাফটি পুনরাবৃত্তি ছাড়াই ট্র্যাভার করা হয়, O(দীর্ঘতম পথের দৈর্ঘ্য অনুসন্ধান করা) সদৃশ নোডগুলি নির্মূল না করে অন্তর্ভুক্ত গ্রাফগুলির জন্য

যা আমি ভেবেছিলাম তার চেয়ে বেশি অনুরূপ যা ডিএফএসের স্পেস জটিলতা ছিল, যেমন, O(m), কোথায় m অ্যালগরিদম দ্বারা সর্বাধিক দৈর্ঘ্য।

কেন আমি মনে করি এটি কেস?

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

অধিকন্তু, এই অনুযায়ী কাগজ আইডিএ * দ্বারা রিচার্ড Korf , DFS স্থান জটিলতা হয়O(d), কোথায় "গভীরতা কাট অফ" হিসাবে বিবেচিত হয়।

সুতরাং, ডিএফএসের সঠিক স্থান জটিলতা কী?

আমি মনে করি এটি বাস্তবায়নের উপর নির্ভর করতে পারে, তাই আমি বিভিন্ন পরিচিত বাস্তবায়নের জন্য স্পেস জটিলতার একটি ব্যাখ্যাকে প্রশংসা করব।


DFS is considered to […] of the treeপ্রতিটি গ্রাফ অতিক্রম গভীরতা প্রথমে একটি গাছ হয় না
গ্রেইবার্ড

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

@ গ্রেইবার্ড আপনি কি আমাকে একটি উদাহরণ বলতে পারেন যেখানে গ্রাফের গভীরতার প্রথম ট্রভারসাল গাছের ফল দেয় না?
nbro

example where a depth-first traversal on a graph would not result in a treeএটি অত্যধিক চিন্তা না করে: পার্সিং। (অপেক্ষা: আপনি কি বোঝাতে চেয়েছেন: result in a tree? প্রশ্ন / অনুসন্ধান করার ব্যাপারে একটি গ্রাফ ঢোঁড়ন।)
বৃদ্ধলোক

1
@ গ্রেইবার্ড সমস্ত সংজ্ঞা অনুসারে আমি এখনও অবধি খুঁজে পেয়েছি। আমাকে নোডগুলিতে পুনর্বিবেচিত যেখানে একটি সংজ্ঞা দিন, তারপরে আমরা এটি সম্পর্কে আলোচনা করতে পারি।
nbro

উত্তর:


7

আপনি ডিএফএসকে ঠিক কী বলছেন তার উপর নির্ভর করে। উদাহরণস্বরূপ উইকিপিডিয়ায় বর্ণিত অ্যালগরিদম ডিএফএস-পুনরুক্তিটি বিবেচনা করুন এবং ধরুন যে আপনি এটি একটি গাছে চালিয়েছেন যাতে আপনি ইতিমধ্যে কোন নোডগুলি পরিদর্শন করেছেন সে সম্পর্কে ট্র্যাক রাখতে হবে না। মনে করুন যে আপনি এটি সম্পূর্ণরূপে চালাচ্ছেনbগভীরতা-গাছ m। আমরা তাদের গাছে নোডগুলি শব্দের সাথে সনাক্ত করতে পারি[b] সর্বাধিক দৈর্ঘ্যের m। অ্যালগরিদম নিম্নলিখিত হিসাবে কাজ করে:

  1. মূল থেকে শুরু করুন। ধাক্কা1,2,,b স্ট্যাক (বিপরীত ক্রমে)।

  2. পপ 1, এবং ধাক্কা 11,12,,1b স্ট্যাকের কাছে

  3. পপ 11, এবং ধাক্কা 111,112,,11b স্ট্যাকের কাছে

  4. পপ 1m1, এবং ধাক্কা 1m,1m12,,1m1b স্ট্যাকের কাছে

এই মুহুর্তে, স্ট্যাকটি ধারণ করে

1মি,1মি-12,...,1মি-1,...,112,...,11,12,...,1,2,...,,

মোট জন্য (-1)মি+ +1নোড। আপনি এটি পরীক্ষা করতে পারেন যে এটি সময়ে পিন্ট যেখানে স্ট্যাকের আকার সর্বাধিক।


2
সময়মতো একটি পিন্ট ডাক্তারকে দূরে রাখে।
গ্রেইবার্ড

3

এখানে দুটি পয়েন্ট তৈরি করতে হবে:

  1. আপনি যদি বর্তমান নোডের সমস্ত বংশধরদের স্ট্যাকের সাথে পরিচয় করিয়ে দেন তবে কার্যকরভাবে স্থানটির জটিলতা হে() কোথায় ব্রাঞ্চিং ফ্যাক্টর এবং সর্বোচ্চ দৈর্ঘ্য। যুবাল ফিল্মাসের জবাব আসলে এই ক্ষেত্রে বোঝায়। তবে সাধারণভাবে লক্ষ করুন এর চেয়ে অনেক বড় । অধিকন্তু, অনেকগুলি ডোমেইনে যেমন স্লাইডিং-টাইল ধাঁধা, উপরের একটি ধ্রুবক দ্বারা আবদ্ধ (নির্দিষ্ট ক্ষেত্রে, 4) এবং তাই আমরা নিরাপদে বলতে পারি যে ডিএফএসের একটি স্পেস জটিলতা রয়েছে যা হে()

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

সংক্ষেপে, আমি কখনই বলতে পারি না যে ডিএফএসের একটি স্পেস জটিলতা রয়েছে হে() এবং পরিবর্তে, আমি দাবি করি যে এটির স্থান জটিলতা হে()

আশাকরি এটা সাহায্য করবে,

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