Académique Documents
Professionnel Documents
Culture Documents
1
COMPLEJIDAD AVANZADA
Introduccin
Eficiencia
Complejidad
Clculo
Notaciones asintticas
Anlisis de Algoritmos
Recurrencias
Tcnicas de optimizacin
Argumentos de Teora de la Informacin
Complejidad Computacional
Clases P, NP y NP-Completos
2
Introduccin: Problemas y ejemplares
Problema: Elevar un nmero a una potencia xy
Ejemplar: Problema concretado con unos datos:
35 (-21/2 no sera un ejemplar).
4
Eficiencia
Criterios de seleccin de un algoritmo:
- Sencillez
- De entendimiento/mantenimiento
- De programacin
De que depende?
- Algoritmo
- Flujo de datos
- Mquina, lenguaje, 5
Eficiencia: Clculo
Emprica Terica
(a posteriori) (a priori)
- Sencilla: No requiere - No es sencilla
clculos
- No es necesario
- Hay que programar y
probar los algoritmos. programar los algoritmos
- Depende de la mquina, - No depende de la
lenguaje, mquina, lenguaje,
- Tamao predeterminado - Cualquier tamao.
Hbrida
Clculo terico y evaluacin emprica
6
Eficiencia
Tamao de un problema:
- Nmero de bits que se necesitan para representar
un ejemplar en una computadora.
7
Eficiencia
Tamao de un problema:
- Espacio:
Se utiliza el bit (normalmente no nos interesa, aunque
todos los clculos seran similares a los del tiempo).
- Tiempo:
Principio de invariancia: Dos implementaciones distintas
del mismo algoritmo diferirn, a lo sumo, en una constante
multiplicativa.
8
Complejidad
Medida de la eficiencia de un algoritmo (en
tiempo y/o espacio).
9
Complejidad. Ejemplo: calcular si un nmero es primo
public static boolean esPrimo1(long n){
boolean primo=true;
for(long i=2;i<n;i++) Se hacen n-1 operaciones
if(n%i==0) primo=false;
return primo;
}
11
Complejidad: Ejemplo calcular si un nmero es primo
public static boolean esPrimo1(long n){
boolean primo=true;
for(long i=2;i<n;i++)
if(n%i==0) primo=false; Caso peor: Se hacen n-1 operaciones
return primo; Caso medio: Se hacen n-1 operaciones
Caso mejor: Se hacen n-1 operaciones
}
13
Complejidad: Operaciones elementales
Caractersticas de una operacin elemental:
En general:
Evaluacin de expresiones.
Asignacin de valores a variables.
Accesos a estructuras indexadas bsicas (ndices en un array, vector, ).
Llamadas a mtodos ( a no ser que se especifique su costo ).
15
COMPLEJIDAD AVANZADA
NOTACIONES ASINTTICAS
16
COMPLEJIDAD AVANZADA
NOTACIONES ASINTTICAS
Ejemplos
t(n)=n es del orden de f(n)=n2
t(n)=3n2 es del orden de f(n)=n2 (basta con tomar c=3)
t(n)=10+n2 es del orden de f(n)=n2 (c=2, n0=4 )
17
NOTACIONES ASINTTICAS
O: Orden de
Supone una acotacin superior de las funciones
Ejemplos:
n/log(n-1) O(n) aunque no est definida para n=0,1,2.
n2-3n O(n2) aunque es 0 para n=1,2,3.
18
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS O: Orden de
19
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS O: Orden de
t(n) O(f(n)) cIR+ | n t(n)cf(n) (salvo los valores para los que no est
definida)
f(n) c f(n)
f(n)+g(n)cf(n)+kg(n)cf(n)+kf(n)=(c+k) f(n)
g(n)k g(n)
20
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS O: Orden de
t(n) O(f(n)) cIR+ | n t(n)cf(n) (salvo los valores para los que no est
definida)
21
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS : Omega
Supone una acotacin inferior de las funciones
Corolario:
22
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS Orden exacto : Theta
(f(n)) = O(f(n))(f(n))
f (n)
lim g (n) IR+ f(n) (g(n))
n
f (n)
lim g (n) 0 f(n) O(g(n)) y g(n) (f(n))
n
23
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS : Theta
24
NOTACIONES ASINTTICAS
Resultados prcticos para el clculo de O, y
n
i
k 1
O (n
k
)
i 1
i
k 1
1 ... n ... n
k k k k k k
i 1
n n n n
c c
n n
c c ... c c
n i 1 n
c
i 1
i
O (c )
n
i 1 c 1
n
25
NOTACIONES ASINTTICAS
Resultados prcticos para el clculo de O, y
n
1
i 1 i
O(log n)
n
1
i 1 i
c
O (1) c>0
n
1
i 1 c
i
O (1) c>1
26
NOTACIONES ASINTTICAS
Propiedades de la Notaciones O, y
g(n) O(g(n))
cO(g(n)) = O(g(n)), donde c es una constante
O(g(n)) + O(g(n)) = O(g(n))
O(g(n)) O(h(n)) = O(g(n)h(n))
h(n) O(g(n)) = O(h(n)g(n))
O(g(n)) + O(h(n)) = O(max(O(h(n)),O(g(n))))
O(g(n)) - O(g(n)) = O(g(n))
27
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS Condicionales
si hacemos n f (k ) k
2k
Ejemplo: f ( n) L n e 28
NOTACIONES ASINTTICAS
30
NOTACIONES ASINTTICAS
Cul elegimos?
31
NOTACIONES ASINTTICAS
32
NOTACIONES ASINTTICAS
33
NOTACIONES ASINTTICAS
NOTACIONES ASINTTICAS Con varios parmetros
Ejemplos:
Funcin de Ackermann
Nmero combinatorio
34
COMPLEJIDAD AVANZADA ANLISIS DE ALGORITMOS
Estructuras de control: Secuencias finitas
.
S1 //secuencia 1 con un coste O(t1)
S2 //Secuencia 2 con un coste O(t2)
.
O(O(t1)+O(t2)+.)=O(max(O(t1),O(t2),.)
38
COMPLEJIDAD AVANZADA ANLISIS DE ALGORITMOS
Bloques
Se toma el mximo de los rdenes, teniendo en cuenta la regla de la
suma.
Funciones
Depende del lugar en el que se realice la llamada.
Llamada a una funcin en una sentencia simple
a=f(n) con f(i) O(n), entonces O(n)
Llamada a una funcin en una instruccin de tipo for
Depende de donde se coloque (asignacin inicial, condicin,
incremento)
Asignacin inicial se suma el orden de la funcin al del bucle.
Condicin o incremento Se suma su orden en el orden del
cuerpo del bucle.
Recursivas Resolucin de recurrencias.
39
COMPLEJIDAD AVANZADA ANLISIS DE ALGORITMOS
Estructuras de control: Anidamientos
Bucles for
40
Ecuaciones recurrentes
Mtodos de resolucin
Expansin de la recurrencia
Induccin matemtica
Ecuaciones caractersticas
Ecuaciones lineales homogneas
Races simples
Races mltiples
Ecuaciones lineales no homogneas
Ecuaciones no lineales
41
Reglas bsicas para el clculo
c si n1 Ecuacin
T(n) = recurrente
d+T(n-1) en otro caso
42
Reglas bsicas para el clculo
Resolucin: mtodo de expansin de la recurrencia
Valores iniciales
c si n1
T(0)=1, T(1)=1
T(n) =
d+T(n-1) en otro caso
43
Resolucin de recurrencias
Expansin de la recurrencia
44
Resolucin de recurrencias
Ecuaciones caractersticas
Recurrencias
T ( n ) T ( n) 1
T(n)+T(n-1)+1
Cambio de
Lineales No lineales
variable
T(n)+T(n-1)=0 T(n)+T(n-1)+1 = 4
Homogneas No homogneas
45
Resolucin de recurrencias
T1 Trp
46 46
Resolucin de recurrencias
x 3x 4 0
2
Races: r1 1, r2 4
k
tn ci ri n c1 (1) n c2 4n
i 1
Condiciones iniciales: t0=0, t1=1
0 c1 c2 1 1
c1 c2
1 c1 4c2 5 5
k
1 n
tn ci ri c1 (1) c2 4 4 (1) n O(4n )
n n n
i 1 5
T1 Trp
48 48
Resolucin de recurrencias
Ejemplo
r1=3
r2=2 doble
t n c1 3n c2 2 n c3 n 2 n
Ejemplo
5T (n 1) 8T (n 2) 4T (n 3), n 3
T (n)
n, n 0,1,2
tn 5tn1 8tn2 4tn3 0 1
Ecuacin caracterstica x3 5x 2 8x 4 0 2, doble
50
Resolucin de recurrencias
1 n
tn 2 2 2 n2 2 n 1 n2n 1 2 O(2 n 1 ) O(2 n )
n
2
T1 Trp
51 51
Resolucin de recurrencias
b es una constante
p(n) es un polinomio de grado d
Solucin:
Reducir al caso homogneo
Aplicacin del polinomio caracterstico (tn = xn)
(a0 x k a1 x k 1 ... ak )( x b) d 1 0
52
Resolucin de recurrencias
t1 1 c1 2c2 1 c2 1
i 1
t n 2 n 1 O(2 n )
T1 Trp
53 53
Resolucin de recurrencias
t0 0 c1 c2 0 c1 2
n t1 1 2c1 c2 c3 1
c2 2
t n c1 2 c21 c3 n 1
n n
t2 4 4c1 c2 2c3 4 c3 1
n 1 n 1
t n 2 2 (2) n 2
n
n 2 O(2 )
54
Resolucin de recurrencias
r1 2, doble
( x 2)( x 1) 2 ( x 2) 0 r2 1, doble
t n c1 2 n c2 n 2 n c31n c4 n 1n
55
Resolucin de recurrencias
t0 0 c1 c3 0 c1 2
t1 3 2c1 2c2 c3 c4 3 c2 1
t2 12 4c1 8c2 c3 2c4 12 c3 2
t2 35 8c1 24c2 c3 3c4 35 c4 1
t n 2 n 1 n 2 n 2 n n 2 n 2 n 1 n 2 O(n 2 n )
T1 Trp
56 56
Resolucin de recurrencias
EJEMPLO:
Procedimiento hanoi(m,i,j)
Si m>0 entonces
Hanoi(m-1,i,6-i-j)
escribir(i,,j)
Hanoi(m-1,6-i-j,j)
Fin-Si
57
Resolucin de recurrencias
Ecuaciones No Lineales
Procedimiento
Buscar un cambio de variable que permita obtener de
nuevo una funcin de n para T
Resolver en la nueva variable
Deshacer el cambio
58
Resolucin de recurrencias
T(n)=T(n/k) Sustitucin n=km
Ecuaciones No Lineales
Ejemplo
T (n) 4T (n 2) n T (1) 1 T ( 2) 6
Cambio de variable
n 2 m ; m log 2 n
T ( 2m ) 4T (2m1 ) 2m T ( 2m ) tm
t m 4t m 1 2 m ( x 4) 2 m (x - 4)(x - 2) 0
t m c1 4 m c2 2 m
Las constantes se pueden calcular antes o despus de deshacer
el cambio, pero siempre hay que tener claro si son valoresT1de m
Trp
59 59
o de n
Resolucin de recurrencias
Ecuaciones No Lineales
Ejemplo (continuacin)
Valores iniciales
t1 1 t1 1
n m
t 2 6 t 2 6
Deshacemos el cambio
4m 2m 2m n2 t n c1n 2 c2 n
c1 c2 1 c1 2
T ( n) 2n 2 n O ( n 2 )
4c1 2c2 6 c2 1
60
Resolucin de recurrencias
m
T ( n) T ( k n ) k
Sustitucin n 2
Ecuaciones No Lineales
Ejemplo
T (n) 2T ( n ) log 2 n
Cambio de variable
2m 2 m1
n2 T (2 ) 2T (2
2m
) log 2 2 2m
2m
T ( 2 ) tm tm 2tm1 2m
( x 2) 2 0 r 2; doble
t m c1 2 m c2 m 2 m
61
Resolucin de recurrencias
Ecuaciones No Lineales
Ejemplo (continuacin)
t m c1 2 m c2 m 2 m
2m
Deshacemos el cambio n2
tn c1 log 2 n c2 log 2 (log 2 n) log 2 n
t n O(log 2 (log 2 n) log 2 n)
T1 Trp
62 62
Resolucin de recurrencias
Ecuaciones No Lineales
Ejemplo
T (n) T ( n 2 )T 2 ( n 4 ) T (1) 2 T (2) 4
Cambio de variable
n 2m T (2m ) T (2m1 ) T 2 (2m2 )
T ( 2m ) tm t m t m 1 t 2 m 2
En estos casos conviene realizar un cambio de rango. Para esto
tomamos logaritmos
log 2 t m log 2 tm1 2 log 2 tm2
Ya hemos alcanzado una expresin lineal en m
T1 Trp
63 63
Resolucin de recurrencias
Ecuaciones No Lineales
Ejemplo (continuacin)
log 2 tm log 2 tm-1 2 log 2 tm-2
Consideramos Vm log 2 t m
Vm Vm 1 2 Vm 2 ( x 2 x 2) 0
( x 2)( x 1) 0 Vm c1 2m c2 (1) m
Deshacemos el cambio teniendo en cuenta que a logb bloga
c1 2m c2 ( 1) m
log 2 t m c1 2 c2 (1) tm 2
m m
Deshacemos el cambio n 2
m
log n log n
c1n c2 ( 1) c1n c2 ( 1)
tn 2 T (n) 2
2 2
T1 Trp
64 64
Resolucin de recurrencias
Ecuaciones No Lineales
Ejemplo (continuacin)
log n
c1n c2 ( 1)
T (n) 2
2
1 c1 c2 c1 1
T(n) 2 n O(2 n )
2 2c1 c2 c2 0
65
Resolucin de recurrencias
66
Resolucin de recurrencias
67
OPTIMIZACIN
68
Optimizacin
programa en ejecucin.
Soluciones:
PROBLEMAS
"El primer 90% del cdigo ocupa el 90% del tiempo de desarrollo. El 10% restante del
cdigo ocupa el otro 90% de tiempo de desarrollo." 70
Optimizacin: Ley de Amdahl
71
Optimizacin: Ley de Amdahl
1 1
A 1.18
0 .3
(1 F ) F m (1 0.3)
m 2
A m
73
Tcnicas de optimizacin
Ejemplos:
Ejemplo:
double n=Math.pow(x,3);
double n= x*x*x;
76
C. A. Tcnicas de optimizacin
Tipos de Variables
Ejemplo:
77
C. A. Tcnicas de optimizacin
Fusin de ciclos
Ejemplo:
78
C. A. Tcnicas de optimizacin
Expresiones redundantes
Eliminacin de las expresiones redundantes en sub-
expresiones.
Ejemplo:
Simplificacin de expresiones
Ejemplo:
int x=3+5+c;
int x=8+c;
80
COMPLEJIDAD COMPUTACIONAL
81
COMPLEJIDAD COMPUTACIONAL
-Considera todos los posibles algoritmos para resolver un problema
(incluso los no pensados).
En algoritmia nos puede valer, para una funcin f(n), calcular O(f(n)) o encontrar una
g(n) que f(n) (g(n)) o, mucho mejor f(n)(g(n)).
si no
n<3
si no no
n<2 si n<5
si si no
2 n<4 n<6
1
3 4 5 6
83
Argumentos de Teora de la Informacin
84
Argumentos de Teora de la Informacin
rbol de decisin: rbol binario (normalmente) que representa el
funcionamiento de un algoritmo para todos los posibles ejemplares de un
tamao dado.
Cada nodo interno contiene una prueba que se aplica a los datos.
si no
<4
si no si
<2 <6 no
no
<3
si no 6
si
1 <5
2 3 4 5 85
Argumentos de Teora de la Informacin
Todo rbol binario con k hojas tiene una altura media log k.
si no si
<2 <6 no
no
<3
si no 6
si
1 <5
2 3 4 5
86
Argumentos de Teora de la Informacin: Ordenacin
Ordenaciones:
Si se quieren ordenar n valores obtendremos n! hojas.
Altura media log n!O(n log n)
si no
A<B
si no si
B<C B<C no
no
A<C
si no C<B<A
si
A<B<C A<C
88
Argumentos de Teora de la Informacin: Ejemplo
1234 5678 9 10 11 12
1+, 2+,3+,4+
5-,6-,7-,8- 1-, 2-,3-,4-
5+,6+,7+,8+
=9? 10? 11? 12?
1569 7 8 10 11 19 10 11
1+ 9-
7-, 8- 5-, 6-
9+
10+,11+
..
10-,11-
= 12?
=2+,3+,4+
7 8 2 3 10 11 1 12
10 11
= = =
= =
8- 1+ 7- 2+ 3+
4+ 11- 9+ 10- 12- = 12+
10+ 9- 11+
5 6
6- 5-
X
89
Argumentos de Teora de la Informacin: Ejemplo
En general:
Si hay n monedas necesitamos 2*n+1 hojas por lo tanto hay que hacer k
pesadas de forma que 3k>2*n+1
Entonces:
http://www.juegosdelogica.com/index.php/acertijos-matematicos-logica/16-solucion-
92
acertijos/314-solucion-al-acertijo-mas-dificil-del-mundo
rboles de decisin en Teora de juegos
En la teora de juegos los rboles de decisin son utilizados en la llamada forma extensiva, que
modeliza los juegos que presentan algn orden. En ellos siempre hay un nodo inicial del que
salen varias flechas que apuntan a otros nodos y se reproduce la metodologa antes explicada
llegando cada rama a un vector de nmeros.
Ejemplo: supongamos que en una partida de ajedrez donde se pueden dar los siguientes
movimientos a los que se les atribuye un cierto valor o ganancia:
T: comer torre (ganancia 3), C: comer caballo (ganancia 2), R: comer reina (ganancia 8),
N: No comer (ganancia 0)
Las posibilidades de actuar se representan en el siguiente grafo, donde los nodos representan el
jugador, la ganancia (positiva si es a favor de J1 y negativa si lo es para J2) y el par de valores que
ganan cada uno de los jugadores:
J1 ,0
(0,0) Come Caballo
Come torre
J2, 2
J2,3 Come torre
(2,0)
Come torre (3,0) Come Reina NO Come
J1,2 J1,-1
J1,0 J1, -5
(2,0) (2,3)
(3,3) (3,8)
Los juegos simultneos son aquellos juegos en los que los jugadores toman la decisin a la vez, y
por tanto ninguno de ellos sabe qu decisin ha tomado el otro antes de elegir. Un ejemplo de
este tipo de juegos sera el de Piedra, papel o tijera. En el que los jugadores del mismo han de
escoger una de esas tres opciones sin saber cul de ellas escogern el resto.
E P G G E P P G E
En un juego finito y determinista , una situacin ser ganadora G si tiene algn descendiente
perdedor P; y una situacin es perdedora P si todos sus descendientes son ganadores (haga lo
que haga el otro tiene la posibilidad de ganar).
G
G P G
Ejemplo: Juego del Nim. En este juego, dos
jugadores , colocan un nmero arbitrario de
G G palillos sobre una superficie, separadas en filas.
Tanto el nmero de filas como el nmero de
fichas en cada fila son tambin arbitrarios. El
I
primer jugador toma cualquier nmero de
II
palillos de una fila, entre uno y el total de la fila,
I pero slo de una fila. El 2 jugador hace su
II I
I jugada de manera similar, retirando algunos de
las palillos que quedan, y los jugadores van
I alternndose en sus jugadas. Pierde el que retire
I
el ltimo palillo. 95
rboles de decisin: Algoritmo ID3
El algoritmo ID3 es utilizado dentro del mbito de la inteligencia artificial. Su uso se engloba en
la bsqueda de hiptesis o reglas en l, dado un conjunto de ejemplos o unas probabilidades a
priori.
Modelo de clasificacin tambin conocido como ID3 que significa "induccin mediante rboles
de decisin" que fue desarrollado por J. Ross Quinlan, capaz de tomar decisiones con gran
precisin. Sistema de aprendizaje supervisado que aplica la estrategia "divide y vencers" para
hacer la clasificacin, implementando mtodos y tcnicas para la realizacin de procesos
inteligentes, representando as el conocimiento y el aprendizaje, con el propsito de
automatizar tareas.
96
rboles de decisin: Algoritmo ID3
El ID3 permite determinar el rbol de decisin mnimo, para un conjunto de objetos. Este rbol
permite que la informacin se mantenga en forma organizada y entendible para cualquier
persona, adems hace uso de una secuencia de preguntas, donde cada una de las preguntas es
evaluada con el propsito de obtener la mejor respuesta posible.
El rbol proporciona como salida una decisin que puede ser si o no, para las funciones
97
booleanas, aunque tambin es posible representar funciones con un mayor rango de salidas.
rboles de decisin: Algoritmo ID3
La salida del algoritmo ID3 se representa como un grafo en forma de rbol, cuyos componentes
son:
La idea bsica del ID3 es de determinar, para un conjunto de ejemplos dados o una probabilidad
a priori, el atributo ms importante, o sea, aquel que posea el mayor poder discriminatorio para
dicho conjunto; ste atributo es usado para la clasificacin de la lista de objetos, basados en los
valores asociados con l mismo. Despus de haber hecho la primera prueba de atributo, sta
arrojar un resultado, el cual es en s mismo un nuevo problema de aprendizaje de rbol de
decisin, con la diferencia que contar con menos ejemplos y un atributo menos, por lo que,
cada atributo que se selecciona se descarta para la siguiente prueba.
99
rboles de decisin: Algoritmo ID3
Entropa
Medida de la incertidumbre existente ante un conjunto de mensajes, del cual va a
recibirse uno solo.
| Sv |
GI ( S , A) Entropia( S ) Entropia( Sv)
vV ( A) | S |
Donde:
S : es una coleccin de objetos
A : son los atributos de los objetos
V(A) : Conjunto de valores que A puede tomar
Ross Quinlan define el esquema del algoritmo ID3, el cual adopta los siguientes pasos:
1. Calcular la entropa para todas las clases.
2. Seleccionar el mejor atributo basado en la reduccin de la entropa.
3. Iterar hasta que todos los objetos sean clasificados.
101
rboles de decisin: Algoritmo ID3 Ejemplo
ATRIBUTO
Alumno Nota
Punt. y asist. Participacin Aprovechamiento
102
rboles de decisin: Algoritmo ID3 Ejemplo
103
rboles de decisin: Algoritmo ID3 Ejemplo
104
rboles de decisin: Algoritmo ID3 Ejemplo
Tomando todos estos datos y calculando la ganancia de informacin de todos los atributos, nos
damos cuenta que el atributo "Aprovechamiento" es el mejor atributo, dado que posee la mayor
ganancia de informacin, de tal manera que se selecciona como un nodo de prueba. Quedando
el rbol de la siguiente manera:
Como los valores de "Bueno" y "Regular" todava no llegan a una respuesta, se necesita realizar
de nuevo el clculo para ellos, pero ahora solo tomando los atributos "Puntualidad y Asistencia"
y "Participacin", discriminando al atributo "Aprovechamiento" porque ya ha sido tomado como
prueba.
105
rboles de decisin: Algoritmo ID3 Ejemplo
Entonces para "Aprovechamiento = Bueno" se tiene:
ATRIBUTO
Alumno Nota
Punt. y asist. Participacin Aprovechamiento
2 Asiste Alta Bueno Exento
3 No asiste Media Bueno Final
4 No asiste Baja Bueno Final
106
rboles de decisin: Algoritmo ID3 Ejemplo
Entonces para "Aprovechamiento = Bueno" se tiene:
Ganancia de informacin
Variable
(Variable)
Puntualidad y
0.92-[2*0/3+1*0/3] = 0.92
asistencia
107
Participacin 0.92-[1*0/3+1*0/3+1*0/3] = 0.92
rboles de decisin: Algoritmo ID3 Ejemplo
("Aprovechamiento = Bueno)
Observando los resultados obtenidos, vemos que la ganancia de informacin de los 2 atributos
Puntualidad y Asistencia y Participacin es 0.0 para ambos casos, por tal motivo la seleccin
del nodo pregunta puede ser cualquiera de ellos.
Observamos, haciendo una rpida revisin para Aprovechamiento = Regular, que tambin
toma los mismos datos, por lo que, por convencin tomamos el atributo Puntualidad y
Asistencia como nodo pregunta.
108
Reducciones lineales
Debido a la dificultad de calcular las complejidades en muchos de los problemas,
trataremos de calcular la complejidad en problemas similares.
A es linealmente reducible a B:
110
NP-COMPLETITUD
-.
111
NP-COMPLETITUD: Clases P y NP
A algoritmo eficiente si AO(p(n)) donde p(n) es un polinomio
(hay que tener en cuenta constantes: n1000 es un disparate para n
relativamente grande)
Clase P
Clase de problemas resolubles mediante un algoritmo de tiempo
polinmico.
Problemas resolubles en tiempo polinmico con una mquina de Turing
determinsta.
(esto es, el tiempo de ejecucin del algoritmo en un ordenador viene
descrito por una frmula polinmica).
En el ejemplo:
X={G/ G grafo Hamiltoniano}
Q={sucesiones de vrtices de un grafo}
Decimos que <G,s>F s es un ciclo Hamiltoniano de G.
113
NP-COMPLETITUD: Clases P y NP
NP es la clase de problemas que admiten un sistema de pruebas F XxQ / p(n)
polinomio y un algoritmo AO(p(n)) tal que:
La clase NP contiene los problemas con un sistema de prueba eficiente. Todo caso-si
(con solucin) debe tener por lo menos un q, certificado, verificable rpidamente.
El Viajante: Dado un conjunto de n nodos, y las distancias entre todos los pares de nodos,
y un nmero k, decidir si hay un circuito cerrado (es decir, un "vendedor Tour ") que visita
cada nodo exactamente una vez y tiene longitud total como mximo k. El certificado es la
secuencia de nodos en el viaje.
Programacin lineal: Dada una lista de m desigualdades lineales sobre n variables Ui (una
desigualdad lineal tiene la forma aiui b), decidir si existe una asignacin de nmeros ra
las variables Ui que satisface todas las desigualdades. El certificado es la asignacin.
115
NP-COMPLETITUD: Clases P y NP
Ejemplos de problemas NP
Isomorfismo entre grafos: Dadas dos grafos M1, M2, decidir si M1 y M2 son el mismo grafo,
declarando el cambio de nombre de los vrtices de un grafo a otro. El certificado es la
permutacin: :[n] [n] tal que M2 es igual a M1 despus de reordenar los ndices de M1
segn .