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