Historias
Slashboxes
Comentarios
 

La hormiga, una gran aliada del software

editada por nettizen el Miércoles, 30 Mayo de 2012, 11:50h   Printer-friendly   Email story
desde el dept. el-arca-de-Noé
Alejandro nos cuenta: «Según se puede leer en el artículo 'La hormiga, una gran aliada del software', el comportamiento de las hormigas ha servido de inspiración para que los investigadores del grupo NEO de la Universidad de Málaga diseñaran algoritmos basados en colonias de hormigas capaces de encontrar en un ordenador la secuencia de pasos más corta que hace que un programa falle. Las 'hormigas artificiales', es decir, los agentes que simulan a una hormiga real en el ordenador, deben buscar el error como si fuera la comida, guiadas por feromonas artificiales y por información adicional que el propio programa proporciona para ayudarlas a llegar a su objetivo.»

Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • ant build

    (Puntos:1, Informativo)
    por pobrecito hablador el Miércoles, 30 Mayo de 2012, 12:49h (#1310724)
    Sin duda [apache.org], aunque poco a poco siendo reemplazada por "expertos en campos especificos" [wikipedia.org].
    [ Responder ]
  • por pobrecito hablador el Miércoles, 30 Mayo de 2012, 12:49h (#1310725)
    El enlace lleva al enlace original donde se puede ver que el artículo es del 2007. Muy novedosa no parece la cosa.

    Ademá, ya que es un trabajo realizado en una universidad pública ¿Por qué no un enlace al documento sin tener que pagar 40 dólares? ¿Existe tal enlace?

    Mientras tanto universidades privadas yanquis ofreciendo cursos y profesores gratuitamente a cualquier persona que lo desee.

    P.D. 1: accediendo a la web del profesor veo un enlace pero también a un artículo de pago

    P.D. 2: menuda cutrez la web del profesor; lo de los gifs animados para el correo ya dan vergüenza ajena
    [ Responder ]
  • Re:Es imposible

    (Puntos:1)
    por asierguti (36420) el Miércoles, 30 Mayo de 2012, 16:26h (#1310755)
    Totalmente de acuerdo. Mas dinero gastado en investigaciones inutiles.

    Seguramente el profesor no tenga mucha experiencia testeando software, por que si tiene la mas minima experiencia, se dara cuenta que ha perdido horas haciendo un estudio que no va a mejorar la calidad de los tests.
  • No es imposible

    (Puntos:3, Informativo)
    por morpheus17 (39734) el Miércoles, 30 Mayo de 2012, 18:49h (#1310777)
    ( http://laposadademorpheus.blogspot.com/ | Última bitácora: Miércoles, 18 Abril de 2012, 18:24h )
    Aunque no soy un experto en teoría de la computación (la aprobé por los pelos), es un tema que me resulta interesante y me gustaría hacer un par de puntualizaciones (si es que mi memoria no me falla):

    En primer lugar, creo que confundes el problema de la parada, que es indecidible y semi-decidible, con su inverso, es decir, un programa que diga si un programa se colgará, que ni tan siquiera es semi-decidible. En el primer caso, puedes hacer un programa que simplemente ejecute el otro; si para, ya has acabado, y puedes afirmar que en algún momento para, pero si no lo hace, no puedes afirmarlo hasta que pare. En el segundo, sin embargo, no puedes asegurarlo, pues si para, podrías decir que para, pero no estarías respondiendo a la pregunta, pero si no lo hace, no puedes asegurar que en un futuro no pare (tras lo que se supondría un cómputo finito casi eterno); se podría decir que tendrías que esperar hasta el infinito para responder, lo cual lo hace imposible. Esto no es una demostración, pero he tratado de hacerlo más o menos entendible.

    Por otra parte, la cuestión no es si este algoritmo demuestra que un programa se cuelga, sino que se trata de una herramienta que trata de indicar o encontrar los puntos más conflictivos (según he entendido en un vistazo rápido al artículo) que llevan a error, o de encontrarlos; esto es, semi-decidir que hay errores: si los hay, en algún momento indeterminado el programa los encontrará, pero si no los hay, y no le has puesto un tiempo máximo, se quedará colgado.

    Así pues, la innovación con este enfoque es el uso de esta clase de algoritmo que, si encuentra errores, consigue hacerlo, supuestamente, de la manera más corta posible; sobre esta última afirmación puedo aceptar que sea exagerada, pero no creo que entre en contradicción con lo que dijo Alan Turing (pudiera ser que la manera más corta de encontrar un error al programa fuese prácticamente infinita).

    En cuanto la cita de Knuth (las pruebas sirven para demostrar que un programa falla, pero es imposible demostrar que un programa no falla), estoy en desacuerdo: podrías demostrar que *un* programa no falla (un hello world seria un ejemplo), lo que no puedes es tener un programa o una metodología que demuestre si *cualquier* programa no falla; de hecho, creo recordar que esta fue una de las preguntas que hicimos en clase. Es más, se puede demostrar que algunos programas se cuelgan (un while(1) sería un ejemplo).

    Espero haber arrojado algo de luz, y no haberme equivocado.

    Si alguien quiere más información sobre la indecibilidad y la semi-decibilidad, el coordinador de la asignatura (Guillem Godoy [upc.edu]) elaboró unos vídeos [youtube.com] sobre el tema: indecibilidad [youtube.com] y semi-decibilidad [youtube.com].
  • 5 respuestas por debajo de tu umbral de lectura actual.