Saltearse al contenido

Complejidad Computacional

¿Qué es un problema?

Un problema es una cuestión que se plantea para encontrar un dato desconocido (salida) a partir de datos conocidos (entrada).

Definición de un problema en formato estándar

Se traducirá la palabra “instance” como ejemplar.

Ejemplar genérico: Conjunto de parámetros del problema y sus restricciones.

Enunciado objetivo: Descripción, en términos de los parámetros, de las características que ebe satisfacer la salida para ser considerada respuesta del problema.

Ejemplo:

  1. Dada una secuencia SS de números, determinar el máximo de SS. Ambigüedad

  2. Listar todos los primos positivos. No es razonable

  3. Encontrar el elemento mínimo de una secuencia finita y no vacia de números reales.

    Ejemplar genérico: Una secuencia {x0,x1,x2,,xn1}\{ x_0, x_1, x_2, \dots, x_{n-1} \} de nn números reales tal que n1n \geq 1

    Enunciado objetivo: Determinar el mínimo de {x0,x1,x2,,xn1}\{ x_0, x_1, x_2, \dots, x_{n-1} \}, es decir, encontrar x{x0,x1,x2,,xn1}x \in \{ x_0, x_1, x_2, \dots, x_{n-1} \} tal que xxix \leq x_i, para toda 0in10 \leq i \leq n-1.

  4. Dada una secuencia finita y no vacia de números naturales, encontrar el conjunto de los primeros 100 primos de N\mathbb{N} en el conjunto.

    Ejemplar genérico: Una secuencia {u0,n1,,nm1}\{ u_0, n_1, \dots, n_{m-1} \} de mm números naturales tales que m1m \geq 1.

    TBD

Problemas de Optimización

  • Tienen asociado un conjunto llamado conjunto de soluciones factibles
  • Tienen asociada una función f:FR f:\mathfrak{F} \rightarrow \mathbb{R} llamada función de peso o función de costo.
  • El objetivo es encontar un elemento de F\mathfrak{F} que minimice o máximice ff.

Ejemplo TSP

  • Ejemplar Genérico: Un conjunto C={c1,c2,,cn}C = \{ c_1, c_2, \dots, c_n \} de nn ciudades y una función distancia d:C2Rd: C² \rightarrow R entre todo par de ciudades.
  • Enunciado de Optimización: Determinar tFRt \in \mathfrak{F} \rightarrow \mathbb{R} tal que
    1. F={<cθ1,cθ2,,cθN>θ es una permutacioˊn de {1,2,, N }}\mathfrak{F} = \{ < c_{\theta_{1} }, c_{\theta_2}, \dots, c_{\theta_\N}> | \theta \text{ es una permutación de \{1,2,\dots, N \}} \}
    2. f(<cθ1,cθ2,,cθN>)=(i=1n1d(cθi,cθi+1))+d(cθn,cθ1)f(<c_{\theta_1}, c_{\theta_2}, \dots, c_{\theta_\N}>) = (\sum^{n-1}_{i=1} d(c_{\theta_i},c_{\theta_{i+1})}) + d(c_{\theta_n}, c_{\theta_1})

Problemas de Decisión

  • Únicamente tienen dos posiibles salidas: SI ó NO.

Ejemplo SAT

  • Ejemplar Genérico: Un conjunto U={u1,u2,,un}U = \{ u_1, u_2, \dots, u_n \} de nn variables booleanas y un conjunto C={c1,c2,,cn}C = \{ c_1, c_2, \dots, c_n \}de mm cláusulas sobre UU.
  • Pregunta de Decisión: ¿Existe una asignación de verdad τ:U{0,1}\tau : U \rightarrow \{ 0, 1\} tal que τ(ci)=1\tau (c_i) = 1, para toda 1im1 \leq i \leq m.

Análisis de Algoritmos

  • Tiempo de Ejecución TA(E)T_A (E) donde EE es un ejemplar del problema.

    Trabajamos con familias de ejemplares que tuvieran el mismo tamaño.

  • Tamaño de entrada (o tamaño de un ejemplar)

    El número de elementos significativos del ejemplar que serán procesados

  • Función de Complejidad Temporal TA:N×ZT_A : \mathbb{N} \times \mathbb{Z} donde TA(n)T_A(n) es el tiempo de ejecución del algoritmo AA sobre el conjunto de ejemplares de tamaño nn.

  • Algoritmos Polinomiales

    • Son algortmos que viven en O(nk)O(n^k), con kN+k \in \mathbb{N}^+

Algoritmo Eficiente

Definición: Un algoritmo es eficiente si y sólo si es O(nk)O(n^k) en tiempo

Problemas indecidibles y no computables

Γaleatorio\Gamma aleatorio ¿Esperamos poder resolver Γconunalgoritmo?\Gamma con un algoritmo?

LHALTL_{HALT}

TBD

¿Quién es MDM_D?

Para todo ii, MDM_D no es MiM_i

Si M0M_0 y MiM_i se ejeciutan con wiw_i

  • Si MiM_i se detiene, MDM_D no se detiene
  • Si MiM_i no se detiene, MDM_D no se detiene. \contradiction\contradiction

\therefore LHALTL_{HALT} no se puede reconocer por una máquina de Turing

Verificar donde va esto

NN si empieza con una cienta en blanco:

  1. Escribir ww
  2. Simular MM con ww

LBLANKHALT={M{0,1}M se detiene al empezar su ejecucioˊn con una cinta en blanco}L_{BLANK-HALT} = \{M \in \{0,1\}^* | M \text{ se detiene al empezar su ejecución con una cinta en blanco}\}

Demostrar que LBHL_{BH} no es decidible:

Pregunta:

¿Qué significa que una máquina de Turing sea total? Son aquellas que dada cualquier entrada, siempre terminan

Suponer que existe MBHM_{BH} total que L(MBH)=LBHL(M_{BH}) = L_{BH} MHALTM_{HALT}

TBD

Podemos querer funciones más complejas, podemos usar una Máquina de Turing para esto al leer de su cinta al terminar su ejecución.

Definición:

f:Σf: \Sigma^* \rightarrow es computable si y solo si exíste una máquina de Turing total MM, tal que MM con la entrada ww deja a f(w)f(w) escrita en su cinta al terminar la ejecución.

Hay más funciones que lenguajes. Sí hay lenguajes no computables, debe haber funciones no computables.

Busy Beaver

BB(n)BB(n) es la máxima cantidad de pasos que puede ejecutar una máquina de Turing MM tak que MM tiene nn estados, MM se detiene cuando empieza con una cinta en blanco y Γ={0,1}\Gamma = \{0,1\}

¿Es BB(n)BB(n) computable?

Demostrar que BB(n)BB(n) no es computable

Suponer que BB(n)BB(n) es computable. Entonces existe MBBM_{BB} total que computa BB(n)BB(n) con la entrada n.

MBLANKHALTM_{BLANK-HALT} con entrada wiw_i

  1. Construye la cadena n donde n es la cantidad de estados de MiM_i

TBD

Problemas de Decisión

Sea Π\Pi un problema de optimización. El problema de decisión asociado a Π\Pi es:

  • Ejemplar Genérico: Mismo conjunto de parámetros que Π\Pi y un real KK con restricciones según la función de costo de Π\Pi.
  • Pregunta de Decisión: ¿Existe sFs \in \mathfrak{F} tal que
    • Kf(s)?K \leq f(s)? Si Π\Pi es de minimización
    • f(s)K?f(s) \leq K? Si Π\Pi es de maximización

Ejemplo 1. Problema de la Ruta más corta

Dada una gráfica simple y no dirigida de orden nn y pesos en sus aristas, y dos vértices distinguidos ss y tt, determinar la ruta más corta entre ss y tt.

  • Forma Estándar:
    • Ejemplar Genérico: Una gráfica G=(V,E)G=(V,E) simple y no dirigida de orden nn, con función de peso en sus aristas p:ERp: E \rightarrow \mathbb{R}, y dos vértices distinguidos ss y tt.
    • Enunciado Objetivo: Determinar cFc \in \mathfrak{F} que minimice ff ó que f(c)f(c) sea mínimo, donde
      • F={CCes un camino de s a t en G}\mathfrak{F} = \{ C | C \text{es un camino de } s \text{ a } t \text{ en } G \}
      • f:FR tal que f(C)=longitud(C)f : \mathfrak{F} \rightarrow \mathbb{R} \text{ tal que } f(C) = \text{longitud}(C)
  • Problema de Decisión.
    • Ejemplar Genérico: Una gráfica G=(V,E)G=(V,E) simple y no dirigida de orden nn, con función de peso en sus aristas p:ERp: E \rightarrow \mathbb{R}, dos vértices distinguidos ss y tt, y un real KeEp(e)K \leq \sum_{e \in E} p(e).
    • Pregunta de Decisión: ¿Existe cFc \in \mathfrak{F} tal que Kf(c)K \leq f(c)?

Ejemplo 2. Problema del Empaquetamiento

Dados nn objetos o1,o2,,ono_1, o_2, \dots, o_n, de tamaños s(oi)Z+s(o_i)\in \mathbb{Z}^+; un entero positivo C tal que s(oi)cs(o_i) \leq c; y un conjunto de n contenedores de capacidad c. Determinar el menor número de contenedores para colocar o almacenar todos los objetos.

  • Forma Estándar:
    • Ejemplar Genérico: Un conjunto O=o1,o2,,onO = o_1, o_2, \dots, o_n, de nn objetos, con una función de tamaño s:OZ+s: O \rightarrow \mathbb{Z}^+ s(oi)Z+s(o_i)\in \mathbb{Z}^+; un entero positivo C tal que s(oi)cs(o_i) \leq c; y un conjunto de n contenedores de capacidad c. Determinar el menor número de contenedores para colocar o almacenar todos los objetos.

TBD

  • Enunciado Objetivo: Determinar cFc \in \mathfrak{F} que minimice ff ó que f(c)f(c) sea mínimo, donde
    • F={CCes un camino de s a t en G}\mathfrak{F} = \{ C | C \text{es un camino de } s \text{ a } t \text{ en } G \}
    • f:FR tal que f(C)=longitud(C)f : \mathfrak{F} \rightarrow \mathbb{R} \text{ tal que } f(C) = \text{longitud}(C)
  • Problema de Decisión.
    • Ejemplar Genérico: Una gráfica G=(V,E)G=(V,E) simple y no dirigida de orden nn, con función de peso en sus aristas p:ERp: E \rightarrow \mathbb{R}, dos vértices distinguidos ss y tt, y un real KeEp(e)K \leq \sum_{e \in E} p(e).
    • Pregunta de Decisión: ¿Existe cFc \in \mathfrak{F} tal que Kf(c)K \leq f(c)?

TBD

Un óraculo hace predicciones

De Optimización a Decisión

  • Idea Intuitiva
    • Ejemplar Genérico: Conjunto de parámetros de la versión de optimización y un real K acotado según la función de costo asociada.
    • Pregunta de Decisión: ¿Existe sFs \in \mathfrak{F} tal que
      • Kf(s)K \leq f(s)? Minimización
      • f(s)Kf(s) \leq K? Maximización
  • Convención
    • Ejemplar Genérico: Conjunto de parámetros de la versión de optimización y un real K acotado según la función de costo asociada.
    • Pregunta de Decisión: ¿Existe sfs \in \mathfrak{f} tal que
      • f(s)Kf(s) \leq K? Minimización
      • Kf(s)K \leq f(s)? Maximización

Verificación de TSP

Cuando no podemos solucionar directamente un álgoritmo de forma determinista podemos usar un enfoque distinto basado en proponer soluciones y verificar sí cumplen nuestro críterio.

Algoritmo CheckTSP

  • Entrada: Un conjunto C={c1,c2,,cn}C = \{ c_1, c_2, \dots, c_n \} de nn ciudades, una función d:C2R+d : C^2 \rightarrow \mathbb{R}^+ de distancia, y un real positivo KeEd(e)K \leq \displaystyle \sum_{e \in E} d(e).
  • Salida: YES, sí existe un tour tFt \in \mathfrak{F} tal que f(t)Kf(t) \leq K. NO, en otro caso.