Frogames
← All articles Programación lineal: Guía completa 2026 ultimate-guide

Programación lineal: Guía completa 2026

Tabla de Contenidos

Última actualización: 15 de octubre de 2026

Qué es la programación lineal y para qué sirve

La programación lineal es un método matemático que permite optimizar (maximizar o minimizar) una función objetivo sujeta a restricciones lineales. En otras palabras, resuelve problemas donde buscas el mejor resultado posible dentro de límites específicos, y tanto la función objetivo como las restricciones se expresan mediante ecuaciones o inecuaciones lineales.

Resuelve problemas de matemáticas con Python y Sage desde cero
Resuelve problemas de matemáticas con Python y Sage desde cero

Esta técnica es fundamental en campos como la logística, la manufactura, la planificación financiera y la asignación de recursos.

En Frogames entendemos que aprender programación lineal abre puertas a especializaciones en inteligencia artificial, análisis de datos y optimización empresarial. Nuestras rutas de aprendizaje estructuradas te llevan desde los fundamentos hasta aplicaciones complejas, con títulos verificables que reconocen el mercado.

Elementos fundamentales de la programación lineal

Todo problema de programación lineal contiene cuatro componentes esenciales:

  • Variables de decisión: incógnitas que representan las cantidades a determinar
  • Función objetivo: la expresión matemática que se maximiza o minimiza
  • Restricciones: limitaciones que deben cumplirse simultáneamente

Estos elementos trabajan juntos para definir un espacio de soluciones posibles. La programación lineal busca el punto dentro de ese espacio que optimiza el resultado deseado.

Formulación matemática: variables, función objetivo y restricciones

La formulación correcta es donde muchos estudiantes se atascan. Traducir un problema verbal a un modelo matemático requiere precisión y práctica estructurada.

Variables de decisión y coeficientes

Las variables de decisión representan las cantidades desconocidas que controlas.

Los coeficientes son los números que acompañan a cada variable. En una función de costos, el coeficiente podría ser el precio unitario o el costo de producción.

La precisión aquí determina si tu modelo refleja la realidad o no. Coeficientes incorrectos generan soluciones óptimas que fallan en la práctica.

Función objetivo: maximizar o minimizar

La función objetivo es la expresión que quieres optimizar. Típicamente toma la forma:

Maximizar Z = c₁x₁ + c₂x₂ + ... + cₙxₙ

O bien minimizar la misma expresión. Los problemas de maximización suelen buscar ganancias, ingresos o eficiencia. Los de minimización persiguen reducir costos, tiempo o desperdicio.

La función objetivo debe ser una combinación lineal de las variables de decisión. No puedes incluir términos cuadráticos, productos entre variables, o funciones no lineales. Esta restricción es lo que hace que el problema sea "lineal" y resoluble mediante algoritmos eficientes.

Sistema de restricciones lineales

Las restricciones expresan los límites del problema. Podrían ser:

  • Disponibilidad de materia prima: 2x₁ + 3x₂ ≤ 100
  • Capacidad de producción: x₁ + x₂ ≤ 50
  • Demanda mínima: x₁ ≥ 10

Cada restricción es una inecuación o ecuación lineal. El conjunto completo de restricciones define la región factible: el espacio donde todas las condiciones se cumplen simultáneamente.

Tipo de Restricción Ejemplo Significado
Desigualdad ≤ 2x + 3y ≤ 100 No exceder disponibilidad
Desigualdad ≥ x ≥ 10 Cumplir requisito mínimo
Igualdad = x + y = 50 Usar exactamente cantidad
No negatividad x, y ≥ 0 Variables reales no negativas

Método gráfico de programación lineal paso a paso

El método gráfico funciona para problemas con dos variables de decisión. Visualiza el espacio factible y la función objetivo, permitiéndote encontrar la solución óptima observando dónde se intersectan.

Estudiante trabajando en una mesa con portátil abierto, papel cuadriculado con gráficos de restricciones lineales dibujados a mano, notas de cálculo dispersas, y una taza de café al lado en ambiente de estudio iluminado naturalmente
Estudiante trabajando en una mesa con portátil abierto, papel cuadriculado con gráficos de restricciones lineales dibujados a mano, notas de cálculo dispersas, y una taza de café al lado en ambiente de estudio iluminado naturalmente

Representación gráfica de restricciones

Comienza por representar cada restricción como una recta en el plano cartesiano. Para la restricción 2x + 3y ≤ 100:

  1. Convierte la desigualdad en igualdad: 2x + 3y = 100
  2. Encuentra dos puntos que satisfagan la ecuación (ej: cuando x=0, y=33.33; cuando y=0, x=50)
  3. Dibuja la recta que pasa por estos puntos
  4. Determina qué lado de la recta satisface la desigualdad (generalmente sombreando)

Repite este proceso para cada restricción. La región donde todos los sombreados se superponen es tu región factible.

Identificación de la región factible y puntos extremos

La región factible es el conjunto de todos los puntos que satisfacen simultáneamente todas las restricciones. Es un polígono convexo cuyos vértices (puntos extremos) son candidatos a ser la solución óptima.

Esto es crucial: en programación lineal, la solución óptima siempre se encuentra en un vértice de la región factible. Nunca en el interior.

Los vértices se encuentran resolviendo sistemas de ecuaciones donde se intersectan las rectas de restricción.

Método Simplex paso a paso: el algoritmo de optimización

Cuando los problemas tienen más de dos variables, el método gráfico es imposible. El método Simplex es el algoritmo estándar que resuelve estos casos complejos de forma sistemática.

Estructura del tableau Simplex

El tableau Simplex es una tabla que organiza toda la información del problema. Contiene:

  • Las variables de decisión
  • Las variables de holgura (que convierten inecuaciones en ecuaciones)
  • Los coeficientes de la función objetivo

La estructura típica es:

Base x₁ x₂ s₁ s₂ Valor
s₁ 2 3 1 0 100
s₂ 1 1 0 1 50
Z -5 -4 0 0 0

Las variables de holgura (s₁, s₂) representan la cantidad de recurso no utilizado. Al resolver, estas variables entran y salen de la base iterativamente.

Iteraciones hasta la solución óptima

El algoritmo Simplex sigue estos pasos:

  1. Identifica la columna pivote (la variable con el coeficiente más negativo en la fila Z)
  2. Identifica la fila pivote (la que tiene el menor cociente positivo entre valor y coeficiente de la columna pivote)
  3. Realiza operaciones de fila para convertir el elemento pivote en 1 y el resto de la columna en 0
  4. Repite hasta que no haya coeficientes negativos en la fila Z

Cada iteración mejora el valor de la función objetivo. Cuando todos los coeficientes en la fila Z son no negativos, has encontrado la solución óptima.

Un estudio de la Universidad de Tilburg sobre asignación de tutores mediante programación lineal entera demostró cómo estos algoritmos resuelven problemas de asignación del mundo real con múltiples restricciones simultáneamente.

Resuelve problemas de matemáticas con Python y Sage desde cero →

Ejercicios de programación lineal resueltos: ejemplos prácticos

Los ejercicios concretos consolidan el aprendizaje. Aquí mostramos dos casos reales donde la programación lineal genera decisiones medibles.

Problema de asignación de recursos en producción

Una empresa fabrica dos productos: sillas (x₁) y mesas (x₂). Cada silla requiere 2 horas de carpintería y 1 hora de acabado. Cada mesa requiere 1 hora de carpintería y 2 horas de acabado. Dispone de 40 horas de carpintería y 50 horas de acabado por semana.

Formulación:

  • Maximizar Z = 30x₁ + 40x₂
  • Sujeto a: 2x₁ + x₂ ≤ 40 (carpintería)
  • x₁ + 2x₂ ≤ 50 (acabado)

Solución gráfica: Los vértices de la región factible son (0,0), (20,0), (0,25), y (10,20). Evaluando la función objetivo:

  • En (10,20): Z = 30(10) + 40(20) = 1.100 EUR

La solución óptima es producir 10 sillas y 20 mesas, generando una ganancia semanal de 1.100 EUR.

Optimización de costos en logística

Una empresa de distribución necesita transportar 1.000 paquetes. Puede usar camiones pequeños (costo 200 EUR, capacidad 50 paquetes) o camiones grandes (costo 350 EUR, capacidad 150 paquetes). Debe entregar en máximo 8 viajes.

Formulación:

  • Minimizar Z = 200x₁ + 350x₂
  • Sujeto a: 50x₁ + 150x₂ ≥ 1.000 (capacidad mínima)
  • x₁ + x₂ ≤ 8 (número máximo de viajes)

Solución: El punto óptimo es usar 2 camiones grandes y 4 camiones pequeños, con costo total de 1.500 EUR.

Software para programación lineal: herramientas y plataformas

Resolver problemas manualmente es didáctico pero impracticable para sistemas complejos. Las herramientas modernas automatizan el proceso.

Herramientas especializadas y librerías de código abierto

Python con PuLP: Una librería gratuita que define y resuelve problemas de programación lineal.

Excel Solver: Herramienta integrada en Excel que resuelve problemas de optimización sin necesidad de programación.

GAMS (General Algebraic Modeling System): Lenguaje especializado para formular problemas de optimización complejos.

R con lpSolve: Paquete que permite resolver problemas de programación lineal desde R, ideal para análisis integrados.

En Frogames, nuestros cursos de matemáticas avanzadas incluyen formación práctica con estas herramientas. El curso Resuelve problemas de matemáticas con Python y Sage desde cero (24,99 EUR) te enseña a automatizar cálculos matemáticos complejos. Si buscas profundidad en optimización matemática, el Curso completo de álgebra lineal (49,99 EUR) cubre los fundamentos teóricos que sustentan la programación lineal.

Curso completo de álgebra lineal - RStudio, Python y Octave
Curso completo de álgebra lineal - RStudio, Python y Octave

Interpretación económica y análisis de sensibilidad

La solución óptima no es solo un número. Entender qué significa económicamente y cómo cambia ante variaciones es crítico para decisiones empresariales.

Los precios sombra (dual values) indican cuánto mejoraría la función objetivo si relajas una restricción en una unidad.

Los rangos de optimalidad muestran el intervalo dentro del cual los coeficientes de la función objetivo pueden variar sin cambiar la solución óptima.

Limitaciones de la programación lineal y cuándo no usarla

La programación lineal es poderosa pero no universal. Conocer sus límites evita aplicarla donde no corresponde.

Incertidumbre: La programación lineal asume que todos los parámetros (costos, capacidades, demandas) son conocidos con certeza.

Dinámicas temporales: Si el problema cambia a lo largo del tiempo (demanda varía por temporada), la programación lineal estática es insuficiente.

Reconocer cuándo un problema sale del alcance de la programación lineal es tan importante como saber aplicarla.

Preguntas Frecuentes

¿Qué es la programación lineal y para qué sirve en la práctica?

La programación lineal es un método matemático para optimizar recursos limitados maximizando o minimizando una función objetivo sujeta a restricciones lineales. Se aplica en producción para asignar máquinas y materia prima, en logística para minimizar costos de transporte, en finanzas para asignación de carteras, y en asignación de tutores en universidades. Permite tomar decisiones basadas en datos cuando los recursos son escasos y los objetivos son cuantificables.

¿Cuál es la diferencia entre el método gráfico y el método Simplex?

El método gráfico funciona para problemas con 2 variables: se representan las restricciones en un plano, se identifica la región factible y se evalúan los vértices para encontrar la solución óptima. El método Simplex es un algoritmo iterativo que resuelve problemas con muchas variables usando un tableau algebraico, realizando pivotes hasta alcanzar la solución óptima. El método gráfico es intuitivo pero limitado; el Simplex es potente y escalable para problemas complejos.

¿Cuáles son los elementos principales que necesito para formular un problema de programación lineal?

Necesitas cuatro elementos: variables de decisión (qué vas a optimizar), función objetivo (qué quieres maximizar o minimizar), restricciones lineales (limitaciones de recursos expresadas como inecuaciones), y parámetros (coeficientes numéricos). Por ejemplo, en un problema de producción: variables son unidades a fabricar, función objetivo es ganancia total, restricciones son horas disponibles y capacidad, y parámetros son precios y tiempos de producción.

¿Qué herramientas puedo usar para resolver problemas de programación lineal sin hacer cálculos manuales?

Puedes usar librerías como SciPy (scipy.optimize.linprog en Python), CPLEX, Gurobi, o LINGO para problemas grandes. Para aprender y practicar, Sage en Python es excelente: resuelve problemas de optimización y ahorra horas de cálculo en álgebra y sistemas de ecuaciones. Frogames ofrece cursos en 'Resuelve problemas de matemáticas con Python y Sage desde cero' (24,99€) y 'Métodos Numéricos con Python' (39,99€) donde aprenderás a implementar estos algoritmos.

¿Cuándo no debo usar programación lineal?

No uses programación lineal si tu problema es no lineal (relaciones exponenciales, multiplicativas o cuadráticas entre variables), si hay incertidumbre aleatoria en los parámetros sin datos históricos, o si necesitas optimizar múltiples objetivos conflictivos sin una jerarquía clara. Tampoco es adecuada para decisiones cualitativas o cuando las restricciones no pueden expresarse como ecuaciones e inecuaciones lineales. En estos casos, considera programación no lineal, estocástica o métodos heurísticos.

¿Qué es la región factible en programación lineal?

La región factible es el conjunto de todos los puntos que satisfacen simultáneamente todas las restricciones lineales del problema. Es la intersección de los semiplanos definidos por cada restricción. La solución óptima siempre se encuentra en un vértice (punto extremo) de esta región. Si la región es vacía, el problema no tiene solución; si es ilimitada en la dirección de optimización, la solución es infinita.

¿Cómo interpreto los resultados de un análisis de sensibilidad en programación lineal?

El análisis de sensibilidad te muestra cuánto pueden variar los coeficientes de la función objetivo o los valores de las restricciones sin que cambie la solución óptima. Te indica rangos de precios, costos o disponibilidad de recursos dentro de los cuales tu decisión sigue siendo válida. Por ejemplo, si el precio de un producto puede cambiar entre 50€ y 75€ sin afectar la solución, tienes flexibilidad en negociaciones. Esto es crucial para tomar decisiones robustas ante incertidumbre.


Dominar programación lineal abre acceso a roles en optimización empresarial, análisis de operaciones e investigación operativa. En Frogames, nuestras rutas de aprendizaje te estructuran desde conceptos fundamentales hasta aplicaciones con herramientas profesionales, con títulos verificables que el mercado reconoce. Accede a nuestros cursos de matemáticas avanzadas y desarrolla las habilidades que demandan las empresas líderes en optimización y análisis de datos.