La programación lineal entera (PLE) es una caso especial de los problemas de [Programación Lineal], que se formulan de igual manera que en PL pero con una condición agregada, dependiendo del tipo de modelo:

  • PLE pura: todas las variables de decisión toman valores enteros.
  • PLE mixta: solo algunas variables de decisión toman valores enteros.
  • PLE binaria: todas las variables de decisión valen o cero o uno.

El PL obtenido al omitir todos los enteros o restricciones 0-1 en las variables se llama relajación del PL de la PLE. Cualquier problema de PLE se puede considerar como una relajación del PL con restricciones adicionales, por lo que la región factible del PLE está contenida en la relajación del PL asociada:

  • Si es un problema de maximización: .
  • Si es un problema de minimización: .

Procedimientos para solucionar problemas de PLE (ninguno es consistentemente efectivo):

  1. Método del plano de corte.
  2. Método de ramificación y corte.
  3. Método de ramificación y acote.

Método del Plano de Corte

Se parte de la solución óptima del problema relajado de PL y se agregan restricciones (cortes) hasta producir un punto extremo entero. Ejemplo en el que primero se pasa un problema a la forma estándar:

Resolución del problema relajado:

-3/25/21013/2
1/21/2019/2
3/21/200

Hay valores en la solución óptima que no son enteros, por lo que agregamos una nueva restricción. Se elige la fila de una variable no entera, y se toma la parte entera de cada coeficiente. Eligiendo la fila del 9/2:

Se obtiene una nueva restricción . Resolviendo nuevamente por el método Simplex dual, se obtiene:

-451004
010104
1-20011
11000

Se logra encontrar la solución óptima del PLE: .

Método de Ramificación y Acote

Este método es más eficiente que el anterior. Su funcionamiento básico es el siguiente:

flowchart LR;
1[Comenzar] --> 2[Ramificar] --> 3[Limitar] --> 4[Comparar]
  1. Se resuelve el problema relajado de PL y se toma esa solución como una cota máxima.
  2. A partir de ahí, se designa a una variable racional como entera y se investigan dos ramas: una redondeando la variable hacia abajo, y otra redondeando la variable hacia arriba.
  3. Cada rama tiene una cota superior e inferior para descartar ramas subóptimas.
  4. Se compara la solución de cada rama con el límite de referencia vigente.
  5. Luego de examinar todas las ramas, nos quedamos con la mejor solución factible.

Ejemplo:

De todas las soluciones enteras encontradas, la óptima es con .

Problemas Típicos

Hay varios problemas que son típicos para la programación lineal entera. Por lo general, hay dos tipos especiales de restricciones:

  • Restricciones de no interferencia: hay variables de decisión binarias excluyentes entre sí. La restricción establece que no se puede elegir ambas a la vez.
  • Restricciones de dependencia: se usan cuando una variable binaria debe elegirse sí o sí para poder elegir otra. Para que dependa de , se define la restricción , de manera que si .

Un problema de presupuesto de capital, también conocido como el problema del viajero, surge cuando hay que elegir en qué proyectos invertir dado un presupuesto fijo, o elegir qué objetos (cada uno con cierto peso) llevar en una mochila de capacidad limitada. Las variables binarias (invertir o no, llevar o no) tienen asociadas cierto costo/peso y cierto interés/importancia.

Un problema de cobertura de conjunto consiste en minimizar las ubicaciones en las que instalar o construir, asegurando cubrir todas las zonas. Se modela como un problema de PLE binaria donde cada zona debe ser cubierta por al menos una ubicación:

Un problema de cargo fijo aparece cuando hay un uso mínimo de algún recurso, como cuando prender una máquina tiene un costo de preparación, o suscribirse a un servicio tiene un costo de instalación.

Estos casos se modelan como un problema de PLE mixta, donde hay variables binarias asociadas al costo inicial por la decisión de usar o no cada máquina/servicio, y variables normales asociadas al costo de uso unitario de cada máquina servicio: