CLASES DE PROBLEMAS

Transcripción

CLASES DE PROBLEMAS
CLASES DE PROBLEMAS
1) Introducción
2) Problemas de decisión, Lenguajes, Codificación.
y la clase NP-Completa.
6) Otras clases de problemas
Computers and Intractability
NP-
guide to the theory of
1. Introducción:
Necesidad de clasificar los problemas en cuanto a su complejidad
intrínseca: ¿Puede existir algún algoritmo más eficiente que los
conocidos hasta el momento que resuelva el problema Π?
2. Problemas de decisión, Lenguajes, Codificación.
Problemas de decisión: Aquéllos problemas cuya solución consiste en dos
posibles respuestas: “si” o “no”.
Viajante de comercio.
Algoritmo: Secuencia de instrucciones que se ejecutan paso a paso y que
termina en un tiempo finito.
Complejidad: Coste del algoritmo en función de la “talla” del problema.
Consideraremos el coste en el peor caso.
Codificación:
Una codificación α de un problema Π proporciona una forma de describir cada instancia
Π mediante una cadena de símbolos de un alfabeto Σ. La “talla” de una instancia I de
Π se define como el número de símbolos de la descripción de I obtenida
mediante la función de codificación.
Para que la función de codificación no influya en el estudio de los costes, ésta debe ser
una codificación “razonable”. Aunque la noción de “razonable” es informal, se puede
expresar intuitivamente mediante las siguientes propiedades:
- La codificación de cada entrada I debe ser concisa (no llevar información innecesaria).
- Los números que aparezcan en la instancia deben codificarse en binario (o decimal,
Relación entre problemas de decisión y lenguajes: Una codificación α de un
problema Π proporciona una forma de describir cada instancia de Π mediante una
cadena de símbolos de un alfabeto Σ. Entonces Π y α parten
Σ * en tres partes:
a) Palabras de Σ * que no representan ninguna entrada codificada de Π.
b) Palabras de Σ * que representan las entradas de Π para las que la solución es NO.
Σ * que representan entradas de Π para las que la solución es SI. Esta
última clase la llamaremos Lenguaje asociado a Π bajo la codificación α.
Modelo de compuación: Máquina de Turing determinista, Máquina RAM,…
3) Clase P.
Π ∈ P si existe un algoritmo determinista que lo resuelve en tiempo
4) Clase NP.
Concepto de “Algoritmo no determinista” :
Un “Algoritmo no determinista” resuelve un problema Π si se cumple alguna de las
siguientes propiedades para todas las entradas
Π.
/* sea SΠ el conjunto de entradas para las que la respuesta es SI */
∈ SΠ entonces existe una solución adivinada tal que el algoritmo comprobará si
realmente es una solución válida y la respuesta es SI.
∉ SΠ entonces no existe una solución adivinada que produzca el resultado SI.
Un algoritmo no determinista consta de dos etapas :
2) Verifica de forma determinista que esa solución es correcta.
La etapa de adivinación no tiene coste asociado, por tanto el coste del algoritmo es el
5) Reducibilidad y la clase NP-Completa.
Sean Π1 y Π2 dos problemas de decisión, y sea I1 y I2 los conjuntos de las entradas de
Π1 y Π2. Diremos que un problema Π1 es reducible a Π2 (Π1 α Π2) si y sólo si existe
una función f : I1 → I2 tal que :
a) f es computable en tiempo polinómico por un algoritmo determinista.
∀e ∈ I1 , e ∈ SΠ1 si y sólo si f(e) ∈ SΠ2 , donde Sπ1 y Sπ2 son respectivamente los
conjuntos de entradas con solución SI para Π1 y Π 2 .
Ejemplo de reducción de un problema a otro :
Haremos una transformación de las instancias del Ciclo
(¿Existe un camino que partiendo de un vértice inicial pase por todos los demás
vez y cuyo coste sea menor o igual que una constante B ?)
Supongamos que G=(V,E) con |V|=m es una instancia de CH. La correspondiente
instancia de VC tiene un conjunto de C ciudades que coinciden con los vértices V.
∈C se asigna una distancia igual a 1 si (vi, ∈ E, e igual
a 2 en caso contrario. La constante B será igual a m.
Un problema pertenece a la clase NP-Completa si :
1) Π ∈ NP
2) ∀Π’ ∈ NP, Π’ α Π
De la definición se deduce que la clase NP-Completa es la clase de problemas más
Para demostrar que un problema pertenece a la clase NP-Completa tenemos que
1) Π ∈ NP
2) ∃ Π’ ∈ NP, Π’ α Π
Se necesitaría conocer un primer problema que pertenezca a la clase NP-Completa.
Teorema de Cook : SATISFACIBILIDAD
y sus negaciones y sea C un conjunto de
cláusulas, siendo una cláusula una
de U tal que si se las asigna el valor VERDAD entonces
Ejemplos de problemas NP-Completos :
SAT
3SAT
3DM
PARTICION
VC
CH
CLIQUE
Ejemplo de demostración de pertenencia a la clase NP-Completa
∈ NP-Completa
Otra forma de demostrar que un problema es NP-Completo :
Restricción.
Consiste en demostrar que un caso particular del problema P es un
Ejemplo : Se sabe que Partición es un problema NP-Completo
Queremos demostrar que el problema de la Mochila sin fraccionamiento es NP-
Problema de la Mochila : Sea U un conjunto de elementos de talla
∈ Z+, y valor v(u) ∈ Z+, ∀u ∈ U ; sea M ∈ Z+ el tamaño de la mochila, y K ∈
Z+ un valor,
¿Existe un subconjunto U’ ⊆U tal que
∑ s( u ) ≤ M
u ∈U '
y
∑ v ( u) ≥ K
?
u ∈U '
Se demuestra que PARTICION es un caso particular (o restricción) de este
problema, si se consideran sólo las instancias donde s(u)=v(u) ∀u ∈ U ,
y B=K=
1
s( u)
2 u∑
∈U
Problemas seudopolinómicos :
En algunos casos problemas NP-Completos en cuya entrada aparecen números tienen
si se restringe la talla de los números. Es el caso de la Mochila
sin fraccionamiento o el de la Partición. A estos problemas se les denomina
(I) : Es la longitud de la instancia (codificada) del problema.
(I) : Es la magnitud del mayor número que aparece en la instancia I.
si su coste temporal está acotado
Por definición todos los problemas
se restringe a los problemas numéricos. Un
problema es numérico si no existe un polinomio p tal que para toda instancia I
6) Otras clases de problemas :
NP-Intermedia : Π ∈ NPI si Π ∈ NP y Π ∉ NP-Completa y Π ∉ P.
Co-NP : Es la clase de problemas cuyo complementario
≠ NP.
Si un problema Π ∈ NP y su complementario Πc ∈ NP, entonces podemos asegurar
que Π ∉ NP-Completa.
CO-NPC
NP
NPC
CO-NP
NPI ?
P

Documentos relacionados