Expooo
Expooo
Expooo
1
ÍNDICE
1. INTRODUCCIÓN ......................................................................................................................... 3
2. MARCO TEÓRICO ....................................................................................................................... 4
2.1) Definición: .................................................................................................................................. 4
2.2) Programación Binaria: ........................................................................................................... 5
2.2.1) Ejemplo Prototipo:............................................................................................................ 5
2.2.2) Algunas Aplicaciones de la Programación entera Binaria: .................................. 8
2.2.2.1) Análisis de Inversión: ............................................................................................... 8
2.2.2.2) Elección del sitio: ...................................................................................................... 8
2.2.2.3) Diseño de una red de producción y distribución: ............................................ 9
2.2.2.4) Despacho de envíos: ................................................................................................. 9
2.2.2.5) Programación de actividades interrelacionadas: .......................................... 10
2.2.2.6) Aplicaciones a Líneas aéreas:.............................................................................. 10
2.2.3) Usos innovadores de variables binarias en la formulación de modelos: ...... 11
2.2.3.1) Restricciones de tipo una u otra: ........................................................................ 11
2.2.3.2) “Deben cumplirse K de N restricciones”: ........................................................ 13
2.2.3.3) Problema de costo fijo: .......................................................................................... 14
3. TÉCNICA DE RAMIFICACIÓN Y ACOTAMIENTO PARA LA PROGRAMACIÓN
ENTERA BINARIA: .............................................................................................................................. 16
4. Técnica de Ramificación y Acotamiento para Programación Entera Mixta: ......... 18
4.1) EJEMPLO 1 ................................................................................................................................ 20
4.2) EJEMPLO 2: .............................................................................................................................. 22
5. Enfoque de ramificación y corte para problemas de Programación Entera
Binaria .................................................................................................................................................... 25
5.1) Ejemplos .................................................................................................................................... 26
6. CONCLUSIONES Y RECOMENDACIONES.......................................................................... 29
7. BIBLIOGRAFÍA .......................................................................................................................... 30
2
1. INTRODUCCIÓN
3
2. MARCO TEÓRICO
2.1) Definición:
4
2.2) Programación Binaria:
La última columna de la tabla indica que la cantidad de capital que se gastará en las
cuatro instalaciones no puede exceder a 10 millones de dólares.
En consecuencia, si se sigue con el uso de estas unidades de millones de dólares,
una restricción del modelo es:
Y:
De manera equivalente, las tres últimas líneas de este modelo se pueden sustituir
por una sola restricción:
>>En resumen:
Este ejemplo representa muchas aplicaciones reales de programación entera en las
que las decisiones básicas que se toman son del tipo sí o no. Al igual que el segundo
par de decisiones de este ejemplo, muchos grupos de decisiones sí o no constituyen
grupos de alternativas mutuamente excluyentes, tales que sólo una decisión de ese
grupo puede ser sí. Cada grupo requiere una restricción que obligue a la suma de las
variables binarias correspondientes a ser igual a 1 si exactamente una decisión de
ese grupo debe ser sí, o menor o igual a 1 (si cuando mucho una decisión de ese
grupo puede ser sí). En ocasiones, las decisiones del tipo sí o no son decisiones
contingentes, es decir, dependen de decisiones anteriores. Por ejemplo, se dice que
una decisión es contingente respecto a otra si se permite que sea si sólo si la otra es
sí. Esta situación ocurre cuando una decisión contingente implica una acción que
sigue a otra y que se vuelve irrelevante, o imposible, si la otra decisión es no. La
forma de la restricción que se obtiene se ilustra en la cuarta y quinta restricciones
del ejemplo.
7
2.2.2) Algunas Aplicaciones de la Programación entera
Binaria:
8
2.2.2.3) Diseño de una red de producción y distribución:
Los fabricantes de hoy se enfrentan a una gran presión competitiva para lograr que
sus productos lleguen al mercado con mayor rapidez, así como para reducir sus
costos de producción y distribución. Por tanto, cualquier corporación que distribuye
sus productos en un área geográfica grande —o incluso en todo el mundo— debe
prestar una atención continua al diseño de sus productos y a la red de distribución.
Este diseño incluye investigar los siguientes tipos de decisiones sí o no. ¿Debe cierta
planta permanecer abierta? ¿Debe seleccionarse cierto sitio para una nueva planta?
¿Debe cierto centro de distribución permanecer abierto? ¿Debe cierto sitio elegirse
para instalar un nuevo centro de distribución? Si cada área de mercado debe recibir
servicio de un solo centro, entonces también es necesario tomar otro tipo de
decisiones sí o no sobre cada combinación de área de mercado y centro de
distribución.
¿Debe cierto centro de distribución asignarse a cierta área de mercado?
Una vez que la red de producción y distribución haya sido diseñada y puesta en
operación, deben tomarse decisiones operativas diarias acerca de cómo realizar los
envíos. Algunas de estas decisiones también son de sí o no.
Por ejemplo, suponga que se usan camiones para transportar los envíos y que cada
camión suele hacer entregas a varios clientes durante cada viaje. En consecuencia,
es necesario elegir una ruta (secuencia de clientes) para cada camión, de manera
que cada candidato para la ruta conduce a la siguiente decisión de sí o no.
¿Debe cierta ruta seleccionarse para uno de los camiones?
9
2.2.2.5) Programación de actividades interrelacionadas:
10
¿Debe asignarse cierto tipo de avión a un trayecto en particular?
Se han presentado varios ejemplos en los que las decisiones básicas del problema
son del tipo sí o no, por lo que se introdujeron variables binarias para
representarlas. Ahora se verán algunas otras formas en las que las variables binarias
pueden ser útiles. En particular, se verá que estas variables a veces permiten tomar
un problema cuya formulación no se puede manejar y reformularlo como un
problema de PE pura o mixta.
Este tipo de situación surge cuando la formulación original del problema se ajusta a
un problema de programación entera o a uno de programación lineal, excepto por
ciertas diferencias menores que incluyen relaciones combinatorias en el modelo.
Cuando se expresan estas relaciones en términos de preguntas cuya respuesta debe
ser sí o no, se pueden introducir al modelo variables binarias auxiliares para
representar estas decisiones sí o no. (En lugar de ser una variable de decisión del
problema original en consideración, una variable binaria auxiliar es una variable
binaria que se introduce en el modelo del problema con la finalidad de ayudar a
formular el modelo como un modelo BIP puro o mezclado.) Al introducir estas
variables, el problema se reduce a uno de PEM (o PE pura si todas las variables
originales también están restringidas a valores enteros).
Debido a que la variable auxiliar y debe ser 0 o 1, esta formulación garantiza que
una de las restricciones originales se cumple mientras que la otra es, de hecho,
eliminada. Este nuevo conjunto de restricciones se podría añadir a las otras
restricciones del modelo completo para obtener un problema de PE pura o mixta, lo
cual depende de las x j sean variables enteras o continuas. Este enfoque se relaciona
en forma directa con el análisis anterior sobre cómo expresar las relaciones
combinatorias en términos de preguntas que deben responderse con sí o no. La
relación combinatoria a la que se hace referencia concierne a la combinación de
otras restricciones del modelo con la primera de las dos restricciones alternas y
después con la segunda. ¿Cuál de estas dos combinaciones de restricciones es
mejor, es decir, que se puede lograr en cuanto al valor de la función objetivo? Si esta
12
pregunta se hace en términos de sí o no, en realidad es necesario formular dos
preguntas complementarias:
Como sólo una de estas dos preguntas tendrá una respuesta afirmativa, los
respectivos términos binarios “y” y 1-y representan las decisiones sí o no. En
consecuencia, y = 1 si la respuesta a la primera pregunta es sí (y no a la segunda),
mientras que 1 - y = 1 (esto es y = 0) si la respuesta a la segunda pregunta es sí (y no
a la primera). Como de manera automática y + 1 - y = 1 (un sí), no hay necesidad de
agregar otra restricción para forzar a estas dos decisiones a que sean mutuamente
excluyentes. (Si en lugar de este procedimiento se usan las variables binarias
separadas y1 y y2 para representar estas decisiones sí o no, se necesitará una
restricción adicional y1 + y2 = 1 para hacerlas mutuamente excluyentes.)
Después, al aplicar la misma lógica que en el caso anterior, se encuentra que una
formulación equivalente del requerimiento de que K de estas restricciones se deben
cumplir es:
13
Donde M es un número positivo muy grande. Para cada variable binaria y i (i=1, 2, .
., N ), observe que y i = 0 hace que Myi = 0, lo que reduce la nueva restricción a la
restricción original i. Por otro lado, yi = 1 hace que (di + Myi) sea tan grande que —si
otra vez se supone una región factible acotada— cualquier solución que satisfaga las
otras nuevas restricciones satisface de manera automática la nueva restricción i, lo
cual tiene el efecto de eliminar la restricción original i. Por tanto, debido a que las
restricciones sobre las variables y i garantizan que K de estas variables serán iguales
a 0 y las restantes serán iguales a 1, K de las restricciones originales quedarán sin
cambio y (N - K) de ellas serán eliminadas. La elección de cuáles K de estas
restricciones debe conservarse se hace mediante la aplicación del algoritmo
apropiado al problema completo para encontrar una solución óptima para todas las
variables de manera simultánea.
Donde x j denota el nivel de la actividad j (xj >= 0), k j denota el costo fijo y cj el costo
de cada unidad incremental. Si no fuera por el costo fijo kj esta estructura de costo
14
sugeriría la posibilidad de una formulación de programación lineal para determinar
los niveles óptimos de las actividades competitivas. Por fortuna, aun si se incluyen
las kj, se puede usar programación entera. Para formular el modelo completo,
suponga que existen n actividades, cada una con la estructura de costo anterior —
con kj >= 0 en todos los casos y kj, 0 para alguna j = 1, 2, . . ., n—, y que el problema
es:
Por tanto, se puede pensar que las y j son decisiones contingentes parecidas (pero
no idénticas). Si M es un número positivo muy grande que excede el máximo valor
factible de cualquiera de las x j (j = 1, 2, . . ., n), las restricciones:
Asegurarán que yj = 1 y no cero, siempre que xj > 0. La única dificultad que queda
por salvar es que estas restricciones dejan a las yj en libertad de tomar el valor 0 o 1
cuando xj = 0. Por fortuna, esto también se resuelve en forma automática por la
naturaleza de la función objetivo. El caso en el que kj = 0 se puede ignorar puesto
que yj se puede eliminar de la formulación. Entonces, sólo se toma en cuenta el otro
caso, es decir, cuando kj. 0. Si xj = 0, de manera que las restricciones permiten elegir
entre y j = 0 y yj = 1, yj = 0 debe conducir a un valor menor de Z que yj = 1. De esta
15
forma, como el objetivo es minimizar Z, un algoritmo que conduzca a una solución
óptima siempre elegirá yj = 0 si xj = 0.
Para resumir, la formulación de PEM del problema de costo fijo es:
16
Los pasos son los siguientes:
Paso inicial: Se establece Z* = -∞. Se aplica el paso de acotamiento, el paso de
sondeo y la prueba de optimalidad que se describe después del problema completo.
Si no queda sondeado, se clasifica este problema como el único subproblema
restante para realizar la primera iteración completa. Pasos de cada iteración:
1. Ramificación: Entre los subproblemas restantes (no sondeados), se selecciona el
de creación más reciente. (Los empates se rompen con la cota más grande.) Entre
las variables restringidas a enteros, que tienen valores no enteros en la solución
óptima del relajamiento de PL del subproblema, se elige la primera en el orden
natural como la variable de ramificación. Si xj es esta variable y xj* su valor en esta
solución se debe ramificar desde el nodo del subproblema para crear dos nuevos
subproblemas luego de agregar las restricciones respectivas xj <= [xj*] y xj >= [xj*] +
1.
2. Acotamiento: Se obtiene la cota de cada subproblema si se aplica el método
simplex (o el método simplex dual si se Re optimiza) al relajamiento de PL y se utiliza
el valor de Z para la solución óptima resultante.
3. Sondeo: Se aplican las pruebas de sondeo que se presentan a continuación a cada
nuevo subproblema y se descartan aquellos que quedan sondeados por cualquiera
de las pruebas.
Prueba 1: Su cota <= Z*, donde Z* es el valor de Z en la solución de apoyo
actual.
Prueba 2: Su relajamiento de PL no tiene soluciones factibles.
Prueba 3: La solución óptima para su relajamiento de PL tiene valores enteros
en todas sus variables restringidas a enteros. (Si esta solución es mejor que la
de apoyo, se convierte en la nueva solución de apoyo y se vuelve a aplicar la
prueba 1 con la nueva Z* a todos los subproblemas no sondeados.)
Prueba de optimalidad: El proceso se detiene cuando no hay subproblemas
restantes; la solución de apoyo actual es óptima. De otra manera, se realiza
otra iteración.
17
4.Técnica de Ramificación y Acotamiento para
Programación Entera Mixta:
18
Si, por el contrario, la solución obtenida no satisface las restricciones de
integralidad y el valor de la correspondiente función objetivo esta entre las
cotas inferior y superior, se actualiza el valor de la cota inferior al valor de la
función objetivo del problema resuelto y se procede a ramificar.
Los problemas generados en el proceso de ramificación se añaden a la lista de
problemas que han de resolverse.
• Paso 5. (poda). Si la solución del problema actual cumple las restricciones de
integralidad, no ha lugar a ramificaciones adicionales relacionadas con esa
solución. Se dice que la rama se poda por razones de integralidad. Si, por otra
parte, la solución no satisface las condiciones de integralidad y además el
valor de la función objetivo del problema resuelto es mayor que la cota
superior, no es posible obtener soluciones mediante ramificaciones
adicionales de esa rama. Se dice que la rama se poda por cotas. Si, finalmente,
el problema es infactible, no ha lugar a ramificaciones adicionales empleando
esa rama. Se dice que la rama se poda por infactibilidad
• Paso 6. (optimalidad). Si la lista de problemas a procesar no está vacía, se
continua con el paso 3. Si, por el contrario, está vacía, el procedimiento
concluye. Si en este caso, existe un candidato a minimizador, este candidato
es el minimizador; si no existe, el problema es infactible. El algoritmo de
ramificación y acotación devuelve la solución óptima o notifica la
infactibilidad bien en el paso 1 ´o en el paso 6.
El proceso de ramificación concluye por una de las siguientes tres razones:
1. El problema considerado es infactible
2. La solución obtenida satisface las condiciones de integralidad
3. La cota inferior obtenida es superior a la cota superior disponible, Por
tanto, la rama correspondiente se poda por infactibilidad, por integralidad o
por cotas.
Cualquier variable que deba ser entera pero que no lo sea en la solución actual, es
una variable candidata para ramificación. Cuál escoger es una cuestión no trivial
cuya respuesta ha de basarse en la estructura del problema.
19
4.1) EJEMPLO 1
Considérese el siguiente PEM.
Minimizar Z = 3x1 + 2x2
sujeto a: x1 −2x2 +x3 = 5/2
2x1 +x2 +x4 = 3/2
x1, x2, x3, x4 ≥ 0 x2, x3 ∈ IN
Paso 1. (iniciación). La cota superior inicial es +∞ y la inferior −∞.
El problema relajado, denominado P0, es:
Minimizar Z = 3x1 + 2x2 sujeto a
x1 −2x2 +x3 = 5/2
2x1 +x2 +x4 = 3/2 x1, x2, x3, x4 ≥ 0
La solución es: x1 = x2 = 0; x3 = 2.5; x4 = 1.5; Z = 0
Esta solución no satisface las condiciones de integralidad (x3 ∈/ IN). El valor
de la función objetivo se emplea para actualizar la cota inferior de −∞ a 0.
Paso 2. (ramificación). La variable que ha de ser entera, x3, mediante
ramificación da lugar a los dos problemas siguientes (P1 y P2). Las
restricciones adicionales son x3 ≤ 2 y x3 ≥ 3.
• Problema P1.
Minimizar Z = 3x1 + 2x2
sujeto a x1 −2x2 +x3 = 5 2
2x1 +x2 +x4 = 3 2
x3 ≤ 2 x1, x2, x3, x4 ≥ 0
• Problema P2.
Minimizar Z = 3x1 + 2x2
sujeto a x1 −2x2 +x3 = 5/2
2x1 +x2 +x4 = 3/2
x3 ≥ 3 x1, x2, x3, x4 ≥ 0
20
Paso 3. (solución). La solución del problema P1 es
x1 = 0.5; x2 = 0; x3 = 2; x4 = 0.5; Z = 1.5
Paso 4. (actualización de cotas). Puesto que la solución obtenida satisface las
condiciones de integralidad (x2, x3 ∈ IN), y el valor de la función objetivo, 1.5, es
menor que el valor actual de la cota superior, este se actualiza de +∞ a 1.5 (la
solución óptima esta por tanto entre 0 y 1.5), y el minimizador encontrado se
almacena como mejor candidato.
Paso 5. (poda). Puesto que la solución obtenida satisface las condiciones de
integralidad (para x2 y x3), la rama se poda. Se continúa con el paso 3.
Paso 3. (solución). La solución del problema P2 es
x1 = 0; x2 = 0.25; x3 = 3; x4 = 1.25; Z = 0.5
Paso 4. (actualización de cotas). Puesto que esta solución no satisface las
condiciones de integralidad (x2 ∈/ IN) y el valor correspondiente de la función
objetivo, 0.5, está entre las cotas interior y superior, la cota inferior se actualiza de 0
a 0.5. Por tanto, la solución ´optima está en el intervalo (0.5, 1.5).
A continuación, se procede a ramificar sobre la variable x2, lo que da lugar a los dos
problemas siguientes:
Problema P3.
Minimizar Z = 3x1 + 2x2 sujeto a
x1 −2x2 +x3 = 5/2
2x1 +x2 +x4 = 3/2
x3 ≥ 3 x2 ≤ 0 x1, x2, x3, x4 ≥ 0
Problema P4.
Minimizar Z = 3x1 + 2x2 sujeto a
x1 −2x2 +x3 = 5/2
2x1 +x2 +x4 = 3/2
x3 ≥ 3 x2 ≥ 1 x1, x2, x3, x4 ≥ 0
Obsérvese que las restricciones adicionales son respectivamente x2 ≤ 0 y x2 ≥ 1.
Paso 5. (poda). Nada tiene lugar en este paso, se continúa con el paso 6.
Paso 6. (control de optimalidad). Puesto que la lista de problemas a procesar no está
vacía, se continúa con el paso 3.
Paso 3. (solución). El problema P3 es infactible.
Paso 4. (actualización de cotas). Nada tiene lugar en este paso.
21
Paso 5. (poda). Puesto que el problema es infactible, se poda la rama
correspondiente, y se continúa con el paso 6.
Paso 6. (control de optimalidad). Puesto que la lista de problemas a procesar no está
vacía, se continúa con el paso 3.
Paso 3. (solución). El problema P4 es factible.
Su solución es:
x1 = 0; x2 = 1; x3 = 4.5; x4 = 0.5; Z = 2
Paso 4. (actualización de cotas). Nada tiene lugar en este paso.
Paso 5. (poda). Puesto que la solución obtenida no satisface las condiciones de
integralidad (x3 ∈/ IN), y el valor correspondiente de la función objetivo es mayor
que el valor actual de la cota superior, no podrá lograrse una mejor solución que la
disponible llevando a cabo ramificaciones adicionales sobre la rama
correspondiente. La rama se poda y se continúa con el paso 6.
Paso 6. (comprobación de optimalidad). Puesto que la lista de problemas a procesar
está vacía, y hay una solución candidata a minimizador, esta solución es el
minimizador del problema original.
La solución óptima es, por tanto
x∗ 1 = 0.5 x∗ 2 = 0 x∗ 3 = 2 x∗ 4 = 0.5 Z∗ = 1.5
4.2) EJEMPLO 2:
(PE) min z = −5x1 − 8x2
x1 + x2 ≤ 6
5x1 + 9x2 ≤ 45 x1, x2 ≥ 0, enteros
Hacemos z = +∞. (P0):
Relajación lineal min z = −5x1 − 8x2
x1 + x2 ≤ 6
5x1 + 9x2 ≤ 45 x1, x2 ≥ 0
Resolvemos usando SIMPLEX:
Z = −41, 25 x1 = 2, 25 x2 = 3, 75
Vemos que x1 y x2 son no enteros.
Elegimos x2 para ramificar, creando (P1) y (P2).
• (P1) min z = −5x1 − 8x2
22
x1 + x2 ≤ 6
5x1 + 9x2 ≤ 45 x2 ≥ 4 x1, x2 ≥ 0
• (P2) min z = −5x1 − 8x2
x1 + x2 ≤ 6
5x1 + 9x2 ≤ 45 x2 ≤ 3 x1, x2 ≥ 0
Se resuelve (P1) y se obtiene
x1 = 1, 8 x2 = 4 z1 = −41
Resolvemos (P2) y el óptimo es
x1 = 3 x2 = 3 z2 = −39.
Se procede a ramificar (P1) con la variable x1. Generamos entonces los
problemas (P3) y (P4) agregando en un caso x1 ≥ 2 y en el otro x1 ≤ 1,
respectivamente
Hasta aquí tenemos que -41 es cota inferior para el valor optimo del
problema.
• Resolvemos (P3) y vemos que es infactible.
Esto significa que el nodo (P3) puede ser descartado y no ramificado.
Seguimos ahora por (P4).
• La solución de (P4) es
x1 = 1 x2 = 4, 44 z4 = −40, 55.
Esta solución aun no es entera por lo que subdividimos (P4) con las
restricciones x2 ≤ 4 y x2 ≥ 5, obteniendo (P5) y (P6), respectivamente
• El óptimo de (P5) es
x1 = 1, x2 = 4, z5 = −37
Tenemos ahora una cota superior del valor optimo z = −37.
• Resolvemos (P6) y tenemos
x1 = 0, x2 = 5 y z6 = −40
23
Dado que z2 > z y no hay más problemas para examinar, luego la solución de
(P6) es la solución general del problema.
En la figura siguiente se ve el diagrama de los problemas para un mayor
entendiemiemento.
24
5. Enfoque de ramificación y corte para problemas
de Programación Entera Binaria
25
5.1) Ejemplos
26
27
28
6.CONCLUSIONES Y RECOMENDACIONES
29
7. BIBLIOGRAFÍA
http://dspace.unitru.edu.pe/bitstream/handle/UNITRU/8128/AGUSTIN%20SANGAY%2C%20Julio%20C%
C3%A9sar.pdf?sequence=1&isAllowed=y. [En línea]
https://dspace.uclv.edu.cu/bitstream/handle/123456789/7673/Tesis.pdf?sequence=1&isAllowed=y. [En
línea]
https://sites.google.com/site/optimizacionenteraydinamica/introduccion/metodos-de-solucion-en-
programacion-entera/metodos-de-planos-de-corte. [En línea]
https://www.gestiondeoperaciones.net/programacion-entera/metodo-de-planos-cortantes-
optimizacion-dual/. [En línea]
https://www.gestiondeoperaciones.net/programacion-entera/que-es-la-programacion-entera/. [En
línea]
https://www.u-
cursos.cl/usuario/e3eedee18997cb6885520f1611337e0f/mi_blog/r/6_Programaci_n_Entera.pdf. [En
línea]
30