teor a de la complejidad computacional tema i:introducci...

Post on 03-Jan-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Teorıa de la Complejidad ComputacionalTema I: Introduccion

Mario de J. Perez Jimenez

Grupo de Investigacion en Computacion NaturalDpto. Ciencias de la Computacion e Inteligencia Artificial

Universidad de Sevilla

marper@us.es

http://www.cs.us.es/~marper/

Master Universitario en MatematicasCurso 2016-2017

Indice del tema I

• Problemas abstractos versus problemas concretos.

• Tipos de problemas abstractos.

• Modelos de computacion.

• Recursos computacionales.

• Problemas tratables, intratables y presuntamente intratables.

2 / 54

Problemas, problemas, problemas ...

Una eterna aspiracion del hombre ...

? Mejorar la calidad de Vida.

Para ello ...

? Necesita resolver problemas.

• A ser posible usando procedimientos mecanicos ...

3 / 54

Problemas abstractos vs problemas concretos

(1) Determinar si el numero 4730099 es primo.

(2) Calcular el producto de dos numeros naturales.

(3) Hallar el maximo comun divisor de 314 y 4524.

(4) Determinar si la suma de los angulos de un triangulo es 127o.

(5) Para cada numero natural n hallar un numero primo y mayor que n.

(6) Hallar la suma de los numeros 1234567 y 9876543.

(7) Determinar si un numero natural n es primo.

(8) Hace un par de horas, una empresa de reparto ha recibido 75 paquetes deun conocido hipermercado para su entrega a unos clientes, esta mismatarde. Sabiendo que los paquetes tienen cabida en un camion, ¿que rutadebe seleccionar el conductor para minimizar los costes?

4 / 54

Problema concreto (I)

• Dadas 42 ciudades, tiempos tij entre dos ciudades, hallar un circuito querecorra las 42 ciudades en el menor tiempo posible.

5 / 54

Problema concreto (II)

• Dadas 3150 ciudades, tiempos t′ij entre dos ciudades, hallar un circuitoque recorra las 3150 ciudades en el menor tiempo posible.

6 / 54

Problema abstracto (III)

Dadas n ciudades y unos valores tij que representan los tiempos para ir de laciudad i a la ciudad j. Determinar un circuito que permita recorrer todas lasciudades en el menor tiempo posible.

Problema del viajante de comercio (TSP).

7 / 54

Problemas concretos vs Problemas abstractos

Problema abstracto: conjunto de problemas concretos.

• Tamano de un problema concreto.

Como resolver un problema de la vida real.

? Se trata de un problema concreto.

? Se modeliza a traves de un problema abstracto.

? Se disena una solucion mecanica del problema abstracto.

? Se implementa dicha solucion mediante un programa.

? Se ejecuta el programa sobre una maquina electronica para los datosespecıficos del problema concreto.

8 / 54

Problemas abstractos

I Problemas de busqueda.

? Dado un grafo no dirigido y un numero natural k, hallar un subgrafo completo de tamano k (si no

existe, devolver NO).

? Dado un sistema lineal de p ecuaciones con n incognitas, hallar una solucion del sistema (si no

existe, devolver NO).

I Problemas de optimizacion.

? Dado un grafo no dirigido, hallar un subgrafo completo que tenga tamano maximo.

? Dado un grafo no dirigido y dos nodos distinguidos, hallar un camino entre ambos nodos que tenga

longitud mınima (si no existe ningun camino, devolver NO).

I Problemas de decision.

? Dado un grafo no dirigido y un numero natural k, determinar si existe un subgrafo completo de

tamano k.

? Dado un grafo no dirigido y dos nodos distinguidos, determinar si existe un camino entre ambos

nodos.

9 / 54

Lenguajes formales

Primeros conceptos basicos:

? Alfabeto: conjunto no vacıo (sımbolos).

? Cadena o palabra sobre un alfabeto Γ: sucesion finita de sımbolos de Γ.

? Longitud de una cadena u: numero de sımbolos que contiene (|u|).

? Concatenacion de cadenas sobre un alfabeto Γ (composicion de cadenas).

? La cadena vacıa consta de 0 sımbolos y se suele notar por λ.

? Γ∗ : conjunto de todas las cadenas/palabras sobre Γ.

? Γ+ : Γ∗ − {λ}.

? Γn= conjunto de palabras sobre Γ de longitud n.

? Lenguaje formal sobre un alfabeto Γ: un subconjunto de Γ∗.

10 / 54

Problemas de busqueda

Un problema de busqueda, X , es un par ordenado (IX , sX ) donde:

I IX es un lenguaje sobre un alfabeto.

I sX es una funcion cuyo domino es IX y para cada a ∈ IX , sX (a) es unconjunto (elementos: soluciones del problema).

Elementos de IX : instancias del problema.

I Usando codificaciones binarias, un problema de busqueda es un par

(IX , sX ) donde:

? IX es un lenguaje sobre el alfabeto binario {0, 1}.

? sX es una funcion total de IX en P({0, 1}∗).

I Para cada instancia a ∈ IX de un problema de busqueda, pueden existirmuchas soluciones, solo una o ninguna.

11 / 54

Problemas de optimizacion

Un problema de optimizacion, X , es una tupla (IX , sX , fX ) donde:

I IX es un lenguaje sobre un alfabeto.

I sX es una funcion cuyo domino es IX y para cada a ∈ IX , sX (a) es unconjunto (elementos: soluciones candidatas del problema).

I fX es una funcion (objetivo) que asigna a cada a ∈ IX y cada ca ∈ sX (a),un numero racional positivo fX (a, ca).

Elementos de IX : instancias del problema.

fX proporciona el criterio para determinar una mejor solucion.

I Una solucion optima para a ∈ IX es un candidato c ∈ sX (a) tal que:

? O bien, ∀c ′ ∈ sX (a) se tiene fX (a, c) ≤ fX (a, c ′) (c es una solucion

minimal para a).

? O bien ∀c ′ ∈ sX (a) se tiene fX (a, c) ≥ fX (a, c ′) (c es una solucion

maximal para a).

12 / 54

Problemas de decision

Problemas que solo admiten como respuesta/salida Sı o No.

I Un problema de decision X , es un par (IX , θX ) tal que IX es un lenguajesobre un alfabeto ΣX y θX es un predicado sobre IX .

Un problema de decision X = (IX , θX ) es un problema de optimizacion(IX , sX , fX ) tal que ∀a ∈ IX : sX (a) = {θX (a)} y fX (a, θX (a)) = 1.

I Cada lenguaje, L, sobre un alfabeto Σ tiene asociado un problema de decision, XL:

• IXL= Σ∗.

• θXL= {(x, 1) : x ∈ L} ∪ {(x, 0) : x /∈ L}.

I Cada problema de decision X = (IX , θX ) tiene asociado un lenguaje, LX , sobre ΣX :

• LX = {a ∈ IX : θX (a) = 1}.

13 / 54

Problemas de decision versus problemas de optimizacion

Todo problema de optimizacion se puede transformar en un problema dedecision “equivalente”.

¿Que peaje se ha de pagar para transformar un problema de optimizacion en unproblema de decision “equivalente”?

Ejemplo:

I El problema Minimum Vertex Cover.

? Version de optimizacion: Dado un grafo no dirigido G , hallar el tamano

mınimo de un r.v. de G .

? Version de decision: Dado un grafo no dirigido G y un numero natural k,

determinar si G posee un r.v. de tamano menor o igual que k.

14 / 54

Computabilidad

Algoritmo (Procedimiento mecanico): metodo especial de resolucion deproblemas.

? Primer algoritmo no trivial: maximo comun divisor de dos numerosenteros (Euclides entre 400 y 300 a. C.).

Abu Jafar Mohammed ibn al–Khowarizmi: procedimientos mecanicos para elAlgebra (ano 825 d.C.).

Existencia de problemas resolubles mecanicamente.

15 / 54

ComputabilidadD. Hilbert (en 1928) formula tres cuestiones acerca de las Matematicas:

? ¿Son completas?

? ¿Son consistentes?

? ¿Son decidibles? (Entscheidungsproblem).

Respuestas a las dos primeras cuestiones: teoremas de incompletitud de K.Godel (1931).

• No es posible encontrar una axiomatizacion completa de las Matematicas.

K. Godel dejo sin responder la tercera cuestion.

Hacia finales del siglo XIX:

∗ Problemas interesantes de los que no se conocen soluciones mecanicas.

Cuestion 1: Dado un problema, determinar si existe un procedimientomecanico que lo resuelve.

? Respuestas positivas versus respuestas negativas.

16 / 54

Modelos de computacion

Formalizacion del concepto de procedimiento mecanico.

• Funciones recursivas (K. Godel, 1931–1933).

• λ–calculo (A. Church y S. Kleene, 1931).

• Maquinas de Turing (A. Turing, 1936).

Modelo de computacion: sintaxis y semantica.

? Procedimiento mecanico, funciones computables, maquinas.

Modelos de computacion:

• Orientados a programas (Modelo GOTO, modelo WHILE, etc.)

• Orientados a funciones (Funciones recursivas, λ-calculables, etc.)

• Orientados a maquinas (Maquinas de Turing, de Post, URM, etc.)

17 / 54

Limitaciones

Limitaciones de los modelos de computacion.

• Existencia de problemas indecidibles.

? Logica de primer orden (Church y Turing, 1936).

? Problema de la parada (Turing, 1936).

La tesis de Church–Turing.

Equivalencia modelos de computacion (Turing, 1936).

Modelos universales.

18 / 54

Diseno, analisis y verificacion formal de algoritmos

Teorıa de la Computabilidad: clasificar los problemas abstractos segun sean ono resolubles mecanicamente (problemas decidibles e indecidibles).

• Diseno de un algoritmo.

• Analisis de los recursos necesarios para obtener la solucion de unainstancia concreta (en funcion de su tamano).

• Verificacion formal: el algoritmo resuelve cada instancia del problema.

19 / 54

Necesidad de verificar programas

El apagon de New York (1965).

20 / 54

Verificacion formal de los algoritmos

Sea A un algoritmo disenado para resolver un problema determinado por unacierta funcion f : D → R.

Para verificar formalmente dicho algoritmo distinguiremos dos casos:

? D es un conjunto finito: basta comprobar si para cada x ∈ D el valorfA(x) coincide con f (x).

? D es un conjunto infinito: se realizan dos pasos.

- Correccion parcial: Si x ∈ D y el algoritmo A para sobre x , entonces fA(x) = f (x).

- Parada: El programa para sobre todo dato de entrada x ∈ D.

21 / 54

Multiplicacion magica

12 × 9

6 18

3 36

1 72

12 9

6 18

? 3 36 36

? 1 72 72

12× 9 = 108

22 / 54

Un esquema algorıtmico

Algoritmo A de la multiplicacion rusa

Funcion multrusa(x, y)Vector A, B

si x = 0 entonces devolver 0

si x = 1 entonces devolver y

si x < y entonces

x ←− y ; y ←− x

A[1]←− x ; B[1]←− y

i ←− 1

mientras A[i ] > 1 hacer

A[i + 1]←− A[i ] div 2

B[i + 1]←− B[i ] + B[i ]

i ←− i + 1

prod ←− 0

i ←− i − 1

mientras i > 0 hacer

si A[i ] 6= A[i ] div 2 + A[i ] div 2 entonces prod ←− prod + B[i ]

i ←− i − 1

devolver prod

23 / 54

Una traza del esquema algorıtmico de A

Una traza del algoritmo A para el dato de entrada x = 52 e y = 27.

La idea del algoritmo consiste en construir dos columnas (A y B) de la siguiente manera:

? En primer lugar se ponen x e y respectivamente, con x ≥ y ,

? Seguidamente se escriben la parte entera de la mitad del numero anterior en la primera columna y el dobledel anterior en la segunda

? A continuacion, se marcan en la primera columna los numeros impares, y se suman los correspondientes dela segunda.

? Esa suma es el valor que devuelve el algoritmo

52 2726 54

→ 13 108

6 216

→ 3 432

→ 1 864

52 · 27 = 108 + 432 + 864 = 1404

24 / 54

Verificacion formal del algoritmo ATeorema 1: (Correccion parcial). Si el algoritmo A para sobre (x, y) ∈ IN× IN, entonces devuelve x · y .Demostracion: Si x = 0, entonces el resultado es trivial. Supongamos que x > 0. Expresemos el numero x enpotencias de 2 (en base 2): existe unicos a0, a1, . . . , ak ∈ {0, 1} tales que ak 6= 0 y

x = ak 2k + ak−12k−1 + · · · + a222 + a12 + a0 ai ∈ {1, 0} ak = 1

Observese que 2k ≤ x < 2k+1. Por tanto k = blog2xc. Vamos a construir las columnas A y B.

A[1] = 2k + ak−12k−1 + · · · + a222 + a12 + a0 B[1] = y

A[2] = 2k−1 + ak−12k−2 + · · · + a22 + a1 B[2] = 2 · y

A[3] = 2k−2 + ak−12k−3 + · · · + a2 B[3] = 2 · B[2] = 22 · y. . . . . .

A[k] = 2 + ak−1 B[k] = 2k−1y

A[k + 1] = 1 B[k + 1] = 2k y

Para cada j = 1, . . . , k + 1 se verifica: A[j] es impar⇐⇒ aj−1 6= 0⇐⇒ aj−1 = 1. Por tanto,

fA(x, y) =∑

A[j] impar1 ≤ j ≤ k + 1

B[j] =∑

aj−1 = 11 ≤ j ≤ k + 1

2j−1 · y =

=∑

1 ≤ j ≤ k + 1

aj−1 · 2j−1y = y ·∑

1 ≤ j ≤ k + 1

aj−1 · 2j−1 = y · x

Teorema 2:(Prueba de parada). El algoritmo A para sobre todo dato de entrada (x, y) ∈ IN× IN.

Demostracion Basta tener presente que los bucles considerados constan, a lo sumo, de k + 1 = 1 + blog2xc pasos.

25 / 54

Maquinas de proposito general

El sueno de la maquina analıtica de Charles Babbage (1847-1849),

26 / 54

Complejidad Computacional

Aparicion de los primeros ordenadores de proposito general.

I Implementacion practica de la arquitectura de J. von Neumann (CharlesBabbage: maquina analıtica, 1847-1849).

? Maquina convencional: soporte electronico.

? Maquina no convencional: otro soporte distinto.

¿Que problemas resuelven las maquinas reales?

Resolubilidad mecanica practica de problemas.

I Cantidad de recursos computacionales necesarios (tiempo y espacio).

I Analisis comparativo de distintas soluciones.

27 / 54

Complejidad Computacional

Cuestion 2: Dado un problema hallar el mejor algoritmo que lo resuelva.

Busqueda de algoritmos optimos.

• Hallar una cota inferior de los recursos necesarios para ejecutar cualquier

algoritmo que resuelva el problema.

• Hallar un algoritmo que resuelva el problema y que use una cantidad de

recursos del orden de la cota.

Complejidad computacional inherente a un problema.

• A veces, es imposible encontrar algoritmos optimos (teorema deaceleracion de Blum).

28 / 54

Tratabilidad de problemas abstractos

Resolubilidad a traves de ordenadores reales.

I Tratabilidad e intratabilidad de problemas.

Algoritmo eficiente: la cantidad de recursos necesarios para su ejecucion estaacotada por un polinomio.

I ¿Por que los polinomios para establecer la frontera?

? Es una clase de funciones estables por suma y producto.

? Tienen un crecimiento moderado.

La clase P de los problemas tratables.

Teorıa de la Complejidad Computacional: clasificar los problemas abstractossegun sean o no resolubles eficientemente (problemas tratables e intratables).

29 / 54

Problemas ...

I Problema tratable

? Existe UN programa que resuelve el problema y proporciona (entiempo razonable) soluciones para entradas de tamano grande.

I Problemas intratables

? NINGUN programa que resuelve el problema proporciona (entiempo razonable) soluciones para entradas de tamano grande.

I Problema presuntamente intratable

? NINGUN programa CONOCIDO que resuelve el problemaproporciona (en tiempo razonable) soluciones para entradas detamano grande.

30 / 54

Problemas tratables

Son los mas simples, desde el punto de vista de la complejidad computacional.

I Resolubilidad algorıtmica en terminos practicos: tratabilidad.

Polinomial = Razonable Exponencial = No razonable10 50 100 300 1000

5n 50 250 500 1.500 5.000

n2 100 2.500 10.000 90.000 106

n3 1.000 125.000 106 27 · 106 109

2n 1.024 16 dıgitos 31 dıgitos 91 dıgitos 302 dıgitos

n! 7 dıgitos 65 dıgitos 161 dıgitos 623 dıgitos inimaginable

nn 10 dıgitos 85 dıgitos 201 dıgitos 744 dıgitos inimaginable

Nota 1: El numero de microsegundos desde el BIG BANG tiene 24 dıgitos.

Nota 2: El numero de protones en el universo consta de 71 dıgitos.

31 / 54

Un problema tratable: el de la moneda falsa

Se tienen n monedas y se sabe que exactamente una de ellas tiene unpeso distinto de las otras. Si se dispone de una balanza tradicional¿cuantas pesadas habrıa que realizar para detectar la moneda distinta?

I Bastarıa realizar, a lo sumo, 1 + log2(n) pesadas.

I ¿Se podrıa resolver el problema con menos pesadas?

I Como log2(n) ≤ n, la solucion dada es de tipo polinomial.

? Probar que log2(n) ≤ n.

I El problema de la moneda falsa es tratable.

32 / 54

Un problema intratable: las Torres de Hanoi

La leyenda ... (Edouard Lucas d’Amiens, 1883)

Un movimiento: trasladar un disco de una varilla a otra.

Movimiento valido: un disco no puede situarse encima de otro de menor radio.

I Problema concreto: 64 discos.

I Problema abstracto: n discos.

33 / 54

El problema de las Torres de Hanoi: 2 discos

1

2

A B C

34 / 54

El problema de las Torres de Hanoi: 2 discos

1

A B C

2

35 / 54

El problema de las Torres de Hanoi: 2 discos

A B C

2 1

36 / 54

El problema de las Torres de Hanoi: 2 discos

A B C

1

2

37 / 54

El problema de las Torres de Hanoi: 3 discos

1

2

3

A B C

38 / 54

El problema de las Torres de Hanoi: 3 discos

1

A B C

2

3

39 / 54

El problema de las Torres de Hanoi: 3 discos

A B C

2

3

1

40 / 54

El problema de las Torres de Hanoi: 3 discos

A B C

1

2

3

41 / 54

El problema de las Torres de Hanoi: 4 discos

1

2

3

4

A B C

42 / 54

El problema de las Torres de Hanoi: 4 discos

1

A B C

2

4

3

43 / 54

El problema de las Torres de Hanoi: 4 discos

A B C

2

4

3

1

44 / 54

El problema de las Torres de Hanoi: 4 discos

A B C

1

2

3

4

45 / 54

El problema de las Torres de Hanoi: 5 discos

1

2

3

4

5

A B C

46 / 54

El problema de las Torres de Hanoi: 5 discos

1

A B C

2

4

5

3

47 / 54

El problema de las Torres de Hanoi: 5 discos

A B C

2

4

5

3

1

48 / 54

El problema de las Torres de Hanoi: 5 discos

A B C

1

2

3

4

5

49 / 54

El problema de las Torres de Hanoi

• Diseno (recursivo)

procedimiento Hanoi (n,1,3) , con n > 0

si n > 0 entonces

Hanoi (n-1, 1, 2)

mover disco de 1 a 3

Hanoi (n-1, 2 , 3)

I Verificacion (induccion).

I Analisis (induccion):

f (n) = numero de movimientos para resolver el problema de Hanoi correspondiente a n discos.{f (0) = 0f (n + 1) = 2 · f (n) + 1

Se prueba que f (n) = 2n − 1.

50 / 54

El problema de las Torres de Hanoi

Para resolver el problema con n discos

I Numero de movimientos a realizar : 2n − 1.

Supongamos que tenemos 64 discos.

Supongamos que se tarda un segundo en mover un disco.

Supongamos que los monjes trabajan las 24 horas del dıa.

¿Cuanto tiempo se necesitara para resolver el problema divino?

I Aproximadamente ... ¡500 millones de anos!

51 / 54

Un problema presuntamente intratable

52 / 54

El problema del campeonato de liga de futbol

Tras la jornada 25 del campeonato de liga de futbol deprimera division, un aficionado desea saber si su equipo tieneposibilidades matematicas de quedar campeon de liga

I Sistema antiguo de puntuacion (2, 1, 0): tratable

I Sistema nuevo de puntuacion (3, 1, 0): presuntamente intratable

53 / 54

Necesidad de mejorar cuantitativamente la resolucion mecanica de problemaspresuntamente intratables.

El problema SAT (S.A. Cook, 1971).

¿Como enfrentarnos a un problema que presuntamente es computacionalmentedifıcil/duro?

I Preguntarnos en que aspecto del problema radica la razon de la dificultad.

I Intentar buscar una solucion aproximada mas simple.

I Tener presente que algunos problemas solo son difıciles en el caso peor.

I Considerar otros modelos alternativos, no convencionales.

54 / 54

top related