Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción Introducción
Solo se puede realizar la poda cuando ya se tiene una Generalmente, el espacio de soluciones se
solución teórica o se dispone de una cota teórica. organiza en un árbol y se podan los subárboles
Al igual que los métodos de búsqueda con retroceso que no son útiles.
(Backtracking), se aplica a problemas de optimización
con restricciones o a problemas de decisión.
En búsqueda con retroceso:
• Tan pronto como se genera un nuevo hijo del nodo en
curso, este hijo pasa a ser el nodo en curso.
En ramificación y acotación:
• Se generan todos los hijos del nodo en curso antes de
que cualquier otro nodo vivo pase a ser el nuevo nodo en
curso.
Descripción Descripción
Ramificación y poda (Branch and Bound, en inglés) es Si se encuentra una solución óptima para un
un método general de búsqueda que se aplica de la subproblema concreto, ésta será una solución
siguiente forma: factible para el problema completo, pero no
Se explora un árbol comenzando a partir de un necesariamente su óptimo global.
problema raíz y su región factible (inicialmente, el
problema original, con su espacio de soluciones
completo). Cuando en un nodo (subproblema), su cota local es
peor que el mejor valor conocido en la región, no
Aplica funciones de acotación al problema raíz, puede existir un óptimo global en el subespacio de
para el que establece cotas inferiores y/o la región factible asociada a ese nodo y, por tanto,
superiores. ese nodo puede ser eliminado (“podado”).
Si las cotas cumplen las condiciones que se hayan
establecido, habremos encontrado la solución
óptima del problema y la búsqueda terminaría.
1
Descripción Conceptos básicos
Nodo vivo: aquel nodo que no ha sido aún podado
Proseguir con la búsqueda hasta que: y que puede ser ramificado (no se han generado
– Se examinan o podan todos los nodos todos sus hijos)
– O se cumple con el criterio establecido acerca Nodo muerto: nodo del que no se van a generar
del mejor valor encontrado y las cotas locales más hijos porque:
de los subproblemas aún no resueltos. no hay más
se llega a una solución
no generará mejores soluciones que las ya obtenidas hasta el
momento.
2
Pasos del algoritmo de RyP Pasos del algoritmo de RyP
Ramificación Estimación de las cotas
– LIFO cada nodo puede tener:
Lista de nodos vivos: Pila. – una cota inferior de coste/beneficio,
Recorrido del árbol en profundidad. – un coste/beneficio estimado y
– una cota superior del coste/beneficio.
CI E CS
3
Pasos del algoritmo de RyP Pasos del algoritmo de RyP
Estrategia de poda Estrategia de poda
Por la forma en la que están definidas las cotas Tabla 2. Interpretación de las cotas
local y global, se puede asegurar que con la poda no Maximización Minimización
se perderá ninguna solución óptima: Valor Beneficio Coste
Podar si CL < CG CL > CG
Por definición: Cota local (CL) Cota superior Cota inferior
– CotaLocal(i) es mejor o igual que ÓptimoLocal(i).
Significado: al expandir el CL ≥ Óptimo local CL ≤ Óptimo local
– CotaGlobal es peor o igual que Óptimo. nodo no se consigue nada
mejor.
Si CotaLocal(i) es peor que CotaGlobal, entonces Cota global (CG) Cota inferior Cota superior
ÓptimoLocal(i) tiene que ser peor que Óptimo. Significado: La solución CG ≤ Optimo global CG ≥ Optimo global
(Ver Tabla 2) óptima nunca será peor
que esta cota.
Ejemplo 1 Ejemplo 1
El problema de la asignación El problema de la asignación
4
Ejemplo 1 Ejemplo 2
El problema de la asignación, para minimizar y el tiempo
que tarda un trabajador en realizar x tarea.
El problema de la asignación
Mínimo coste para cada agente: 1 2 3
a ←3, b← 1, c← 2: 3+2+9=14 S 1 9 2
D 3 5 7
Mínimo coste por tarea: F 4 11 8
1← b, 2 ← a, 3 ← c: 2+7+4=14 Cota Sup: S1+D2+F3 = 1+5+8=14
Estas dos soluciones no son soluciones óptimas. Cota Sup: 14
S1: S1+D2+F3: 1+5+8=14
La mejor solución: S2: S2+D1+F1: 9+3+4=16
Ejemplo 3 Ejercicio
El problema de la asignación, calcular la cota mas
prometedora para maximizar el beneficio Dado el siguiente problema de la asignación, calcular la
1 2 3 cota más prometedora que generan la máxima ganancia.
S 1 9 2
D 3 5 7
F 4 11 8
1. Cota Sup (valores de la diagonal): S1+D2+F3 = 1+5+8=14
Cota Sup: 14 S1: S1+D2+F3: 1+5+8=14
S2: S2+D1+F1: 9+3+4=16
S3: S3+D1+F1: 2+3+4=9
S1
D1+F3: 9+3+8=20
S2:
D3+F1: 9+7+4=20
S1
D2+F3: 1+5+8=14 S 2
D 3
D3+F2: 1+7+11=19
S2: F 1
5
Programación lineal entera Programación lineal entera
Representación del problema en RyP Representación del problema en RyP
• Para representar el problema de la programación entera • Para representar el problema de la programación entera
(PE) mediante un método de ramificación y poda debemos (PE) mediante un método de ramificación y poda debemos
apoyarnos en la solución del problema en programación apoyarnos en la solución del problema en programación
lineal (PL), y tener en cuenta los siguientes resultados: lineal (PL), y tener en cuenta los siguientes resultados:
Si el problema no tiene solución en PL tampoco la tiene en Si el problema no tiene solución en PL tampoco la tiene en
PE. PE.
Si el problema en PL da valores enteras a las variables Si el problema en PL da valores enteras a las variables
hemos encontrado la solución en PE hemos encontrado la solución en PE
La solución en PL da un valor de z que es cota de la solución La solución en PL da un valor de z que es cota de la solución
en PE (superior si se maximiza, inferior se si minimiza). en PE (superior si se maximiza, inferior se si minimiza).
6
Programación lineal entera Programación lineal entera
Solución: Solución:
El problema quedaría
• Maximizar 20x1 +10x3 Entonces z=66.6 es el máximo en PL
• cumpliendo 2x1+4x3 <= 15 y
• 6x1+4x3 <= 20, Como el coste_estimado = 66.6, es mejor que -∞
• x1, x3>=0, enteros. tenemos que el nodo se añade a la cola de prioridad.
Como {x2 -->0} no es solución tenemos que calcular el En la siguiente vuelta del bucle consideramos este nodo
coste_estimado. Por ello, se resuelve en PL: y elegimos para hijos dar valor a x1.
Donde la primera ecuación se puede escribir como:
x3 <= 3.75 -0.5x1, y
la segunda x3 <= 5 -1.5x1.
7
Programación lineal entera Programación lineal entera
Solución: Solución:
En la siguiente vuelta se elegirá el nodo, {x2-->0, x1--3} Cont…
por ser el de mayor coste_estimado, y por tanto el que • {x2-->0. x1-->3. x3-->1 }. No es solución porque no cumple
devolverá max de la cola de prioridad. Se considerarán las condiciones (en particular la 2ª) y no es completable.
sus 4 hijos, para x3 en {0,1,2,3} Se desecha.
• {x2-->0. x1-->3. x3-->2 }. No es solución porque no cumple
las condiciones (en particular la 2ª) y no es completable.
• {x2-->0. x1-->3. x3-->0 }. Es solución porque asigna
Se desecha.
todas las variables y cumple las restricciones. Tiene
una coste_real de z=60, que mejora -∞, por lo que • {x2-->0. x1-->3. x3-->3 }. No es solución porque no cumple
las condiciones (en particular la 2ª) y no es completable.
tenemos un nuevo mejor={x2-->0. x1-->3. x3-->0 } y
Se desecha.
un nuevo coste_mejor = 60.
Taller El 8-puzzle