INSTITUTO TECNOLÓGICO DE CD. JUÁREZ · Un problema de transporte es un caso particular de...
Transcript of INSTITUTO TECNOLÓGICO DE CD. JUÁREZ · Un problema de transporte es un caso particular de...
INSTITUTO TECNOLÓGICO DE CD. JUÁREZ DEPARTAMENTO DE INGENIERÍA INDUSTRIAL Y LOGÍSTICA /
TALLER DE INVESTIGACIÓN
MINIMIZACION DEL COSTO DE TRANSPORTE DE MERCANCIAS
ANTEPROYECTO DE INVESTIGACIÓN QUE PRESENTA:
MANUEL JUSUS REYES MENDEZ
CD. JUÁREZ, CHIH. A 11 DE MAYO DE 2020
i
RESUMEN
El presente anteproyecto es con propósitos meramente didáctico. El objetivo
es, en primer lugar, aplicar la metodología de la investigación científica y, en
segundo lugar, utilizar el software R en una aplicación de ingeniería.
La metodología de la investigación es el conjunto de procedimientos y
técnicas que se aplican de manera ordenada y sistemática en la realización de un
estudio. En ella, el investigador decide el conjunto de técnicas y métodos que
emplearán para llevar a cabo las tareas vinculadas a la investigación.
Un problema de transporte es un caso particular de programación lineal en el
cual se debe minimizar el costo del abastecimiento teniendo en cuenta los distintos
precios de envío de cada punto de oferta a cada punto de demanda.
. En este anteproyecto se fincan las bases para la realización del proyecto
teniendo en cuenta el paquete de R llamado lpSolve.
ii
ÍNDICE
Pág.
RESUMEN ..................................................................................................... i
ÍNDICE ........................................................................................................... ii
TABLA DE FIGURAS.................................................................................... iv
1 INTRODUCCIÓN .................................................................................... 1
1.1 Antecedentes ................................................................................... 1
1.2 Planteamiento del Problema ............................................................ 2
1.2.1 Preguntas de Investigación ........................................................ 2
1.2.2 Hipótesis ..................................................................................... 3
1.2.3 Objetivos .................................................................................... 3
1.3 Justificación ...................................................................................... 3
1.4 Delimitaciones .................................................................................. 3
2 MARCO TEÓRICO ................................................................................. 4
2.1 Marco Teórico Conceptual ............................................................... 4
2.2 Marco Teórico Referencial ............................................................... 5
3 MATERIALES Y Métodos ....................................................................... 8
3.1 El Software R ................................................................................... 8
3.1.1 Algunas ventajas de usar R: ....................................................... 8
3.1.2 Operadores de R ........................................................................ 9
3.1.3 Objetos en R ............................................................................ 10
3.2 Descripción del Método .................................................................. 11
iii
3.2.1 Código R para la solución con R .............................................. 12
3.2.2 Solución .................................................................................... 12
3.3 Conclusión ...................................................................................... 13
4 CRONOGRAMA DE ACTIVIDADES ..................................................... 14
4.1 Lista de Actividades........................................................................ 14
4.2 Cronograma ................................................................................... 14
REFERENCIAS .......................................................................................... 15
APÉNDICE ................................................................................................. 16
Usando lpsolve de R ............................................................................... 16
iv
TABLA DE FIGURAS
Figura 1 Diagrama de problema de transporte de LP ................................... 6
Figura 2 Tabla del Método Simplex .............................................................. 6
Figura 3 Modelo Matemático ...................................................................... 11
Figura 4 Tabla Simplex del problema ......................................................... 11
Figura 5 Solución ........................................................................................ 13
1
1 INTRODUCCIÓN
El tema del transporte es muy recurrente en las carreras de ingeniería,
principalmente en logística donde se requieren métodos cuantitativos que ayuden
en la toma de decisiones empresariales.
En este capítulo se tratarán los antecedentes y los objetivos que se persiguen
con el análisis de negocios utilizando el software estadístico R (Monroe, 2018)
tomando el transporte como tema principal.
Se estima que entre 2010 y 2020, los datos crecieron 50 veces en las
empresas más importantes económicamente hablando a nivel mundial, lo cual
indica la importancia de la tecnología y el talento para extraer el valor oculto de esta
gran cantidad de información (EMC2, 2011).
La gerencia comercial de cada empresa tiene como responsabilidad el
análisis de datos para aumentar el valor para la organización. Debe comprender los
procesos y métodos involucrados. También, debe tener la práctica y tecnologías
requeridas para explorar el rendimiento comercial para la planificación empresarial.
Esto contrasta con la inteligencia de negocios que generalmente se enfoca en usar
un conjunto consistente de métricas para medir el desempeño pasado y guiar la
planificación de negocios (Beller, 2009).
En la economía globalizada de hoy en día, se producen todos los tipos de
productos imaginables y por mucho, el servicio de entrega es insuperable; un cliente
puede simplemente dejar un pedido en un buzón o en un pedido un sitio web y tener
el producto en sus manos en cuestión de segundos. Poniendo de relieve la
importancia de la logística del transporte de entrega, así como la cadena productiva
y administrativa que respalda cada una de las múltiples actividades para cumplir
con el pedido del cliente.
1.1 Antecedentes
2
El problema del transporte o distribución, es un problema de redes especial
en programación lineal que se funda en la necesidad de llevar unidades de un punto
específico llamado fuente u origen hacia otro punto específico llamado destino. Los
principales objetivos de un modelo de transporte son la satisfacción de todos los
requerimientos establecidos por los destinos, y claro está, la minimización de los
costos relacionados con el plan determinado por las rutas escogidas.
El contexto en el que se aplica el modelo de transporte es amplio y puede
generar soluciones al área de operaciones, inventario y asignación de elementos.
El procedimiento de resolución de un modelo de transporte se puede llevar a
cabo mediante programación lineal común, sin embargo, su estructura permite la
creación de múltiples alternativas de solución tales como la estructura de asignación
o los métodos heurísticos más populares como Vogel, Esquina Noroeste o de
Costos Mínimos.
1.2.1 Preguntas de Investigación
La programación lineal puede ser utilizada para la resolución de modelos de
transporte y resulta de gran utilidad la fase de modelización. La programación puede
ser de gran importancia dependiendo de la complejidad de las restricciones
adicionales que puede presentar un problema particular.
La pregunta respecto al problema de transporte es:
• ¿Cuál es el costo mínimo del transporte de mercancías, utilizando el
software R?
• ¿Cuál es la matriz de asignación que resuelve este problema?
Respecto al uso de paquetes de R:
• ¿Cuáles son las características del paquete lpSolve?
• ¿Qué otros paquetes de R se utilizan en programación lineal?
1.2 Planteamiento del Problema
3
1.2.2 Hipótesis
La hipótesis de trabajo referente a los parámetros es: Con el uso del paquete
lpSolve es posible encontrar el costo mínimo de transporte de una manera bastante
simple.
La hipótesis o supuesto referente a las técnicas de programación lineal: La
optimización lineal o la programación lineal es un método para encontrar la mejor
solución posible (o la menos mala) que cumpla un criterio estricto.
1.2.3 Objetivos
El objetivo del proyecto es obtener el planteamiento y solución de un
problema de transporte utilizando la programación lineal, concretamente el método
simplex con ayuda del paquete lpSolve de R.
El conjunto de actores involucrados en el sector del transporte es bastante
amplio considerando que involucra almacenistas choferes, mecánicos, etc. El
escenario físico constituido por infraestructuras, nodos y centros logísticos. Todo se
plantean en base a que sea costeable el diseño de rutas de transporte de la forma
optima
Para efecto metodológico de este estudio, los datos que usaremos serán
ficticios.
Este proyecto es únicamente una propuesta para que los alumnos de taller
de investigación tomen de referencia y complementen el contenido del mismo.
1.3 Justificación
1.4 Delimitaciones
4
2 MARCO TEÓRICO
Los servicios de transporte y los servicios logísticos son una parte integral de
los sistemas logísticos.
Este capítulo tiene como objetivo proporcionar una visión general del
algoritmo simplex de programación lineal por medio del software R para dar una
solución teórica, de tal manera que al aplicarlo a un caso real se pueda tomar como
base de desarrollo. De esta manera, tendremos una comprensión básica de los
conceptos dentro de la economía del servicio de transporte y logística para
utilizarlos en las diversas formas de operación.
En un mundo que depende cada vez más de la división del trabajo y la
fragmentación de los flujos de trabajo, los bienes y mercancías deben transportarse
desde su lugar de origen a su lugar de consumo o lugar de uso. El tiempo
transcurrido entre la producción y la utilización de los bienes debe ser considerado
(Gleissner & Femerling, 2013).
. Esto también es cierto tanto para las personas como para la información
involucrada en el flujo de trabajo y que están disponible en diferentes ubicaciones y
en diferentes momentos dentro del sistema. Las tareas y actividades asociadas con
esto se incluyeron sistemáticamente por primera vez bajo el término logística a
mediados del siglo XX. Inicialmente, el término surgió en un contexto militar, ya que
los sistemas militares se caracterizan por su tendencia a la clasificación concisa.
Una infraestructura logística capaz es un requisito previo para los sistemas
logísticos modernos en los que se llevarán a cabo procesos logísticos eficientes. En
términos generales, infraestructura significa la totalidad de instalaciones sostenibles
y canales de suministro que pueden ser utilizados por hogares y empresas privadas.
2.1 Marco Teórico Conceptual
5
Esto, incluye almacenes, medios de transporte, transportadores, tecnología
e instalaciones de almacenamiento y selección, así como los sistemas de
información y comunicación correspondientes.
Problema de transporte
El problema del transporte es un tipo especial de problema de programación
lineal en el que el objetivo consiste en minimizar el costo de transporte de un
producto determinado desde varias fuentes u orígenes (por ejemplo, fábrica,
instalación de fabricación) a varios destinos (por ejemplo, almacén, tienda). Cada
fuente tiene un suministro limitado (es decir, la cantidad máxima de productos que
se pueden enviar desde ella), mientras que cada destino tiene una demanda que
satisfacer (es decir, la cantidad mínima de productos que deben enviarse). El costo
de envío desde una fuente a un destino es directamente proporcional al número de
unidades enviadas (Salazar, 2019).
Notación Básica:
• m = número de fuentes ( i = 1 ... m )
• n = número de destinos ( j = 1 ... n )
• ci, j = costo unitario de envío desde el origen i al destino j
• xi, j = cantidad enviada desde el origen i al destino j
• ai = suministro en la fuente i
• bj = demanda en el destino j
2.2 Marco Teórico Referencial
6
Figura 1 Diagrama de problema de transporte de LP
Las fuentes están representadas por filas, mientras que los destinos están
representados por columnas. En general, un problema de transporte tiene m filas y
n columnas. El problema es solucionable si hay exactamente (m + n -1) variables
básicas.
Figura 2 Tabla del Método Simplex
Tipos de problemas de transporte
Hay dos tipos diferentes de problemas de transporte basados en la
información inicial:
• Problemas de transporte equilibrado: casos en los que la oferta total
es igual a la demanda total.
7
• Problemas de transporte desequilibrado: casos en los que la oferta
total no es igual a la demanda total. Cuando la oferta es mayor que la
demanda, se introduce un destino ficticio en la ecuación para que sea
igual a la oferta (con costos de envío de $ 0); se supone que el exceso
de oferta va al inventario. Por otro lado, cuando la demanda es mayor
que la oferta, se introduce una fuente ficticia en la ecuación para que
sea igual a la demanda (en estos casos, generalmente hay un costo
de penalización asociado por no satisfacer la demanda).
8
3 MATERIALES Y MÉTODOS
A continuación, se presentará el esquema básico del método con el fin de
que este se desarrolle ampliamente en el reporte de investigación.
R es una implementación del lenguaje de programación S combinado con
una semántica inspirada en Scheme. S fue creado por John Chambers mientras
estaba en Bell Labs. Hay algunas diferencias importantes, pero gran parte del
código escrito para S se ejecuta sin modificaciones en R.
A finales de los años noventa R fue creado por Ross Ihaka y Robert
Gentleman en la Universidad de Auckland, Nueva Zelanda, y actualmente es
desarrollado por el Equipo de Desarrollo de R CRAN, del cual Chambers es
miembro.
R se nombra así por los nombres de sus dos autores. El proyecto fue
concebido en 1992, con una versión inicial lanzada en 1995 y una versión beta
estable en 2000.
R es un lenguaje y entorno para computación estadística y gráficos. Esta
libremente disponible y es mantenido por voluntarios. R es extensible; se puede
ampliar instalando paquetes
Para conseguirlo de forma gratuita se debe visitar el sitio http://www.r-
project.org/ Esta disponible para Windows, Mac, Linux. También es muy
recomendable instalar RStudio, un IDE gratuito para R. Para instalar RStudio es se
debe instalar primero R Visitar http://www.rstudio.com/
3.1.1 Algunas ventajas de usar R:
• Más de 12000 paquetes que agregan funcionalidad (alrededor de 25
vienen con R)
• Produce buenos gráficos listos para imprimir
• Código abierto (puedes ver cómo hace lo que hace)
• Fácil de instalar y no invasivo
3.1 El Software R
9
• No se necesita experiencia con R
• Familiaridad con los conceptos estadísticos básicos.
• Te sientes lo suficientemente cómodo para comenzar a usar R
• Darle un código de ejemplo que puede usar y recursos para obtener
más información.
• No serás un experto después de un solo curso.
• Debes usar R para aprender R
3.1.2 Operadores de R
A continuación, se enunciarán los operadores de R
Tabla 1 Operadores aritméticos
Operador Descripción
+ adición
- sustracción
* multiplicación
/ división
^ o ** exponenciación
x %% y módulo (x mod y) 5 %% 2 es 1
x% /% y división entera 5% /% 2 es 2
10
Tabla 2 Operadores lógicos
Operador Descripción
< menos que
<= Menos que o igual a
> mas grande que
> = mayor que o igual a
== exactamente igual a
! = no igual a
!X No x
x | y x O y
x & y X y Y
isTRUE (x) prueba si x es VERDADERO
3.1.3 Objetos en R
Los objetos en R obtienen valores por asignación.
Esto se logra mediante la flecha de asignación, <-, y no del signo igual =. Los objetos
pueden ser de diferentes tipos: Vectores, matrices, matrices, subíndices, marcos de
datos
11
Un vector es una secuencia de elementos de datos del mismo tipo básico. Los
miembros de un vector se denominan oficialmente componentes.
El paquete lpSolve de R contiene funciones específicas para resolver
problemas de transporte de programación lineal. Para el siguiente ejemplo,
consideremos el siguiente modelo matemático a resolver:
Una empresa dispone de cuatro plantas para satisfacer la demanda. Las
plantas satisfacer 15, 25, 60 y 10 unidades respectivamente. Las necesidades son
15, 15, 15 unidades respectivamente. Ver el modelo matimatico en la Figura 3.
Figura 3 Modelo Matemático
Figura 4 Tabla Simplex del problema
3.2 Descripción del Método
12
3.2.1 Código R para la solución con R
# Investigación de operaciones con R - Problema de transporte
#https://towardsdatascience.com/operations-research-in-r-
transportation-problem-1df59961b2ad
# Instalar el paquete lpSolve
install.packages("lpSolve")
library(lpSolve)
# Establecer la matriz de costos de transporte
costos <- matrix(c ( 10 , 2 , 20 , 11 ,
12 , 7 , 9 , 20 ,
4 , 14 , 16 , 18), nrow = 3 , byrow= TRUE )
# Establecer nombres de clientes y proveedores
colnames(costos) <- c("Cliente 1","Cliente 2","Cliente3"," Cliente
4")
rownames(costos) <- c("Proveedor 1","Proveedor 2", "Proveedor 3 " )
# Establecer signos de desigualdad e igualdad para los proveedores
row.signs <- rep ("<=", 3)# Repite el signo tres veces
# Establecer los coeficientes del lado derecho para los proveedores
row.rhs <- c(15 , 25 , 10)
# Establecer signos de desigualdad e igualdad para los clientes
col.signs <- rep ( ">=" , 4 )
# Establecer coeficientes del lado derecho para clientes
col.rhs <- c(5 , 15 , 15 , 15)
# Valor final (z)
lp.transport(costos,"min",row.signs,row.rhs ,col.signs , col.rhs )
##lp.transport {lpSolve} Integer Programming for the
Transportation Problem
# Variables valores finales
lp.transport(costos , "min" , row.signs , row.rhs , col.signs ,
col.rhs )$solution
3.2.2 Solución
13
Figura 5 Solución
Costo total de transporte: $ 435
La tabla anterior muestra la combinación óptima de productos del proveedor
i al cliente j al tiempo que satisface las limitaciones de la oferta y la demanda. No
existe otra combinación posible de variables que conduzca a un menor costo de
transporte.
El problema de transporte representa un tipo particular de problema de
programación lineal utilizado para asignar recursos de manera óptima; Es una
herramienta muy útil para los gerentes e ingenieros de la cadena de suministro para
optimizar los costos.
El paquete lpSolve R permite resolver problemas de transporte de LP con
solo unas pocas líneas de código. Si bien existen otros programas de optimización
gratuitos (por ejemplo, GAMS, AMPL, TORA, LINDO), haber almacenado un código
R de problema de transporte LP en su biblioteca de códigos personales podría
ahorrarle una cantidad significativa de tiempo al no tener que escribir la formulación
desde cero, sino que solo tiene que cambiar los coeficientes y signos de las matrices
3.3 Conclusión
14
4 CRONOGRAMA DE ACTIVIDADES
Este proyecto es una actividad extraordinaria del taller de investigación, con
el objetivo de ejercitar la presentación de un reporte de investigación.
El participante deberá tomar como base este documento para generar un
reporte de investigación.
Queda como opcional que:
• el alumno corra el script con los datos proporcionados y que
• alumno, libremente, acomode la información en la plantilla de reporte
de investigación, pudiendo agregar más información si juzga
pertinente.
Las actividades a desarrollar son:
• Vaciar la información de este anteproyecto en la plantilla de reporte
• Cargar a los datos del archivo R (opcional)
• Correr el script principal y obtener los resultados (opcional)
• Correr el script del anexo (opcional)
Hora 1 Hora 2 Hora 3
Vaciar la información
Cargar a los datos
Correr el script
4.1 Lista de Actividades
4.2 Cronograma
15
REFERENCIAS
Beller, M. (20 de Junio de 2009). Analisis de negocios de proxima generación.
Lightship Partners.
EMC2. (2011). Estudio del universo digital de IDC: Big Data, sombras digitales más
grandes y el mayor crecimiento en el Lejano Oriente. Big Data.
Gleissner, H., & Femerling, J. C. (2013). Logistics. New York: Springer.
Monroe, J. (05 de Agosto de 2018). BussinesAnalitycs with R. Obtenido de
Bokkdown:
https://bookdown.org/jeffreytmonroe/business_analytics_with_r7/introductio
n.html#overview
Salazar, R. (21 de Noviembre de 2019). Investigacion de operaciones con R -
Problema de transporte. Obtenido de R para ingenieros industriales:
https://towardsdatascience.com/operations-research-in-r-transportation-
problem-1df59961b2ad
Thiem, N. (2018). R generation. 14 SIGNIFICANCE.
16
APÉNDICE
#http://lpsolve.sourceforge.net/5.5/R.htm
install.packages ("lpSolve")
install.packages ("lpSolveAPI")
library(lpSolve)
library(lpSolveAPI)
? lp#Linear and Integer Programming
? lp.assign#Integer Programming for the Assignment Problem
? lp.object#LP (linear programming) object
? lp.transport#Integer Programming for the Transportation
Problem
? print.lp#Print an lp object
x <- make.lp(2, 2) #Primero creamos un modelo vacío x
y <- x #Luego asignamos x a y.
set.column (x, 1, c (1, 2))#establecemos algunas columnas en x
set.column (x, 2, c (3, 4))
y# un vistazo a y
#Aprendiendo con el ejemplo
lprec <- make.lp (0, 4)
set.objfn (lprec, c (1, 3, 6.24, 0.1))
add.constraint (lprec, c (0, 78.26, 0, 2.9), ">=" , 92.3)
add.constraint (lprec, c (0.24, 0, 11.31, 0),"<=", 14.8)
add.constraint (lprec, c (12.68, 0, 0.08, 0.9),">=", 4)
set.bounds (lprec, lower = c (28.6, 18), columns = c (1, 4))
set.bounds (lprec, upper = 48.98, columns = 4)
RowNames <- c ("THISROW", "THATROW", "LASTROW")
ColNames <- c ("COLONE", "COLTWO", "COLTHREE", "COLFOUR")
dimnames (lprec) <- list (RowNames, ColNames)
lprec # lo que hemos hecho hasta ahora
#Resolver el modelo
Usando lpsolve de R
17
solve(lprec)
get.objective(lprec)
get.variables(lprec)
get.constraints(lprec)
#asignar valores
status <- add.constraint(lprec, c(12.68,0,0.08,0.9), ">=", 4)
status