SUMA DE SUBCONJUNTOS
CLASE DE COMPLEJIDAD UP
Cristian Riffo Huez
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Máquina de Turing: La entrada de una máquina de Turing viene determinada por el estado actual y el símbolo leído, un par [estado, símbolo], siendo el cambio de estado, la escritura de un nuevo símbolo y el movimiento las acciones a tomar en función de una entrada.
Máquina de Turing determinista: En consecuencia al par manejado existe una posibilidad de ejecución.
Máquina de Turing no determinista: A diferencia del anterior existe mas de una posible combinación de actuaciones.
P: En esta teoría, la clase P consiste de todos aquellos problemas de decisión que pueden ser resueltos en una máquina determinística en un período de tiempo polinomial.
NP: Es la clase de lenguajes decidibles en tiempo polinómico sobre una máquina de Turing no determinista.
NP-Completo: Se puede decir que los problemas de NP-completo son los problemas más difíciles de NP y muy probablemente no formen parte de la clase de complejidad P.
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Concepto de problema
Problema: Un Problema es un enunciado cierto o falso dependiendo de los valores de los parámetros que aparecen en su definición. Solución: Una Solución a un Problema es una aplicación entre el conjunto de instancias de los parámetros del problema y el conjunto {cierto, falso}. Algoritmo: Un Algoritmo es un conjunto de pasos cuyo objetivo es resolver un problema.
Problema de decisión: Un problema de decisión es un problema en donde las respuestas posibles son SI o NO. (números primos)
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Conjunto
A={2,4,3,6}
Subconjuntos
La cantidad de subconjuntos es igual a 2n.
(n: Cardinalidad de A)
{0,0,0,0}{0,0,0,1}{0,0,1,0}{0,0,1,1}{0,1,0,0}{0,1,0,1}{0,1,1,0}{0,1,1,1}
{1,0,0,0}{1,0,0,1}{1,0,1,0}{1,0,1,1}{1,1,0,0}{1,1,0,1}{1,1,1,0}{1,1,1,1}
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Dados un conjunto
A={a1,…,an}
de n números positivos y otro número positivo M, se trata de encontrar todos los subconjuntos de A cuya suma es M.
Suma de Subconjuntos
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Dado
A={2,4,3,6, 5}
Y
M=9
Determinar cuantos subconjuntos de A suman 9.
Suma de Subconjuntos
S1={3,6}
S2={2,4,3}
S3={4,5}
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Primera representación de la solución:
– La solución puede representarse simplemente con los índices de los elementos de A.– En el ejemplo: (3,4), (1,2,3) y (2,5).– En general, todas las soluciones son k-tuplas (x1,x2,…,xk), 0<k<n+1.– Restricciones sobre las soluciones:Explícitas
Implícitas
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Suma de Subconjuntos
Segunda representación de la solución:
– Cada solución puede representarse con una n-tupla (x1,x2,…,xn), tal que xi pertenece {0,1}, 1≤i≤n, de forma que:
• xi= 0 si wi no se elige y• xi= 1 si wi se elige.
– En el ejemplo anterior: (0,0,1,1,0), (1,1,1,0,0) y (0,1,0,0,1).
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Suma de Subconjuntos
• Árbol binario• Árbol Combinatorio• Backtracking (con/sin recursividad)• Backtracking con Marcaje (?)
Árbol binario
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Suma de Subconjuntos
•Las pistas de audio para un casete
Utilizar la mayor cantidad de pistas de audio en un casete.
•Encriptación
Una llave a una distancia de +/- 1% de la real es inservible.
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
Suma de Subconjuntos
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo
UNIVERSOS , DICOTOMÍAS, ORÁCULOS, PARADIGMAS, CONJETURAS,PANACEAS, UNIFORMIDADES, EQUIDADES, INEQUIDADES, CONTROVERSIAS.
La clase de complejidad UP (tiempo polinómico, no-determinista, no-ambiguo) es el conjunto de los problemas de decisión que pueden ser resueltos en tiempo polinómico por una máquina de Turing no-determinista tal que la solución si existe es única. La clase UP está contenida en NP y contiene a P. No se sabe si estas inclusiones son estrictas.
Un lenguaje L pertenece a UP si existe un algoritmo A de tiempo polinómico con dos entradas y una constante c tal que:
L = {x in {0,1}* | ∃! valor, y con |y| = O(|x|c) tal que A(x,y) = 1}
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo gráfico
Clase de complejidad UP
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo gráfico
Clase de complejidad UP
PropedéuticoSuma de SubconjuntosDefiniciónEjemploRepresentacionesSolucionesEn la práctica
Clase UPDefiniciónEjemplo gráfico
Clase de complejidad UP
“La matemática es un campo infinito autorrealizador de acciones opcionales, de labores arquitectónicas y de otro tipo; para la explotación, las excursiones heroicas, las atrevidas incursiones
y las conjeturas.”
Stanislaw Lem