Aby uczynić go bardziej intuicyjnym, spójrzmy na to, co dzieje się bardziej abstrakcyjnie!
Mamy dwie transformacje, jeden dla wejścia i jedno dla problems.I oznaczać będzie zarówno z nich przez , to będzie jasne z kontekstu, kiedy to pierwszy z nich, a kiedy jest drugi.pad
Te dwie transformacje mają następującą właściwość:
I. dla wszystkich problemów , dla wszystkich wejść x ∈ Σ ∗ :A⊆Σ∗x∈Σ∗
iff x ∈ A ,pad(x)∈pad(A)x∈A
II. jeśli jest w E X P ( N E X P ), to p a d ( A ) jest w P ( N P ).AEXPNEXPpad(A)PNP
III. transformacja dla danych wejściowych jest w klasie złożoności ,EXP
Oczywiste jest, że przekształcenia dla wypełnienia mają te właściwości.
Teraz powód, że nie wiemy, jak to zrobić to samo w odwrotnym kierunku jest to, że nie mamy takich przekształceń wyściółką w odwrotnym kierunku (kiedy wymieniamy z P i N E X P z N P ). Pytanie brzmi dlaczego?EXPPNEXPNP
Nie mam formalnego argumentu, dlaczego nie ma obecnie takich przekształceń, ale intuicyjnie to, co powiedział András Salamon, jest poprawne. Łatwo jest zwiększyć rozmiar danych wejściowych, ale nie jest jasne, jak można je skompresować?
Innym sposobem na zrozumienie tego jest myślenie w następujący sposób. Załóżmy, że , i chcemy rozwiązać problem N E X P = N T i m e ( 2 n O ( 1 ) ) . Otrzymujemy dane wejściowe x długości n , myślimy o tym jako dane wejściowe o długości N = 2 n O ( 1 ) :P=NPNEXP=NTime(2nO(1))xnN=2nO(1)
NEXP(n)=NTime(2nO(1))=NTime(N)⊆NP(N)⊆P(N)=Time(NO(1))=Time(2nO(1))=EXP(n)