Sie sind auf Seite 1von 42

TRABAJO FINAL INVESTIGACION DE OPERACIONES

Presentado por:
MARITZA CAICEDO Cd.: 1353912
WILSON LONDOO Cd.: 1353903
ESTEFANIA PALMA Cd.: 1353792

Presentado a:
JAVIER IVAN HERNANDEZ MONTOYA

UNIVERSIDAD DEL VALLE


INGENIERIA INDUSTRIAL
PALMIRA
2015

PARTE I: TURNOS DE UN SUPERMERCADO

CANTIDAD DE CAJEROS NECESARIA PARA OPERAR EN EL DIA


FORMULACION DEL MODELO DE PROGRAMACION LINEAL

4
4

VARIABLES:
FUNCIN OBJETIVO:
RESTRICCIONES:

4
4
4

SOLUCION DEL MODELO POR WINQSB


SOLUCION DEL PROBLEMA POR SOLVER
SOLUCION DEL PROBLEMA POR AMPL
CAJEROS QUE VAN A TRABAJAR EN CADA TURNO
FORMULACION DEL MODELO DE PROGRAMACION LINEAL

5
5
6
7
7

VARIABLES:
PARMETROS:
FUNCIN OBJETIVO:
RESTRICCIONES:

7
7
7
7

SOLUCION DEL MODELO POR WINQSB


SOLUCION DEL PROBLEMA POR SOLVER
SOLUCION DEL PROBLEMA POR AMPL
ASIGNACION DE CAJEROS A CAJAS
ANALISIS Y CONCLUSIONES

8
10
10
13
15

PARTE II:

16

FORMULACION DEL MODELO DE PROGRAMACION LINEAL

16

VARIABLES:
FUNCIN OBJETIVO:
RESTRICCIONES:

16
17
17

SOLUCION DEL MODELO POR WINQSB


SOLUCION DEL PROBLEMA POR SOLVER
SOLUCION DEL PROBLEMA POR AMPL
CULES SON LAS CARACTERSTICAS DEL PROBLEMA, EN TRMINOS DEL NMERO DE
VARIABLES, EL NMERO DE RESTRICCIONES Y EL TIPO DE VARIABLES?
COMENTARIOS RESPECTO A LAS VENTAJAS OBSERVADAS DE AMPL RESPECTO MICROSOFT
EXCEL Y WINQSB

18
19
21

PARTE III: PROBLEMA DE LA RUTA MAS CORTA Y MODELO DE


TRANSPORTE

26
26

27

SOLUCION DEL MODELO POR EL ALGORITMO DE FLOYD:


27
SOLUCION DEL MODELO POR WINQSB (RUTA MAS CORTA DESDE LOS CENTROS
DE DISTRIBUCION A TODOS LOS CLIENTES)
28
SOLUCION DEL MODELO ALGORITMO MANUAL (VOGUEL):
29
SOLUCION DEL MODELO POR WINQSB (MODELO DE TRANSPORTE)
35

RANGO DE OPTIMALIDAD
RANGO DE FACTIBILIDAD
SOLUCION GRAFICA

36
37
37

ANALISIS Y CONCLUSIONES

38

PARTE I: TURNOS DE UN SUPERMERCADO


Supermarket es un supermercado local que cuenta con 10 cajeros y tres turnos
para un da normal de operacin, los horarios de atencin son desde las 8 de la
maana hasta las 8 de la noche. Durante los ltimos meses, el gerente ha
recolectado informacin de cuantas personas puede atender en promedio por hora
cada cajero. Los datos se listan a continuacin:
Cajeros
1
2
3
4
5
6
7
8
9
10

En las ltimas semanas el


durante algunas horas en el
encuentran inoficiosos y en
embotellamiento
de
gerente decidi recolectar
en cada hora de operacin
tabla
mostrada
a

Personas
atendidas
por hr.
30
22
18
27
20
19
21
26
29
24

Horas del
da
8:00:00 a.
m.
9:00:00 a.
m.
10:00:00
a. m.
11:00:00
a. m.
12:00:00
p. m.
1:00:00 p.
m.
2:00:00 p.
m.
3:00:00 p.
m.
4:00:00 p.
m.
5:00:00 p.
m.
6:00:00 p.
m.
7:00:00 p.
m.

Caja anterior
PAR
IMPAR
IMPAR
PAR
PAR
IMPAR
PAR
PAR
PAR
IMPAR
Flujo
de
perso
nas
15
21

gerente ha evidenciado que


da, muchos cajeros se
otras horas hay un gran
clientes. Por esta razn el
datos del flujo de clientes
y consigno los datos en una
continuacin:

35
45
37
23
26
34
38
45
50
55

El gerente necesita programar los turnos de una mejor forma, minimizando el


nmero de cajeros pero mejorando el flujo de clientes atendidos.
Formule un modelo de programacin lineal que le permita decidir cuantos y cuales
cajeros deben operar en cada turno, teniendo en cuenta que el turno 1 empieza a
las 8:00 a.m. y termina a las 2:00 p.m., el segundo va de 10:00 a.m. a 1:00 p.m. y
de 3:00 p.m. hasta el cierre, y el turno tres empieza a las 2:00 p.m. y termina en el
cierre. Adems establezca una asignacin de cajeros y cajas diarias tambin
diferencie las cajas del lado izquierdo de las del lado derecho, siendo pares e
impares, respectivamente.
CANTIDAD DE CAJEROS NECESARIA PARA OPERAR EN EL DIA
FORMULACION DEL MODELO DE PROGRAMACION LINEAL
Variables:
x j Cantidad de cajeros en el turno j .
Con j=1,2,3.

Funcin objetivo:
3

( Minimizar ) Z= x j
j=1

Restricciones:

Por hora del da:

x 1 1( De8 :00 a. m . a10 :00 a . m. y de 1 :00 p . m .a 2 :00 p .m .)


x 1+ x 2 4 ( De10 :00 a . m .a 1 :00 p .m . )
X 3 1(De 2 :00 p . m a 3: 00 p . m.)
x 2+ x 3 6 (De3 :00 p . ma 8 :00 p . m.)

Por cantidad mxima de cajeros


4

x 1+ x 2 + x 3 10

Obvias

x j 0
SOLUCION DEL MODELO POR WINQSB

SOLUCION DEL PROBLEMA POR SOLVER

SOLUCION DEL PROBLEMA POR AMPL


#
COMANDOS
EN
AMPL
CORRESPONDIENTES A LA CANTIDAD
DE CAJEROS
# COMANDOS DE INICIALIZACIN DE
CONDICIONES:
option show_stats 1;

printf "RESULTADOS DEL PROBLEMA DE


LA CANTIDAD DE CAJEROS\n";
printf "*************************************\n\n";
printf "\nRESULTADO DE LA FUNCION
OBJETIVO = \t%9.1f", cantidad_cajeros;

option solution_precision 0;

printf "\n\nCantidad de cajeros necesarios


para el turno =\n\n";

option omit_zero_rows 1;

display X;

option omit_zero_cols 1;
option display_precision 6;

# CONJUNTO DE DATOS EN AMPL


PROBLEMA DE LA CANTIDAD DE
CAJEROS

option display_round 1;

# CONJUNTOS PRINCIPALES

option display_width 50;

set TURNOS:= 1 2 3;

# COMANDO DE SOLUCIN:

#MODELO EN AMPL CORRESPONDIENTE


A CANTIDAD DE CAJEROS

solve;
# COMANDOS
RESULTADOS:

DE

IMPRESIN

printf
"\n\n*************************************\n";

DE

#CONJUNTOS PRINCIPALES
set TURNOS; # Cantidad de turnos indexado
por j

#VARIABLES DE DECISIN

# Horario de (10:00 am a 1:00 pm)

var X{j in TURNOS} >= 0, integer;

subject to restriccion2:

# Cantidad de cajeros en el turno j

(X[1]+X[2])

# (Cajeros/turno)

>=4;

#FUNCIN OBJETIVO

# Horario de (2:00pm a 3:00 pm)

minimize cantidad_cajeros:

subject to restriccion3:

#(cajeros)

(X[3])

sum{j in TURNOS} (X[j]);

>=1;

# cantidad de cajeros

# Horario de (3:00 pm a 8:00 pm)

#RESTRICCIONES

subject to restriccion4:

# Horario de (8:00 am a 10:00 y de 1:00pm a


2:00 pm)

(X[2]+X[3])

subject to restriccion1:
(X[1])

>=6;
subject to restriccion5:
(X[1]+X[2]+X[3])

>=1;

<=1

CAJEROS QUE VAN A TRABAJAR EN CADA TURNO


FORMULACION DEL MODELO DE PROGRAMACION LINEAL
Variables:
Cij 1, si el cajero iesta en el turno j .
0,de lo contrario

Coni=1,2 10 y j=1,2,3.

Parmetros:
Oi Cantidad promedio de personas que atiende cada cajero por hora
x j Cantidad de cajeros en el turno j .
(La variable anterior se convierteahora en un parametro)
Funcin objetivo:
10

10

10

i=1

i=1

i=1

( Max ) Cj=6 O i Ci 1 +8 O i Ci 2 +8 O i C i 3 (Clientes atendidos en el dia )


Restricciones:
Por mximo de cajeros para cada turno:
10

Cij=x j j
i=1

Por flujo de clientes en horas de operacin:

10

3 O i C i 1 59( De 8: 00 a .m . a 10:00 a. m . y de 1 :00 p .m . a 2:00 p . m.)


i=1
10

10

i=1

i=1

3 Oi C i 1+3 Oi Ci 2 117 (De 10: 00 a .m . a1 :00 p . m.)


10

Oi Ci 3 26 (De2 :00 p .m a 3 :00 p . m .)


i=1

10

10

i=1

i=1

Turno por cajero:

5 O i C i 2+5 Oi Ci 3 222(De 3 :00 p .m a 8 :00 p . m .)

C ij 1 i
j=1

10

Lmite de cajeros:
3

C ij=7
i=1 j=1

Obvias
8

Cij ( 0,1)
SOLUCION DEL MODELO POR WINQSB

10

SOLUCION DEL PROBLEMA POR SOLVER

SOLUCION DEL PROBLEMA POR AMPL

11

#
COMANDOS
EN
AMPL
CORRESPONDIENTES AL PROBLEMA
DE LA ASIGNACION DE CAJEROS
POR TURNOS
# COMANDOS DE INICIALIZACIN DE
CONDICIONES:

set TURNOS:= 1 2 3;
# PARMETROS
# Cantidad promedio de personas que
atiende cada cajero i por persona
# (personas/cajero)

option show_stats 1;

param O:=

option solution_precision 0;

1 30

option omit_zero_rows 1;

2 22

option omit_zero_cols 1;

3 18

option display_precision 6;

4 27

option display_round 1;

5 20

option display_width 50;

6 19

# COMANDO DE SOLUCIN:

7 21

solve;

8 26

# COMANDOS DE IMPRESIN DE
RESULTADOS:

9 29

printf
"\n\n*************************************\n";

# Cantidad de cajeros en el turno j

10 24;

printf "RESULTADOS DEL PROBLEMA


DE LA ASIGNACION DE CAJEROS POR
TURNOS\n";

# (cajeros/turno)

printf
"*************************************\n\n";

param H13:=

printf "\nRESULTADO DE LA FUNCION


OBJETIVO
=
\t%9.1f",
clientes_atendidos;
printf "\n\nLa asignacion de los cajeros al
respectivo turno es =\n\n";
display C;
# CONJUNTO DE DATOS EN AMPL
PROBLEMA DE LA ASIGNACION DE
CAJEROS POR TURNOS
# CONJUNTOS PRINCIPALES
set CAJEROS:= 1 2 3 4 5 6 7 8 9 10;

# cantidad de horas a multiplicar por


turno i

1 180
2 132
3 108
4 162
5 120
6 114
7 126
8 156
9 174
10 144;

12

param H2:=

maximize clientes_atendidos:

1 240

# clientes por cajero

2 176

sum{i in CAJEROS} (H13[i]*C[i,1])

3 144

+sum{i in CAJEROS} (H2[i]*C[i,2])

4 216

+sum{i in CAJEROS} (H13[i]*C[i,3]);

5 160

# RESTRICCIONES

6 152

#por maximo de cajeros para cada turno

7 168

subject to restriccion1:

8 208

sum{i in CAJEROS} (C[i,1])=1;

9 232

subject to restriccion2:

10 192;

sum{i in CAJEROS} (C[i,2])=3;

#
MODELO
EN
AMPL
CORRESPONDIENTE AL PROBLEMA
DE ASIGNACION DE CAJEROS POR
TURNO

subject to restriccion3:

# CONJUNTOS PRINCIPALES

sum{i in CAJEROS} (C[i,3])=3;


#por flujo de clientes en hora de
operacion:

set TURNOS; # Conjunto de turnos


indexado por j

subject to restriccion4:

set CAJEROS; # Conjunto de cajeros


indexado por i

#de 8:00 am a 10:00 am y de 1:00 pm a


2:00 pm

# PARMETROS

subject to restriccion5:

param O{i in CAJEROS} >=0;

sum{i in CAJEROS} (3*(O[i]*C[i,1]))

#cantidad promedio de personas que


atiende un cajero por hora

+sum{i
in
(3*(O[i]*C[i,2]))>=117;

param H13{i in CAJEROS} >=0;

#de 10:00 am a 1:00 pm

param H2{i in CAJEROS} >=0;

subject to restriccion6:

# VARIABLES DE DECISIN

sum{i in CAJEROS} (O[i]*C[i,3])>=26;

var C{i in CAJEROS, j in TURNOS},


binary;

#de 2:00 pm a 3:00 pm

# 1 si el cajero i esta asignado en el turno


j,

sum{i in CAJEROS} (5*(O[i]*C[i,2]))

# 0 de lo contrario
# FUNCIN OBJETIVO

sum{i in CAJEROS} (3*(O[i]*C[i,1]))>=59;

CAJEROS}

subject to restriccion7:

+sum{i
in
(5*(O[i]*C[i,3]))>=222;

CAJEROS}

#de 3:00 pm a 8:00 pm

13

# turno por cajero:

sum{j in TURNOS} (C[6,j])<=1;

subject to restriccion8:

subject to restriccion14:

sum{j in TURNOS} (C[1,j])<=1;

sum{j in TURNOS} (C[7,j])<=1;

subject to restriccion9:

subject to restriccion15:

sum{j in TURNOS} (C[2,j])<=1;

sum{j in TURNOS} (C[8,j])<=1;

subject to restriccion10:

subject to restriccion16:

sum{j in TURNOS} (C[3,j])<=1;

sum{j in TURNOS} (C[9,j])<=1;

subject to restriccion11:

subject to restriccion17:

sum{j in TURNOS} (C[4,j])<=1;

sum{j in TURNOS} (C[10,j])<=1;

subject to restriccion12:

#limite de cajeros:

sum{j in TURNOS}(C[5,j])<=1;

subject to restriccion18:

subject to restriccion13:

sum{i in
(C[i,j])=7;

CAJEROS,j

in

TURNOS}

ASIGNACION DE CAJEROS A CAJAS


Para la asignacin de cada cajero a una caja se tienen en cuenta diferentes
aspectos, cada cajero empezara con un total de 10 puntos, llamados puntos de
asignacin. Se debe calcular el rango de atencin de clientes, valor mximo de
atencin posible menos cada valor, para calcular cunto difiere cada uno del
mximo. Como se muestra a continuacin, se restara un puntaje de 1 a 5
dependiendo de que tanto difieran con el mximo de atencin de clientes.
Cajeros
1
2
3
4
5
Cajeros
6
7
81
92
103
4
5
6
7
8
9
10

Personas
atendidas
por hr.
30
22
18
27
Puntos
20
de
19
asignaci
21
n
5
26
7
29
9
24
6
8
9
8
6
5
7

Rang
o
0
8
12
3
10
11
9
4
1
6

Caja
anterio
r
PAR
IMPAR
IMPAR
PAR
PAR
IMPAR
PAR
PAR
PAR
IMPAR

14

Rang
o

Valor
a
resta
r

12
11
10
9
8
6
4
3
1
0

-1
-2
-3
-4
-5

Teniendo en cuenta que la asignacin anterior proporciono que cajeros debern


operar en ese da en particular, los cajeros 3, 5 y 6 no entraran a formar parte de
la matriz. Tambin hay que tener en cuenta que el cajero 7 ser el primero en
entrar a trabajar, por lo que deber estar ubicado en la caja 1. La caja 2 deber ser
ocupada por un cajero que entre en el turno 3 ya que al terminarse el turno 1 la
caja 1 quedara libre y entre las 2:00 p.m. y las 3:00 p.m. solo estarn las personas
que entraron en el turno 3, por lo que son las nicas que podrn estar ocupando la
caja 2, estas disposiciones son importantes ya que las primeras cajas debern
estar siempre ocupadas para facilidad de los clientes. As pues, se le resto 2 a los
puntos de asignacin de los cajeros 2, 8 y 10. Y se suma uno a los puntos de
asignacin de los cajeros en las cajas del mismo lado a la que le toco el da
anterior. Por lo anterior se forma una matriz con puntos de asignacin para cada
cajero dependiendo de la caja.
Caja
Cajer
o
1
2
4
7
8
9
10

4
8
5
0
5
4
8

6
4
7
9
5
6
4

4
8
5
7
5
4
8

6
6
7
9
7
6
6

4
8
5
7
5
4
8

6
6
7
9
7
6
6

4
8
5
7
5
4
8

Usando el mdulo de redes de WinQSB se obtiene la asignacin de los cajeros a


las cajas.

15

ANALISIS Y CONCLUSIONES
La primera parte del problema muestra cual es la cantidad mnima de cajeros con
la que el supermercado puede operar y la segunda parte escoge del total de
cajeros, aquellos que maximicen el flujo de atencin de clientes, para al final
asignar una caja a cada cajero dependiendo de ciertas condiciones. Teniendo en
cuenta que el supermercado tiene en su nmina 10 empleados, y la primera parte
determina que el mnimo de operacin es de 7 cajeros, de los 3 cajeros que
quedan inoficiosos se recomienda asignar dos en labores de surtidor y el otro se
tomara el da libre, as se evita despedir empleados y reubicarlos en otras labores
tambin importantes adems de que existe la posibilidad de poder brindar un da
de descanso a cada uno.
Para la asignacin mnima de cajeros en cada turno existen dos posibilidades para
un total de 7 cajeros, en realidad no hay un argumento de peso que permita
escoger una de las dos soluciones, la solucin mostrada en WinQSB se escogi
debido a que tiene una distribucin ms equitativa de entrada de cajeros en cada
turno.
Como se pudo observar en la segunda parte del ejercicio, la asignacin de cajeros
para ese da de trabajo se puede hacer de dos formas diferentes, simplemente
cambiando los turnos, como las dos soluciones son ptimas, la escogencia de una
sobre la otra puede estar sujeta a cuestiones personales de cada cajero.

16

Por ltimo, la asignacin de cada caja a un cajero determinado es muy importante,


ya que este caso es basado en un caso real, pero se redujeron sus dimensiones
para trabajar ms fcilmente, por la experiencia de trabajo las cajas ubicadas
cerca a las entradas siempre deben estar ocupadas, adems de que existen cajas
orientadas hacia la izquierda y otras orientadas a la derecha, muchos supervisores
al momento de asignar las cajas no tienen en cuenta este aspecto y la mayora de
los cajeros se quejan constantemente de dolores en la espalda ya que siempre les
toca el mismo tipo de caja, por esta razn el modelo trata de integrar estos
aspectos y dar una asignacin de cajas ptima. Teniendo en cuenta que la
asignacin mnima de cajeros fue impar, se tendr un nmero de cajas ocupadas
impar.
En el modelo, el nico cajero que se le asigna una caja orientada hacia el mismo
lado que la caja del da anterior fue el cajero 9, como en la nmina hay 10 cajeros,
se asume que debe haber 10 cajas disponibles, por lo que se recomienda
asignarle al cajero 9 una caja con orientacin derecha.
Para finalizar, se recomienda conocer las razones por las cuales un cajero es ms
rpido que otro, pues existen problemas que son de fcil solucin, por ejemplo que
el cajero tenga problemas con el software de registro, generalmente S1ESA,
problema que se soluciona fcilmente con una capacitacin y que aumentara el
flujo de atencin de clientes, importantsimo en los das con ms afluencia de
clientes como las quincenas.

PARTE II:
FORMULACION DEL MODELO DE PROGRAMACION LINEAL
Variables:
Y 1 :Cantidad de veces que se devuelve el familiar 1
Y 2 :Cantidad de veces que se desplaza el familiar 2
Y 3 :Cantidad de veces que se desplaza el familiar 3
Y 4 :Cantidad de vecesque se desplaza el familiar 4
Y 5 :Cantidad de veces que se desplaza el familiar 5

X 12 :Cantidad de veces que se desplaza el familiar 1 con el familiar 2


17

X 13 :Cantidad de veces que se desplaza el familiar1 con el familiar 3


X 14 :Cantidad de vecesque se desplaza el familiar 1con el familiar 4
X 15 :Cantidad de veces que se desplaza el familiar 1 con el familiar 5
X 23 :Cantidad de veces que se desplaza el familiar 2 con el familiar 3
X 24 :Cantidad de vecesque se desplaza el familiar 2 con el familiar 4
X 25 :Cantidad de veces que se desplaza el familiar2 con el familiar 5
X 34 :Cantidad de vecesque se desplaza el familiar 3 con el familiar 4
X 35 :Cantidad de veces que se desplaza el familiar 3 con el familiar 5
X 45 :Cantidad de vecesque se desplaza el familiar 4 con el familiar 5

Funcin objetivo:
Mnt=Y 1 +3 Y 2 +6 Y 3 +8 Y 4 +12 Y 5 +3 X 12+ 6 X 13 +8 X 14 +12 X 15 + 6 X 23 +8 X 24 +12 X 25 +8 X 34 +12 X 35+ 12 X 45

Restricciones:
Todos los familiares deben pasar al otro lado del puente

X 12 + X 13 + X 14 + X 15Y 1=1
X 12 + X 23 + X 24 + X 25Y 2=1
X 13 + X 23 + X 34 + X 35Y 3=1
X 14 + X 24+ X 34 + X 45Y 4=1
X 15 + X 25 + X 32 + X 45Y 5=1
18

La linterna debe estar 4 veces en el lugar del origen para que todos puedan pasar
y llevarla al lugar de destino
X 12 + X 13 + X 14 + X 15+ X 23+ X 24+ X 25 + X 34 + X 35 + X 45=4
Podra omitirse la restriccin de ser menor a 30 segundos la capacidad del tiempo
de la linterna pues como es de minimizar la funcin tender a ser lo ms
reducido posible
Y 1+ 3Y 2+ 6Y 3+ 8Y 4 +12Y 5 +3 X 12+6 X 13+8 X 14+ 12 X 15 +6 X 23+8 X 24+ 12 X 25+8 X 34+12 X 35 +12 X 45 30
SOLUCION DEL MODELO POR WINQSB

19

La solucin indica que el personaje nmero 1 se devolver del lugar de destino


hacia el lugar de origen 2 veces, el personaje 2 se devolver del lugar de destino
hacia el lugar de origen 1 vez, el personaje nmero 1 y el personaje numero 2
viajaran juntos dos veces y el personaje 4 junto al personaje 5 viajaran 1 vez.
Primero 1 y 2 viajan juntos
Se devuelve 1
Luego 1 y 3 viajan juntos
Se devuelve 1
Viajan 4 y 5 juntos
Se devuelve 2
Y Finalmente viajan 1 y 2 nuevamente

20

SOLUCION DEL PROBLEMA POR SOLVER

21

Microsoft Excel 15.0 Informe de confidencialidad

SOLUCION DEL PROBLEMA POR AMPL


#
COMANDOS
EN
AMPL
CORRESPONDIENTES AL PROBLEMA DE
LA TRAVESIA DEL PUENTE
# COMANDOS DE INICIALIZACIN DE
CONDICIONES:
option show_stats 1;

printf "\n\nCantidad de veces que una pareja


se van juntos =\n\n";
display X;
printf "\nCantidad de veces que se devulve
una persona sola =\n\n";
display Y;

option solution_precision 0;
option omit_zero_rows 1;

#MODELO EN AMPL CORRESPONDIENTE


AL PROBLEMA DE LA TRAVESIA DEL
PUENTE

option omit_zero_cols 1;
option display_precision 6;

#CONJUNTOS PRINCIPALES

option display_round 1;

set LLEGADAP1; # Cantidad de persona 1


que llega indexado por i

option display_width 50;


# COMANDO DE SOLUCIN:

set LLEGADAP2; # Cantidad de persona 2


que llega indexado por j

solve;
# COMANDOS
RESULTADOS:

DE

IMPRESIN

DE

printf
"\n\n*************************************\n";
printf "RESULTADOS DEL PROBLEMA DE
LA TRAVESIA DEL PUENTE\n";
printf "*************************************\n\n";
printf "\nRESULTADO DE LA FUNCION
OBJETIVO = \t%9.1f", tiempo_llegada;

set VUELTA; # Cantidad de personas


individuales que se devuelven indexado por i
#PARMETROS
param velocidadll_es{i in LLEGADAP1, j in
LLEGADAP2} >= 0;
# Velocidad con la que pasa el familiar i junto
al familiar j
# (Segundos/personas)

22

param velocidadv_es{i in VUELTA} >= 0;

+sum{i in LLEGADAP1}(X[i,3])

# Velocidad con la que camina el familiar i

-(Y[3])=1;

# (Segundos/persona)

subject to restriccion4:

#VARIABLES DE DECISIN

sum{j in LLEGADAP2}(X[4,j])

var X{i in LLEGADAP1, j in LLEGADAP2} >=


0, integer;

+sum{i in LLEGADAP1}(X[i,4])
-(Y[4])=1;

# Cantidad de veces que se desplaza el


familiar i con el familiar j

subject to restriccion5:

# (Veces/personas)

sum{j in LLEGADAP2} (X[5,j])

var Y{i in VUELTA} >= 0, integer;

+sum{i in LLEGADAP1}(X[i,5])

# Cantidad de veces que se devuelve el


familiar i

-(Y[5])=1;

# (Veces/persona)

# las lamparas deben estar cuatro veces al


inicio del puente

#FUNCIN OBJETIVO

subject to restriccion6:

minimize tiempo_llegada:

sum{i in LLEGADAP1, j in LLEGADAP2}


(X[i,j])=4;

#(segundos)
sum{i in LLEGADAP1, j in LLEGADAP2}
(velocidadll_es[i,j]*X[i,j])
# tiempo de llegada de un par de personas

# CONJUNTO DE DATOS EN AMPL


PROBLEMA DE LA TRAVESIA DEL
PUENTE

+sum{ i in VUELTA} (velocidadv_es[i]*Y[i]);

# CONJUNTOS PRINCIPALES

# Tiempo de regreso de una persona

set VUELTA:= 1 2 3 4 5;

#RESTRICCIONES

set LLEGADAP1:= 1 2 3 4 5;

#Todas las personas deben llegar a su


destino

set LLEGADAP2:= 1 2 3 4 5;

subject to restriccion1:
sum{j in LLEGADAP2}(X[1,j])
+sum{i in LLEGADAP1}(X[i,1])
-(Y[1])=1;
subject to restriccion2:
sum{j in LLEGADAP2}(X[2,j])
+sum{i in LLEGADAP1}(X[i,2])
-(Y[2])=1;
subject to restriccion3:
sum{j in LLEGADAP2}(X[3,j])

# PARMETROS
# Velocidad con la que camina el personaje i
# (segundos/persona)
param velocidadv_es:=
11
23
36
48
5 12;
# Velocidad con la que pasa el personaje i
junto al personaje j

23

# (Segundos/personas)
param velocidadll_es: 1
1

100 3

12

100 6

12

5 :=

100 8

12

12

12

12

100 12
12

100

24

En Neos Server for Optimization se escogi por el servidor AMPL/Minto para la


solucin de programacin lineal entera mixta y al subir los tres archivos dio como
resultado final la siguiente informacin

Arroja la misma informacin final que arroj WINQSB, informacin que deca que
el familiar 2 se va junto al familiar 1 dos veces, que la persona 3 se va con la 1, y
que las personas 4 y 5 se van juntas; y finalmente que la persona 1 se devuelve
dos veces y la persona 2 se devuelve solo una vez

Cules son las caractersticas del problema, en trminos del nmero de


variables, el nmero de restricciones y el tipo de variables?
Las caractersticas del problema que hay que tener en cuenta son el hecho de que
hay 25 posibilidades para que los personajes se vayan junto desde el lugar del
origen hasta el lugar de llegada, otro aspecto importante que se tiene en cuenta es
que siempre habr un personaje que se devuelve para llevar nuevamente la

lmpara al lugar de origen por eso fue necesario crear 25 variables


diferente opciones y 5 variables

Yi

X ij

con las

con el objetivo de identificar las que se

devuelven solas al lugar de origen. Las variables son de tipo entera, inicialmente
se haba pensado en variables binarias, pero era difcil expresar la cantidad de
veces que la variable llegaba al final del puente y las que volvan al lugar de
origen. En cuanto, a las restricciones se tuvo en cuenta que cada uno de los
integrantes de la familia deba llegar al final del puente por eso fue necesario
igualar la ecuacin a 1, tambin se tuvo en cuenta que debe ser menor a 30
segundos la travesa porque sin linterna no hay posibilidad de continuar y una de
las restricciones que influye ms es que cada vez que un par de personas se
vayan juntas deben irse con la linterna por eso las variables X ij las igualamos a
4

Comentarios respecto a las ventajas observadas de AMPL respecto


Microsoft Excel y WinQSB
Las ventajas que se pueden observar al trabajar el problema por los diferentes
programas son que el WINQSB presenta una interfaz sencilla de entender y que
solo requiere de ingresar datos una vez se haya planteado el problema, adems,
que ofrece datos tales como el rango permisible y los precios sombra que
permiten saber el intervalo en el que esa funcin objetivo podr aumentar de
manera lineal, aunque ese tipo de informacin tambin lo brinda Microsoft Excel
con ayuda de Solver, ya que da un informe de respuestas, un informe de
confidencialidad y uno de lmites, la ventaja de este mtodo es la facilidad con la
que se resuelve el problema, da informacin completa y sencilla de entender, lo
nico que hace que se elija WinQSB sobre Solver es que esta ltima es incomoda
a la hora de insertar ecuaciones largas porque hay mayor cabida a errores. La
ventaja de AMPL es la generacin de hbitos que permiten la modelacin de
problemas de manera precisa y exacta, la estructura permite modelar el problema
libremente as que lo facilita para los diferentes casos, aunque la barrera ms
grande de ste, es que supone el aprendizaje de un nuevo lenguaje para su
resolucin.

PARTE III: PROBLEMA DE LA RUTA MAS CORTA Y MODELO DE


TRANSPORTE
a)

SOLUCION DEL MODELO POR EL ALGORITMO DE FLOYD:

ULTIMOS TABLEROS:

SOLUCION DEL MODELO POR WINQSB (RUTA MAS CORTA DESDE LOS
CENTROS DE DISTRIBUCION A TODOS LOS CLIENTES)

b)
S
LU
IO

O
C
N

DEL MODELO ALGORITMO MANUAL (VOGUEL):

Z actual =107.680
COSTOS REDUCIDOS:

SIENDO =675, LA NUEVA SOLUCION ES :

Z Actual =93.010

COSTOS REDUCIDOS:

SOLUCION DEL MODELO POR WINQSB (MODELO DE TRANSPORTE)

En
la

solucin mostrada por el modelo de transporte, se plante en la matriz de costos


las distancias entre los nodos, y como por cada (km*und) transportada en el
camin cuesta $65, entonces se debe multiplicar el resultado final de la funcin
objetivo por dicho valor, para saber el valor mnimo total de la distribucin de
mercanca.
Z =(9301065)=$ 6.045 .65 0

RANGO DE OPTIMALIDAD

RANGO DE FACTIBILIDAD

SOLUCION GRAFICA

ANALISIS Y CONCLUSIONES
Para resolver el problema de la programacin de la distribucin desde los 3
centros (A, D, F) a todas las ciudades demandantes incluida la A, se tienen dos
posibilidades para su resolucin, que finalmente nos llevara a la misma solucin
ptima, pero de pronto por el mtodo utilizado actualmente se logra reducir
algunas de operaciones.
En la tabla final del rango de factibilidad podemos observar que para este
problema de transporte la oferta permisible minima y demanda permisible maxima
son las mismas que establece el planteamiento del problema, porque se debe
cumplir el equilibrio de demanda oferta, incuidos los nodos de exceso.
En la matriz de costos que para este caso se convierte en una matriz de distancia,
solo estamos teniendo en cuenta la distribucin de la mercanca de forma que se
minimice la cantidad de km recorridos y se cumpla con la demanda de cada
ciudad de acuerdo a la oferta establecida, y como el problema nos plantea que el
medio de transporte a utilizar es el camin, y que tiene un costo de $65/km.und
entonces llegamos a la solucin ptima multiplicando este valor por la solucin
mostrada Zactual=93010 km.und y llegamos a que la solucin es $6045650.
Que se muestra tambin en winqsb si multiplicamos cada valor de la matriz
distancia por el valor de transportar que es $65/km.und como se muestra a
continuacin:

Solucin:

Finalmente se concluye que como en este caso la oferta supera la demanda, se


crea un nodo imaginaria o de exceso donde se programa enviar la cantidad de
mercanca sobrante de forma que no se afecte la funcin objetivo.

Das könnte Ihnen auch gefallen