Está en la página 1de 17

MODELACIÓN Y SOLUCIÓN DE

PROBLEMAS DE OPTIMIZACIÓN SOBRE


GRAFOS

Modelo de Optimización

Nombre:
Keren Sánchez Padrón
BIO301

28 DE JUNIO DE 2021
UNIVERSIDAD DE LAS CIENCIAS INFORMÁTICAS
Modelación y solución de problemas de optimización sobre grafos

Respuestas:
 La tabla de transporte que recoge la situación descrita es:

1 (SC) 2 (H) 3 (G) Oferta


1 (M) 300 180 200 60
2 (A) 400 250 300 50
Demanda 60 40 30 130>110

a) Modelo de programación lineal correspondiente a esta situación:


Variables de decisión
 xij −cantidad de unidades de malanga a transportar desde la
cooperativa i hasta la provincia j
Función objetivo
Min Z = 300x11 + 180x12 + 200x13 + 400x21 + 250x22 + 300x23
Restricciones
 x11 + x12 + x13 ≤ 60
 x21 + x22 + x23 ≤ 50
 x11 + x21 ≤ 60
 x12 + x22 ≤ 40
 x13 + x23 ≤ 30
xij ≥ 0 y enteras con i = 1,2 j = 1,2,3
El grafo asociado a este problema sería:
x11 SC 60
60 M
x12
x13

x21 H 40

A x21
50
x23
G 30

b) Modelo modificado de forma tal que teniendo en cuenta que Santiago


de Cuba fue la provincia más afectada, se quiere garantizar que la
demanda de dicha provincia sea cubierta en su totalidad:
Se mantiene el modelo original, pero cambiando la restricción de
demanda de Santiago de Cuba (x11 + x21 ≤ 60) por x11 + x21 = 60
c) Para calcular la solución básica factible inicial para el problema:
 Paso 1: Equilibrar el problema.
- Oferta= 60 + 50 = 110.
- Demanda= 60 + 40 + 30 = 130.
Se crea un origen ficticio con una oferta de 20 unidades y costes
de transporte cero. Creamos la tabla de transporte para asignar
flujos.

300 180 200 60

400 250 300 50

0 0 0 20

60 40 30

 Paso 2: Calcular una solución inicial básica utilizando la regla de


la esquina noroeste, el método del costo mínimo y el método de
Vogel, y de ellas escoger la más factible para continuar el
algoritmo.
→ Como en este caso m = 3 y n = 3 el procedimiento encontrará
una solución inicial básica factible que tiene m + n -1 = 5 variables
básicas.
 Método de la esquina noroeste
 Como se muestra en la siguiente tabla (las flechas indican el
orden en que se eligieron las variables básicas), la primera
asignación es x11 = 60, aquí, la demanda y la oferta se
igualan. Entonces, arbitrariamente se escogerá la celda
inferior de la misma columna (x12) para asignar un 0, lo que
completa la demanda de la columna 1 (y la elimina para
nuevas asignaciones). En esta iteración no hay más oferta que
ofrecer en el renglón 1, por tanto, también se elimina.
 La esquina más noroeste disponible sería la celda 2-2, a la
cual se le asigna la mayor cantidad posible de la oferta para
poder cubrir la demanda, por ende, x22 = 40, queda satisfecha
la demanda y se elimina la columna 2.
 La anterior iteración deja 10 unidades de recursos restantes
en el renglón 2, así que después se elige x23 como variable
básica, como los recursos restantes no son mayores que la
demanda de 30 unidades de la columna 3, se asigna toda la
oferta a x23 = 10, y se elimina este renglón.
 La siguiente esquina noroeste es la celda 3-3, a la cual le
asignamos la cantidad mayor posible de recursos y a su vez
cubrimos la demanda, x33 = 20.
300 180 200
60
60
400 250 300
0 40 10 50

0 0 0
20 20

60 40 30
El valor de la función objetivo asociado a esta solución factible
inicial es:
Z = 300(60) + 400(0) + 250(40) + 300(10) + 0(20) = 31 000
 Método del costo mínimo
 Primer paso: se identifica la celda con el menor costo de
envío. En este caso hay 3 casillas con un costo igual a 0 que
son: x31, x32 y x33, seleccionamos x31 que posee una demanda,
a esta se le asigna la mayor cantidad de unidades posible, que
sería x31 = 20, se realiza el ajuste en la fila y columna
afectada, quedando la columna 1 con una demanda de 40, y
dado que la fila 3 queda sin oferta, se elimina.
 Segundo paso: Repitiendo el proceso anterior, la nueva
variable básica sería x12, a la cual se le asigna x12 = 40, por lo
cual queda satisfecha la demanda de la columna 2 y se
elimina, además ajustamos la oferta en la primera fila a 20.
 Tercer paso: Nuevamente, se elige la próxima celda con
menor costo unitario y se le asigna la mayor cantidad posible
entre oferta y demanda, que sería x13 = 20, por lo que se
actualiza la demanda en esa columna a 10, al quedar la fila 1
sin oferta, se elimina.
 Cuarto paso: Repitiendo el proceso, se asigna x23 = 10,
quedando completamente satisfecha la demanda en la
columna 3. Se ajusta la fila 2 quedando con una oferta de 40
unidades.
 Quinto paso: Se asigna las 40 unidades restantes a x21
quedando cubierta la demanda con la oferta, finalizando el
método.
300 180 200
60
40 20
400 250 300
40 10 50

0 0 0
20 20

60 40 30
El valor de la función objetivo asociado a esta solución factible
inicial es:
Z = 0(20) + 180(40) + 200(20) + 300(10) + 400(40) = 30 200
 Método de aproximación de Vogel
 Primera iteración: Se calcula las diferencias por fila y por
columna. La mayor diferencia corresponde a la primera
columna, entonces seleccionamos la casilla de mínimo coste,
posición (3,1). Asignamos el mínimo entre oferta y demanda,
20 unidades. Actualizamos ofertas y demandas y eliminamos
las líneas satisfechas, en este caso la fila tres. Tenemos la
siguiente tabla:
DFi
300 180 200 60 20

400 250 300 50 50

0 0 0 0 0
20
40 40 30
DCj 300 180 200

 Segunda iteración: se calculan de nuevo las diferencias; la


mayor diferencia corresponde a las columnas primera y tercera.
Seleccionamos arbitrariamente la primera y, en esa columna
seleccionamos la casilla de mínimo coste, posición (1,1).
Asignamos el mínimo entre oferta y demanda, 40 unidades.
Actualizamos ofertas y demandas y eliminamos la columna
uno por estar satisfecha.

DFi
300 180 200 20 20
40
400 250 300 50 50

0 0 0 0
20
0 40 30
DCj 100 70 100

 Tercera iteración: Repetimos el proceso. La mayor diferencia


corresponde a la columna 3, y el mínimo coste corresponde a
la posición (1,3); asignamos 20 unidades. Actualizamos oferta
y demanda y se elimina la fila tres por haber sido satisfecha.
DFi
300 180 200 0 20
40 20
400 250 300 50 50

0 0 0 0
20
0 40 10
DCj 70 100

 Cuarta iteración: Para la nueva tabla, la máxima diferencia se


encuentra en la columna 3. El coste de transporte mínimo en
la columna 3 es x23 = 300. Asignamos a esa casilla el máximo
flujo de transporte posible, es decir 10. Actualizamos oferta y
demanda, y eliminamos la columna tres.
DFi
300 180 200 0
40 20
400 250 300 40 50
10
0 0 0 0
20
0 40 0
DCj 250 300

 Quinta iteración: Ya no queda más que una celda, asignamos


todas las unidades que quedan sin asignar y se obtiene la
siguiente solución factible básica:

300 180 200


60
40 20
400 250 300
50
40 10
0 0 0
20
20
60 40 30
El valor de la función objetivo asociado a esta solución factible
inicial es:
Z = 0(20) + 300 (40) + 200 (20) + 300 (10) + 250 (40) = 29 000

Para continuar el algoritmo utilizaríamos la solución básica factible


inicial encontrada por el método de Vogel, dado que sería la más
óptima (posee el menor costo total).
d) Aplicando la prueba de optimalidad a la solución básica factible inicial
obtenida (xMS = 40, xMG = 20, xAH = 40, xA = 10, xFS = 20) mediante el
método de Vogel nos arroja que para toda variable no básica eij se
cumple que cij - ui - vj ≥ 0, por tanto, la solución es efectivamente
óptima y, el proceso se detiene.
Variables básicas: ui + vj = cij
x11: u1 + v1 = 300 Se hace u1 = 0, así v1 = 300
x31: u3 + v1 = 0 Se conoce v1 = 300, así u3 = -300
x13: u1 + v3 = 200 Se conoce u1 = 0, así v3 = 200
x23: u2 + v3 = 300 Se conoce v3 = 200, así u2 = 100
x22: u2 + v2 = 250 Se conoce u2 = 100, así v2 = 150
Variables no básicas: eij = cij - ui - vj
e12 = c12 - u1 - v2 = 180 – 0 – 150 = 30
e21 = c21 - u2 - v1 = 400 – 100 – 300 = 0
e32 = c32 - u3 - v2 = 0 – (-300) – 150 = 150
e33 = c33 - u3 - v3 = 0 – (-300) – 200 = 100
→ Como cij - ui - vj representa la tasa a la que cambia la función
objetivo si se incrementa la variable no básica xij, la variable básica
que entra debe tener un valor de cij - ui - vj negativo, para que el costo
total Z disminuya. Entre los candidatos se elige el valor negativo más
grande (en términos absolutos) como variable básica entrante.
→ Si se incrementa el valor de la variable básica entrante, se
establece una reacción en cadena de cambios compensatorios en
otras variables básicas (asignaciones) para que se satisfagan las
restricciones de recursos y demanda. La primera variable básica que
disminuya su valor hasta cero será la variable básica que sale.

e) Teniendo en cuenta que la solución óptima obtenida fue: xMS= 50,


xMG= 10, xAS= 10, xAH= 40, xFG= 20. Interprete dichos resultados.
Como parte del programa de ayuda a las provincias afectadas por el
huracán Sandy, la cooperativa ubicada en Mayabeque logró enviar
50t de malanga a la provincia Santiago de Cuba y 10t a Granma;
mientras la cooperativa ubicada en Artemisa pudo enviar 10t a
Santiago de Cuba y 40t a Holguín.

f) Teniendo en cuenta que se dispone de un fondo de $32 000 para la


transportación de las malangas, diga si es necesario destinar más
dinero para esta tarea, tomando como solución la del inciso anterior.
El valor de la función objetivo asociado a la solución óptima anterior
sería: Z = 300 (50) + 200 (10) + 400 (10) + 250(40) + 20(0) = 31 000
Por tanto, no es necesario destinar más dinero para la transportación
de malanga dado que con un fondo de $ 32 000 sería más que
suficiente para utilizar en esta tarea.
 Representación de red para el problema:
1
[20] A F2 [-15]
2
4

F4 [-22]
3
2
[30] B
1 F4 [-20]

Datos de transporte que recoge la situación descrita:


Costo de transportación de las computadoras

Facultad
1 2 3 Oferta
1 1 2 4 20
Almacén
2 3 2 1 30
Demanda 15 22 20

a) Modelo matemático correspondiente al problema:


Variables de decisión
 xij −cantidad de unidades de computadoras a transportar
desde el almacén i hasta la facultad j
Función objetivo
Min Z = 1x11 + 2x12 + 4x13 + 3x21 + 2x22 + 1x23
Restricciones
 x11 + x12 + x13 ≤ 20
 x21 + x22 + x23 ≤ 30
 x11 + x21 ≤ 15
 x12 + x22 ≤ 22
 x13 + x23 = 20
xij ≥ 0 y enteras con i = 1,2 j = 1,2,3

b) Para calcular la solución básica factible inicial para el problema:


 Paso 1: Equilibrar el problema.
- Oferta= 20 + 30 = 50.
- Demanda= 15 + 22 + 20 = 57.
Se crea un origen ficticio (este se maneja como el nodo que da
origen a todo el flujo que en realidad se origina en algunos otros
nodos) con una oferta de 7 unidades (57 – 50 = 7) y costes de
transporte cero.
Creamos la tabla de transporte para asignar flujos.

1 2 4
20

3 2 1
30

0 0 0
7

15 22 20

 Paso 2: Calcular la solución inicial por el método de Vogel: Para


cada fila y columna que queda bajo consideración, se calcula su
diferencia. En el renglón o columna que tiene la mayor diferencia,
se elige la variable que tiene el menor costo unitario que queda.
(Los empates se pueden romper de manera arbitraria.)
 Primera iteración: La mayor diferencia corresponde a la
columna 2, entonces seleccionamos la casilla de mínimo
coste, y asignamos el mínimo entre oferta y demanda, que
sería x32 = 20. Actualizamos ofertas y demandas, se elimina la
fila 3 por estar satisfecha y la demanda pasa a tener valor 15.
DFi
1 2 4 20 1

3 2 1 30 1

0 0 0 0 0
7
15 15 20
DCj 1 2 1

 Segunda iteración: se calculan de nuevo las diferencias; la


mayor diferencia corresponde a la tercera columna.
Asignamos x23 = 20. Actualizamos la oferta en 30 – 20 = 10, y
la columna 3 se elimina puesto que se encuentra satisfecha la
demanda.
DFi
1 2 4 20 1

3 2 1 10 1
20
0 0 0 0
7
15 15 0
DCj 2 0 3
 Tercera iteración: Repetimos el proceso. La mayor diferencia
corresponde a la columna 1, asignamos x11 = 15, la demanda
de la columna 1 queda satisfecha, por tanto, se elimina y
actualizamos a 20 – 15 = 5 la oferta en la fila 1.
DFi
1 2 4 5 1
15
3 2 1 10 1
20
0 0 0 0
7
0 15 0
DCj 2 0

 Cuarta iteración: Para la nueva tabla, la máxima diferencia se


encuentra en las filas uno y dos. Arbitrariamente
seleccionamos la fila 1. Asignamos a la casilla 1-2 el máximo
flujo de transporte posible, es decir 5. Actualizamos la
demanda en la columna 2 en 15 – 5 = 10, y se elimina la fila 1
por no tener más oferta para ofrecer.
DFi
1 2 4 0 2
15 5
3 2 1 10 2
20
0 0 0 0
7
0 10 0
DCj 0

 Quinta iteración: Ya no queda más que una celda, asignamos


todas las unidades que quedan sin asignar y se obtiene la
siguiente solución básica factible inicial:

1 2 4
20
15 5
3 2 1
30
10 20
0 0 0
7
7
15 22 20

El valor de la función objetivo asociado a esta solución factible


inicial es: Z = 0 (7) + 1 (20) + 1 (15) + 2 (5) + 2 (10) = 65
Método de la esquina noroeste:
1 2 4
20
15 5
3 2 1
17 13 30

0 0 0
7 7

15 22 20

El valor de la función objetivo asociado a esta solución inicial es:


Z = 1 (15) + 2 (5) + 2 (17) + 1 (13) + 0 (7) = 72

Método del costo mínimo:

1 2 4
20
8 10
3 2 1
12 20 30

0 0 0
7 7

15 22 20

El valor de la función objetivo asociado a esta solución inicial es:


Z = 0 (7) + 1 (8) + 1 (20) + 2 (12) + 2 (10) = 72

Para continuar el algoritmo utilizaríamos nuevamente la solución


básica factible inicial encontrada por el método de Vogel.

c) En el caso de este problema como todos los valores de e ij son


positivos, se concluye que la solución básica factible actual es óptima
y, por tanto, se detiene el algoritmo, es decir, no es necesario iterar, y
con ello encontrar variable de entrada.
Variables básicas: ui + vj = cij
x11: u1 + v1 = 1 Se hace u1 = 0, así v1 = 1
x12: u1 + v2 = 2 Se conoce u1 = 0, así v2 = 2
x22: u2 + v2 = 2 Se conoce v2 = 2, así u2 = 0
x23: u2 + v3 = 1 Se conoce u2 = 0, así v3 = 1
x32: u3 + v2 = 0 Se conoce v2 = 2, así u3 = -2
Variables no básicas: eij = cij - ui - vj
e13 = c13 - u1 - v3 = 4 – 0 – 1 = 3
e21 = c21 - u2 - v1 = 3 – 0 – 1 = 2
e31 = c31 - u3 - v1 = 0 – (-2) – 1 = 1
e33 = c33 - u3 – v3 = 0 – (-2) – 1 = 1
 Asignación - Corredores/Pruebas:

1 (100m) 2 (200m) 3 (400m)

1 (M) 13.50 24 48.50

2 (D) 12 24.50 49

3 (J) 13 23 49

4 (O) 15 28 50

a) Modelo matemático correspondiente al problema:


Variables de decisión
1, si al corredor i se asigna la carrera j
 xij
0, en caso contrario

Función objetivo
Min Z = 13.50x11 + 22x12 + 48.50x13 + 12x21 + 24.50x22 + 49x23 +
13x31 + 23x32 + 49x23 + 15x41 + 28x42 + 50x43
Restricciones
 x11 + x12 + x13 ≤ 1
 x21 + x22 + x23 ≤ 1
 x31 + x32 + x33 ≤ 1
 x41 + x42 + x43 ≤ 1
 x11 + x21 + x31 + x41 = 1
 x12 + x22 + x32 + x42 = 1
 x13 + x23 + x33 + x43 = 1
xij ≥ 0 y binarias con i = 1,2,3,4 j = 1,2,3

b) Si la solución obtenida fue la siguiente: xD1= 1, xJ2= 1, xM3= 1, xOF= 1.


Interprete la solución obtenida.
El corredor D correrá en la modalidad de 100 m, el corredor J en la
modalidad de 200 m, M correrá en los 400 m y el corredor O en una
modalidad ficticia (realmente no correrá).

c) Si fuera definitivamente el equipo del inciso anterior el que compite


por la Facultad CITEC el tiempo total en que incurrirían como equipo
sería de 83 minutos con 50 segundos.
Z = 12 + 23 + 48.50 + 0 = 83.50
xD1 – 12
xJ2 – 23
xM3 – 48.50
xOF – 0
 Asignación - Empleados/Tareas:

T1 T2 T3 T4 T5
E1 6 8 9 3 7
E2 2 3 -- 4 --
E3 5 6 8 9 6
E4 2 3 7 8 6

a) Modelo matemático correspondiente al problema:


Variables de decisión
1, si al empleador i se asigna la tarea j
 xij
0, en caso contrario

Función objetivo
Max Z = 6x11 + 8x12 + 9x13 + 3x14 + 7x15 + 2x21 + 3x22 + 4x24 + 5x31
+ 6x32 + 8x33 + 9x34 + 6x35 + 2x41 + 3x42 + 7x43 + 8x44 + 6x45
Restricciones
 xi1 + xi2 + xi3 + xi4 + xi5 ≥ 1 i = 1,2,3,4
 xi1 + xi2 + xi3 + xi4 + xi5 ≤ 2 i = 1,2,3,4
 x21 + x22 + x23 + x24 + x25 = 1
 x1j + x2j + x3j + x4j = 1 j = 1,2,3,4,5
 x23 = x25 = 0
xij ≥ 0 y binarias con i = 1,2,3,4 j = 1,2,3,4,5

b) Método Húngaro:
 Primeramente, como los empleados no pueden quedarse sin
tareas, y se tienen más tareas (cinco) que empleados (cuatro), se
tendrán que asignar dos tareas a uno de los empleados. Al
empleado E2 sólo se le puede asignar una tarea, por ende,
alguno de los empleados restantes (E1, E3 y E4) será el que
realizará dos tareas. Para hacer posible la asignación de esa
tarea adicional dentro de la formulación de este problema de
asignación, los empleados 1, 3 y 4 se dividen en dos asignados
cada uno. Como el número de asignados (ahora siete) debe ser
igual al número de tareas (ahora cinco), se introducen dos
asignaciones ficticias (tareas) como son 6(F) y 7(F).
A los empleados E1, E2, E3 y E4 se les debe asignar una tarea
real, por tanto, para evitar que se le asigne una tarea ficticia a
alguno es que aparece la M (número suficientemente grande) en
las asignaciones ficticias, como se muestra en la siguiente tabla ↓
1 2 3 4 5 6(F) 7(F)
E1a 6 8 9 3 7 M M
E1b 6 8 9 3 7 0 0
E2b 2 3 M 4 M M M
E3a 5 6 8 9 6 M M
E3b 5 6 8 9 6 0 0
E4a 2 3 7 8 6 M M
E4b 2 3 7 8 6 0 0

 Como se debe pasar de hallar un máximo a un mínimo para


poder aplicar íntegramente el algoritmo Húngaro, es necesario en
la matriz 𝐶 = [𝑐𝑖𝑗] localizar el mayor 𝑐𝑖𝑗 ≠ ∞ que ella contiene (en
este caso 9) y modificar la matriz restando 9 (en este caso) a
todos los elementos 𝑐𝑖𝑗 ≠ 0, ∞

1 2 3 4 5 6(F) 7(F)
E1a 3 1 0 6 2 M M
E1b 3 1 0 6 2 0 0
E2b 7 6 M 5 M M M
E3a 4 3 1 0 3 M M
E3b 4 3 1 0 3 0 0
E4a 7 6 2 1 3 M M
E4b 7 6 2 1 3 0 0

 Restando a todos los elementos de una columna el menor valor


de esa columna, nos queda la siguiente matriz:

1 2 3 4 5 6(F) 7(F)
E1a 0 0 0 6 0 M M
E1b 0 0 0 6 0 0 0
E2b 4 5 M 5 M M M
E3a 1 2 1 0 1 M M
E3b 1 2 1 0 1 0 0
E4a 4 5 2 1 1 M M
E4b 4 5 2 1 1 0 0
 Se realiza el procedimiento anterior, pero por filas para garantizar
tener ceros en cada fila y columna.
 Además, debemos tachar los ceros con el menor número de
líneas posible, tratando de abarcar la mayor cantidad de ceros.

1 2 3 4 5 6(F) 7(F)
E1a 0 0 0 6 0 M M
E1b 0 0 0 6 0 0 0
E2b 0 1 M 1 M M M
E3a 1 2 1 0 1 M M
E3b 1 2 1 0 1 0 0
E4a 3 4 1 0 0 M M
E4b 4 5 2 1 1 0 0

 Como el número de líneas trazadas (7) es igual al número de filas


y columnas (7) se puede pasar a realizar la asignación:

Empleado Tarea
E1 1, 2, 3, 5
E2 1
E3 4
E4 4, 5

Asignación óptima:
T1
E1
T1
E2
T1

E3
T1

E4 T1

E1 → T2 → 8
E1 → T3 → 9
E2 → T1 → 2
E3 → T4 → 9
E4 → T5 → 6
Z → 34 puntos.
 Flujo máximo a través de la red:
3,0
2 5
9,0
1,0
5,0
4,0
2,0
7,0
1 4 7
1,0
4,0 2,0
6,0
3 6
4,0

Iteración 1: Seleccionamos la trayectoria de aumento 1 → 4 → 5 → 7


que tiene capacidad residual igual al min {7, 4, 9} = 4. Si se asigna un
flujo de 4 a esta trayectoria, la red residual que resulta es:
3,0
2 5
5,4
1,0
5,0
0,4
3,4 2,0
4 1 4 7 4

1,0
4,0 2,0
6,0

3 6
4,0

Iteración 2: se selecciona la trayectoria de aumento 1 → 2 → 5 → 7,


que tiene una capacidad residual igual al min {5, 3, 5} = 3. Si a este
camino se le asigna un flujo de 3, la red residual que resulta es:
0,3
2 5
2,7
1,0
2,3
0,4
3,4 2,0
7 1 4 7 7

1,0
4,0 2,0
6,0

3 6
4,0
Iteración 3: se selecciona la trayectoria de aumento 1 → 3 → 6 → 7,
que tiene una capacidad residual igual al min {4, 4, 6} = 4. Si a este
camino se le asigna un flujo de 4, la red residual que resulta es:
0,3
2 5
2,7
1,0
2,3
0,4
3,4 2,0
11 1 4 7 11

1,0
0,4 2,0
2,4

3 6
0,4

Iteración 4: la trayectoria de aumento 1 → 4 → 6 → 5 → 7, que tiene


una capacidad residual igual al min {3, 1, 2, 2} = 1. Si a este camino
se le asigna un flujo de 1, la red residual que resulta es:
0,3
2 5
1,8
1,0
2,3
0,4
2,5 1,1
12 1 4 7 12

0,1
0,4 2,0
2,4

3 6
0,4

No queda ninguna trayectoria de aumento del nodo 1 al nodo 7.


Luego este flujo es un flujo máximo, cuyo valor es 12.

También podría gustarte