Notas
Notas
Notas
Agosto 2021
Índice general
1. Programación dinámica 5
1.1. Programación dinámica determı́stica . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2. Programación dinámica probabilı́stica . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Programación entera 23
2.1. Problemas clásicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.1. Problema de la mochila . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.2. El problema de transporte . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2. Métodos de solución para programación lineal entera . . . . . . . . . . . . . . . 33
2.2.1. Método gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2.2. Método de ramificación y acotamiento . . . . . . . . . . . . . . . . . . . 36
2.3. Programación dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3. Análisis de redes 47
3.1. Introducción a las gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2. Problema de la trayectoria más corta . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3. Modelos de Máximo Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4. Árbol de expansión mı́nima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5. CPM y PERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4. Modelos de Inventario 62
4.1. Modelo estático de cantidad de pedido económico (EOQ) . . . . . . . . . . . . . 63
4.1.1. Modelo EOQ clásico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2
Introducción
Una de las principales necesidades que surgen al estudiar modelos matemáticos ası́ como en
la vida profesional es la de optimizar ya sea recursos y/o tiempo tanto en ámbitos profesionales
como en el académico, por lo que, es fundamental contar con los elementos necesarios que nos
permitan desarrollar dicha habilidad.
Tal vez al escuchar esto por primera vez, el estudiante recordada aquellos cursos de cálculo, op-
timización lineal, optimización no lineal, en los cuales pudo haber aplciada alguna optimización
mediante técnicas de cálculo, sin embargo, en este curso analizaremos algunas de las técnicas
más comúnes en dicha tarea como son: programación dinámica, programación entera,
análisis de redes, teorı́a de colas ası́ como algunos modelos de inventarios.
2. Una vez planteado el problema lo que resta es analizar la solución y asimismo, recordar
que dicho modelo sólo es una aproximación del fenómeno de interes, por lo que, dicha
ecuación puede simplificiar el problema a resolver. Dicho lo anterior, es necesario conocer
el problema y comprenderlo a fin de mejorar y delimitar la ecuación de interes.
3. Finalmente, una vez obtenida la solución de la ecuación diferencial esta misma deberá
de interpretarse en términos del contexto del problema que la origino. Y asimismo, se
deberá de validar que dicha solución es razonable con respecto a la interpretación fı́sica
del mismo.
1
Richard Ernest Bellman fue un matemático cuya mayor contribución fue la metodologı́a de la denominada
programación dinámica ası́ como por la ecuación de Bellman
3
4 ÍNDICE GENERAL
Programación dinámica
Debido a lo anterior no existe una formulación estándar, sino sólo el método para resolver
el problema y además de que depende del conocimiento que se tengan sobre el problema debido
a que se involucra un tipo de ecuación general la cual puede plantearse a decisión del estudiante.
Por lo que, es necesario tener una buena idea de la estructura general del problema ası́ co-
mo de la evolución del mismo para resolver el problema; por esta razón analizaremos primero
los elementos básicos de la formulación del método y posteriormente las diferentes clasificacio-
nes de los modelos ası́ como ejemplos y aplicaciones del mismo.
Ahora nos enfocaremos en los elementos clave de este tipo de problemas ası́ como la forma
de identificar cuando podemos poner en práctica algúna variante de la programación dinámica,
para lo que, incorporaremos un problema inicial con el que mencionaremos diferentes elementos
del mismo:
Ejemplo 1.1. Considere una persona que tiene una pequeña tienda de autoservicio en la cual
cuenta con una gran variedad de artı́culos de abarrotes entre ellos se encuentran las tortillas
las cuales se venden en $ v pesos. Resulta ser que el proveedor de dicho artı́culo pasa diario a
reabastecer la cantidad de tortillas necesarias, las cuales se las vende a $ c pesos.
El dueño de la tienda conoce que al igual que sus otros artı̀culos perecederos este depende
principalmente de la demanda del mismo ası́ como de la competencia que pueda tener, sin em-
bargo, el no puede solicitar demasiado artı́culo debido a que este pierde sus cualidades y genera
pérdidas en vez de utilidades.
Entonces a partir de lo anterior y de la demanda que existe el dueño de la tienda busca deter-
minar el número de kilos de tortillas que deberá solicitar a su proveedor a fin de maximizar sus
ganancias causadas por la venta de tortillas en la semana.
Del ejemplo anterior podemos observar diferentes cuestiones que se ven involucradas en cual-
quier problema de programación dinámica, los cuales son:
1. Etapas: El problema puede ser dividido en etapas, cada una de las cuales requiere de una
polı́tica de decisión, la cual nos permite elegir una acción de entre un conjunto posible
5
6 CAPÍTULO 1. PROGRAMACIÓN DINÁMICA
de acciones.
En nuestro ejemplo, las acciones que puede tomar el dueño de la tienda es elegir el
número de kilogramos de tortillas que requiere para el dı́a correspondiente, para cada uno
de los dı́as de la semana.
2. Cada etapa tiene un número de estados asociadas al inicio del mismo, en este caso aunque
parece ser que se reinicia en cada etapa, no necesariamente debe de suceder en cada etapa,
supongamos que pudiera vender las tortillas del dı́a anterior como tortilla frı́a entonces
tendrı́amos dependencia.
4. La solución se encuentra dada por la polı́tica óptima, misma que permite resolver el
problema de forma completa es decir, aquella que permite obtener el máximo ingreso en
los 7 dı́as.
5. Dado el estado actual, notemos que la polı́tica óptima debe ser independiente de las
etapas, toda vez que, esta debe buscar maximar el ingreso en cada etapa a fin de que esta
sucesión de acciones la lleve a la polı́tica óptima.
6. Existe una función objetivo la cual buscamos maximizar, con la que, podemos definir la
polı́tica óptima.
Ejemplo 1.2. Considere una persona que se traslada de su casa al trabajo y puede realizar
diferentes rutas, sin embargo, cada ruta toma cierto tiempo de acuerdo con la siguiente gráfica:
7
A D 1
4 3
2 4 G
6
3
6
4 2
O B E 3 M
4
4
3 3
1 4
H
3
5
C F
Una forma de considerar este problema, podrı́a ser a través de elegir el menor tiempo desde el
origen, es decir, optarı́amos por la ruta O → A → E → H → M , es decir la ruta:
7
7
A D 1
4 3
2 4 G
6
3
6
4 2
O B E 3 M
4
4
3 3
1 4
H
3
5
C F
Donde entonces el tiempo total que le tomarı́a en llegar a su destino serı́a de 13 horas, sin
embargo, esta idea no obtiene el valor óptimo esperado debido a que podemos brindar otra ruta
la cual claramente es mejor:
7
A D 1
4 3
2 4 G
6
3
6
4 2
O B E 3 M
4
4
3 3
1 4
H
3
5
C F
Notemos que esta ruta nos tomarı́a en total 11 horas, siendo dos horas menor a la anterior,
por lo que debemos de buscar una forma de obtener dicho óptimo. Una forma muy sencilla es
dividir el problema en pequeños subproblemas de tal forma que podamos obtener la ruta óptima,
por lo que, consideraremos que la persona casi ha llegado a su destino (notemos que el problema
se puede ver como 4 etapas).
Notemos que el objetivo es encontrar f1∗ (O) ası́ como la ruta óptima con la que se obtiene di-
cho óptimo, es decir, la trayectoria deseada; notemos que gracias al proceso anterior podemos
8 CAPÍTULO 1. PROGRAMACIÓN DINÁMICA
determinarla de forma sucesiva al calcular f4∗ (s), f3∗ (s), f2∗ (s) y finalmente f1∗ (O), realizamos el
procedimiento para obtener la solución.
Notemos que cuando el individuo se encuentra a una etapa de llegar el tiempo total se en-
cuentra dado por el tiempo de moverse del estado en el que se encuentre, es decir:
Ahora con estos costos en mente podremos determinar ahora para cuando estamos a dos etapas
de llegar al destino, es decir:
Ahora de forma similar analicemos el caso cuando estamos a tres etapas de llegar al pun-
to destino, sin embargo, en esta ocasión a fin de no trabajar más retomaremos la expresión
simplificada únicamente, es decir:
s ts,D + f3∗ (D) ts,E + f3∗ (E) ts,F + f3∗ (F ) f2∗ (s) Trayectoria (s)
A 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 11 A → D → G → M ; A → E → H → M
B 3+4=7 2+7=9 4 + 6 = 10 7 B→D→G→M
C 4+4=8 1+7=8 5 + 6 = 11 8 C → D → G → M; C → E → H → M
1. O → B → D → G → M .
2. O → C → D → G → M .
3. O → C → E → H → M
D 1
3
G
3
4
O B E 3 M
4
4
3
1
H
C
En general esta será la forma en que se determinará cada problema de progración dinámica, es
decir, tendremos una relación recursiva y un procedimiento de solución hacı́a atrás comúnmente
conocido como programación dinámica, existe otra forma de resolverla conocida como itera-
ción de polı́ticas la cual jeuga un papel importante en la teorı́a de juegos.
Antes de entrar a analizar más ejemplos y elementos del método daremos énfasis a cierto
factor que hace que el método funcione. Este justamente se conoce como el principio de
optimalidad de Bellman. A continuación se señala:
Teorema 1.1. Principio de optimalidad de Bellman: Una polı́tica óptima tiene la pro-
piedad de que cualquiera que sea el estado inicial y la decisión inicial, las decisiones restantes
deben ser una polı́tica óptima en relación con el estado resultante de la primera decisión.
En otra palabras, la polı́tica óptima debe de mantener la propiedad de optimalidad sin impor-
tar en que etapa la estemos considerando, de aquı́ justamente nace la relación recursiva que
pudimos plantear anteriormente.
Notemos que por esta razón podemos comenzar el proceso de determinación del óptimo a
partir de la última y etapa y posteriormente regresar a etapas iniciales. Lo que implica que
determinar la decisión óptima de la etapa final debe conformar parte de la polı́tica de decisión
global y ası́ posteriormente.
De esta forma es como el principio de optimalidad es una parte fundamental del méto-
do de programación dinámica, ya que, si esta no fuera válido no podrı́amos realizar el método.
En la siguiente sección consideraremos otra caracterı́stica del método y como este mismo real-
mente considera una gran variedad de problemas; misma que resulta aplicable para problemas
con mayor complejidad, sin embargo, necesita de un mayor conocimiento tanto del problema
como de fundamentación matemática.
se debe a que existen aquellos problemas que tienen un enfoque determinı́stico y otros del tipo
estocástico.
Previo al análisis del ejemplo siguiente también se puede clasificar el problema en función
de la naturaleza del conjunto de estados en las respectivas etapas, es decir, si toma valores
en un conjunto a lo sumo numerables estonces la variable se denominará discreta, en caso
contrario se llamará continua.
Por lo anterior, entre las diferentes áreas de las OMS se cuentan con 5 brigadas por envı́ar a
3 comunidades diferentes, el desempeño de la atención de las brigadas se evalúa en términos
de la esperanza de vida incremental por persona en cada comunidad (para cualquier comunidad
se considera el incremento del promedio de vida esperado, multiplicado por personas).
¿Cuál es la asignación que maximiza el desempeño? Considere la siguiente tabla:
Solución:
Ahora bien, pareciera que el problema anterior no es puede ser objeto de aplicación del méto-
do de programación dinámica, sin embargo, el problema requiere de aplicar un conjunto de 3
decisiones interrelacionadas las cuales son: ¿cuántas brigadas se envı́aran a la C1, C2 y C3?.
0
0 0
20
0
1 1
120 20 0
45
105 50
0
2 75 2 70
90 20
45
5 70 0
80
110 0
3 75 75 3
45 20 100
45
0 150 130
45
110 0
4 4
20
0
5 5
x1 + x2 + x3 = 5, ∀i = 1, 2, 3 xi ≥ 0. (1.4)
Por lo que, la función objetivo anterior se puede replantear en términos del principio de
optimalidad, de la siguiente forma:
3
X
fn (sn , xn ) = pn (xn ) + máx pi (xi ), (1.5)
i=n+1
Ahora bien, notemos que al determinar el máximo sobre la función (1.5) obtenemos la optima-
lidad al considerar la evolución a partir de la etapa n, es decir:
fn∗ (sn ) = máx fn (sn , xn ) = máx fn (sn , xn ) (1.7)
xn xn =0,1,...,sn
En particular para las etapas intermedias, es decir n = 1, 2, tenemos que considerar la ecuación:
∗
fn∗ (sn ) = máx pn (xn ) + fn+1
(sn − xn ) , (1.9)
xn
Una vez definido las ecuaciones de optimalidad (1.9) y (1.10), ası́ como identificado la gráfica
que muestra la evolución del sistema podremos aplicar el método de programación dinámica;
comencemos con la etapa final:
s3 f3∗ (s3 ) x∗3
0 0 0
1 50 1
2 70 2
3 80 3
4 100 4
5 130 5
Ahora consideremos una etapa adicional hacı́a atrás, y evaluamos ecuación de optimalidad
p2 (x2 ) + f3∗ (s2 − x2 ), obteniendo ası́:
s2 x2 = 0 x2 = 1 x2 = 2 x2 = 3 x2 = 4 x2 = 5
0 0+0=0
1 0 + 50 = 50 20 + 0 = 20
2 0 + 70 = 70 20 + 50 = 70 45 + 0 = 45
3 0 + 80 = 80 20 + 70 = 90 45 + 50 = 95 75 + 0 = 75
4 0 + 100 = 100 20 + 80 = 100 45 + 70 = 115 75 + 50 = 125 110 + 0 = 110
5 0 + 130 = 130 20 + 100 = 120 45 + 80 = 125 75 + 70 = 145 110 + 50 = 160 150 + 0 = 150
Resumiendo la tabla anterior, obtenemos la siguiente tabla; la cual resume la trayectoria óptima
ası́ como el beneficio óptimo:
s2 f2∗ (s2 ) Trayectoria
0 0 0→0
1 50 0→1
2 70 0 → 1; 1 → 0
3 95 2→1
4 125 3→1
5 160 4→1
1.2. PROGRAMACIÓN DINÁMICA PROBABILÍSTICA 13
Finalmente, consideraremos la primer etapa con lo que podremos determinar la polı́tica ópti-
ma, consideremos entonces:
s1 x1 = 0 x1 = 1 x1 = 2 x1 = 3 x1 = 4 x1 = 5
5 0 + 160 = 160 45 + 125 = 170 70 + 95 = 165 90 + 70 = 160 105 + 50 = 155 120 + 0 = 120
Por lo anterior, debe idear un número de personal a mantener durante cada una de las di-
ferentes temporadas, cabe señalar que ha realizado algunas estimaciones iniciales del número
de empleados mı́nimo para cada temporada, tal como se muestra en la siguiente tabla:
Por lo que, el número de empleados no debe ser menor a este valor estimado, sin embargo,
cualquier contratación más alta genera una pérdida de $ 10, 000.00 por persona por temporada,
ahora bien, los costos por contratación y por despido son tales que el costo de cambiar el nivel
de empleados de una temporada a otra es igual a $ 3, 000.00 multiplicado por le cuadrado de la
diferencial de niveles. Finalmente, cabe señalar que el número de empleados puede ser fraccio-
nario debido a que se puede contratar empleados en forma flexible (a tiempo parcial).
Ahora bien, a partir de esto nos podemos dar una idea de como será el proceso en el cual
debemos minimizar en cada etapa, es decir, anteriormente buscabamos minizar una función de
la forma fn (sn , xn ), entonces ahora estarı́amos definiendo:
∗
fn (sn , xn ) = E C + fn+1 , (1.11)
∗
donde ahora C y fn+1 son variables aleatorias, por lo que, podemos expresar lo anterior en otra
forma al desarrollar las esperanzas, de momento supondremos que estas son del tipo discreto y
con espacio de estados {1, 2, . . . , S}, entonces:
S
X
∗
fn (sn , xn ) = pi Ci + fn+1 (i) , (1.12)
i=1
en esta otra expresión podemos describir a cada una de las diferentes posibilidades de la función
óptima, es decir:
∗
fn+1 (i) = mı́n fn+1 (i, xn+1 ) (1.13)
xn+1
Finalmente, a fin de identificar con mayor precisión analizaremos un ejemplo de aplicación sobre
esta variante de programación dinámica.
Ejemplo 1.4. Una tienda de autoservicio vende una gran variedad de artı́culos al consumidor,
entre estos se encuentra un medicamento para la fiebre; el cual debe ser producido en forma
exacta debido a que una mayor o menor concentración del ingrediente activo puede generar
sı́ntomas adversos a las personas.
A fin de cubrir la demanda del mismo, la tienda de autoservicio solicita inventario a una
farmaceútica; por lo que, la farmaceútica debe de producir el número de artı́culos requeridos
por la tienda; .
Suponiendo que el éxito de cada medicamento es independiente de los otros, podemos concluir
que la distribución de medicamentos aceptados en un lote de tamaño N tendrá una distribución
binomial con parámetros N y p = 21 .
Los costos de producción se estiman en $ 100.00 pesos por unidad, sin importar que esta sea
defectuosa, cabe señalar que los artı́culos adicionales se desperdicı́an. Además del costo por
unidad se incurre en un costo fijo de $ 300.00 cada vez que se pone en operación la máqui-
na, debido a esto la farmaceútica pueda enviar hasta 3 lotes a fin de satisfacer la cantidad de
artı́culos requeridos, si al tercer intento no se ha logrado el tamaño del lote entonces se pierde
1.2. PROGRAMACIÓN DINÁMICA PROBABILÍSTICA 15
Por lo anterior, el objetivo es determinar el tamaño del lote (este debe de incluir una cantidad
adicional en caso de que se encuentren artı́culos defectuosos) de tal forma que se minimice el
costo total esperado por el fabricante.
Solución:
Ahora bien, a fin de poder identificar la polı́tica óptima de decisión plantearemos el problema
en términos de programación dinámica, por lo anterior podemos observar que tenemos 3 etapas
de producción, las cuales denotaremos por n = 1, 2, 3.
En cada etapa de producción la farmacéutica puede determinar el tamaño del lote, el cual
denotaremos por xn , adicionalmente señalaremos por sn el número de productos aceptables por
obtener en la etapa n.
Finalmente llegamos a la primer etapa, la cual se encuentra dada ahora por 300 + 100x1 +
1 x1 ∗ 1 x1
2
f2 (1) = 300 + 100x1 + 700 2 entonces tenemos:
Por lo que, podemos concluir que la polı́tica óptima es producir 2 artı́culos en el primer lote
y si con esto no pasa ningún artı́culo entonces debemos producir en el segundo lote dos o tres
artı́culos. Si este lote no satisface la demanda entonces en el tercer lote se debe producir 3 o 4
artı́culos con lo que de esta forma estarı́amos minimizando el costo de producción y asegurando
el lote, con un costo óptimo de $ 675.
Como podemos ver, la programación dinámica probabilı́stica considere una mayor complejidad
debido a que en las tablas anteriores deberı́a de considerar la posibilidad de producir artı́culos
de forma infinita, sin embargo, en ciertos casos como en el ejemplo anterior no es necesario
debido a que el costo no baja de los casos anteriores.
Ahora considereraremos una variante del problema anterior, misma que nos permitirá gene-
ralizar este conforme incremente el número de pedidos:
Ejemplo 1.5. Suponga en el ejemplo anterior que el productor del medicamento no puede man-
dar una cantidad menor a la restante de los artı́culos pendientes, asimismo, ahora debe entregar
4 artı́culos. A partir de esto, determine el costo óptimo esperado ası́ como la polı́tica de decisión
que deberá aplicar
Solución:
Notemos que el problema anterior puede ser resuelto de forma similar que el ejemplo, por lo
que, mantendremos la definición de los estados s1 , s2 y s3 ası́ como la notación para las deci-
siones que se toman en cada etapa.
Notemos que el caso para cuando s3 = 1 no es más que reconsiderar el problema original,
sin embargo, procedemos a considerar ahora para los casos restantes; notemos que en particular
para cuando tenemos pendiente por entregar dos artı́culos, obtendremos la siguiente expresión:
3 −1
sX
f3 (s3 , x3 ) = K(x3 ) + 100x3 + 1600 fXx3 (i),
i=0
donde Xx3 ∼ Bin x3 , 21 , al aplicar este resultado sobre las diferentes decisiones y los diversos
Ahora que hemos resuelto esta etapa podemos procecer y avanzar a la siguiente etapa; para lo
que ahora estudiaremos las diferentes posibilidades y decisiones que se presentan al estar en la
segunda etapa (número de unidades en el segundo lote).
1.2. PROGRAMACIÓN DINÁMICA PROBABILÍSTICA 17
Ahora procedemos a determinar y calcular la forma de la función objetivo para esta etapa:
2 −1
sX
f2 (s2 , x2 ) = K(x2 ) + 100x2 + fXx2 (i)f3∗ (s2 − i),
i=0
donde al igual que en el caso anterior Xx2 ∼ Bin x2 , 21 , ahora aplicamos y realizamos los
cálculos necesarios sobre las diferentes decisiones y los diferentes estados en los que podemos
estar, entonces tenemos la tabla:
Finalmente queda por considerar, la primer etapa, en este recordaremos que s1 = 4, por lo que,
podemos considerar exactamente la misma función recursiva, es decir:
4−1
X
f1 (4, x1 ) = K(x1 ) + 100x1 + fXx1 (i)f2∗ (4 − i),
i=0
donde al igual que en el caso anterior Xx1 ∼ Bin x1 , 21 , ahora aplicamos y realizamos los
cálculos necesarios sobre las diferentes decisiones y los diferentes estados en los que podemos
estar obteniendo ası́:
Por lo que, a fin de minimizar el costo esperado de la producción se deben de enviar 8 artı́culos
en el primer lote y posteriormente seguir las siguientes acciones conforme el número de artı́culos
remanentes por entregar:
Ejercicio 1.2. Considere el ejemplo anterior pero ahora se debe de satisfacer una solicitud de
2 artı́culos y se da libertad de poder enviar hasta 4 lotes; dado lo anterior, determine la polı́tica
óptima de decisión ası́ como el costo óptimo de la misma.
Como hemos visto la técnica de programación dinámica resulta útil al momento de establecer
una sucesión de decisión interrelacionadas, no obstante, es necesario conocer a fondo el proble-
ma que buscamos resolver; toda vez que, es necesario plantear en términos de que sea posible
la aplicación del mismo.
Notemos particularmente que si un problema tiene 10 etapas con 10 posibles estados y con 10
decisiones posibles, entonces la prueba y error de cada posible polı́tica de decisión nos tomarı́a
considerar hasta 10 mil millones de combinaciones mientras que con programación dinámica
necesitariamos como máximo mil cálculos (10 para cada estado en cada etapa).
De momento, solo nos hemos centrado en analizar aquellos problemas en los cuales el número
de etapas es finito (denominado horizonte finito), sin embargo, existe otro tipo de problemas
que conlleva considerar una evolución que no termina en el tiempo (denominado horizonte
infinito). No obstante, este tipo de problemas sale de nuestro conocimiento por el momento.
1.3. EJERCICIOS 19
1.3. Ejercicios
A continuación se presenta una serie de ejercicios que permitirán al estudiante reforzar
lo aprendido en la primer unidad de aprendizaje, adicionalmente que de estos se generará el
examen:
1. El gerente de ventas de una compañı́a de internet cuenta con 6 agentes de ventas dis-
ponibles para 3 centros comerciales dentro de una alcadı́a de la Ciudad de México, no
obstante, se debe asignar al menos un agente a cada centro comercial a fin de que se
pueda cubrir la demanda del mismo y no perder la oportunidad de crecimiento.
Por otra parte, se ha realizado un estudio de mercado de la demanda estimada que pudie-
ra tenerse en cada centro comercial al asignar un número mayor de agentes en cada uno
de los centros comerciales; a continuación se muestra el incremento de clientes esperados:
Agentes / Region 1 2 3
1 40 24 32
2 54 47 46
3 78 63 70
4 99 78 84
Por razones de administración, los lotes no pueden ser divididos, no obstante, la de-
manda en cada una de las tienditas es independiente de la otra, por lo que, ha estudiado
la venta posible de dividir las fresas por caja; por lo anterior, estudió y determinó que en
función del número de lotes que se manden puede vender cierto número de cajas; estos
datos se presentan a continuación:
Lotes / Tiendita 1 2 3
0 0 0 0
1 5 6 4
2 9 11 9
3 14 15 13
4 17 19 18
5 21 22 20
Cabe señalar que necesita asignar por lo menos un dı́a para cada curso y quiere con-
centrarse sólo en un curso cada dı́a; por lo anterior, puede dedicar desde uno a cuatro
dı́as a cada curso, ahora bien, como tomo un curso en investigación de operaciones decidió
aplicar programación dinámica para seleccionar la mejor asignación.
Por lo que, de acuerdo con sus conocimientos actuales sobre cada curso y la dificultad del
mismo consideró y estimo los siguientes escenarios:
A partir de lo anterior, determine la mejor asignación de los dı́as de estudio que maximiza
sus calificaciones esperadas.
Por lo que, realizó una estimación del número de votos adicionales que podrá obtener
en caso de que cóloque el comercial en alguno de los 4 canales principales que dispone la
televisora, los cuales se muestran a continuación en miles de votos:
Comerciales / Canal 2 3 5 9
0 0 0 0 0
1 4 6 5 3
2 7 8 9 7
3 9 10 11 12
4 12 11 10 14
5 15 12 9 16
Determine el número de comerciales que debe de colocarse en cada canal a fin de garantizar
el mayor número de votos.
Por otra parte, ella considera que asignar a un voluntario en dos colonias a la vez es
ineficiente por las necesidades de traslado entre las colonias, ası́ que descarta esa posibi-
lidad, asimismo, considera que si puede incrementar el número de votos en cierta colonia
más que otra, entonces preferirá colocar a los voluntarios en una misma colonia.
1.3. EJERCICIOS 21
A partir de lo anterior, ella estimo el número de votos que puede lograr para el can-
didato si coloca a los voluntarios en cada colonia, los cuales se muestran a continuación:
Voluntarios / Distrito 1 2 3 4
0 10 15 30 45
1 50 80 100 67
2 85 120 180 95
3 115 130 190 150
4 200 170 210 160
5 240 250 220 300
Determine la solución óptia que logra obtener la mayor cantidad de votos para el candidato
de dicho partido.
Ahora bien, dadas las limitaciones presupuestarias sólo se cuenta con un presupuesto de
10, 000 para los componentes, a partir de lo anterior determine cuántas unidades paralelas
de cada componente debe instalar a fin de maximizar la probabilidad de funcionamiento
del sistema.
7. Suponga que cuenta con diez mil pesos para invertir y que tiene la oportunidad de elegir
entre dos inversiones disponibles, una riesgosa y otra sin riesgo, relativamente. Ahora
bien, si invierte en aquella con riesgo podrá obtener veinte mil después de la inversión (es
decir, un rendimiento de diez mil), sin embargo la no riesgosa le permite también obtener
una cantidad final de veinte mil, sin embargo, esto con una menor probabilidad.
Ahora bien, cada año sólo puede realizar una inversión de $ 10, 000 únicamente, cualquier
cantidad de dinero adicional sólo podrá ahorrarla, a partir de lo anterior determine la
polı́tica de inversión que maximiza el dinero que espera tener después de 3 años.
Capı́tulo 2
Programación entera
En muchas ocasiones cuando intentamos plantear y resolver algún problema surgen restric-
ciones o limitaciones sobre el planteamiento sobre el mismo, sin embargo, una común (y no
sólo la única) es que las variables deben ser enteras; generalmente se presenta cuando estamos
trabajando con cantidades indivisibles y por esta razón debemos de considerar como discretas
dichas variables.
Asimismo, dependiendo de las mismas condiciones del problema puede que tengamos que en-
frentarnos a un problema de programación entera mixto, en el cual, algunas de las variables
sujetas al mismo podrán ser reales y no únicamente enteras.
Adicionalmente y a pesar de que ya tenemos como contexto los problemas que pudimos consi-
derar en nuetro curso de optimización lineal, incorporando claro el tema de la no divisibilidad,
podemos considerar aquellos problemas donde posiblemente consideremos variables binarias,
es decir, una variable que sólo considera dos escenarios: sı́ (1) y no (0).
1. Programación entera.
En la siguiente tabla se mostrará el valor presente neto de cada una de las opciones ası́
23
24 CAPÍTULO 2. PROGRAMACIÓN ENTERA
como el capital que se requiere para cada una de las diversas opciones, asimismo, es de señalar
que el capital disponible es de 10 millones de dólares; adicionalmente el objetivo es encontrar
la combinación factible de alternativas que maximice el valor presente neto.
Solución:
A pesar de que resolver este problema es relativamente simple procederemos a plantearlo en su
forma de programación entera binaria, lo anterior con fines didácticos debido a que esto
ilustrará la forma en que aplicariamos el módelo y método.
Ahora bien, las decisiones a las que hacemos referencia son las siguientes:
9, 000, 000x1 + 5, 000, 000x2 + 6, 000, 000x3 + 4, 000, 000x 4, ⇒ 9x1 + 5x2 + 6x3 + 4x4 ,
adicionalmente recordemos que el capital disponible para gastar es de $ 10, 000, 000.00, por lo
que, tenemos entonces la restricción:
Ahora bien, dado que a lo máximos buscamos construir un almcen podemos establecer la si-
guiente restricción:
x3 + x4 ≤ 1.
Asimismo, se ha determinado que el almacén debe estar junto a la fábrica, por lo que, si optamos
por construir el almacen en el interior (x3 = 1), entonces, se decidió construir la fábrica en el
interior (x1 = 1), de la misma forma para el almacen en exterior (a este tipo de decisiones se
le llama decisiones contingentes), por lo que, podemos establecer estas como las siguientes
restricciones:
x3 ≤ x1 x4 ≤ x2 .
Por lo tanto, el problema se resumen en resolver el siguiente problema:
Aunque este tipo de problemas parecen ser demasiado simples y tal vez planteados comple-
jamente, estos resultan de gran aplicación en la realidad, ya que existe una gran cantidad de
problema donde puede ser empleada el método de programación entera binaria. A conti-
nuación analizaremos algunos ejemplos:
1. Análisis de inversión: En ocasiones se emplea programación lineal para tomar decisio-
nes sobre el presupuesto del capital disponible para inversión en los diferentes proyectos
que pueda invertir.
Esto radica en el hecho principal que además de saber de cuanto se debe invertir, es
necesario principalmente saber si se debe invertir o no en cierto proyecto bajo una canti-
dad fija. Algunos ejemplos de estas decisiones son:
2. Elección del sitio: Actualmente debido a las condiciones económicas y sociales que se
presentan en los diversos territorios del mundo, por lo que, surgen la inquietud en los em-
presarios si es económicamente mejor colocar plantas, almacenes y centros de distribución
en su paı́s de origen o en algún otro a fin de hacer usos de las ventajas y disminuciones
fiscales que esto conlleva.
Lo anterior puede resultar para minimizar los costos generados por la puesta en marcha
de estas nuevas instalaciones, algunos ejemplos de este caso son todas aquellas compañı́as
con callcenters.
2. Debido a problemas de producción y como cuenta con dos plantas, sólo una planta puede
asignarse para producir los nuevos artı́culos; asimismo, el hecho de producir en cualquier
planta no afecta el costo de producción.
A continuación se muestra la diferente información que ha podido obtener el equipo de merca-
dotécnia ası́ como de producción con respecto a los nuevos artı́culos:
Primero notemos una primer forma de atacar este problema, el cual es mediante considerar que
se pudieran emplear las horas de ambas plantas entonces tendriamos el problema de la siguiente
forma:
No obstante, el problema en realidad este problema no es planteado de acuerdo con esta forma,
es decir, recordemos que sólo se puede producir dos artı́culos, por lo que, al menos dos de las
tres variables x1 , x2 , x3 pueden ser mayores o iguales que cero, no obstante, esta condición no
puede ser planteada en un problema de programación lineal.
A fin de poder resolver el problema lo adaptaremos de tal forma que se permita la validación y
solución en el método simplex; primero notemos que sólo una de las plantas puede producir los
articulos, por lo que, definimos una variable binaria que permite elegir la planta productora:
1 si se elige la planta 1 4x1 + 6x2 + 2x3 ≤ 40
y4 =
0 si se elige la planta 2 3x1 + 4x2 + 2x3 ≤ 30
A fin de garantizar que sólo una restricción sea válida incorporaremos un valor M muy grande
a fin de que afecte cuando no se tenga que cumplir la condición, entonces proponemos:
De forma similar si buscamos que a lo máximo dos de los artı́culos sean producidos, por lo que,
al menos 2 de las variables x1 , x2 y x3 sean mayores o iguales que cero, entonces plantemos
esto bajo la condición:
1 si se produce el artı́culo j xj > 0
yj =
0 no se produce el artı́culo j xj = 0
27
x1 ≤ M y 1
x2 ≤ M y 2
x3 ≤ M y 3
y1 + y2 + y3 ≤ 2
Notemos que hemos definido 4 variables binarias que permite que se puedan cumplir condiciones
opcionales, las cuales adaptan al problema, obteniendo ası́:
A fin de resolver dicho problema emplearemos el entorno de Tora y de Excel, primero usaremos
el entorno de Excel, por lo que, en una tabla definiremos el problema por resolver planteado en
las condiciones anteriores:
Notemos que se han planteado las diferentes restricciones salvo la de que las variables x1 , x2 y
x3 son no negativas y que las variables y1 , y2 y y3 son binarias, por lo que, quedan pendientes.
Posteriormente buscaremos el complemento Solver incluido en Excel y en este plantearemos
el problema, en caso de mi sistema se encuentra por medio del ı́cono:
28 CAPÍTULO 2. PROGRAMACIÓN ENTERA
Al iniciarlo procederemos a incorporar todas las restricciones de tal forma que podamos obtener
el planteamiento del problema y aplicar el método simplex:
Lo cual nos indica que se deben de producir los artı́culos 1 y 3 en la planta 2 a fin de obtener
una ganancia máxima de $ 54, 500.00; mediante producir 5.5 lotes del artı́culo 1 y 9 lotes del
artı́culo 3.
2.1. PROBLEMAS CLÁSICOS 29
2. Problema de transporte.
Comencemos con el primer problema de estos:
Por lo que, sea xi la cantidad de unidades del objeto i, que la persona agregará en su mo-
chila para el viaje, cabe señalar que este objeto tiene un peso wi > 0, asimismo, para que sea
más fácil de decidir que artı́culos ingresará en su mochila les asigna un valor a cada objeto,
dicho valor se denota por ri ; ası́ que entonces el problema en el que se involucra la persona es:
n
X n
X
Maximizar z = ri xi sujeto a pi xi ≤ C. (2.1)
i=1 i=1
Notemos que todas las variables son enteras, ası́ que este problema forma parte de aquellos
programación lineal entera, esta formulación permite que puedan transportase varios obje-
tos del mismo tipo.
A fin de que podamos darnos idea del problema analicemos el siguiente ejemplo:
Ejemplo 2.3. Berenice estudia la universidad en la Ciudad de Mexico, sin embargo, ella es
originaria del estado de Oaxaca, por lo que ha planeado visitar a su familia el siguiente fin de
semana largo (30 de octubre al 2 de noviembre); por lo que, esta pensando en que artı́culos
llevará, incluso su hermana le ha solicitado algunos libros que no ha encontrado.
Ahora bien, su boleto de viaje sólo permite que lleve una maleta de 13 kilogramos de peso,
por lo que, ha definido los siguientes artı́culos que debe de llevar:
Zapatos, con un peso de 3 kilogramos.
Por lo anterior, Berenice llevará zapatos, ropa, los libros y los recuerditos; de esta forma no
excederá el peso lı́mite y además obtendrá el mayor valor deseado.
Aunque este problema fue relativamente fácil de plantear, en la vida real suele imponerse una
mayor cantidad de restricciones, por lo que, el estudiante deberá de identificar las mismas para
su posterior planteamiento.
2.1. PROBLEMAS CLÁSICOS 31
Supongamos que en total la compañı́a tiene n bodegas y m fábricas, y que la fábrica i - ésima
produce una cantidad qi del producto, asimismo, la bodega j - ésima tiene una capacidad de
almacenamiento sj .
Por otra parte, sea cij el costo de transportar una unidad de producto desde la fábrica i hacı́a
la bodega j y xij la cantidad de unidades que el propietario decide transportar desde la fábrica
i a la bodega j.
Ejemplo 2.4. Una compañı́a de zapatos debe entregar 3 pedidos realizados por diferentes clien-
tes, el primero de este le pide 27 pares, el segundo 33 pares y el tercero 23 pares; ahora bien,
si el proveedor no cumple con los requerimientos del pedido este sufre una multa de $ 100.00
debido a la falta de compromiso y pérdida de oportunidad del comprador.
Para realizar las entregas los camiones repartidores deben de salir de dos pequeñas bodegas
con las que cuenta en la ciudad, sin embargo, la capacidad de estas bodegas es muy reducida,
por lo que, en la primer bodega tiene sólo 45 pares y en la segunda 36 pares.
Ahora bien, a fin de determinar el mejor procedimiento de entrega se determinó el costo in-
dividual de transportar los pares de zapatos desde cada una de las bodegas a los diferentes
compradores, los cuales se muestran a continuación:
Solución:
A fin de obtener la solución del problema anterior procedemos a definir a xij como la variable
que describe cuantos pares de zapatos transportaremos de la bodega i al cliente j, adicionalmen-
te, sea yi la variable que describe el número de pares de zapatos no entregados al cliente i.
Ahora bien, a fin de obtener la solución del problema procedemos a emplear el completo de
Solver de Excel, el cual al plantearlo como un problema de programación lineal es:
Cada proveedor le ha brindado sus cotizaciones de entrega a da cada una de las pistas requeridas
por la aerolı́nea, los cuales se presentan a continuación:
Pista 1 Pista 2 Pista 3
Proveedor 1 38.40 37.80 38.00
Proveedor 2 38.20 38.20 38.20
Proveedor 3 37.40 39.80 38.40
No obstante, cada proveedor tiene limitaciones en cuanto al número total de litros por mes que
puede proporcionarle a la aerolı́nea, las cuales se señalan a continuación 320,000 litros, 270,000
litros y 190,000 litros, respectivamente.
2. Una vez marcadas todas las restricciones, marcamos la región factible del problema no
entero, posteriormente marcamos aquellas que corresponden al problema entero.
Maximizar Z = 6x + 8y
Sujeto a 9x + 6y ≤ 30
6x + 17y ≤ 56
x, y ≥ 0; x, y enteras
Determine la solución entera por medio del método gráfico, señalando con precisión los pasos
empleados.
Solución:
De acuerdo con el procedimiento procederemos a graficar las restricciones en el plano carte-
siano, las cuales se muestran a continuación:
De forma similar procedemos a graficar la segunda restricción dada por 6x + 17y ≤ 56, en
la misma región que se graficó la primera debido a las restricciones de las variables, entonces
se obtiene:
Ahora empalmamos ambas regiones a fin de identificar la región factible del problema de pro-
gramación lineal sin restricciones enteras:
Figura 2.10: Región factible del problema de programación lineal sin restricciones enteras.
Posteriormente, procedemos a señalar los puntos de solución entera que dentro de la región
factible:
Figura 2.11: Región factible del problema de programación lineal con restricciones enteras.
Maximizar Z = 8x + 5y
Sujeto a 11x + 14y ≤ 83
20x + 10y ≤ 74
8x + 9y ≤ 93
x, y ≥ 0; x, y enteras
Determine la solución entera por medio del método gráfico, señalando con precisión los pasos
empleados.
2. Comenzando desde el punto óptimo continuo, incorpore restricciones especiales que mo-
difiquen iterativamente el espacio de soluciones del problema de programación lineal de
modo que podamos obtener un óptimo entero.
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x, y enteras no negativas
A fin de realizar la variante del método, primeramente resolveremos el problema sin restriccio-
nes enteras, por lo que obtenemos la siguiente solución:
2.2. MÉTODOS DE SOLUCIÓN PARA PROGRAMACIÓN LINEAL ENTERA 37
Entonces sin considerar las restricciones enteras se obtiene un óptimo de Z = 23.75 cuando las
variables x = 3.75 y y = 1.25, sin embargo, las variables no son enteras, ası́ que debemos in-
corporar restricciones para lograr el objetivo inicial. Ası́ que seleccionamos una de las variables
no enteras (en este caso pueden ser ambas) e incorporamos restricciones adicionales.
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≤3
x, y no negativas
Notemos que para este caso hemos obtenido un óptimo dado por Z = 23 bajo las variables x = 3
38 CAPÍTULO 2. PROGRAMACIÓN ENTERA
y y = 2 ambas enteras, sin embargo, no conocemos si esta es la óptima ası́ que diremos que
una cota inferior de la solución es Z = 23. Ahora analicemos el otro subproblema, es decir:
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≥4
x, y no negativas
Ahora en este subproblema, la variable y no es entera, ası́ que procedemos a incorporar condi-
ciones para la variable y; analicemos los siguientes subproblemas:
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≥4
y≤0
x, y no negativas
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≥4
y≥1
x, y no negativas
Ahora bien, debemos de resolver estos dos subproblemas, bajo las nuevas condiciones debemos
observar si se obtiene solución alguna de estos mismo, los cuales se muestran a continuación:
2.2. MÉTODOS DE SOLUCIÓN PARA PROGRAMACIÓN LINEAL ENTERA 39
Notemos que del subproblema 3, debemos imponer una nueva condición sobre la variable x, ya
que esta nuevamente no es entera, ası́ que obtenemos ahora los siguientes dos subproblemas:
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≥4
x≤5
y≤0
x, y no negativas
Maximizar Z = 5x + 4y
x+y ≤5
10x + 6y ≤ 45
x≥4
x≥5
y≤0
x, y no negativas
Ahora procederemos a resolver ambos subproblemas, mismos que nos permitirán evaluar la
posibilidad de la solución entera, no obstante, notemos que para el sexto subproblema, existen
dos condiciones que se pueden resumir en una sola, las cuales son x ≥ 4 y x ≥ 5, en únicamente
x ≥ 5; ahora los resolvemos:
40 CAPÍTULO 2. PROGRAMACIÓN ENTERA
Entonces en el subproblema 5 pudimos determinar otra solución entera con un valor óptimo de
Z = 20 cuando x = 4 y y = 0, sin embargo, este es es menor al previamente obtenido. Por lo
tanto, la solución óptima se encuentra dada por Z = 23 bajo las variables x = 3 y y = 2.
Ejercicio 2.3. Convierta el siguiente problema en un problema de programación lineal entera
y posteriormente aplque el método de ramificación y corte a fin de encontrar la respuesta:
Maximizar Z = x + 2y + 5z
|−x + 10y − 3z| ≥ 15
2x + y + z ≤ 10
x, y no negativas
Se deberán de describir todos los subproblemas analizados ası́ como la solución de los mismos,
posteriormente se deberán de resumir en un diagrama de árbol como en el ejemplo.
Previo a analizar la forma en que se puede emplear, analizaremos un pequeño concepto, esto
debido a que es necesario para el planteamiento recursivo de las funciones:
Definición 2.1. Una función f : Rn → R es separable respecto a la suma si esta puede
ser representada como:
f (x1 , x2 , x3 , . . . , xn ) = f (x1 ) + f (x2 ) + f (x3 ) + · · · + f (xn ). (2.2)
Similarmente, esta se dice separable respecto al producto si esta puede ser representada
como:
f (x1 , x2 , x3 , . . . , xn ) = f (x1 ) · f (x2 ) · f (x3 ) · · · f (xn ). (2.3)
Lo anterior, es necesario para la función objetivo a fin de que esta se puede escribir en términos
recursivos, esto se debe a que en programación dinámica esta se reescribe a fin de ser analizada
en diversos subproblemas.
Solución:
A fin de poder plantear dicho problema en términos de programación dinámica consideraremos
lo siguiente, esto a fin de visualizar la evolución del sistema en un número fijo de etapas:
42 CAPÍTULO 2. PROGRAMACIÓN ENTERA
1. Sea s1 el número disponible de valores para las variables x1 , x2 y x3 , este valor es igual a
4 (esto debido a la restricción).
2. Sea s2 el número disponible de valores para las variables x2 y x3 (notemos que s3 = s2 −x2 ).
3. Sea s3 el número disponible de valores para la variable x3 , como no sabemos las asigna-
ciones previas, se deberá considerar hasta un valor máximo de 4.
Queda pendiente describir la relación recursiva bajo la cual se establecerá la función objetivo,
entonces primero observemos que la función f : R3 → R definida por la función objetivo, es
decir f (x, y, z) = 2x2 + 2y + 4z − z 2 es separable respecto a la suma, entonces:
Ahora con estos hechos procedamos a resolver el problema por medio del método de programación
dinámica, ası́ que consideremos la última etapa:
Ahora consideramos una etapa adicional hacı́a atrás, y evaluamos la ecuación en la función
objetivo g2 (s2 , x2 ) = f2 (x2 ) + g3∗ (s2 − x2 ) = 2x2 + g3∗ (s2 − x2 ), entonces:
s2 x2 = 0 x2 = 1 x2 = 2 x2 = 3 x2 = 4 g2∗ (s2 )
0 2(0) + g3∗ (0) = 0 0
1 2(0) + g3∗ (1) = 3 2(1) + g3∗ (0) = 2 3
2 2(0) + g3∗ (2) = 4 2(1) + g3∗ (1) = 5 2(2) + g3∗ (0) = 4 5
3 2(0) + g3∗ (3) = 3 2(1) + g3∗ (2) = 6 ∗ ∗
2(2) + g3 (1) = 7 2(3) + g3 (0) = 8 7
4 2(0) + g3∗ (4) = 0 2(1) + g3∗ (3) = 5 ∗ ∗ ∗
2(2) + g3 (2) = 8 2(3) + g3 (1) = 9 2(4) + g3 (0) = 8 9
2.3. PROGRAMACIÓN DINÁMICA 43
s1 x1 = 0 x1 = 1 x1 = 2 x1 = 3 x1 = 4 g1∗ (s1 )
4 2(0)2 + g2∗ (4) = 9 2(1)2 + g2∗ (2) = 7 2(2)2 + g2∗ (0) = 8 9
Plantee el problema en términos de que pueda ser empleado el método de programación dinámica
y posteriormente aplique el método y determine el óptimo buscado ası́ como la polı́tica óptima.
44 CAPÍTULO 2. PROGRAMACIÓN ENTERA
2.4. Ejercicios
A continuación se presenta una serie de ejercicios que permitirán al estudiante reforzar
lo aprendido en la primer unidad de aprendizaje, adicionalmente que de estos se generará el
examen:
1. Una pareja recién casada busca asignar algunas de las tareas comunes de su hogar, las
cuales son: comprar la despenda, hacer la comida, lavar los trastes y lavar la ropa, a fin
de que la división de tareas sea lo más justo y eficiente, cada uno debe de realizar dos
tareas.
A continuación se describen los tiempos (tiempos en horas por semana) que le toma
a cada uno en realizar las tareas previas:
Nombre / Tarea Comprar despensa Hacer la comida Lavar los trastes Lavar la ropa
Fernanda 4.9 7.0 4.2 3.1
Victor 4.5 7.8 3.6 2.9
La compañı́a tiene 2 plantas que pueden producir los juguetes nuevos, no obstante, para
evitar la duplicidad de costos de preparación sólo se usará una y la elección dependerá
de la maximización de la ganancia; adicionalmente en caso de que se produzcan ambos
juguetes se deberá usar la misma planta.
Fábrica 1 Fábrica 2
Producción por hora 50 40
Horas disponibles 500 700
4. La lı́nea aérea Vuelos Mexicanos piensa en comprar algunos pequeños aviones para vuelos
privados, semi provados y comerciales, para lo que tiene que comprar aviones de diferentes
tamaños, los cuales tendrán los siguientes costos 35 millones, 50 millones y 67 millones
respectivamente para cada avión según su tamaño.
Por otra parte, el consejo ejecutivo cuenta con un capital autorizado para realizar compra
de aviones de 1.5 billones, es decir, 1, 500 millones y para cada uno de los diferentes vuelos
se puede obtener una ganacia neta anual después de costos por recuperación de inversión
los cuales ascienden a 2.3 millones, 3 millones y 4.2 millones respectivamente según el
tamaño del avión.
Asimismo, sólo puede disponer de 30 pilotos para los nuevos aviones, además de que
su taller sólo cuenta con una capacidad limitada para 40 aviones chicos, cabe señalar que,
un avión grande equivale en tamaño a 4 chicos y un avión mediano a 2 chicos.
Maximizar Z = 3x + 2y
2x + 5y ≤ 9
4x + 2y ≤ 9
x, y enteras no negativas
Maximizar Z = 5x + 4y
3x + 2y ≥ 5
2x + 3y ≥ 7
x, y enteras no negativas
10. Resuelva los primeros cuatro problemas empleando el algoritmo de ramificación y describa
el árbol generado al resolver dichos problemas.
Capı́tulo 3
Análisis de redes
Los problemas de redes suelen encontrarse en una gran cantidad de problemas en la vida
diaria, esto se debe a que es común representar una gran cantidad de problemas en forma de
una red, tal como en áreas de producción, distribución, pleneación de proyectos, localización
de instalaciones, administración de recursos y planeación financiera, por mencionar algunos
ámbitos de aplicación.
En esta sección consideraremos cuatro modelos especı́ficos de redes, los cuales son:
Justamente estos principales problemas tienen una gran gama de aplicaciones en la vida real,
por lo que, resulta básico considerar el estudio sobre los mismos, no osbtante, previo a ingresar
al estudio de dichos problemas debemos de estudiar algunos conceptos básicos y esenciales sobre
estos que previamente ya mencionamos.
Definición 3.1. Una gráfica G es una pareja G = (V, E), donde V es el conjunto de vértices
y E el conjunto de aristas, cabe señalar que E ⊆ V × V .
Definición 3.2. Una arista consiste en una pareja (v, w) ∈ V × V , donde v, w son vértices de
la gráfica.
47
48 CAPÍTULO 3. ANÁLISIS DE REDES
El número de vértices de una gráfica se le llama su orden y comúnmente se denota por |G|,
notemos que esta cantidad coincide con la cardinalidad del conjunto de los vértices V , una vez
introducido esto cabe señalar que existen gráficas finitas e infinitas, sin embargo, nosotros nos
reduciremos a estudiar sólo gráficas finitas.
Por otra parte, dados x, y ∈ V vértices de la gráfica G, se dice que estos son adyacentes
o vecinos, si (x, y) ∈ E es una arista de la gráfica, si todos los vértices de G son adyacentes
entonces la gráfica se dice completa.
A D
G
O B E M
H
C F
En la gráfica anterior, la denotamos por G = (V, E), donde tenemos que el conjunto de vértices
se encuentra dado por V = {O, A, B, C, D, E, F, G, H, M } y el conjunto de aristas está dado
por:
E = {(O, A), (O, B), (O, C), (A, D), (A, E), (A, F ), (B, D), (B, E), (B, F ), (C, D), (C, E), (C, F )
(D, G), (D, H), (E, G), (E, H), (F, G), (F, H), (G, M ), (H, M )} .
= {OA, OB, OC, AD, AE, AF, BD, BE, BF, CD, CE, CF, DG, DH, EG, EH, F G, F H, GM, HM }
Con esto queda definido la gráfica G, por otra parte, notemos que el grado de la gráfica es 10,
debido a que cuenta con 10 vértices, en la cual podemos encontrar que por ejemplo A y E son
vecinos, notemos que existen diferentes vértices vecinos. Asimismo, observemos que podemos
representar a los vértices como la pareja (O, A) o simplemente como OA.
Por otra parte, podemos denotar al conjunto de todos los vecinos de un vertice v ∈ V co-
mo el conjunto NG (v), el cual se encuentra conformado por todos los vecinos de dicho vértice.
Ahora consideramos otros conceptos de suma importancia, los cuales son trayectoria y ci-
clo.
Definición 3.3. Una trayectoria es una gráfica no vacı́a P = (V, E) de la forma siguiente:
V = {v0 , v1 , v2 , . . . , vk } E = {v0 v1 , v1 v2 , v2 v3 , . . . , vk−1 vk } , (3.1)
3.1. INTRODUCCIÓN A LAS GRÁFICAS 49
Adicionalmente, podemos decir que la trayectoria P une a los vértices v1 y vk , la cual tiene una
longitud de k (la longitud de la trayectoria se encuentra dada por el número de vértices menos
uno). Por otra parte, en la gráfica anterior, podemos considerar algunas trayectorias como son
las siguientes:
De esta misma expresión, observemos que la trayectoria puede ser representada como la simple
sucesión de los vértices de la misma, en el orden el cual van conformandola. En estos ejemplos
ambas trayectorias son de una longitud 4. Ahora analizaremos la idea de un ciclo, el cual se
puede definir a partir de la trayectoria.
De la misma forma que con las trayectoria podemos denotas a un ciclo como la sucesión de sus
vértices, la longitud del ciclo se encuentra dada por el número de vértices del mismo.
Por otra parte, el ejemplo anterior tiene una gráfica en al cual los vértices no tienen una
dirección, a esto se le conoce como una gráfica no dirigida o comúnmente como gráfica, en estas
al considerar una arista v1 v2 es equivalente al considerar v2 v1 .
Esta definición la retomaremos posteriormente, cabe señalar que al igual que existen las gráficas
sin dirección existen las gráficas dirigidas, las cuales el que la arista (v, w) ∈ E no implica
que (w, v) ∈ E; a continuación se muestra una modificación de la gráfica anterior.
A D
G
O B E M
H
C F
Asimismo, con estas ideas podremos ahora si entrar a analizar los problemas previamente señala-
dos que servirán de referencia para problemas de optimización, no obstante, describiremos un
problema en el cual se podrá apreciar que podemos buscar aplicar cada uno de estos problemas.
50 CAPÍTULO 3. ANÁLISIS DE REDES
Ejemplo 3.1. Un pueblo mágico del paı́s ha despertado el interés de una gran cantidad de
visitantes debido a que dentro de este se encuentra un área en la cual se puede realizar pa-
seos y caminatas debido a la naturaleza que se puede encontrar, ahora bien, debido a que es
un área protegida sólo se permite el acceso por medio de una compañı́a turistica, la cual ha
desarrollado algunos centros de atracción entre dicha zona y la entrada, los cuales se muestran
a continuación:
2 2 7
5 T
5 4
O B D
3
7
4 1 1
C E
4
En esta figura O es la entrada al parque y T es la parte más llamativa de atracciones del mismo.
En este momento la administración del parque se enfrenta a tres principales problemas:
1. Busca construir un pequeño tranvı́a que facilite el acceso de los turistas y que no requiera
de vehı́culos adicionales a fin de proteger el área y a su vez disminuir sus costos, ası́ que,
este deberá de construirse en la ruta más corta.
2. Por otra parte, se busca establecer comunicación toda el área, por lo que, deberá de lanzar
fibra óptica a cada una de las diferentes áreas; la fibra óptica se lanza desde la entrada.
Ahora bien, esta debe seguir los caminos fijos ya que incurrir en otro camino se puede
dañar el medio ambiente, por lo que, busca la longitud mı́nima de cable que requerirá para
cumplir su objetivo.
Ahora analicemos algunos ejempos con los que podemos empezar a estudiar de esta forma
este tipo de problema:
Ejemplo 3.2. Rentauncoche.com es un sistio web en el que se rentan vehı́culos para per-
sonas que los necesiten, por lo que, ha planteado una polı́tica de reemplazo de su flotilla actual
3.2. PROBLEMA DE LA TRAYECTORIA MÁS CORTA 51
Equipo adquirido Costo por 1 año Costo por 2 años Costo por 3 años
1 4000 5400 9800
2 4300 6200 8700
3 4800 7100
4 4900
Cabe señalar que la ruta más corta es 1 → 3 → 5, es decir, un automóvil adquirido al inicio
del año 1, debe reemplazarse después de 2 años al inicio del año 3; asimismo el automóvil se
mantendrá entonces en servicio hasta finales del año 4, con un costo total de esta polı́tica de
reemplazo de $ 12, 500.
Ahora bien, a fin de identificar estas ideas procederemos a analizar un primer algoritmo para
determinar la ruta más corta, para esto es necesarios verificar ciertas propiedades y restricciones
sobre la gráfica de interés.
Primero, los pesos deben de ser cantidades no negaticas, asimismo, cabe señalar que el al-
goritmo considera etiquetas temporales y permanentes, las segundas describen la distancia
mı́nima y las primeras son auxiliares para la determinación de la misma.
Sea ui la distancia más corta del vértice origen al vértice i y definimos dij como la longi-
tud de la arista ij. El algoritmo define la etiqueta para un vértice j que sigue inmediatamente
como
[uj , i] = [ui + dij , i]
La etiqueta para el vértice de inicio es [0, 2], que indica que el vértice no tiene predecesor.
Asimismo, las etiquetas son del tipo permanente y temporal, una etiqueta tempora en un
52 CAPÍTULO 3. ANÁLISIS DE REDES
vértice se modifica si puede hallarse una ruta más corta al vértice, de lo contrario, el estado
temporal cambia a permanente:
1. Paso 0: Etiquete el vértice origen (vértice 1) con la etiqueta permanente [0, −] y esta-
blezca i = 1.
2. Paso 1 (iterativo): Calcule las etiquetas temporales [ui + dij , i] para cada vértice j con
dij > 0, siempre que j no esté etiquetado permanentemente. Si el vértice j ya tiene
una etiqueta tempora existente [uj , k] hasta otro vértice k y si ui + dij < uj , reemplace
[uj , k] con [ui + dij , i].
A fin de identificar las ideas señaladas bajo este algoritmo analizaremos una gráfica en la cual
procederemos a estudiar:
De la gráfica dada determine la ruta y la distancia más corta entre las siguientes ciudades:
3.3. MODELOS DE MÁXIMO FLUJO 53
1. Ciudad 1 y 8.
2. Ciudad 1 y 6.
3. Ciudad 4 y 8.
4. Ciudad 2 y 6.
Ahora procederemos a analizar un segundo algoritmo con el cual podemos determinar la tra-
yectoria más corta entre dos vértices, este algoritmo se le conoce como el algoritmo de Floyd,
en cierto sentido este es más general que el de Dijkstra, debido a determina la distancia entre
dos nodos cualesquiera en la gráfica.
Ejemplo 3.3. Considere una red de oleoductos que transporta petróleo desde pozos de extrac-
ción hasta las plantas de refinación, ahora bien, entre estas se instalan estaciones intermedias
de reforzamiento y bombeo a distancias apropiadas para mover el hidrocarburo en la red. Ahora
bien, cada segmento de tuberı́a puede ser unidireccional o bidireccional según su diseño.
Para resolver este problema se incorporaron en la red una fuente y un sólo destino utilizando
arcos de capacidad infinita unidireccionales, esa es la razón por la que se adicionaron estos
mismos.
Para identificar estos resultados es necesario definir el cocnepto de corte, el cual procede a
definir:
Definición 3.6. Un corte define un conjunto de arcos cuya eliminación de la red interrumpe
el flujo entre los nodos fuente y destino. Asimismo, la capacidad de corte es igual a la suma
de las capacidades de su conjunto de cortes.
Esta definición es importante ya que entre todos los cortes posibles en la red, el corte con la
capacidad mı́nima es el cuello de botella que determina el flujo máximo a la red. Ahora
analizaremos algunos consideraciones sobre los cortes:
Finalmente pasaremos al algoritmo que permite determinar el máximo flujo en una gráfica, el
cual se base en determinar las rutas de avance con flujo positivo entre los vértices fuente
y destino, cada ruta destina una parte de o todas las capacidades de sus arcos al flujo total
en la red. Para esto procederemos a incoporar una etiqueta adicional que hará mención a la
capacidad de entrada, tal como se describe en la siguiente imagen:
Designe ak = cik y etiquete el nodo k con [ak , i], si k = n, el nodo destino ha sido
etiquetado y se ha encontrado una ruta de avance, y entonces continuamos con el paso 5;
en caso contrario designe i = k y regrese al paso 2.
Ahora restaure los vértices que se eliminaron en el paso 4, designe i = 1 y regrese al paso
2.
6. Solución:
F = f1 + f2 + f3 + · · · + fm
Utilizando las capacidades de diseño iniciales y los residuos finales de cada arista
(i, j), respectivamente, el flujo óptimo en la arista se determina calculando (α, β) =
(C ij − cij , C ji − cji ), si α > 0 entonces el flujo óptimo es la dirección de i a j. Por
otra parte, si β > 0, el flujo óptimo es de j a i.
56 CAPÍTULO 3. ANÁLISIS DE REDES
Ejercicio 3.3. Determine el flujo máximo y el flujo óptimo en cada arco para la siguiente
gráfica:
2 2 7
5 T
5 4
O B D
3
7
4 1 1
C E
4
El objetivo de CPM y PERT es idear herramientas analı́ticas para programar las activida-
des, por lo que, debemos seguir los siguientes pasos:
1. Definimos las actividades del proyecto y sus relaciones de precedencia y sus requerimiento
de tiempo.
2. Se modelan las relaciones de precedencia entre las actividades como una red.
3. Cálculamos el desarrollo del cronograma, ahora bien, al empezar este paso puede que
no todas las actividades discurran como se planearon, en el sentido de que algunas se
despacharan y otras se demorarán por lo que se incrpora un bucle de retroalimentación.
Las dos tecnicas señaladas las desarrollaremos de forma independiente, sin embargo, cabe
señalar que CPM asume que las duraciones de las actividades son determinı́sticas y PERT
que tiene duraciones probabilı́sticas.
Dicho lo anterior debemos de representar en forma de red los vértices de avance del proyecto,
los cuales establecen relaciones de precedencia entre las diferentes actividades, a continuación
se muestran las reglas para construir la gráfica:
2. Cada actividad debe estar identificada por dos vértices terminales distintos, cabe señalar
que en ocasiones es necesario incorporar actividades ficticias para representar de forma
única dos actividades concurrentes, A y B, cabe señalar que una actividad ficticia no con-
sume tiempo ni recursos, a continuación se muestra como se ha insertado una actividad
ficticia para la concurrencia de las actividades A y B:
3. Para mantener las relaciones de precedencia correctas, hay que contestar las siguientes
preguntas a medida que se agrega cada actividad a la red.
Las respuestas a estas preguntas pueden requerir el uso de actividades ficticas para garan-
tizar la precedencia correcta entre las actividades, analicemos un ejemplo a fin de analizar
la importancia de estas mismas:
Ejemplo 3.4. Considere un proyecto en el cual se tienen las siguientes actividades:
Dicho lo anterior analicemos un ejemplo a fin de poner en práctica como se pueden plantear
las diferentes actividades necesarias para completar un objetivo dado.
Ejemplo 3.5. Un editor firmó un contrato con un autor para publicar un libro de texto, el autor
somete a consideración del consejo editor una copia impresa del libro, el cual busca publicar.
Las activiades las cuales debe de continuar para la producción del libro de texto, las cuales se
resumen en la siguiente tabla.:
3.5. CPM Y PERT 59
Una compañı́a constructora ha sido contratada para la construcción de una casa, en dicho
proceso de han identificado diversas actividades necesarias para la construcción de la casa, ası́
como su relación entre ellas y una estimación aproximada de la duración de cada una de ellas.
Estas son presentadas a continuación:
Una actividad es crı́tica si sus tiempos de inicio y terminación están predeterminados (fijos),
por otra parte, una actividad no crı́tica si puede ser programada en un espacio de tiempo mayor
que su duración, lo que permite tiempos de inicio y terminación flexibles (dentro de los lı́mites).
Una demora en el tiempo de inicio de una activdad crı́tica definitivamente retrasa la termi-
nación del proyecto, en tanto que una demora en una actividad no crı́tica quizá no afecte la
fecha de terminación del proyecto.
60 CAPÍTULO 3. ANÁLISIS DE REDES
Para realizar los cálculo necesarios, definimos un evento como un punto en el tiempo en el
cual se completan las actividades y se inician las subsecuentes. En función de la red, un evento
corrsponde a un vértice. Sean:
Todos los tiempos de ocurrencia se miden a partir del inicio del proyecto, el lapso (j , ∆j )
define el periodo de tiempo durante el cual se programa la actividad (i, j) de duración Dij . Si
la actividad (i, j) es crı́tica, entonces Dij = ∆j − j , de lo contrario Dij < ∆j − j para la
actividad no crı́tica (i, j).
Los cálculos de la ruta crı́tica implica dos pasos: El paso adelantado, el cual determina
los tiempos de ocurrencia más tempranos de los eventos y el paso retrasado, el cual calculas
los tiempos de ocurrencias más tardı́os. A cotninuación analizaremos el algoritmo que se deberá
de seguir para determinar los valores.
Paso adelantado (tiempos de ocurrencia más tempranos, ): Los cálculos se inician el
vértice 1 y avanzas recursivamente hacı́a el vértice n, los cuales se detallan a continuación:
2. Paso general j: Dado que los vértices p, q, . . . , v están conectados directamente al vértice
j por las actividades entrantes (p, j), (q, j), . . . , (v, j) y que los tiempos de ocurrencia más
tempranos de los eventos (vértices) p, q, . . . , v ya se calcularon, entonces el tiempo más
temprano de ocurrencia del evento j se calcula como:
Paso retrasado (tiempos de ocurrencia más tardı́os, ∆): Los cálculos del paso retrasado
se inician en el vértice n y termina en el vértice 1, los pasos a seguir se detallan a continuación:
1. Paso inicial: Establezca ∆n = n para indicar que las ocurrencias más tardı́as del últime
vértice son iguales a la duración del proyecto.
2. Paso general j: Dado que los vértices p, q, . . . , v están conectados directamente al vértice
j por las actividades salientes (j, p), (j, q), . . . , (j, v) y que los tiempos de ocurrencia más
tardı́os de los vértices p, q, . . . , v ya se calcularon, el tiempo de ocurrencia más tardı́o del
vértice j se calcula como:
Con base en los cálculos anteriores, una actividad (i, j) será crı́tica si satisface tres condiciones:
1. ∆i = i .
3.5. CPM Y PERT 61
2. ∆j = j .
3. ∆j − i = Dij .
Las tres condiciones establecen que los tiempos de ocurrencia más tempranos y mñas tardı́os
de los nodos finales i y j son iguales y que la duración Dij encaja perfectamente en el espacio
de tiempo especificado. Una condición que no satisface las tres condiciones no es crı́tica.
Modelos de Inventario
El problema del modelo de inventario tiene que ver con el número de unidades disponibles
para satisfacer la demanda sobre cierto artı́culo, debido a que:
1. El exceso de existencias de artı́culo genera un sobrecosto (ya sea por la pérdida del artı́culo,
el costo de almacenamiento, etc.).
2. La escasez del artı́culo genera costo relacionados con pérdida de oportunidad al no cubrir
la demanda del artı́culo.
Dicho lo anterior, nuestro objetivo en encontrar un balance en los costos a fin de determinar el
número de artı́culos necesarios en nuestro inventario el cuál se encontrará enfocado en minimizar
el costo asociado a dicho modelo, para la formulación del mismo se debe tener presente dos
preguntas:
1. ¿Cuánto pedir?
2. ¿Cuándo pedir?
Adicionalmente a estos factores, debemos considerar los costos inherentes al modelo a fin de
identificar los costos que buscaremos minimizar, los cuales se describen a continuación:
1. Costo de compra: Precio unitario del artı́culo, el cual puede encontrarse relacionado
con la cantidad de unidades que se adquieren; comúnmente se puede considerar como un
precio mayoreo o menudeo.
4. Costo por escasez: Es el costo por la pérdida de oportunidad por no atender la demanda
ası́ como las posibles penalizaciones que puedan surgir.
Ahora bien, este dichos costos se pueden presentar costos que se contrapongan, es decir, un
costo puede incrementar mientras otro costo puede disminuir. Un ejemplo de lo anterior, se vi-
sualiza en el costo de preparación y el costo de almacenamiento, debido a que se puede buscar
solicitar inventario muy frecuentemente para evitar los costos asociados con el almacenamiento,
62
4.1. MODELO ESTÁTICO DE CANTIDAD DE PEDIDO ECONÓMICO (EOQ) 63
Por lo anterior, es que describimos al modelo como un balance, no obstante, hemos identifi-
cado otro factor importante, la frecuencia de reposición del inventario, por otra lado, hemos
considerado aspectos desde la parte que toma las acciones, sin embargo, nos queda por señalar
el comportamiento de la demanda, la cual principalmente definirá el modelo de inventario a usar.
Notemos que cuando el inventario llega a cero, de forma instántanea se recibe un pedido de y
unidades, asimismo, las existencia se agotan uniformemente con una tasa de demanda constante
D. El ciclo de pedido se encuentra dado por:
y
t0 = . (4.1)
D
Ahora nos enfocaremos en los costos asociados con este primer modelo de inventario, para lo
que, podemos analizar que se encuentran los siguientes costos:
64 CAPÍTULO 4. MODELOS DE INVENTARIO
Ahora bien, notemos que el nivel del inventario promedio es y2 ası́ que el costo total por unidad
de tiempo T CU es:
K + h y2 t0
DK y
T CU (y) = = +h ,
t0 y 2
por lo que, buscamos el valor óptimo del pedido y que permita minimizar el costo de T CU (y),
supongamos que esta es una función continua, por lo que, podemos emplear nuestros métodos
de optimización clásicos, es decir: