Está en la página 1de 8

Algoritmos de aproximación

Supongamos que necesito resolver un problema NP-hard. ¿Qué tengo que hacer?

La teoría dice que es poco probable que encuentres un algoritmo de poli-tiempo.

Debe sacrificar una de las tres características deseadas.

- Resolver problemas a la optimización.

- Resolver problemas en poli - tiempo.

- Resolver instancias arbitrarias del problema.

ρ Algoritmo de aproximación

- Garantizado para ejecutarse en poly - time.

- Garantizado para resolver la instancia arbitraria del problema.

- Garantizado para encontrar la solución dentro de la relación ρ del verdadero óptimo.

Balanceo de carga

Entrada. m máquinas idénticas; n trabajos, el trabajo j tiene tiempo de procesamiento t.

- El trabajo j debe ejecutarse contiguamente en una máquina.

- Una máquina puede procesar como máximo un trabajo a la vez.

Def. Sea J (i) el subconjunto de trabajos asignados a la máquina i. La carga de la máquina i es:

Li = ∑ j € J (i) + j

Def. El makespan es la carga máxima en cualquier máquina L = max i Li


Implementación. En (n log n) usando una cola prioritaria.

Equilibrio de carga: análisis de programación de listas

Teorema. [Graham, 1966] El algoritmo codicioso es una aproximación de 2.

- Primer análisis del peor caso de un algoritmo de aproximación.

- Necesidad de comparar la solución resultante con el makespan óptimo L.

1
Lema 1. El makespan óptimo es L * ≥ ∑j tj
m
Pf.

- El tiempo total de procesamiento es ∑ j + j

- Una de las máquinas m debe hacer al menos una fracción de 1 / m del trabajo total.

Lema 2. El makespan óptimo L * ≥ max j tj

Pf. ¡Algunas máquinas deben procesar el trabajo que requiere más tiempo!

Teorema. El algoritmo codicioso es una aproximación de 2.

Pf. Considere cargar Li de la máquina de cuello de botella i.

Sea j el último trabajo programado en la máquina i.

Cuando el trabajo j asignado a la máquina i, tenía la carga más pequeña.

Li - tj
Su carga antes de la asignación es  Li - tj  Lk para todos 1  k  m.

Sumar desigualdades sobre todo k y dividir por m:

1
Li - T j≤ ∑kLk
m
1
= ∑ktk
m
Lema 1 → ≤ L *

- Ahora

Li = (Li – tj) + tj ≤ 2L *

≤L* ≤L*
Equilibrio de carga: análisis de programación de listas

P. ¿Nuestro análisis es estricto?


A. Esencialmente sí.

Ej: m máquinas, m (m-1) trabajos de longitud 1 trabajos, un trabajo de longitud m

Equilibrio de carga: regla LPT

Observación. Si como mucho m trabajos, entonces la programación de listas es óptima.

Pf. Cada trabajo se pone en su propia máquina.

Lema 3. Si hay más de m empleos,

Pf.

Considere los primeros trabajos m + 1

Desde el t i’s en orden descendente, cada uno toma al menos + m1 de tiempo.

Hay m + 1 trabajos y m máquinas, por lo que, según el principio del casillero, al menos una
máquina obtiene dos trabajos.

Teorema. La regla LPT es un algoritmo de aproximación 3/2.

Pf. El mismo enfoque básico que para la programación de listas.


Q. ¿Es estricto nuestro análisis 3/2?

A. No.

Teorema. [Graham, 1969] La regla LPT es una aproximación de 4/3.

Pf. Análisis más sofisticado del mismo algoritmo.

Q. ¿El análisis 4/3 de Graham es estricto?

A. Esencialmente sí.

Ej: máquinas m, n = 2m + 1 trabajos, 2 trabajos de longitud m + 1, m + 2,…, 2m-1 y tres trabajos de


longitud m.

Problema de selección de centro

Entrada. Conjunto de n sitios s1, ..., sn.

Problema de selección de centro. Seleccione k centro C para que el máximo de distancia desde un
sitio cercano al centro se reduzca al mínimo.

Ej: cada sitio es un punto en el plano, un centro puede ser cualquier punto en el plano, dist (x, y) =
distancia euclidiana.

Observación: ¡la búsqueda puede ser infinita!

Teorema. Deje que C * sea un conjunto óptimo de centros. Entonces r (C) ≤ 2r (C *).

Pf. (por contradicción) Suponga que r (C *) < ½ r (C).

Para cada sitio ci en C, considere una bola de radio ½ r (C) a su alrededor.


Exactamente un ci * en cada pelota; deje que ci sea el sitio emparejado con ci *.

Considere cualquier sitio s y su centro más cercano c i * en C *.

dist (s, C) ≤ dist (s, ci) ≤ dist (s, ci *) + dist (ci *, ci) ≤2r (C *).

Por lo tanto, r (C) ≤ 2r (C *).

Selección de centro

Teorema. Deje que C * sea un conjunto óptimo de centros. Entonces r (C) ≤ 2r (C *).

Teorema. El algoritmo codicioso es una aproximación de 2 para el problema de selección de


centro.

Observación. El algoritmo codicioso siempre coloca los centros en los sitios, pero todavía está
dentro de un factor de 2 de la mejor solución que permite colocar centros en cualquier lugar.

Pregunta. ¿Hay esperanza de una aproximación de 3/2? 4/3?

Teorema. A menos que P = NP, no hay aproximación ρ para el problema de selección de centro
para cualquier ρ <2.

El método de fijación de precios: cobertura de vértice

Cubierta de vértice ponderada. Dado un gráfico G con peso de vértice, encuentre una cubierta de
vértice de peso mínimo.

Peso = 2+2+4 Peso = 9


Cubierta de vértice ponderada

Método de fijación de precios. Cada borde debe estar cubierto por algún vértice i. El borde paga el
precio pe ≥ 0 para usar el vértice i.

Justicia. Los bordes incidentes con el vértice pagar ≤ wi en total.

Para cada vértice:

Reclamación. Para cualquier cubierta de vértice S y

cualquier precio justo pe: ∑e pe ≤ w (S)

cada borde e cubierto por suma equidad desigualdades


al menos un nodo en S para cada nodo en S

Método de precios

Método de fijación de precios. Establezca precios y encuentre la cobertura de vértices


simultáneamente.
Método de fijación de precios: análisis

Teorema. El método de fijación de precios es una aproximación de 2.


Pf.
El algoritmo termina ya que al menos un nuevo nodo se vuelve ajustado después de cada iteración
del ciclo while.
Deje S = conjunto de todos los nodos ajustados al finalizar el algoritmo. S es una cubierta de
vértice: si algún borde i-j está descubierto, entonces ni i ni j están apretados. Pero entonces el ciclo
while no terminaría.
Deje que S * sea la cubierta óptima del vértice. Mostramos w (S) ≤ 2w (S *).

Redondeo de LP: cubierta de vértice

Cubierta de vértice ponderada. Dado un grafo no dirigido G = (V, E) con peso de vértice wi ≥ 0,
encuentre un subconjunto de peso mínimo de nodos S de modo que cada borde incida en al
menos un vértice en S.

Cubierta de vértice ponderada: formulación de IP


Cubierta de vértice ponderada. Dado un gráfo no dirigido G = (V, E) con peso de vértice wi ≥ 0,
encuentre un subconjunto de peso mínimo de nodos S de modo que cada borde incida en al
menos un vértice en S.
Formulación de programación entera
Modelo de inclusión de cada vértice i usando una variable 0/1 xi

0 si el vértice no está en la cubierta del vértice


.
Xi =
1 si el vértice i está en la cubierta del vértice

Vertex cubre en correspondencia 1-1 con asignaciones 0/1:


S = {i ∈ V : xi = 1}
Función objetivo: maximizar Σi wi xi
Debe tomar i o j: xi + xj ≥ 1.

También podría gustarte