El consultor en investigación operativa es un profesional dedicado al análisis y solución de problemas de optimización derivados de la necesidad de mejorar los procesos existentes en la práctica.
Una de las características claves de un consultor en OR (Operations Research) es su capacidad analítica y su amplia capacidad de extraer modelos de datos, modelos matemáticos y procesos informáticos que representen procesos existentes. La finalidad de los análisis de un COR (Consultor en Investigación Operativa) es modelar procesos pensando en su automatización y optimización.
Cabe destacar que el perfil aquí definido no es el de un consultor en organización empresarial. Las tareas de un COR son las de modelar los procesos y usar técnicas de optimización y estadística para encontrar las mejores formas de operar.
En esta descripción no se encontrará referencia alguna de áreas, industrias o procesos particulares, y esto se debe a que el COR no es un experto en una o varias áreas específicas. El COR es un conocedor de algoritmos y técnicas de optimización, un recurso muy hábil en la elaboración de modelos que definen procesos, el interlocutor entre los conocedores del área y los técnicos encargados del desarrollo de la solución.
Tareas comunes
Para establecer los conocimientos y la experiencia necesaria de un COR, identificaremos las tareas más comunes que realiza.
A la hora de enfrentar un proyecto de investigación operativa es necesario tener en cuenta que, como su nombre lo indica, es un proyecto que tiene cierta carga investigadora. Cada proyecto, problema y proceso posee particularidades específicas del mismo, y todo COR experimentado sabe que las soluciones de OR pueden ser muy sensibles a pequeños cambios.
Una solución de OR lleva asociado uno o varios problemas de optimización, y este problema a su vez tiene asociados modelos matemáticos, algoritmos de resolución y/o búsqueda de soluciones. Por lo general los algoritmos son muy sensibles a las estructuras de los modelos y un pequeño cambio puede ocasionar que un modelo pase de ser resuelto en cuestión de segundos a días. Esta «volatilidad» en la combinación modelo-algoritmo es lo que hace imprescindible la experiencia del COR para identificar los modelos y algoritmos más adecuados para cada situación.
En otras palabras, un COR debe ser capaz de identificar modelos de optimización y algoritmos capaces de resolver el problema en cuestión. Para ello debe poseer un amplio conocimiento de técnicas, modelos, particularidades de los algoritmos, referencias de aplicaciones exitosas, y a veces más importante, referencias de fracasos de modelos y algoritmos.
Conocimientos
Modelos
Durante la definición de una solución de OR es necesario identificar correctamente el modelo requerido para el entorno en cuestión. Un COR debe ser capaz de identificar si es necesaria una solución que obtenga resultados óptimos, que mejore resultados existentes, o que proponga una forma de obtener un resultado a un problema sin solución, etc. Cada una de estas alternativas son encontradas con distintos modelos y algoritmos de resolución, y el COR debe ser capaz de asociar las necesidades del usuario final con las técnicas y modelos de resolución disponibles en las librerías de software existentes.
Simulación y rediseño
Un error común entre los profesionales es confundir herramientas de predicción con herramientas de OR. La investigación operativa puede ser usada para realizar simulaciones sobre posibles escenarios. Estos escenarios son configurados cambiando la base de hechos con los que se construyen los problemas a resolver y en los que se soportan los algoritmos para encontrar soluciones. Las simulaciones no son herramientas de predicción de posibles situaciones, en la OR los resultados de las herramientas de predicción son usados como entrada, o bases de hechos para realizar simulaciones.
Tal y como se mencionó anteriormente, un COR no es un especialista en organización empresarial y diseño de procesos, pero los resultados de las simulaciones en distintos escenarios son claves en el diseño de nuevos procesos o el rediseño de procesos actuales.
Arquitectura Software
Por lo general los algoritmos usados en la OR son costosos en cuanto a recursos informáticos se refiere, principalmente en CPU y memoria. El COR debe ser capaz de definir la arquitectura necesaria para soportar la ejecución e implantación de la solución. Para ello debe tener los conocimientos de software necesarios, así como poseer referencias y la habilidad de estimar las necesidades de hardware requeridas por la solución a diseñar.
Desarrollo Software
Como todo buen consultor técnico, el COR debe poseer conocimientos y experiencia en el desarrollo de software y todo lo que a este rodea: gestión de proyectos, administración de sistemas, lenguajes de programación, control de versiones, herramientas de gestión de tareas, etc.
Habilidades
A continuación de listan las habilidades deseadas en un COR.
- Lenguajes de programación. Son necesarios amplios conocimientos en algún lenguaje de programación, en particular C++ o Java ya que la mayoría de las librerías están escritas en estos lenguajes. Además, son necesarios conocimientos suficientes para desarrollar o al menos dirigir desarrollos en los lenguajes de programación populares como Python y C#.
- Librerías de software. El COR debe ser capaz de recomendar el algoritmo y librería que mejor se ajuste a las necesidades particulares de cada solución. Es por ello que debe tener un amplio conocimiento sobre algunas de las principales librerías de software y estar al tanto de los algoritmos y técnicas de modelado de las librerías secundarias.
- Lenguajes de modelado de problemas. Los fabricantes de librerías de algoritmos de optimización por lo general producen lenguajes específicamente orientados al modelado de problemas de OR. Es deseable que el COR sea capaz de desarrollar los modelos en prácticamente cualquiera de estos.
- Conocimientos de informática. Aunque el COR posee un perfil más similar al de un investigador, es imprescindible que posea conocimientos amplios sobre informática. El COR debe conocer, al menos de forma superficial, la mayoría de las tecnologías de desarrollo e integración de software. Pues sin ellas, es posible que la solución no sea soportada por la arquitectura y/o tecnología escogida por el equipo técnico.
- Técnicas de optimización. Es necesario que el COR posea conocimientos, no necesariamente profundos de las siguientes áreas de optimización, así como estar al tanto de las diferentes librerías que implementan cada una de las técnicas. En casos asilados será labor del COR el desarrollo de alguno de los algoritmos de alguna de las áreas abajo mencionadas.
- Programación entera
- Programación entera mixta
- Programación cuadrática y convexa
- Programación semidefinida
- Programación no lineal
- Algoritmos de grafos
- Flujo en redes
- Métodos de descomposición
- Programación dinámica
- Optimización combinatoria
- Satisfacción de restricciones
- Programación por restricciones
- Búsqueda local y heurísticas
- Algoritmos genéticos
- Algoritmos probabilísticos
- Optimización multiobjetivo
- Desarrollo de software. El COR debe poseer nociones sobre los siguientes aspectos:
- Control de versiones
- Compilación automática
- Control de calidad (Q&A)
- Depuración de programas
- Programación orientada a objetos
- Pruebas unitarias
- XMLBases de datos y SQL
- Programación y diseño cliente-servidor
- Seguridad
- Metodología de desarrollo de software y proyectos
- Herramientas de colaboración
- Programación en paralelo
- Programación distribuida
En nuestro equipo de Inteligencia Analítica contamos con algunos profesionales de este perfil que poseen estas y más habilidades y conocimientos. También tenemos compañeros con perfiles como Data Science, Data Engineer, o Consultores de Investigación Operativa más junior. En decide4AI invertimos en formación y desarrollo profesional para que el talento joven pueda conseguir este conocimiento y nivel de expertise.
Siempre estamos en busca de grandes mentes que incorporar en el área de Investigación Operativa (OR). ¡Echa un vistazo a nuestras posiciones abiertas y aunque no cuadres en ninguna, mándanos tu CV!