UNIVERSIDAD NACIONAL ABIERTA
CENTO LOCAL- CARABOBO
ÁREA DE INGENIERÍA
CARRERA: INGENIERÍA DE SISTEMAS (236)
ASIGNATURA: APLICACIÓN DE PROGRAMACIÓN ENTERA Y DINÁMICA (359)
APLICACIÓN DE PROGRAMACIÓN DE ENTERA Y DINÁMICA
(TRABAJO PRÁCTICO OBJ. 03, 04,07)
REALIZADO POR:
Ing. RONALD MEDINA
C.I: 16291029
PROFESOR (A): ING. LOLA PARRAGA
LAPSO 2015 -2
ENVIADO DESDE: GUANGZHOU, CHINA.
ABRIL, 2016
OBJETIVO 3
ENUNCIADO
La compañía de construcción P&D para el próximo año tiene la oportunidad de invertir en cinco
proyectos diferentes, cada uno con un beneficio neto en miles de unidades monetarias (UM)
estimado como se muestra en la siguiente tabla:
Beneficio neto esperado (en miles de UM)
PROYECTO 1 2 3 4 5
BENEFICIOS 100 80 70 60 90
Dado que los diferentes requerimientos de cada proyecto (mano de obra, equipo etc.) los costos
varían de proyecto a proyecto y además las obligaciones de flujo de caja, hacen que P&D no pueda
invertir en todos los cinco proyectos.
En la siguiente tabla se listan los costos totales o salidas de caja requeridos para invertir en cada
proyecto:
Costos esperados (en miles UM)
PROYECTOS 1 2 3 4 5
COSTOS 60 40 20 40 50
La constructora P&D estima que tendrá una disponibilidad de caja de 150.000 UM para el próximo
año. ¿En cuáles proyectos podría invertir P&D en el próximo año para obtener un máximo beneficio?
Dada la información anterior y debido a la naturaleza de encontrar un plan que satisfaga los
requerimientos con la mayor ganancia posible, se formó un equipo de investigación de operaciones
el cual decidió enfocar el problema desde un punto de vista de Programación Entera, para
determinar en cuáles proyectos invertir o no.
Para ello responda los siguientes ítems:
•Modele el problema de Programación Entera.
Resuélvalo aplicando el paquete de programación que disponga.
•Interprete los resultados.
SOLUCIÓN
El ejercicio planteado trata de resolver un problema de toma de decisión sobre un conjunto de
proyectos de inversión, de forma que se facilite y optimice la misma.
Tras el estudio del escenario económico y utilizado la hoja de cálculo Excel activando la macro
SOLVER que ofrece la resolución en cuestión de segundos de problemas de hasta 200 variables y 500
restricciones, se ha llegado a la siguiente información:
Como se puede observar en la siguiente figura se definieron las variables de decisión, que en este
caso son los beneficios que se obtendrán por cada proyecto de inversión. Así mismo se definieron
las restricciones que no es más que los costos de cada proyecto.
NOTA: PROFE LOLA LA FOTO SE ME DISTORCIONO
FUNCIÓN OBJETIVO
MAX: Z= 100X1 + 80X2 +70X3+60X4+90X5 RESTRICCIONES:
60X1 + 40X2 +20X3+40X4+50X5 <= 150
X1 + X2 + X3+ X4+ X5 <= 5
Al ejecutar la macro SOLVER, obtuvo lo siguiente:
Los proyectos que aportan mayores beneficios y menos costos son los proyectos 2 y 3, tienen un
beneficio de 80 y 70 UM respectivamente, y costos bajos de 40 y 20 UM respectivamente, el capital
disponible para la inversión es de 150 UM; invirtiendo en esos proyectos restan del capital disponible
para la inversión 90 UM; que pueden ser utilizados para un nuevo escenario para inversión.
A continuación se presenta el informe de respuestas emitido por Excel Solver, dónde se evidencia
que la cantidad de proyectos a elegir son 2, y los mismos arrojan los mejores beneficios para la
empresa. Así mismo se detalla, el capital disponible para la inversión y el total de costos que
acarreará la misma.
Microsoft Excel 15.0 Informe de respuestas
Hoja de cálculo: [SOLVER APLICACIÓN PROGRAMACIÓN ENTERA DINÁMICA.xlsx]Hoja1
Resultado: Solver encontró una solución de enteros dentro de la tolerancia. Se cumplen todas las restricciones.
Motor de Solver
Motor: Simplex LP
Tiempo de la solución: 0,093 segundos.
Iteraciones: 0 Subproblemas: 28
Opciones de Solver
Tiempo máximo Ilimitado, Iteraciones Ilimitado, Precisión 0,000001
Máximo de subproblemas Ilimitado, Máximo de soluciones de enteros Ilimitado, Tolerancia de enteros 1%, Asumir no negativo
Celda objetivo (Valor de)
Celdas de variables
Celda Nombre Valor original Valor final Entero
Celda Nombre Valor original Valor final
$H$13 PR OYECTO A ELEGIR CAPITAL DISPONIBLE 150 150
$B$13 PROYECTO A ELEGIR A 0 0 Entero
$C$13 PROYECTO A ELEGIR B 1 1 Entero
Restricciones
Celda Nombre Valor de la celda Fórmula Estado Demora
$G$22 COSTOS PROYECTOS <= 60 $G$22<=150 No vinculante 90
$G$23 NRO PROYECTOS ELEGIDOS <= 2 $G$23<=5 No vinculante 3
$H$13 PROYECTO A ELEGIR CAPITAL DISPONIBLE 150 $H$13=150 Vinculante 0
.
$D$13 PROYECTO A ELEGIR C 1 1 Entero
$E$13 PROYECTO A ELEGIR D 0 0 Entero
$F$13 PROYECTO A ELEGIR E 0 0 Entero
OBJETIVO 4
ENUNCIADO
Para promover la seguridad de una gran urbanización, la junta de condominio de áreas comunes
desea colocar teléfonos de emergencia en cada una de las deferentes intersecciones de las calles,
se determinó que se deben colocar un máximo de 8 teléfonos para dar la mayor cobertura, como se
observa a continuación en el diagrama de todas las calles del conjunto residencial:
Los números representan las intersecciones y las letras representan las calles, la junta de
condominio de áreas comunes desea estimar el mínimo de casetas telefónicas de tal forma que den
cobertura por lo menos a dos calles.
Para ello aplique Programación Entera (PE) y realice lo siguiente:
a. Modele el problema de Programación Entera, determinando las variables de decisión, las
restricciones del problema y la función objetivo.
b. Resuélvalo aplicando el programa de programación que disponga.
c. Conclusiones.
SOLUCIÓN
Para cumplir con las restricciones del problema se requiere instalar un teléfono en cada una de las
11 calles (A a K). El modelo viene a ser:
Minimizar Z = X1 + X2 + X3+ X4 + X5 X6 + X7 +X8+X9+X10 + X11 Restricciones:
CALLE A = X1 + X2 >= 1
CALLE B = X2 + X3 >= 1
CALLE C = X4 + X5 >= 1
CALLE D = X7 + X8 >= 1
CALLE E = X6 + X7 >= 1
CALLE F = X2 + X6 >= 1
CALLE G = X1 + X6 >= 1
CALLE H = X4 + X7 >= 1
CALLE I = X2 + X4 >= 1
CALLE J = X5 + X8 >= 1
CALLE K = X3 +X5 >= 1
Como se puede observar todas las variables son binarias, se utilizó TORA, el diseño de éste programa
permite usarlo en modo tutorial o en modo automático. Se maneja con menús, y en consecuencia
no requiere un manual de usuario.
La solución óptima del problema es: la instalación de 4 teléfonos en las esquinas 1, 2, 5,7. Al observar
el diagrama de las calles del conjunto residencial se tiene que:
Al colocar un teléfono en la esquina número 1, se tendrá cobertura en las calles A y G.
• Al colocar un teléfono en la esquina 2, se tendrá cobertura en las calles I, A y B.
• Al colocar un teléfono en la esquina 5, se tendrá cobertura en las calles K, J y C.
• Y al colocar un teléfono en la esquina 7, se tendrá cobertura en las calles E, H y D.
Si se observa más detalladamente al colocar los teléfonos en esos puntos estratégicos se consigue
la cobertura total de las calles del condominio con una menor cantidad de teléfonos de la que se
tenía a disposición.
OBJETIVO 7
ENUNCIADO
El gerente de una represa pronostica que se necesitarán rt Kilowatt hora (kw/h) de capacidad de
generación durante el año t el año actual es el 1. Cada año la gerencia debe decidir en cuánto se
debe aumentar la capacidad de generación. Cuesta ct(x) unidades monetarias (UM) aumentar la
capacidad de generación (x) kw/h durante el año t. Durante cada año, el 10% de la capacidad
generadora anterior se pierde, menos el primer año. A la gerencia le cuesta mt(i) (UM) mantener (i)
unidades de capacidad durante el año t. al inicio del año 1, están disponibles 100.000 kw/h de
capacidad de generación. Plantee una fórmula recursiva de programación dinámica que permita a
la gerencia de la represa reducir al mínimo el total de cumplir con las necesidades de energía,
durante la siguiente t años.
SOLUCIÓN:
Generalmente en los problemas de recursión de programación dinámica y si es un problema de
minimización se escribe de la siguiente manera:
ft(i)=min{Costo durante la etapa t) + ft+1 (nuevo estado en la etapa t+1)} (1) ft(i) es
el costo mínimo que se genera desde la etapa t hasta el final del problema ( es decir el problema
termina después de la etapa T), dado que el estado es i en la en la etapa t.
El planteamiento correcto de una recursión de la forma 81) requiere la identificación de tres
aspectos importantes del problema.
• Primeramente se deben tomar en cuenta el conjunto de decisiones que es admisible, o
factible para el estado y la etapa dados. Es decir, éstas dependen de t y de i.
Entonces tenemos:
Xt= cantidad de capacidad por añadir.
It= cantidad de capacidad disponible.
Rt= kilowatt/h que se necesitan (Demanda).
¿Qué valores de Xt son factibles?
Para cumplir la demanda de rt del año t debemos tener it + Xt >= rt o Xt >= rt – it. De ésta
manera los Xt factibles son los valores de Xt que satisfacen Xt>= rt – it.
• Se deben especificar como el costo durante el periodo actual (etapa t) dependen del valor
de t, el estado actual, y la decisión tomada en la etapa t. entonces ¿Cuál será el costo
durante el año t?
Si Xt kw/h se añaden durante un año que empieza con it kw/h de capacidad disponibles,
entonces, durante el año t, se genera un costo:
CT (XT) +mt (iT + XT).
• ¿Cuál será el estado al principio del año t + 1?
Al iniciar dicho año, la planta tendrá 0.9 it kw/h de capacidad antigua más los XT kw/h que
se han sumado durante el año t. Por lo tanto, el estado al inicio del año t +1 será:
0.9 it + XT.
Ahora se define fT(iT) como el costo mínimo generador por la planta durante los años t, t+1,…, T
dados que están disponibles it kw/h de capacidad al principio del año t.
Al comenzar el año T no hay costos futuros por considerar de modo que:
fT(iT)=min{CT(XT) +min(iT + XT) donde XT deben satisfacer XT>= rT-iT, para t<T. (2)
Luego se aplica:
fT(iT)=min{CT(XT) +min(iT + XT) + ft+1(0.9it + Xt )} (3).