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.

220 Capítulo 10. Introducción a la recursión<br />

Asimismo, la verificación de las llamadas a subprogramas recursivos se hará<br />

igual que <strong>en</strong> el resto de los subprogramas, estableci<strong>en</strong>do las precondiciones y<br />

postcondiciones de éstas <strong>en</strong> base a las precondiciones y postcondiciones de los<br />

subprogramas llamados.<br />

Por otra parte estudiaremos la corrección de la definición del subprograma.<br />

En esta tarea lo natural es plantearse el proceso de verificación (o corrección,<br />

según el caso) habitual, es decir, especificar las precondiciones y postcondiciones<br />

de cada una de las instrucciones implicadas, y <strong>en</strong> base a ellas y a su adecuado<br />

<strong>en</strong>cad<strong>en</strong>ami<strong>en</strong>to demostrar la corrección. Pero <strong>en</strong> el caso de un subprograma<br />

recursivo nos <strong>en</strong>contramos que, para al m<strong>en</strong>os una de las instrucciones (aquélla<br />

<strong>en</strong> la que aparece la llamada recursiva), no se ti<strong>en</strong>e demostrada la corrección (de<br />

hecho es esa corrección la que int<strong>en</strong>tamos demostrar).<br />

Para salir de este ciclo recurrimos a técnicas inductivas de demostración.<br />

10.4.1 Principios de inducción<br />

Informalm<strong>en</strong>te, podemos decir que estos principios permit<strong>en</strong> afirmar una propiedad<br />

para todo elem<strong>en</strong>to de un conjunto (pre)ord<strong>en</strong>ado, si se dan ciertas condiciones.<br />

Así, si suponi<strong>en</strong>do el cumplimi<strong>en</strong>to de la propiedad para los elem<strong>en</strong>tos<br />

del conjunto m<strong>en</strong>ores que uno dado podemos demostrar la propiedad para el<br />

elem<strong>en</strong>to <strong>en</strong> cuestión, afirmaremos que todo elem<strong>en</strong>to del conjunto verifica la<br />

propiedad.<br />

La formalización más simple y conocida del Principio de Inducción se hace<br />

sobre el conjunto de los números naturales y es la sigui<strong>en</strong>te:<br />

Si t<strong>en</strong>emos que<br />

Hipótesis de inducción: 0 cumple la propiedad P<br />

Paso inductivo: Para todo x > 0, si x − 1 cumple la propiedad P , <strong>en</strong>tonces x<br />

cumple la propiedad P<br />

Entonces<br />

Para todo y ∈ IN, y cumple la propiedad P .<br />

La relación <strong>en</strong>tre inducción y recursión queda clara: la hipótesis de inducción<br />

se corresponde con el caso base, y el paso inductivo con el caso recurr<strong>en</strong>te.<br />

Por ejemplo, este principio se puede aplicar para demostrar que el número<br />

N de elem<strong>en</strong>tos del conjunto P(E), donde E repres<strong>en</strong>ta un conjunto finito de n<br />

elem<strong>en</strong>tos y P(E) es el conjunto de las partes de E, es 2 n .<br />

Como caso base t<strong>en</strong>emos que para n = 0, es decir, para E = ∅, se ti<strong>en</strong>e que<br />

P(E) = ∅, y por tanto N = 1 = 2 0 .

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

Saved successfully!

Ooh no, something went wrong!