Ese es un nombre que he inventado para este problema. No lo he visto descrito en ninguna parte antes. Todavía no he podido encontrar una prueba de integridad de NP ni un algoritmo de tiempo polinómico para este problema. No es un problema de tarea, está relacionado con un problema que he encontrado en mi trabajo.
POCOS PUNTOS DISCRIMINADORES
INSTANCIA: Un conjunto T que contiene vectores de bits, donde cada vector de bits tiene exactamente N bits de longitud. Cada elemento de T es único, como cabría esperar de un conjunto de matemáticas. Un entero K <N.
PREGUNTA: ¿Existe un conjunto B de a lo sumo K posiciones de bits (es decir, enteros en el rango [0, N-1]) de modo que cuando eliminamos todos los bits excepto los de B de cada vector en T, los vectores más cortos restantes son todos sigue siendo único?
Ejemplo 1: para la instancia N = 5, T = {00010, 11010, 01101, 00011}, K = 2, la respuesta es sí, porque podemos seleccionar las posiciones de bit B = {0,3}. Usando la convención de que la posición de bit 0 es la más a la derecha, y los números de posición de bit aumentan de derecha a izquierda, eliminando todas las posiciones de bit excepto las de B de los vectores en T deja T '= {00, 10, 11, 01}, y esos son todos únicos.
Ejemplo 2: N = 5, T = {00000, 00001, 00010, 00100}, K = 2. La respuesta es no, porque no importa qué posiciones de dos bits seleccionamos, ninguno de los vectores de 2 bits será igual a 11, por lo que al menos dos de los vectores de 2 bits serán iguales entre sí.
Por supuesto, podemos resolver este problema enumerando todos los subconjuntos (N elija K) con el tamaño K de las posiciones de N bits, y determinando cuáles satisfacen la condición de la pregunta. Sin embargo, eso es exponencial en el tamaño de entrada.
fuente
Respuestas:
Este problema es NP-completo. Una prueba basada en la reducción de 3-SAT es la siguiente:
Considere una instancia de 3-SAT con variables y m cláusulas. Construiremos 2 n + 2 m vectores de bits ("filas") de longitud 2 n + ⌈ log 2 ( n + m ) ⌉ , de modo que el número más pequeño de bits discriminantes sea n + ⌈ log 2 ( n + m ) ⌉ si la instancia original de 3-SAT es satisfactoria.n m 2n+2m 2n+⌈log2(n+m)⌉ n+⌈log2(n+m)⌉
Los primeros bits de corresponderán a los literales { x 1 , ¬ x 1 , x 2 , ¬ x 2 , . . . , x n , ¬ x n } . Con respecto a estos bits, las primeras filas de 2 m vendrán en pares, la primera de las cuales tendrá un 1 para cada literal incluido en la cláusula correspondiente, y la segunda consistirá completamente en 0 's. Los 2 n restantes2n {x1,¬x1,x2,¬x2,...,xn,¬xn} 2m 1 0 2n las filas también vendrán en pares, el primero de los cuales tendrá 's para el literal correspondiente y su negación, y el segundo consistirá completamente en 0 ' s. Finalmente, los últimos ⌈ log 2 ( n + m ) ⌉ bits se usarán para "firmar" cada par de filas con su índice, de 0 a n + m - 1 , escrito en binario.1 0 ⌈log2(n+m)⌉ 0 n+m−1
fuente
Aunque ya se proporciona una prueba de integridad de NP , podría valer la pena señalar que este problema es equivalente a un problema de NP completo conocido llamado problema de conjunto de prueba mínimo ([SP6] en Garey y Johnson , también llamado colección de prueba mínima problema ): simplemente intercambie el papel de los conjuntos y el papel de las posiciones.
fuente