Як це часто трапляється зі зменшенням NP, є сенс шукати подібні проблеми. Зокрема, важко кодувати глобальні умови, такі що "побачили деякі вузли" в PCP (з поліноміально багатьма плитками), що протипоказано проблеми з графіком, проблеми з упаковкою вимагатимуть, щоб ми кодували одинакові числа в PCP (створюючи експоненціально великий екземпляр), і так далі. Тому, можливо, очікується, що строкова проблема з лише локальними обмеженнями працює найкраще.
Розглянемо варіант рішення найкоротшої поширеної проблеми із наслідками :
Дано два рядки з | а | = n і | б | = m і k ∈ N , вирішіть, чи існує рядок c ∈ Σ + з | c | ≤ k такі, що a і b є підрядками c .a,b∈Σ+|a|=n|b|=mk∈Nc∈Σ+|c|≤kabc
Ідея полягає в тому, щоб PCP створював надлишки і b зліва направо, кодуючи перекриття плиток, в якому положенні ми знаходимося в a і b відповідно. Він використовуватиме одну плитку на символ у c , тому k відповідає границі BPCP: якщо ми можемо розв’язати цю PCP з плитками ≤ k , ви можете прочитати загальну послідовність однакової довжини і навпаки.ababck≤k
Конструкція плитки трохи втомлива, але цілком чітка. Зауважте, що ми не будемо створювати плитки, які не пересилають або b ; такі ніколи не можуть бути частиною найкоротшого загального наслідку, тому вони є зайвими. Їх легко можна додати, не порушуючи властивостей редукції.ab
Числа в перекриттях кодуються у двійковій формі , але використовуючи символи поза та додаючи їх до загального журналу довжини max ( m , n ) . Таким чином, ми гарантуємо, що плитки використовуються як графічна пропозиція (тетрис), тобто символи, а перекриття, що кодують індекс, не змішуються (PCP не запобігає цьому як такому). Нам потрібно:Σlogmax(m,n)
- Починаючи плитки: може почати з більш 1 , б 1 або обидва , якщо вони рівні.ca1b1
- Проміжні плитки: може продовжувати наступний символ у a , в b або обох, якщо вони рівні.cab
- Закінчення плитки: закінчується останнім символом a (якщо останній з b вже було помічено), аналогічним b , або останнім символом обох.cabb
Це схеми плитки. Зауважте, що проміжні плитки повинні бути встановлені для всіх пар . Як було сказано вище, створюйте плитки без ∗, лише якщо відповідні символи в a і b збігаються.(i,j)∈[n]×[m]∗ab
[ джерело ]
Символічні для «Не все одно»; у фактичних плитках інший символ доведеться скопіювати туди. Зауважте, що кількість плиток знаходиться в Θ ( m n ), і кожна плитка має довжину 4 log max ( m , n ) + 1 , тому побудований екземпляр BPCP (над алфавітом Σ ∪ { 0 , 1 }∗Θ(mn)4logmax(m,n)+1Σ∪{0,1}плюс розділові символи) має поліноміальний розмір. Крім того, конструкція кожної плитки очевидно можлива за багаточлен. Отже, запропоноване скорочення дійсно є дійсною поліноміальною трансформацією, яка зменшує NP-повну найкоротшу загальну проблему надмірності до BPCP.