Comme c'est souvent le cas avec les réductions de NP, il est logique de rechercher des problèmes similaires . En particulier, il est difficile de coder des conditions globales telles que "ont vu des nœuds" dans PCP (avec de nombreuses tuiles polynomiales) ce qui contre-indique les problèmes de graphe, les problèmes d'emballage nous obligeraient à coder des nombres unaires dans PCP (créant une instance exponentiellement grande), et bientôt. Par conséquent, un problème de chaîne avec uniquement des restrictions locales peut fonctionner de manière optimale.
Considérez la version de décision du problème de superséquence le plus court :
Étant donné deux chaînes a,b∈Σ+ avec |a|=n et |b|=m et , décidez s'il y a une chaîne avec tel que et sont des sous-séquences de . c ∈ Σ + | c | ≤ k a b ck∈Nc∈Σ+|c|≤kabc
L'idée est de laisser PCP construire des superséquences de et de gauche à droite, encodant dans les chevauchements des tuiles à quelle position nous sommes respectivement en et . Il utilisera une tuile par symbole en , donc correspond à la limite du BPCP: si nous pouvons résoudre ce PCP avec tuiles, vous pouvez lire la super-séquence commune de longueur égale, et vice versa.b a b c k ≤ kababck≤k
La construction des carreaux est un peu fastidieuse, mais assez claire. Notez que nous ne créerons pas de tuiles qui ne transmettent pas ou ; celles-ci ne peuvent jamais faire partie d'une super-séquence commune la plus courte, elles sont donc superflues. Ils peuvent facilement être ajoutés sans casser les propriétés de la réduction.bab
Les nombres dans les chevauchements sont codés en binaire, mais en utilisant des symboles en dehors de et en les remplissant à une longueur commune . Ainsi, nous nous assurons que les tuiles sont utilisées comme le suggèrent les graphiques (tetris), c'est-à-dire que les caractères et les chevauchements d'indexation ne se mélangent pas (PCP n'empêche pas cela en soi). Nous avons besoin:Σlogmax(m,n)
- Tuiles de départ: peut commencer par , ou les deux s'ils sont égaux.a 1 b 1ca1b1
- Tuiles intermédiaires: peut passer au symbole suivant en , en ou les deux s'ils sont égaux.a bcab
- Tuiles terminales: se termine par le dernier symbole de (si le dernier de a déjà été vu), similaire à , ou par le dernier symbole des deux.a b bcabb
Ce sont les schémas de tuiles. Notez que les tuiles intermédiaires doivent être instanciées pour toutes les paires . Comme mentionné ci-dessus, créez les tuiles sans uniquement si les caractères respectifs dans et correspondent.∗ a b(i,j)∈[n]×[m]∗ab
[ source ]
Les sont symboliques pour "ne se soucient pas"; dans les tuiles réelles, l'autre symbole devra y être copié. Notez que le nombre de tuiles est en et chaque tuile a une longueur , donc l'instance BPCP construite (sur l'alphabet plus les symboles de séparation) a une taille polynomiale. De plus, la construction de chaque tuile est clairement possible en temps polynomial. Par conséquent, la réduction proposée est en effet une transformation polynomiale valide qui réduit le problème de superséquence commune NP-complet le plus court au BPCP.Θ ( m n ) 4 log max ( m , n ) + 1 Σ ∪ { 0 , 1 }∗Θ(mn)4logmax(m,n)+1Σ∪{0,1}