Mixed Integer Programming (MIP) es una clase de problemas de optimización matemática donde la función objetivo y las restricciones son lineales, pero algunas o todas las variables de decisión están restringidas a tomar valores enteros (enteros puros o binarios), mientras que otras pueden ser continuas. Esto contrasta con la Programación Lineal (LP), donde todas las variables son continuas. La introducción de variables enteras permite modelar decisiones discretas, como la selección de un recurso entre varios, la asignación de tareas o la presencia/ausencia de una característica, haciendo que los problemas MIP sean NP-hard en el caso general, a diferencia de los problemas LP que pueden resolverse en tiempo polinomial.
MIP se utiliza ampliamente en la industria para resolver problemas complejos de optimización. Por ejemplo, en la logística y cadena de suministro, se aplica para la optimización de rutas de vehículos (Vehicle Routing Problem), planificación de producción y localización de instalaciones (Facility Location Problem). En la energía, se usa para la programación de unidades de generación eléctrica (Unit Commitment) y la optimización de redes de transmisión. En finanzas, ayuda en la optimización de carteras con restricciones de divisibilidad. Herramientas y solvers comerciales como CPLEX (IBM), Gurobi, y FICO Xpress, así como librerías de código abierto como PuLP (Python) y GLPK, implementan algoritmos avanzados (Branch and Bound, Branch and Cut) para resolver problemas MIP de gran escala.
Para un Arquitecto de Sistemas, entender MIP es crucial para diseñar soluciones que requieran optimización de recursos o toma de decisiones complejas. Permite modelar problemas del mundo real con mayor precisión que LP, capturando la naturaleza discreta de muchas decisiones. Sin embargo, el costo computacional es significativamente mayor; un problema MIP puede ser intratable si el número de variables enteras es muy grande. El arquitecto debe evaluar el trade-off entre la precisión del modelo y la viabilidad computacional, considerando si una heurística o una aproximación LP es suficiente, o si la inversión en un solver MIP potente y la infraestructura de cómputo asociada está justificada por el valor de la optimización. También es vital diseñar la interfaz entre el sistema transaccional y el motor de optimización, asegurando la correcta preparación de los datos de entrada y el consumo de los resultados óptimos.