Algoritmos como Servicio
'Algorithms are the DNA of software. They codify the macrosteps of how computers already run large parts of the world.' Gartner, Marzo/2016[i]
El DRAE define Algoritmo como 'Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema'.
Es un concepto matemático que pasó a la informática y definió la disciplina científica conocida como Ciencias de la Computación. Dicha disciplina nace, según nos informa la Wikipedia, a principios de 1940 con la confluencia de la teoría de algoritmos, lógica matemática y la invención del programa almacenado en una computadora electrónica.
En general, no hay una manera única de ir desde unos datos de entrada a unos datos de salida, pero sí es muy importante la eficiencia de un algoritmo. Como medida de dicha eficiencia, se suelen estudiar los recursos (memoria y tiempo de proceso) que consume el algoritmo. Un buen algoritmo implica tiempo de desarrollo, no sólo para conseguir que sea eficaz, sino para que sea eficiente.
Todo programa contiene al menos un algoritmo. Hay muchos muy sencillos ('parsear' los caracteres de una palabra, calcular la media aritmética, ...); otros más complicados y clásicos (los ‘sorts’ que se enseñan a los estudiantes de Informática); otros aún más complicados (algoritmo de la mochila, ...). Muchos son públicos, algunos son muy antiguos (la criba de Eratóstenes, ...) y otros muy recientes. Hay libros y colecciones (repositorios) de algoritmos. Los hay de código abierto y otros tienen propietario.
Los algoritmos codifican y encapsulan de una manera reutilizable propiedad intelectual de una empresa o conocimiento. Por citar algunos relevantes, los de búsqueda de Google, o de los que hace uso Amazon para recomendarnos otras compras, o los de las empresas de búsqueda de pareja, resaltando en estos momentos los de 'Aprendizaje Profundo' o 'Deep Learning' para Inteligencia Artificial, en los que que están invirtiendo mucho dinero empresas como la ya mencionada Google, IBM o Apple.
Otros ejemplos de algoritmos los tenemos, por ejemplo, en el mundo financiero. Las llamadas operaciones de alta frecuencia o HTF ('High Frequency Trading') que realizan ordenadores, lo que hacen es comprar y vender en literalmente milisegundos todo tipo de activos financieros en base a algoritmos para conseguir un beneficio en cada operación, tal y como explica el BBVA. La eficiencia y la eficacia de dichos algoritmos son vitales dado el volumen de dinero que mueven y, además, son secretos, con el fin de que nadie se adelante a los movimientos que una entidad vaya a realizar. En 2009 un ex-programador de Goldman Sachs fue detenido por el FBI, acusado de robar algoritmos; antes de irse de la entidad a Teza Technologies, empresa de HTF, se descargó en un servidor de Alemania los códigos.
Hay todo un debate internacional (y oposición UE–EEUU) sobre la patentabilidad de los algoritmos y formas alternativas de protegerlos.
Pese a su enorme difusión, hay una gran cantidad de muy buenos algoritmos desarrollados en las universidades y en los centros de investigación y apenas utilizados, que languidecen en las revistas donde se publican, a las que acceden, normalmente, otros académicos, pero que no llegan a la empresa.
Diego Oppenheimer y Kenny Daniel [ii] fueron muy conscientes de este hecho, el primero mientras trabajaba para Microsoft donde ayudaba a diseñar funcionalidades de análisis de datos para herramientas como Excel, y para lo que buscaba los mejores algoritmos para integrar en las aplicaciones, y el segundo, mientras realizaba su doctorado en inteligencia artificial en la 'University of Southern California', habiendo publicado para este fin muchos algoritmos muy bien aceptados por el mundo académico pero con poca oportunidad de que llegaran a las aplicaciones de empresas privadas. Para dar salida a todo esto, fundaron en el 2013 una empresa llamada "Algorithmia", una 'app store' para algoritmos.
La idea era, por una parte, dar a los creadores una oportunidad para que sus algoritmos se utilizaran fuera del ámbito académico y ganar dinero por ello, vendiéndolos bien como código abierto para que el comprador lo integre en sus aplicaciones, o por uso como un servicio en la nube.
Por otra parte, se proponían ofrecer a las empresas unos algoritmos para sus aplicaciones y funciones de negocio, a un precio asequible, ya que no todas las empresas tienen la capacidad ni los recursos para crear algoritmos optimizados y encontrar las mejores soluciones a sus problemas, como las ya mencionadas Google o Amazon, o la misma Goldman Sachs.
Esto supone un nuevo negocio, en primer lugar para desarrolladores, que pueden ser creadores individuales no necesariamente ligados al mundo académico, y que de esta forma pueden obtener dinero de sus creaciones; y en segundo lugar, para las plataformas que sirven de punto de contacto entre los desarrolladores y los usuarios de los algoritmos.
Además, esto facilita a cualquier empresa su uso para resolver problemas de su negocio, como funciones analíticas, asistentes virtuales, o cualquier otro, contribuyendo a la digitalización de su organización.
Pero habría quizás que controlar de alguna manera la calidad del software que se pone en esas plataformas, con el fin de ofrecer la mejor calidad al cliente en cuanto a eficacia -que haga lo que dice que hace-, eficiencia, transparencia -que no haga más que lo que dice que hace y lo haga según los parámetros de eficiencia declarada-, y seguridad. Esa garantía de calidad debe probablemente basarse en código abierto, amplia y fácilmente asequible al escrutinio de la comunidad profesional; y en el recurso a normas y auditorías adecuadas.
Un mercado nuevo a tres bandas que debe regularse para que todos salgamos ganando sin que alguna de las partes domine a las otras.
***
Este artículo fué publicado originalmente por ComunicacionesHoy, nº 151, 5-04-2016. Referencia: Tendencias/IaaS. Opinión, pg.52 – "Algoritmos como Servicio" – María José de la Calle.
-------------------------------
[i] Bennett, Jo (March/11/2016) "Preparing for Algorithms and Autonomous Business". Smarter With Gartner. url [a 13-03-2016] http://www.gartner.com/smarterwithgartner/algorithms-autonomous-business/
[ii] Finley, Klint (08-11-14). "Wanna Build Your Own Google? Visit The App Store For Algorithms". Wired. url [a 13-03-2016] http://www.wired.com/2014/08/algorithmia/
Comments (0)