যদি বারথ ফার্স্ট সার্চ (বিএফএস) দ্রুত একই জিনিস করতে পারে তবে কেন ডিজজস্ট্রার অ্যালগরিদম ব্যবহার করবেন?


109

উভয়ই একক উত্স থেকে সংক্ষিপ্ততম পথটি খুঁজতে ব্যবহার করা যেতে পারে। বিএফএস O(E+V)চলেছে, আর ডিজকস্ট্রার রান চলছে O((V+E)*log(V))

এছাড়াও, আমি দেখেছি ডিজকস্ট্রা অনেকগুলি ব্যবহার করে যেমন রাউটিং প্রোটোকলগুলিতে।

সুতরাং, বিএফএস যদি একই জিনিসটি দ্রুত করতে পারে তবে কেন ডিজকস্ট্রার অ্যালগরিদম ব্যবহার করবেন?

উত্তর:


156

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

ইতোমধ্যে বিএফএস প্রতিটি পুনরাবৃত্তির উপরে কেবলমাত্র একটি "পদক্ষেপ" (লিঙ্ক, প্রান্ত, আপনি যেটিকে এটি প্রয়োগ করতে চান) এর মাধ্যমে অনুসন্ধানটি প্রসারিত করে, যার ফলে যে কোনও পদক্ষেপ পেতে এটি সবচেয়ে ছোট পদক্ষেপের সন্ধান করার প্রভাব ফেলবে happens আপনার উত্স থেকে নোড দেওয়া হয়েছে ("মূল")


1
উভয়ই একই ফলাফল উত্পন্ন করবে অর্থাত্ দুটি শীর্ষের মধ্যবর্তী একটি পথ, তবে কেবলমাত্র ডাইজেক্ট্রা সবচেয়ে সংক্ষিপ্ত পথের গ্যারান্টি দিবে।
এডউইন

গৃহীত উত্তর, দ্বিতীয় মন্তব্য দেখুন। ব্যাখ্যা খুব সুন্দর ভাবে কেন গণনীয় জটিলতা আলাদা: stackoverflow.com/questions/25449781/...
jmcarter9t

23

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

আপনি যদি সমস্ত নোডের মধ্যে একই দূরত্ব বিবেচনা করেন তবে বিএফএস আরও ভাল পছন্দ।

উদাহরণস্বরূপ, = 10, = 20, = = 5 A -> (B, C) -> (F)দ্বারা প্রদত্ত প্রান্তের ওজন সহ বিবেচনা করুন ।A->BA->CB->FC->F

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


7

ডিজকস্ট্রার অ্যালগরিদম

  • ওজনযুক্ত গ্রাফের জন্য বিএফএসের মতো।
  • সমস্ত ব্যয় সমান হলে ডিজকস্ট্রা = বিএফএস

সূত্র: https://cs.stanford.edu/people/abisee/gs.pdf


4

বাস্তবায়ন দৃষ্টিকোণ থেকে, Djkstra এর অ্যালগরিদম ঠিক একটি বিএফএস এর queueসাথে একটি সঙ্গে অদলবদল প্রয়োগ করা যেতে পারে priority queue

উৎস

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