Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AATercera
AATercera
Problemas NP
141
Captulo 10
Problemas Tratables e Intratables
Los problemas computacionales los podemos dividir en dos conjuntos
Intratables Problemas para los que no se conoce ningn algoritmo de complejidad polinomial.
A los problemas tratables se les conoce tambin como problemas P (de orden polinomial). Asimismo a los problemas no tratables se les llama tambin
NP (de orden no determinstico polinomial). Entre estos ltimos podemos
encontrar los siguientes ejemplos:
Agente Viajero.
Caminos Hamiltonianos. Encontrar un camino en un grafo que pasa
una sola vez por cada nodo. O(n!).
Caminos Eulerianos. Encontrar un camino en un grafo que pasa una
sola vez por cada arco.
10.1.
Algoritmos No Deterministicos
144
instrucciones den resultados no determinados de antemano. Para ello aumentaremos nuestro conjunto de instrucciones con las siguientes tres:
otro
is
termina.
F racaso;
10.2. Interpretaciones
Podemos interpretar la instruccin Elige de las siguientes maneras:
1. Elige es mgica y siempre devuelve el valor que necesitamos.
2. Al llamar a elige, el programa se multiplica, despus del llamado hay
tantas copias como valores pueden devolver el llamado. La ejecucin de
la instruccin xito detiene todas las copias del programa. La ejecucin
de la instruccin Fracaso detiene la copia del programa que la ejecuta.
10.2. INTERPRETACIONES
145
B[i] elige(A);
A A B[i];
Exito;
termina.
Algoritmo 41: Ordena no deterministico. Elige mgica
El algoritmo 41 fu diseado pensando en la primera interpretacin. Pero
si utilizamos la segunda interpretacin el algoritmo regresar siempre exito
lo cual es erroneo.
B[i] elige(A);
A A B[i];
i 1;
otro
F racaso;
termina.
Algoritmo 42: Ordena no deterministico. Multiprocesos
El algoritmo 41 por otro lado regresa el resultado correcto independientemente de la interpretacin de Elige.
146
zah
si vacum = M entonces
otro
is
termina.
res verdad;
Exito;
res F also;
F racaso;
10.2. INTERPRETACIONES
sujeta a
147
n
X
xi p i M
i=1
y maximizando
n
X
xi v i .
i=1
El problema de decisin de la mochila consiste en decidir si para un conjunto de objetos tenemos un subconjunto tal que la restriccin de pesos se
cumpla y
n
X
xi vi = k.
i=1
zah
si (pacum M ) (vacum K) entonces
otro
termina.
res verdad;
Exito;
res f also;
F racaso;
riable o su negacin. Una frmula del clculo Proposicional se forma con literales y operadores (conjuncin) y (disyuncin). Una frmula de clculo
proposicional est en forma normal conjuntiva (CNF) si se expresa como
C1 C2 CR
148
proc SatisfacibilidadND
comienza
para i = 1 a n haz
zah
si evalua(F, x) entonces
otro
is
termina.
res verdad;
Exito;
res f also;
F racaso;
Denicin 6 NP es el conjunto de problemas para los que existe una solucin no determinstica de complejidad polinomial.
Teorema 17 (Cook) Cualquier problema no determinsticamente polinomial se reduce en tiempo polinomial al problema de la satisfacibilidad (SAT).
Es decir
X N P X SAT .
10.2. INTERPRETACIONES
149
proc Ordena(A, n)
comienza
para i 1 a n haz
zah
termina.
150
proc B(Exp, n)
comienza
x (00...0)
mientras (X (11...1)) Evalua(Exp, x) haz
me(x)
si Evalua(Exp, x) entonces
termina.
repite
hasta (F also)
proc S.Halt(Exp, n)
comienza
Escribe(B, Exp, n)
termina.
0716E2534
0716A2534
0716C2534
0716F2534 2 0716B2534
5
8?9
>
=
:
;
<
D
Debemos construir As P
proponemos el siguiente algoritmo de transformacion.
Sea E = C1 C2 Ck co-variables booleanas X1 , X2 , . . . , Xk .
151
10.4.
152
0716G2534
07162534
A ???
??
??
0716C25?34
0716F2534
07162534
??
B
??
??
?
8?9
>
D=:;<
153
154
10.5.
155
Problema de la planeacin
tpt =
1X
fi
n i=1
1X
tpt =
fi C i
n i=1
Sea Ti el tiempo en el que el procesador pi termina su trabajo. El tiempo
de terminacin de la planeacin es:
tt = M ax(Ti ), 1 i n
Una planeacin es no apropiativa cuando un trabajo se ejecuta desde el
principio hasta el n en el mismo procesador.
Una planeacin es apropiativa cuando el trabajo no necesariamente se
ejecuta completamente en el mismo procesador.
P.D. El problema de decidir si un conjunto de trabajos tiene una planeacin no apropiativa para m procesadores con un tiempo de terminacin T es
NPDuro (i.e S Plan)
Utilizaremos el problema de la particin: Dado un conjunto de nmeros
enteros y un nmero m decidir si es posible particionar el conjunto en m
subconjuntos tal que la suma de los elementos de la particin sea igual.
Si m = 2
A = {2, 7, 10, 25, 20}
El problema de decisin de la particin es NP Completo.
P.D Particin Plan.
- Suponemos que existe AP lan P
- Construir Aparticion P
Proponemos al siguiente algoritmo:
156
ti =
1 X
ti
m i=1
Figura 15: a + b + (a c)
Una hoja es un nodo con grado de salida cero. Un nodo es un nivel 1 si
sus nodos hijos son ambas hojas. Un nodo compartido es un nodo con ms
de un padre. Un gad hoja si todos sus nodos compartidos son nodos hoja. Un
gad de nivel 1 es aquel en el cual todos sus nodos compartidos son de nivel
1.
a) El problema de generar el cdigo objeto ptimo para gads de nivel 1
es NP Duros an cuando la mquina tenga un slo registro.
157
Figura 16: (a + b) (a + b + c)
b) Determinar el nmero r de registros necesariso para evaluar un gad de
nivel 1 si almacenara en memorias es NP Duros.
LOAD
ADD
STORE
ADD
STORE
LOAD
MULT
LOAD
ADD
ADD
MULT
10.7.
A1 R1
R1 BR1
T1 R 1
R1 C1 R1
T2 R 1
T1 R 1
R1 T2 R1
aR1
R1 bR1
R1 cR1
R 1 T2 R 1
158
Las cartas deben ser coloreadas de manera que sus lados adyacentes tengan el mismo color.