দেখে মনে হচ্ছে আপনার সমস্যা । এখানে একটি অ্যালগরিদম রয়েছে।এনএল
প্রথমত, নির্বিঘ্নে থেকে টি-তে একটি পথ অনুমান করুন । আপনি যদি ভুলভাবে অনুমান করেন তবে প্রত্যাখ্যান করুন । এই অ্যালগরিদম এ কল করুন ।গুলিটিএকজন
নিম্নলিখিত ননডিটারিস্টিক অ্যালগরিদম বিবেচনা করুন , যা নির্ধারণ করে যে সেখানে কমপক্ষে দুটি পথ রয়েছে কিনা। গ্রাফ এবং প্রদত্ত গুলি , T , এর স্বতন্ত্র প্রান্ত সব বিদ্যমান জোড়া জন্য ই , চ , থেকে একটি পাথ অনুমান গুলি করার টি যে অন্তর্ভুক্ত ই কিন্তু চ , তারপর থেকে একটি পাথ অনুমান গুলি করার টি যে অন্তর্ভুক্ত চ কিন্তু ই । অনুমানগুলি সঠিক হলে গ্রহণ করুন । কোন গ্রহণযোগ্যতা সব পছন্দ জন্য পরিস্থিতিতে ই এবং চ , প্রত্যাখ্যান । দ্রষ্টব্য বিবিs , te , fগুলিtefstfeefB ননডিটারনিস্টিক লগস্পেসে প্রয়োগযোগ্য।
এখন, সেট এর সেট গুলি - টি থেকে অন্তত দুই পাথ সঙ্গে গ্রাফ গুলি করার টি । কারণ এন এল = গ ণ এন এল , সম্পূরক বি রয়েছেন এন এল , অর্থাত্, আমরা যদি নির্ধারণ করতে পারেন গুলি এবং টন আছে কম দুই পথ, nondeterministic logspace হবে।L(B)ststNL=coNLBNLst
চূড়ান্ত অ্যালগরিদমটি হ'ল: "চালান । যদি ক গ্রহণ করে, তবে বি এর পরিপূরক চালান এবং তার উত্তর আউটপুট দিন" "AAB
আমি কোন রেফারেন্স জানি না।
আপডেট: আপনি যদি সত্যিই কোনও রেফারেন্স চান তবে এই কাগজের 3 নং অনুচ্ছেদে প্রথম অনুচ্ছেদটি দেখুন । তবে সম্ভবত এই অনেকগুলি রেফারেন্সের মধ্যে একটিই এই পরিণতির উদ্ধৃতি দেয়। কোনও কাগজের উল্লেখ করার পরিবর্তে ফলাফলটিকে "লোককাহিনী" বলা আরও যুক্তিসঙ্গত হবে।
আপডেট 2: আসুন ধরুন আপনি কোনও অনন্য সরল পথ আছে কিনা তা নির্ধারণ করতে চান। সেক্ষেত্রে অ্যালগরিদম পরিবর্তন করতে হবে না: যদি কোনও পথ থাকে তবে সরল পথ রয়েছে। আমি বিশ্বাস করি যে নিম্নলিখিত পরিবর্তনগুলি অ্যালগরিদম বি এর জন্য কাজ করবে ।AB
আমরা অ্যালগরিদম পুনরায় লিখতে চাই যাতে কমপক্ষে দুটি সহজ পাথ থাকে তবে এটি এটি গ্রহণ করে।B
সমস্যার জন্য প্রথমে নিম্নলিখিত বহু-কালীন অ্যালগরিদম বিবেচনা করুন। একটি সংক্ষিপ্ত পথ খুঁজুন থেকে গুলি করার টি । প্রত্যেক প্রান্ত ই মধ্যে পি , চেক যদি সেখানে হয় অন্য গুলি - টি পথ যা মধ্য দিয়ে যেতে না ই । যদি এমন কোনও পথ খুঁজে পান তবে গ্রহণ করুন । যদি আপনি আর কোনও পথ না পান তবে প্রত্যাখ্যান করুন । কারণ পি সবচেয়ে সংক্ষিপ্ত, এটির একটি চক্র নেই, এবং যদি অন্য কোনও পথ থাকে যা পি এর কিছু প্রান্ত ব্যবহার করে না , তবে অন্য পথ রয়েছে যা সহজ এবং পি এর কিছু প্রান্ত ব্যবহার করে নাPstePstePPP। (এই অ্যালগরিদমটি "দ্বিতীয় সংক্ষিপ্ততম পাথ" সমস্যার জন্য ব্যবহৃত হয়))
আমরা এ এই অ্যালগরিদম বাস্তবায়ন করব । আমরা যদি একটি ছিল এন এল প্রান্ত অনুসন্ধানের জন্য অ্যালগরিদম ই একটি নির্দিষ্ট পাথ পি , আমরা nondeterministic logspace উপরে বাস্তবায়ন পারে: মাধ্যমে প্রান্ত iterating ই মধ্যে পি , একটি অনুমান গুলি - টি পাথ এবং চেক করুন যে বরাবর পরিদর্শন প্রত্যেক প্রান্ত জন্য উপায়, তাদের কোনটিই ই সমান ।NLNLePePste
সুতরাং আমাদের যা দরকার তা হল "পাথ ওরাকল", সম্পত্তি সহ একটি অ্যালগরিদম: i = 1 , … , n প্রদত্ত প্রতিটি গতিপথের অ্যালগরিদম হয় নির্দিষ্ট নির্দিষ্ট s - টি পাথের উপর i তীর প্রান্তটি রিপোর্ট করে , বা প্রত্যাখ্যান । অভিধানের প্রথম পাথটিকে আলাদা করতে আমরা N L = c o N L ব্যবহার করে একটি পাথ ওরাকল পেতে পারি leNLi=1,…,nistNL=coNL
এখানে পথের ওরাকেলের একটি স্কেচ দেওয়া আছে।
এই থেকে সবচেয়ে কম পথের দৈর্ঘ্য গুলি করার টি , চেষ্টা করে সব ট = 1 , ... , এন এবং ব্যবহার এন এল = গ ণ এন এল ।kstk=1,…,nNL=coNL
ভেরিয়েবলগুলি সেট করুন , x : = 1 , j : = k ।u:=sx:=1j:=k
আপনার প্রতিবেশী কাছে আপনার কাছে অভিধানের ক্রমে,vu
নির্ধারণ হোক বা না হোক সেখান থেকে একটি পথ করার টি দৈর্ঘ্যের ঞ - 1 (ফলাফলের ব্যবহার এন এল = গ ণ এন এল )। আরও স্পষ্টভাবে, s - টি সংযোগের জন্য দৈর্ঘ্য j - 1 এর জন্য অবিচ্ছিন্ন অ্যালগরিদম এবং এর পরিপূরক জন্য একযোগে অ্যালগরিদম চালান । যখন তাদের কেউ গ্রহণ করে, তার উত্তরটি দিয়ে যান (এটি অবশ্যই সঠিক হতে হবে; উভয়ই গ্রহণ করতে পারে না)। যদি উভয়ই প্রত্যাখ্যান করে তবে প্রত্যাখ্যান করুন ।vtj−1NL=coNLstj−1
যদি কোনও পথ না থাকে তবে পরবর্তী প্রতিবেশীর দিকে এগিয়ে যান। আপনি যদি সমস্ত প্রতিবেশী ক্লান্ত হয়ে পড়ে থাকেন তবে প্রত্যাখ্যান করুন ।
যদি একটি পাথ, তারপর যদি , আউটপুট ( U , V ) যেমন আমি তম থেকে পথে প্রান্ত গুলি করার টি । অন্যথায় ইনক্রিমেন্ট এক্স , হ্রাস j , u : = v সেট করুন এবং v ≠ t হলে আবার লুপ শুরু করুন ।x=i(u,v)istxju:=vv≠t
যদি টি আউটপুট পৌঁছানোর পরে খারাপ হয় i (প্রদত্ত আমি খুব বড় ছিল)।x<itii
প্রদত্ত , এই অ্যালগরিদম পারেন আউটপুট আমি lexicographically সবচেয়ে কম পথে তম প্রান্ত পি থেকে গুলি করার টি , অথবা প্রত্যাখ্যান করে।iiPst