Está en la página 1de 34

ÍNDICE

ÍNDICE .......................................................................................................................................................................1

UNIDAD 4 – PROGRAMACIÓN ENTERA ...............................................................................................2

4.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN............................................................................2

4.1.1. INTRODUCCIÓN. ...............................................................................................................................2

4.1.2. CASOS DE APLICACIÓN ..............................................................................................................5

4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA ......................9

4.2.1. DEFINICIÓN..........................................................................................................................................9

4.2.2. DESCRIPCIÓN DEL MÉTODO ................................................................................................ 10

4.2.3. EL MODELO PEB............................................................................................................................ 11

4.3. MÉTODO DE GOMORY ....................................................................................................................... 16

4.4. MÉTODO DE BIFURCACIÓN Y ACOTAMIENTO ................................................................... 25

CONCLUSIÓN .................................................................................................................................................... 32

BIBLIOGRAFÍA ................................................................................................................................................... 33

PROGRAMACIÓN ENTERA 1
UNIDAD 4 – PROGRAMACIÓN ENTERA
4.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN.

4.1.1. INTRODUCCIÓN.
Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser
valores enteros como por ejemplo: números de unidades a producir por máquina, número de
máquinas necesarias, etc. Parte del problema de la programación entera radica en la
diferencia esencial que existe la programación lineal y la entera, en la programación lineal se
maximiza o minimiza una función sobre una región de factibilidad convexa, mientras que al
usar los métodos de programación entera se maximiza una función sobre una región de
factibilidad que generalmente no es convexa. De tal manera que la programación entera tiene
más complicaciones que la programación lineal. En este tema se presenta un tipo de
problemas formalmente similares a los problemas de Programación Lineal, ya que en su
descripción solo se establecen expresiones lineales. Sin embargo no responden a problemas
lineales ya que algunas (o todas) las variables del problema toman valores que no están en
un conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o 1(binarias),
o variables que toman valores enteros no negativos (0, 1,2,...), etc. Tras introducir el tipo de
problemas se dedica un importante apartado para presentar las posibilidades de modelado
que esta herramienta proporciona: problemas binarios, problemas de carga, problemas con
restricciones condicionales o con dicotomías, etc. Tras dedicar una parte importante del tema
a presentar estas herramientas de modelado y a plantear numerosos problemas con ellas se
procede a mostrar dos métodos de resolución. Uno de ellos dedicado a problemas en los que
todas las variables son binarias y otro para problemas generales. Ambos métodos tienen en
común que desarrollan un proceso de enumeración que permite comprobar explícita o
implícitamente todas las soluciones del problema hasta encontrar la óptima, y entran dentro
del tipo de métodos de ramificación y acotación.

En algunos casos se requiere que la solución óptima se componga de valores enteros


para algunas de las variables. La resolución de este problema se obtiene analizando las

PROGRAMACIÓN ENTERA 2
posibles alternativas de valores enteros de esas variables en un entorno alrededor de la
solución obtenida considerando las variables reales. Muchas veces la solución del
programa lineal truncado está lejos de ser el óptimo entero, por lo que se hace necesario
usar algún algoritmo para hallar esta solución de forma exacta. El más famoso es el
método de “Ramificación y Acotación” o “Branch and Bound” por su nombre en inglés. El
método de Ramificación y Acotación, parte de la adición de nuevas restricciones para
cada variable de decisión (acotar) que al ser evaluado independientemente (ramificar)
lleva al óptimo entero.

La programación entera se divide en 3 tipos de modelos:

 Programación Entera Pura: Todas las variables de decisión tienen valores enteros.

 Programación Entera Mixta (PEM): Algunas de las variables de decisión tienen
valores enteros. Las demás cumplen con la suposición de divisibilidad.

 Programación Entera Binaria (PEB): Utiliza variables binarias.

PROGRAMACIÓN ENTERA 3
• Método gráfico.
• Método de plano de
Métodos corte.
de solución • Métodos de Lang-
Doing.
• Enumeración implícita.

• Lingo/Lindo
Herramientas • Excel
computacio-
nales • Mpl/Cplex
• TORA

• Puro
Tipos de
• Binario
modelos
• Mixto

• Wagner
Origen • Manner
• Gomory

PROGRAMACIÓN ENTERA 4
4.1.2. CASOS DE APLICACIÓN.
A continuación se presenta la variedad de problemas que caen dentro de la programación
entera y binaria:

a) Todos los problemas de programación lineal, donde las actividades, por su


estructura deben ser no-divisibles, son programas enteros. Por ejemplo problemas
de producción de automóviles, prendas de vestir, etc. ¿Qué significado tendría la
producción de 577.83 automóviles?

b) Todos los problemas de transporte, asignación y redes de optimización. Este tipo


de problemas son enteros y dada la estructura tan especial de estos problemas,
tienen métodos de solución propios.

c) Problemas de secuenciación. Este tipo de problemas aunque son fáciles de formular,


resultan bastantes difíciles de resolver. Se supone por ejemplo en el caso de un taller
que puede efectuar un solo tipo de trabajo a la vez (orden i ), el que se
Tiene contratado a entregar en días, a partir de una>0 cierta fecha base, y que
además tiene una gran duración de trabajo de ( ) días y al cuales asocian una
multa de pesos por día de retrasos después de los días estipulados. Se supone
que el taller recibe n órdenes de trabajo en la fecha base. ¿Cuál debe ser el orden de
secuenciación de trabajos que minimice el costo penal total?

d) El problema del agente viajero. Este problema concierne en un agente viajero que
saliendo de una terminal de ciudad debe visitar una sola vez n-1 ciudades diferentes,
y regresar al punto de partida. Si el costo de dirigirse a la ciudad j desde la ciudad i
es ( ≠ ), se debe terminar la secuencia de visita de ciudades, tal que el costo
total asociado sea el mínimo. Este problema se presentó por

PROGRAMACIÓN ENTERA 5
primera vez en 1960, en un artículo de Miller, Tucker, Zemling, pero hay una
variedad de métodos que resuelven el problema dependiendo del tamaño de n, el
número de ciudades.

e) Problema tipo mochila. Este tipo de problemas de optimización de carácter entero


puede darse en dos versiones. En la primera se proporciona un cierto espacio con
determinado volumen o capacidad, y este debe ser llenado con objetos de valor y
volumen o capacidades especificados. El problema consiste en llenar ese espacio con
el conjunto de objetos más valioso, sin exceder los límites físicos de dicho espacio.
La segunda versión consiste en dividir a un objeto en varias porciones de diferente
valor, el problema consiste en encontrar la división de mayor valor.

f) Problemas de inversión. Se supone por ejemplo que el organismo Nacional Financiera


S.A., tiene que escoger una alternativa en cada uno de tres proyectos de inversión. El
primer proyecto está relacionado con la construcción de partes de generadores
eléctricos. El segundo proyecto con el ensamblado de esas partes de generadores
eléctricos y el tercer proyecto con la distribución y venta de los generadores eléctricos
incluyendo a su posible exportación. Cada proyecto tiene una serie de alternativas.
Asociadas a cada alternativa se tiene calculado el valor presente del retorno total de
la inversión (en millones de pesos), el número de empleos que se generan y el flujo
de inversión (en millones de pesos) que se necesitan para los próximos 5 años. Las
restricciones del sistema son que no hay capacidad económica para generar más de
10 mil empleos y que los flujos máximos de capital son 700 millones en el año 1, 300
millones en el año 2, 150 millones respectivamente en los años 3,4 y 5. ¿Qué
alternativas conviene seleccionar de los proyectos I, II y III a fin de maximizar el
ingreso total neto anual?

PROGRAMACIÓN ENTERA 6
g) Problemas con costos fijos. Todos los problemas que en su función de costo
influyen un costo fijo del siguiente tipo
0 , si ,

≤ ≤
Costo total para la variable = f ( )= 0 , j=1,2,…n

+ , si >0

pertenece al grupo de problemas enteros. Este tipo de costos aparecen


frecuentemente en problemas de transportes, inventarios, localización de plantas,
distribución geográfica de electores, etc.

h) Problemas de cubrimiento y partición de un conjunto. Este tipo de modelos de


carácter entero se ha utilizado en problemas de acceso de información,
programación de entrega de paquetería por transporte terrestre, distribución
política electoral, problemas matemáticos de coloración y programación de
horarios de tripulación aéreos, ferrocarrileros, terrestres y marítimos.

i) Dicotomías y problemas de aproximación. Una dicotomía ocurre en un programa


matemático cuando se tienen condiciones de tipo esta restricción o la otra
restricción, pero no ambas. Este tipo de condiciones se pueden representar por
medio de una estructura entera.

j) Balance de líneas de producción. Este tipo de problemas consisten en decidir qué


actividades deben se desempeñadas por cada trabajador, a medida que un
producto se desplaza por una línea de producción. El objetivo consiste en

PROGRAMACIÓN ENTERA 7
Minimizar el número de trabajadores (o estaciones de trabajo o actividades) en
función de una tasa de producción.

k) Asignación cuadrática. Este tipo de problemas apareció en los problemas de


localización, existe un conjunto de n posibles lugares en donde se piensa construir n
plantas industriales m<n. sea el costo unitario de transporte de lugar i al lugar

j y sea el volumen que se debe transferir de la planta industrial k a la planta


industrial p.

PROGRAMACIÓN ENTERA 8
4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y
BINARIA

4.2.1. DEFINICIÓN
El modelo de programación entera es sencillamente la programación lineal solo que con
la característica de que la programación entera tiene una restricción de que todas las
variables sean valores enteros a este tipo de modelos se les llama programación entera
pura.

Esto nos quiere decir que la metodología para resolver los problemas de programación
entera es prácticamente el mismo que para hacer la programación lineal.

La programación entera mixta (PEM) se ocupa solo cuando algunas de las variables
deben ser enteros y la suposición de divisibilidad se cumple para el resto.

Esto se da cuando algunos datos deben ser enteros como la cantidad de personal dentro
de una empresa ya que no se pueden asignar 2.5 empleados se deben redondear a 3
pero dentro del mismo modelo se asigna el salario ya que puede ser $2000.50 a estos
modelos se les reconoce por (PEM).

Las programaciones enteras binarias son aquellas donde incluyen decisiones de si o no


que están interrelacionadas. En las decisiones de este tipo solo hay 2 posibles respuestas
a este tipo de decisiones se les puede representar mediante variables de decisión
restringidas a 2 valores, por ejemplo 0 y 1, así la j-ésima decisión si o no se puede
representar por , tal que:

˂1 si la decisión j es si o 0 si la decisión j es no.

A este tipo de problemas de programación entera binaria también se les conoce como
problemas 0-1 de programación entera.

PROGRAMACIÓN ENTERA 9
4.2.2. DESCRIPCIÓN DEL MÉTODO
Lo primero que se debe saber, es que al ser las decisiones de Si o No, todas las variables
de decisión tienen la forma binaria. La representación de lo anterior queda así:

Cuando al escoger una opción, no se nos permite escoger otra, se dice que ambas son
mutuamente excluyentes, esta restricción se representa como la sumatoria de ambas ≤ 1, ya
que eso indica que entre ambas puede haber solo 1 (solo una de las 2) o 0 (ninguna
de ellas).

+ ≤1
En el caso en que una opción solo se pueda escoger habiendo elegido otra con anterioridad,
se dice que son contingentes o condicionales, esta restricción se representa poniendo que la
variable dependiente es ≤ a la variable independiente, de la siguiente
manera:

=

=
Pero para colocar lo anterior como restricción válida para modelación, se debe igualar a
0.
− ≤0
Como paso final para modelar se ponen las restricciones ≤ 1 y ≥ 0 para indicar que solo
entre esos valores pueda estar la optimización.
≤1

≥0

PROGRAMACIÓN ENTERA 10
Donde:

j= Número de variables de decisión.

Ejemplo:

A continuación se presenta un problema del cual se hará el modelaje y se darán los pasos
para desarrollarlo en programación entera binaria.

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

4.2.3. EL MODELO PEB

Aun cuando este problema se puede resolver con un simple razonamiento - construir
fábricas en ambas ciudades, pero ningún almacén—, se formulará como ejemplo.

Sea:

Z= valor 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 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.

PROGRAMACIÓN ENTERA 11
TABLA 1 Datos del ejemplo de la California Manufacturing Co.

Variable de Valor
Número de Pregunta Si o No decisión presente Capital
decisión neto requerido
1 ¿Construir la fábrica $9 millones $6 millones
en Los Ángeles?
2 ¿Construir la fábrica $5 millones $3 millones
en San Francisco?
3 ¿Construir el $6 millones $5 millones
almacén en Los
Ángeles?
4 ¿Construir el $4 millones $2 millones
almacén en San
Francisco?

Entonces, con unidades de millones de dólares, la F.O queda:

Z=9x1 +5x2 +6x3 +4x4.

La última columna de la tabla indica el capital que se gastará en las cuatro instalaciones,
y dice que no puede exceder a 10 millones de dólares. Entonces, la primera restricción
sería:

6x1 +3x2 +5x3 +2x4 10.

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

+ ≤1

PROGRAMACIÓN ENTERA 12
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


De manera similar, el requerimiento de que x = 0 si x = 0 se impone con la restricción:

≤4
2

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 Z= 9 +5 +6 + 4

s.a

6 +3 +5 + 2 ≤ 10

+ ≤1

- + + ≤0

- + ≤0

≤1

≤0

es entera , para j = 1, 2 ,3 ,4.


De manera equivalente las 3 últimas líneas de este modelo se puede sustituir por una
sola restricción.

es binaria para j= 1, 2 ,3 ,4

Excepto por su tamaño pequeño, 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 son 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. 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.

Punto óptimo

=1

=0

=0

=0

PROGRAMACIÓN ENTERA 14
X1 X2 X3 X4 S1 S2 S3 S4 S5 BFS
Z(max) 0 4 3 5 0 0 0 0 9 9
S1 0 -3 -1 -4 1 0 0 0 -6 4
S2 0 0 1 1 0 1 0 0 0 1
S3 0 1 2 1 0 0 1 0 1 1
S4 0 -1 0 1 0 0 0 1 0 0
X1 1 1 1 1 0 0 0 0 1 1

Función objetivo en el punto óptimo 9.

Igual que en el ejemplo de la California Manufacturing Co., con frecuencia los


administradores enfrentan decisiones de sí o no. Por tanto, la programación entera
binaria (PEB) se usa de manera considerable como ayuda para tomar estas decisiones.

PROGRAMACIÓN ENTERA 15
4.3. MÉTODO DE GOMORY
Publicado en 1958 por Ralph Gomory, el método de Gomory mejor conocido como
Algoritmo de Plano de Corte, es un método que permite encontrar soluciones óptimas
enteras en aquellos problemas de programación lineal que tienen soluciones
fraccionarias o con decimales. Se basa con los “planos cortantes” (o corte) que es una
nueva restricción funcional que reduce la región factible del relajamiento de PL sin
eliminar soluciones factibles del problema de PE original. Podemos decir que este método
es una base de nuevas técnicas que permiten de igual manera encontrar una solución
óptima entera de un problema de PL, un ejemplo, el “método de ramificación y
acotamiento” que lo veremos más adelante.

El método de Gomory se inicia en la solución óptima continua. Se agregan restricciones


especiales (los cortes) al espacio de soluciones para que produzcan un punto extremo
óptimo entero. La desventaja de este método, es que resulta muy ineficiente para resolver
problemas enteros de tamaño medio. Estos métodos generan en cada iteración una
restricción y una variable extra. Sin embargo, su ventaja es que ilustran lo que se
pretende hacer con la región de factibilidad de problemas entero, para lograr la solución
del mismo. Comenzaremos con un ejemplo práctico para su mejor entendimiento.
Ejemplo:
Maximizar Z = 7 + 10
Sujeto a
≤6
− +3
≤ 35

+
, 7 ≥ 0 y enteros.
Lo resolveremos directamente por el método SIMPLEX. Por lo tanto:
Maximizar Z = 7 + 10 + + + +
Maximizar Z = 7 + 10
Sujeto a
Sujeto a
+ = 6

++ 3
+ = 6
− +3
+ = 35
7 + + = 35

7
, , , ≥ 0 y enteros.

PROGRAMACIÓN ENTERA 16
Tablas SIMPLEX

10 Solución

-1 3 1 0 6

7 1 0 1 35

0 0 0 0

- 7 10 0 0

Pivoteamos el renglón , hacemos el cambio de 10 por y nos queda:

10 Solución

1 0 2

0 1 33

10 0

- 0 0

PROGRAMACIÓN ENTERA 17
Pivoteamos el renglón , hacemos el cambio de 7 por y nos queda:

10 Solución
=
2
0 1
2=
=
2
1 0

7 10

- 0 0

La solución óptima es Z= , = , = , = 0, = 0.

Gráfica:

Observamos que nuestras soluciones óptimas no son números enteros, para esto, si bien
es donde proseguimos con el método de Gomory. En base a la información que nos arroja
nuestra tabla óptima, podemos reescribirla de la siguiente manera.

1
Z+ + = (ecuación Z)
31 22
+ 63 22 + = 66 2 (ecuación )
32
- 7 22 + 1 22 = 1
(ecuación )

1 22 3 22 4 21

PROGRAMACIÓN ENTERA 18
Una vez que tenemos la información de la tabla ordenada en las ecuaciones anteriores,
debemos escoger una de estas ecuaciones, con la condición de que siempre el lado
derecho sea fraccionario. En caso del ejemplo, las 3 ecuaciones cumplen con la
condición.
La ecuación de restricción que elijamos, será nuestra fila origen (o renglón de fuente),
con la cual generaremos un corte.

Paso 1: Factorizamos todos los coeficientes no enteros de la ecuación en un valor entero


y un componente fraccionario, siempre y cuando el componente fraccionario sea
estrictamente positivo.
De la ecuación Z, nos queda como resultado
(2 + ) 1+9) (66 + 1)

Z+ +( 22 = 2

Paso 2: Los componentes enteros los moveremos al lado izquierdo y los componentes
fraccionarios al lado derecho. Obtenemos:

Z + 2 + 1 – 66 = − 2219 − 229 + 21
(1)
Como y son no negativas y todas las fracciones son positivas por construcción, el
lado derecho debe satisfacer la siguiente desigualdad:
− 19 − 9 + 1 22 ≤ (2)
22 2

Paso 3: Ahora, como el lado izquierdo de la ecuación (1), es un valor entero por
construcción, el lado derecho también debe de ser entero. Por lo tanto deducimos que
(2) puede ser reemplazada con una desigualdad:− 19 −9

+ ≤0
22 22

PROGRAMACIÓN ENTERA 19
INSTITUTO TECNOLÓGICO DE LA PAZ 4°
Semestre
INVESTIGACIÓN DE OPERACIONES I
“A”

Este resultado de justifica porque un valor entero menor que una fracción positiva
necesariamente debe ser ≤ 0.
La última desigualdad es el corte deseado, y representa una condición necesaria
(más no suficiente) para obtener una solución entera. Esta desigualdad se conoce como
corte fraccionario porque todos sus coeficientes son fracciones.
Antes de demostrar cómo se implementa el corte fraccionario en la tabla óptima,
se demostrará como también podremos construir los cortes a partir de las otras 2
ecuacio nes de r estricci ón.

= 4 21
Ecuación : − 1 22 + 3 22
Factorizando la ecuación se obtiene:

+ (−1 + 2221 ) + (0 + 223) = (4 + 21)

Por lo tanto, nuestro corte asociado es:

21 3 1

− 22 22 2
− + ≤0

Ecuación : + 7 22 + 1 22 =3
Factorizando la ecuación se obtiene:

+ (0 + 227 ) + (0 + 221) = (3 + 21)

PROGRAMACIÓN ENTERA 20
INSTITUTO TECNOLÓGICO DE LA PAZ 4°
Semestre
INVESTIGACIÓN DE OPERACIONES I
“A”
7 1 1

Por lo tanto, nuestro corte asociado es:

− 22 − 22 +2
≤0
Cualquiera de estos tres cortes puede usarse en la primera iteración del método de
Gomory. Seleccionando arbitrariamente el corte generado con la ecuación , podemos
7 1 1

rescribir en forma de ecuación como:

− 22 − 22 + =−2; ≥0

Paso 4: Esta restricción se agrega a la tabla óptima de PL, como se muestra:

10 Solución

0 1 0

1 0 0

0 0 1

- 0 0 0 =

Paso 5: La tabla es óptima pero no factible. Para esto, aplicamos el método simplex
dual, para recuperar la factibilidad.
Para encontrar que columna es la que “entra” y que fila “sale”, dividiremos el renglón
- entre el renglón , y tomaremos el valor absoluto más pequeño y esa será nuestra

PROGRAMACIÓN ENTERA 21
fila que “entra”. Después, tomaremos el renglón que acabamos de agregar y será nuestro
renglón pivote.

10 Solución

0 1 0

1 0 0

0 0 1

- 0 0 0 =

*Resultado 0 0 9 31 0
de la división
*valor más
pequeño.

Paso 6: Ahora que ya tenemos nuestra fila que sale y columna que entra, comenzamos
a pivotear por el método SIMPLEX, y obtenemos la siguiente tabla de optimidad:

10 Solución

0 1 0 1

1 0

0 0

- 0 0 0

PROGRAMACIÓN ENTERA 22
Observamos que nuestras soluciones siguen siendo fraccionarias con excepción de la
primera, pero esto no significa que el problema esté terminado, puesto que todas
nuestras soluciones deben de ser enteras. Gráfica de la tabla con el primer corte:

Paso 7: Regresamos al paso 4, agregando un segundo corte a esta última tabla óptima,
de la misma manera que agregamos el primer corte, sólo que en este caso, como ya
elegimos la ecuación , podemos elegir la ecuación como nuestro corte.
Nuestra tabla quedaría de la siguiente manera:

10 Solución

0 1 0 1 0

1 0 0

0 0 0

0 0 1 1

- 0 0 0 0

PROGRAMACIÓN ENTERA 23
Resolvemos de la misma manera que cuando agregamos el primer corte, y nos quedaría
la siguiente tabla:

10 Solución

0 1 0 0 1 0

1 0 0 -1 1 4

0 0 0 -4 1 1

0 0 0 1 6 -7 4

0 0 0 0 3 7 58

Observamos en nuestra tabla y todas nuestras soluciones así como nuestro punto
óptimo, nos arroja números enteros. Por lo tanto el Método de Gomory se detiene y el
problema estar terminado.

Gráfica de la tabla óptima anterior.

PROGRAMACIÓN ENTERA 24
4.4. MÉTODO DE BIFURCACIÓN Y ACOTAMIENTO
En 1960, Ailsa H. Land y Alison G. Doig, presentan el algoritmo Land-Doig. El nombre de
bifurcación y acotamiento (o bien, ramificación y acotamiento y en inglés “Branch and
Bound”) se lo dan posteriormente Little, Murty, Sweeney, Karel. Más tarde, el algoritmo
fue modificado por Dakin, haciéndolo de manera más general.

El método de bifurcación y acotación que es muy elegante y simple, redondea y acota


variables enteras, resultantes de la solución de los problemas lineales correspondientes.
Este proceso de acotamiento y redondeo se hace de una manera secuencial lógica
heurística que permite eliminar con anticipación un buen número de soluciones factibles
alejadas del optimo a medida que se intera. De tal suerte que si una variable entera ,
j=1, … , n está acotada entre un límite inferior entero , j=1,…n y un límite superior entero
, j=1,…,n el proceso de bifurcación y acotación solo analiza un número muy pequeño
de todas las posibles soluciones.

El método de bifurcación y acotamiento, se presenta a continuación con una serie de


pasos, que después serán demostradas por medio de un ejemplo.

Paso 1: Resuélvase el problema entero por medio del método simplex de la programación
lineal. Si la solución es entera, pare, se ha conseguido la solución óptima. Si no, continúe
en el paso 2.

Paso 2: Escójase arbitrariamente una variable entera cuyo resultado en el paso 1 sea

fraccional e igual a .

Paso 3: Resuélvase un par de nuevos de problemas, similares al problema anterior, pero


uno con la restricción adicional ≤ , mientras que el otro tendrá la restricción adicional

Paso 4: De los programas lineales resueltos en el paso 3, inclúyase en el análisis a seguir,

solo aquellos programas cuya solución (entera o fraccional) sea mejor (mayor en el caso

PROGRAMACIÓN ENTERA 25
de maximización y menos en el caso de minimización) a cualquiera de las soluciones
enteras conocidas.

Paso 5: Selecciónese aquel programa lineal que tenga el máximo (en el caso de
minimización el mínimo) valor de la función objetivo. Si las variables enteras tienen valor
entero, se ha convertido en la solución óptima. Si no, regresa al paso 2 con la estructura
del problema lineal resuelto en este paso.

Ejemplo:

Problema (0). Max Z= + = 9


2 +2

Max Z= Sujeto a
2 +2
≤9 3 + + = 11

Sujeto a
5 +2

3 + ≤ 11
, , , ≥0

, ≥0

Paso 1: Resolvemos por método SIMPLEX, y obtendremos la siguiente tabla.

-Iteración 1 del problema (0).

Solución
0 1 0.75 -0.5 1.25
1 0 -0.25 0.5 3.25
0 0 0.25 1.5 18.75

PROGRAMACIÓN ENTERA 26
INSTITUTO TECNOLÓGICO DE LA PAZ 4°
Semestre
INVESTIGACIÓN DE OPERACIONES I
“A”
y . =

Tenemos nuestras soluciones óptimas con valores todos decimales, por lo tanto,
. = .

nuestro problema no esta resuelto. Los valores como nos indica la tabla son

Paso 2: Se escoge arbitrariamente el valor de y con este valor crearemos dos


subproblemas del problema principal (0). A esto es

nuevas restricciones para dos nuevos = .

lo que llamamos ramificación, puesto que en nuestro “árbol” (red conectada que no tiene
ciclos), por cada problema tendremos dos subproblemas y estos a su vez otros dos
subproblemas hasta que encontremos nuestra solución óptima entera.

Para crear los subproblemas, notemos que el valor se encuentra entre los
valores son los que tendrán cada

valores enteros 1 y 2. Por lo tanto, estos nuevos = .

restricción en los subproblemas. Nos quedarían de la siguiente manera.

Subproblema (1)

Max Z= Max Z=
2 +2 + =9
2 +2 + = 9

Sujeto a
Sujeto a

3 + + = 11 3 + + = 11
+
≤1 =1

, , , ≥0
, , , , ≥0

PROGRAMACIÓN ENTERA 27
Subproblema (2)

Max Z= Max Z= =9
2 +2 + = 9 2 +2 +

Sujeto a Sujeto a

3 + + = 11 3 + + = 11

≥2 =2

, , , ≥0
, , , , ≥0
Paso 3: Resolvemos por método SIMPLEX los subproblemas (1) y (2), y obtendremos
las siguientes tablas óptimas.

Subproblema (1)

Solución
0 -1.33 1 -0.67 0.33
1 -0.33 0 0.33 3.33
0 0.33 0 1.67 18.67

Subproblema (2)

Solución
0 -2 -1.5 1 1.5
1 1 0.5 0 2.5
0 3 2.5 0 16.5

Paso 4: Como no ha habido ninguna solución entera en todo el proceso, se incluyen


ambas tablas óptimas en el análisis.

PROGRAMACIÓN ENTERA 28
Paso 5: Debido a que nuestro problema es maximización, la mejor función=. objetivo= hasta.
el momento corresponde a la tabla del subproblema (1) (Z= 18.67, , ) y como
son soluciones no enteras regresamos al paso 2. La estructura seleccionada es el
subproblema (1).

Paso 2: De manera arbitraria, de la estructura (1) se escoge la variable = . y de este se


obtienen dos nuevas
restricciones para para los
-Iteración 2. nuevos subproblemas. Lo
realizamos de la misma
manera que utilizamos
anteriormente, y nuestros subproblemas quedarían de esta manera:

Del subproblema (1), se ramifica el subproblema (3):

9
Max Z=
2 +2 + =
Max Z= +
Sujeto a
3 + + = 11
2 +2 + =9

Sujeto a

≤1 3 + + = 11
+
≤3 =1

, , , ≥0 ≥0 + =3
, , , , ,

PROGRAMACIÓN ENTERA 29
Y EL SUB PROBLEMA 4:
Max Z= Max Z=
Sujeto a
3 + + = 11
+
2
+2 + =9

2 +2 + = 9 Sujeto a

≤1 3 + + = 11
+
≥4 =1

, , , ≥0 ≥0 − =4
, , , , ,

Paso 3: Aplicando de nuevo el método SIMPLEX a cada programa, se obtienen las


soluciones óptimas al problema lineal correspondiente al subproblema (3). La estructura
del subproblema (4) no tiene solución factible y por lo tanto no se incluye en las tablas
óptimas a analizar.

Subproblema (3):

Solución
-2 -2 1 0 1
-3 -1 0 1 1
5 2 0 0 17
Paso 4: Por ser una solución entera se incluye en el análisis.

Paso 5: Por ser el mejor valor de la función objetivo y además, ser entero, es la solución
óptima, por lo tanto:
Z= 17, = , = , = , =

PROGRAMACIÓN ENTERA 30
Por último, para poder visualizar de mejor manera el proceso, como se mencionaba con
anterioridad, utilizaremos una representación gráfica constituida por una red con
estructura de “árbol”.

Z= 18.75, , ,

=0 =0

Z= 18.67,
= 0.33
, = 1,

=0
Z= 16. , ,

= 1.5

Z= ∞ Problema inconsistente
Z= =17,1 , ,
Solución óptima

PROGRAMACIÓN ENTERA 31
CONCLUSIÓN

En este trabajo hemos abarcado los distintos tipos de metodologías que se


requieren para dar solución a los métodos de programación entera, programación
entera binaria, programación mixta, método de Gomory, así como método de
ramificación y acotación.

Dentro de las definiciones de cada uno de los métodos se muestran de manera


clara y concisa, así como el sistema que se debe llevar a cabo para resolverlos de
una manera eficiente y óptima.

Se obtuvieron las ideas precisas de como poder modelar los distintos tipos de
problemas que se dan en industrias, transportes y cualquier problema donde se
requiera una optimización de los recursos o disminución de costos.

Se muestran distintos ejemplos de cada uno de estos métodos y se da una serie


de características únicas de estos que diferencian a uno de otro, así, como un paso
a paso de cada ejemplo en su ejecución para dar como resultado la optimización
de estos casos muestras. Si bien, el presente trabajo muestra las herramientas
necesarias para dar solución a los problemas PEB y PE para poder identificar el
mejor método para solucionarlos.

PROGRAMACIÓN ENTERA 32
BIBLIOGRAFÍA

Hillier Frederick S., Lieberman Gerald J., INVESTIGACION DE OPERACIONES, 7°


edición, McGRAW-HILL, México, 2002.

Taha Hamdy A, INVESTIGACION DE OPERACIONES, 9° edición, Pearson Educación,


México, 2012.

Prawda Witenberg Juan, MÉTODOS Y MODELOS DE INVESTIGACION DE

OPERACIONES Vol. 1 Modelos determinísticos, Limusa Noriega Editores, México, 1999.

Gallagher Charles A., Watson Hugh J., MÉTODOS CUANTITATIVOS PARA LA TOMA
DE DECISIONES EN ADMINISTRACIÓN, McGRAW-HILL,

Winston Wayne L., INVESTIGACION DE OPERACIONES, Aplicaciones y Algoritmos, 4°


edición, Cengage Learning Editores, México, 2005.

PROGRAMACIÓN ENTERA 33

También podría gustarte