সমস্ত জোড় বিচ্ছিন্ন পাথ গণনা করা


10

একটি নির্দেশ গ্রাফ দেওয়া এবং দুই ছেদচিহ্ন গুলি , T ভী । সরল পথের এক জোড়া পি 1 , পি 2 থেকে এস থেকে টি পর্যন্ত প্রান্তটি বিরক্তি যদি তারা একটি কিনারা ভাগ না করে।G=(V,E)s,tVp1,p2st

সর্বাধিক প্রবাহ ব্যবহার করে, এটি নির্ধারণ করা সহজ যে সেখানে থেকে টি পর্যন্ত প্রান্তের বিচ্ছিন্ন পথগুলির একজোড়া আছে কিনা । এখন, সেখান থেকে প্রান্ত অসংলগ্ন করা পথের সবকিছুর যুগল গনা করার জন্য একটি বহুপদী সময় বিলম্ব আলগোরিদিম গুলি করার t ?stst


1
না, যেহেতু তাত্পর্যপূর্ণভাবে এমন অনেকগুলি পথ থাকতে পারে।
কাভেহ

6
@ কাভাহ: আমি মনে করি যে "বহুপাক্ষিক বিলম্ব অ্যালগরিদম" বহির্মুখী সময় দীর্ঘ হিসাবে দীর্ঘ হিসাবে বহনযোগ্য সময় নিতে অনুমতি দেওয়া হয়। উদাহরণস্বরূপ, একটি বহুবর্ষীয় বিলম্ব অ্যালগরিদম রয়েছে যা ক্রমবর্ধমান ক্রমে সমস্ত সর্বাধিক চক্রকে তালিকাবদ্ধ করে, যদিও সর্বাধিক চক্রের সংখ্যা ব্যয়বহুল।
রবিন কোঠারি

3
প্রশ্নটিতে বহুপদী বিলম্বের ব্যাখ্যা অন্তর্ভুক্ত করা সম্ভব? আমি রবিনের মন্তব্য না পড়া পর্যন্ত আমি এর সাথে পরিচিত ছিলাম না।
Artem Kaznatcheev

@ রবিন, আপনি ঠিক বলেছেন, আমি "বিলম্ব" শব্দটির দিকে মনোযোগ দিই নি।
কাভেহ

উত্তর:


6

আমি বিশ্বাস করি আর্টেম কাজনাটচিভের উত্তরটি সঠিক, তবে এটি বহুপদী স্থান দেয় না। সুতরাং এখানে একটি ভিন্ন পদ্ধতির যা এই সম্মানের ক্ষেত্রে কিছুটা ভাল কাজ করা উচিত।

সর্বাধিক প্রবাহটি ব্যবহার করে কিছুটা সাধারণ সমস্যা সমাধান করা সম্ভব: কয়েকটি দু'টি শীর্ষে edge s1, s2 {থেকে আরও কয়েকটি জোড় {t1, t2} পর্যন্ত প্রান্তের বিচ্ছিন্ন পথের একজোড়া খুঁজে বের করুন, তবে কোন উত্সের শীর্ষবিন্দুটি সংযুক্ত রয়েছে তা নিয়ন্ত্রণ না করেই করুন যা গন্তব্য শীর্ষে।

মনে করুন আমাদের কাছে একটি গ্রাফ জি এবং শীর্ষস্থানীয় এস 1, এস 2, টি 1, টি 2 রয়েছে যার জন্য আমরা সমস্ত জোড়া পাথের তালিকাবদ্ধ করতে চাই। পি 1, পি 2, এবং পাথের একক জোড়া আবিষ্কার করুন এবং সেই পথগুলির মধ্যে একটিতে প্রথম প্রান্ত হতে ই = (এস 1, ভি) দিন let তারপরে আমরা সমস্যার স্থানটিকে দুটি সাব-প্রবলেমগুলিতে বিভক্ত করতে পারি: যে পথগুলির জোড়গুলি ই ব্যবহার করে সেগুলি জি-এস 1 এর {v, s2} থেকে {t1, t2 1 এবং যে পথগুলিতে ব্যবহার না করে সেই পথগুলির সমান are জি Ge s1, s2} থেকে {t1, t2 from থেকে পাথের মতোই। এই দুটি সাব-প্রবলেম উভয়েরই পুনরাবৃত্তি, এবং (অনুলিপি এড়াতে) কেবল যখন আপনি পুনরাবৃত্তির নীচে থাকবেন তখন কেবল কোনও পাথের প্রতিবেদন করুন।


1
এটি কি স্পষ্ট যে অ্যালগোরিদম বহুবর্ষে বিলম্ব হয় যদি আমরা পুনরাবৃত্তির নীচ পর্যন্ত অপেক্ষা করি?
Artem Kaznatcheev

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

5

বহুবারের বিলম্বের অ্যালগরিদমগুলি সম্পর্কে এই প্রথম আমি পড়েছি, তাই আমি আমার উত্তর সম্পর্কে 100% নিশ্চিত নই, তবে আমি মনে করি নিম্নলিখিতগুলির মতো কিছু কাজ করা উচিত।

প্রাকৃতিক মোট অর্ডিং রয়েছে এমন পাথ উপস্থাপনের জন্য কিছু কনভেনশন চয়ন করুন উপর সংজ্ঞায়িত। (একটি উদাহরণ হ'ল পথের শীর্ষকোষ তালিকাভুক্ত করা হবে এবং অভিধানের অর্ডার দিন)) আপনার পছন্দসই স্থানটিতে থাকা ডেটা-কাঠামো ডি চয়ন করুন যা লগারিদমিক অনুসন্ধান এবং সন্নিবেশকে সমর্থন করে (একটি লাল-কালো গাছ বলুন)। জি আপনার গ্রাফ হতে দিন<ডিজি

একটি অ্যালগরিদম নির্ধারণ করুন :এফ


:এফ(গুলি,টি,জি,*ডি)

(এখানে D এর অর্থ ইনপ্লেস ডেটাস্ট্রাকশন ডি-এর একটি রেফারেন্স )*ডিডি

  1. প্রান্ত অসংলগ্ন করা পাথ একজোড়া ফেরার জন্য আপনার বহু-টাইম অ্যালগরিদম চালানোর সঙ্গে পি < প্রশ্নঃ থেকে গুলি করার টি(পি,প্রশ্নঃ)পি<প্রশ্নঃগুলিটি
  2. যদি নেই ডি(পি,প্রশ্নঃ)ডি

    2.1। সন্নিবেশ মধ্যে ডি (এবং আউটপুট যদি আপনি অ্যালগরিদম রান যেমন আউটপুট অনুমান করা হয়)।(পি,প্রশ্নঃ)ডি

    2.2। প্রতিটি প্রান্ত জন্য চালানো এফ ( গুলি , T , জি - { U V } , * ডি )তোমার দর্শন লগ করাবনাম(পিপ্রশ্নঃ)এফ(গুলি,টি,জি-{তোমার দর্শন লগ করাবনাম},*ডি)


এখন, আপনার সব পাথ গনা, একটি খালি তৈরি এবং প্রতিটি জোড়া জন্য গুলি , T ভী ( জি ) সঙ্গে গুলি < T (যদি গ্রাফ undirected হয়,ডিগুলি,টিভী(জি)গুলি<টিগুলিটিএফ(গুলি,টি,জি,*ডি)

আমি সন্দেহ করি যে এটি করার সর্বোত্তম উপায়, বিশেষত এই পদ্ধতির পিএসপিএকজনসিপিএসপিএকজনসি


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