গ্রাফ বিবেচনা, আমরা জানতে চাইযে একই দৈর্ঘ্যের এ থেকে বি পর্যন্তদুটি পৃথক পথরয়েছে কিনা। কি করো? সরল: একটিতে দুটি পাথ কোড করুন। নির্ধারণ গ্রাফ জি ' সঙ্গে ছেদচিহ্ন ভী × ভী × { 0 , 1 } । আপনি একটি পদক্ষেপ করতে জি ' দুই স্বাধীন পদক্ষেপ করে জি । অতিরিক্ত বিট আপনাকে বলে যে দুটি পথ ইতিমধ্যে একে অপরের থেকে বিভক্ত হয়েছে।GABG′V×V×{0,1}G′G
আনুষ্ঠানিকভাবে, একটি প্রান্ত হয় মধ্যে জি ' iff আমি → আমি ' , ঞ → ঞ ' মধ্যে জি এবং ই ' = ই ∨ ( আমি , আমি ' ) ≠ ( ঞ , ঞ ' ) ।(i,j,e)→(i′,j′,e′)G′i→i′j→j′Ge′=e∨(i,i′)≠(j,j′)
অ্যালগরিদম চেক যদি একটি পথ থেকে ( বি , বি , 1 ) এ জি ' , যা হে ( ভী 4 ) , অথবা কিছু হে ( ( ভী + + ই ) 2 ) ।(A,A,0)(B,B,1)G′O(V4)O((V+E)2)
আপনি সম্মত হলে এই অ্যালগরিদম তারপর সঠিক, ফলত, মধ্যে পাথ সর্বাধিক দৈর্ঘ্য হল 2 এন 2 , অতএব সম্ভাব্য "পাথ দুর্ঘটনায়" যে দৈর্ঘ্য এ সর্বশেষ ঘটতে উচিত নয়। আপনি এই পর্যবেক্ষণ থেকে একটি ও ( ভি ω লগ ভি ) অ্যালগরিদম পেতে পারেন , যেখানে mat ম্যাট্রিক্স গুণনের জটিলতা (আপনার যদি কোনও স্পোলার দরকার হয় কিনা জিজ্ঞাসা করুন ...)।G′2n2O(VωlogV)ω
আমি দৃ strongly়ভাবে মনে করি একটি অ্যালগরিদম রয়েছে, যা সমস্যার কাঠামোটি বেশি ব্যবহার করে।O(V+E)