Expandir el comentario de vzn en una respuesta: la reducción estándar de CNF-SAT a la cubierta de vértices es bastante fácil: haga un vértice para cada término (variable o su negación), conecte cada variable a su negación por un borde, haga una camarilla para cada cláusula , y conecta cada vértice de la camarilla al vértice de uno de los términos de la cláusula. Si comienza con un problema de satisfacción con una asignación satisfactoria conocida, esto le dará un problema de cobertura de vértice con una solución óptima conocida (elija el término vértices dados por la asignación, y en cada grupo de cláusulas elija todos menos un vértice, de modo que el vértice de la cláusula que no se elige es adyacente al término vértice que se elige).
Así que ahora necesita encontrar problemas de satisfacción que tengan una tarea satisfactoria conocida pero que la solución sea difícil de encontrar. Existen muchas formas conocidas de generar problemas difíciles de satisfacción (por ejemplo, generar instancias aleatorias de k-SAT cercanas al umbral de satisfacción), pero el requisito adicional de que conozca la asignación satisfactoria restringe las posibilidades. Una cosa que puede hacer aquí es pasar por otro nivel de reducción, desde un problema criptográfico difícil como la factorización. Es decir, elegir dos primos grandes p y q, configurar un circuito booleano para multiplicar p y q como números binarios, y traducirlo a una fórmula CNF en la que haya una variable para cada entrada (p y q) y para cada valor intermedio en un cable en el circuito, una cláusula para cada salida que lo obliga a tener el valor correcto, y una cláusula para cada puerta que obliga a las entradas y salidas de la puerta a ser coherentes entre sí. Luego traduzca esta fórmula CNF en la cubierta del vértice.
Para una estrategia más simple, elija primero la asignación satisfactoria a una fórmula 3CNF, y luego genere cláusulas al azar, manteniendo solo las cláusulas que sean consistentes con la asignación, y luego conviértalas en una cubierta de vértice. Si las cláusulas tienen una probabilidad uniforme, esto será vulnerable a una heurística basada en grados (el término vértices que coinciden con la asignación elegida tendrá un grado menor que el término vértices que no lo hacen), pero esta deficiencia puede evitarse ajustando las probabilidades de las cláusulas de acuerdo con cuántos términos de la cláusula concuerdan con la asignación elegida. Probablemente esto sea vulnerable a algún tipo de ataque de tiempo polinómico, pero podría no ser uno que sea natural para la cobertura de vértices, por lo que podría ser un buen conjunto de instancias de prueba a pesar de no tener mucha garantía de dureza.