Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - Se define la variable/estructura de datos donde se guardará la solución.
- - Se crea el nodo raíz.
- - Se define la cola de prioridad que será la estructura de nodos vivos (nodos que aún no se han podado).
- - Se define una lista donde se guardarán las compleciones directas de un nodo (la llamaré "hijos").
- - Se inicializa la cota.
- - Se crean las compleciones del nodo raíz y se guardan en la cola de prioridad directamente.
- mientras no es vacía la cola de prioridad -->
- nodoPrimero = primer nodo de la cola de prioridad
- si nodoPrimero es una solución -->
- si nodoPrimero tiene mejor estimación que la solución que ya tenemos -->
- asignamos en la variable solución la solución que acabamos de encontrar en nodoPrimero
- la variable cota tendrá el valor de la solución que acabamos de encontrar en nodoPrimero
- sino
- guardamos en "hijos" las compleciones generadas a partir de nodoPrimero
- // COMENTARIO: Ahora recorremos la lista "hijos" y por cada compleción que almacena, miramos si cumple la cota
- no. Si una compleción cumple la cota, se almacena en la cola de prioridad y luego se elimina de "hijos", que
- no cumple la cota, NO se almacena en la cola de prioridad y directamente se elimina de "hijos".
- mientras no es vacío "hijos" hacer:
- si estimarBeneficio( complecionAlmacenadaEnHijos ) <= (O >=, según necesitemos) cota -->
- colaPrioridad.add(complecionAlmacenadaEnHijos)
- hijos.remove( complecionAlmacenadaEnHijos )
- finMientras
- finSino
- colaDePrioridad.remove( nodoPrimero )
- finMientras
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement