09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

20.4. Vuelta atrás 467<br />

En el problema de las ocho damas, por ejemplo, se puede limitar el recorrido<br />

de la primera dama a los cuatro primeros escaques, ya que las soluciones correspondi<strong>en</strong>tes<br />

a los otros cuatro son equival<strong>en</strong>tes y deducibles de los primeros por<br />

simetría.<br />

Reord<strong>en</strong>ación de la búsqueda<br />

Cuando lo que se busca no son todas las soluciones, sino sólo una, es interesante<br />

reorganizar las ramas, situando <strong>en</strong> primer lugar las que llevan a un subárbol de<br />

m<strong>en</strong>or tamaño o aquéllas que ofrec<strong>en</strong> mayores espectativas de éxito.<br />

Ramificación y poda<br />

Con frecu<strong>en</strong>cia, el método de búsqueda con retroceso resulta impracticable debido<br />

al elevado número de combinaciones de prueba que aparec<strong>en</strong>. Cuando lo<br />

que se busca es precisam<strong>en</strong>te una solución óptima, es posible reducir el árbol<br />

de búsqueda: suprimi<strong>en</strong>do aquellas fases que, con certeza, avanzan hacia soluciones<br />

no óptimas, por lo que se puede abandonar la búsqueda por esas vías<br />

(ésta es la idea que refleja el nombre 8 de esta técnica). Como consecu<strong>en</strong>cia de<br />

esta reducción del número de soluciones por inspeccionar, se puede producir una<br />

mejora sustancial <strong>en</strong> la efici<strong>en</strong>cia de los algoritmos de búsqueda con retroceso<br />

convirtiéndolos <strong>en</strong> viables.<br />

Por ejemplo, consideremos nuevam<strong>en</strong>te el problema de las ocho damas, pero<br />

con la sigui<strong>en</strong>te modificación: los escaques del tablero están marcados con <strong>en</strong>teros<br />

positivos, y se trata de hallar la posición de las damas que, sin am<strong>en</strong>azarse<br />

<strong>en</strong>tre sí, cubre casillas cuya suma sea mínima. Ahora, si suponemos que se ha<br />

<strong>en</strong>contrado ya una solución (con un valor suma S), <strong>en</strong> el proceso de búsqueda de<br />

las posiciones sigui<strong>en</strong>tes se puede “podar” <strong>en</strong> cuanto una fase intermedia rebase<br />

la cantidad S, ya que se ti<strong>en</strong>e la seguridad de que la solución obt<strong>en</strong>ida al ext<strong>en</strong>der<br />

esa solución no mejorará <strong>en</strong> ningún caso la que ya t<strong>en</strong>emos.<br />

Este ejemplo nos permite resaltar la conv<strong>en</strong>i<strong>en</strong>cia de reord<strong>en</strong>ar la búsqueda:<br />

es obvio que, cuanto m<strong>en</strong>or sea el valor ofrecido por una solución provisional,<br />

mayores posibilidades se t<strong>en</strong>drá de efectuar podas <strong>en</strong> las primeras fases. En<br />

nuestro ejemplo, las posibilidades de reorganizar la búsqueda son dos: establecer<br />

un ord<strong>en</strong> <strong>en</strong>tre las fases y d<strong>en</strong>tro de cada fase.<br />

8 En inglés, branch and bound.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!