[pyar] [Consulta] Invariante

Juan Manuel Pérez jmperez.85 en gmail.com
Sab Jun 15 12:02:59 ART 2013


Básicamente lo vas a usar cuando necesites formalidad en todo el sentido de
la palabra (como dijeron arriba, cuando necesitás demostrar que algo
funcione). Por ejemplo, casi todos los algoritmos fundacionales de
ordenamiento de arreglos y teoría de grafos se prueban utilizando
invariantes de ciclo.

En el día a día, sirve como una herramienta heurística para pensar cada vez
que escribimos un ciclo.

Saludos,

JM


2013/6/15 SAn <gringotumadre en gmail.com>

> 2013/6/14 Apokalyptica Painkiller <apokalyptica79 en gmail.com>
> >
> > Hola gente vuelvo con oooooooooootra preguntonta, es sobre invariante
> como dice el título.
> >
> > Los invariantes se refieren a estados o situaciones que no cambian
> dentro de un contexto o porción de código.
> > El invariante de ciclo permite conocer cómo llegar desde las
> precondiciones hasta las postcondiciones. El invariante de ciclo es, una
> aseveración que debe ser verdadera al comienzo de cara iteración.
> > Los invariantes son de gran importancia al momento de demostrar que un
> algoritmo funciona, de esta forma es más fácil entender cómo funciona un
> algoritmo y encontrar posibles errores. Además, son útiles a la hora de
> determinar las condiciones iniciales de un algoritmo, ya que también deben
> cumplirse para ese caso.
> >
> > Entiendo lo que dice y más con el siguiente ejemplo:
> >
> > def potencia(a, b):
> >       """ Devuelve la potencia n del número b, con n entero mayor que 0
> """
> >
> >       p = 1
> >       for i in range(n):
> >            p *= b
> >       return p
> >
> > En este caso, el invariante del ciclo es que la variable p contiene el
> valor de la potencia correspondiente a esa iteración. Teniendo en cuenta
> esta condición, es fácil ver que p debe comenzar el ciclo con un valor de
> 1, ya que ese es el valor correspondiente a p0 (elevado a la 0).
> >
> > Mi pregunta es, se usa? Es común su uso?
>
> Entiendo que lo usarias en el estudio de un algorítmo. Por ejemplo si
> tenes que *demostrar* la correctitud de un algoritmo, o tal vez
> simeplemente como una ayuda para entenderlo.
> Tambien podría ser útil si estas trabajando en compiladores y
> optimizaciones.
>
> No se me ocurre una utilidad práctica en el "día a dia del programador".
>
> Alguna otra idea?
> SAn
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130615/1289fdea/attachment.html>


More information about the pyar mailing list