Algoritmos y Complejidad .pdf
-
Upload
luis-martinez -
Category
Documents
-
view
279 -
download
0
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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ó
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