Está en la página 1de 20

ROSA MARGARITA GARCIA OLIVAS

INVESTIGACION DE OPERACIONES

TAREA No. 5

MAESTRA: SANDRA SANCHEZ

CARRERA: ADMINISTRACION DE EMPRESAS

NOVIEMBRE 2016
DEFINICION DE LOS MOODELOS DE PROGRAMACION ENTERA

PROGRAMACIÓN ENTERA
DEFINICIÓN :
Un modelo de programación entera es aquel que
contiene restricciones y una función
objetivo idénticas a la formuladas en programación
lineal , la única diferencia en que una o mas
variables de decisión deben tomar valor entero en
la solución final.

CLASIFICACIÓN:
Existen tres tipos de modelos por programación entera

A) PURA : Son modelos similares a los de programación


entera

Forma General :

Max (Min ) = A1X1+A2X2+A3X3+A4X4+A5X5+..........+AnXn

Sujeto a :
A1X1+A2X2+A3X3+A4X4+A5X5+..........+AnXn >= (<=)(=)
Bi

No negatividad : Xi >= 0 y ENTERO

B) BINARIA : Estos modelos lineales , las variables


sólo toman valores 0 y 1 , son usadas para uso
probabilistico Donde 0 se rechaza la opción y 1 se
acepta la opción

Forma General :

Max (Min ) = A1Y1+A2Y2+A3Y3+A4Y4+A5Y5+..........+AnYn

Sujeto a : y1+y2+y3+y4+..........+yn >= (<=)(=) Bi

No negatividad : yi >= 0 v 1

C) MIXTA : En estos tipos de modelos , integra las


variables puras y las mixtas

Max (Min ) =
A1X1+A2X2+A3X3+A4X4+A5X5+..........+AnXn+A1Y1+A2Y2+A
3Y3+A4Y4+A5Y5+..........+AnYn

Sujeto a :
A1X1+A2X2+A3X3+A4X4+A5X5+..........+AnXn >= (<=)(=)
Bi
y1+y2+y3+y4+..........+yn >= (<=)(=) Bi

No negatividad :
Xi >= 0 y ENTERO
Xi >= 0 v 1

* Tipos de Restricciones Usadas en la Programación


Entera Mixta :
1) Excluyentes : Solo sirve para elegir una
alternativa de varias posibles
2) Pre-requisito : Cuando necesitas realizar una
acción antes de proceder con la siguiente
3) Incluyente : Dicha restricción se da para cuando
realizas una acción "A" entonces debes hacer la
acción "B"
4) Costo Fijo : Cuando se nombra un costo fijo ,
es sinónimo de uso de variable mixta

Ejemplo Aplicativo

Un problema que afronta todos los días un


electricista consiste en decidir qué generadores
conectar. El electricista en cuestión tiene tres
generadores con las características que se muestran
en la tabla 3. Hay dos periodos en el día. En el
primero se necesitan 2900 megawatts. En el segundo.
3900 megawatts. Un generador que se conecte para el
primer periodo puede ser usado en el segundo sin
causar un nuevo gasto de conexión. Todos los
generadores principales (como lo son A, B y C de la
figura ) son apagados al término del día. Si se usa
el generador A también puede usarse el generador
C,no se usa generador B si se usa generador
A. Formule este problema como un PLEM.

GENERADOR COSTO FIJO DE COSTO POR CAPACIDAD MAXIMA


PERIODO POR EN CADA PERIODO
CONEXIÓN MEGAWATT USADO ( MW )

A $ 3000 $ 5 2100

B 2000 4 1800

C 1000 7 3000

Restricciones:

Demanda en el periodo 1:

xa1 +xb1+xc1 >= 2900

Demanda en el periodo 2:

xa2+xb2+xc2>= 3900

Capacidad de generador A:
xa1 <= 2100y1( enlace variable entera con variable binaria)

xa2<=2100y1( enlace variable entera con variable binaria)

FORMA ESTANDAR DE UN MODELO DE PROGRAMACION ENTERA

Problema Asignación: Una universidad está programando las clases para el


próximo semestre académico y requiere buscar la mejor asignación posible de
profesores a los distintos cursos que se deben dictar. Considere que existen 5
profesores: A, B, C, D, E y 5 cursos (asignaturas): C1, C2, C3, C4, C5.
Adicionalmente, los profesores han manifestado sus preferencias por dictar los
distintos cursos en una escala de 1 a 10, donde 10 es la máxima puntuación y 1
la mínima puntuación o preferencia. Se asume que cada profesor es apto para
dictar cualquier curso, independiente del puntaje de su preferencia. La
siguiente tabla resume las puntuaciones que asigna cada profesor a cada
curso:

PROFESORES

CURSOS A B C D E
C1 5 8 5 9 7

C2 7 2 3 6 8

C3 9 10 8 9 8

C4 8 7 9 7 8

C5 6 9 9 10 5

Se ha establecido como criterio que cada profesor debe dictar sólo un curso y a
la vez que cada curso obviamente debe tener un profesor. En base a lo anterior
se desea encontrar la asignación de profesores que maximize el total de las
preferencias.

Variables de Decisión:

Función Objetivo: Maximizar el total de las preferencias de los profesores

Donde P(i,j) corresponde a una forma sintética de resumir los parámetros del
modelo, es decir, P(i,j) es la preferencia del profesor i (en una escala de 1 a 10)
por dictar el curso j. Por ejemplo, P(D,C3)=9.
Restricciones:

Verifique utilizando Solver de Excel que la solución óptima de este problema


es asignar el profesor A a C3, B a C5, C a C4, D a C1 y E a C2. Valor Óptimo = 44.

PROGRAMACION 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 sólo toman valores en 0-1, ya que este tipo de variables
permiten representar condiciones lógicas.

Este tipo de modelos permite representar sistemas mucho mas complejos.

A cambio la resolución de los mismos se complica.


Programación Entera: contenidos 1. Introducción 2. Algunos modelos
básicos y Modelización con variables binarias a) El problema del transporte b)
Problema de la mochila c ) Problema del viajante (optó. combinatoria) d)
Problema de asignación, asignación generalizada y asignación cuadrática e)
Problema del cubrimiento, empaquetado y partición f ) Problema del
emparejamiento (optó. combinatoria) g) Otros problemas 3. Resolución del
problema. a) Planos de corte b) Ramificación y acotación (Branch and Bou

Modelos De Programación Entera

1. 1. MODELOS DE PROGRAMACIÓN ENTERA<br />


2. 2. DEFINICION Y MODELOS DE PROGRAMACION ENTERA<br />Un
modelo de programación entera es un modelo que contiene
restricciones y una función objetivo idénticas a las formuladas por
planeación lineal. La única diferencia es que una o mas de las variables
de decisión tienen que tomar un valor entero en la solución final.<br
/>Existen tres tipos de modelos de programación entera:<br />Pura<br
/>Binaria<br />Mixta<br />

3. 3. Programación Entera Pura <br /><ul><li>Un modelo entero puro (PLE)


es, como su nombre lo indica, un problema en el que se exige que todas
las variables de decisión tengan valores enteros. Por ejemplo
</li></ul>Min 6×1 + 5×2 + 4×3 <br />s.a. 108×1 + 92×2 + 58×3 &gt;= 576
<br />7×1 + 18×2 + 22×3 &gt;= 83 <br /><ul><li>x1, x2, x3 >= 0 y enteros

4. 4. Es un modelo entero puro. Sin las restricciones adicionales de que x1,


x2, x3 sean enteros (o sea las condiciones de integralidad) seria un
problema de programación lineal </li></li></ul><li>Ejemplo<br />Corte
de Madera<br />Una marquetería debe enmarcar 175 cuadros de
119x96 cm. En el mercado puede comprar varillas de la moldura
indicada con longitud de 300 cm.<br />¿Cómo deben cortarse las varillas
para obtener los marcos requeridos, obteniendo el menor sobrante
posible?<br />Solución:<br />Modalidades de corte<br />

5. 5.

6. 6. PROGRAMACION ENTERA MIXTA<br />Algunas de las variables de


decisión tienen valores enteros. Las demás cumplen con la suposición de
divisibilidad.<br /><ul><li>Un problema en el que solo se requieren que
algunas variables tengan valores enteros mientras que otras pueden
asumir cualquier numero no negativo (es decir, cualquier valor continuo)
se llama programación lineal entera mixta (PLEM). Por ejemplo,
supóngase que en el problema solo x1 y x2 deben ser enteros y x3 no. El
problema resultante es:</li></li></ul><li>Ejemplo<br />Programación
de la Producción de un Ensamble<br />Cierta empresa produce un
artículo que se forma con cuatro piezas del componente A y tres piezas
del componente B. <br />Las piezas se pueden fabricar en cualquiera de
las tres máquinas diferentes que posee la compañía, las cuales
transforman las dos materias primas en las piezas que van al ensamble
del producto final.<br />La tabla siguiente muestra el número de gramos
de cada materia prima que deben utilizarse en cada máquina para
realizar un ciclo de producción de las componentes. La misma tabla
muestra el número de componentes de cada tipo que se obtienen en
cada ciclo de producción de cada una de las maquinas, así como el
número de gramos disponibles de las materias primas.<br />

7. 7. ¿Cómo debe programarse la producción para obtener la máxima


cantidad de artículos?<br />Construcción del modelo<br />Para un
mejor entendimiento elaboremos un diagrama de la situación<br />

8. 8. Definición de variables<br />Xi = Número de tandas de producción


que realiza la máquina i.<br />Cada tanda de producción de las
máquinas utiliza cierta cantidad de las materias primas y produce cierta
cantidad de los componentes A y B, con los cuales se obtiene el
ensamble del producto final.<br />Como para cada unidad del ensamble
se utilizan cuatro unidades del componente A y tres del componente B,
se concluye que el número total de ensambles obtenidos será el
resultado de dividir por cuatro el numero de componentes tipo A, pero
también debe ser igual al numero de componentes tipo B, dividido por
tres.<br />Necesitamos entonces definir también que <br /> XA =
número de componentes de tipo A obtenidas. XB = número de
componentes de tipo B obtenidas.<br />

9. 9.

10.10. PROGRAMACION ENTERA BINARIA<br />Utiliza variables binarias<br


/>

11.11. Programación Entera Binaria<br />En algunos problemas se restringe


el valor de las variables a 0 o 1. Son de particular interés debido a que se
pueden usar las variables 0–1 para representar decisiones dicotómicas
(sí o no). Diversos problemas de asignación, ubicación de plantas, planes
de producción y elaboración de cartera, son de programación lineal
entera 0–1. <br />
12.12. Programación Entera Binaria<br /><ul><li>Existen dos métodos para
generar las restricciones especiales que fuercen la solución óptima del
problema, hacia la solución óptima entera deseada: </li></ul> - Método
de ramificar y acotar. <br /> - Método de planos de corte.<br
/><ul><li>Desafortunadamente, ninguno de los dos métodos es efectivo
en la solución de problemas de programación lineal entera.
</li></li></ul><li>Programación de Proyectos<br />Una compañía tiene
cuatro proyectos llamados A, B, C y D, cada uno de los cuales puede o no
hacerse. Los proyectos B y D no se pueden ejecutar simultáneamente
(son mutuamente excluyentes).<br />La información relevante de los
proyectos es: (cifras en millones de pesos)<br />

13.13. La compañía dispone actualmente de 25 millones y al inicio del


segundo año recibirá 5 millones de otras inversiones. Además necesita
disponer de 15 millones al inicio del tercer año que destinará a cancelar
unos compromisos de pago en esa fecha. La tasa de interés que se paga
actualmente en el mercado es 20% anual efectiva.<br />Problemas<br
/>Estibaje: son problemas con una sola restricción de capacidad.<br
/>Cargo fijo: hay un costo asociado con desarrollar una actividad que no
depende del nivel de la actividad. <br />Cobertura: cada elemento de un
conjunto debe ser “cubierto” por un elemento aceptable de otro
conjunto. El objetivo del problema es minimizar el número de elementos
del segundo conjunto requerido para cubrir todos los elementos del
primer conjunto.<br />Escala mínima de operación<br />

14.14. Problema del agente viajero<br />Este problema, consiste en que un


viajero que saliendo de una determinada 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 Cij(Cij ≠ Cji ), se debe
determinar la secuencia de visita de ciudades, tal que el costo total
asociado sea mínimo.<br />La formulación de este problema es la
siguiente.<br />

15.15. xij= 1, si se visita a la cd. j después de visitar la cd. i<br /> 0, si no se


visita a la cd, j después de visitar la cd. i<br />cij: el costo asociado a la
visita de la cd. j después de visitar i<br />Ui = un número real
arbitrario<br />Entonces se requiere:<br />Sujeto a:<br />j= 0, 1, 2, …,
n,<br />i = 1, 2, …, n,<br />1 ≤ i ≠ j ≤n,<br />

16.16. Problemas típicos<br />Problema del transporte<br />Problema de


flujo con coste mínimo en red<br />Problema de asignación<br
/>Problema de la mochila (knapsack)<br />Problema del
emparejamiento (matachín)<br />Problema del recubrimiento (set-
covering)<br />Problema del empaquetado (set-parking)<br />Problema
de partición (set-partitioning)<br />Problema del coste fijo (fixed-
charge)<br />Problema del viajante (TSP)<br />Problema de rutas
óptimas<br />

ACOTAR Y RAMIFICAR

El método más conocido y eficaz hasta el momento es el Branch & Bound (Cota y
Ramificación). Este método resuelve inicialmente el problema sin considerar las
restricciones de números enteros. Luego se selecciona una de las variables que
debe ser entera agregando dos nuevas restricciones: la primera impone una upper
bound (cota superior) a la variable seleccionada restringiendo su valor de a lo más
la parte entera de su valor actual la segunda impone una lower bound (cota inferior)
a la variable seleccionada restringiendo su valor de al menos la parte entera de su
valor actual más 1.

Obviamente ninguna de esas restricciones es satisfecha por el problema actual. Se


crean entonces dos nuevos problemas de programación lineal (llamados ramas) y
se resuelven. Uno agrega la restricción de la cota superior y el otro agrega la
restricción de la cota inferior. Se trata de un proceso iterativo el que continúa hasta
que se encuentra una solución entera (si es que la hay).

El algoritmo tiene dos conceptos fundamentales:

1. Si se encuentra una solución de un sub problema que satisface todas las


restricciones de enteros y ya que esta es una solución factible del problema
original, el valor de la función objetivo es una cota inferior para la solución
entera óptima.
2. Si se encuentra una solución a un problema que no satisface una o más de
las restricciones enteras y ya que agregar restricciones adicionales no puede
mejorar el valor de la función objetivo, el valor de esta función objetivo es una
cota superior para todos los problemas restantes.
Se usará la siguiente notación para una rama dada

L: La mejor (mas grande) cota inferior encontrada para el IPL o MILP


Z : El valor de la función objetivo del problema que se está considerando (la cota
superior para todos los próximos sub-problemas)
Para comenzar el algoritmo se requiere una cota inferior. Si no hay una solución
inmediatamente podemos considerar L como menos infinito. El valor inicial de Z es
el valor de la función objetivo del problema relajado (es decir, sin restricción de
enteros). Luego, si para un sub-problema dado el valor de Z es menor que o igual
que la mejor cota inferior L (o si el sub problema es no-factible), se anula la rama.
El método Branch & Bound està determinado por los siguientes pasos:

1. Resuelva el problema relajado. Si todas las variables tienen valores enteros


esta es la solución óptima. Si no, asigne menos infinito a L.
2. Seleccione el siguiente sub problema a resolver con el mayor valor de Z.
3. Seleccione la primera variable entera Xj que tiene actualmente un valor no
entero. Cree un nuevo sub problema agregando la restricción Xj ³ I + 1. Si
esta rama ya ha sido evaluada, cree un nuevo sub problema agregando una
restricción Xj ≤ I.
4. Resuelva el nuevo sub problema.

SI ENTONCES
El problema no es factible Anule la rama
El valor de Z ≤ L

PLANOS CORTANTES

En este artículo, lo que veremos es una forma distinta de optimizar dichas


variables, mediante un algoritmo que lleva el nombre de Método de
Planos Cortantes o Método de Planos de Corte (o
simplemente Planos Cortantes). Este algoritmo también se conoce con
el nombre de Cortes basados en Descomposición de Benders, y esto
es principalmente debido a que este procedimiento
utiliza inecuaciones muy similares a las que se ocupan en el método
propuesto por J.F. Benders.
La idea fundamental detrás del algoritmo de planos cortantes es
comenzar con una solución inicial factible para el problema relajado, para
después “cortar” o sacar dicha solución y cambiarla por otra
que mejore el valor de la función objetivo que se está optimizando (es
decir el valor del Problema Dual Lagrangeano).
Además, para iniciar este método es necesario tener una consideración
especial:

El conjunto de puntos que constituyen las soluciones enteras factibles del


problema relajado debe ser acotado.
¿Por qué?: Debido a que el algoritmo de planos cortantes utiliza estos
puntos, por lo que si el conjunto fuera no acotado, entonces el algoritmo
nunca convergería (es decir, nunca terminaría de iterar). Este conjunto
acotado se conoce como la envoltura convexa, pero cuidado: no es
cualquiera, es la envoltura convexa de las soluciones enteras del
problema relajado.

Veamos entonces cómo funciona este método de forma general. Supongamos que
tenemos el siguiente problema, en donde el segundo conjunto de
restricciones es “difícil” y complica la resolución, por lo tanto lo sacamos y
lo llevamos a la función objetivo, a lo cual llamaremos el problema relajado:
Además, supongamos que es posible enumerar todos los puntos que son factibles
para nuestro problema relajado (es decir, los que están dentro de la envoltura
convexa). Si pudiéramos hacer eso, entonces bastaría con evaluar e

METODO DE PLANOS CORTANTES

En matemática, y más en concreto en optimización, el método


de los planos de corte es un procedimiento para encontrar
soluciones enteras de un problema lineal. Fue introducido
por Gomory.

Funciona resolviendo un programa lineal no entero, después


comprobando si la optimización encontrada es también una
solución entera. Si no es así, es añadida una nueva restricción
que corta la solución no entera pero no corta ningún otro punto
de la región factible. Esto se repite hasta que se encuentra la
solución entera óptima

Interpretación geométrica, una restricción es equivalente a


un hiperplano, permitiendo solo soluciones en uno de los lados
del planos

METODO FRACCIONAL DE GOMORY


Este método solo resuelve modelos enteros puros y
consta de los siguientes pasos:

1.- Resolver el modelo relajado, es decir, que las variables


sean continuas.

2.- Si el resultado es entero, entonces ya se tiene la solución


optima, si no seguir con el método.

3.- Seleccionar el max ( XBi – [XBi] ) incluyendo al renglon


Zj - Cj ,fraccionario y generar un nuevo corte o nueva restricción:

∑ (aij– [aij])xj ≥ (xBi – [xBi])

añadir este corte como una nueva restricción y resolver


utilizando el método Dual Simplex; ir al paso 2.

Nota: Z es entero si y solo si los coeficientes de la función


objetivo son enteros y asi utilizar al renglon Zj - Cj en la tabla simplex

ALGORITMO ADITIVO DE BALAS


El problema se puede poner en la forma inicial requerida por el
algoritmo aditivo, utilizando las siguientes operaciones:
 Multiplique la función objetivo por -1.
 Multiplique la tercera restricción por -2.
 Añada las variables s1,s2 y s3 para convertir las tres restricciones en
ecuaciones.
 Sustituya y1=1-x1 , y2=1-x2 , y5=1-x5 , y3=x3 , y y4=x4 para producir todos
los coeficientes objetivo positivos.
La conversión da por resultado la siguiente función objetivo:
Min z'=3x1+2x2+5y3-2x4+3x5-8
Para mayor facilidad, ignoremos la constante -8 y reemplazaremos z' +8
con z, de manera que el problema convertido resultante se lee como:
Min z=3x1+2x2+5y3-2x4+3x5
Sujeta a: x1 - x2 + x3 + 2x4 - x5 -s1 = 1
-7x1 +3x3 - 4x4 - 3x5 -s2 = -2
11x1 -6x2 -3x4 - 3x5 -s3 = 5
x1,x2,x3,x4,x5 = (0_1)
Debido a que el problema modificado busca la minimización de una
función objetivo con todos los coeficientes positivos, una solución inicial
lógica debe consistir en variables binarias todas cero. En este caso, las
holguras actuarán como variables básicas y sus valores los dan los
lados derechos de la ecuación. La solución se resume en la siguiente
tabla:
Dada Solución
una básica
solució factible X1 X2 X3 X4 X5 S1 S2 S3 Solución
n
2 -1 1 0 0 1
binaria
inicial -
toda S1 -7 0 3 -4 -3 0 1 0 2
cero,
la -
S1 11 -6 0 -3 -3 0 0 1 1
solució
n de Coeficientes
holgur S1 -1 -1 1 objetivo 3 2 5 2 3
a
asociada es:
(s2 ,s2 ,s3 ) = (1,-2,-1) , z=0
Si todas las variables fueran no negativas, concluiríamos que la solución
binaria toda cero es óptima. Sin embargo, debido a que algunas de las
variables son no factibles (negativas), necesitamos elevar una o más
variables binarias al nivel 1 para lograr la factibilidad (o concluimos que
el problema no tiene una solución factible).
La elevación de una (o de algunas) de las variables binarias cero al
nivel 1 ocurre en el algoritmo aditivo una a la vez. La variable elegida se
llama variable de ramificación y su selección se basa en el empleo de
pruebas especiales.
La variable de ramificación debe tener el potencial de reducir la no
factibilidad de las holguras. Si venos la tabla anterior x3 no se puede
seleccionar como una variable de ramificación, debido a que sus
coeficientes de restricción en la segunda y tercera restricciones son no
negativos. Por tanto, la determinación de x3=1 solo puede empeorar la
no factibilidad de s2 y s3. A la inversa, cada una de las variables
restantes tiene por lo menos un coeficiente de restricción negativo en
las restricciones 2 y 3, de allí que una combinación de estas variables
puede producir holguras factibles. Por consiguiente, podemos excluir a
x3 ya a considerar x2, x3, x4 y x5 como las únicas candidatas posibles
para la variable de ramificación.
La selección de la variable de ramificación entre las candidatas x2, x3,
x4 y x5 se basa en el empleo de la medida de no factibilidad de holgura.
Esta medida, que se basa en la suposición de que una variable cero xj
se elevará al nivel 1, se define como
Ij = " min {0,si-aij}
Donde s1 es el valor actual de la variable i y aij es el coeficiente de
restricción de la variable x1 en la restricción i.
De hecho, Ij no es más que la suma de las variables negativas
resultantes de elevar xj al nivel 1. La fórmula, aparentemente
complicada, se puede simplificar a:
Ij = " (negativos sj valor dado xj=1)
Por ejemplo, cuando determinamos x1=1, obtenemos s1=1-(-1)=2, s2= -
2-(-7)=5 y
s3= -1-11= -12. Así I1= -12. De manera similar I2=-2, I4=-1 y I5=0
(recordando que x3 se excluyó como no prometedora). Debido a que I5
produce la medida más pequeña de no factibilidad, se selecciona x5
como la variable de ramificación. Fa figura 9-10 muestra las dos
variables asociadas con x5=1 y x5=0 y la creación de nodos 1 y 2. el
nodo 1 produce los valores de holguras factibles (s1 ,s2 ,s3 )= (2,1,2) y
z=3. por tanto, se sondea el nodo 1 y z=3 se define como la cota
superior actual sobre el óptimo valor objetivo.

Después de sondear el nodo 1, avanzamos al nodo, para lo cual x5=0.


Aquí tenemos:
(s1 ,s2 ,s3 )= (-1,2,-1), z=2
Que no es factible. Las variables x1,x2,x3 y x4 son las candidatas para
la variable de ramificación. (Observe que aun cuando las soluciones en
el nodo 0 u el nodo 2 son idénticas, el nodo 2 difiere en que x5 ya no es
candidata para la ramificación. Para las variables restantes, x2 y x4,
calculamos las medidas de factibilidad como:
I2 = -2 , I4 = -1
Por consiguiente, x4 es la variable de ramificación en el nodo 2. La
figura 9-11 muestra las ramificaciones x4 = 1 y x4 = 0, que conducen a
los nodos 3 y 4. en el nodo 3 (definido al determinar x5 = 0 y x4 = 1),
obtendremos:
(s1 ,s2 ,s3 )= (-1,2,2), z=2