1. Descripción de la técnica
2. Ventajas vs Desventajas
3. Ejemplos de aplicación
4. Pseudocódigo
5. Conclusiones
La técnica de Ramificación y poda se suele interpretar como un árbol de soluciones, donde cada rama nos lleva a una posible solución posterior a la actual.
Característica
El algoritmo se encarga de detectar en qué ramificación las soluciones dadas ya no están siendo óptimas, para «podar» esa rama del árbol y no continuar malgastando recursos y procesos en casos que se alejan de la solución óptima.
Asignación de tareas
Problema de la mochila.
Problema del viajante.
Ejemplos de problemas usando Ramificación y poda
- Ejemplo del Algoritmo de Ramificación y Acotamiento (B&B)
- Resolución de un sudoku utilizando Ramificación y poda
Funcion RyP {
P = Hijos(x,k)
while ( no vacio(P) )
x(k) = extraer(P)
if esFactible(x,k) y G(x,k) < optimo
si esSolucion(x)
Almacenar(x)
else
RyP(x,k+1)
• Ramificación y poda: mejora y generalización de la técnica de backtracking.
• Idea básica: Recorrido implícito en árbol de soluciones:
- Distintas estrategias de ramificación.
- Estrategias LC: explorar primero las ramas más prometedoras.
- Poda basada en acotar el beneficio a partir de un nodo: CI, CS.
• Estimación de cotas: aspecto clave en RyP. Utilizar algoritmos de avance rápido.
• Compromiso tiempo-exactitud:
- Más tiempo => Mejores cotas.
- Menos tiempo => menos poda.