Cómo explicar lo que es un algoritmo para que lo entienda tu madre

Seguramente no es la primera vez que escucha la palabra ‘algoritmo’, un concepto inherente al de la Inteligencia Artificial, tan de moda por la explosión de las capacidades informáticas y la bajada del coste computacional -de los chips, básicamente-. Para que exista esa ‘inteligencia’ es imprescindible el desarrollo de muchas líneas de código. De programación, de servicios conectados entre sí. Pero, ¿qué es exactamente un algoritmo? Podríamos definirlo como un conjunto de instrucciones orientado a la resolución de un fin o problema. En INLAB Digital somos especialistas en el desarrollo de algoritmos propios. Utilizaremos un coche para explicar cómo funcionan este tipo de sistemas. Se trata de un ejemplo con el que hemos participado en el blog Think Big de Telefónica, un referente en el sector tecnológico.

La familia Martínez vive en Madrid y quiere pasar unos días de asueto en Santander. Durante el trayecto, el vehículo debe transitar por las vías correspondientes, se han de tomar los desvíos apropiados y hay que tener en cuenta aspectos como el nivel de gasolina, las paradas para descansar o el estado de la calzada, además de otras situaciones intempestivas, como el pinchazo de una rueda, una avería o, en el peor de los casos, un accidente. El algoritmo que gobierna el coche no es más -ni menos- que la herramienta (líneas de código) que permiten al vehículo tomar las decisiones adecuadas en cada momento.

Antes de hacer el viaje, el algoritmo tiene que ser entrenado. ¿Cómo? Con datos. Cuanta más información sea posible volcar sobre el sistema, más preciso y efectivo será. Cartografía, mapas de carretera, previsión meteorológica, estado del vehículo, años del conductor y de la licencia de conducir, información sobre el descanso previo al viaje… Todo aquello registrado en viajes anteriores tanto por el mismo como por cualquier otro vehículo sirve para alimentar el algoritmo. Se trata de conocer las situaciones que pueden darse durante la ruta, para anticiparse a cada una de ellas y encontrar soluciones a problemas.

Uno de los sucesos con los que se componen los algoritmos son las denominadas sentencias condicionales o ‘If’. Su traducción literal al español es ‘si’. Consiste en tomar decisiones en función de los datos con que se ha alimentado el algoritmo. El vehículo que nos ocupa ya se encuentra en marcha circulando por la M30 y pretende encontrar la A1 para dirigirse a Santander. Cuando aparece un cartel informativo, el sistema lo lee y establece dos posibilidades: ‘Si el cartel incluye las letras A1, toma la salida’. ‘Si no las incluye, continúa circulando por la M30’. Como dispone de un detallado mapa de carreteras de España, conseguirá su propósito; tomará la salida A1 en cuanto la identifique. La importancia de la calidad de la información suministrada previamente es muy importante. Si los mapas no están actualizados o son incorrectos el vehículo podría tomar la ruta equivocada. Son cosas que pueden solucionarse por el camino estableciendo otro ‘If’. ‘Si falta algún mapa, envía una alerta al programador’. Recibido el aviso, el desarrollador facilitará las coordenadas al sistema, que se guardarán para futuros viajes. El problema no se repetirá.

El algoritmo se diseña sobre lo que se llama un diagrama de flujo. Sería al equivalente a los planos que un arquitecto elabora antes de que construir un edificio. Es un conjunto gráfico de cajas de texto unidas entre sí, como si de un laberinto se tratará, que detallan cada situación concreta con la decisión que se ha de tomar. Es el paso previo a la escritura del código informático, el lenguaje que entienden los ordenadores para ejecutar órdenes y resolver problemas (en este caso, llegar a Santander).

El sistema preguntará periódicamente durante la ruta sobre aspectos como la temperatura del motor, la gasolina disponible, el tiempo al volante del conductor, las necesidades de los acompañantes… En resumen, sobre todo aquello que haya considerado el programador con los datos disponibles en torno al problema que se tiene que resolver. Se tomarán decisiones en función de las respuestas. Si hay suficiente gasolina y el conductor lleva menos de dos horas al volante, no se detendrá. Si no hay combustible, se dará la orden de reducir la velocidad para controlar el consumo hasta encontrar una gasolinera. De hecho, es posible entrenar al algoritmo para que gestione velocidad y el consumo para llegar de forma holgada a la gasolinera. O para alcanzar el destino cuanto antes -dentro de los límites legales- aumentando la velocidad, con el consiguiente incremento del consumo. Todo se puede ajustar a las necesidades del viajero (del usuario o cliente del algoritmo).

Un algoritmo será más o menos eficaz en función de todas las variables que se incluyan en su desarrollo y del entrenamiento al que sea sometido. Información, probabilidades de que se den situaciones concretas o la ejecución de órdenes para solucionar cada incidencia están detrás de la precisión y fiabilidad de un algoritmo que, como en el caso de los humanos, tendrá la capacidad de aprender de la experiencia. La automatización de procesos, además, dificultará que tropiece dos veces en la misma piedra. El objetivo es que los Martínez lleguen de la mejor manera posible a Santander, ajustando el trayecto a sus necesidades: tiempo, economía, comodidad, tipo de vehículo, etcétera, y, de paso, aprender para afinar aún más todavía para el siguiente itinerario.

B
This site is registered on wpml.org as a development site.