06 Modelos Con LINGO

34
Modelos con LINGO

Transcript of 06 Modelos Con LINGO

Page 1: 06 Modelos Con LINGO

Modelos con LINGO

Page 2: 06 Modelos Con LINGO

R.Delgadillo 2

Introducción

Modelo de mezcla

Modelo de transporte

Modelo de Asignación

Modelo de planificación de la producción

Page 3: 06 Modelos Con LINGO

R.Delgadillo 3

Modelo de Mezcla

Se dispone de cierta cantidad de materiales (minerales), cada uno de estos conteniendo un conjunto de componentes (cobre, fosforo, etc.). El objetivo del problema es determinar una mezcla óptima de minerales de tamaño definido que atienda ciertas requerimientos técnicos en su composición.

Page 4: 06 Modelos Con LINGO

Modelo de mezcla

R.Delgadillo 4

,...,1 0)(

,...,1 0)( s.a

z min

Zx

Qux

px

njxtlt

njxtut

xc

i

ii

m

i

i

m

i

ijij

m

i

ijij

i

ii

mezcla la de tamaño

i material de disponible cantidad

i(%) material elen j componente de contenido

mezcla(%) laen j componente de permitido minimo contenido

mezcla(%) laen j componente de permitido maximo contenido

i material de costo

final mezcla laen i material de utiliza se que cantidad donde

p

Qu

t

tl

tu

c

x

i

ij

j

j

i

i

Page 5: 06 Modelos Con LINGO

R.Delgadillo 5

Modelo de Mezcla

La función objetivo

En LINGO, se representa por:

MIN = @SUM(minerales(i): costo(i) * qtd(i) );

z mini

ii xc

Page 6: 06 Modelos Con LINGO

Modelo de mezcla Las restricciones:

En LINGO, se representa por:

@FOR(componentes(j): @SUM(minerales(i): (t(i,j) - tu(j))*qtd(i)) <= 0);

@FOR(componentes(j): @SUM(minerales(i): (t(i,j) - tl(j))*qtd(i)) >= 0);

@SUM(minerales(i): qtd(i)) = p;

@FOR(minerales(i): @BND(0, qtd(i), Qu(i)));

Obs: @BND(0, qtd(i), Qu(i)) se lee como 0< qtd(i) <QU(i)

R.Delgadillo 6

,...,1 0)(

,...,1 0)(

ii

m

i

i

m

i

ijij

m

i

ijij

Qux

px

njxtlt

njxtut

Page 7: 06 Modelos Con LINGO

Modelo de mezclaMODEL:

TITLE: Problema de Mezcla;

[FO] MIN = @SUM(minerales(i): costo(i) * qtd(i) );

! El limite superior de especificación de c/componente se debe satisfacer ;

@FOR(componentes(j): @SUM(minerales(i): (t(i,j) - tu(j))*qtd(i)) <= 0);

! El limite inferior de especificación de c/componente se debe satisfacer;

@FOR(componentes(j): @SUM(minerales(i): (t(i,j) - tl(j))*qtd(i)) >= 0);

! La mezcla total debe ser igual a p;

@SUM(minerales(i): qtd(i)) = p;

! La cantidad máxima a tomarse de cada mineral debe ser <= Qu ;

@FOR(minerales(i): @BND(0, qtd(i), Qu(i)));

@FOR(minerales(i): @GIN(qtd(i)));

END

Obs: @GIN(qtd(i) ) , indica que la qtd es un valor entero

R.Delgadillo 7

Page 8: 06 Modelos Con LINGO

Modelo de mezcla Considere los datos para el problema

R.Delgadillo 8

Mineral

Fe (%)

Al2O3

(%)

P(%)

PPC (%)

He

(%)

Masa total

Costo ($/ton

1 52,64 0,52 0,084 4,48 45 1500 10,50

2 39,92 0,18 0,029 0,65 97 2000 12,50

3 47,19 0,50 0,050 2,52 52 1700 12,00

4 49,36 0,22 0,039 1,74 78 1450 10,00

5 43,94 0,46 0,032 2,36 41 1250 11,50

6 48,97 0,54 0,057 4,34 90 1890 11,00

7 47,46 0,20 0,047 5,07 9 1640 10,80

8 46,52 0,32 0,039 3,51 4 1124 11,20

Min 44,5 0,27 0,035 2,05 38 En la mezcla

Max 49,5 0,37 0,043 2,65 50 En la mezcla

Page 9: 06 Modelos Con LINGO

Modelo de mezclaEntonces el ingreso de estos datos en LINGO son:

SETS:

Componentes / c1 c2 c3 c4 c5 /: tl, tu;

minerales / m1 m2 m3 m4 m5 m6 / : costo,Qu,qtd;

matriz(minerales, componentes): t;

ENDSETS

DATA:

tl = 44.5 0.27 0.035 2.05 38;

tu = 49.5 0.37 0.043 2.65 50;

costo= 10.50 12.50 12 10 11.50 11;

Qu= 1500 2000 1700 1450 1250 1890;

t = 52.64 0.52 0.084 4.48 45

39.92 0.18 0.029 0.65 97

47.19 0.50 0.050 2.52 52

49.36 0.22 0.039 1.74 78

43.94 0.46 0.032 2.36 41

48.97 0.54 0.057 4.34 90;

ENDDATA

R.Delgadillo 9

Page 10: 06 Modelos Con LINGO

R.Delgadillo 10

Modelo de transporte

Dado un conjunto de centros de producción (fábricas), un conjunto de mercados consumidores (almacenes) y una red de posibles caminos de transporte (rutas) desde los centros de producción a los mercados. El objetivo del problema es determinar el cargamento que minimiza el costo total de transporte, de modo que no se sobre pase las capacidades de los centros de producción y las demandas de los mercados sean atendidas.

Page 11: 06 Modelos Con LINGO

R.Delgadillo 11

Problema de transporte

1

i

m

1

j

n

Origenes Destinos

a1

ai

am

b1

bj

bnDemandaOferta

c11 x11

cij xij

Page 12: 06 Modelos Con LINGO

Problema de transporte

R.Delgadillo 12

0

1,...,

,...,1 s .a

z (max) min

ij

m

i

jij

n

j

iij

j

ijij

i

x

njbx

miax

xc

j destino el demanda que cantidad la

iorigen el tieneque capacidad la

j destino al iorigen el desdeenviar de (lucro) costo

j destino al iorigen el desde envia se que cantidad donde

j

i

ij

ij

b

a

c

x

Page 13: 06 Modelos Con LINGO

Modelo de transporte

Suponga que los orígenes son las fabricas y los destinos los almacenes , entonces podemos reescribir la función objetivo :

En LINGO, se representa por:

MIN = @SUM(fabricas(i): @SUM (almacenes(j): costo(i,j) * qtdEnviada (i,j) ));

ó

MIN = @SUM (rutas (i,j): costo(i,j) * qtdEnviada (i,j) );

R.Delgadillo 13

* z (max) minalmacenesj

ijij

fabricasi

qtdEnviadacosto

Page 14: 06 Modelos Con LINGO

Modelo de transporte

Las restricciones:

En LINGO, se representa por:

@FOR(fabricas(i): @SUM (almacenes(j): qtdEnviada (i,j) ) <= capacidad(i));

@FOR(almacenes(j): @SUM (fabricas(i): qtdEnviada (i,j) ) = demanda(j));

Obs: toda restricción de tipo es escrito con @FOR

R.Delgadillo 14

almacenesjdemandaqtdEnviada

fabricasicapacidadqtdEnviada

j

fabricasi

ij

i

almacenesj

ij

Page 15: 06 Modelos Con LINGO

Modelo de transporteMODEL:

TITLE: Problema de Transporte;

[FO] MIN = @SUM(rutas(i,j): costo(i,j)*qtdEnviada(i,j));

! Capacidades de las fábricas no se deben de sobrepasar;

@FOR(fabricas(i): @SUM(almacenes(j): qtdEnviada(i,j)) <= capacidad(i));

! las demandas de los almacenes deben ser atendidos;

@FOR(almacenes(j): @SUM(fabricas(i): qtdEnviada(i,j)) = demanda(j));

@FOR(rutas(i,j): @GIN(qtdEnviada(i,j)));

END

Obs: @GIN(qtdEnviada(i,j) ) , indica que la qtdEnviada es un valor entero

R.Delgadillo 15

Page 16: 06 Modelos Con LINGO

Modelo de transporte

Ahora considere los siguientes datos para el problema:

R.Delgadillo 16

Fabricas

Alm. 1

Alm. 2

Alm. 3

Alm. 4

Cap.

1 8 6 10 9 35

2 9 12 13 7 50

3 14 9 16 5 40

Dem. 45 20 30 30

Page 17: 06 Modelos Con LINGO

Modelo de transporteEntonces el ingreso de estos datos en LINGO son: SETS:

fabricas / F1 F2 F3 /: capacidad;

almacenes / A1 A2 A3 A4 /: demanda;

rutas(fabricas,almacenes): costo, qtdEnviada;

ENDSETS

DATA:

capacidad = 35 50 40;

demanda = 45 20 30 30;

costo = 8 6 10 9

9 12 13 7

14 9 16 5;

ENDDATA

R.Delgadillo 17

Page 18: 06 Modelos Con LINGO

R.Delgadillo 18

Modelo de Asignación La particularidad con el problema de

transporte es que la capacidad de cada origen y destino es: oi =1, dj =1 para todo i,j

Los orígenes => son trabajadores, proyectos, máquinas, personas, agentes

Los destinos => trabajos, entidades, tareas, servicios, ciudades.

Page 19: 06 Modelos Con LINGO

R.Delgadillo 19

Modelo de Asignación Definición

Se tiene n tareas y personas

El problema consiste en asignar cada servicio a un trabajador de forma que maximice el rendimiento (eficiencia, ganancia) o minimice los costos ( tiempo empleado)

Page 20: 06 Modelos Con LINGO

R.Delgadillo 20

Modelo de Asignación

1

i

m

1

j

n

Personas Tareas

DemandaOferta

c11 x11

cij xij

Page 21: 06 Modelos Con LINGO

R.Delgadillo 21

Modelo de Asignación

contrario casoen 0

j tareala a asigna se i persona la si 1

0,1}{

1,..., 1

,...,1 1

z min

, ji

ij

m

i

ij

n

j

ij

j

ijij

i

x

x

njx

mix

xc

Page 22: 06 Modelos Con LINGO

Modelo de Asignación

Ahora considere los siguientes datos para el problema:

R.Delgadillo 22

maquinas

Tarea 1 (hrs)

Tarea 2 (hrs)

Tarea 3 (hrs)

Tarea 4

1 14 5 8 7

2 2 12 6 5

3 7 8 3 9

4 2 4 6 10

Page 23: 06 Modelos Con LINGO

Modelo de asignaciónMODEL:

TITLE: Problema de asignación;

SETS:

maquinas / 1..4/;

tareas / 1..4/;

par (maquinas, tareas):costo, asignacion;

ENDSETS

[FO] MIN = @SUM(par: costo*asignacion);

@FOR(maquinas(i): @SUM(tareas(j): asignacion(i,j)) < 1);

@FOR(tareas(j): @SUM(maquinas(i): asignacion(i,j)) >1);

DATA:

costo = 14 5 8 7

2 12 6 5

7 8 3 6

2 4 6 10;

ENDDATA

ENDR.Delgadillo 23

Page 24: 06 Modelos Con LINGO

R.Delgadillo 24

Planificación de la producción Motores LCL recibió recientemente un pedido para entregar 3

modelos diferentes de motores. Cada motor necesita de un determinado número de horas de trabajo en el sector de ensamblado y de acabado. Para atender el pedido, LCL puede tercerizar parte de su producción. La tabla a siguiente, muestra la información sobre la demanda por cada modelo de motor, el tiempo necesario para ensamblar una unidad de cada modelo, la cantidad de horas disponibles en el sector de ensamble, el tiempo necesario para dar el acabado a una unidad, la cantidad de horas disponibles en el sector de acabado, el costo de producción, el costo de tercerización de una unidad de cada modelo. Cual es la estrategia óptima que debe adoptar la empresa para atender los pedidos?

Page 25: 06 Modelos Con LINGO

Planificación de la producción Considere los datos para el problema

R.Delgadillo 25

Modelo 1 2 3 Total

Demanda 3000 unid 2500 unid 500 unid 6000 unid

Ensamble 1 h/unid 2 h/unid 0,5 h/unid 6000 h

Acabado 2,5 h/unid 1 h/unid 4 h/unid 10000 h

Costo de producción

$50 $90 $120

Tercerización $65 $92 $140

Page 26: 06 Modelos Con LINGO

Planificación de la producción

R.Delgadillo 26

Zyx

hAcabxacab

hMontxmont

idemyx

yctercxcprod

ii

i

ii

i

ii

iii

i

i

i

i

ii

,

modelos s.a

z min

motores de modelos de conjunto mod

)( acabado deseccion laen disponible Tiempo

(h) ensamblado desección laen disponible tiempo

i modelo demotor un deción tercerizade costo

i modelo demotor un de producción de costo

(h/unid) i modolo demotor del acabado de tiempo

(h/unid) i modelo demotor del ensamble de tiempo

(unid) i modelo del motores de demanda :Datos

dos tercerizai modelo del motores de cantidad

producidos i modelo del motores de cantidad :D V

elos

hhAcab

hMont

cterc

cprod

acab

mont

dem

y

x

i

i

i

i

i

i

i

Page 27: 06 Modelos Con LINGO

Planificación de la producciónMODEL:

TITLE: Problema de Planificacion de produccion;

[FO] MIN = @SUM(modelos(i): cprod(i) * x(i) )+ @SUM(modelos(i):cterc(i) * y(i));

! Total producidos y tercerizados se satisfacer (>=) la demanda ;

@FOR(modelos(i): x(i) + y(i) = dem(i));

! Horas disponibles en la seccion de ensamble;

@SUM(modelos(i): mont(i) * x(i) ) <= hMont;

! Horas disponibles en la sección de acabado ;

@SUM(modelos(i): acab(i) * x(i)) <= hAcab;

! Las variables x e y deben ser enteras;

@FOR(modelos (i): @GIN (x(i)), @GIN (y(i))) ;

END

R.Delgadillo 27

Page 28: 06 Modelos Con LINGO

Planificación de la producciónEntonces el ingreso de estos datos en LINGO son:

SETS:

modelos / m1 m2 m3 /: dem, mont, acab, cprod, cterc, x, y;

ENDSETS

DATA:

dem = 3000 2500 500;

mont = 1 2 0.5;

acab= 2.5 1 4;

cprod= 50 90 120;

cterc = 65 92 140;

hMont = 6000;

hAcab = 10000;

ENDDATA

R.Delgadillo 28

Page 29: 06 Modelos Con LINGO

R.Delgadillo 29

Planificación de la producción Una determinada empresa esta interesada en maximizar su

beneficio mensual proveniente de cuatro de sus productos, designados por I, II, III y IV. Para fabricar estos productos utiliza dos tipos de maquinas ( M1 y M2) y dos tipos de mano de obra ( MO1 y MO2) que tiene las siguientes disponibilidades.

maquina

Disponib(Maq-hora/mes)

M1 80

M2 20

manoobra

Disponib(Homen-hora/mes)

MO1 60

MO2 40

Page 30: 06 Modelos Con LINGO

R.Delgadillo 30

Planificación de la producción El sector técnico de la empresa provee los siguientes coeficientes

que especifican el total de horas de maquina y mano de obra necesarias para la producción de una unidad de cada producto

maq PdI PdII Pd III Pd IV

M1 5 4 8 9

M2 2 6 - 8

MO PdI PdII Pd III Pd IV

MO1 2 4 2 8

MO2 7 3 - 7

Page 31: 06 Modelos Con LINGO

Planificación de la producción El sector comercial provee la siguiente información

Se desea planear la producción mensual de la empresa que maximice el beneficio.

R.Delgadillo 31

productos PotencialDe ventas

BeneficioUnitario (S/mes)

I 70 10

II 60 8

III 40 9

IV 20 7

Page 32: 06 Modelos Con LINGO

Planificación de la producción

R.Delgadillo 32

Zx

demx

dispMObraxhMObra

dispMaqxhMaq

xlucro

j

jj

productosj

kjkj

productosj

ijij

i

jj

productosj

mObrak

maquinasi s.a

z max

obra de mano de tiposde conjunto

maquinas de conjunto

productos de conjunto

(h) j producto del producción la parak tipode obra de mano de tiempo

(h) j producto del producción la para i maquina la de disponible tiempo

(h/mes)k tipode obra de mano de idadDisponibil

(h/mes) i máquina la de idaddisponibil

j producto del ventalapor obtenido beneficio

j(unid) tipode productopor demanda :Datos

(unid) j producto del fabricada cantidad :D V

mObras

maquinas

productos

hMObra

hMaq

dispMObra

dispMaq

lucro

dem

x

kj

ij

k

i

j

j

i

Page 33: 06 Modelos Con LINGO

Planificación de la producciónMODEL:

TITLE: Problema de Planificacion de produccion;

[FO] MAX = @SUM(productos(j): lucro (j) * x((j));

! Disponibilidad de maquina;

@FOR(maquinas(i):@sum(produtos(j):hMaq(i,j) * x(j) ) < = dispMaq(i));

!Mano de obra ;

@FOR (mObras(k): @SUM(productos(j): hMObra(k,j) * x(j)) <=dispMObra(k));

! demanda;

@FOR (productos(j): x(j) <= demanda (j));

! Variable entera;

@FOR(productos(j): @GIN (x(j)));

END

R.Delgadillo 33

Page 34: 06 Modelos Con LINGO

Planificación de la producciónSETS:

productos/ p1 p2 p3 p4 /: demanda, lucro, x;

maquinas/m1 m2/:dispMaq;

mObras/ mo1 mo2/: dispMObra;

matriz1(maquinas, productos): hMaq;

matriz2 (mObras, productos/) hMObras;

ENDSETS

DATA:

demanda = 70 60 40 20;

lucro = 10 8 9 7;

dispMaq= 80 20;

dispMObra= 60 40;

hMaq = 5 4 8 9

2 6 0 8;

hMObras = 2 4 2 8

7 3 0 7;

ENDDATA

R.Delgadillo 34