SlideShare una empresa de Scribd logo
1 de 18
Clasificación de ProblemasClasificación de Problemas
Profesor: Pilar Pardo H.
Complejidad computacional
COMPLEJIDAD COMPUTACIONAL
Metodología para la Solución de Problemas
Por medio de un Computador
1. Definición del Problema (Requerimientos)
2. Análisis del Problema (Datos e entrada, salida. con lo que se cuenta)
3. Diseño (Algoritmos, BD, Topologías)
4. Codificación (Lenguaje de Programación)
5. Pruebas (Depuración)
6. Liberación (Entrega)
COMPLEJIDAD COMPUTACIONAL
Aspectos básicos
1. Algoritmo Es un procedimiento “Paso a Paso”
2. Caracterización de un problema Algorítmico
- Conjunto de todos los datos de entrada.
- El objetivo del problema.
3. Resolución de un problema
Se resuelve cuando se aplica el algoritmo a una entrada de datos (instancia) y
se obtiene una salida que responde al objetivo.
COMPLEJIDAD COMPUTACIONAL
Representación de problemas
Un problema se representa por:
- Un dominio Ω que contiene las posibles soluciones.
- Una pregunta cuya respuesta genera la solución al problema п.
Ejemplo: PROBLEMA DEL VENDEDOR VIAJERO (PVV)
1 2
43
10
1520
12
4
3
Dominio: {
1-2-4-3-1
1-2-3-4-1
1-3-4-2-1
1-3-2-4-1
1-4-2-3-1
1-4-3-2-1
}
= 57
= 29
= 57
= 42
= 42
= 29
COMPLEJIDAD COMPUTACIONAL
Variantes de un problema Π
1. Problemas de Decisión
¿Existe una estructura S que satisface las propiedades de п?
Respuesta : SI o NO
2. Problemas de Localización
Encontrar una estructura S que satisface las propiedades de п
Respuesta : S
3. Problemas de Optimización
Encontrar estructura S que satisface las propiedades de п y criterios de
optimización
Respuesta : S* = optimo (S) , ∀ S ∈ Ω
COMPLEJIDAD COMPUTACIONAL
Complejidad Computacional
1. NONO se refiere a:
- Dificultad de diseño.
- Rebuscado de un algoritmo.
2. SISI se refiere a:
- Medidas de desempeño
- Tiempo Complejidad Temporal
- Espacio Complejidad Espacial
COMPLEJIDAD COMPUTACIONAL
Complejidad Temporal
1. Se utiliza el tamaño de entrada para definir al tiempo de ejecución.
Sea n tamaño de entrada, se define T(n) como tiempo de ejecución
No se considera los datos de entrada, sino el tamaño del conjunto de ellos.
Ejemplo : Ordenamiento de una lista de números.
Casos :
- Mejor caso
- Caso Medio
- Peor Caso
COMPLEJIDAD COMPUTACIONAL
Ejemplo 1 : Para el siguiente algoritmo, su T(n) = 4n+3
Algoritmo :
(1) suma = 0;
(2) for(i=1;i<=n;i++)
(3) suma = suma + i;
TOTAL 4n+34n+3
Instrucción (1) Ocupa 1 unidad de tiempo. 1
Instrucción (3) Ocupa 2 unidades de tiempo y es ejecutada n veces. 2n
Instrucción (2) Ocupa 1 unidad de tiempo en la asignación, n+1 en las
comparaciones y n en los incrementos. 2n+2
1
n
i
i
=
∑
COMPLEJIDAD COMPUTACIONAL
Ejemplo 2 : Para el siguiente algoritmo, su T(n) = 7n2
+8n+5
Algoritmo :
(1) suma = 0;
(2) for(i=1;i<=n;i++)
(3) for(j=1;j<=n;j++)
(4) suma = suma + i*j;
Instrucción (2)(3) Ocupan 2n+2 unidades de tiempo cada una y se
ejecutan anidadas. (2n+2)* (2n+2) = 4n2
+8n+4
Instrucción (4) Ocupa 1 unidad de tiempo en la asignación, 2 en la
suma y multiplicación y se repite n * n veces 3n2
TOTAL 7n7n22
+8n+5+8n+5
Instrucción (1) Ocupa 1 unidad de tiempo. 1
1 1
*
n n
i j
i j
= =
∑∑
Orden de un Algoritmo
1. Para simplificar el estudio de la complejidad computacional, se adoptan ciertas
convenciones en su notación.
COMPLEJIDAD COMPUTACIONAL
2. Se define el orden de un algoritmo como el termino de mayor grado.
Tiempo de ejecución T(n)= 4n+3 Orden O(n)O(n) Orden Polinomial Lineal.
Tiempo de ejecución T(n)= 7n2
+8n+5 Orden O(nO(n22
)) Orden Polinomial Cuadrático.
Tiempo de ejecución T(n)= 2n
+3 Orden O(O(2n
)) Orden Exponencial.
O(nO(nxx
)) Tiempo PolinomialTiempo Polinomial Algoritmos Eficientes Problemas Tratables
O(xO(xnn
)) Tiempo ExponencialTiempo Exponencial Algoritmos Ineficientes Problemas Intratables
COMPLEJIDAD COMPUTACIONAL
Ejemplo 3 : El siguiente algoritmo tiene tiempo exponencial de O(2n
)
Algoritmo :
(1) void Hanoi( int n, int A, int B, int C)
(2) {
(3) if(n==1)
(4) MueveAnillo(A,B);
(5) else {
(6) Hanoi(n-1, A, C, B);
(7) MueveAnillo(A,B);
(8) Hanoi(n-1, C, B, A);
(9) }
(10) }
A B C
H(2,A,B,C)
A B C
H(1,A,C,B)
A B C
M(A,B)
H(1,C,B,A)
A B C
COMPLEJIDAD COMPUTACIONAL
Algoritmo :
(1) void Hanoi( int n, int A, int B, int C)
(2) {
(3) if(n==1)
(4) MueveAnillo(A,B);
(5) else {
(6) Hanoi(n-1, A, C, B);
(7) MueveAnillo(A,B);
(8) Hanoi(n-1, C, B, A);
(9) }
(10) }
H(3,A,B,C)
H(2,A,C,B)
M(A,B)
H(2,C,B,A)
A B C
A B C
A B C
A B C
COMPLEJIDAD COMPUTACIONAL
Recordemos que el orden de este algoritmo es 2n
luego su tiempo de ejecución es
exponencial y por lo tanto es un problema intratable.
Supongamos que el tiempo de ejecución en una máquina determinada es 10-9
Seg. Por
operación.
Supongamos además que deseamos jugar con 1000 Aros.
T(n=1000) = 10-9 *
21000
= 5-9 *
2991
Seg.
9 991 1
5 *2 *
60*60*24*30*12*100
Siglos−
=
T(n=1000) = 10282
Siglos.
COMPLEJIDAD COMPUTACIONAL
Recordemos las Variantes de un problema Π
1. Problemas de Decisión
¿Existe una estructura S que satisface las propiedades de п?
Respuesta : SI o NO
2. Problemas de Localización
Encontrar una estructura S que satisface las propiedades de п
Respuesta : S
3. Problemas de Optimización
Encontrar estructura S que satisface las propiedades de п y criterios de
optimización
Respuesta : S* = optimo (S) , ∀ S ∈ Ω
COMPLEJIDAD COMPUTACIONAL
Π de optimización tratado como Π de decisión
- Valor objetivo K para la instancia n
- ¿ Existe una solución factible en el conjunto Ω ?
Ejemplo : Problema de cobertura de Vértice.
( Conjunto U de vértices de G, tales que cualquier arco de G inicia y/o
termina en un vértice de U)
z v
xy
w
u
s
U = { w, s, y, z}
COMPLEJIDAD COMPUTACIONAL
PD de cobertura de vértices :
Existe para el grafo G una cobertura S de tamaño K tal que no exista otra menor.
1. Instancia : Un grafo G y un valor K.
2. Respuesta :
SI : Si hay una cobertura de vértices de tamaño menor o igual a K.
NO : Si no existe.
PO de cobertura de vértices :
Encontrar el subconjunto de vértices menor que sea una cobertura de vértices.
Instancia : Un grafo G.
Respuesta : Una cobertura de vértices de tamaño mínimo.
LUEGO UN PROBLEMA DE OPTIMIZACIÓN PUEDE SER TRATADO COMO
UNO DE DECISIÓN
COMPLEJIDAD COMPUTACIONAL
Modelo de Cómputo
Los podemos Agrupar en dos grandes conjuntos:
Deterministicos.
NO Deterministicos.
DETERMINISTICO :
Modelo matemático estándar, Siempre lo mismo.
SI NO
NO DETERMINISTICO :
Modelo compuesto de dos fases: Adivinación, Verificación.
SI NO
COMPLEJIDAD COMPUTACIONAL
Clases de Problemas de Decisión
Clases P de problemas
Conjunto de problemas, para los cuales se conoce un algoritmo Polinomial en una
maquina Determinista.
Clases NP de problemas
Conjunto de problemas, para los cuales se toma aleatoria mente una posible solución, y
se prueba su factibilidad con un algoritmo Polinomial en una maquina
Determinista.
Clases NP-Completo de problemas
Se dice que un problema se decisión A pertenece a NP-Completo cuando:
1. A ∈ NP.
2. Cada Problema en NP se puede reducir polinomialmente a A.

Más contenido relacionado

La actualidad más candente

Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Raquel Nuñez
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretasFrancisco Lambert Obediente
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmosmarshalleitor
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosJuan Timoteo Cori
 
Unidad siete estructura de datos
Unidad siete estructura de datosUnidad siete estructura de datos
Unidad siete estructura de datosRené Sosa Arana
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7lenithoz
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Rubi Veronica Chimal Cuxin
 
Teoría de complejidad computacional (tcc).pptx
Teoría de complejidad computacional (tcc).pptxTeoría de complejidad computacional (tcc).pptx
Teoría de complejidad computacional (tcc).pptxYared Redman
 
Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacionalJonathan Bastidas
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de AlgoritmosFranco Cid
 
Teoria de la c.c.
Teoria de la c.c.Teoria de la c.c.
Teoria de la c.c.belmont402
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAdamari Cortes
 

La actualidad más candente (20)

AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)
 
Jflambert lyada - ayudantia matematicas discretas
Jflambert   lyada - ayudantia matematicas discretasJflambert   lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia matematicas discretas
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmos
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Unidad siete estructura de datos
Unidad siete estructura de datosUnidad siete estructura de datos
Unidad siete estructura de datos
 
Estructura de dato unidad 7
Estructura de dato unidad 7Estructura de dato unidad 7
Estructura de dato unidad 7
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
analisis de los algoritmos
analisis de los algoritmosanalisis de los algoritmos
analisis de los algoritmos
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Teoría de complejidad computacional (tcc).pptx
Teoría de complejidad computacional (tcc).pptxTeoría de complejidad computacional (tcc).pptx
Teoría de complejidad computacional (tcc).pptx
 
Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacional
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
Teoria de la c.c.
Teoria de la c.c.Teoria de la c.c.
Teoria de la c.c.
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacio
 

Destacado

Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmosjuanmonsalve001
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmosPablo Solar
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmoLutzo Guzmán
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmosjuanveg31
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosSergio Ormeño
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmosJojo Jona
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosYulyana López
 
complejidad de los algoritmos.
complejidad de los algoritmos.complejidad de los algoritmos.
complejidad de los algoritmos.Juan Navarro
 

Destacado (9)

Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
Complejidad de un algoritmo
Complejidad de un algoritmoComplejidad de un algoritmo
Complejidad de un algoritmo
 
Complejidad de los algoritmos
Complejidad de los algoritmosComplejidad de los algoritmos
Complejidad de los algoritmos
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
 
ejercicios resueltos análisis de algoritmos
ejercicios resueltos   análisis de algoritmosejercicios resueltos   análisis de algoritmos
ejercicios resueltos análisis de algoritmos
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
complejidad de los algoritmos.
complejidad de los algoritmos.complejidad de los algoritmos.
complejidad de los algoritmos.
 
Complejidad de los Algoritmos
Complejidad de los AlgoritmosComplejidad de los Algoritmos
Complejidad de los Algoritmos
 

Similar a Clasificación de problemas computacionales

Similar a Clasificación de problemas computacionales (20)

Informe
InformeInforme
Informe
 
Teoria de la compleijidad algoritmica.pdf
Teoria de la compleijidad algoritmica.pdfTeoria de la compleijidad algoritmica.pdf
Teoria de la compleijidad algoritmica.pdf
 
08 compalgoritmos
08 compalgoritmos08 compalgoritmos
08 compalgoritmos
 
Métodos Directos
Métodos DirectosMétodos Directos
Métodos Directos
 
Omega Up
Omega UpOmega Up
Omega Up
 
Cap2.1
Cap2.1Cap2.1
Cap2.1
 
14494030 metodos-numericos-basicos-para-ingenieria
14494030 metodos-numericos-basicos-para-ingenieria14494030 metodos-numericos-basicos-para-ingenieria
14494030 metodos-numericos-basicos-para-ingenieria
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
Practicas java Nieto Ugalde Evelyn Anayansi Grupo:403
 
Notación Asintótica
Notación AsintóticaNotación Asintótica
Notación Asintótica
 
Concepto Básicos Algoritmia
Concepto Básicos Algoritmia Concepto Básicos Algoritmia
Concepto Básicos Algoritmia
 
Practicas
PracticasPracticas
Practicas
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
 
Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmos
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Complejidad
ComplejidadComplejidad
Complejidad
 
Ejemplos de algoritmos
Ejemplos de algoritmosEjemplos de algoritmos
Ejemplos de algoritmos
 
Matematica computacional
Matematica computacionalMatematica computacional
Matematica computacional
 
Tema 2 eficiencia y complejidad
Tema 2 eficiencia y complejidadTema 2 eficiencia y complejidad
Tema 2 eficiencia y complejidad
 
Manual de prácticas java 2015
Manual de prácticas java 2015Manual de prácticas java 2015
Manual de prácticas java 2015
 

Clasificación de problemas computacionales

  • 1. Clasificación de ProblemasClasificación de Problemas Profesor: Pilar Pardo H. Complejidad computacional
  • 2. COMPLEJIDAD COMPUTACIONAL Metodología para la Solución de Problemas Por medio de un Computador 1. Definición del Problema (Requerimientos) 2. Análisis del Problema (Datos e entrada, salida. con lo que se cuenta) 3. Diseño (Algoritmos, BD, Topologías) 4. Codificación (Lenguaje de Programación) 5. Pruebas (Depuración) 6. Liberación (Entrega)
  • 3. COMPLEJIDAD COMPUTACIONAL Aspectos básicos 1. Algoritmo Es un procedimiento “Paso a Paso” 2. Caracterización de un problema Algorítmico - Conjunto de todos los datos de entrada. - El objetivo del problema. 3. Resolución de un problema Se resuelve cuando se aplica el algoritmo a una entrada de datos (instancia) y se obtiene una salida que responde al objetivo.
  • 4. COMPLEJIDAD COMPUTACIONAL Representación de problemas Un problema se representa por: - Un dominio Ω que contiene las posibles soluciones. - Una pregunta cuya respuesta genera la solución al problema п. Ejemplo: PROBLEMA DEL VENDEDOR VIAJERO (PVV) 1 2 43 10 1520 12 4 3 Dominio: { 1-2-4-3-1 1-2-3-4-1 1-3-4-2-1 1-3-2-4-1 1-4-2-3-1 1-4-3-2-1 } = 57 = 29 = 57 = 42 = 42 = 29
  • 5. COMPLEJIDAD COMPUTACIONAL Variantes de un problema Π 1. Problemas de Decisión ¿Existe una estructura S que satisface las propiedades de п? Respuesta : SI o NO 2. Problemas de Localización Encontrar una estructura S que satisface las propiedades de п Respuesta : S 3. Problemas de Optimización Encontrar estructura S que satisface las propiedades de п y criterios de optimización Respuesta : S* = optimo (S) , ∀ S ∈ Ω
  • 6. COMPLEJIDAD COMPUTACIONAL Complejidad Computacional 1. NONO se refiere a: - Dificultad de diseño. - Rebuscado de un algoritmo. 2. SISI se refiere a: - Medidas de desempeño - Tiempo Complejidad Temporal - Espacio Complejidad Espacial
  • 7. COMPLEJIDAD COMPUTACIONAL Complejidad Temporal 1. Se utiliza el tamaño de entrada para definir al tiempo de ejecución. Sea n tamaño de entrada, se define T(n) como tiempo de ejecución No se considera los datos de entrada, sino el tamaño del conjunto de ellos. Ejemplo : Ordenamiento de una lista de números. Casos : - Mejor caso - Caso Medio - Peor Caso
  • 8. COMPLEJIDAD COMPUTACIONAL Ejemplo 1 : Para el siguiente algoritmo, su T(n) = 4n+3 Algoritmo : (1) suma = 0; (2) for(i=1;i<=n;i++) (3) suma = suma + i; TOTAL 4n+34n+3 Instrucción (1) Ocupa 1 unidad de tiempo. 1 Instrucción (3) Ocupa 2 unidades de tiempo y es ejecutada n veces. 2n Instrucción (2) Ocupa 1 unidad de tiempo en la asignación, n+1 en las comparaciones y n en los incrementos. 2n+2 1 n i i = ∑
  • 9. COMPLEJIDAD COMPUTACIONAL Ejemplo 2 : Para el siguiente algoritmo, su T(n) = 7n2 +8n+5 Algoritmo : (1) suma = 0; (2) for(i=1;i<=n;i++) (3) for(j=1;j<=n;j++) (4) suma = suma + i*j; Instrucción (2)(3) Ocupan 2n+2 unidades de tiempo cada una y se ejecutan anidadas. (2n+2)* (2n+2) = 4n2 +8n+4 Instrucción (4) Ocupa 1 unidad de tiempo en la asignación, 2 en la suma y multiplicación y se repite n * n veces 3n2 TOTAL 7n7n22 +8n+5+8n+5 Instrucción (1) Ocupa 1 unidad de tiempo. 1 1 1 * n n i j i j = = ∑∑
  • 10. Orden de un Algoritmo 1. Para simplificar el estudio de la complejidad computacional, se adoptan ciertas convenciones en su notación. COMPLEJIDAD COMPUTACIONAL 2. Se define el orden de un algoritmo como el termino de mayor grado. Tiempo de ejecución T(n)= 4n+3 Orden O(n)O(n) Orden Polinomial Lineal. Tiempo de ejecución T(n)= 7n2 +8n+5 Orden O(nO(n22 )) Orden Polinomial Cuadrático. Tiempo de ejecución T(n)= 2n +3 Orden O(O(2n )) Orden Exponencial. O(nO(nxx )) Tiempo PolinomialTiempo Polinomial Algoritmos Eficientes Problemas Tratables O(xO(xnn )) Tiempo ExponencialTiempo Exponencial Algoritmos Ineficientes Problemas Intratables
  • 11. COMPLEJIDAD COMPUTACIONAL Ejemplo 3 : El siguiente algoritmo tiene tiempo exponencial de O(2n ) Algoritmo : (1) void Hanoi( int n, int A, int B, int C) (2) { (3) if(n==1) (4) MueveAnillo(A,B); (5) else { (6) Hanoi(n-1, A, C, B); (7) MueveAnillo(A,B); (8) Hanoi(n-1, C, B, A); (9) } (10) } A B C H(2,A,B,C) A B C H(1,A,C,B) A B C M(A,B) H(1,C,B,A) A B C
  • 12. COMPLEJIDAD COMPUTACIONAL Algoritmo : (1) void Hanoi( int n, int A, int B, int C) (2) { (3) if(n==1) (4) MueveAnillo(A,B); (5) else { (6) Hanoi(n-1, A, C, B); (7) MueveAnillo(A,B); (8) Hanoi(n-1, C, B, A); (9) } (10) } H(3,A,B,C) H(2,A,C,B) M(A,B) H(2,C,B,A) A B C A B C A B C A B C
  • 13. COMPLEJIDAD COMPUTACIONAL Recordemos que el orden de este algoritmo es 2n luego su tiempo de ejecución es exponencial y por lo tanto es un problema intratable. Supongamos que el tiempo de ejecución en una máquina determinada es 10-9 Seg. Por operación. Supongamos además que deseamos jugar con 1000 Aros. T(n=1000) = 10-9 * 21000 = 5-9 * 2991 Seg. 9 991 1 5 *2 * 60*60*24*30*12*100 Siglos− = T(n=1000) = 10282 Siglos.
  • 14. COMPLEJIDAD COMPUTACIONAL Recordemos las Variantes de un problema Π 1. Problemas de Decisión ¿Existe una estructura S que satisface las propiedades de п? Respuesta : SI o NO 2. Problemas de Localización Encontrar una estructura S que satisface las propiedades de п Respuesta : S 3. Problemas de Optimización Encontrar estructura S que satisface las propiedades de п y criterios de optimización Respuesta : S* = optimo (S) , ∀ S ∈ Ω
  • 15. COMPLEJIDAD COMPUTACIONAL Π de optimización tratado como Π de decisión - Valor objetivo K para la instancia n - ¿ Existe una solución factible en el conjunto Ω ? Ejemplo : Problema de cobertura de Vértice. ( Conjunto U de vértices de G, tales que cualquier arco de G inicia y/o termina en un vértice de U) z v xy w u s U = { w, s, y, z}
  • 16. COMPLEJIDAD COMPUTACIONAL PD de cobertura de vértices : Existe para el grafo G una cobertura S de tamaño K tal que no exista otra menor. 1. Instancia : Un grafo G y un valor K. 2. Respuesta : SI : Si hay una cobertura de vértices de tamaño menor o igual a K. NO : Si no existe. PO de cobertura de vértices : Encontrar el subconjunto de vértices menor que sea una cobertura de vértices. Instancia : Un grafo G. Respuesta : Una cobertura de vértices de tamaño mínimo. LUEGO UN PROBLEMA DE OPTIMIZACIÓN PUEDE SER TRATADO COMO UNO DE DECISIÓN
  • 17. COMPLEJIDAD COMPUTACIONAL Modelo de Cómputo Los podemos Agrupar en dos grandes conjuntos: Deterministicos. NO Deterministicos. DETERMINISTICO : Modelo matemático estándar, Siempre lo mismo. SI NO NO DETERMINISTICO : Modelo compuesto de dos fases: Adivinación, Verificación. SI NO
  • 18. COMPLEJIDAD COMPUTACIONAL Clases de Problemas de Decisión Clases P de problemas Conjunto de problemas, para los cuales se conoce un algoritmo Polinomial en una maquina Determinista. Clases NP de problemas Conjunto de problemas, para los cuales se toma aleatoria mente una posible solución, y se prueba su factibilidad con un algoritmo Polinomial en una maquina Determinista. Clases NP-Completo de problemas Se dice que un problema se decisión A pertenece a NP-Completo cuando: 1. A ∈ NP. 2. Cada Problema en NP se puede reducir polinomialmente a A.