0% encontró este documento útil (0 votos)
162 vistas35 páginas

Programación Entera Binaria en Optimización

Este documento describe la programación lineal entera y los algoritmos para resolver problemas de este tipo. Explica que la programación lineal entera requiere que las variables tengan valores enteros. Luego describe los métodos de ramificación y acotamiento y plano de corte para generar soluciones enteras mediante la resolución iterativa de problemas de programación lineal relajados con restricciones adicionales. Finalmente, ilustra el método de ramificación y acotamiento con un ejemplo numérico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
162 vistas35 páginas

Programación Entera Binaria en Optimización

Este documento describe la programación lineal entera y los algoritmos para resolver problemas de este tipo. Explica que la programación lineal entera requiere que las variables tengan valores enteros. Luego describe los métodos de ramificación y acotamiento y plano de corte para generar soluciones enteras mediante la resolución iterativa de problemas de programación lineal relajados con restricciones adicionales. Finalmente, ilustra el método de ramificación y acotamiento con un ejemplo numérico.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programación Lineal

Entera Binaria
Investigación de Operaciones II
Francy Castellanos Oviedo
Dirección Ingeniería Industrial
Programación lineal entera
En muchos problemas prácticos, las variables de decisión sólo tienen
sentido real si su valor es entero. Por ejemplo, con frecuencia es
necesario asignar a las actividades cantidades enteras de personas,
máquinas o vehículos.

Si el hecho de exigir valores enteros es la única diferencia que tiene un


problema con la formulación de programación lineal, entonces se trata
de un problema de programación entera (PE).

El modelo matemático para programación entera es sencillamente el


modelo de programación lineal con la restricción adicional de que las
variables deben tener valores enteros.
Clasificación
• Son aquellos en que todas las variables únicamente pueden tomar valores enteros.
Enteros también se distinguen dentro de estos los problemas totalmente enteros como
puros aquellos en que tanto las variables como todos los coeficientes que intervienen en el
problema han de ser enteros.

• Son aquellos en los que hay al mismo tiempo variables continuas y variables que
Mixtos sólo pueden tomar valores enteros

Binarios • Las variables sólo pueden tomar los valores cero o uno.
Clasificación por tipo de problema

Directo • Si el problema de decisión involucra variables enteras.

• Cuando se trata de un problema que contiene además de aspectos


Codificado cuantitativos, alguna consideración de tipo cualitativos, y por ello para
tratar este tipo de aspectos se requiere el uso de variable enteras binarias.

Transformado • Cuando el problema no incluye variables enteras, pero para ser tratado
analíticamente requiere el uso de variable enteras “artificiales”.
Algoritmos de programación entera
La estrategia de estos algoritmos implica tres pasos:

• Paso 1. Desahogue el espacio de soluciones del PLE al eliminar la restricción


entera en todas las variables enteras y reemplazar cualquier variable binaria y con
el intervalo continuo 0 ≤ y ≤ 1. El resultado del desahogo es una programación
lineal.
• Paso 2. Resuelva la PL, e identifique su óptimo continuo.
• Paso 3. Comenzando desde el punto óptimo continuo, agregue restricciones
especiales que modifiquen iterativamente el espacio de soluciones de PL de modo
que finalmente dé un punto extremo óptimo que satisfaga los requerimientos
enteros.
Algoritmos de programación entera
Se desarrollaron dos métodos generales para generar las restricciones
especiales en el paso 3.

1. Algoritmo de ramificación y acotamiento


2. Algoritmo de plano de corte

Estos métodos también son conocidos como: Branch and Cut


Ramificación y acotamiento
Ramificación y acotamiento
El método consiste en resolver una serie de problemas de programación
lineal, empezando por el problema relajado, y aplicar las siguientes
técnicas:
• Ramificación: si la solución no es entera, se definen dos nuevos
problemas que deben resolverse
• Acotación: si el valor óptimo de la función objetivo no mejora los
obtenidos anteriormente, se descarta el problema.
Ejemplo

Máx Z = 2x + y Máx Z = 2x + y
5x + 8y ≤ 68 5x + 8y ≤ 68
x–y ≤ 2 Problema relajado x–y ≤ 2
y ≤ 6 y ≤ 6
x, y ≥ 0 x, y ≥ 0
x, y ∈ ℤ
Ejemplo
Puede aplicarse cualquier método de solución de programación lineal.
Dándole solución usando solver de Excel:

Solución óptima:
x= 6,46
y= 4,46
Z = 17,38

x, y ∉ ℤ
No es solución del problema
de PE
Ejemplo
y

6 Región factible del problema


5
relajado
(6,46 , 4,46)
4

1 2 3 4 5 6 x
Ramificación
Si la solución óptima no cumple la condición de números enteros:
• Se elige una variable que no cumplea esta condición: !" = a
• Se definen dos nuevos problemas con una nueva restricción cada uno,
según la variable elegida y su valor: !" ≤ [a], !" ≥ [a] +1

Solución óptima:
x= 6,46
y= 4,46 En este caso las dos variables tienen valores no enteros
Z = 17,38 por tanto se puede escoger cualquiera de las dos,
iniciaremos con y
Ejemplo
Aplicamos esta técnica al problema relajado (PL0)

y=4,46
PL0

y≤4 y≥5
PL1 PL2
Ejemplo Al incorporar las nuevas restricciones se
generan dos regiones factibles separadas
Al inicio tenemos esta solución factible
y y

6 6
PL1 y≥5
5 5
(6,46 , 4,46) (6,46 , 4,46)
4 PL0 4
y≤4
3 3 PL2
La franja en blanco
2 2 representa una parte de la
región factible que no
continene ninguna solución
1 1 con valores enteros

1 2 3 4 5 6 x 1 2 3 4 5 6 x
Ejemplo
Problema PL1: Problema PL0 + Restricciones y≤4
Máx Z = 2x + y
5x + 8y ≤ 68
Solución óptima:
x–y ≤ 2 x= 6
y ≤ 6 y= 4
Z = 16
y ≤ 4
x, y ≥ 0 El valor de la FO
empeora

Cumple las condiciones de valores enteros


Candidato a solución óptima – Será la solución óptima si no se
encuentra ninguna solución mejor
Esquema
Añadimos esta solución al árbol de problemas que se inicio a construir:

Candidato a Solución óptima:

y=4,46 x= 6
y= 4
PL0 Z = 16
x= 6,46 y= 4,46 Z = 17,38
Este árbol resume las soluciones
de los problemas que se van
resolviendo. Se continúan
resolviendo los problemas hasta
y≤4 y≥5 que todas las ramas se hayan
cerrado
PL1
x= 6 y= 4 Z = 16
PL2
FIN
Ejemplo
Problema PL2: Problema PL0 + Restricciones y ≥ 5
Máx Z = 2x + y
5x + 8y ≤ 68
Solución óptima:
x–y ≤ 2 x= 5,6
y ≤ 6 y= 5
Z = 16,2
y≥ 5
x, y ≥ 0 Tiene una variable con
valor no entero

NO Cumple las condiciones de valores enteros


En vista de que ya se tiene un candidato, se debe seguir?
Esto depende del valor de la función objetivo: “ACOTACIÓN”
Acotación: Si la solución no mejora (la del último candidato) el
problema se descarta (no se sigue ramificando)

y=4,46 Candidato a Solución óptima:


x= 6
PL0 y= 4
x= 6,46 y= 4,46 Z = 17,38 Z = 16

Comparamos el candidato a
solución óptima Z=16 con la
solución del último candidato
y≤4 y≥5 Z=16,2 à como se puede ver la
solución de PL2 es mayor por
PL1 PL2 tanto según el principio de
x= 6 y= 4 Z = 16 x= 5,6 y= 5. Z = 16,2 acotación se debe seguir
FIN ramificando
Esquema
Candidato a Solución óptima:
y=4,46 x= 6
y= 4
PL0
x= 6,46 y= 4,46 Z = 17,38 Z = 16

y≤4 y≥5
PL1 PL2
x= 6 y= 4 Z = 16 x= 5,6 y= 5. Z = 16,2

x≤5 x≥6
PL3 PL4
RAMIFICACIÓN
Ejemplo Al incorporar las nuevas restricciones se
elimina otra zona:
Partimos de la solución anterior
y y

6 6
PL1 PL3 x≤5 x≥6
5 5
(6,46 , 4,46) (5,6 , 5)
4 4

3 PL2 3 PL2

2 Nos queda a la izquierda la


2
región factible de PL3, a la
derecha no queda nada lo
1 1 que indica que PL4 es no
factible

1 2 3 4 5 6 x 1 2 3 4 5 6 x
Ejemplo
Problema PL3: Problema PL2 + Restricciones x≤5
Máx Z = 2x + y
5x + 8y ≤ 68
Solución óptima:
x–y ≤ 2 x= 5
y ≤ 6 y= 5,38
Z = 15,37
x≤5
x, y ≥ 0 Tiene una variable con
valor no entero y la
solución empeora

NO Cumple las condiciones de valores enteros


Si la solución empeora y si ya se tiene otro candidato, se debe seguir?
Esto depende del valor de la función objetivo: “ACOTACIÓN”
Esquema
Candidato a Solución óptima:
y=4,46 x= 6
PL0 y= 4
x= 6,46 y= 4,46 Z = 17,38 Z = 16

Se comparan nuevamente los dos


valores del canditado y el nuevo
y≤4 y≥5 candidato, en este caso podemos
descartar por acotación a PL3 à
PL1 PL2
x= 5,6 y= 5. Z = 16,2 no se continúa ramificando
x= 6 y= 4 Z = 16
FIN PL4 también termina pues
graficamente es no factible
x≤5 x≥6 No quedan más problemas así que
PL3 PL4
x= 5 y= 5,38 Z = 15,37 se confirma el canditado como
solución óptima
FIN FIN
En conclusión
Se resuelven uno a uno los problemas:
• Si la solución encontrada no mejora el candidato a solución óptima (si
hay), el problema se descarta por acotación.
• Si la solución mejora el candidato (o no hay candidato) y cumple la
restricción de valores enteros, se toma como nuevo candidato
• Si el problema no se descarta y la solución no cumple la restricción de
valores enteros, se ramifica en dos nuevos problemas
Cuando no quedan más problemas que resolver, el mejor candidato
obtenido (el último) es la solución óptima del problema de programación
entera.
Ejercicio de aplicación
MAXIMIZAR: Z = 2 X1 + 4 X2 + 3 X3

sujeto a
X1 + 2 X2 + 5 X3 ≤ 63
3 X1 + 4 X2 + X3 ≤ 45
4 X1 + 2 X2 + 2 X3 ≤ 26
X1, X2, X3 ≥ 0
X1, X2, X3 ∈ ℤ
Planos de corte
Método de plano cortante (Método de Gomory)
Método de solución de problemas de programación entera basado en
añadir restricciones adicionales hasta encontrar una solución óptima que
tenga valores enteros.

Puede aplicarse a cualquier problema que cumpla las siguientes


condiciones:
• Todas las variables, incluidas las variables de holgura y exceso, deben
tomar valores enteros
• Todos los coeficientes tecnológicos y todos los recursos deben ser
números enteros o racionales
Método del plano cortante Se elige una fila con
recurso entero y se añade
una nueva restricción con
Solución óptima ≤ con las partes enteras
del los coeficientes y el
Si recurso

Todos los
Resolución del No
números en la Añadir una
problema
solución óptima Nueva restricción
relajado
son enteros?

Resolución del
nuevo problema
Ejercicio
Vamos a iniciar verificando que cumple las condiciones descritas:
Máx Z = 3x + y Z - 3x – y = 0
3x + 4y ≤ 20 3x + 4y + w1 = 20
Se pasa a forma
2x + y ≤ 9 estándar 2x + y + w2 = 9
x, y ≥ 0 x, y, w1, w2 ≥ 0
x, y ∈ ℤ x, y ∈ ℤ

Verificación de supuestos:
1. Variables x y y son enteras à se cumple con la última restricción x, y ∈ ℤ
2. Variables w1, w2 enteras à también lo cumplen como consecuencia de las
restricciones y de los valores de x y y – como se puede ver en el despeje si x y y son w1=20-3x-4y
número enteros el resultado de estas operaciones siempre serán números enteros.
3. Los coeficientes tecnológicos – recursos enteros o racionales à también se cumple w2= 9-2x-y

Puede aplicarse el método de plano cortante para resolver este problema


Ejercicio
Primero encontrar la solución del problema relajado en forma estándar:
Z - 3x – y = 0 http://www.phpsimplex.com/
3x + 4y + w1 = 20
2x + y + w2 = 9
x, y, w1, w2 ≥ 0

La solución es:
x=4,5
y=0
w1=6,5
Todos los números en la solución óptima son enteros? NO
W2=0 Se debe añadir una nueva restricción al problema
Ejercicio
Partiendo de la tabla final del simplex, se elige una fila correspondiente a
una variable no entera: para este caso, puede ser x o w1. Vamos a realizar
los cálculos inicialmente con la x (P1 en la solución de PHP simplex):

Tabla 2 3 1 0 0
Base Cb Z x y w1 w1
w1 0 13 / 2 0 5/2 1 -3 / 2
x 3 9/2 1 1/2 0 1/2
Z 27 / 2 0 1/2 0 3/2

Parte entera de x ∈ ℝ: número entero Nueva restricción ≤ con partes enteras


[x] igual o inmediatamente inferiro a x:
[2]=2 [3,7]=3 [-1,8]=-2
[1]x + [1/2]y + [0]w1 + [1/2]w2 ≤ 9/2
x ≤ 4 à x+ w3 = 4
Ejercicio
Añadimos la nueva restricción a la tabla:

Tabla 2 3 1 0 0
Base Cb Z x y w1 w2 w3
w1 0 13 / 2 0 5/2 1 -3 / 2
x 3 9/2 1 1/2 0 1/2
w3 0 4 1 0 0 0 1
Z 27 / 2 0 1/2 0 3/2
Ejercicio
Se puede solución con simplex dual, haciendo una iteración más o correr
nuevamente desde cero con la nueva restricción. En este caso se corre
nuevamente usando PHP simplex:
Tabla 3 3 1 0 0 0
Base Cb Z x y w1 w2 w3
w1 0 4 0 0 1 -4 5
y 1 1 0 1 0 1 -2
x 3 4 1 0 0 0 1
Z 13 0 0 0 1 1

La solución óptima es Z = 13
X1 = 4 Todos los números en la solución óptima son enteros? SI
X2 = 1 Esta es la solución óptima de programación entera
Ejercicio
Ejercicio

La nueva restricción
corta la región
factible del problema,
para dejar fuera la
solución no entera.
(4,1)

También podría gustarte