18-5-2018
Investigación de Operaciones I 4° Semestre Presenta: Ing. Eduardo Franco Austria
1
Investigación de Operaciones
I
4° Semestre
Contenido UNIDAD III. PROGRAMACIÓN ENTERA ........................................................................ 2 3.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN. ..................................................... 2 Introducción .................................................................................................................... 2 Casos de aplicación ......................................................................................................... 2 3.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA. ....... 2 Definición ........................................................................................................................ 2 Ejemplos básicos: ............................................................................................................ 3 Programación entera Binaria. .......................................................................................... 4 Ejemplos de Problema de Programación Binaria. ........................................................... 5 3.3. MÉTODO DE CORTE DE GOMORY ....................................................................... 6 3.4. MÉTODO DE BIFURCACIÓN Y ACOTACIÓN ..................................................... 6 Ejemplo: .......................................................................................................................... 7 REFERENCIAS.................................................................................................................. 8
Unidad III. Programación Entera
2
Investigación de Operaciones
I
4° Semestre
UNIDAD III. PROGRAMACIÓN ENTERA 3.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN. Introducción En esta unidad se presenta otra serie importante de modelos de programación lineal (PL) que surgen cuando algunas de las suposiciones básicas de PL se vuelven más o menos restrictivas. Por ejemplo, una suposición de la PL es que las variables de decisión pueden tomar valores fraccionarios como X1=0.33, X2= 1.57 o bien X3 = 109.4. No obstante, un gran número de problemas de negocios se resolverían tan solo si las variables tuvieran valores enteros. Cuando una aerolínea decide cuantos Boeing 757 o 777 a comprar, no se puede colocar un pedido por 5.38 aviones; se deben pedir 4, 5, 6, 7 o alguna otra cantidad entera (Render, Stair, Hanna, 2012). Casos de aplicación A continuación se presentan algunos artículos que el alumno debe consultar para profundizar sobre los casos de aplicación del tema que concierne a la unidad. Hernández J., Hernández S., Goytia, Flores y Segura (2011). Herramienta matemática para la construcción de horarios. Caso de estudio en el posgrado de una institución tecnológica mexicana. Ingeniería Industrial; actualidad y nuevas tendencias. Vol. 2, (7), pp. 51-70. Arias O. J. y Reyes P. A. J. (2009). Programación Binaria aplicada a sistemas de rutas de recolección de residuos. Gerencia Tecnológica Informativa. Vol. 8 (21), pp. 35-42. Bermúdez C. Y. (2011). Aplicaciones de programación lineal, entera y mixta. Ingeniería Industrial; actualidad y nuevas tendencias. Vol. 2 (7), pp. 85-104. Medina V. P. D., Cruz T. E. A. y Restrepo J. H. (2008). Programación de trabajos en una maquina utilizando un modelo de programación lineal entera. Scientia et Technica. Vol. XIV (40), pp. 111-116. Ojeda V. R. (2015). Toma de decisiones en la asignación de personal a horarios de trabajo empleando programación lineal: el caso de una empresa de atención telefónica en México. Investigación Administrativa. Vol. 1 (15), pp. 41-54.
3.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA. Definición Un modelo de programación entera es un modelo que tiene restricciones y una función objetivo idénticas a las formuladas por la PL. La única diferencia es que una o más de las variables de decisión tienen que tomar un valor entero en la solución final. Existen tres tipos de problemas de programación entera (Render, Stair, Hanna, 2012): Unidad III. Programación Entera
3
Investigación de Operaciones
I
4° Semestre
1. Los problemas de programación entera pura son casos donde se requiere que todas las variables tengan valores enteros. 2. Los problemas de programación entera mixta son casos en los cuales se requiere que algunas variables de decisión, aunque no todas, tengan valores enteros. 3. Los problemas de programación entera cero – uno o binarios son casos especiales donde todas las variables de decisión deben tener valores de solución enteros de 0 o 1. La solución de un problema de programación entera es mucho más difícil de resolver que un problema de PL. El tiempo de solución requerido para resolver algunos de ellos suele ser extenso aun con la computadora más veloz.
Ejemplos básicos:
Programación entera pura.
La compañía Harrison Electric, fabrica dos productos, candelabros y ventiladores de techo. Tanto los candelabros como los ventiladores requieren de un proceso de producción de dos pasos, que implica cableado y ensamble. Se requiere 2 horas para cablear cada candelabro y 3 para cablear un ventilador de techo. El ensamble final de los candelabros y los ventiladores requiere de 6 y 5 horas, respectivamente. La capacidad de producción es tal que solamente están disponibles 12 horas de cableado y 30 horas de ensamble. Si cada candelabro reditúa a la empresa $7 y cada ventilador $6. ¿Qué cantidad de cada tipo de producto se debe fabricar? Además, la empresa requiere que por cada candelabro realizado se manufacture la misma cantidad de ventiladores.
Programación entera mixta.
Una compañía vende dos productos químicos industriales. El primero, XYLINE, se debe producir en sacos de 50 libras; en tanto que el segundo, HEXALL, se vende por libras a granel en seco y, por consiguiente, se puede elaborar en cualquier cantidad, tanto el XYLINE como el HEXALL se componen de tres ingredientes (A, B y C) como sigue: Ingrediente
Cantidad por saco de 50 libras de XYLINE (lb)
Cantidad por libra de HEXALL (lb)
Cantidad de Ingredientes disponible (lbs).
A B C
30 18 2
0.5 0.4 0.1
2000 800 200
La compañía vende sacos de 50 libras de xyline en $85 y cualquier cantidad de hexall a $1.5 cada libra. ¿Qué cantidad de cada tipo de producto se debe fabricar?
Unidad III. Programación Entera
4
Investigación de Operaciones
I
4° Semestre
Programación entera Binaria. Las variables binarias ∈ {0,1} pueden utilizarse para modelar situaciones en las que se decide que si una acción se realiza = 1, o si no se realiza = 0. Un ejemplo típico de utilización de este tipo de variables es el problema de inversiones, a continuación se muestra una de sus versiones más simplificadas. Un inversor dispone de una cantidad b para invertir en n posibilidades de proyectos/inversiones. Cada posible acción tiene un costo unidades monetarias y un beneficio posterior de unidades monetarias. El inversor debe decidir que inversiones realizar con el objeto de maximizar el beneficio total. Para este problema se definen variables que toman valor 1 cuando se invierte en el proyecto j y valor 0 cuando no se invierte, con estas variables el problema queda en la siguiente forma:
Este problema puede modificarse incorporando el hecho de que las inversiones no sean de un solo periodo de tiempo sino que deban realizarse durante varios periodos de tiempo, en cada uno de los cuales se dispone de una cantidad unidades monetarias. También puede modificarse mediante la incorporación de condiciones y restricciones en las inversiones, por ejemplo:
Si invierto en el proyecto i entonces debo invertir en el proyecto j. Dicha condición responde a la ecuación ≤
Puede observarse que si = 1 entonces queda 1 ≤ con lo que debe tomar valor 1 y Si = 0 entonces queda 0 ≤ con lo que no está restringida y puede tomar cualquier de los dos posibles valores 0 ó 1.
Si invierto en el proyecto i y en el proyecto j. entonces debo invertir en el proyecto k . dicha condición responde a la ecuación + ≤ 1 +
En este caso si = = 1 la ecuación queda 2 ≤ 1 + con lo que está obligado a tomar el valor 1 y cualquier otro caso obtenemos 0 ≤ 1 + 0 1 ≤ 1 + que no restringen a .
Si invierto en el proyecto i o en el proyecto j. entonces debo invertir en el proyecto k . dicha condición responde a la ecuación + ≤ 2
Unidad III. Programación Entera
5
Investigación de Operaciones
I
4° Semestre
En este caso si = 1 = 1 la ecuación queda 1 ≤ 2 que obliga a que tome valor ( ≥ 0 . 5 ⟹ = 1, si ambas toman valor 1 entonces queda ≥ 1 si ambas toman valor 0 queda libre pudiendo tomar valores 0 o 1.
Ejemplos de Problema de Programación Binaria. 1.- Una compañía está considerando tres posibles proyectos para mejorar su planta: un nuevo convertidor catalítico, un nuevo software para controlar las operaciones y la expansión del almacén. Los requerimientos de capital y las limitaciones del presupuesto en los dos años siguientes impiden que la firma emprenda todos los proyectos en este momento. El valor presente neto (el valor futuro del proyecto descontado al del momento actual) de cada uno de los proyectos, los requerimientos de capital y los fondos disponibles para los dos años siguientes se presentan en la tabla siguiente: Proyecto Valor presente neto Año 1 Año 2 Convertidor catalítico $25000 $8000 $7000 Software $18000 $6000 $4000 Ampliación del $32000 $12000 $8000 almacén Fondos disponibles $20000 $16000 a) Si la empresa desea maximizar el valor presente neto de los proyectos emprendidos, en ¿qué proyectos deberá invertir la empresa? b) Suponga que la compañía requiere elegir no más de los tres proyectos, sin importar los fondos disponibles, ¿Cuál sería la nueva solución? c) Suponga que la compañía decide que el nuevo convertidor catalítico podría comprarse tan solo si también se adquiere el nuevo software ¿Cómo se plantearía esta situación? ¿cuál sería la solución en este escenario? 2.- Una empresa manufacturera desea construir al menos una nueva planta, para lo cual está considerando tres ciudades: San Luis Potosí, Hidalgo y Querétaro. Una vez que se haya(n) construido la(s) planta(s), la compañía desea tener suficiente capacidad para producir anualmente por lo menos 38 000 unidades. Los costos asociados con las ubicaciones se muestran a continuación:
Sitio Costo fijo anual Costo variable por unidad Capacidad anual $340 000 $32 21 000 San Luis Potosí $270 000 $33 20 000 Hidalgo $290 000 $30 19 000 Querétaro Como observación para realizar el modelo se tiene que el número de unidades producidas en la planta de San Luis Potosí será 0 si la planta no se construye, y de no más de 21 000 si se construye la planta. a) ¿Qué planta(s) deberá construir la empresa? Resuelva por el método de ramificación y acotación.
Unidad III. Programación Entera
6
Investigación de Operaciones
I
4° Semestre
3.3. MÉTODO DE CORTE DE GOMORY Este método fue creado por Gomory en 1958y consiste en resolver el problema entero por programación lineal, y en caso de que la solución no sea entera se irá acortando la región factible de solución por la inclusión de nuevas restricciones, lo que excluirá las soluciones no enteras. En este método solo habrá acotamiento de la zona de solución en cada paso hasta encontrar el óptimo (Izar, 2012; Bronso, 1992). El procedimiento consiste en los siguientes pasos: 1. Se resuelve el problema planteado por programación lineal. Si la solución es entera, será la óptima en caso contrario, se va al siguiente paso. 2. De la solución fraccionaria obtenida en el paso anterior, se toma de la tabla simplex final la ecuación del renglón de la variable de decisión que haya resultado fraccionaria, en caso de haber varias variables fraccionarias, se aconseja tomar aquella que este más próxima al valor intermedio (0.5). 3. La ecuación obtenida en el paso anterior se descompone en dos partes: una entera y la otra fraccionaria. Esta última será una nueva restricción, tomándose como desigualdad del tipo mayor o igual que cero. 4. Se vuelve a solucionar el problema original, con la adición de la nueva restricción obtenida en el paso anterior. Esto puede hacerse conforme a lo visto en la unidad de “análisis de sensibilidad. Si la solución obtenida en este paso es entera, se habrá
resuelto el problema; si es fraccionaria, se repite el procedimiento a partir del paso número 2.
Nota importante: Una de las desventajas del presente método, es que no garantiza la convergencia a la solución óptima, aunque si resulta menos laborioso que el método de Bifurcación y Acotación. Por ello el método más aceptado para problemas de programación entera es el de bifurcación y acotación. 3.4. MÉTODO DE BIFURCACIÓN Y ACOTACIÓN Izar (2012) menciona que este método se creó en 1960 por A. H. Land y A. Doig, siendo el más popular para resolver los problemas de programación entera. Como su nombre lo indica, consiste en partir del problema original, el cual se irá dividiendo en ramas, cada una de las cuales va acortando la región factible de solución conservando las soluciones enteras hasta que se encuentre la solución óptima. Procedimiento: 1. Se resuelve el problema original de programación lineal, sin limitarse a una solución entera. Si la solución obtenida es entera, ésta será la óptima para el problema, pero si es fraccionaria en alguna (s) de las variables de decisión, se continua al paso siguiente.
Unidad III. Programación Entera
7
Investigación de Operaciones
I
4° Semestre
2. De las variables de decisión que hayan resultado fraccionarias en el paso anterior, se toma una de ellas, por decir Xi la cual quedará comprendida entre dos números enteros consecutivos, los cuales designaremos por K 1 y K 2, entonces: ≤ ≤
De aquí el problema tendrá su primera ramificación en 2 partes o nuevos subproblemas, los cuales serán idénticos al problema que les dio origen, añadiendo una restricción adicional cada uno de ellos, las cuales será: ≤ ≥
Con esto cada rama abarcará una región factible de solución más limitada que la del problema original, lo cual implica haber dividido éste en 2 subproblemas más pequeños. En el caso de haber varias variables de decisión fraccionarias que sean candidatas para efectuar ramificaciones, deberá tomarse aquella que quede más próxima a la fracción intermedia entre dos enteros consecutivos, es decir, (0.5). 3. Resolver cada rama del paso anterior por medio de programación lineal; de aquí podemos tener varias posibilidades, por decir: a) Que la solución encontrada no sea factible. En este caso esta rama ya no se investiga más. b) Qué la solución hallada sea entera. En este caso esta solución se convierte en una COTA que será inferior para problemas de maximización y superior para los de minimización. Esto viene siendo el proceso de acotación. De esta rama ya no se prosigue la búsqueda de nuevas opciones. c) Que la solución encontrada sea fraccionaria. De aquí, esta rama será candidata para seguir haciendo bifurcaciones, siempre y cuando el valor hallado para la función objetivo sea mejor que el de alguna cota fijada en una etapa anterior, pues de no suceder así, ya no se proseguirá la búsqueda y esa cota anterior sería la solución óptima. Si la búsqueda hubiese continuado y se encontrara una nueva solución entera cuya función objetivo fuese mejor que la de la cota anterior, dicha rama tomaría el lugar de la nueva cota en sustitución de la anterior. Este procedimiento se continuará hasta que ya no haya posibilidades de ramificaciones posteriores. Con esto tendremos la certeza de que se encontrará la solución entera óptima en caso de haberla, siendo ésta, la última cota que haya prevalecido como tal hasta el final del problema.
Ejemplo: La compañía Harrison Electric, fabrica dos productos, candelabros y ventiladores de techo. Tanto los candelabros como los ventiladores requieren de un proceso de producción de dos Unidad III. Programación Entera
8
Investigación de Operaciones
I
4° Semestre
pasos, que implica cableado y ensamble. Se requiere 2 horas para cablear cada candelabro y 3 para cablear un ventilador de techo. El ensamble final de los candelabros y los ventiladores requiere de 6 y 5 horas, respectivamente. La capacidad de producción es tal que solamente están disponibles 12 horas de cableado y 30 horas de ensamble. Si cada candelabro reditúa a la empresa $7 y cada ventilador $6. ¿Qué cantidad de cada tipo de producto se debe fabricar? Resuelva por el método de bifurcación y acotación.
REFERENCIAS Render B., Stair R. M., Hanna M. E. (2012). Métodos Cuantitativos para los negocios. (11ª Ed.) Distrito Federal, México. Pearson. Izar L. J. M. (2012). Investigación de Operaciones (2ª Ed.) Distrito Federal, México. Trillas.
Unidad III. Programación Entera