Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf ·...

28
Complejidad Computacional Andrés Abeliuk Estudiante de Ciencias de la computación U. de Chile

Transcript of Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf ·...

Page 1: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Complejidad Computacional

Andrés AbeliukEstudiante de Ciencias de la computaciónU. de Chile

Page 2: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Números infinitos por cantor

Es una de las creaciones matemáticas más sorprendentes y atrevidas de toda la historia: los números transfinitos. Antes que él, el infinito, por mucha que fuese su peculiaridad, era más un objeto de reflexión filosófica que matemática. Al mostrar que existen diferentes tipos de infinito y que es posible clasificarlos mediante nuevos números, Cantor lo convirtió en protagonista de una rama muy activa de las matemáticas.

Page 3: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

crisis de los fundamentos de las matemáticas.

Se ven afectado pilares tan esenciales de la ciencia como son los conceptos de verdad y de demostraciónLos matemáticos se percataron de la excesiva confianza concedida a la intuición hasta ahora y que las evidencias sobre las que se habían descansado, no debían ser consideradas más criterios inobjetables de verdad.Esta crisis lleva a revisar el sistema aceptado de intuiciones consideradas como elementales.

Page 4: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Escuela Formalista

David Hilbert plantea en ese momento reemplazar los razonamientos intuitivos habituales por formulas y reglas (axiomas), las cuales deben ser traducidas a formalismos,de tal manera que toda teoría matemática comprendidas sus demostraciones, razonamientos y las construcciones conceptuales, queden integrados en el edificio de la matemática como constituyentes formales, según el modelo del cálculo lógico. Establece como requisitos y problemas fundamentales de un sistema formal matemático la consistencia y la completitud.

Page 5: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Los 23 Problemas de Hilbert

En el Congreso Internacional de Matemáticos celebrado en París en 1900Propuso 23 problemas que, marcaron las direcciones futuras de los progresos matemáticos.Se reconoce de forma general que ésta es la recopilación de problemas abiertos más exitosa y de profunda consideración producida nunca por un único matemático.

Page 6: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Teorema de incompletitud de Gödel

En lógica matemática, teorema más famoso y probablemente importante demostrado por Kurt Gödel en 1930. Resultado devastador para el programa de Hilbert

Definiciones:Un sistema lógico está constituido por proposiciones a las cuales se les asigna dos valores posibles, verdadero o falsoConsistenciaSi está libre de contradicciones, es decir, si no hay en él ninguna proposición P tal que tanto P como su negación sean demostrables verdaderos a partir de los axiomas.CompletitudToda proposición P o su negación son demostrables

Page 7: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Teorema de incompletitud de Gödel

Primer teorema:“En cualquier formalización consistente de las matemáticas que sea lo bastante fuerte para definir el concepto de números naturales, se puede construir una afirmación que ni se puede demostrar ni se puede refutar dentro de ese sistema.”

Segundo teorema:“Ningún sistema consistente se puede usar para demostrarse a sí mismo.”

Page 8: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Teorema de incompletitud de Gödel

Paradoja del mentiroso:“Lo que estoy diciendo ahora es falso”

Paradoja ya que de ser verdad luego es falsa y si es falsa luego es verdad

Proposición no demostrable:“No soy demostrable”

Resulta ser no demostrable, por lo que vendría siendo verdad, pero no demostrable

Page 9: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

El Entscheidungsproblem (problema de decisión)

El décimo problema de Hilbert planteaba la siguiente pregunta: ¿es posible diseñar un algoritmo que, dada una ecuación diofántica cualquiera, indique si admite o no alguna solución?Podemos transforma la pregunta en un problema más general: dada una teoría matemática no trivial ¿es posible diseñar un algoritmo que, dada una proposición cualquiera de esa teoría, nos indique si la misma es verdadera o falsa? Enunciado en términos más dramáticos, el Entscheidungsproblem nos pregunta ¿es posible, aunque sea en teoría, diseñar una computadora que reemplace a un matemático?

Page 10: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Definición de Algoritmo

La palabra clave es algoritmo. ¿Qué es un algoritmo? Intuitivamente, un algoritmo es una receta, una serie de instrucciones que nos dice cómo trabajar mecánicamente con cierto conjunto de datos.

Un algoritmo recibe entonces una entrada (input), procesa esos datos y, tras un tiempo finito, entrega como respuesta un resultado (output).Para tratar con el Entscheidungsproblem esta noción intuitiva no es suficiente. Necesitamos una definición matemáticamente precisa del concepto de algoritmo.

Page 11: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

La máquina de Turing

En 1936, fuertemente influenciado por el teorema de Godel, Alan Turing crea una definición matemática del concepto de algoritmo.

El concepto de algoritmo puede asimilarse al de una máquina abstracta, una computadora teórica hoy conocida como máquina de Turing. Esta máquina consta en primer lugar de una cinta, en la cual se anotará la entrada y la salida del algoritmo y que servirá a la vez de memoria de trabajo del dispositivo.

Page 12: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

La máquina de Turing

La cinta está dividida en celdas o casillas, cada una de las cuales puede contener un único símbolo o bien puede estar vacía. La cinta, es potencialmente infinita, esto significa que tanto hacia la derecha como hacia la izquierda podemos agregar todas las celdas que sean necesarias (memoria infinita).

Page 13: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

La máquina de Turing

La máquina consta también de un cabezal o cursor que puede ver el contenido de una casilla a la vez.El cabezal también puede borrar o escribir cualquier símbolo del lenguaje en la casilla Por otra parte, el cursor puede moverse a razón de una casilla por vez, tanto hacia la derecha como hacia la izquierda. Debido a la infinitud de la cinta, el cursor nunca encontrará límites para su movimiento.

Page 14: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

La Tesis de Turing

“Todo algoritmo o procedimiento efectivo es Turing-computable”Codificadas adecuadamente las entradas y las salidas, todo algoritmo puede representarse mediante una máquina de Turing

Aceptada la Tesis de Turing como un axioma, concluimos que si pudiéramos demostrar que cierto problema matemático es irresoluble por cualquier máquina de Turing, entonces habremos demostrado que es irresoluble por cualquier programa informático, presente o futuro.

Page 15: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

La Tesis de Turing

Es interesante observar que en su razonamiento Turing analiza los pasos que sigue una persona (no un artefacto) al realizar un cálculo. Por lo tanto, al definir su máquina, Turing estaba intentando dar un modelo matemático del funcionamiento del cerebro humano.

¿Es el cerebro humano una computadora (extraordinariamente compleja, pero computadora al fin) o, por el contrario, existe una diferencia esencial entre “computadora” y “cerebro”? No existe por el momento (y tal vez nunca exista) un acuerdo unánime acerca del cuál es la respuesta a esta pregunta.

Page 16: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Indecidibilidad

Luego de batallar con tantas validaciones y problemas tomo una decisión que marcaría el rumbo de la matemática y la computación hacia como la conocemos hoy en día, decidió hacer una máquina que tomara el código de otra máquina y que revisara si esta podría cumplir el propósito para el que fue diseñada. Pronto se encontró con lo que hoy conocemos con el límite de la computación. Dicha máquina, no existe

Page 17: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

P1 es una máquina que determina si una máquina imprimirá “Hola, Mundo” al revisar su código. Si la máquina de entrada imprime “Hola, Mundo”, entonces P1 imprimirá SI, caso contrario imprimirá “Hola, Mundo”.

Indecidibilidad

Page 18: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Ahora viene la prueba:Le damos a P1 su propio código como entrada. Al revisar su propio código, podría determinar que con certeza va a imprimir “Hola, Mundo”, por lo tanto la salida de P1 es SI. ¿Cómo es posible de que P1 al revisar su código determine que va a imprimir “Hola, Mundo”, pero al dar su respuesta no lo haga? Ahora bien, en el caso de que P1 determine que su código no imprimirá “Hola, Mundo”, entonces la salida de P1 debería ser “Hola, Mundo”. Una vez más nos encontramos en una contradicción.

Indecidibilidad

Page 19: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Una máquina como P1 no puede existir, ya que su problema radica en la decisión de su salida. No importa qué salida tenga P1, esta siempre será una contradicción. A este tipo de problemas se les llama Indecidibles.

Alan Turing marcó los límites de la computación al definir que un problema indecidible es aquel que no puede ser representado por una Máquina de Turing (TM).

Indecidibilidad

Page 20: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Problemas indecidibles

Puede probarse con no demasiada dificultad que el conjunto de todas las máquinas de Turing es numerable, Mientras que el conjunto de todas las funciones del conjunto de los números naturales en sí mismo es no numerable. Por lo tanto deben existir necesariamente funciones no calculables por máquina de Turing alguna. Es decir, existen funciones que no pueden ser calculadas algorítmicamente (no pueden ser “comprendidas” por un programa de computadora).

Page 21: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Teoría de la Complejidad Computacional

Parte de la teoría de la computación que estudia los recursos requeridos durante el cálculo para resolver un problema”. Los recursos comúnmente estudiados son el tiempo (número de pasos de ejecución de un algoritmo para resolver un problema) espacio (cantidad de memoria utilizada para resolver un problema).

Page 22: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Clase de problemas Polinomiales (P)

Cuando el tiempo de ejecución de un algoritmo es menor que un cierto valor calculado a partir del largo de la variable de entrada (N) usando una fórmula polinómica, se dice que dicho problema se puede resolver en un tiempo polinómico.Por ejemplo, la busqueda de una palabra en un texto con N palabras necesita menos de 50N2+N iteraciones, entonces el problema es resoluble en un "tiempo polinómico".De esa manera, tiempos de 2n2+5n, o 4n6+7n4-2n2 son polinómicos; pero 2n no lo es.

Page 23: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Problemas NP (Polynomial non-deterministic)

El problema del vendedor viajero

El objetivo es encontrar una ruta que, comenzando y terminando en una ciudad concreta, pase una sola vez por cada una de las ciudades y minimice la distancia recorrida por el viajante

Page 24: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

NP-completo

Dentro de la clases NP se definieron los problemas “difíciles” como NP-completosDefiniciones:NP:Se dice que un problema es NP si existe una maquina de turing a tiempo polinomial que verifique la solución.NP-completo:Si el problema es NP y todo otro problema NP es reducible a este, es decir basta resolver el problema en cuestión para resolver cualquier otro.

Los tiempos de ejecución de los problemas NP-completos son exponenciales en el largo de la entrada n. es decir en el orden de magnitud de 2n

Page 25: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

¿Cuán grande es esa magnitud?

Page 26: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

¿P=NP?

Pregunta abierta yse le considera el problema más importante en este campo. El Clay Mathematics Institute ha ofrecido un premio de $1 millón de dolares norteamericanos para quién desarrolle la primera demostración correcta.

Se conjetura que P es distinto de NP.Si P=NP las implicancias serian inmensas, los computadores capturarían esa esencia creativa e intuitiva del no determinismo.El mundo seria una utopía computacional, la IA seria un hecho y los matemáticos seria reemplazados por programas computacionales

Page 27: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Computación cuántica

Mediante la física cuántica que habla de superposición de estados, es posible estar en muchos estados simultáneamente.Pero el problema practico es que la física nos dice que no es posible medir estos valores, ya que al accesar a información solo se entregara un posible valor, perdiendo todos los demás, es decir todos los estados "colapsan" a uno solo.Aún así todos concuerden que es mas poderoso que un computador clásico destruyendo la tesis de turing.

Page 28: Complejidad Computacional - Sitio Web DCCusers.dcc.uchile.cl/~aabeliuk/documents/complejidad.pdf · capturarían esa esencia creativa e intuitiva del no determinismo. El mundo seria

Computación cuántica y NP

Ya existe un algoritmo cuántico para factorizar números en sus factores primos. Problema milenario que viene desde Aristóteles y que no se ha encontrado una solución clásica.

Factorizar es uno de los pocos problemas que no están en la clase P y tampoco se ha podido demostrar que fuese NP-Completo

Por lo tanto se cree que los computadores cuánticos no pueden resolver problemas NP-completos.