El documento presenta una introducción a la programación entera, incluyendo sus tres tipos (pura, mixta y binaria). Explica métodos para resolver problemas de programación entera como el método gráfico y de redondeo, ramificación y acotamiento, el algoritmo aditivo de Balas y el método de planos cortantes. Finalmente, brinda ejemplos de problemas típicos de programación entera y define la programación entera mixta.
2. 1.1. Introducción a la programación entera.
1.2. Método gráfico y redondeo de la solución de
programación lineal.
1.3. Método de ramificación y acotamiento.
1.4. Algoritmo aditivo de balas.
1.5. Método de planos cortantes.
1.6. Programación entera mixta.
3. INTRODUCCIÓN A LA PROGRAMACIÓN ENTERA
Un modelo de programación entera es un modelo que
contiene restricciones y una función objetivo idénticas a las
formuladas por planeación lineal; la única diferencia es que
una o más de las variables de decisión tienen que tomar un
valor entero en la solución final.
Existen tres tipos de programación entera:
Pura
Mixta
Binaria
4. PROGRAMACIÓN ENTERA PURA
Un modelo entero puro (PLE) es, como su nombre lo
indica, un problema en el que se exige que todas las
variables de decisión tengan valores enteros. Por ejemplo
los problemas de transporte.
EJEMPLO
5. PROGRAMACIÓN ENTERA MIXTA
Un modelo de programación lineal entera mixta (PLEM) es
un problema en el que solo se requieren que algunas
variables tengan valores enteros mientras que otras
pueden asumir cualquier valor continuo. Por ejemplo, los
modelos de dicotomía.
EJEMPLO
6. PROGRAMACIÓN ENTERA MIXTA
TIPOS DE RESTRICCIONES USADAS EN LA
PROGRAMACIÓN ENTERA MIXTA:
1-Excluyentes: Solo sirve para elegir una alternativa de
varias posibles
2-Pre-requisito: Cuando necesitas realizar una acción antes
de proceder con la siguiente
3-Incluyente: Dicha restricción se da para cuando realizas
una acción "A" entonces debes hacer la acción "B"
4-Costo Fijo Cuando se nombra un costo fijo,
es sinónimo de uso de variable mixta.
7. PROGRAMACIÓN ENTERA BINARIA
En los problemas enteros binarios se restringe el valor de las
variables a 0 ó 1. Son de particular interés debido a que se pueden
usar las variables 0-1 para representar decisiones dicotómicas (si ó
no). Diversos problemas de asignación, ubicación de plantas,
producción y elaboración de cartera, son de programación lineal
entera 0-1. EJEMPLO
8. PROBLEMAS TÍPICOS
Del transporte
De flujo con coste mínimo en red
De asignación
De la mochila (knapsack)
De emparejamiento (matching)
Del recubrimiento (set-covering)
Del empaquetado(set-packing)
De partición (set-partitioning)
Del costo fijo (Fixed-Charge)
Del viajante (TSP)
Rutas óptimas
9. MÉTODO GRÁFICO Y REDONDEO DE LA
SOLUCIÓN DE PROGRAMACIÓN LINEAL
PROBLEMA
Se desea optimizar el cultivo de cebada y lechugas con los siguientes
elementos:
Variables de decisión
La variable de decisión Xj es tal que:
X1 = campos en que el agricultor cultivará cebada
X2 = campos en que el agricultor cultivará lechugas
j= 1,2.
10. MÉTODO GRÁFICO Y REDONDEO DE LA
SOLUCIÓN DE PROGRAMACIÓN LINEAL
X1 ≤ 3 No podrá plantar más de 3 campos de cebada
80X1 + 160X2 ≤ 700 Las cosechas requieren de un tiempo de obra
determinado, durante la cosecha el granjero
dispondrá de 700 horas libres
X1 + X2 ≤ 6 La suma de las divisiones debe ser igual o
menor a 6
Restricciones
Función Objetivo
Max Z = 1000 X1 + 1600X2
Como las variables de decisión son adimensionales, Z tiene
unidades de | $ pesos|
11. MÉTODO GRÁFICO Y REDONDEO DE LA
SOLUCIÓN DE PROGRAMACIÓN LINEAL
Un primer paso para la resolución de un modelo de programación lineal
entera es resolver, mediante el método simplex, el problema lineal
asociado. Se trata de un problema lineal con la misma función objetivo
y restricciones que el modelo original, pero al que se ha relajado, es
decir, se ha hecho menos severo o riguroso en cuanto a el cumplimiento
de la condición en la que todas o algunas de las variables de decisión
sean enteras:
Xi € Ζ
Si la solución así obtenida es entera, habremos encontrado la solución
del modelo de programación lineal entera. En caso contrario (el mas
frecuente), la solución así obtenida es una primera aproximación a la
solución del modelo.
12. MÉTODO GRÁFICO Y REDONDEO DE LA
SOLUCIÓN DE PROGRAMACIÓN LINEAL
En este caso utilizaremos el método gráfico el cual se puede utilizar dada la
naturaleza del problema, es decir, que cuenta con sólo dos variables de decisión.
Para modelos con tres o más variables el método gráfico es poco práctico o
imposible, y es recomendable utilizar el método simplex, en nuestro caso
encontraremos la siguiente solución:
13. MÉTODO GRÁFICO Y REDONDEO DE LA
SOLUCIÓN DE PROGRAMACIÓN LINEAL
Que en el modelo representa lo siguiente:
Resulta tentador redondear los valores no enteros a enteros en la solución
obtenida para el problema lineal asociado, pero se debe tener cuidado al hacerlo
pues se corren dos riesgos:
1.- Es posible que la solución redondeada no sea factible.
2.- Aún siendo factible, no existe ninguna garantía de que la solución sea óptima.
Por esta razón es necesario encontrar un procedimiento que nos permita, a partir
del problema lineal asociado, ir explorando las soluciones enteras hasta encontrar
el óptimo del modelo de programación entera.
14. RAMIFICACIÓN Y ACOTAMIENTO
Este procedimiento es el algoritmo de ramificación y acotamiento (B&B, de
Blanch-and-Bound). Se trata de ir añadiendo restricciones al programa lineal
asociado hasta encontrar la solución entera óptima. Para ello se procede en dos
pasos: ramificación (Blanch) y acotamiento (Bound).
Redondeo por defecto: imponemos que la variable Xbi sea inferior o igual a la
parte entera del valor de esa variable en el óptimo del problema lineal Xbi con las
restricciones obtenidas hasta el momento. Esto equivale a añadir la restricción:
15. RAMIFICACIÓN Y ACOTAMIENTO
Redondeo por exceso: imponemos que la variable Xi sea mayor o igual al entero
inmediatamente superior al valor Xbi .Esto equivale a añadir la restricción:
Para nuestro ejemplo quedara de la siguiente manera:
Esta notación indica el valor entero mas próximo hacia la izquierda en la recta
numérica.
Para la ramificación se selecciono uno de los valores cuyo valor óptimo en la
solución no es entero, es decir el valor que se pretende hacer entero, en nuestro
caso la variable X2
16. RAMIFICACIÓN Y ACOTAMIENTO
Como se puede observar a continuación:
Max Z = 1000 X1 + 1600X2
X1 ≤ 3
80X1 + 160X2 ≤ 700
X1 + X2 ≤ 6
Xi>=0 i=1,2
Max Z = 1000 X1 + 1600X2
X1 ≤ 3
80X1 + 160X2 ≤ 700
X1 + X2 ≤ 6
X2 ≤ 2
Xi>=0 i=1,2
Max Z = 1000 X1 + 1600X2
X1 ≤ 3
80X1 + 160X2 ≤ 700
X1 + X2 ≤ 6
X2 ≥ 3
Xi>=0 i=1,2
X2 ≤ 2 X2 ≥ 3
17. RAMIFICACIÓN Y ACOTAMIENTO
Esto significa que, para un problema de máximo, el óptimo del programa entero
será menor o igual que el óptimo del problema lineal asociado. Al hacer la
ramificación, hemos encontrado dos alternativas posibles para obtener la
solución entera.
18. RAMIFICACIÓN Y ACOTAMIENTO
Los problemas resueltos en la etapa anterior serán una cota superior de las
posibles soluciones que obtengamos mediante posteriores ramificaciones. Esto
equivale a reemplazar el programa lineal original PL1 en este caso con dos
nuevos subprogramas lineales el PL1.1 y PL1.2 esto origina las siguientes
soluciones :
Max Z = 7600
X1 = 3 X2 = 72/25
Max Z = 6200
X1 = 3 X2 = 2
Max Z = 7550
X1 =11/4 X2 = 3
X2 ≤ 2 X2 ≥ 3
19. ACOTAMIENTO
El algoritmo indica escoger de los dos problemas aquel que dé como resultado
un valor mejor de la función objetivo.
Para cada uno de los subproblemas originados se substituyeron las nuevas
restricciones del valor de la variable X2 y con fines didácticos se ha creado un
nombre para los subproblemas lineales y el modelo asociado(PL1), como se
puede observar en el PL1.1 se satisface la condición de variables enteras, con un
valor de Max Z = 6200 por ser el valor de la función objetivo una cota superior
del óptimo, cualquier otra solución entera que pudiéramos explorar en esta
ramificación seria subóptima, y por lo tanto no vale la pena seguir explorando.
Ahora ya que PL1.2 podría obtener una solución mejor se selecciona una de las
variables enteras arbitrariamente cuyo valor optimo en el programa no sea
entero en este caso X1, se procederá a realizar otra ramificación con:
23. ACOTAMIENTO
Como se puede observar en el modelo PL1.2.2 la solución es no factible ya que en
un momento dado se restringe el valor de X1=3 y x2 ≥ 3 dando como resultado
en la restricción:
720 ≤ 700
lo cual es una inconsistencia, por otra parte en el modelo PL1.2.1 se puede
continuar la ramificación ya que la solución no ha desmejorado lo suficiente
como para ser menor que la cota obtenida de comparación, obteniendo
nuevamente el redondeo por defecto y el redondeo por exceso de la ahora
variable no entera X2:
esto recordando que el problema es una maximización, se continua con otra
ramificación en la que se elige la variable X2 obteniendo:
25. Se continúa iterando
hasta encontrar la
cota del PL1.2.1.2.2.1 la
cual es menor y la
cual nos indica que se
han agotado todos los
subproblemas.
26. RESULTADO DEL EJERCICIO
PLANTEADO
Ahora, procederemos a analizar los resultados:
Se han encontrado a lo largo del proceso tres cotas en las cuales la cota obtenida
en el PL1.2.1.1 es la mas conveniente debido a que es la solución entera, con la cual
se generará mayor beneficio.
Este resultado nos indica que es factible cultivar en dos campos de lechugas y tres
campos de cebada obteniendo así un beneficio de 6800 pesos, el cual cumple
con las condiciones planteadas del modelo original.
27. METODO ADITIVO (ENUMERACION)
DE EGON BALAS
Este método originado por Egon Balas, al que se le llama “aditivo” porque todas
las operaciones matemáticas que se realizan consisten en sumar o restar,
consiste en generar una secuencia de soluciones parciales añadiendo en cada
iteración una variable y considerando las soluciones complementarias (resto de
soluciones posibles). De esta forma, podemos por enumeración implícita,
eliminar conjuntos de soluciones sin necesidad de evaluarlos exhaustivamente.
La selección de la variable añadida se hace en función de reducir al máximo la
infactibilidad en la solución actual y eliminar la redundancia. Este método es un
procedimiento de enumeración que encuentra el óptimo en forma más rápida.
En el método de Balas, la eficacia consiste en la evaluación solo de unas
soluciones.
28. METODO ADITIVO (ENUMERACION) DE EGON BALAS
Este método parte de tener una función objetivo del tipo minimización, con todos
los coeficientes no negativos, además, todas las restricciones deben ser del tipo £,
con los lados derechos negativos de ser necesario. Estas restricciones se convierten a
ecuaciones, usando las variables auxiliares en el lado izquierdo de las restricciones.
El método empieza poniendo todas las variables iguales a cero y luego por medio de
un procedimiento sistemático de forma consecutiva se asigna a una por una de las
variables el valor 1. Luego se reemplaza en cada una de las restricciones y se averigua
la infactibilidad.
Siempre el problema nuevo a resolver consiste en la minimización de la función
objetivo, teniendo en cuenta la medida de la no factibilidad de la holgura. Cuando la
infactibilidad da el menor valor, continuamos con el siguiente paso; en el caso de una
infactibilidad cero, ésta corresponde a la solución óptima.
Si encontramos varias infactibilidades iguales a cero, reemplazamos en la función
objetivo y la respuesta será la que haga a esta función mínima.
29. METODO DE PLANO CORTANTE O ALGORITMO DE GOMORY
Igual que en el algoritmo de Ramificación y Acotamiento, el algoritmo de plano
cortante también empieza en la solución óptima de la Programación Lineal.
La idea fundamental es comenzar con una solución inicial factible para el problema
relajado, para después “cortar” o sacar dicha solución y cambiarla por otra
que mejore el valor de la función objetivo que se está optimizando (es decir el valor
del Problema Dual Lagrangeano).
Además, para iniciar este método es necesario tener una consideración especial:
El conjunto de puntos que constituyen las soluciones enteras factibles del problema
relajado debe ser acotado.
¿Por qué?:
Debido a que el algoritmo de
planos cortantes utiliza estos
puntos, por lo que si el
conjunto fuera no acotado,
entonces el algoritmo nunca
convergería (es decir, nunca
terminaría de iterar).
Este conjunto acotado se
conoce como la envoltura
convexa, que incluye las
soluciones enteras del
problema relajado.
33. PROGRAMACIÓN ENTERA MIXTA
El problema de programación lineal que se obtiene al omitir todas las
restricciones enteras ó variables 0-1 se llama relajación de
programación lineal para la programación entera.
Este método funciona a modo de proceso de enumeramiento de las
posibles soluciones enteras al problema original, esto lo hace
dividiendo (ramificando) el problema original en subproblemas más
sencillos, a los que generalmente se les quita las restricciones más
complicadas de resolver (que son generalmente las restricciones que
hacen que las variables sean enteras) para poder solucionarlo.
34. PROGRAMACIÓN ENTERA MIXTA
Ahora bien, muchos problemas de decisión involucran no solo
variables que pueden representarse por valores reales, sino decisiones
de tipo discreto que están representadas de forma natural por
variables enteras o binarias.
Otras veces, el planteamiento del problema involucra, junto a los
modelos cuantitativos, reglas o condiciones lógicas adicionales
Estos problemas de optimización híbridos con variables reales y
enteras se denominan de PROGRAMACIÓN ENTERA MIXTA
Si las decisiones son solo de tipo entero el problema se denomina de
programación entera
35. MÉTODOS DE SOLUCIÓN EN LA PROGRAMACIÓN
ENTERA MIXTA
La aproximación de tratar las variables enteras como reales y luego
aproximarlas al entero mas próximo suele dar resultados erróneos, excepto
quizás cuando el número de valores posibles de una variable entera es alto.
Rara vez con variables binarias
Pueden enumerarse todas las combinaciones de variables enteras posibles y
resolver para cada una el problema, posiblemente NLP, de variables reales
asociado, escogiendo luego el de mejor J, ya que son un número finito. Pero el
número de combinaciones crece exponencialmente con el número de
variables enteras.
Examen inteligente de alternativas enteras: Branch and Bound (B&B)
Ajuste de cotas inferior y superior: Outer Approximation (OA), Generalised
Benders decomposition (GBD)