Está en la página 1de 10

Diseño de la Cadena de Suministro

Tarea 3: P-Mediana, UFLP, CFLP


Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________

Considere los siguientes problemas clásicos: P-mediana, CFLP y UFLP. Para cada uno, desarrollar
los siguientes puntos:

1. Escribir el modelo generalizado


2. Realizar la programación del modelo en GAMS o Cplex Studio
3. Determinar instancias pequeñas y medianas
4. Registrar soluciones y hallar tiempos de solución

P-mediana

a) Modelo generalizado

Supuestos:
Se conoce el número n de clientes, que coincide con el número de ubicaciones
potenciales para localizar las medianas (Es decir, la instalación que le proporciona el
servicio a cada cliente). Se requiere entonces particionar el conjunto de clientes en
exactamente p grupos. Cada grupo estará definido no sólo por el conjunto de clientes
que lo forman, sino también por la ubicación de su mediana. Las medianas a su vez
determinan el costo del grupo, ya que se conoce el costo c ij de asignar un cliente a una
posible mediana. No se especifican restricciones de capacidad para las instalaciones y,
por tanto, cada cliente puede ser asignado a la mediana más cercana. Se asume que los
costos fijos para el emplazamiento de las instalaciones son idénticos y por lo tanto no
son tomados en cuenta en la formulación del problema. El objetivo consiste en encontrar
una partición de costo mínimo del conjunto de clientes.

Conjuntos:
I :Conjunto de clientes I ={ 1,2,3 , … , n }
J :Conjunto de localizaciones potenciales para las medianas J = {1,2,3 , … , n }

Parámetros:
c ij :Costo de asignar un cliente i ∈ I a la localización potencial j∈ J
p : Número de medianas a ubicar

Variables:

y j :Variables binaria , toma valor de 1 si se ubicalamediana en la localización j∈ J ;


0 sino se ubica

x ij :Variable binaria , toma valor de 1 si laciudad i es asignada a la localización j ∈J , 0 si no se ubica


Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________
Función objetivo

n n
mín ∑ . ∑ c ij x ij (1)
i=1 j=1

Sujeto a:

∑ x ij =¿ 1 ∀ i ∈ I (2) ¿
j=1

∑ y j=¿ p(3)¿
j=1

x ij ≤ y j ∀ i ∈ I , ∀ j ∈ J (4)

x ij ∈ {0,1 } ∀ i∈ I , ∀ j ∈ J ,(5)

y j ∈ { 0,1 } ∀ j ∈ J (6)

Donde (1) representa la función objetivo que corresponde a minimizar el costo de asignación de
medianas, (2) se asegura de cada cliente sea asignado a una y solo una mediana, la restricción (3)
asegura que se abran únicamente p medianas disponibles, finalmente las restricciones (5) y (6) son
las restricciones lógicas de las variables.

b) Código en Cplex Studio

Se escribe el código utilizado en Cplex Studio para la solución exacta del problema.

//Modelo de p mediana

// Conjuntos

int n=...; // Entero que representa la cantidad clientes

range clientes= 1..n; //Conjunto i de localizaciones potenciales va desde 1


hasta n
range cedis_potenciales= 1..n; //Conjunto j de clientes a cubrir que va desde 1
hasta n

/***************/
//Parametros

int k=...; // Entero que representa la cantidad de CEDIS disponibles para ubicar
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________

float c[clientes][cedis_potenciales]=...; // Distancia de i hasta j

/***************/

//Variables de decisión

dvar boolean x[clientes][cedis_potenciales]; //Variable binaria que toma el


valor de 1 si el cliente i se asigna a la ubicación j, 0 si no
dvar boolean y[cedis_potenciales]; //Variable binaria que toma el valor de 1 si
se coloca un cedis en j, 0 de lo contrario

// Expresiones

// Definición del costo por la asignación de clientes


dexpr float Pmediana= sum(i in clientes, j in cedis_potenciales) (c[i][j]*x[i]
[j]);

//Modelo

// Función objetivo: Maximizar la accesibilidad total


minimize Pmediana;

subject to {

disponibilidad_cedis: // R1 asegura que no se ubiquen más cedis de los que se


tienen disponibles
sum(j in cedis_potenciales)y[j]==k;

forall (i in clientes)
asignacion_clientes: //R2 garantiza que cada cliente sea asignado
sum(j in cedis_potenciales)x[i][j]==1;

forall (i in clientes, j in cedis_potenciales)


cedis_abiertos: //R3 garantiza que un cliente no sea asignado a un cedis si
este no está abierto
x[i][j]<=y[j];
}
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________

c) Instancias y tiempos de solución

P Mediana
Plantas Clientes Variables Restricciones Tiempo de solución
Instancia 1 5 10 110 111 00:00:00:29
Instancia 2 20 15 420 421 00:00:00:37
Instancia 3 30 20 930 931 00:00:00:44
Instancia 4 40 25 1640 1641 00:00:00:56

Capacited Facility Location Problem (CFLP)

a) Modelo generalizado

Supuestos:
Supongamos que hay n plantas y m clientes, cuyas demandas d j son conocidas. Se conocen
además las capacidades b i de cada planta. Se considera la distribución de un único producto y
que cualquier planta pueda satisfacer a cualquier cliente, además, la demanda de cada cliente
puede ser satisfecha desde más de una planta. Se conocen los costos de transporte c ij por enviar
una unidad de producto desde cada planta a cada cliente.

Se conoce adicionalmente el costo f i de abrir una planta, por lo cual no es obligatorio utilizar
todas las plantas, pero si se abre una, se debe incurrir en un costo fijo.

El problema de localización consiste entonces en decidir qué plantas de las n posibles se abrirán,
cuanto producto se enviará de cierta planta a cierto cliente, de manera que se satisfaga la
demanda total de los clientes a un costo mínimo sin sobrepasar la capacidad de cada planta
abierta.

Conjuntos:
I :Conjunto de plantas I ={ 1,2,3 ,… ,n }
J :Conjunto de clientes J ={ 1,2,3 , … , m }

Parámetros:
c ij :Costo de unitario de enviar producto desde la planta i∈ I hasta el cliente j∈ J
b i :Capacidad de la plantai ∈ I
d j : Demanda del cliente j ∈ J
f i :Costo fijo de abrir la planta i∈ I
M= Número muy grande, se obtienen mediante el valor mayor posible de oferta.

Variables:
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________
x ij :Cantidad de producto a enviar desde la planta ihasta el cliente j
y i :Variable binaria , toma valor de 1 sila planta i se abre , 0 si no .

Función objetivo

n m n
mín ∑ . ∑ c ij x ij + ∑ f i y i (1)
i=1 j=1 i=1

Sujeto a:

∑ x ij ≥ d j ∀ j ∈ J (2)
i=1

∑ x ij ≤ bi ∀ i∈ I (3)
j=1

x ij ≤ M y i ∀ i ∈ I , ∀ j ∈ J ( 4)
i∈ I , ∀ j ∈ J ,(5 )¿
x ij ∈ Z +¿∀
0

y j ∈ { 0,1 } ∀ j ∈ J (6)

Donde (1) representa la función objetivo que corresponde a minimizar el costo de atender la
demanda de los clientes (2) asegura que la demanda de cada cliente sea satisfecha, la restricción
(3) garantiza que la capacidad de cada planta no sea excedida y (4) que no se envíe producto
desde una planta si esta no ha sido abierta. Finalmente (5) y (6) son las restricciones lógicas de
las variables.

b) Código en Cplex Studio

Se escribe el código utilizado en Cplex Studio para la solución exacta del problema.

//Modelo Localización de Plantas Capacitado

// Conjuntos

int n=...; // Origenes - Plantas


int m=...;// Destinos - Clientes

range plantas= 1..n; //Conjunto de plantas


range clientes= 1..m; //Conjunto de clientes

/***************/
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________
//Parametros

float b[plantas]=...; // Capacidad de la planta i


float d[clientes]=...; // Demanda de los clientes j
float c[plantas][clientes]=...;// Costo de ir de la planta i al cliente j
float f[plantas]=...; // Costo de abrir la planta i
float M=80000; //eme grande
/***************/

//Variables de decisión

dvar float+ x[plantas][clientes]; //Cantidad de producto que llevo desde la


planta i hasta el cliente j
dvar boolean y[plantas]; //Variable binaria que toma el valor de 1 si se coloca
una planta en i, 0 de lo contrario

// Expresiones

// Definición del costo por la asignación de clientes


dexpr float CFLP= sum(i in plantas, j in clientes) (c[i][j]*x[i][j]) + sum (i in
plantas)(f[i]*y[i]);

//Modelo

// Función objetivo: Maximizar la accesibilidad total


minimize CFLP;

subject to {

cumplimiento_demanda: // R1 asegura el cumplimiento de la demanda de cada


cliente
forall (j in clientes)
sum(i in plantas)x[i][j]>=d[j];

forall (i in plantas)
asignacion_clientes: //R2 garantiza que no se exceda la capacidad de cada
planta i
sum(j in clientes)x[i][j]<=b[i];

forall (i in plantas, j in clientes)


plantas_abiertas: //R3 garantiza que la demanda de un cliente no sea
satisfecha de una planta no abierta
x[i][j]<=M*y[i];
}
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________

c) Instancias y tiempos de solución

CFLP
Plantas Clientes Variables Restricciones Tiempo de solución
Instancia 1 5 10 55 65 00:00:02:21
Instancia 2 15 30 465 495 00:00:05:10
Instancia 3 20 40 820 860 00:00:05:60
Instancia 4 40 60 2440 2520 00:00:03:24

Uncapacited Facility Location Problem (UFLP)

a) Modelo generalizado

Supuestos:

Teniendo en cuenta las condiciones anteriores, un caso común del problema de ubicación es
aquel en el cual b i tiende a infinito para todas las plantas. En este caso, siempre es óptimo
satisfacer toda la demanda del cliente desde la planta abierta más cercana. Debido a esto, el
problema consiste en decidir qué plantas se abrirán y qué planta satisface a cada cliente a un
mínimo costo.

Conjuntos:
I :Conjunto de plantas I ={ 1,2,3 ,… ,n }
J :Conjunto de clientes J ={ 1,2,3 , … , m }

Parámetros:
c ij :Costo de de enviar producto desde la planta i∈ I hasta elcliente j ∈ J
f i :Costo fijo de abrir la planta i∈ I
M= Número muy grande.

Variables:
x ij :Variable binaria que toma el valor de 1 , si el cliente j se asignaa la planta i , 0 sino .
y i :Variable binaria , toma valor de 1 sila planta i se abre , 0 si no .

Función objetivo

n m n
mín ∑ . ∑ c ij x ij + ∑ f i y i (1)
i=1 j=1 i=1
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________

Sujeto a:

∑ x ij=1 ∀ j∈ J (2)
i=1

x ij ≤ M y i ∀ i ∈ I , ∀ j ∈ J (3)

x ij ∈ {0,1 } ∀ i∈ I , ∀ j∈ J ,(4)

y j ∈ { 0,1 } ∀ j ∈ J (5)

Donde (1) representa la función objetivo que corresponde a minimizar el costo de atender la
demanda de los clientes (2) asegura que cada cliente sea asignado a una planta (3) que no se
asigne un cliente a una planta, si esta no ha sido abierta. Finalmente (4) y (5) son las
restricciones lógicas de las variables.

b) Código en Cplex Studio

Se escribe el código utilizado en Cplex Studio para la solución exacta del problema.

//Modelo Localización de Plantas Sin Capacidad

// Conjuntos

int n=...; // Origenes - Plantas


int m=...;// Destinos - Clientes

range plantas= 1..n; //Conjunto de plantas


range clientes= 1..m; //Conjunto de clientes

/***************/
//Parametros

float c[plantas][clientes]=...;// Costo de ir de la planta i al cliente j


float f[plantas]=...; // Costo de abrir la planta i
float M=80000; //eme grande
/***************/

//Variables de decisión

dvar boolean x[plantas][clientes]; //Si surto al cliente j desde la planta i


Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________
dvar boolean y[plantas]; //Variable binaria que toma el valor de 1 si se coloca
una planta en i, 0 de lo contrario

// Expresiones

// Definición del costo por la asignación de clientes


dexpr float UFLP= sum(i in plantas, j in clientes) (c[i][j]*x[i][j]) + sum (i in
plantas)(f[i]*y[i]);

//Modelo

// Función objetivo: Maximizar la accesibilidad total


minimize UFLP;

subject to {

cumplimiento_demanda: // R1 asegura el cumplimiento de la demanda de cada


cliente
forall (j in clientes)
sum(i in plantas)x[i][j]==1;

forall (i in plantas, j in clientes)


plantas_abiertas: //R3 garantiza que la demanda de un cliente no sea
satisfecha de una planta no abierta
x[i][j]<=M*y[i];
}

c) Intancias y tiempos de solución

UFLP
Plantas Clientes Variables Restricciones Tiempo de solución
Instancia 1 5 10 55 60 00:00:00:42
Instancia 2 15 20 315 320 00:00:01:43
Instancia 3 30 40 1230 1240 00:00:01:54
Instancia 4 40 80 3240 3280 00:00:01:87

Conclusiones generales

Los problemas de ubicación de instalaciones a menudo se resuelven como problemas de


programación entera. En este contexto, los problemas de ubicación de las instalaciones a
menudo se plantean con un número de instalaciones y un número de clientes que hay que
satisfacer. En el caso de este trabajo la diferencia radica en que uno de los problemas tiene una
capacidad limitada para las plantas que van a surtir con la demanda. Esto genera que la
Diseño de la Cadena de Suministro
Tarea 3: P-Mediana, UFLP, CFLP
Profesor: Dr. Leonardo Hernández
Presentado por: Daniela Sierra Vélez - Adrián Mendoza
Fecha: 12/02/2020
_____________________________________________________________________________
complejidad de la resolución se aumente, es por esto que es mayor el número de variables y
restricciones necesarias para poder resolver el modelo, también se puede observar que el
tiempo de resolución es mucho mayor para el problema cuando se tiene restricciones de
capacidad.

También es importante destacar que la forma en la que se ingresan los datos a CPLEX estudio se
vuelve complicado a medida que crece el problema, ya que a partir de cierto número de

instalaciones es más conveniente obtener los parámetros de una base de datos externa ya que se
vuelve muy dispendioso ingresar las matrices de datos dentro del mismo software.

Para el caso del problema de la P mediana en el cual también se tiene un cierto número de
ubicaciones y clientes a los cuales hay que atender, los tiempos de resolución fueron mucho
menores al problema de localización de instalaciones, esto se puede ver en el número máximo de
variables en nuestras instancias el cual es de 1640, sin embargo se puede resolver en un tiempo
muy razonable por lo que se podría crecer de manera significativa las instancias sin tener mayor
problema.

También podría gustarte