এই পৃষ্ঠা অনুসারে , ডিজকস্ট্রার অ্যালগরিদমটি কেবলমাত্র বিএফএসের সাথে অগ্রাধিকারের সারি রয়েছে। এটি কি এতই সহজ? আমি মনে করি না.
এই পৃষ্ঠা অনুসারে , ডিজকস্ট্রার অ্যালগরিদমটি কেবলমাত্র বিএফএসের সাথে অগ্রাধিকারের সারি রয়েছে। এটি কি এতই সহজ? আমি মনে করি না.
উত্তর:
আপনি ডিজেস্ট্রার অ্যালগরিদমকে বিএফএস হিসাবে অগ্রাধিকারের সারি দিয়ে প্রয়োগ করতে পারেন (যদিও এটি একমাত্র বাস্তবায়ন নয়)।
ডিজকস্ট্রার অ্যালগরিদম সেই সম্পত্তির উপর নির্ভর করে যে থেকে পর্যন্ত সংক্ষিপ্ততম পথটি পথের পাশের যে কোনও অনুভূমিক্যের সংক্ষিপ্ততম পথ। বিএফএস ঠিক এটাই করে।টি
বা অন্য দৃষ্টিকোণে: সমস্ত ওজন 1 হলে ডিজকস্ট্রার অ্যালগরিদম কীভাবে আচরণ করবে? হুবহু বিএফএসের মতো।
প্রথমত, কীভাবে আমরা বিএফএসকে আরও সাধারণ ওজনযুক্ত গ্রাফ সাথে মানিয়ে নিতে পারি ?
দাশগুপ্ত এট আল রচিত "অ্যালগরিদম (বিভাগ 4.4)" বইটি থেকে এখানে একটি ধারণা দেওয়া হয়েছে:
কোনো প্রান্ত এর (ওজনের ), এটি দ্বারা প্রতিস্থাপন দৈর্ঘ্য কোণগুলি , যোগ করে মধ্যে ডামি নোড এবং ।E l e l e 1 l e - 1 u v
ফলস্বরূপ, ফলাফল গ্রাফ এর প্রান্তগুলির এককের দৈর্ঘ্য রয়েছে। অতএব, আমরা দূরত্বের গনা করতে উপর এই বি চালিয়ে । জি জি '
দ্বিতীয়ত, তে ডিজকস্ট্রার অ্যালগরিদম কীভাবে রূপান্তরিত গ্রাফ তে বিএফএসকে পরাজিত করে ?জি ′
কিছু বড় হলে তে থাকা বিএফএস আসলেই ধীর হতে পারে কারণ আমরা যে সমস্ত ডামি একেবারেই যত্ন করি না সেগুলি দূরত্বের খুব বেশি সময় নষ্ট করে। ডিজকস্ট্রা অ্যালগরিদম নোডগুলির জন্য আনুমানিক দূরত্ব নির্ধারণ করে এবং যখনই সম্ভব তাদের শিথিল করে এড়িয়ে চলে।ল ই
তৃতীয়ত, ডিজজস্ট্রার অ্যালগোরিদম অপ্রকাশিত গ্রাফগুলিতে কীভাবে আচরণ করে?
এটি বিএফএসের মতোই আচরণ করে। আমরা এটি দুটি প্রধান পয়েন্ট থেকে ব্যাখ্যা করি।
"শিথিলকরণ" এ।
সাধারণ, ওজনযুক্ত গ্রাফের উপর ডিজকস্ট্রার অ্যালগরিদমের জন্য শিথিলযোগ্যতা
for all edges (u,v) in E:
if dist(v) > dist(u) + w(u,v)
dist(v) = dist(u) + w(u,v)
অপ্রকাশিত গ্রাফের বিএফএসের জন্য, আমরা জানি যে এবং , তাই শিথিলকরণটি সহজ:w ( u , v ) = 1
for all edges (u,v) in E:
if dist(v) = \infty
dist(v) = dist(u) + 1
"অগ্রাধিকার সারিতে" On
যখন ডিজকস্ট্রার অ্যালগোরিদমটি অপ্রকাশিত গ্রাফে চালিত হয়, যে কোনও সময়ে অগ্রাধিকারের সারিটিতে সর্বাধিক দুটি স্বতন্ত্র (দূরত্ব) মান থাকে। সুতরাং, বিএফএসের একটি ফিফোর সারি যথেষ্ট।