কোনও নেটওয়ার্কে সবচেয়ে দীর্ঘতম পথ খুঁজে পাওয়ার জন্য কি কোনও অনুকূল অ্যালগরিদম রয়েছে?


13

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

নিষ্ঠুর শক্তি ব্যবহার না করে এটি গণনার সর্বোত্তম উপায় আছে কি? আমি কিছু চালাক নিয়মের ভিত্তিতে কিছু পয়েন্ট বাদ দিতে পারি?

কীভাবে দক্ষতার সাথে লাল পথটি সন্ধান করবেন?

সম্পাদনা: আমি আমার প্রশ্নটি পরিষ্কার করার জন্য @ অ্যালেক্স টেরেশেনকভের দ্বারা বর্ণিত দীর্ঘতম পথের একটি চিত্র যুক্ত করেছি। কালো পথটি দীর্ঘতম পথের অ্যালগরিদমের ফলাফল (কোনও প্রান্তকে দীর্ঘায়িত না করে দীর্ঘতম পথ)। আমার ক্ষেত্রে, কল্পনা করুন যে আপনি যে কোনও একটি চিঠি থেকে নেটওয়ার্কটি প্রবেশ করেছেন এবং আপনার যত দ্রুত সম্ভব অন্য কোনও চিঠিতে গাড়ি চালানো দরকার। কোন দুটি অক্ষর যোগ দেওয়া সবচেয়ে কঠিন? এখানে চিত্র বর্ণনা লিখুন


পাগল পেইন্ট দক্ষতা!
আদম

উত্তর:


6

আমি মনে করি আপনি আপনার নেটওয়ার্কের গ্রাফ ব্যাসের সন্ধান করতে পারেন । স্ট্যাকেক্সচেঞ্জে বেশ কয়েকটি প্রশ্ন রয়েছে যা এই বিষয়ের উল্লেখ করে, যেমন:

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

আমরা একটি ভার্টেক্স ভি 1 থেকে পাথটি গণনা করতে পারি যে এটি ভি 1 এবং একটি শীর্ষবিন্দুর মধ্যবর্তীতম সংক্ষিপ্ত পথ এবং অন্য কোনও শীর্ষবিন্দুর মধ্যে সংক্ষিপ্ততম পথের চেয়ে দীর্ঘ। অ্যালগরিদমের জন্য এই পোস্টটি দেখুন । তারপরে, আমরা প্রতিটি শীর্ষবিন্দু দিয়ে পুনরাবৃত্তি করতে পারি এবং মূল হিসাবে প্রতিটি শীর্ষবিন্দুর সাথে দীর্ঘতম পথ খুঁজে পেতে পারি। আমাদের কাছে দীর্ঘতমতমতমতমতম পাথের তালিকা তৈরি হয়ে গেলে, আমরা সর্বাধিক মান পাওয়া একটি এটি খুঁজে পেতে পারি এবং এটি ফিরিয়ে আনতে পারি।


ধন্যবাদ, গ্রাফ ব্যাসটি ঠিক আমি যা খুঁজছিলাম তা ছিল এবং সিউডো-ডায়ামটারের বৌদ্ধিকতা আমার ক্ষেত্রে কাজ করে। আমি সেখানে নতুন শব্দ শিখেছি!
Radouxju

7

উইকিপিডিয়া পৃষ্ঠা অনুসারে দীর্ঘতম পথ সমস্যা , এই সমস্যা

... হ'ল এনপি-হার্ড, এর অর্থ পি = এনপি না থাকলে স্বেচ্ছাচারী গ্রাফগুলির জন্য বহুগুণে এটি সমাধান করা যায় না। শক্তিশালী কঠোরতার ফলাফলগুলিও এটির কাছে পরিচিত যে এটি প্রায় কঠিন difficult তবে এটির জন্য নির্দেশিত অ্যাসাইক্লিক গ্রাফগুলির জন্য একটি লিনিয়ার সময় সমাধান রয়েছে, যার সময়সূচী সমস্যাগুলির জন্য গুরুত্বপূর্ণ পথ খুঁজে পেতে গুরুত্বপূর্ণ অ্যাপ্লিকেশন রয়েছে।

আপনি যদি (বা আপনার গ্রাফটিকে ডিএজি হিসাবে উপস্থাপন করতে পারেন ) সাথে কাজ করেন তবে networkxপাইথন প্যাকেজ আপনাকে এটি গণনা করতে দেবে। ফাংশনটি দেখুন dag_longest_path

যতক্ষণ না আমি কিছু মিস করছি, আপনার গ্রাফ নোডগুলির মধ্যে দৈর্ঘ্য গণনা করতে হবে এবং সেগুলি সাজানোর দরকার যা দুর্ভাগ্যক্রমে কেবল রৈখিক সময়ে কাজ করবে, এটির জন্য কোনও কার্যকর অ্যালগরিদম নেই ।


উত্তরের জন্য ধন্যবাদ, ইতিমধ্যে তথ্যের কারণে +1। তবে, আমি একটি নেটওয়ার্কের মধ্যে সবচেয়ে দীর্ঘতম পথের সন্ধান করছি (আমার উদাহরণস্বরূপ, বি বা এইচ এর দিকে কোনও পথ নয়)। সুতরাং আপনার সমাধানটি আমি ঠিক যা খুঁজছি তা নয়, এমনকি যদি এটি ইঙ্গিত দেয় যে "ব্রুট ফোর্স" সম্ভবত একমাত্র সমাধান solution
রেডাক্সজু

@radouxju, আহ আমি দেখছি। ঠিক আছে, দেখা যাক জিন এটি লক্ষ্য করবে কিনা , তার গ্রাফগুলি নিয়ে প্রচুর অভিজ্ঞতা আছে, সম্ভবত তার কিছু উজ্জ্বল ধারণা রয়েছে।
অ্যালেক্স তেরেশেনকভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.