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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

462 Capítulo 20. Esquemas algorítmicos fundam<strong>en</strong>tales<br />

• El ejemplo pres<strong>en</strong>tado obedece a un planteami<strong>en</strong>to matemático con aplicaciones<br />

<strong>en</strong> campos muy diversos. Concretam<strong>en</strong>te, si llamamos k1, . . . , kn al<br />

número de monedas de cada valor v1, . . . , vn respectivam<strong>en</strong>te, el esquema<br />

anterior resuelve el sigui<strong>en</strong>te problema de optimización:<br />

mín<br />

n<br />

ki sujeto a que<br />

i=1<br />

n<br />

kivi = C<br />

que es muy similar al planteami<strong>en</strong>to g<strong>en</strong>eral numérico de esta clase de<br />

problemas: hallar <strong>en</strong>teros no negativos x1, . . . , xn que minimic<strong>en</strong> la función<br />

g(k1, . . . , kn) definida así:<br />

i=1<br />

n<br />

g(k1, . . . , kn) = fi(ki)<br />

i=1<br />

y de manera que se mant<strong>en</strong>ga n i=1 kivi ≤ C.<br />

Nota final<br />

Es importante subrayar que un problema planteado no siempre admite una descomposición<br />

<strong>en</strong> subproblemas indep<strong>en</strong>di<strong>en</strong>tes: <strong>en</strong> otras palabras, antes de expresar<br />

una solución basada <strong>en</strong> tal descomposición, debe comprobarse que se verifica<br />

el principio de optimalidad.<br />

En g<strong>en</strong>eral, la resolución de esta clase de problemas resulta inviable sin la tabulación.<br />

Además, frecu<strong>en</strong>tem<strong>en</strong>te resulta s<strong>en</strong>cillo fijar un ord<strong>en</strong> <strong>en</strong> los cómputos<br />

con lo que, a veces, es posible diseñar un algoritmo iterativo de resolución.<br />

20.4 Vuelta atrás<br />

Consideremos el problema de completar un rompecabezas. En un mom<strong>en</strong>to<br />

dado, se han colocado unas cuantas piezas, y se tantea la colocación de una<br />

nueva pieza. Por lo g<strong>en</strong>eral, será posible continuar de diversos modos, y cada<br />

uno de ellos podrá ofrecer a su vez diversas posibilidades, multiplicándose así las<br />

posibilidades de tanteo. La búsqueda de soluciones es comparable al recorrido<br />

de un árbol, por lo que se le llama árbol de búsqueda (véase el apartado 17.5) o<br />

también espacio de búsqueda.<br />

Por otra parte, el tanteo de soluciones supone muchas veces abandonar una<br />

vía muerta cuando se descubre que no conduce a la solución, deshaci<strong>en</strong>do algunos<br />

movimi<strong>en</strong>tos y regresando por otras ramas del árbol de búsqueda a una posición<br />

anterior. De ahí vi<strong>en</strong>e la d<strong>en</strong>ominación de esta clase de algoritmos: vuelta atrás<br />

o búsqueda con retroceso. 7<br />

7 En inglés, backtrack o backtracking.

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

Saved successfully!

Ooh no, something went wrong!