Algoritmos y Complejidad .pdf

25
Introducción Clases de Complejidad Clases P y NP Problema P vs. NP Otras clases de complejidad Algoritmos de aproximación Algoritmos y Complejidad Complejidad Computacional Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2010 Pablo R. Fillottrani  Algoritmos y Complejidad Introducción Clases de Complejidad Clases P y NP Problema P vs. NP Otras clases de complejidad Algoritmos de aproximación Complejidad Computacional 1  Introducción 2  Clases de Complejidad 3  Clases P y  NP 4  Problema P vs.  NP 5  Otras clases de complejidad 6  Algoritmos de apro ximación Pablo R. Fillottrani  Algoritmos y Complejidad Introducción Clases de Complejidad Clases P y NP Problema P vs. NP Otras clases de complejidad Algoritmos de aproximación Objetivos Clasicació n de problemas Conceptos básicos Objetivos el concepto de correctitud de un algoritmo debe no sólo incluir el hecho de que el algor itmo realice lo especicado, sino también que lo realice con los recursos disponibles los recursos más limitados en la producción de software son: el tiempo de ejecución (medido en cantidad instrucciones elementales) la memoria para el almacenamiento de los datos (medida en general en cantidad de variables elementales). se denomina a estas funciones medidas de complejidad Pablo R. Fillottrani  Algoritmos y Complejidad Introducción Clases de Complejidad Clases P y NP Problema P vs. NP Otras clases de complejidad Algoritmos de aproximación Objetivos Clasicació n de problemas Conceptos básicos las medidas de complejidad interesantes no pueden ser estáticas (constantes para todas las instancias), sino dinámicas (dependen de la instancia a la cual se aplica el algoritmo) pero entonces no será factible estudiarlas para cada instancia en particular; se denen para todas las instancias de un determinado tamaño, en el peor caso el estudio de la eciencia de los algoritmos no puede ser atacado por el argumento “las computadoras del futuro serán increíblemente rápidas y por lo tanto no interesará que el algoritmo sea eciente” el ejemplo de los números de Fibonacci; o el hecho de que sin una mejora algorítmica resolver el problema del viajante para cien ciudades toma cien millones de años; o la factorización de un número de 300 dígitos que tarda un millón de años, refutan esta hipótesis Pablo R. Fillottrani  Algoritmos y Complejidad

Transcript of Algoritmos y Complejidad .pdf

Page 1: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 1/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Algoritmos y ComplejidadComplejidad Computacional

Pablo R. Fillottrani

Depto. Ciencias e Ingeniería de la ComputaciónUniversidad Nacional del Sur

Primer Cuatrimestre 2010

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Complejidad Computacional

1 Introducción

2 Clases de Complejidad

3 Clases P y NP

4 Problema P vs. NP

5 Otras clases de complejidad

6 Algoritmos de aproximación

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

Objetivos

el concepto de correctitud de un algoritmo debe no sólo incluir elhecho de que el algoritmo realice lo especificado, sino también

que lo realice con los recursos disponibleslos recursos más limitados en la producción de software son:

el tiempo de ejecución (medido en cantidad instruccioneselementales)la memoria para el almacenamiento de los datos (medida engeneral en cantidad de variables elementales).

se denomina a estas funciones medidas de complejidad

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

las medidas de complejidad interesantes no pueden ser estáticas(constantes para todas las instancias), sino dinámicas (dependende la instancia a la cual se aplica el algoritmo)pero entonces no será factible estudiarlas para cada instancia enparticular; se definen para todas las instancias de undeterminado tamaño, en el peor casoel estudio de la eficiencia de los algoritmos no puede ser atacadopor el argumento “las computadoras del futuro seránincreíblemente rápidas y por lo tanto no interesará que elalgoritmo sea eficiente”el ejemplo de los números de Fibonacci; o el hecho de que sinuna mejora algorítmica resolver el problema del viajante paracien ciudades toma cien millones de años; o la factorización deun número de 300 dígitos que tarda un millón de años, refutanesta hipótesis

Pablo R. Fillottrani Algoritmos y Complejidad

Page 2: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 2/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

para resolver estos problemas se necesita una mejora en losalgoritmos; pero no una pequeña mejora sino una mejora enórdenes de magnitud

por ejemplo, una búsqueda secuencial en un arreglo ordenadoes de Θ(n ) en el peor caso; una búsqueda binaria es de

Θ(log n ). Para instancias pequeñas la diferencia puede no sernotable, pero para n = 109 la diferencia está entre esperar unaño o un minuto por el resultado

dado un algoritmo que resuelve un problema, es razonable (yaconsejable) preguntarse si no existirá un algoritmo más eficientepara el mismo problema

el objetivo fundamental de la Complejidad Computacional esclasificar los problemas de acuerdo a su tratabilidad, tomando elo los algoritmos más eficientes para resolverlos

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

esto es, poder determinar las respestuas a las siguientespreguntas:

¿Cuán tratable es el problema?

Si el problema es tratable, ¿es el algoritmo suficientementeeficiente?

si se demuestra que el problema no admite soluciones mejores,entonces se puede afirmar que el algoritmo es eficiente (salvoconstantes ocultas!!)

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

Clasificación de problemas

de acuerdo al estado de conocimiento de sus algoritmos

cerradoabierto

de acuerdo a los recursos indispensables para su solucióntratablesintratables

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

un problema se dice cerrado si se han encontrado algoritmos quelo resuelven y se ha demostrado que esos algoritmos sonóptimos en cuanto al Θ() del tiempo de ejecución

BÚSQUEDA en un arreglo ordenado y ORDENAMIENTO de unarreglo son problemas cerrados

ÁRBOL DE CUBRIMIENTO MINIMAL para un grafo es unproblema abierto, dado que su cota inferior demostrada es deΘ(a ), mientras que el mejor algoritmo conocido no es lineal(pero mejor que Θ(a log n ))

Pablo R. Fillottrani Algoritmos y Complejidad

Page 3: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 3/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

para cerrar un problema se puede hacer:

encontrar un algoritmo asintóticamente mejor que los que seconocen.demostar una cota asintóticamente superior de las que seconocen.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

en general, los distintos grados de tratabilidad son muy subjetivos(varían mucho de acuerdo al modelo computacional, los recursosdisponibles, las variantes de las estructuras de datos, etc.)por lo tanto un objetivo primario del estudio de la complejidad esdefinir cuáles problemas son tratables, y cuáles no. Recióndespués de esto se pueden considerar distintos grados detratabilidad o intratabilidadpor ejemplo, se puede afirmar que la mayoría de los problemasvistos en la materia son tratables: o sea tienen solución parainstancias grandes, y una mejora algorítmica o una mejora en elHW produce una gran ampliación en el conjunto de instanciasque se pueden resolveren cambio, hay problemas que no son tratables: el problema delas torres de Hanoi, o el problema del viajante, en la práctica sólose resuelven para instancias pequeñas.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

no solo problemas con respuestas difíciles son intratables. Otroproblema intratable es el denominado MONKEY PUZZLE, unaespecie particular de rompecabezas

si se tiene un tablero de n × n , no se conoce algoritmo mejor queprobar todas las permutaciones posibles para resolverlo, esto esΩ(n !)

para n = 5, generando un millón de configuraciones porsegundo, se tardaría 490.000 millones de años en resolverlo

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

esta evidencia empírica ha permitido acordar (una especie detesis de Turing-Church para la complejidad) que si un problemaadmite una solución polinomial entonces se trata de un problematratable; en caso contrario se lo considera intratable

el límite de tratabilidad entre algoritmos polinomiales y

super-polinomiales es arbitrario, pero mayoritariamenteaceptado. Por ejemplo, 1,00001n o n log2 n serían intratables,mientras que n 10000 o 100000000000n sería tratables

el punto es que estas funciones extremas raramente aparecenen casos reales como tiempo de ejecución de algoritmos

además, problemas como PROGRAMACIÓN LINEAL, consoluciones eficientes en general pero no polinomiales en el peorcaso (Algoritmo Simplex), se demostraron tener soluciónpolinomial.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 4: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 4/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

los algoritmos de O (n k ) son considerados de tiempo razonable apesar del k y de las posibles constantes ocultas

para el espacio de memoria se tiene que tener más cuidado,porque ya un espacio polinomial muchas veces es intratable

las funciones exponenciales y factoriales siempre son intratables

además, dentro de esta tratabilidad y de esta intratabilidad esposible distinguir varios grados

otro tema de investigación actual es la extensión del concepto detratabilidad a algoritmos probabilísticos y paralelos. En estoscasos se han propuesto otras formalizaciones

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

para tener una mejor idea de la diferencia entre tratable eintratable:

n

funcion 10 50 100 300 1000

5n 50 250 500 1500 5000n log2 n 33 282 665 2469 9966

n 2

100 2500 10000 90000

un millón

(7 díg.)n 3 1000 125000

un millón(7 díg.)

27 millones(8 díg.)

mil millones(10 díg.)

2n 1024 16 díg. 31 díg. 91 díg. 302 díg.

n !3600000(7 díg.) 65 díg. 161 díg. 623 díg. inimaginable

n n 11 díg. 85 díg. 201 díg. 744 díg. inimaginable

para comparación: el número de protones en el universo es de79 dígitos, y el número de microsegundos transcurridos desde elBig Bang es de 24 dígitos

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

esto significa que si suponemos que se ejecutan k instruccionespor microsegundo, los algoritmos tardan

n

funcion 10 20 50 100 300

n 2 1/10000

segundo1/2500

segundo1/400

segundo1/100

segundo9/100

segundon 5 0,1 seg. 3,2 seg. 5,2 min. 2,8 hs. 28,1 días

2n 1/1000

segundo 1 seg. 35,7 años 400 billones

de siglos − − −

n n 2,8 hs.3,3 billones

años − − − − − − − − −

para comparación: se considera que el Big Bang ocurrió haceaproximadamente 15.000 millones de años

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

supongamos que tenemos en la actualidad una computadora enla que ejecutamos distintos algoritmos, analizaremos cuál es laventaja de adquirir una computadora más poderosa

instancia máxima posible de resolver

con distintas computadorastiempo algoritmo actual 100× 1000×

Θ(n ) A 100 × A 1000 × A

Θ(n 2) B 10 × B 31,6 × B

Θ(2n ) C C + 6,64 C + 9,97

esto demuestra que los problemas intratables no se resuelvencomprando hardware; es una característica intrínsica delproblema el hecho de que solo se resuelvan instancias pequeñas

Pablo R. Fillottrani Algoritmos y Complejidad

Page 5: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 5/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

Conceptos básicos

con el objetivo de simplificar la clasificación, sólo se consideraránproblemas de decisión, ie aquellos que tienen como respuesta sí o no

los problemas que no son de decisión se analizan en formaseparada, pero la mayoría se puede reducir a algún problema dedecisión.

a pesar de esta clasificación el espectro de problemas siguesiendo muy amplio. Se establecerá una asociación entreproblemas de decisión y lenguajes formales, de forma deestudiar éstos últimos que son objetos más fáciles de tratarmatemáticamente.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

sea Σ el alfabeto en el que estan codificadas las instancias a undeterminado problema de decisión Π

el conjunto Σ∗ está particionado en tres clases: el conjunto Y Πde las cadenas que codifican instancias cuya respuesta es sí ; elconjunto N Π de las cadenas que codifican instancias cuya

respuesta es no; y R Π el conjunto de cadenas que no codificanninguna instacia

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

se nota Y Π como el lenguaje asociado a Π

ejemplo: sea Π el problema de decidir si un número es primo,con las entradas dadas en binario; el lenguaje asociado esY Π = 1,10,11,101, . . .

queda establecida la correspondencia

Problemas de Decisión ⇐⇒ Lenguajes Formales

por lo tanto se clasificarán lenguajes formales, en lugar deproblemas de decisión

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

el alfabeto Σ de estos lenguajes no es importante para laclasificación, siempre y cuando contenga más de dos caracteres

Teorema

Sean Σ y Γ dos alfabetos tales que Γ ≥ 2. Entonces existe una

función f : Σ ∗ −→ Γ∗ biyectiva computable en tiempo lineal tal que

|f (x )| = log|Γ| |Σ||x |.

Demostración.

Se hace una codificación de todos los caracteres de Σ en secuenciasde caracteres de Γ.

esto permite fijar como alfabeto estándar a Σ = 1,0,,cualquier lenguaje en otro alfabeto puede ser traducido a este enforma inmediata

Pablo R. Fillottrani Algoritmos y Complejidad

Page 6: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 6/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

se usará como modelo de computación a las máquinas de Turing,con alfabeto Σ que siempre contiene el caracter en blanco

una máquina de Turing determinística de una cinta (MTD) es unatupla

Q ,Σ,δ ,q 0,q 1

donde q 0,q 1 ∈ Q y δ : Q × Σ −→ Q × Σ × −1,0,1

una máquina de Turing no determinística de una cinta (MTND) esuna tupla

Q ,Σ,∆,q 0,q 1

donde q 0,q 1 ∈ Q y ∆ es un conjunto finito de tuplas deQ × Σ × Q × Σ × −1,0,1.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

sea T una MTD, y NT una MTND. La computación T (x ) se diceque acepta a x si T (x ) es finita y termina en el estado aceptadorq 1. La computación NT (x ) se dice que acepta a x si existe en elárbol T (x ) un camino finito cuya hoja está en el estadoaceptador q 1.

el conjunto de entradas que T (o NT ) acepta se denomina ellenguaje aceptado por T (o NT ), y se nota L(T ) (o L(NT ))

las propiedades siguientes ha sido vistas en materias previas

Teorema

Sea NT una MTND. Siempre existe una MTD T tal que L (NT ) = L(T )y si x es aceptada por NT en t pasos, entonces x es aceptada por T

en c t pasos, para alguna constante positiva c.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

un lenguaje L ⊆ Σ∗ es aceptable si existe una MTD T tal queL = L(T )

un lenguaje L ⊆ Σ∗ es decidible si existe una MTD T tal queL = L(T ) y además, para todo x ∈ Σ∗ T (x ) es finita

Lema

Si un lenguaje L es decidible entonces L es aceptable.

Lema

Si un lenguaje L es decidible entonces L C también es decidible.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

Lema

Un lenguaje L es decidible si y solo si L y L

C

son aceptables.

también se demuestra que existen problemas decidibles,aceptables pero no decidibles y ni aceptables ni decidibles

Pablo R. Fillottrani Algoritmos y Complejidad

Page 7: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 7/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

para comparar lenguajes, se usarán funciones de reducibilidad:dados dos lenguajes A,B ⊆ Σ∗, una función computablef : A −→ B es una función de reducibilidad si para todo x ∈ Σ∗

vale x ∈ A ↔ f (x ) ∈ B

visto desde el punto de vista de los problemas de decisión, la

función de reducibilidad es una transformación de instancias deun problema en instancias de otro problema tal que la solución alsegundo es la solución al primero (una reducción entreproblemas)

las funciones de reducibilidad permiten definir una comparaciónentre lenguajes: se dice que A ≤m B si existe una función dereducibilidad de A hacia B

la relación ≤m es una relación de pre-orden.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

Lema

Si L1 ≤m L2 y L1 no es decidible, entonces L2 no es decidible.

Lema

Sea / 0 ⊂ L1 ⊂ Σ∗. Entonces para todo lenguaje decidible L2 vale que

L2 ≤m L1.

las funciones de reducibilidad arbitrarias, junto con lacomparación ≤m , no son muy útiles porque pueden involucrarcantidades arbitrarias de recursos para ser computadas.

en la práctica se definirán distintas restricciones (que la funciónsea computable en tiempo polinomial, o espacio logarítmico, etc.)para definir reducibilidades y comparaciones útiles entreproblemas

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ObjetivosClasificación de problemasConceptos básicos

el estudio de la complejidad clasificará los lenguajes decidiblesde acuerdo a la cantidad de recursos necesarios para sucomputación.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clases de Complejidad

si se quiere clasificar problemas, y se identifica a cada problemacon un lenguaje formal, entonces es necesario estudiar clases delenguajes

una clase de lenguaje es un conjunto de lenguajes que cumplecon alguna propiedad, es decir C = L : L ⊆ Σ∗ y π (L)

dadas dos clases de lenguajes C 1 y C 2, si se quiere mostrar queC 1 ⊆ C 2 entonces es suficiente con probar que para todo L ⊆ Σ∗

si vale π 1(L) entonces también vale π 2(L)

si además de C 1 ⊆ C 2 se quiere mostrar que la inclusión esestricta (C 1 ⊂ C 2), entonces se recurre a buscar un lenguajeseparador que pertenezca a C 2 pero no a C 1.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 8: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 8/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

en complejidad, es un problema muy difícil encontrar lenguajesseparadores

muchas veces es útil la siguiente propiedad

Lema

Sean C 1 ⊂ C 2 dos clases de complejidad tal que C 1 es cerrada c.r. a

≤r . Entonces cualquier L ∈ C 2 que sea C 2-completo c.r. a ≤r es tal

que L ∈ C 1.

Demostración.

Se supone por el absurdo que L ∈ C 1, y se contradice el hecho de queC 1 ⊂ C 2.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

una clase C es cerrada c.r. a ≤r si para todo L1 ∈ C vale queL2 ≤r L1 implica L2 ∈ C . Un lenguaje L1 ∈ C es completo c.r. a

≤r si para todo L2 ∈ C vale que L2 ≤r L1

entonces, si se dan las condiciones del lema pero no se sabe siC 1 ⊆ C 2 o C 1 ⊂ C 2, los lenguajes C 2-completos son candidatosa lenguajes separadores

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

las clases de lenguajes son conjuntos arbitrarios de lenguajesque no necesariamente comparten propiedades computacionales

para que las clases de lenguajes sean clases de complejidad sedeben definir los predicados π (·) en base a medidas decomplejidad dinámicas

sea P i un conjunto de algoritmos. Una medida de complejidaddinámica Φ es un conjunto de funciones Φi definidas sobre losnaturales, que además cumplen con:

el dominio de P i coincide con el de Φi .para todo i ,x ,m ∈ N es computable si Φi (x ) = m .

la primer condición impide mezclar lenguajes decidibles y nodecidibles. La segunda condición es pide que sea computable lacomparación del valor de la medida en cada instancia (y no quela función sea computable para todas las instancias)

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Ejemplos

sean T i el conjunto de todas las máquinas de Turingdeterminísticas

se define TIME la medida Φ = TIME i , la cantidad de pasos dela MTD T i en cada entrada x ; entonces Φ es una medida de

complejidad dinámicasea k la medida Φ = k donde k es una función constante, k nocumple con la primer condición

sea VALOR la medida Φ = VALOR i , el resultado que deja laMT T i en la cinta al finalizar cada computación; VALOR nosatisface la segunda restricción

sea SPACE 1 la medida Φ = SPACE 1i , la cantidad de celdasque la MTD T i usa en cada cada computación; SPACE 1 nosatisface la primer restricción.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 9: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 9/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

sea SPACE 2 la medida Φ = SPACE 2i , la cantidad de celdasque la MTD T i usa en cada computación que termina, oindefinido si no termina; SPACE 2 cumple la primer condición

para la segunda se muestra

Lema

Sea T una MTD y x una entrada tal que T (x ) usa a lo sumo h (x )celdas. Entonces o T (x ) para antes de |Σ|h (x )|Q |h (x ) pasos, o T (x )nunca para.

Demostración.

Basta con considerar el conjunto de configuraciones globales posiblesde la MTD T . Si pasan más de |Σ|h (x )|Q |h (x ) configuraciones,entonces necesariamente alguna se repite y por lo tanto la máquinacicla indefinidamente.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

sean T i el conjunto de todas las máquinas de Turing nodeterminísticas

sea NTIME la medida Φ = NTIME i , donde NTIME i es paracada T i (x )

1 el número de pasos del camino más corto que acepta T i (x ) si

existe al menos uno aceptador2 el número de pasos del camino más corto que rechaza T i (x ) si

todos los caminos terminan y son rechazadores3 indefinido en otro caso

la medida NTIME así definida cumple con las condiciones demedida de complejidad dinámica

la medida NSPACE se define en forma análoga, y tambiéncumple con las condiciones.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

ahora sí se está en condiciones de definir clases de complejidad,para toda función t : N −→ N:

DTIME [t (n )] = L : L ⊆ Σ∗ y

∃T

i : L

= L

(T

i ) ∧TIME

i (x

) ∈O

(t (|

x |))

DSPACE [t (n )] = L : L ⊆ Σ∗ y

∃T i : L = L(T i ) ∧ SPACE i (x ) ∈ O (t (|x |))

NTIME [t (n )] = L : L ⊆ Σ∗ y

∃NT i : L = L(NT i ) ∧ NTIME i (x ) ∈ O (t (|x |))

NSPACE [t (n )] = L : L ⊆ Σ∗ y

∃NT i : L = L(NT i ) ∧ NSPACE i (x ) ∈ O (t (|x |))

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

para que estas clases de complejidad tengan sentido (es decir,agrupen problemas con características computacionales

parecidas) se restringen a funciones t (x ) denominadastiempo-construíbles

las funciones logarítmicas, polinomiales, exponenciales,factoriales son tiempo construíbles

Pablo R. Fillottrani Algoritmos y Complejidad

Page 10: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 10/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

las clases de complejidad determinísticas satisfacen lassiguientes propiedades

Lema

Para toda función tiempo-construíble t, siempre vale que

DTIME [t (n )] = coDTIME [t (n )].

Lema

Sea t una función tiempo-construíble tal que t (n ) ≥ n, y L1,L2 ⊂ Σ∗

tal que |L1 L2| <ℵ0 (su diferencia es finita). Entonces

L1 ∈ DTIME [t (n )] si y solo si L2 ∈ DTIME [t (n )].

las clases de complejidad no determinísticas satisfacen lasegunda propiedad, pero es un problema abierto determinar sisatisfacen la primera

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Clase P

como nuestro objetivo es formalizar el concepto tratabilidad, yhabíamos establecido que los algoritmos polinomialesconstituyen un buena base para esto, entonces tiene sentido

considerar a la siguiente clase:

P = ∪k ∈NDTIME [n k ]

la mayoría de los problemas computacionales que se presentanen la práctica pertenecen a esta clase, como GCD,MULTIPLICACIÓN DE MATRICES, RECORRIDO DE UNGRAFO, CAMINO DE EULER, etc.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

en general se está de acuerdo que la clase P representa a losproblemas tratables

la mayoría de los problemas de esta clase tienen algoritmos conimplementación razonable, a pesar de que el algoritmopolinomial para ese problema no sea el más conveniente de usar

en la práctica (caso PROGRAMACIÓN LINEAL)sin embargo existen ciertos problemas en P que no sonrealmente tratables, debido a que:

el grado k del polinomio es un número grandelas constantes ocultas en la notación O (·) son altasla demostración de pertenencia a P no es constructiva (es decir,no presenta un algoritmo).

pero éstos son casos extremos, y se considera a P unarazonable aproximación al concepto de tratabilidad

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

otra característica interesante de la clase P es el hecho de quees robusta con respecto al modelo de computación

esto significa que que la mayoría de los cambios de modelos ycambios de lenguajes conservan inalterable la clase

por ejemplo, si se define la clase P en base a MTD de variascintas, o en máquinas RAM, o en MTD con cintas infinitas en losdos extremos, etc, ya que existe una traducción polinomial entrecualquiera de estos modelos

ejercicio: ¿qué implicaría tener definida una clase de problemas“tratables” que varíe con respecto al modelo de computación?)

Pablo R. Fillottrani Algoritmos y Complejidad

Page 11: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 11/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

es posible demostrar que un problema pertenece a P mediantedos formas: mostrando un algoritmo polinomial, o usando unareducción a otro problema que ya se sabe que está en P

el primer método es el que hemos usado para los ejemplos yadados; para el segundo debemos definir reducibilidad polinomial:

dados dos lenguajes L1,L2, L1 se dice polinomialmente reduciblea L2 si existe un función f computable en tiempo polinomial talque x ∈ L1 ↔ f (x ) ∈ L2. Se nota L1 ≤p L2.

la reducción polinomial transforma en tiempo polinomial unainstancia del problema L1 en una instancia del problema L2, deforma que sus respuestas sean las mismas

la reducibilidad polinomial cumple con todas las propiedadesgenerales de las funciones de reducibilidad vistas anteriormente

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

además, permite afirmar que P es cerrada c.r. a ≤p :

Teorema

Sean L1,L2 dos lenguajes tales que L1 ≤p L2. Luego si L2 ∈P

entonces L1 ∈ P.

Demostración.

Componiendo las MTD polinomiales que resuelven L2 y que calculanla reducción, considerando que la composición de polinomios es unpolinomio.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Teorema

Sea L1 un lenguaje tal que / 0 ⊂ L1 ⊂ Σ∗. Entonces para cualquier

L2 ∈ P vale que L2 ≤p L1.

Demostración.

Si / 0 ⊂ L1 ⊂ Σ∗ entonces existe z ∈ L1 y un y ∈ Σ∗ − L1. La reducciónconsiste para cada x resolver L2 de acuerdo a su MTD polinomial, yasignarle z o y de acuerdo a si su respuesta es sí o no.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

por ejemplo, sea 2-SAT el problema de decidir si una fórmula delcálculo proposicional con a lo sumo dos literales por clausula essatisfacible

se mostrará que 2-SAT≤p CFC

sea F una fbf de L con a los sumo dos literales por clausula. Secrea G (F ) con un nodo por cada posible literal, y un arco (L1,L2)

si existe en F una clausula L1 ∨ L2 o L2 ∨ L1 (o sea si L1 → L2 oL2 → L1)

Pablo R. Fillottrani Algoritmos y Complejidad

Page 12: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 12/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

por ejemplo, paraF = (x 1 ∨ x 2) ∧ (x 1 ∨ ¬x 3) ∧ (¬x 1 ∨ x 2) ∧ (x 2 ∨ x 3), G (F ) es:

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Teorema

Una fbf F es satisfacible si y solo si no existe una proposición p tal

que p y ¬p pertenecen al mismo CFC del grafo G(F).

Demostración.

Sea F satisfacible. Si existen simultaneamente caminos de p a ¬p yde ¬p a p entonces p ≡ ¬p es consecuencia de la formula, con lo quela formula es insatisfacible.Sea G (F ) tal que ningún CFC contiene literales complementarios. Seconstruye una asignación de valores de verdad que hace a F

satisfacible, asignando a todos los literales de un mismo CFC losmismos valores de verdad. Si existe camino de p a ¬p entonces p esfalso, los restante predicados se asignan arbitrariamente.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

el teorema anterior, junto con el hecho de que G (F ) se puedecalcular en tiempo polinomial permiten afirmar que 2-SAT≤p CFC

además, como CFC∈ P entonces sabemos que 2-SAT∈ P ya queuna combinación de algoritmos polinomiales resulta en unalgoritmo polinomial (teorema 12)

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

otro ejemplo de reducción es 2-COLOR≤p 2-SAT

2-COLOR es el problema de, dado un grafo no dirigido G ,encontrar una asignación de dos colores a todos los nodos de G

(coloración) tal que ningún par de nodos adyacentes tengan el

mismo colorla reducción consiste en crear una proposición p i por cada nodon i del grafo, que significará que el nodo i tiene asociado el primercolor, mientras que su negación significa que tiene asociado elsegundo color

se crea entonces una fbf F (G ) con las clausulas p i ∨ p j y¬p i ∨ ¬p j por cada arco (n i ,n j ) del grafo

Pablo R. Fillottrani Algoritmos y Complejidad

Page 13: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 13/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Teorema

Un grafo no dirigido G tiene una 2-coloración si y solo si F (G ) es

satisfacible.

Demostración.

⇐) Si G tiene una 2-coloración, entonces se crea una asignación devalores de verdad para cada p i , arbitrariamente tomando un colorcomo verdadero y otro como falso. Esta asignación satisface F (G ).⇒) Si F (G ) es satisfacible, a partir de la asignación de valores deverdad se asigna un color a cada n i tal que p i es verdadero, y el otrocolor al resto. Esto forma una 2-coloración válida.

luego como la reducción es en tiempo polinomial, 2-SAT∈ P y Pes cerrado c.r. a ≤p entonces 2-COLOR∈ P

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

identificando la clase P con el concepto de tratabilidad, se estaríaen las siguientes condiciones, con algunos problemasprobadamente tratables y otros probadamente intratables:

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Clase NP

en forma análoga a P, se puede definir su contraparte nodeterminística NP:

NP = ∪k ∈NNTIME [n k ]

por definición (toda computación determinística es trivialmenteno determinística), sabemos que P ⊆ NP

pero el problema de definir la “tratabilidad” no es tan sencillo: nose sabe si P = NP o P ⊂ NP

esto es, puede ser que todos los problemas en NP tengansolución determinística polinomial, o puede ser que no seaequivalente el tiempo determinístico con el no determinístico

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

el teorema 2 solo establece la equivalencia en cuanto al podercomputacional; pero el tiempo que usa es exponencial

como consecuencia se tiene un conjunto de problemas cuyatratabilidad o no se desconoce:

Pablo R. Fillottrani Algoritmos y Complejidad

Page 14: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 14/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

esta brecha es inaceptablemente muy grande, e impide declasificar a importantes problemas como tratable o intratable

desafortunadamente existe muchos problemas prácticos conestas características: tienen soluciones polinomiales nodeterminísticas, pero su máxima cota inferior es lineal

por ejemplo:EMPAQUETAMIENTO BIDIMENSIONALVIAJANTECIRCUITO HAMILTONIANOMOCHILA con coeficientes enterosSATISFACILIDAD en el cálculo de predicados3-COLOR de un grafo no dirigido

para ninguno de ellos se ha encontado una solución tratable,pero tampoco se ha demostrado que esta solución no existe

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

es importante conocer las propiedades de la clase NP para tratarde entender mejor el problema de su tratabilidad

una característica interesante es que todos estos problemasparecen requerir, como parte de su naturaleza, construirsoluciones parciales: empaquetamientos parciales, recorridos

parciales, asignaciones de valores de verdad parciales, etc.Cuando una de estas soluciones parciales se detecta incorrecta,se debe realizar backtracking en busca de otra alternativa

por lo tanto es difícil decidir si existe o no una solución; es decirdar la respuesta sí o no

en cambio es interesente notar que en el caso que la respuestasea sí es fácil convencer a alguien de ello. Esto es lo que sedenomina certificado, cuyo tamaño siempre puede ser acotadopor Θ(n )

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

existe otra forma de ver este hecho: supongamos quedisponemos de una moneda mágica que se usa en el proceso de

bactracking para determinar en cada decisión cuál es el caminocorrecto

la moneda siempre “adivina” la solución. En este caso la elalgoritmo es polinomial

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Teorema

Un lenguaje L pertenece a NP si y solo si existe un lenguaje

Lcheck ∈ P tal que

L = x : ∃y x ,y ∈ Lcheck y |y | ≤ p (|x |)

siendo p un polinomio.

Demostración.

Transformando una máquina de Turing.

este teorema describe una forma alternativa de probar lapertenencia a NP: mostrar que su lenguaje Lcheck pertenece a P

Pablo R. Fillottrani Algoritmos y Complejidad

Page 15: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 15/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

por ejemplopara mostrar que SAT∈ NP es suficiente con dar un algoritmodeterminístico polinomial para chequear si una asignación devalores de verdad hace verdadera una fbf.para mostrar que la versión de decisión del problema VIAJANTE(dado un grafo y un k encontrar un circuito en el grafo de longitudmenor o igual a k ) pertenece a NP se da un algoritmo polinomialpara controlar si un dado circuito es un circuito de viajante conlongitud menor o igual a k

se puede mostrar que 3-COLOR∈ NP dando un algoritmopolinomial para controlar que una asignación de colores de ungrafo asigne colores diferentes a nodos adyacentes.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Clase NPC

como P es cerrada c.r. a ≤p , el lema 8 permite suponer que loslenguajes NP-completos c.r. a ≤p (NPC) son candidatos alenguajes separadores, es decir a pertenecer a NP −P

entonces, para averiguar si P = NP es suficiente con establecer

el status de un problema en NPC: si uno de estos problemastiene solución polinomial, entonces todos los NP tienen soluciónpolinomial; si se demuestra que no puede existir una soluciónpolinomial para alguno de ellos, entonces ninguno de NPC latiene

el destino de un problema NPC es el destino de todos: todos sontratables o todos son intratables.

por lo tanto es interesante conocer cuáles problemas pertenecena NPC

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Teorema de Cook

Teorema (Cook/Levin)

SAT es un problema en NPC.

Demostración.

Primero se prueba que SAT∈ NP (usando el teorema 16 o mostrandoun algoritmo no determinístico polinomial). Luego se toma unlenguaje arbitrario L ∈ NP, y se muestra que L ≤p SAT. Para esto sedefine primero la reducción: sea T = Q ,Σ,∆,q 0,q 1 la MTND queacepta a L, y x ∈ Σ∗. Como L ∈ NP sabemos que T (x ) para(aceptando o rechazando) en tiempo polinomial p (|x |).A continuación se define una fbf F (T ,x ) tal que F (T ,x ) seasatisfacible si y solo si T (x ) termina en el estado aceptador.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Demostración (cont.)

La fórmula F (T ,x ) está formada por las siguientes proposiciones:

para cada paso t ,0 ≤ t ≤ p (|x |), para cada estadoq e ,1 ≤ e ≤ |Q |, existe Q t e para representar que en el paso t lacomputación T (x ) está en el estado e

para cada paso t ,0 ≤ t ≤ p (|x |), para cada celdac s ,1 ≤ s ≤ p (|x |), existe Lt

s para representar que en el paso t lacomputación T (x ) tiene la cabeza lectora en la posición s .

para cada paso t ,0 ≤ t ≤ p (|x |), para cada celdac s ,1 ≤ s ≤ p (|x |), para cada letra l i ∈ Σ ∪ (o seal 0 = 0, l 1 = 1, l 2 = ), existe P t s ,i para representar que en el pasot la computación T (x ) tiene en la celda c s la letra l i .

Pablo R. Fillottrani Algoritmos y Complejidad

Page 16: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 16/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Demostración (cont.)

A partir de estas proposiciones, se define

F (T ,x ) = A ∧ B ∧ C ∧ D ∧ E ∧ F

donde A,B ,C describen el comportamiento general de las MTND; D

describe la configuración inicial de T (x ); E describe elcomportamiento particular de T determinado por sus tuplas ∆; y F

describe la configuración aceptadora de T (x ).

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Demostración (cont.)

Las subfórmulas A,B ,C tienen la siguiente forma:

A =

0≤t ≤p (|x |)

[(

1≤e ≤|Q |

Q t e ) ∧

1≤e ,e ≤|Q |

e =e

(Q t e → ¬Q t e )]

B =

0≤t ≤p (|x |)

[(

1≤s ≤p (|x |

Lt s ) ∧

1≤s ,s ≤p (|x |)

s =s

(Lt s → ¬Lt

s )]

C =

0≤t ≤p (|x |)

1≤s ≤p (|x |)

[(P t s ,0 ∨ P t s ,1 ∨ P t s ,2) ∧ (

1≤i ,i ≤2i =i

(P t s ,i → ¬P t s ,i )]

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Demostración (cont.)

Las subfórmulas D ,E ,F tienen la siguiente forma:

D = (

1≤ j ≤|x |

P 0 j ,i j ) ∧ (

|x |< j ≤p (|x |)

P 0 j ,2) ∧ Q 00 ∧ L01

E =

0≤t ≤p (|x |)

1≤s ≤p (|x |)

[

q i ,p a ,q j ,p b ,m ∈∆

(Q t i ∧ Lt s ∧ P t s ,a → Q t +1

j ∧ Lt +1s +m ∧ P t +1

s ,b )]

F =

1≤t ≤p (|x |)

Q t 1

siendo x = l i 1 l i 2 . . . l i |x | con l i k

∈ Σ.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Demostración (cont.)

Se puede mostrar que F (T ,x ) tiene una longitud polinomial en |x |, yaque la su longitud es cúbica en p (|x |).

Además, vale que si F (T ,x ) es satisfacible entonces T (x ) acepta a x

y que si T (x ) acepta a x entonces F (T ,x ) es satisfacible. (Losdetalles de estos dos últimos puntos queda como ejercicio.)Esto finaliza la prueba que L ≤p SAT, y como L ∈ NP es arbitrario,entonces SAT es NP -completo.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 17: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 17/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

la importancia del teorema de Cook radica en que a partir delconocimiento de que SAT∈ NP, es mucho más fácil probar queotros problemas son NPC a través de la reducción polinomial:L ∈ NPC si y solo L2 ∈ NPC, L ∈ NP y L2 ≤p L.

de esta forma más de 1000 problemas de dominios muydiferentes, y con variadas aplicaciones, se han probado quepertenecen a NPC

el resultado es muy frustrante, ya que para ninguno de estosproblemas se ha podido encontrar una solución polinomial, ytampoco se les ha podido demostrar una cota inferior mayor quelineal.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Reducción SAT≤p CUBR.NODOS

sea F una fbf en FNC, se debe especificar un grafo G y unnúmero K tal que F es satisfacible si y solo si G tiene unK -cubrimiento de nodos

sean p 1, . . . ,p n las proposiciones de F , y C 1, . . . ,C m susclausulas. G (F ) se construye:1 por cada p i se agregan dos nodos en G etiquetados p i y ¬p i .

Cada par de estos nodos se conecta con un arco en G 2 por cada C j con n j literales, se agrega en G un subgrafo completo

de n j nodos etiquetados con cada literal de C j 3 se unen con un arco cada nodo agregado por la segunda regla

con el nodo agregado en la primera que tiene igual etiqueta. El K

se determina por la siguiente fórmula K = n +∑m

j =1(n j − 1).

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

efectivamente, se muestra que F es satifacible si y solo si G (F )

tiene un K -cubrimiento de nodos, que la reducción es en tiempopolinomial, y que CUBR.NODOS∈ NP, con lo que se concluyeque CUBR.NODOS∈ NPC (ejercicio)

por ejemplo, para F = (x ∨ ¬y ∨ w ) ∧ (z ∨ ¬v ) ∧ (v ∨ y ∨ z ∨ w )

se tiene el siguiente grafo G (F ), con K = 11:

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Reducción SAT≤p 3-SAT

sea F una fbf en CNF, se debe especificar una fbf F una fbf enCNF con exactamente 3 literales por clausula tal que F essatisfacible si y solo si F es satisfaciblela fbf F se construye a partir de cada clausula C i de F de la

siguiente forma:si C i = Li 1 entonces C i = Li 1 ∨ Li 1 ∨ Li 1 .si C i = Li 1 ∨ Li 2 entonces C i = Li 1 ∨ Li 2 ∨ Li 2 .si C i = Li 1 ∨ Li 2 ∨ Li 3 entonces C i = C i .si C i = Li 1

∨ .. .∨ Li k , k > 3 entonces C i = (Li 1

∨ Li 2∨ y i 1 ) ∧ (¬y i 1 ∨

Li 3 ∨ y i 2 ) ∨ . .. ∨ (¬y i k −4 ∨ Li k −2 ∨ y i k −3 ) ∨ (¬y i k −3 ∨ Li k −1 ∨ Li k ),

siendo y i j ,1 ≤ j < k − 2 nuevas letras proposicionales.

es posible mostrar también que la reducción se puede hacer entiempo polinomial, y como también 3-SAT∈ NP entonces3-SAT∈ NPC.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 18: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 18/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

por ejemplo, si

F = (p ∨ ¬q ∨ ¬r ∨ ¬s ∨ w ∨ ¬v ) ∧ (¬w ∨ z )

entonces

F = (p ∨ ¬q ∨ y 11) ∧ (¬y 11 ∨ ¬r ∨ y 12) ∧

∧(¬y 12 ∨ ¬s ∨ y 13) ∧ (¬y 13 ∨ w ∨ ¬v ) ∧ (¬w ∨ z ∨ z )

la satisfacibilidad de la clausula original garantiza lasatisfacibilidad de las clausulas transformadas asignandoverdadero a todas las y i j hasta encontrar el literal verdadero dela clausula, luego los siguiente y i k

toman valor falso

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

algunos problemas de NPC parecen similares a otros que sesaben en P, pero tiene complejidad distinta

Problema en P Problema en NPC

CUBRIMIENTO DE ARCOSInstancia: grafo G = N ,A, enteropositivo k .Respuesta: sí si existe A ⊆ A talque |A| ≤ k y que todo nodo de N

es el extremo de algún arco en A.

CUBRIMIENTO DE NODOSInstancia: grafo G = N ,A, enteropositivo k .Respuesta:sí existe N ⊆ N tal que|N | ≤ k y que todo arco de A tocaN .

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

CONJUNTO DE ARCOS NO DIRI-GIDOS RETROALIMENTADOS

Instancia: grafo G = N ,A, enteropositivo k .Respuesta: sí si existe un subcon- junto A ⊆ A tal que |A| ≤ k y quetodo ciclo en G contiene un arco deA.

CONJUNTO DE ARCOS DIRIGI-DOS RETROALIMENTADOS

Instancia: grafo dirigido G = N ,A,entero positivo k .Respuesta: sí si existe un subcon- junto A ⊆ A tal que |A| ≤ k y quetodo ciclo (dirigido) en G contieneun arco de A.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

CICLO DE EULERInstancia: grafo G = N ,A, |A| =

a .Respuesta: sí si existe un orden(n i ,m i ),1 ≤ i ≤ a de los arcos demanera que m i = n i +1,1 ≤ i < m yn a = m 1.

CICLO DE HAMILTONInstancia: grafo G = N ,A, |N | =

n .Respuesta: sí si existe un ordenn i ,1 ≤ i ≤ n de los nodos de ma-nera que (n i ,n i +1) ∈ A,1 ≤ i < n y(n n ,n 1) ∈ A.

Pablo R. Fillottrani Algoritmos y Complejidad

Page 19: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 19/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

2-SATISFACIBILIDADInstancia: fbf F del cálculo proposi-cional en FNC de manera que nin-guna clausula contenga más de 2literales.Respuesta: sí si F es satisfacible.

3-SATISFACIBILIDADInstancia: fbf F del cálculo proposi-cional en FNC de manera que nin-guna clausula contenga más de 3literales.Respuesta: sí si F es satisfacible.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

ECUACIÓN DIOFANTINA LINEALInstancia: enteros positivos a ,b ,c .Respuesta: sí si existen enterospositivos x ,y tales que ax + by =c .

ECUACIÓN DIOFANTINA CUA-DRÁTICAInstancia: enteros positivos a ,b ,c .Respuesta: sí si existen enterospositivos x ,y tales que ax 2 + by =c .

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

PARTICIONES UNARIASInstancia: conjunto A = a i de en-

teros en notación unaria.Respuesta: sí si existe un subcon- junto A ⊂ A tal que ∑a i ∈A a i =

∑a i ∈A−A a i .

PARTICIONES BINARIASInstancia: conjunto A = a i de en-

teros en notación binaria.Respuesta: sí si existe un subcon- junto A ⊂ A tal que ∑a i ∈A a i =

∑a i ∈A−A a i .

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problemas en P Problemas en NPC

CAMINO MÁS CORTO Instancia:grafo G = N ,A, función distancia

d : A → N, nodos a ,b ∈ N , enteropositivo k . Respuesta: sí si existeen G un camino simple de a a b delongitud menor o igual a k .

CAMINO MÁS LARGOInstancia: grafo G = N ,A, función

distancia d : A → N, nodos a ,b ∈N , entero positivo k .Respuesta: sí si existe en G un ca-mino simple de a a b de longitudmayor o igual a k .

Pablo R. Fillottrani Algoritmos y Complejidad

Page 20: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 20/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clase PClase NPClase NPC

Problema en P Problema en NPC

INTREE SCHEDULINGInstancia: conjunto T de tareas deduración unitaria, p : T → N plazomáximo de cada tarea, orden par-

cial < en T tal que toda tarea ten-ga a lo sumo un sucesor inmediato,entero positivo m .Respuesta: sí si existe un schedu-ling de T en m procesadores queobedezca el orden < y ejecute t ∈T antes de su plazo p (t ).

OUTTREE SCHEDULINGInstancia: conjunto T de tareas deduración 1, p : T → N plazo máxi-mo de cada tarea, orden parcial <

en T tal que toda tarea tenga a losumo un predecesor inmediato, en-tero positivo m .Respuesta: sí si existe un schedu-ling de T en m procesadores queobedezca el orden < y ejecute t ∈T antes de su plazo p (t ).

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

después de más de tres décadas de estudio, los investigadores

no han podido responder la pregunta P ?= NP

es decir, no han encontrado un algoritmo polinomial ni handemostrado una cota superpolinomial, para ningún problema deNPC

sin embargo, la experiencia práctica indica que P ⊂ NP es másplausible que P = NP. Se cree que años de búsqueda dealgoritmos más eficientes hacen más plausible la idea de que noexistan

esta experiencia también prefiere la idea de que una resoluciónde este problema (en uno u otro sentido) provendráindirectamente del estudio detallado de las propiedades de lasclases, y no a través de una prueba directa.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

por ejemplo, se ha mostrado que:

Teorema

Si todo par de lenguajes L1,L2 ∈ NPC es tal que L1 y L2 son

p-isomorfos, entonces P = NP.

donde dos lenguajes son p -isomorfos si son reducibles entre sípor una función de reducibilidad polinomial, biyectiva y coninversa también polinomial

y en el otro sentido

Teorema

Si existe un lenguaje L ∈ NPC tal que L es ralo, entonces P = NP.

donde un lenguaje es ralo si su función censo está acotada porun polinomio

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

existen muchos otros resultados como los anteriores, quefavorecen una postura u otra, pero todas las condiciones queestos resultados establecen paracen ser tanto o más esquivas

que el problema originalen el caso que sea P = NP, se puede mostrar que existenlenguajes en NP −P que no son NPC

se los denomina NP-intermedios, o NPI. Se supone que variosproblemas pertenecen a esta clase

Pablo R. Fillottrani Algoritmos y Complejidad

Page 21: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 21/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Famila de clases de complejidad

siempre que P = NP

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clases de Complejidad en Espacio

análogamente a P y NP, se pueden definir clases de complejidadpolinomial en espacio determinística y no determinística

PSPACE = ∪k ∈NDSPACE [n k ]

NPSPACE = ∪k ∈NNSPACE [n k ]

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

uno de los resultados más tempranos en cuanto al estudio de lacomplejidad establece que la computación no determinística enespacio es sorprendentemente eficiente comparando con lacomputación determinística equivalente

Teorema (Savitch)

Para toda función f : N −→ N tal que f (n ) ≥ log n vale que

NSPACE [f (n )] ⊆ DSPACE [f (n )2]

Corolario

PSPACE = NPSPACE

Demostración.

Por el teorema de Savitch, NSPACE [n k ] ⊆ DSPACE [n k 2 ].

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

también sabemos que P ⊆ PSPACE y que NP ⊆ NPSPACE,luego se tienen las siguientes relaciones

P⊆NP⊆PSPACE = NPSPACE ⊆ EXPTIME= ∪k ∈NDTIME [2n k

]

no se conoce si algunas de estas inclusiones son realmenteigualdades

Pablo R. Fillottrani Algoritmos y Complejidad

Page 22: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 22/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

sin embargo, sí se sabe que P ⊂ EXPTIME, por lo quenecesariamente por lo menos una inclusión es estricta

Teorema (Teorema de Jerarquía en Tiempo)

Para toda función tiempo construible t : N −→ N existe un lenguaje L

tal que L es decidible en tiempo O (t (n )) pero no en tiempo de

o (t (n )/ log n ).

Corolario

Para todo par de números reales ε 1,ε 2 tal que 1 ≤ ε 1 < ε 2 vale que

DTIME [n ε 1 ] ⊂ DTIME [n ε 2 ].

Corolario

P ⊂ EXPTIME

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

también es posible demostrar un teorema equivalente para la jerarquía en espacio, donde una función es espacio construible sicumple la definición análoga a tiempo construible pero conrestricción en el espacio

Teorema (Teorema de Jerarquía en Espacio)Para toda función espacio construible t : N −→ N existe un lenguaje L

tal que L es decidible en tiempo O (t (n )) pero no en tiempo de o (t (n )).

Corolario

Para todo par de números reales ε 1,ε 2 tal que 1 ≤ ε 1 < ε 2 vale que

DSPACE [n ε 1 ] ⊂ DSPACE [n ε 2 ].

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

existen problemas PSPACE-completos, que según el lemaanterior serían candidatos a lenguajes separadores en PSPACEy todas las clases inferiores

igualmente, no se sabe si estos problemas pertenecen a P o no.son problemas PSPACE-completos:

TQBF el problema de determinar si una fórmula booleanatotalmente cuantificada es verdadera o falsasaber si un jugador tiene una estrategia ganadora en un grafogenerado por el juego de GEOGRAFIA GENERALIZADO.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Clases L y NL

es posible definir relaciones de reducibilidad de granularidad másfina que la reducibilidad polinomial, en particular para estudiar lacomplejidad en espacio logarítmico

la reducibilidad logarítmica se define: dados dos lenguajes L1,L2,L1 se dice logarítmicamente reducible a L2 si existe un función f

computable en espacio logarítmico tal que x ∈ L1 ↔ f (x ) ∈ L2, yse nota L1 ≤l L2

la reducibilidad logarítmica cumple con todas las propiedadesgenerales de las funciones de reducibilidad vistas anteriormente

de esta forma se pueden definir clases y lenguajes completosdentro de la clase P

Pablo R. Fillottrani Algoritmos y Complejidad

Page 23: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 23/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

las clases L y NL contienen los problemas solublesdeterminísticamente y no determinísticamente en espaciologarítmico

L = DSPACE [log n ]

NL = NSPACE [log n ]

por supuesto L ⊆ NL, pero al igual que en el tiempo polinomial,no se sabe si la inclusión es estricta

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

el problema CAMINO para determinar si existe un camino en ungrafo dirigido entre un dado par de nodos (que se puede resolvercon el algoritmo de Dijkstra) se puede demostrar que es

NL-completo con respecto a ≤l

dado que CAMINO tiene solución determinística polinomial entiempo, entonces como consecuencia se tiene que NL ⊆ P

otro resultado sorprendente es que a pesar que no se sabe siNP = co NP, se puede demostrar que NL = co NL

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

en resumen, sabemos que

L ⊆ NL = co NL ⊆ P ⊆ PSPACE

y por el teorema de la jerarquia en espacio se sabe queL ⊂ PSPACE, por lo que también alguna de estas inclusionesnecesariamente debe ser estricta, sin saber cuál

la clase en tiempo logarítmico LOGTIME no constituye una clasede problemas interesante ya que son problemas que seresuelven sin ni siquiera leer totalmente la entrada. A esta clasepertenece BÚSQUEDA BINARIA

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Otras Clases de Complejidad

clases probabilísticas

jerarquía polinomial en tiempo

clases de computación paralela

jerarquía aritmética de incomputabilidad

Pablo R. Fillottrani Algoritmos y Complejidad

Page 24: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 24/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Algoritmos de aproximación

el hecho de conocer que un problema es NP-completo es

instructivopuede ser útil para no perder tiempo en búsqueda de unalgoritmo eficiente que probablemente no exista

sin embargo, esto no significa que el problema no se puedasolucionar

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

un algoritmo heurístico, o simplemente heurística, es unprocedimiento que eventualmente puede producir una soluciónbuena, o incluso optimal, a un problema; pero también puedeproducir una mala solución o incluso ninguna

la heurística puede ser determinística o probabilística. La

principal diferencia con los algoritmos Monte Carlo es que noestá garantizada una baja probabilidad de error

un algoritmo de aproximación es un procedimiento que siempreresulta en una solución al problema, aunque puede fallar enencontrar la solución optimal

para que sea útil, debe ser posible calcular una cota o sobre ladiferencia, o sobre el cociente entre la solución optimal y ladevuelta por el algoritmo.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

consideremos por ejemplo el problema de la mochila, concoeficientes enteros

la solución greedy se mostró no optimal, mientras que la soluciónde programación dinámica era de Θ(nW ) que puede ser muymala si W es grande

no es un problema en P

la solución greedy se puede extender fácilmente a un algoritmode aproximación que garantice una solución menor que dosveces la solución optimal

el algoritmo de aproximación supone que ningún objeto pesamás que la capacidad de la mochila, pero esta restricción es fácilde levantar

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Algoritmo greedy

PROCEDURE MochilaG(w[1..n],v[1..n],W)

ordenar v[i]/w[i] en L

peso::=0; valor::=0

FOR i::=1 TO nIF peso+w[i]<=W

valor::=valor+v[i]

peso::=peso+w[i]

ENDIF

ENDFOR

RETURN valor

Pablo R. Fillottrani Algoritmos y Complejidad

I d ió I d ió

Page 25: Algoritmos y Complejidad .pdf

7/17/2019 Algoritmos y Complejidad .pdf

http://slidepdf.com/reader/full/algoritmos-y-complejidad-pdf 25/25

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Algoritmo de aproximación

PROCEDURE MochilaA(w[1..n],v[1..n],W)

maxElto::=maxv[i], 1<=i<=n

greedy::=MochilaG(w,v,W)RETURN maxmaxElto, greedy

sean opt el valor de la carga óptima, y opt el valor retornado porel algoritmo de aproximación.

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

Teorema

Vale que opt ≥ opt /2.

Demostración.

Si todos los objetos caben en la mochila, entonces

opt = opt . Sino,

existe k el menor índice tal que ∑k i =1 w [i ] > W . Sea opt el valor deuna carga óptima con W = ∑

k i =1 w [i ]. Vale que opt = ∑

k i =1 v [i ] y

como W > W , opt > opt . Luego

opt = maxmaxElto,greedy ≥ (maxElto + greedy))/2

≥ (v [k ] +k −1

∑i =1

v [i ])/2 = (k

∑i =1

v [i ])/2 = opt /2 ≥ opt /2

Pablo R. Fillottrani Algoritmos y Complejidad

IntroducciónClases de Complejidad

Clases P y NPProblema P vs. NP

Otras clases de complejidadAlgoritmos de aproximación

se conocen mejores algoritmos de aproximación para esteproblema, algunos basados incluso en la solución deprogramación dinámica

otros algoritmos de aproximación trabajan sobre determinadossubproblemas del problema original

como la mayoría de los problemas NPC tienen una gran cantidadde instancias a las cuales se aplican, se puede llegar a tenersuerte caracterizando un subconjunto de instancias para lascuales existe un algoritmo de aproximación eficiente y confiable

los algoritmos de aproximación también son aplicables enocasiones donde los datos iniciales son inciertos

en estos casos, aún un algoritmo exacto puede dar una soluciónmala debido a la imprecisión de los datos originales.

Pablo R Fillottrani Algoritmos y Complejidad