Expooo

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Integrantes Código

 García Morales Alejandro Gonzalo 2017011809


 Vera Roa Lucila Gabriela 2018021185
 Cruz Medina Rivet Rafael 2017008347
 Chinguel Castillo Manuel Eduardo 2018004834
Facultad: Facultad de Ingeniería Industrial y de Sistemas.
Escuela: Ingeniería Industrial.
Curso: Investigación de Operaciones.
Docente: Benavides Miranda María Adelina.
Tema: Programación Entera.

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

En la vida diaria, usualmente surgen situaciones en que necesitamos identificar


valores óptimos, pero esos valores deben ser cantidades representadas como
personas, decisiones de si o no o medidas exactas, en pocas palabras, se necesita
representarlas con cantidades enteras. Existen métodos dentro de la Investigación
de Operaciones que pueden resolver este tipo de problemas, pero con el
inconveniente de que pueden arrojar valores decimales, por ello existen otros
métodos como la programación entera, el cual se verá en el presente informe. Un
modelo de Programación
Entera es aquel
cuya solución óptima tiene
sentido solamente si una
parte o todas las variables
de decisión toman valores
restringidos a números
enteros, permitiendo
incorporar en el
modelamiento matemático
algunos aspectos que quedan fuera del alcance de los modelos de Programación
Lineal.

En este sentido los algoritmos de resolución de los modelos de Programación Entera


difieren a los utilizados en los modelos de Programación Lineal, destacándose entre
ellos el Algoritmo de Ramificación y Acotamiento (o Branch & Bound), Branch & Cut,
Planos Cortantes, Relajación Lagrangeana, entre otros.

A continuación, se describirá con detalle el método de programación entera, sus


métodos de resolución, sus aplicaciones y algunos problemas aplicativos y su
procedimiento de resolución en software.

3
2. MARCO TEÓRICO

2.1) Definición:

Programación Lineal Entera


Los modelos de programación entera son una extensión de los modelos lineales en
los que algunas variables toman valores enteros. Con frecuencia las variables
enteras solo toman valores en 0-1, ya que este tipo de variables permiten
representar condiciones lógicas. Este tipo de modelos permite representar sistemas
mucho más complejos. A cambio, la resolución de estos se complica excesivamente.
No se puede utilizar la suavidad de las funciones para inferir el comportamiento de
estas cerca del óptimo.
La división del tema es la siguiente:

4
2.2) Programación Binaria:

Supongamos ahora que las variables pueden tomar sólo valores 0 o 1.


Ahora no se tienen que agregar restricciones adicionales a los subproblemas sino
determinar que una variable toma valor 0 o toma valor 1.
El número máximo de problemas a examinar es O(2n), para un problema con n
variables binarias (profundidad n).
La relajación lineal se obtiene reemplazando cada restricción de binariedad por
0≤xj≤1para cada variable.

2.2.1) Ejemplo Prototipo:

La CALIFORNIA MANUFACTURING COMPANY analiza la posibilidad de llevar a cabo


una expansión mediante la construcción de una nueva fábrica ya sea en Los Ángeles
o en San Francisco, o tal vez en ambas ciudades. También piensa en construir, a lo
sumo, un nuevo almacén, pero la decisión sobre el lugar en donde lo instalará está
restringida a la ciudad donde se construya la nueva fábrica.

En la cuarta columna de la tabla se muestra el valor presente neto —rendimiento


total que toma en cuenta el valor del dinero en el tiempo— de cada alternativa. En la
última columna se proporciona el capital que se requiere —incluido el valor presente
neto— para las respectivas inversiones, donde el capital total disponible es de 10
millones de dólares. El objetivo es encontrar la combinación factible de alternativas
que maximice el valor presente neto total.
5
>>Solución:

Sea Z=5 valor presente neto de estas decisiones.


Si se hace la inversión para construir una instalación dada —de manera que la
variable de decisión correspondiente tenga valor de 1—, el valor presente neto
estimado de estas inversiones aparece en la cuarta columna de la tabla.
Si la inversión no se hace —y, por tanto, la variable de decisión es igual a 0—, el
valor presente neto es 0.
Entonces, con unidades de millones de dólares:

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:

Como las últimas dos decisiones representan alternativas mutuamente excluyentes


—la compañía quiere construir cuando mucho un almacén nuevo—, se necesita la
restricción:

Aún más, las decisiones 3 y 4 son contingentes —o condicionales— porque


dependen de las decisiones 1 y 2, respectivamente (la compañía consideraría la
construcción de un almacén en determinada ciudad sólo si la nueva fábrica va a
estar ahí). Por tanto, en caso de tomar la decisión 3, se requiere que:
x3 = 0 si x1 = 0. Esta restricción sobre x3 (cuando x1 = 0) se impone al agregar la
restricción x3 ≤ x1. De manera similar, el requerimiento de que x4 = 0 si x2 = 0 se
6
impone con la restricción x4 ≤ x2. Por tanto, después de escribir de nuevo estas dos
restricciones para que todas las variables queden en el lado izquierdo, el modelo
completo de PEB es:
Maximizar
sujeta a:

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:

2.2.2.1) Análisis de Inversión:

En ocasiones se usa programación lineal para tomar decisiones de presupuesto de


capital acerca de cuánto invertir en diferentes proyectos. Sin embargo, como lo hace
evidente el ejemplo de la California Manufacturing, algunas decisiones de
presupuestos no se refieren a cuánto invertir sino al hecho de si debe invertirse una
cantidad fi ja. En especial, las cuatro decisiones del ejemplo eran si invertir una
cantidad fi ja que es requerida para construir cierto tipo de instalación (fábrica o
almacén) en determinado lugar (Los Ángeles o San Francisco). La administración
suele encontrarse en situaciones de decisión sobre si hacer una inversión fi ja (en las
cuales la cantidad de capital se establece desde antes. ¿Debe adquirirse una
subsidiaria en proceso de cierre de otra compañía? ¿Debe preferirse a cierto
proveedor de materia prima? ¿Debe agregarse una nueva línea de producción para
fabricar cierto subensamble en lugar de continuar con determinado proveedor? En
general, las decisiones de presupuestos de capital sobre inversiones fijas son
decisiones sí o no del tipo siguiente.

2.2.2.2) Elección del sitio:

En la economía globalizada, muchas corporaciones instalan nuevas plantas en


diversas regiones del planeta para aprovechar la mano de obra más barata y otras
ventajas. Antes de elegir la ubicación de esas instalaciones, deben analizarse y
compararse muchos sitios potenciales. (El ejemplo de la California Manufacturing
Co., tenía sólo dos sitios potenciales para cada una de dos tipos de instalaciones.)
Cada ubicación potencial involucra una decisión sí o no del siguiente tipo.

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?

2.2.2.4) Despacho de envíos:

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:

En la vida diaria, todas las personas programan actividades interrelacionadas, aun si


sólo implican organizar el inicio de las tareas de la escuela. Los administradores
también deben programar varios tipos de actividades interrelacionadas. ¿Cuándo se
debe iniciar la producción de las nuevas órdenes? ¿Cuándo deben comercializarse
los nuevos productos? ¿Cuándo deben realizarse las inversiones de capital para
ampliar la capacidad de producción?
Para cualquier actividad como éstas, la decisión acerca de cuándo comenzar se
puede expresar en términos de una serie de decisiones sí o no, una de ellas para
cada momento posible de inicio, como se muestra en seguida.
¿Debe cierta actividad comenzar en un momento dado?

2.2.2.6) Aplicaciones a Líneas aéreas:

La industria de líneas aéreas es un usuario constante de la IO en todas sus


operaciones. Cientos de profesionales de la Investigación de Operaciones trabajan
en esta área. Por lo general, las compañías aéreas más importantes tienen un
departamento propio que trabaja en aplicaciones de IO. Además, hay algunas firmas
de consultoría prominentes que se enfocan sólo en los problemas de compañías
relacionadas con el transporte, en especial las líneas aéreas. Mencionaremos dos de
las aplicaciones que se basan en PEB de manera directa.
Uno es el problema de asignación de flota. Dados varios modelos de aviones
disponibles, el problema es asignar un tipo específico a cada tipo de trayecto de
manera que se maximice la ganancia total si se cumple con lo programado. El
trueque básico estriba en que, si la línea aérea usa un avión demasiado pequeño en
un trayecto dado, dejará clientes potenciales en tierra, mientras que, si asigna uno
demasiado grande, tendrá un gasto mucho mayor y volará con asientos vacíos.
Para cada combinación de tipo de avión y trayecto, se tiene la siguiente decisión sí o
no.

10
¿Debe asignarse cierto tipo de avión a un trayecto en particular?

2.2.3) Usos innovadores de variables binarias en la


formulación de modelos:

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).

2.2.3.1) Restricciones de tipo una u otra:

Considere el importante caso en el que se debe elegir entre dos restricciones, de


manera que sólo una (cualquiera de las dos) se tiene que cumplir (mientras que la
otra puede cumplirse, pero no es imprescindible que lo haga). Por ejemplo, puede
existir la opción de usar uno de dos tipos de recursos para cierto propósito, de
manera que sólo es necesario que una de las restricciones de disponibilidad de estos
recursos se cumpla en forma matemática. Para ilustrar este tipo de situaciones,
suponga que uno de los requerimientos en el problema completo es que:
11
Es decir, al menos una de estas dos desigualdades debe cumplirse, pero no
necesariamente las dos. Este requerimiento debe reformularse para que el
problema se ajuste al formato de programación lineal, en el que se deben cumplir
todas las restricciones especificadas. Si M es un número positivo muy grande, la
expresión anterior se puede reescribir como:

La clave es que al agregar M al lado derecho de una restricción de este tipo se


obtiene el efecto de eliminarla, puesto que cualquier solución que satisfaga las otras
restricciones del problema cumplirá ésta de manera automática. (Esta formulación
supone que el conjunto de soluciones factibles del problema completo es un
conjunto acotado y que M es lo suficientemente grande como para no eliminar
ninguna de las soluciones factibles.) Esta formulación es equivalente al conjunto de
restricciones

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.)

2.2.3.2) “Deben cumplirse K de N restricciones”:

Considere la situación en la que el modelo completo incluye un conjunto de N


restricciones posibles entre las que sólo K de ellas se deben cumplir. (Suponga que
K<N.) Parte del proceso de optimización es elegir la combinación de K restricciones
que permita que la función objetivo adquiera el mejor valor posible. En realidad, las
N - K restricciones que no se eligen son eliminadas del problema, aun cuando por
coincidencia las soluciones factibles puedan satisfacer algunas de ellas. Este caso es
una generalización directa del anterior que tenía K = 1 y N = 2. Denote las N
restricciones posibles por:

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.

2.2.3.3) Problema de costo fijo:

Es bastante común incurrir en un cargo de preparación o costo fijo cuando se


emprende una actividad. Por ejemplo, un cargo así ocurre cuando se inicia una
corrida de producción de un lote pequeño de un producto específico y deben
prepararse las instalaciones fabriles que se requieren. En tales casos, el costo total
de la actividad es la suma de un costo variable relacionado con el nivel de la
actividad y el costo fijo en el que se incurre para iniciarla. Con frecuencia, el costo
variable estará muy cerca de ser proporcional al nivel de la actividad. Si lo es, el
costo total de la actividad (por ejemplo, j) se puede representar mediante una
función de la forma:

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:

Sujeta a las restricciones de programación lineal dadas.


Para convertir este problema al formato de programación entera mixta, se comienza
por proponer las preguntas que deban responderse con sí o no; por ejemplo, para
cada j = 1, 2, . . ., n, ¿debe emprenderse la actividad j (xj >0)? Después, cada una de
estas decisiones sí o no se representa por una variable binaria yj, de manera que:

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:

3. TÉCNICA DE RAMIFICACIÓN Y ACOTAMIENTO


PARA LA PROGRAMACIÓN ENTERA BINARIA:

En la práctica, la mayoría de los problemas de programación entera se resuelven


mediante el uso de la técnica de ramificar y acotar.
Los métodos de ramificar y acotar encuentran la solución óptima para un problema
de programación entera mediante la enumeración eficiente de los puntos en la
región factible.
Antes de explicar cómo funciona la ramificación y el acotamiento, es necesario hacer
la siguiente observación: si se resuelve un problema de programación entera
mediante la relajación de un problema de programación lineal y se obtiene una
solución en la cual todas las variables son números enteros, entonces la solución
óptima de la relajación de programación lineal será también la solución óptima de
programación entera.
El método de ramificar y acotar consiste en descomponer el problema original en
una sucesión de subproblemas hasta identificar la solución óptima.

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:

La estructura de este algoritmo fue desarrollada por R. J. Dakin, con base en un


algoritmo anterior que se debe a A. H. Land y A. G. Doig.
La estructura de este algoritmo es bastante parecida a la del algoritmo de PE.
De nuevo la solución de un relajamiento de PL proporciona la base para la
solución de los problemas, a continuación, se explicará paso por paso:
• Paso 1. (iniciación). Se establece una cota superior (∞) y una cota inferior
(−∞) de la solución óptima. Se resuelve el PEM inicial relajando las
restricciones.
Si el problema relajado es infactible, el original también lo es y no hay solución.
Si la solución obtenida satisface las condiciones, es óptima. En cualquier otro caso,
se actualiza el valor de la cota inferior con el valor de la función objetivo del
problema relajado.
• Paso 2. (ramificación). Empleando la variable xj que ha de ser entera y no lo
es, se generan mediante ramificació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 ramificación son los siguientes. El
primer problema es el PPLEM inicial relajado al que se la añade la restricción
xk ≤ a; análogamente, el segundo es el PPLEM inicial relajado al que se le
añade la restricción xk ≥ a + 1. 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 ramificación propuesta cubre
completamente el espacio de soluciones.
• Paso 3. (solución). Se resuelve el problema siguiente en la lista de problemas
a procesar.
• Paso 4. (actualización de cotas). 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, la cota superior 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.

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.

>>Estrategias de ramificación y procesamiento

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

Después de realizar las evaluaciones correspondientes y utilizar los métodos ya


conocidos y mencionados con anterioridad, se concluye que los problemas de PE
surgen con frecuencia cuando los valores de algunas o de todas las variables
de decisión deben restringirse a valores enteros. Existen también muchas
aplicaciones que necesitan decisiones sí o
no (aquí se incluyen las relaciones
combinatorias que pueden expresarse en
términos de tales decisiones) que se
puede representar por variables binarias
(0-1). Estos factores
han hecho que la programación entera
sea una de las técnicas de IO de mayor
aplicación. Se sugiere la utilización de
softwares como Solver, Tora o LINDO
para la resolución rápida y elaboración
de informes detallados.
En la actualidad es común que se disponga de paquetes de computadora para
algoritmos de PE en el software de programación matemática. Estos algoritmos casi
siempre se basan en la técnica de ramificación y acotamiento o en alguna variación
de ésta. Hoy en día, los algoritmos más modernos de PE emplean el enfoque de
ramificación y corte. Este enfoque algorítmico involucra la combinación del
preprocesado automático del
problema, la generación de cortes
y las técnicas de ramificación y
acotamiento. Continúa la
investigación en esta área, junto
con el desarrollo de paquetes de
software elaborados para
incorporar estas técnicas.
El último desarrollo en PE es
comenzar a incorporar la
programación de restricciones.
En apariencia este enfoque expandirá de manera considerable la capacidad de
formular y resolver problemas de PE.

29
7. BIBLIOGRAFÍA

Hieller, Frederick S. y Lieberman, Gerald J. Introducción a la Investigación de Operaciones, Novena edición.


s.l. : Mc Graw Hill.

http://dspace.unitru.edu.pe/bitstream/handle/UNITRU/8128/AGUSTIN%20SANGAY%2C%20Julio%20C%
C3%A9sar.pdf?sequence=1&isAllowed=y. [En línea]

http://www.dia.fi.upm.es/~jafernan/teaching/operational-research/LibroCompleto.pdf. [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.dm.uba.ar/materias/investigacion_operativa/2010/2/cap4_05.pdf. [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

También podría gustarte