Está en la página 1de 7

Búsqueda local

Lidiando con NP-Hardness


P. Supongamos que necesito resolver un problema NP-hard. ¿Qué tengo que
hacer?
R. 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 tiempo polinomial.
- Resolver instancias arbitrarias del problema.

Paisaje de un problema de optimización


Descenso degradado: cubierta de vértice
CUBIERTA DE VERTEX. Dado un gráfico G = (V, E), encuentre un subconjunto de
nodos S de cardinalidad mínima tal que para cada u-v en E, u u v (o ambos) estén
en S.
Relación de vecinos. S ∼ S 'si S' se puede obtener de S agregando o eliminando
un solo nodo. Cada cubierta de vértice S tiene como máximo n vecinos.
Descenso de gradiente. Comience con S = V. Si hay un vecino S 'que es una
cubierta de vértice y tiene una cardinalidad menor, reemplace S con S'.
Observación. El algoritmo termina después de, como máximo, n pasos, ya que
cada actualización disminuye el tamaño de la cubierta en uno.

Óptimo local. Ningún vecino es estrictamente mejor.

óptimo = solo nodo central óptimo = todos los nodos en el lado


izquierdo
óptimo local = todos los demás óptimo local = todos los nodos en el lado
derecho
óptimo = nodos pares

óptimo local = omitir cada tercer


nodo

Algoritmo de metrópolis
Algoritmo de metrópolis. [Metrópolis, Rosenbluth, Rosenbluth, Teller, Teller 1953]
Simule el comportamiento de un sistema físico de acuerdo con los principios de la
mecánica estadística.
Globalmente sesgado hacia pasos "cuesta abajo", pero ocasionalmente da pasos
"cuesta arriba" para salir de los mínimos locales.
Función de Gibbs-Boltzmann. La probabilidad de encontrar un sistema físico en un
estado con energía E es proporcional a e -E / (kT), donde T> 0 es la temperatura y k
es una constante.
Para cualquier temperatura T> 0, la función es monótona y disminuye de energía
E.
- El sistema tiene más probabilidades de estar en un estado de energía más bajo
que uno más alto.
- T grande: los estados de alta y baja energía tienen aproximadamente la misma
probabilidad
- T pequeña: los estados de baja energía son mucho más probables

Algoritmo de metrópolis.
-Dada una temperatura fija T, mantenga el estado actual S.
-Perturbar aleatoriamente el estado actual S al nuevo estado S '∈ N (S).
-Si E (S ') ≤ E (S), actualice el estado actual a S'
- ΔE / (kT)
De lo contrario, actualice el estado actual a S 'con probabilidad e , donde ΔE
= E (S') - E (S)> 0.
Teorema. Supongamos que fS (t) es una fracción de los primeros t pasos en los
que la simulación está en estado S. Luego, suponiendo algunas condiciones
técnicas, con probabilidad 1:

Intuición. La simulación pasa aproximadamente la cantidad de tiempo correcta en


cada estado, de acuerdo con la ecuación de Gibbs-Boltzmann.
Recocido simulado
T grande ⇒ la probabilidad de aceptar un movimiento cuesta arriba es grande.
T pequeños ⇒ movimientos cuesta arriba casi nunca son aceptados.
Idea: gire la perilla para controlar T.
Programa de enfriamiento: T = T (i) en la iteración i.
Análogo físico
Tome un sólido y elévelo a alta temperatura, no esperamos que mantenga una
buena estructura cristalina.
Tome un sólido fundido y congélelo abruptamente, tampoco esperamos obtener
un cristal perfecto.
Recocido: enfríe el material gradualmente a alta temperatura, lo que le permite
alcanzar el equilibrio en la sucesión del intermedio inferior de temperatura.

Redes neuronales de Hopfield


Redes Hopfield. Modelo simple de una memoria asociativa, en la que una gran
colección de unidades está conectada por una red subyacente, y las unidades
vecinas intentan correlacionar sus estados.
Entrada: Grafo G = (V, E) con pesos de borde enteros w.
Configuración. Asignación de nodos su = ± 1
Intuición. Si wuv <0, entonces u y v quieren tener el mismo estado; si w uv> 0,
entonces u y v quieren estados diferentes.
Nota. En general, ninguna configuración respeta todas las restricciones.
Def. Con respecto a una configuración S, el borde e = (u, v) es bueno si w esusv <0.
Es decir, si we<0 entonces su = sv; si we> 0, su ≠ sv.
Def. Con respecto a una configuración S, un nodo u se satisface si el peso de
bordes buenos incidentes ≥ peso de bordes malos incidentes.

Def. Una configuración es estable si todos los nodos están satisfechos.

Objetivo. Encuentre una configuración estable, si existe dicha configuración.

Redes neuronales de Hopfield


Objetivo. Encuentre una configuración estable, si existe dicha configuración.
Algoritmo de cambio de estado. Estado de volteo repetido de un nodo insatisfecho.
Algoritmo de cambio de estado

Reclamación. El algoritmo de cambio de estado termina con una configuración


estable después de como máximo W = Σe | we | iteraciones
Pf intento. Considere la medida del progreso Φ (S) = # nodos satisfechos.
Reclamación. El algoritmo de cambio de estado termina con una configuración
estable después de como máximo W = Σe | we | iteraciones
Pf. Considere la medida del progreso Φ (S) = Σ e good | we |.
Claramente 0 ≤ Φ (S) ≤ W.
Mostramos que Φ (S) aumenta en al menos 1 después de cada volteo.
Cuando cambia de estado:
- Todos los bordes buenos que inciden en ti se vuelven malos
- Todos los bordes defectuosos que inciden en ti se vuelven buenos
- Todos los demás bordes permanecen iguales
Complejidad de la red neuronal de Hopfield
Problema de búsqueda en la red de Hopfield. Dado un gráfico ponderado,
encuentre una configuración estable si existe.
Problema de decisión de la red Hopfield. Dado un gráfico ponderado, ¿existe una
configuración estable?
Observación. El problema de decisión es trivialmente solucionable (siempre sí),
pero no existe un algoritmo de tiempo polivinílico conocido para el problema de
búsqueda.
Corte máximo
Corte máximo
Corte máximo. Dado un gráfico no dirigido G = (V, E) con pesos de bordes enteros
positivos we, encuentre una partición de nodo (A, B) tal que el peso total de los
bordes que cruzan el corte se maximice.

Aplicación de juguete.
n actividades, m personas.
Cada persona quiere participar en dos de las actividades.
Programe cada actividad en la mañana o en la tarde para maximizar el número de
personas que pueden disfrutar de ambas actividades.
Aplicaciones reales: Diseño de circuitos, física estadística.
Corte máximo
Barrio de una sola vuelta. Dada una partición (A, B), mueva un nodo de A a B, o
uno de B a A si mejora la solución.
Algoritmo codicioso.

También podría gustarte