টিএসপি-র জন্য বেলম্যান-হেল্ড-কার্প অ্যালগরিদমের সময় জটিলতা, 2 নিন


16

একটি সাম্প্রতিক প্রশ্নে বেলম্যান এবং হেল্ড-কার্পের জন্য স্বাধীনভাবে টিএসপি-র জন্য বর্তমানে-ক্লাসিকাল ডায়নামিক প্রোগ্রামিং অ্যালগরিদম নিয়ে আলোচনা হয়েছে । অ্যালগরিদম সর্বজনীনভাবে সময়ে চালিত হয় বলে জানা গেছে । তবে, সম্প্রতি আমার একজন শিক্ষার্থী যেমন উল্লেখ করেছে, এই চলমান সময়ের জন্য গণনার অযৌক্তিকভাবে শক্তিশালী মডেলের প্রয়োজন হতে পারে।O(2nn2)

এখানে অ্যালগরিদমের সংক্ষিপ্ত বিবরণ দেওয়া হল। ইনপুটটিতে একটি নির্দেশিত গ্রাফ যার সাথে এন শিখর এবং একটি নেতিবাচক দৈর্ঘ্যের ফাংশন : E R + । যে কোনও শীর্ষে s এবং t , এবং s এবং t কে বাদ দিয়ে উল্লম্বের কোনও উপসেট এক্স এর জন্য , L ( s , X , t ) s থেকে t পর্যন্ত সংক্ষিপ্ততম হ্যামিলটোনীয় পথের দৈর্ঘ্য বোঝাতে দিনG=(V,E)n:ER+stXstL(s,X,t)stউত্সাহিত অনুচ্ছেদে । বেলম্যান-হেল্ড-কার্প অ্যালগরিদম নিম্নলিখিত পুনরাবৃত্তির উপর ভিত্তি করে (বা অর্থনীতিবিদ হিসাবে এবং তাত্ত্বিক হিসাবে এটি "বেলম্যানের সমীকরণ" বলতে পছন্দ করে):G[X{s,t}]

L(s,X,t)={(s,t)if X=minvX (L(s,X{v},v)+(v,t))otherwise

কোনো প্রান্তবিন্দু জন্য , অনুকূল বিক্রয়িক সফর ভ্রমণ দৈর্ঘ্য হল এল ( গুলি , ভী { গুলি } , গুলি ) । যেহেতু প্রথম প্যারামিটার গুলি সমস্ত পুনরাবৃত্ত কলগুলিতে স্থির থাকে, সেখানে sub ( 2 n n ) বিভিন্ন উপ-সমস্যা রয়েছে এবং প্রতিটি উপ-সমস্যাটি বেশিরভাগ n এর উপর নির্ভর করে । সুতরাং, গতিশীল প্রোগ্রামিং অ্যালগরিদম ( 2 এন এন 2 ) সময়ে চলে।sL(s,V{s},s)sΘ(2nn)nO(2nn2)

নাকি এটা ?!

স্ট্যান্ডার্ড পূর্ণসংখ্যার র‌্যাম মডেল বিটের সাহায্যে ধীরে ধীরে পূর্ণসংখ্যার ম্যানিপুলেশনকে মঞ্জুরি দেয় , তবে কমপক্ষে গাণিতিক এবং লজিকাল ক্রিয়াকলাপের জন্য বৃহত্তর পূর্ণসংখ্যাকে অবশ্যই শব্দ-আকারের অংশে বিভক্ত করা উচিত। (অন্যথায়, অদ্ভুত জিনিসগুলি ঘটতে পারে)) দীর্ঘ মেমরির ঠিকানাগুলিতে অ্যাক্সেস করার ক্ষেত্রেও কি এটি সত্য নয়? যদি একটি অ্যালগরিদম সুপারপলিনমিয়াল স্পেস ব্যবহার করে তবে মেমরির অ্যাক্সেসগুলিতে কেবল ধ্রুবক সময় প্রয়োজন তা ধরে নেওয়া কি যুক্তিসঙ্গত?O(logn)

বেলম্যান হেল্ড-Karp বিশেষ করে অ্যালগরিদম জন্য অ্যালগরিদম উপসেট বিবরণ রুপান্তর আবশ্যক উপসেট বিবরণ মধ্যে এক্স { বনাম } , প্রতিটি জন্য বনাম , অ্যাক্সেস করার জন্য memoization টেবিল। যদি উপগ্রহগুলি পূর্ণসংখ্যার দ্বারা প্রতিনিধিত্ব করা হয় তবে এই পূর্ণসংখ্যার জন্য n বিট প্রয়োজন এবং তাই ধ্রুবক সময়ে হেরফের করা যায় না; যদি তাদের পূর্ণসংখ্যার দ্বারা প্রতিনিধিত্ব না করা হয়, তাদের প্রতিনিধিত্ব মেমোয়েজ টেবিলের মধ্যে সরাসরি সূচক হিসাবে ব্যবহার করা যাবে না।XX{v}vn

সুতরাং: বেলম্যান-হেল্ড-কার্প অ্যালগরিদমের আসল সংবেদনশীল চলমান সময়টি কী?


আপনার "অদ্ভুত জিনিস" লিঙ্কটি নষ্ট হয়ে গেছে।
টাইসন উইলিয়ামস

আমি লিঙ্কটি ঠিক করেছি।
জেফি

উত্তর:


12

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

অবশ্যই, যদি এস আপনার মেমরির পরিমাণটি অতিক্রম করে তবে আপনার অ্যালগরিদম মোটেও চলবে না। বা, এটি মেমরির ভিতরে এবং বাইরে তথ্য পেজিং দ্বারা চালিত হবে এবং আপনার র‌্যাম মডেলের পরিবর্তে একটি মেমরি শ্রেণিবদ্ধ মডেল ব্যবহার করা উচিত।


আমি এই ধারণায় অভ্যস্ত যে মেশিনের মডেলটি ইনপুট আকার উপর নির্ভর করবে , তবে মেশিনের মডেলটি অ্যালগরিদমের উপর নির্ভর করতে দেওয়া সম্পর্কে কিছুটা দুশ্চিন্তাও রয়েছে। আপনি কি ইতিমধ্যে আপনার মেশিনটিকে পিএসপিএসিই-তে কোনও সমস্যা সমাধান করতে দিতে চান যতক্ষণ আপনি ইতিমধ্যে ক্ষতিকারক স্থান ব্যবহার করছেন? n
জেফি

3
আমার কাছে এটি অ্যালগরিদমের উপর নির্ভর করে মডেলটি তৈরি করার প্রশ্নটি কম, এবং এমন একটি মডেল থাকার প্রশ্ন রয়েছে যা স্থির তবে সমস্ত অ্যালগরিদম চালাতে সক্ষম নয় (কারণ এটি স্পেসের বাইরে চলে যায়)। এটি আমার কাছে সত্যিকারের কম্পিউটার থেকে আলাদা বলে মনে হচ্ছে না।
ডেভিড এপস্টিন

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

8

ফেডর ভি ফমিন এবং ডিয়েটার ক্র্যাশচের সাম্প্রতিক বইটিতে এই ইস্যুটির একটি আলোচনা রয়েছে " এক্সপ্যাক্ট এক্সপোনেনশিয়াল অ্যালগরিদম " যেখানে তারা ইউনিট-ব্যয় র‌্যাম মডেল এবং লগ- কস্টের র‌্যাম মডেলটিতে চলমান সময় নির্দিষ্ট করে ( - সর্বোচ্চ দূরত্ব) নগর ও মধ্যবর্তী ( এন ) = হে * ( ( এন ) ) যদি ( এন ) = হে ( ( এন ) পি Y ( এন ) ) ):Wf(n)=O(g(n))f(n)=O(g(n)poly(n))

O(2n)2nlogWnO(1)2nlogWnO(1)O(2n)


1
সুতরাং তারা বহুপদী ফ্যাক্টরটি লুকিয়ে ইস্যুটি ডজ করে। আমি জানতে চাই বহুপদী ফ্যাক্টর কী!
জেফি

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