domingo, 16 de diciembre de 2007

La rapidez de Velneo

Hace unos años, cuando me encontraba desarrollando un Sistema de Información Geográfica para el Ayuntamiento de Valencia, tuve la oportunidad de conocer a una empresa de Bilbao que había desarrollado un SIG para esa ciudad.

Me enseñaron el sistema en funcionamiento y era realmente rápido.

El problema en sí era bastante sencillo; cuál es la ruta óptima para ir de un sitio a otro de la ciudad?

Si planteamos los diferentes sitios de la ciudad (paradas de bus y metro) como nodos de una red topológica, y las rutas entre ellos (trazado de las líneas de bus y metro) como enlaces entre los nodos, el camino óptimo para ir de un sitio a otro es algo así como la resolución del típico problema del "Traveling Salesman Problem".


La resolución de este problema implica un algoritmo en cuyo cálculo se invierte bastante tiempo, y la respuesta casi inmediata del sistema de los de Bilbao me extrañaba bastante.

Como había confianza me revelaron el secreto: "No calculamos la ruta óptima para ir de un sitio a otro. Como las posibilidades no son infinitas, las hemos calculado todas y las tenemos almacenadas. Así cuando alguien pide una ruta sólo hemos de buscarla entre las ya calculadas y mostrarla".

Al principio pensé; "Qué brutos!!!", pero bueno, teniendo en cuenta que eran de Bilbao...

Con el tiempo me dí cuenta del acierto de su razonamiento.

Por otra parte estaba enseñando Velneo al que en su día fué responsable de Atari España, excelso programador C, personaje que considero más que cualificado para aportar una opinión relevante sobre la herramienta, y me dijo: "Velneo hace trampa, calcula los índices y los almacena".

Y es cierto, Velneo calcula los índices y los guarda en disco (ficheros .idx) de forma que ya tiene calculadas y almacenadas las respuestas a cualquier posible consulta sobre la base de datos antes de que la formules.

Como los de Bilbao.

Esa es una de las razones que hacen que Velneo sea una de las bases de datos más rápidas del mercado; los índices.

Life is soft!

No hay comentarios:

Publicar un comentario