জটিলতার ক্লাসগুলির মধ্যে সমতাগুলি নীচের দিকে নয় কেন উপরের দিকে অনুবাদ করে?


25

ওহে বন্ধুরা, আমি বুঝতে পারি যে প্যাডিং ট্রিক আমাদের জটিলতার ক্লাসগুলি উপরের দিকে অনুবাদ করতে দেয় - উদাহরণস্বরূপ । প্যাডিং ইনপুটটিকে "স্ফীত করে" রূপান্তর চালায় ( থেকে ) চালিয়ে কাজ করে যা একটি "যাদু" অ্যালগরিদম দেয় যা আপনি প্যাডড ইনপুটটিতে চালাতে পারেন। যদিও এটি প্রযুক্তিগত বোঝাপড়া করে, আমি কীভাবে এটি কাজ করে তার কোনও ভাল ধারণা পেতে পারি না। এখানে ঠিক কি ঘটছে না? প্যাডিং কীসের জন্য একটি সাধারণ উপমা আছে?এন পি পিP=NPEXP=NEXPNPP

এই ঘটনাটি কেন সাধারণ জ্ঞানের কারণ প্রদান করতে পারে ?


11
আমি উল্লেখ করতে চাই যে সমস্ত জটিল শ্রেণির ফলাফল উপরের দিকে যায় না। উদাহরণস্বরূপ, যদি আপনি প্রমাণিত EXPNEXP , তাহলে সেই সূচিত করা হবে PNP । সাধারণভাবে, ধসগুলি উপরে যায়, যখন বিচ্ছেদগুলি নীচে যায়।
রবিন কোঠারি

প্রকৃতপক্ষে. প্রকৃতপক্ষে, এটি সম্পর্কে ভাবার পক্ষে ভাল উপায় বলে মনে হচ্ছে, কারণ বিচ্ছেদগুলি ধসের চেয়ে আরও স্বজ্ঞাত।
গাবগোহ

2
@ রবিন, @ গাবগোহ: এমনকি কিছু ধসে পড়েছে নীচের দিকে, তবে যুক্তি যুক্ত করে নয়। উদাহরণস্বরূপ দেখুন arxiv.org/abs/cs/9910008
জোশুয়া গ্রাচো

উত্তর:


30

আমি মনে করি যে এই ইস্যুটির জন্য অন্তর্দৃষ্টি লাভের সর্বোত্তম উপায় হ'ল ক্ষণস্থায়ী সময় শ্রেণীর সম্পূর্ণ সমস্যাগুলি কী তা চিন্তা করে। উদাহরণস্বরূপ, NE- এর সম্পূর্ণ সমস্যাগুলি হ'ল সংক্ষিপ্তভাবে বর্ণনামূলক ইনপুটগুলিতে স্ট্যান্ডার্ড এনপি-সম্পূর্ণ সমস্যাগুলি, যেমন কোনও গ্রাফের সংলগ্ন ম্যাট্রিক্সের বর্ণনা দেয় এমন একটি সার্কিট দেওয়া হয়, গ্রাফটি কি 3-সমীচীন? তারপরে E = NE এর সমস্যা সমান হয়ে ওঠে কিনা এনপি সমস্যাগুলি বহুবর্ষীয় সময়ে সংক্ষিপ্তভাবে বর্ণনামূলক ইনপুটগুলিতে দ্রবীভূত হয় কিনা, যেমন, ছোট কার্যকর কোলমোগোরভ জটিলতা রয়েছে with এগুলি স্পষ্টতই শক্তিশালী নয় যে তারা সমস্ত ইনপুটগুলিতে সমাধানযোগ্য। সময়সীমা যত বড় হবে তত প্রাসঙ্গিক ইনপুটগুলির কলমোগোরভ জটিলতা কম, তাই বৃহত্তর সময়সীমার জন্য ধসের ফলে কার্যকরী অ্যালগরিদমগুলি কার্যকর হয় যা ইনপুটগুলির ছোট ছোট উপগ্রহের উপর কাজ করে।

রাসেল ইম্পাগলিয়াজো


14

ঠিক আছে, সুতরাং আপনার লক্ষ্যটি দেখানো হয় যে সি এল এস এস 1 [ জি তে ভিত্তি করে ] ( এন ) ] = সি এল এস এস 2 [ এইচ ( এন ) ]CLASS1[g(f(n))]=CLASS2[h(f(n))]CLASS1[g(n)]=CLASS2[h(n)](আমরা ঠিক এই ক্লাসগুলি কী তা নির্দিষ্ট করে নিই না, আমরা কেবল জানি যে তারা কোনওভাবে ইনপুট আকারের সাথে প্যারাম্যাট্রাইজড হয়েছে)। আমাদের কাছে একটি ভাষা , যা কিছু অ্যালগরিদম দ্বারা সিদ্ধান্ত নেওয়া হয়েছে । এখন আমরা একটি ভাষা করা এল ' প্রতিটি শব্দের প্যাডিং প্রয়োগ করে এক্স এল , যাতে এটা দৈর্ঘ্য এখন ( এন ) , এবং আমরা দেখতে যে এটি অন্তর্ভুক্ত করা হয় সি এল একটি এস এস 1 [ LCLASS1[g(f(n))]ALxLf(n) (আমাদের নতুন অ্যালগরিদম মূলত কেবল যুক্ত জিরোগুলিকে উপেক্ষাকরে বাস্তব, সংক্ষিপ্ত ইনপুটটিতে A চালায়)।CLASS1[g(n)]AA

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

এখন আমরা জানি যে তাই এল 'সি এল একটি এস এস 2 [ ( এন ) ] (কিছু আলগোরিদিম দ্বারা সিদ্ধান্ত নিয়েছে বি ' )। আমরা এখান থেকে L C L A S S 2 [ h ( f ( n ) ) ] এ যেতে চাইLCLASS1[g(n)]LCLASS2[h(n)]BLCLASS2[h(f(n))]। কিন্তু যে সহজবোধ্য - অ্যালগরিদম সিদ্ধান্ত এল মাত্র তদনুসারে ইনপুট প্যাড এবং রান বি ' প্যাডেড ইনপুটের।BLB

এই পদক্ষেপটি সংক্ষেপে সংক্ষেপে বর্ণিত হতে পারে: আমরা বৃহত্তর, আরও সম্পদশালী শ্রেণিতে সিদ্ধান্ত নিতে চাই । আমাদের অতিরিক্ত সংস্থানগুলি ব্যবহার করে আমরা ইনপুটটি প্যাড করি এবং প্যাডেড ভাষাটি নির্ধারণ করে অ্যালগরিদম চালাইL

অবশ্যই এখানে কিছু প্রযুক্তিগত ডিটায়েল জড়িত রয়েছে (ফী আমাদের তা নিশ্চিত করতে হবে যে আমরা যে শ্রেণীগুলিকে বিবেচনা করি সেগুলিতে প্যাডিং বাস্তবায়ন করা যেতে পারে) তবে সাধারণ জ্ঞান দেওয়ার জন্য আমি কেবল তাদের এড়িয়ে চলেছি।


13

আমি উপস্থাপনের সংক্ষিপ্ততার ক্ষেত্রে প্যাডিং যুক্তিগুলি দেখছি। দুটি অনুবাদক ট্যুরিং মেশিনের কথা ভাবেন: উদাহরণগুলি ফুটিয়ে তোলে এবং সি সেগুলি আবার সংকোচনে ফেলে।BC

প্যাডিং যুক্তি সাথে কাজ করে , রচনা দ্বারা বি কম nondeterministic ক্লাসে ভাষার জন্য টি এম এর নির্ণায়ক সংস্করণ সহ। বি এর ফলাফলগুলি সম্মিলিতভাবে একটি ভাষা গঠন করে যা সংক্ষিপ্তভাবে উপস্থাপিত হয় না, সুতরাং এটি "সহজ" হয়ে ওঠে।BBB

ব্যবহার করে এই ধারণাটি অন্যভাবে প্রয়োগ করা সম্ভব নয় , কারণ সহজ শ্রেণির কয়েকটি ভাষা হার্ড ক্লাসে ভাষা উড়িয়ে দিয়ে তৈরি করা হয়েছিল।C


5

এটিকে আরও স্বজ্ঞাগত করার জন্য আরও বিমূর্তভাবে কী চলছে তা দেখুন!

আমরা দুই রূপান্তরের, ইনপুট জন্য এক এবং এক problems.I দ্বারা তাদের উভয়ের নির্দেশ করবে জন্য আছে , এটা প্রসঙ্গ থেকে পরিষ্কার হবে যখন এটি প্রথম এক এবং যখন এটি দ্বিতীয় এক।pad

এই দুটি রূপান্তরগুলির নিম্নলিখিত সম্পত্তি রয়েছে:

আই সব সমস্যার জন্য , সমস্ত ইনপুট জন্য এক্স Σ * :AΣxΣ

iff x A ,pad(x)pad(A)xA

২। যদি হয় এক্স পি ( এন এক্স পি ), তারপর পি একটি ( একটি ) হয় পি ( এন পি )।AEXPNEXPpad(A)PNP

তৃতীয়। ইনপুটগুলির জন্য রূপান্তরটি জটিলতার ক্লাস ,EXP

এটি স্পষ্ট যে প্যাডিংয়ের জন্য রূপান্তরগুলির এই বৈশিষ্ট্য রয়েছে।

এখন, কারণে যে আমরা কিভাবে বিপরীত দিক একই জিনিস করে জানি না যে আমরা বিপরীত দিক প্যাডিং মত রূপান্তরের আপনার কাছে নেই (যখন আমরা তুলে ধরতে সঙ্গে পি এবং এন এক্স পি সঙ্গে এন পি )। তাহলে প্রশ্ন হচ্ছে কেন?EXPPNEXPNP

এই মুহুর্তে কেন এমন রূপান্তর ঘটছে না তা নিয়ে আমার কোনও আনুষ্ঠানিক যুক্তি নেই, তবে আন্তঃআজ্ঞেয় যা আন্দ্রে সালামন বলেছিলেন তা সঠিক। ইনপুটগুলির আকার বাড়ানো সহজ, তবে তারা কীভাবে সংকুচিত হতে পারে তা পরিষ্কার নয়?

Another way to understand it is to think about in the following way. Assume that P=NP, and we want to solve an NEXP=NTime(2nO(1)) problem. We are given an input x of length n, we think of it as an input of length N=2nO(1):

NEXP(n)=NTime(2nO(1))=NTime(N)NP(N)P(N)=Time(NO(1))=Time(2nO(1))=EXP(n)


1
the latter argument, which I see as a kind of "transformation of variables" argument has occurred to me. However, i don't see why you can't just "think" of it having an input of say, N=log(n) thus translating it down. I don't think that quite works, though the two other approaches, to think of it in terms of giving more resources to a NP algorithm, and in terms of compression vs padding makes sense.
gabgoh

1
A third way to think of it, actually, is to look at the converse. I've not followed through that approach to the bitter end but if any great insight comes I'll post it as a response to myself.
gabgoh

1
@gabgoh: It is more delicate than just change of variables. I am thinking of the input as being of length N=2nO(1), this works because nN, I just imagine that there are enough blanks at the end of the original input to make the length equal to N, but how can you think of an input of length n as being of length N=log(n)? Don't forget that what is inside the parenthesis is the length of the input! i.e. that is the part of the input that the output of the function is going to depend on.
Kaveh

1
[continued] Considering this might also help: assume that the input is in unary and of length n, then we can compress it to N=log(n) bits and actually that would work! A problem which is P (NP) with unary encoding will be in EXP (NEXP) with binary encoding.
Kaveh

1
I guess my trouble is with the phrase "thinking of", I can't wrap my head around what it means to think of a smaller input as a larger input, and what that does, in reality. I do realize that you can't think of N=log(n), for the reason you state, which is a restatement of the padding argument, not a clean analogy I suppose. After all, when we change variables we are always thinking of variables in terms of other variables, but unlike real variables it's kinda "incompressible". Not to say it is a bad answer, but it doesn't help me much personally.
gabgoh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.