একটি বিরল গ্রাফের সমস্ত সংক্ষিপ্ত পথ খুঁজে পাওয়ার জন্য দ্রুততম অ্যালগরিদম কী?


24

শৃঙ্খলা এবং টি প্রান্তের সাথে একটি অপ্রকাশিত, অপরিবর্তিত গ্রাফে, গ্রাফের সমস্ত সংক্ষিপ্ততম পথগুলি খুঁজে পাওয়ার দ্রুততম কোনটি? এটি ফ্লয়েড-ওয়ারশাল যা চেয়েও দ্রুত করা যায় তবে প্রতিবারে খুব দ্রুত করা যায়?2 ভি > ( ভি 3 )VE2V>EO(V3)

গ্রাফটি যদি ওজন হয় তবে কীভাবে?

উত্তর:


32

যেহেতু এটি একটি অদম্য গ্রাফ, তাই আপনি গ্রাফের প্রতিটি ভার্টেক্স ভি থেকে একটি বারথ ফার্স্ট সন্ধান (বিএফএস) চালাতে পারেন । বিএফএসের প্রতিটি রান আপনাকে প্রারম্ভিক ভার্টেক্স থেকে শুরু করে প্রতিটি অন্যান্য শীর্ষবিন্দুতে সংক্ষিপ্ততম দূরত্ব (এবং পাথ) দেয়। এক এই বি সময় জটিলতা হয় হে ( ভী + + ) = হে ( ভী ) যেহেতু = হে ( ভী ) আপনার বিক্ষিপ্ত গ্রাফে। এটি ভি বার চালানো আপনাকে একটি ( ভি 2 ) সময়ের জটিলতা দেয়।vO(V+E)=O(V)E=O(V)VO(V2)

ভারিত নির্দেশিত গ্রাফের জন্য, যুবালের পরামর্শ অনুসারে জনসনের অ্যালগরিদম বিচ্ছুরিত গ্রাফের জন্য দ্রুততম। এটি লাগে যা আপনার ক্ষেত্রে ( ভি 2 লগ ভি ) হিসাবে দেখা দেয় । ওজনযুক্ত পুনঃনির্দেশিত গ্রাফের জন্য, আপনি হয় ডিজকস্ট্রার অ্যালগরিদম চালাতে পারেনO(V2logV+VE)O(V2logV)প্রতিটি নোড থেকে, বা প্রতিটি বিপরীত নির্দেশিত প্রান্ত দুটি অপরিবর্তিত প্রান্ত প্রতিস্থাপন এবং জনসনের অ্যালগরিদম চালান। এই দু'টিই আপনার বিরল মামলার জন্য উপরের জনসনের অ্যালগরিদমের মতো একই অ্যাস্টিম্পোটিক সময় দেবে। এছাড়াও নোট করুন যে আমি উপরে উল্লিখিত বিএফএসের পদ্ধতির নির্দেশিত এবং পুনর্নির্দেশিত গ্রাফ উভয়ের জন্যই কাজ করে।



7

আপনি ফ্লোয়েড-ওয়ারশালের এমন একটি সংস্করণ তৈরি করার চেষ্টা করতে পারেন যা স্পার্স ম্যাট্রিক্সে দ্রুত।

প্রথমে আসুন আমরা এই অ্যালগরিদমটি কী করে তা স্মরণ করি:

যাক দূরত্ব একটি ম্যাট্রিক্স হও। অ্যালগরিদম শুরুতে এম আমি , প্রান্ত ওজন আমি । তারপর অস্তিত্ব এই প্রান্ত আছে যদি তা না হয় M আমি , = MMi,jijMi,j=

অ্যালগরিদমের পদক্ষেপ রয়েছে। অ্যালগরিদমের ধাপে K , প্রতিটি জোড় নোডের জন্য i , j সেট করিVki,j

Mi,jmin{Mi,j,Mi,k+Mk,j}.

স্পষ্টত যদি বা এম কে , = ∞ হয় তবে কোনও আপডেট সম্পাদনের প্রয়োজন নেই। সুতরাং, অ্যালগরিদমের প্রথম পদক্ষেপগুলিতে, আমাদের কেবল ডি জি i এন ( কে ) ডি জি ইউ টি ( কে ) তুলনা যেখানে ডি জি আই এন ( কে ) এবং ডি জি ইউ টি (Mi,k=Mk,j=degin(k)degout(k)degin(k) যথাক্রমে কে- নোডেরআগত এবং বহির্গামী প্রান্তগুলির সংখ্যা উল্লেখ করুন। অ্যালগরিদম যেমন এগিয়ে চলেছে, ম্যাট্রিক্স এম এরআরও বেশি সংখ্যক এন্ট্রিপূরণ করা হয়। অতএব, শেষ পদক্ষেপগুলি আরও বেশি সময় নিতে পারে।degout(k)kM

নোট করুন যে আমাদের কেবল ম্যাট্রিক্সের থ্রি সারি এবং কলামে অসীম কোষগুলিতে পুনরাবৃত্তি করতে একটি দক্ষ উপায় প্রয়োজন । প্রতিটি নোডের জন্য আগত এবং বহির্গামী প্রান্তগুলির সেট রেখে এটি করা যেতে পারে।k

E=O(V)k=0O(1)MO(V)k=|V|O(V2)O(V3)

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