Tema 6
Tema 6
Introducir el método de bifurcación y acotación (Brach and Bound, B&B) para problemas de Programación Entera
Analizar las diferentes estrategias que pueden utilizarse en cada una de las etapas del algoritmo B&B
Utilizar el algoritmo B&B para resolver algunos problemas de Programación Lineal Entera Puros, Mixtos y Binarios
Presentar algunas de las técnicas de preprocesamiento para problemas de Programación Lineal Entera Binaria
Presentar un procedimiento para la generación de planos de corte en problemas de Programación Lineal Entera Binarios
Introducir el método de los planos de corte de Gomoroy para Programación Lineal Entera
1
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Problemas de Programación Lineal Entera
Tal y como se vio en el Tema 2 en muchos problemas de programación lineal sólo tienen sentido aquellas soluciones de la región factible
en las que todas o algunas de las variables de decisión toman valores enteros. Este tipo de problemas se denominan en general
Problemas de Programación Lineal Entera (PPLE). En concreto:
• Si todas las variables del problema son enteras se habla de PPLE Pura.
• Si sólo algunas son enteras y las restantes son continuas se habla de PPLE Mixta.
• Si todas las variables enteras son binarias (0/1) el problema se denomina PPLE Binaria.
En ingeniería los problemas más frecuentes son los PPLE Mixta. Estos problemas proporcionan un marco de modelado flexible y
eficiente para formular y resolver muchos problemas de ingeniería. Un PPLE Mixta general se formula en forma estándar como:
n
Minimizar z cj xj
j 1
n
sujeto a a
j 1
ij x j bi ; i 1, 2,..., m
xj 0 ; j 1, 2,..., n
xj ; j 1, 2,..., I ; I n
Este tema se proporciona una introducción a los principales algoritmos para obtener la solución a este tipo de problemas. En concreto, se
estudian los métodos siguientes:
• Método de bifurcación y acotación: La solución al PPLE original se obtiene resolviendo una secuencia ordenada de PPLs que se
obtienen relajando las restricciones de integralidad y añadiendo restricciones adicionales.
• Método de los planos de corte: En esta técnica, se resuelve el problema original relajado en el que se incluyen restricciones
adicionales, denominadas cortes de Gomoroy, que reducen la región factible sin excluir soluciones que cumplen las condiciones de
integralidad.
2
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Método de bifurcación y acotación para un PPLE Mixta.
El método de bifurcación y acotación (B&B, de Branch and Bound) resuelve un PPLE resolviendo una secuencia ordenada de PPLs que
se obtienen relajando las restricciones de integralidad y añadiendo restricciones adicionales. El número de restricciones adicionales crece
a medida que el método B&B progresa. Estas restricciones permiten separar la región factible en subregiones complementarias.
El método B&B establece inicialmente cotas inferior y superior del valor óptimo de la función objetivo. El mecanismo de bifurcación
aumenta progresivamente el valor de la cota inferior y disminuye también progresivamente el valor de la cota superior. La diferencia entre
estas cotas es una medida de la proximidad de la solución actual a la óptima, si ésta existe.
Al minimizar, se obtiene una cota inferior de la solución óptima relajando las restricciones de integralidad del PPLE inicial y resolviendo el
PPL resultante. Además, el valor de la función objetivo para cualquier solución del PPLE original es una cota superior de la solución
óptima. De manera análoga, al maximizar, la solución del PPL relajado es una cota superior para el óptimo y cualquier solución del PPLE
original es una cota inferior de la solución óptima.
A continuación se enumeran los pasos del algoritmo B&B para un PPLE Mixta:
Paso 1: Iniciación
1.1 Se establece una cota superior () y una cota inferior (−) de la solución óptima.
1.2 Se resuelve el PPLE Mixta inicial relajando las restricciones de integralidad.
1.2.a Si el problema relajado es infactible, el original también lo es y no hay solución.
1.2.b Si la solución obtenida satisface las condiciones de integralidad, es óptima.
1.2.c En cualquier otro caso, se actualiza el valor de la cota correspondiente con el valor de la función objetivo resultante.
Paso 2: Bifurcación
2.1 Empleando la variable xk que ha de ser entera y no lo es, se generan mediante bifurcación dos problemas. Si el valor de la
variable que ha de ser entera xk es a.b, donde a y b son sus partes entera y fraccional respectivamente, los problemas fruto de la
bifurcación son los siguientes.
2.1.a El primer problema es el PPLE relajado al que se la añade la restricción xk≤a
2.1.b El segundo es el PPLE relajado al que se le añade la restricción xk≥a+1
2.2 Estos problemas se colocan ordenadamente en una lista de problemas a procesar que son resueltos secuencialmente o en
paralelo. Obsérvese que la técnica de bifurcación propuesta cubre completamente el espacio de soluciones.
3
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Paso 3: Solución
Paso 4: Acotación
4.1 Si la solución del problema actual satisface las condiciones de integralidad y el valor óptimo de su función objetivo es menor que la
cota superior actual, dicha cota se actualiza al valor óptimo de la función objetivo del problema resuelto, y el minimizador actual se
almacena como el mejor candidato a minimizador del problema original. En caso de maximizaciones, la cota inferior actual se
actualiza al valor óptimo de la función objetivo del problema resuelto si éste es menor que dicha cota inferior.
4.2 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 bifurcar de nuevo. En caso de maximizaciones, se actualiza el valor de la cota superior al valor de la
función objetivo del problema resuelto y se procede a bifurcar de nuevo.
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de problemas que han de resolverse.
Paso 5: Poda
5.1 Poda por cotas: Tiene lugar si 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 para minimizaciones o menor que la cota inferior para maximizaciones. En este
caso no es posible obtener soluciones mediante bifurcaciones adicionales de esa rama.
5.3 Poda por integralidad: Tiene lugar si la solución del problema actual cumple las restricciones de integralidad.
Paso 6: Optimalidad
6.3 Concluido el problema, si existe un candidato a minimizador, dicho candidato es el minimizador; en caso contrario, el problema es
infactible.
4
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
El algoritmo de B&B devuelve la solución óptima o notifica la infactibilidad bien en el paso 1 ó en el paso 6. El proceso de bifurcación
concluye por la poda de la rama correspondiente como consecuencia de una de las tres razones siguientes:
1. La solución del problema relajado es mayor que la cota superior disponible en el caso de minimizaciones, o menor que la cota inferior
disponible para el caso de maximizaciones.
2. El problema considerado es infactible.
3. La solución obtenida satisface las condiciones de integralidad.
Como puede verse, los pasos centrales del algoritmo B&B son la bifurcación, la acotación y la poda. La diferencia entre un algoritmo
B&B u otro radica en las diferentes estrategias que pueden llevarse a cabo a la hora de implementar tales pasos.
Cualquier variable que deba ser entera pero que no lo sea en la solución actual, es una variable candidata para bifurcación. Cuál escoger
no es una cuestión trivial, y su respuesta ha de basarse en la estructura del problema.
Los problemas almacenados para ser procesados pueden tratarse mediante estrategias en profundidad, en anchura o mixtas. La
siguiente figura ilustra las dos primeras alternativas. Normalmente el conocimiento técnico del problema permite establecer el tipo de
estrategia a utilizar.
• Una estrategia de procesado en profundidad origina rápidamente problemas fuertemente restringidos que producen buenas cotas
superiores e inferiores. De esta forma, da lugar a problemas infactibles y, por tanto, a una deseable eliminación de ramas.
• Por el contrario, una estrategia en anchura permite tratar problemas muy similares, de lo que pueden desprenderse ventajas
computacionales como es la reoptimización eficiente del problema relajado actual partiendo de la solución del anterior.
5
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Estrategias de acotación
La acotación es normalmente llevada a cabo mediante la denominada relajación lineal, consistente en la obtención de la cota a partir de
la resolución del PPL obtenido relajando las restricciones de integralidad del PPLE original.
Sin embargo, existen otras posibles relajaciones del PPLE original, como la relajación Lagrangiana en la que todo el conjunto de
restricciones (Ax ≤ b en notación matricial) es eliminado y la función objetivo del problema Maximixar z=cTx es reemplazada por
Maximizar zR=cTx – (Ax – b), donde ≥0 es un vector fijo.
Si x* es una solución óptima del problema original z ≤ zR, por lo que resolviendo la relajación Lagrangiana el valor óptimo de zR
proporciona una cota válida para el problema original. Escogiendo adecuadamente el valor del vector dicha cota tiende a ser similar
a la proporcionada por la solución de la relajación lineal, pero con la ventaja de que sin las restricciones del problema la resolución de la
relajación Lagrangiana puede llegar a ser mucho más rápida.
En contrapartida, la poda llevada a cabo tras la acotación mediante la relajación Lagrangiana no suele ser tan potente como la llevada a
cabo tras la relajación lineal. En general, dos son los factores deseables a la hora de escoger una u otra estrategia de acotación: (a) una
rápida resolución del problema relajado; y (b) la obtención de una buena cota. En general, la relajación lineal suele ofrecer un buen
compromiso entre ambos factores.
Estrategias de poda
Como se ha comentado anteriormente, la poda de la rama correspondiente tiene lugar por una de las tres razones siguientes:
1. La solución del problema relajado es mayor que la cota superior disponible en el caso de minimizaciones, o menor que la cota
inferior disponible para el caso de maximizaciones.
2. El problema considerado es infactible.
3. La solución obtenida satisface las condiciones de integralidad.
En cuanto al punto 1 puede optarse por convertir el problema a la forma estándar de maximización (tal y como se vio en el Tema 4) y
podar siempre que la solución del problema relajado sea inferior al óptimo actual.
En cuanto al punto 3, si el problema relajado y el subproblema generado mediante bifurcación tan sólo difieren en la falta de alguna
restricción, la poda puede simplemente basarse en comprobar si la solución óptima de dicha relajación es una solución factible para el
subproblema, ya que en este caso dicha solución también será óptima para este subproblema.
6
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Ejemplo 1: Método B&B para un PPLE Pura
Minimizar z x1 x2
sujeto a x1 0 x2 0
2 x1 2 x2 1
z
2 x2 9
x1 , x2
7
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Pura (continuación 1) x2 z = -x1 -x2
2x1 -2x2 ≤ 1
Paso 2: Bifurcación
5
2.1 La variable que ha de ser entera x2, mediante bifurcación da lugar
a los dos problemas siguientes: x2 ≤ 4
Problema P1 Problema P2
3
Minimizar z x1 x2 Minimizar z x1 x2
sujeto a x1 0 x2 0 sujeto a x1 0 x2 0 2
2 x1 2 x2 1 2 x1 2 x2 1
z z 1
2 x2 9 2 x2 9
x2 4 x2 5
1 2 3 4 5 x1
2.2 Estos problemas se colocan en la lista de problemas a procesar.
-x1 ≤ 0
Paso 3: Solución
Paso 4: Acotación
4.2 Puesto que la solución obtenida no satisface las condiciones de integralidad (x1), y que el valor de la función objetivo (z=−8.5)
está entre los valores de las cotas inferior y superior, el valor actual de la cota inferior se actualiza de −9.5 a −8.5 (la solución
óptima está por tanto entre −8.5 y ).
El problema se vuelve a bifurcar. Para ello, la variable que deber ser entera pero no lo es (x1), mediante bifurcación da lugar a los
dos problemas P3 y P4 que incluyen las restricciones adicionales son x1 ≤ 4 y x1 ≥ 5 respectivamente.
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de problemas que han de resolverse.
8
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Pura (continuación 2) x2 z = -x1 -x2
2x1 -2x2 ≤ 1
Problema P3 Problema P4
5
Minimizar z x1 x2 Minimizar z x1 x2
sujeto a x1 0 x2 0 sujeto a x1 0 x2 0 x2 ≤ 4
2 x1 2 x2 1 2 x1 2 x2 1
z 2 x2 9 z 2 x2 9 3
x2 4 x2 4
x1 2 x2 4 x1 2 x2 5 2
Paso 3: Solución (El problema P2 es infactible; por tanto, nada tiene lugar en este paso)
Paso 5: Poda
5.2 Puesto que el problema P2 es infactible, la rama correspondiente se poda por infactibilidad.
6.1 Puesto que la lista de problemas no está vacía, se continúa con el problema P3 en el paso 3.
Paso 3: Solución
9
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Pura (continuación 3)
Paso 4: Acotación
4.1 Puesto que la solución obtenida cumple las condiciones de integralidad (x1, x2 ), y el valor de la función objetivo (−8) está
entre las cotas inferior y superior, el valor de la cota superior se actualiza de + a −8, y el minimizador obtenido se almacena
como mejor candidato a minimizador del problema original.
Paso 5: Poda
5.3 Puesto que la solución actual satisface las condiciones de integralidad, no procede bifurcar adicionalmente, y la rama se poda.
6.1 Puesto que la lista de problemas a procesar no está vacía, se continúa con el problema P4 en el paso 3.
Paso 3: Solución (El problema P4 es infactible, por tanto, no tiene lugar nada en este paso)
Paso 5: Poda x2 ≤ 4 x2 ≥ 5
10
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Ejemplo 2: Método B&B para un PPLE Mixta
Minimizar z 3 x1 2 x2
sujeto a x1 2 x2 x3 x4 5
2
2 x1 2 x2 x3 x4 3
z 2
x1 , x2 , x3 , x4 0
x2 , x3
Paso 1: Iniciación
Minimizar z 3 x1 2 x2
sujeto a x1 2 x2 x3 x4 52
z 2 x1 2 x2 x3 x4 32
x1 , x2 , x3 , x4 0
11
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Mixta (continuación 1)
Paso 2: Bifurcación
2.1 La variable que ha de ser entera x3, mediante bifurcación da lugar a los dos problemas siguientes:
Problema P1 Problema P2
Minimizar z 3 x1 2 x2 Minimizar z 3 x1 2 x2
sujeto a x1 2 x2 x3 x4 5
2
sujeto a x1 2 x2 x3 x4 5
2
2 x1 2 x2 x3 x4 3
2 x1 2 x2 x3 x4 3
z 2
z 2
x3 x4 2 x3 x4 3
x1 , x2 , x3 , x4 0 x1 , x2 , x3 , x4 0
Paso 3: Solución
Paso 4: Acotación
4.1 Puesto que la solución obtenida satisface las condiciones de integralidad (x2, x3 ), y que el valor de la función objetivo (z=1.5)
es menor que el valor actual de la cota superior, ésta se actualiza de a 1.5 (la solución óptima está por tanto entre 0 y 1.5), y el
minimizador encontrado se almacena como mejor candidato a minimizador del problema original.
Paso 5: Poda
5.3 Puesto que la solución actual satisface las condiciones de integralidad (para x2 y x3), la rama se poda y se continua con el paso 3.
Paso 3: Solución
3.1 Se resuelve el problema P2. Solución: z = 0.5 para el punto (x1=0, x2=0.25, x3=3, x4=1.25)
12
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Mixta (continuación 2)
Paso 4: Acotación
4.2 Puesto que esta solución no satisface las condiciones de integralidad (x2) 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 (la solución óptima está por tanto entre 0.5 y 1.5).
A continuación se procede a bifurcar sobre la variable x2, lo que da lugar a los dos problemas siguientes:
Problema P3 Problema P4
Minimizar z 3 x1 2 x2 Minimizar z 3 x1 2 x2
sujeto a x1 2 x2 x3 x4 5
2
sujeto a x1 2 x2 x3 x4 5
2
2 x1 2 x2 x3 x4 3
2
2 x1 2 x2 x3 x4 3
2
z x3 x4 3 z x3 x4 3
x2 x3 x4 0 x2 x3 x4 1
x1 , x2 , x3 , x4 0 x1 , x2 , x3 , x4 0
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de problemas que han de resolverse.
6.1 Puesto que la lista de problemas a procesar no está vacía, se continúa con el problema P3 en el paso 3.
Paso 3: Solución (El problema P3 es infactible; por tanto, nada tiene lugar en este paso)
Paso 5: Poda
5.2 Puesto que el problema P3 es infactible, la rama correspondiente se poda por infactibilidad.
13
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Mixta (continuación 3)
6.1 Puesto que la lista de problemas no está vacía, se continúa con el problema P4 en el paso 3.
Paso 3: Solución
Paso 5: Poda
5.1 Puesto que la solución obtenida no satisface las condiciones de integralidad (x3), 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
bifurcaciones adicionales. Así, la rama se poda por cotas.
P0
6.2 Puesto que la lista de problemas a procesar está vacía, el procedimiento concluye.
P1 P2
6.3 Concluido el proceso, como hay un candidato a minimizador, este candidato es la
x2 ≤ 0 x2 ≥ 1
solución del problema original:
*
P3 P4
14
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Ejemplo 3: Método B&B para un PPLE Binaria
Obtener la solución mediante el método de B&B del PPLE Binaria mostrado en la transparencia 5 del Tema 2 pero con los datos de la
siguiente tabla. Además, el capital total para la inversión es de 10 M euros.
Maximizar z 9 x1 5 x2 6 x3 4 x4
Decisiones Beneficio estimado Capital requerido
sujeto a 6 x1 3 x2 5 x3 2 x4 10
Instalar factoría en Zaragoza 9 M euros 6 M euros
x3 2 x4 1
Instalar factoría en Sevilla 5 M euros 3 M euros
z x1 3 x2 5 x3 2 x4 0
Construir almacén en Zaragoza 6 M euros 5 M euros
x2 5 x3 2 x4 0
Construir almacén en Sevilla 4 M euros 2 M euros x1 , x2 , x3 , x4 0,1
x1 , x2 , x3 , x4 [0,1]
solution (optimal) with objective 14:
x1 = 1;
Solución: z = 16.5 para el punto (x1=5/6, x2=1, x3=0, x4=1) x2 = 1;
x3 = 0;
x4 = 0;
1.2c Esta solución no satisface las condiciones de integralidad (x1{0,1}).
Así, el valor de la función objetivo se emplea para actualizar la cota superior de a 16.5
15
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Binaria (continuación 1)
Paso 2: Bifurcación
2.1 La variable que ha de ser binaria x1, mediante bifurcación da lugar a los dos problemas siguientes:
Maximizar z 5 x2 6 x3 4 x4 Maximizar z 5 x2 6 x3 4 x4 9
sujeto a 3 x2 5 x3 2 x4 10 sujeto a 3 x2 5 x3 2 x4 4
x3 2 x4 1 x3 2 x4 1
z 3 x2 5 x3 2 x4 0 z 3 x2 5 x3 2 x4 1
x2 5 x3 2 x4 0 x2 5 x3 2 x4 0
x2 , x3 , x4 [0,1] x2 , x3 , x4 [0,1]
Paso 3: Solución
Paso 4: Acotación
4.1 Puesto que la solución obtenida satisface las condiciones de integralidad (x1, x2, x3, x4 {0,1}), y que el valor de la función objetivo
(z=9) es mayor que el valor actual de la cota inferior, ésta se actualiza de − a 9 (la solución óptima está por tanto entre 9 y 16.5),
y el maximizador encontrado se almacena como mejor candidato a maximizador del problema original.
Paso 5: Poda
5.3 Puesto que la solución actual satisface las condiciones de integralidad (x1, x2, x3, x4 {0,1}), la rama se poda por integralidad y
se continua con el paso 3.
16
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Binaria (continuación 2)
Paso 3: Solución
Paso 4: Acotación
4.2 Puesto que esta solución no satisface las condiciones de integralidad (x2, x4{0,1}) y el valor correspondiente de la función objetivo
(16.2) está entre las cotas interior y superior, la cota superior se actualiza de 16.5 a 16.2 (la solución óptima está ahora por tanto
entre 9 y 16.2).
A continuación se procede a bifurcar sobre la variable x2, lo que da lugar a los dos problemas siguientes:
Maximizar z 6 x3 4 x4 9 Maximizar z 6 x3 4 x4 14
sujeto a 5 x3 2 x4 4 sujeto a 5 x3 2 x4 1
x3 2 x4 1 x3 2 x4 1
z 5 x3 2 x4 0 z 5 x3 2 x4 1
x4 0 x4 1
x3 , x4 [0,1] x3 , x4 [0,1]
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de problemas que han de resolverse.
6.1 Puesto que la lista de problemas a procesar no está vacía, se continúa con el problema P3 en el paso 3.
17
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Binaria (continuación 3)
Paso 3: Solución
3.1 Se resuelve el problema P3 Solución: z = 13 para el punto (x1=1, x2=0, x3=4/5, x4=0)
Paso 4: Acotación (En este caso, antes de acotar y bifurcar resolveremos P4, adoptando por tanto una estrategia en anchura)
6.1 Puesto que la lista de problemas a procesar no está vacía, se continúa con el problema P4 en el paso 3.
Paso 3: Solución
3.1 Se resuelve el problema P4 Solución: z = 16 para el punto (x1=1, x2=1, x3=0, x4=0.5)
Paso 4: Acotación
4.2 Ni P3 ni P4 satisfacen las condiciones de integralidad. Como la solución del problema P4 genera una cota superior a la
proporcionada por la solución del problema P3, se continua acotando desde P4. Puesto que su solución no satisface las
condiciones de integralidad (x4{0,1}) y el valor correspondiente de la función objetivo (16) está entre las cotas interior y superior,
la cota superior se actualiza de 16.2 a 16 (la solución óptima está ahora por tanto entre 9 y 16).
A continuación se procede a bifurcar sobre la variable x3 desde el problema P4, lo que da lugar a los dos problemas siguientes:
Maximizar z 4 x4 14 Maximizar z 4 x4 20
sujeto a 2 x4 1 sujeto a x 0
z z 4
x4 [0,1] x4 [0,1]
4.3 Los problemas generados en el proceso de bifurcación se añaden a la lista de problemas que han de resolverse.
18
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Binaria (continuación 4)
Paso 3: Solución
Paso 4: Acotación (No ocurre nada en este paso, al igual que en el caso anterior, se espera a resolver P6)
6.1 Puesto que la lista de problemas a procesar no está vacía, se continúa con el problema P6 en el paso 3.
Paso 3: Solución (El problema P6 es infactible; por tanto, nada tiene lugar en este paso)
Paso 5: Poda
5.2 Puesto que el problema P6 es infactible, la rama correspondiente se poda por infactibilidad.
6.1 Puesto aún están pendientes las bifurcaciones de los problemas P3 y P5, la lista de problemas a procesar no estará vacía tras las
bifurcaciones correspondientes.
Dado que el nodo P5 se ha creado más recientemente que el P3, y por tanto la resolución de los problemas obtenidos tras la
bifurcación será más eficiente que la de los asociados a P3, se continua bifurcando P5 en el paso 2.
19
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Método B&B para un PPLE Binaria (continuación 5)
Paso 2: Bifurcación
2.1 La variable que ha de ser binaria x4, mediante bifurcación da lugar a los dos problemas siguientes:
Paso 4: Acotación
4.1 Puesto que la solución de P7 satisface las condiciones de integralidad (x1, x2, x3, x4 {0,1}), y que el valor de la función objetivo
(z=14) es mayor que el valor actual de la cota inferior, ésta se actualiza de 9 a 14 (la solución óptima está por tanto entre 14 y 16),
y el maximizador encontrado se almacena como mejor candidato a maximizador del problema original.
Paso 5: Poda
P0
5.3 Puesto que la solución de P7 satisface las condiciones de integralidad (x1, x2, x3, x4 {0,1}),
x1 = 0 x1 = 1
la rama se poda por integralidad.
P1 P2
5.2 Puesto que el problema P8 es infactible, la rama correspondiente se poda por infactibilidad.
5.1 Puesto que P3 no satisface las condiciones de integralidad y además el valor de su función * x2 = 0 x2 = 1
objetivo (13) es menor que la cota superior (14), no es posible obtener soluciones mediante P3 P4
bifurcaciones adicionales de esa rama, y por tanto se poda por cotas.
* x3 = 0 x3 = 1
6.2 Puesto que la lista de problemas a procesar está vacía, el procedimiento concluye. x4 = 0 x4 = 1
*
6.3 Concluido el proceso, como hay un candidato a maximizador, este candidato es la P7 P8
solución del problema original:
Solución: z = 14 para el punto (x1=1, x2=1, x3=0, x4=0)
*
* No es posible otra bifurcación
20
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Técnicas de preprocesamiento para PPLE Binarios
En la mayoría de las ocasiones, la formulación del PPLE Binario proporcionado por el usuario puede ser inspeccionada con el fin de
reformular dicho problema de tal forma que su solución sea mucho más rápida sin eliminar ninguna región factible. Dicha reformulación
del problema original se basa en las tres técnicas siguientes:
1. Fijado de variables: Consiste en identificar aquellas variables cuyo valor puede fijarse a uno de sus posibles valores (0 ó 1) debido a
que para el otro valor la solución no es ni óptima ni factible.
2. Eliminación de restricciones redundantes: Consiste en identificar aquellas restricciones que ya están automáticamente incluidas en
otras para eliminarlas.
3. Estrechamiento de restricciones: También llamado reducción de coeficientes, consiste en endurecer ciertas restricciones con el fin
de reducir la región factible del problema relajado sin eliminar ninguna solución factible del PPLE Binario original.
1. Fijado de variables
Si un valor de una determinada variable no puede satisfacer una restricción incluso cuando el resto de variables utilizan sus mejores
valores para satisfacerla, entonces el valor de dicha variable debe ser fijado a su otro valor.
Por ejemplo, para las siguientes restricciones ≤ se puede fijar el valor de la variable x1 a 0, ya que para x1=1 las restricciones no son
satisfechas aún en el caso de utilizar los mejores valores (0 para una variable con coeficiente no negativo y 1 para una variable con
coeficiente negativo) para el resto de variables:
3 x1 2 x1 0 ya que 3(1) 2
3 x1 x2 2 x1 0 ya que 3(1) 1(0) 2
5 x1 x2 2 x3 2 x1 0 ya que 5(1) 1(0) 2(1) 2
El procedimiento general para chequear cualquier restricción ≤ consiste en identificar la variable con el mayor coeficiente positivo, y si la
suma de dicho coeficiente con el resto de coeficientes negativos es superior al término independiente situado al lado derecho de la
restricción, entonces el valor de dicha variable debe fijarse a 0. A continuación, el procedimiento debe repetirse para la siguiente variable
con el mayor coeficiente positivo, etc…
21
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Un procedimiento análogo puede utilizarse para fijar el valor de una variable a 1 en el caso de restricciones ≥, como se muestra a
continuación para la variable x1:
3 x1 2 x1 1 ya que 3(0) 2
3 x1 x2 2 x1 1 ya que 3(0) 1(1) 2
5 x1 x2 2 x3 2 x1 1 ya que 5(0) 1(1) 2(0) 2
Una restricción ≥ también nos puede permitir fijar el valor de una variable a 0, como se muestra a continuación:
A continuación se muestra otro ejemplo en el que una restricción ≥ nos permite fijar el valor de una variable a 1 y el de otra a 0:
Análogamente, una restricción ≤ con el término independiente del lado derecho negativo, permite fijar el valor de una variable a
A veces, fijar el valor de una variable en una restricción puede generar que se pueda fijar el valor de otras variables en otras restricciones.
Por ejemplo, supóngase la siguiente restricción:
y sobre x5 x6 0 da lugar a x6 0
22
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
En algunas ocasiones, es posible combinar una o más restricciones mutuamente exclusivas junto con otra restricción para fijar el valor de
alguna variable como en el ejemplo siguiente:
8 x1 42 5 x3 3 x4 2
x1 0 ya que 8(1) max 4,5 (1) 3(0) 2
x2 x3 1
Para terminar, y sin entrar en más detalles, simplemente comentar que otras alternativas para el finado de variables que incluyen criterios
de optimalidad, y que el fijado de variables puede llegar a tener un impacto dramático en la reducción del tamaño del problema pudiendo
llegar al 50% o superior.
Si una restricción funcional se satisface hasta para los peores valores de sus variables binarias, entonces es redundante y puede ser
eliminada del modelo.
• Para una restricción ≤ los peores valores de sus variables binarias son 1 siempre y cuando sus coeficientes sean no negativos y 0
en caso contrario.
• Para una restricción ≥ los peores valores de sus variables binarias son 0 siempre y cuando sus coeficientes sean no negativos y 1
en caso contrario.
En la mayoría de los casos en los que una restricción resulta ser redundante, ésta no lo era en el modelo original, pero si en el modelos
resultantes tras el fijado de variables. Como puede observarse, esto ocurre en la mayoría de los ejemplos de las dos transparencias
anteriores.
23
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
3. Estrechamiento de restricciones
Nótese ahora qué ocurre cuando la restricción funcional del problema 2 x1 3x2 4 es sustituida por esta otra x1 x2 1 :
24
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Procedimiento para el estrechamiento de restricciones
Como se ha visto en el ejemplo anterior, el método resulta bastante sencillo para dos variables, en donde la región factible es fácilmente
visualizable de forma gráfica. Sin embargo, los mismos principios para la reducción de la región factible sin eliminar ninguna solución del
problema binario original pueden aplicarse a un problema con cualquier número de variables siguiendo el procedimiento siguiente:
Sea la restricción a1 x1 a2 x2 an xn b :
n
1. Calcular S
j 1 / a j 0
aj
1. S=5
2. Tanto a1 como a2 satisfacen la restricción del punto 2. Se toma a1 arbitrariamente.
3. La nueva restricción estrechada resulta ser: x1 3 x2 3
1. S=4
2. Tan solo a2 satisface la restricción del punto 2.
3. La nueva restricción estrechada resulta ser: x1 x2 1
1. S=2
2. Ningún aj satisface la restricción del punto 2.
25
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Generación de planos de corte pata PPLE Binarios
Un plano de corte (o simplemente corte) para cualquier PPLE es una restricción funcional que reduzca la región factible de la relajación
lineal del problema original sin eliminar sin eliminar ninguna de sus soluciones factibles. Así, por ejemplo, el método de estrechamiento de
restricciones visto anteriormente puede considerarse como un método de generación de planos de corte para PPLE Binarios.
Adicionalmente, existen otra serie de técnicas para generar planos de corte que reduzcan la región factible acelerando el proceso
mediante el cual el algoritmo B&B alcanza la solución óptima. A continuación se muestra una de tales técnicas para PPLE Binarios. Para
ilustrar dicho método, considérese de nuevo el problema mostrado en el Ejemplo 3.
Maximizar z 9 x1 5 x2 6 x3 4 x4 P0
sujeto a 6 x1 3 x2 5 x3 2 x4 10 x1 = 1
x1 3 x2 5 x3 2 x4 0 P1 P2
z Algoritmo B&B con el plano de corte
x2 5 x3 2 x4 0
x1 , x2 , x3 , x4 0,1 * x2 = 0 x2 = 1
P3 P4
• En primer lugar, la solución óptima del nuevo problema relajado P0 resulta ser z = 15.2 para el punto (x1=1, x2=1, x3=0.2, x4=0), por lo
que la cota superior se actualiza de a 15.2 en lugar de a 16.5.
• En segundo lugar, se necesita una iteración menos del método B&B para alcanzar la solución óptima ya que la solución óptima del
problema relajado P5 resulta ser z = 14 para el punto (x1=1, x2=1, x3=0, x4=0), podándose por tanto dicha rama por integralidad.
A continuación la rama correspondiente al nodo P3 se poda de nuevo debido al punto 5.1 resultando la solución de P5 el óptimo.
26
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Procedimiento para la generación de un plano de corte en PPLE Binaria
1. Considérese cualquier restricción funcional del tipo ≤ con todos los coeficientes no negativos.
(b) Pero la restricción pasa a ser satisfecha si el valor de cualquier variable de la envoltura mínima pasa de valer 1 a valer 0.
3. Denotando N como el número de variables de la envoltura mínima, el plano de corte resultante tiene la forma
xi envoltura
xi N 1
mínima
2. La envoltura mínima está formada por las variables (x1, x2, x4), ya que:
(b) Pero la restricción pasa a ser satisfecha si el valor de cualquiera de las variables (x1, x2, x4) pasa de valer 1 a valer 0.
2. La envoltura mínima está formada por las variables (x1, x3), ya que:
(b) Pero la restricción pasa a ser satisfecha si el valor de cualquiera de las variables (x1, x3) pasa de valer 1 a valer 0.
27
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Método de los cortes de Gomoroy
Un método alternativo de solución de PPLE es el procedimiento de los cortes de Gomory. En esta técnica, se resuelve el problema
original relajado en el que se incluyen restricciones adicionales, que reducen la región factible sin excluir soluciones que cumplen las
condiciones de optimalidad. En cada iteración se añade una restricción que se denomina corte de Gomory. Este procedimiento genera
progresivamente una envoltura convexa de la región factible, lo que origina soluciones que cumplen las condiciones de integralidad.
Generación de un corte
La región factible del problema original es Ax = b, que empleando la partición estándar del simplex se escribe como:
x
B N B b Bx B Nx N b x B B 1 Nx N B 1b
xN
Denotando por U B 1 N y b B 1 b x B Ux N b
Puesto que la solución obtenida es básica y factible, la variables xNj, que son no básicas, son cero; por tanto, b x B , y puesto que xBi
es no entera, b ha de ser no entera.
i
Por otra parte, cada elemento uij se puede expresar como suma de una parte entera (positiva, negativa o nula), eij, y una fracción no
negativa menor que 1, fij:
uij eij f ij ; j
De forma análoga, b se puede descomponer como b e f donde ei es un entero (positivo o negativo) y f i una fracción no
i i i i
negativa menor que 1. Obsérvese que algunos f ij pueden ser cero, pero f ha de ser positivo.
i
28
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Sustituyendo uij eij f ij ; j y bi ei f i en xBi uij xN j bi , se obtiene:
j
En la ecuación anterior, el término de la izquierda ha de ser entero puesto que todas sus variables son enteras. Por tanto, el término de la
derecha también será entero.
Por otra parte, tanto fij como xNj son no negativos para todo j, por tanto el término fj
ij xN j es no negativo.
• entero, y
y puesto que los enteros que satisfacen esa condición son 0,−1,−2, . . ., entonces f i f ij xN j es un entero no positivo.
j
Por tanto f i f ij xN j 0 ó f ij xN j f i 0
j j
Esta última desigualdad se denomina corte de Gomory asociado a la variable básica xBi que ha de ser entera pero no lo es.
1. U B 1 N y b B 1 b x B Ux N b xBi uij xN j bi
j
2. uij eij f ij ; j y bi ei f i
3. f i f ij xN j 0
j
29
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Algoritmo de los cortes de Gomoroy para un PPLE
A continuación se enumeran los pasos del algoritmo de los cortes de Gomoroy para un PPLE:
Paso 1: Iniciación
1.1 Se resuelve el problema original sin restricciones de integralidad.
1.1.a Si la solución no está acotada, el problema original o no está acotado y se para.
1.2.b Si el problema es infactible, el problema original también lo es y se para.
1.2.c En cualquier otro caso, se continua con el paso siguiente.
Paso 4: Resolución
4.1 Se añade el corte de Gomory obtenido al problema previamente resuelto, se resuelve el problema resultante y se continúa con el
paso 2.
• Puesto que en cada iteración se añade una nueva restricción, debe emplearse para la resolución del problema el método simplex
dual. Esto es así puesto que al añadir una nueva restricción, el problema primal correspondiente se hace infactible pero su dual
permanece factible, aunque no óptimo.
• Por tanto, para resolver el nuevo problema puede partirse de la solución dual del problema previo (sin restricción adicional), lo que
supone una ventaja computacional importante.
30
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Ejemplo 4: Algoritmo de los cortes de Gomoroy
Maximizar z 120 x1 80 x2
sujeto a 122 x1 0 x2 6
7 x1 8 x2 28
z
x1 , x2 0
x1 , x2
Paso 1: Iniciación
x2 ≥ 0
x* 20
b x B 1* 149 x1 ≥ 0
1 2 3 x1
x2 9
31
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Algoritmo de los cortes de Gomoroy (continuación 1)
1
2 1 1 0 89 91 7 2 14
U B N 1
7 2
xBi uij xN j bi x2 x3 x4
7 8 0 1 9 9 j 9 9 9
x2
Por tanto, se obtiene:
7 2 2 2x1 + x2 ≤ 6 7x1 + 8x2 ≤ 28 Primer corte
u21 e21 f 21 1 f 21
9 9 9 x1 + x2 ≤ 7/2
3
2 2 2
u22 e22 f 22 0 f 22
9 9 9
14 5 5 2
b2 e2 f 2 1 f2
9 9 9
1
5 2 2 x3
Y el corte resulta ser: fi f ij xN j 0 0
j 9 9 9 x4 x2 ≥ 0
1 2 3 x1
x3 x4 5
2
x1 ≥ 0
Nótese que este corte puede expresarse en función de las variables originales x1 y x2, de la forma siguiente. Empleando las
restricciones de igualdad del problema relajado en forma estándar, x3 y x4 pueden expresarse en función de x1 y x2 :
x3 6 2 x1 x2
x4 28 7 x1 8 x2
Así, el corte en función de las variables x1 y x2 resulta ser x1 x2 72 , que como puede verse en la figura da lugar a una
reducción efectiva de la región factible y, sin embargo, no se excluye ninguna solución entera.
32
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Algoritmo de los cortes de Gomoroy (continuación 2)
Paso 4: Resolución
4.1 Se resuelve el nuevo problema con el primer corte añadido como restricción adicional. Obsérvese que el corte de Gomory se
escribe incluyendo una variable artificial x5:
x2
Maximizar z 120 x1 80 x2
sujeto a 122 x1 0 x2 x3 x4 x5 6 2x1 + x2 ≤ 6 7x1 + 8x2 ≤ 28 Primer corte
127 x1 8 x2 x3 x4 x5 28 x1 + x2 ≤ 7/2
z 3
x3 x4 x5 5
2
x1 , x2 , x3 , x4 , x5 0 2
x1* 52
1
Solución: z = 380 para el punto (x1=5/2, x2=1) b x B x2* 1
x* 5
4 2 x2 ≥ 0
1 2 3 x1
Paso 3: Generación de un corte x1 ≥ 0
3.1 Si se emplea la variable x1 para generar un corte de Gomory, se obtiene:
1
2 1 0 1 0 1 19
2
1 5
U B 1 N 7 8 1 0 0 1 9
xBi uij xN j bi x1 x3 x5
0 0 1 1 1 1 1 j 9 2
33
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Algoritmo de los cortes de Gomoroy (continuación 3)
Paso 4: Resolución
4.1 Se resuelve el nuevo problema con el primer corte añadido como restricción adicional. Obsérvese que el corte de Gomory se
escribe incluyendo una variable artificial x6:
x2
Maximizar z 120 x1 80 x2
sujeto a 122 x1 0 x2 x3 x4 x5 x6 6 2x1 + x2 ≤ 6 7x1 + 8x2 ≤ 28 Primer corte
127 x1 8 x2 x3 x4 x5 x6 28 x1 + x2 ≤ 7/2
3
z x3 x4 x5 x6 5
2
Segundo corte
x5 x6 16
9
2 x1 + x2 ≤ 55/16
x1 , x2 , x3 , x4 , x5 , x6 0
x1* 16
41
* 7 1
b x B 2* 498
Solución: z = 377.5 para el punto (x1=41/16, x2=7/8)
x
x 16
4* 9 x2 ≥ 0
Paso 3: Generación de un corte x5 16 1 2 3 x1
x1 ≥ 0
3.1 Si se emplea la variable x2 para generar un corte de Gomory, se obtiene:
1
2 1 0 0 1 0 1 19
2
7 8 1 0 0 0 1 2 7
1
UB N 9 xBi uij xN j bi x2 x3 x6
0 0 1 1 1 0 1 1 j 9 8
0 0 0 1 0 1 0 1
u21 e21 f 21 1 1 0 f 21 0 7 2 x3
2 2 2 fi fij xN j 0 0 0
u22 e22 f 22 0 f 22 j 8 9 x6
9 9 9
63
b2 e2 f 2
7
0
5
f2
7 x6 ó x1 x2 3
8 8 8 16
34
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Solución: Algoritmo de los cortes de Gomoroy (continuación 4)
Paso 4: Resolución
4.1 Se resuelve el nuevo problema con el primer corte añadido como restricción adicional. Obsérvese que el corte de Gomory se
escribe incluyendo una variable artificial x7:
x2
Maximizar z 120 x1 80 x2
sujeto a 122 x1 0 x2 x3 x4 x5 x6 x7 6 2x1 + x2 ≤ 6 7x1 + 8x2 ≤ 28 Primer corte
127 x1 8 x2 x3 x4 x5 x6 x7 28 x1 + x2 ≤ 7/2
3
x3 x4 x5 x6 x7 5
z 2
Segundo corte
x5 x6 x7 169 x1 + x2 ≤ 55/16
2
x6 x7 63
16
x1 , x2 , x3 , x4 , x5 , x6 , x7 0 Tercer corte
1 x1 + x2 ≤ 3
(solución óptima)
Solución: z = 360 para el punto (x1=3, x2=0) x2 ≥ 0
1 2 3 x1
x1 ≥ 0
//Variables de decisión
Solución: z = 360 para el punto (x1=3, x2=0) dvar int+ x1;
dvar int+ x2;
//Función objetivo
maximize 120*x1 + 80*x2;
//Restricciones
subject to {
solution (optimal) with objective 360: 2*x1 + x2 <= 6;
x1 = 3; 7*x1 + 8*x2 <= 28;
x2 = 0; }
35
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Ejercicio 1:
Una empresa manufacturera transforma materia prima en dos productos distintos. Esta empresa dispone de 6 unidades de materia prima
y 28 horas de tiempo productivo. La manufactura de una unidad del producto I requiere 2 unidades de material y 7 horas de tiempo,
mientras que la producción del producto II requiere 1 unidad de material y 8 horas de tiempo. Los precios de venta de los producto I y II
son 120 y 80 euros respectivamente. Determínese el número de productos de cada tipo que ha de producir la empresa para maximizar su
beneficio.
Ejercicio 2:
Un operario especializado ha de reparar una instalación de alta montaña. Es conveniente que lleve consigo 5 equipos diferentes de
reparación. Sin embargo, el peso máximo a transportar está limitado a 60 unidades. El peso de cada equipo y un parámetro que
cuantifica su utilidad esperada aparecen en la siguiente tabla.
Equipo 1 2 3 4 5
Peso (unidades) 52 23 35 15 7
b) Comprobar si puede utilizarse alguna de las técnicas de preprocesamiento para PPLE Binarios estudiados.
b) Resuélvase el nuevo mediante B&B el problema obtenido tras dicho preprocesamiento e introducción de los planos de corte.
36
A. HERRÁN, INTRODUCCIÓN A LA PROGRAMACIÓN MATEMÁTICA, MÁSTER UNIVERSITARIO EN INGENIERÍA DE SISTEMAS Y DE CONTROL
Rafael del Vado Vírseda
[email protected]