UNIVERSIDAD AUT ´ ONOMA DE NUEVO LE ´ ON Facultad de Ingenier´ ıa Mec´ anica y El´ ectrica Divisi´ on de Estudios de Posgrado “Asignaci ´ on de Recursos de Transporte: Un Enfoque Pr ´ actico” Tesis profesional presentada por Israel Cano Robles en opci´ on al grado de Maestro en Ciencias en Ingenier´ ıa de Sistemas San Nicol´ as de los Garza, N.L. Oto˜ no de 2005
115
Embed
“Asignacion de Recursos de Transporte:´ Un Enfoque …pisis.fime.uanl.mx/ftp/pubs/thesis/msc/2005-israel_cano/tesis... · en Ingenier´ıa de Sistemas Comit´e de Tesis Dr. Mauricio
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UNIVERSIDAD AUTONOMA DE NUEVO LEON
Facultad de Ingenierıa Mecanica y Electrica
Division de Estudios de Posgrado
“Asignacion de Recursos de Transporte:
Un Enfoque Practico”
Tesis profesional presentada por
Israel Cano Robles
en opcion
al grado de Maestro en Ciencias
en Ingenierıa de Sistemas
San Nicolas de los Garza, N.L. Otono de 2005
UNIVERSIDAD AUTONOMA DE NUEVO LEON
Facultad de Ingenierıa Mecanica y Electrica
Division de Estudios de Posgrado
“Asignacion de Recursos de Transporte:
Un Enfoque Practico”
Tesis profesional presentada por
Israel Cano Robles
en opcional grado de Maestro en Ciencias
en Ingenierıa de Sistemas
Comite de Tesis
Dr. Mauricio Cabrera Rıos
Revisor
Dr. Igor S. Litvinchev
Asesor y Director
MC. Gerardo Naranjo Sotomayor
Revisor
San Nicolas de los Garza, N.L. Noviembre de 2005
Tesis profesional sustentada por
Israel Cano Robles
en opcion al grado de
Maestro en Ciencias en Ingenierıa de Sistemas.
Aceptada por el Division de Estudios de Posgrado
Dr. Igor S. LitvinchevAsesor y Director
Dr. Mauricio Cabrera RıosRevisor
MC. Gerardo Naranjo SotomayorRevisor
Dr. Guadalupe Alan CastilloRodrıguez
Subdirector Division de Estudiosde Posgrado
15 de Noviembre de 2005
”Quiero dedicar este trabajo a todos
aquellos que me apoyaron: maestros,
familia, amigos, pero especialmente a mis
companeros de generacion del PISIS:
Nancy, Leti, Fer, Fernadillo y Oswi, la
hicimos bien.”
Agradecimientos
Agradezco la oportunidad al PISIS y CONACYT por haberme permitido realizar
mis estudios de maestrıa, mediante una beca de estudios de tiempo completo.
Quiero expresar mi agradecimiento infinito a mi asesor Dr. Igor S. Litvinchev desde
el principio confio y respaldo este proyecto. Por su paciencia y entusiasmo a lo largo de
estos anos. Por la motivacion para presentar este trabajo en foros internacionales.
Sin duda alguna este no hubiera sido logrado sin la vocacion y esfuerzo de todos los
profesores del PISIS: Dra. Ada Alvarez, Dr. Roger Rıos, Dr. Oscar Chacon, Dr. Cesar
Villareal , Dr. Rodolfo Garcıa con quienes tuve el gusto de aprender en sus cursos.
A todo el personal de Sintec, especialmente a Oscar Lozano, Roberto Palacios,
Gerardo Naranjo, Jaime Ortega, por abrir las puertas a este proyecto.
A todos los que en las ultimas semanas de elaboracion de este trabajo dedicaron
A.1. Arbol de subproblemas generado en ramificacion y cotas . . . . . . . . 57
vi
Resumen
Israel Cano Robles
Candidato para el Grado de Maestro en Ciencias en Ingenierıa de Sistemas
Universidad Autonoma de Nuevo Leon
Facultad de Ingenierıa Mecanica y Electrica
Tıtulo del Estudio:
Asignacion de Recursos de Transporte: Un Enfoque Practico
Numero de paginas: 115
Objetivos y metodo de estudio:
En muchas organizaciones, la administracion de las actividades de distribucion cons-
tituye un problema de toma de decisiones. Este problema ha cobrado mas importancia
debido a la contribucion de los costos de distribucion dentro de los costos totales. La
mayorıa de las companıas requieren de vehıculos para la recoleccion y entrega dentro
de una red de suministro o demanda. La utilizacion y ruteo eficiente de esta flotilla es
el centro de la mayorıa de los problemas de ruteo.
Particularmente los gerentes de distribucion se cuestionan — cuantos vehıculos son
necesarios para satisfacer demanda a un costo mınimo?— Esta pregunta es difıcil de
contestar dada la enorme gama de combinaciones de mezcla de flotilla y rutas que
pueden existir, esto nos da la posibilidad de formular el problema en que nos enfocamos
en este trabajo.
Dentro de las numerosas variantes del problema de ruteo de vehıculos, generalmente
se comparten las siguientes caracterısticas: un conjunto de rutas debe ser disenado para
los vehıculos; su origen y fin debe ser un deposito central. Los costos de ruteo asociados
con los vehıculos son una parte de la composicion total de los costos de distribucion y
el costo de adquisicion de flotilla y mantenimiento.
En este trabajo consideramos el problema de ruteo con multiples tipos de vehıculos
simultaneamente con la determinacion de la composicion de la flotilla heterogenea,
con el objetivo de satisfacer la demanda en un conjunto de clientes con cantidades
demandadas y ventanas de tiempo conocidas, desde un deposito central o una planta
de produccion. El objetivo es minimizar la suma de los costos de adquisicion (fijos) y
los costos de ruteo (variables).
Suponemos que tenemos una cantidad disponible de cada tipo de vehıculos, al menos
igual al numero de clientes. La demanda de cada uno de los clientes es mas grande que
la capacidad de cualquier vehıculo. Tambien consideramos solo las rutas directas entre
el centro de distribucion y los clientes. De esta forma la red se puede ver del tipo
estrella. Esta configuracion de red es comun donde los puntos de demanda son centros
de distribucion y no los clientes finales.
En contraste con el clasico problema de ruteo, un cliente tiene que ser visitado
varias veces (tal vez por el mismo vehıculo) en orden de satisfacer su demanda ademas
se supone que se pueden dividir los envıos. Se consideran ventanas de tiempo suaves
para permitir que el vehıculo llegue a un cliente antes o despues de esta ventana, en
consecuencia el vehıculo incurre en costos adicionales dado las penalizaciones.
Tambien son consideradas las ventanas de tiempo duras en consecuencia se le prohıbe
al vehıculo llegar fuera de los horarios de atencion.
Para este problema se incluye la formulacion matematica y resultados de un estu-
dio de dos casos practicos presentados por Sintec y un conjunto de experimentos de
problemas generados aleatoriamente.
FIRMA DEL ASESOR:
Dr. Igor S. Litvinchev
Capıtulo 1
Introduccion
“La curiosidad humana y el deseo por saber como se comporta el mundo que nos
rodea establece un area fertil para la aplicacion de la investigacion de operaciones.”
Randolph W. Hall
1.1. Ciencia de Transporte.
En la antiguedad el transporte era realizado por el hombre aprovechando medios
como los animales de carga, y medios naturales como el viento, las corrientes de agua,
fuerza de gravedad y algunos vehıculos sencillos. De igual manera se construıan caminos
y estaciones de carga y descarga, el control e inspeccion solo concernıa a los via-
jantes. Hoy en dıa el movimiento de los vehıculos se debe a motores, la construccion de
caminos y terminales. Existen nuevas tecnologıas como Internet, las redes inalambri-
cas,coberturas satelitales que nos hacen pensar en las marcadas diferencias existentes
entre las formas de transporte actual y sus antecesoras.
Tambien encontramos similitudes, existen vehıculos, caminos, terminales y controles
que son ajustados para realizar ciertas funciones basicas, de los modos de transporte
actualmente conocidos todos tienen capacidad de desplazarse, acelerar, frenar y cuentan
1
CAPITULO 1. INTRODUCCION 2
con mecanismos para almacenar combustible o energıa para funcionar, diferenciar entre
objetos y personas en las terminales, asignar y contener cargas de manera eficiente para
ir de un lugar a otro.
Al paso de los anos y de esta evolucion de modos de transporte, el hombre ha
reconocido en la ciencia del transporte que cualquier modo de transporte contiene los
mismos elementos: —vehıculos, un camino por donde transitar y terminales— operando
bajo cierta polıtica de control.
La clara definicion de estos elementos es util para estar de acuerdo en que sea
cual sea el modo de transporte estos elementos basicos conservan sus propiedades. Los
vehıculos comprenden a todos los recursos moviles en las que pueden viajar personas o
embarques de productos, proveen el espacio para hacer del viaje seguro y confortable.
Los caminos son recursos ya establecidos como las carreteras y autopistas estos definen
el camino fısico que utilizaran los vehıculos en su movimiento de un lugar a otro. Las
terminales son los establecimientos estacionarios con la capacidad de organizar los viajes
de personas objetos de acuerdo a su salida y entrada en las rutas de transportacion. Por
ultimo la polıtica de control se refiere a las reglas que rigen el movimiento y trayectorias
de todo el sistema de transporte.
La ciencia de transporte en parte describe el comportamiento del hombre y de los
sistemas cuando toman decisiones de transporte y por otra parte prescribe la forma en
que se debe tomar esa decision optimizando como objetivo el transporte.
Como consecuencia del andar diario las personas tienen un amplia gama de elec-
ciones que son tomadas de acuerdo a la formacion de habitos, circunstancias y otras
ocasiones por deliberacion. Existen cuatro ramas que clasifican la toma de decisiones
auxiliada por la ciencia de transporte
La manera en que nos comportamos al conducir un vehıculo es decir las decisiones
CAPITULO 1. INTRODUCCION 3
rutinarias como la velocidad, la ruta y modo que seguimos para ir al lugar de trabajo,
la escuela son decisiones de corto plazo mientras que la forma en que elegimos donde
habitar, trabajar y como se forman las ciudades en zonas comerciales habitacionales e
industriales definen de manera colectiva una rama de la ciencia del transporte.
Cuando queremos explicar fenomenos como la manera en que fluyen los vehıculos
cuando pasan a traves de un camino y se encuentran con intersecciones, divisiones y
combinaciones de caminos. Tambien cuando vemos el aumento de la tasa de flujo sobre
un camino y sus relaciones con la disminucion de velocidad, el aumento de la densidad
y como ocurren las primera filas o acumulamientos de vehıculos en las calle, se recurre
a otra rama de la ciencia de transporte ampliamente estudiada y conocida como flujo
en trafico y redes.
Determinar el camino que seguira una unidad de un lugar a otro es la rama de
la ciencia del transporte conocida como ruteo, dentro del ruteo existen tambien tres
tareas basicas: asignacion (elegir el recurso que va a realizar la actividad de transporte),
secuenciamiento (determinar el orden en que se realizaran las actividades del transporte)
y rumbo o itinerario (el camino a seguir de una asignacion a otra).
El ruteo no es exclusivo de vehıculos del tipo automovil puede ser utilizado para
camiones de carga aviones, contenedores de trenes, barcos y las tripulaciones que hacen
que estos recursos funcionen. Administrar precisamente al personal que maneja las
unidades cumpliendo las cargas laborales es un reto para esta rama de investigacion.
Disenar las redes—caminos que seran utilizados para desplazar los productos desde
su lugar de origen hasta su destino— es la ultima rama de la ciencia que mencionare-
mos en este trabajo, el diseno consiste en la localizacion de los almacenes, centros
productivos, depositos de vehıculos, estaciones y en el trazo de los caminos que seran
utilizados y que uniran las instalaciones fısicas unas con otras. Ejemplos de como deben
CAPITULO 1. INTRODUCCION 4
ser disenadas esta rutas las encontramos a diario los rıos, el sistema circulatorio o hasta
en la forma de los arboles, sin embargo la construccion de redes por el hombre buscando
ser mas sofisticada a creado otras estructuras como las de mallas cuadriculadas, redes
de anillos centricos y las de “hub and spoke ”. Hacer estos disenos de la manera mas
eficiente, es decir que siempre generen un beneficio en tiempo o economico es una gran
oportunidad para mostrar interes en la investigacion de estos temas.
1.2. Transporte como actividad economica
Como se describio anteriormente el transporte puede ser considerado como una
materia de estudio. Sin embargo la manera mas comun en que se conoce al transporte es
como una actividad economica. Sabemos que sin esta actividad serıa imposible disponer
de cualquier tipo de producto en el lugar que quisieramos. Esta generalizacion nos hace
pensar en otro concepto conocido como “logıstica ”.
La transportacion y logıstica con frecuencia se pueden confundir como el mismo
concepto, aunado a esto cada quien lo nombra como mejor se adapte a su situacion
y encontramos que este termino es conocido tambien como: Distribucion, Logıstica
industrial, Sistemas de respuesta rapida, Administracion de cadena de suministro. En
un intento por estandarizar la idea el Consejo de Administracion Logıstica (The Council
of Logistics Management [CLM]) a proporcionado esta definicion [3] para logıstica.
El proceso de planeacion, implementacion y control efectivo y eficiente, del flujoy almacenamiento de bienes, servicios e informacion, desde un punto de origenhasta un punto de consumo, con el proposito de cumplir con requerimientos deun cliente.
Basados en esta definicion ubicamos al transporte como parte de las actividades de
la logıstica, considerandolo con la capacidad de poder mover materia prima y bienes
producidos desde un punto de origen a uno de destino donde se consumiran. Tambien
CAPITULO 1. INTRODUCCION 5
involucra la seleccion del modo (ej. avion, tren, barco, camion o tuberıas), ruteo de
los embarques, asegurar el cumplimiento de las reglas del lugar donde se originan los
embarques y la seleccion de una companıa de transporte.
La importancia de esta se basa principalmente y en la mayorıa de las casos por su
participacion en los costos totales de las actividades logısticas.
Un sistema de transportacion eficiente es el sello distintivo de una sociedad in-
dustrializada aun y cuando su influencia como sector economico es tan sutil que muy
pocas veces vemos su impacto en nuestra vida diaria, solamente en EU los gastos de
transportacion en 2002 fueron de cerca de 455 billones de dolares.
El impacto de la transportacion no solo contempla el sentido de participacion de los
costos totales de un bien, tambien es importante la participacion que tiene para lograr
una satisfaccion del cliente. La transportacion es considerada como una actividad de
valor agregado, es decir si el producto puede ser movido desde un lugar a otro se conoce
como valor de lugar, ademas para que el producto este disponible en el momento la
velocidad y consistencia con que se mueve de un lugar a otro determina el valor de
tiempo.
Si el producto no se encuentra en el momento preciso en el lugar que se necesita
puede traer repercusiones costosas como perdida de ventas, insatisfaccion del cliente,
disminucion de la produccion cuando hablamos de sistemas de manufactura. Son cono-
cidos los casos en la industria automotriz de las costosas multas por detencion de lıneas
de produccion como consecuencia de un incumplimiento de estos dos valores Tiempo y
Lugar.
Companıas como FedEx, CSX, UPS,Ryder Integrated Logistics basan su exito en
la capacidad de proveer un consistente tiempo en transito y un gran valor de lugar y
tiempo a los productos de sus clientes.
CAPITULO 1. INTRODUCCION 6
En general los factores que influyen en el costo y precio del transporte se puede
agrupar en dos a continuacion los podemos ver en la tabla (1.1).
Factores relacionados con elproducto
Factores relacionados con elmercado
Densidad Localizacion de mercadosEstibamiento Legislacion actual para los trans-
portistasManejo Balance del trafico que entra y sale
del mercadoResponsabilidad por valor del pro-ducto
Temporizacion de los productos
Transporte domestico o interna-cional
Tabla 1.1: Factores que influyen en costo del transporte
De todos los modos de transporte disponibles—autotransporte, avion, barco, tren,
ductos— que se pueden utilizar para transportar productos el modo de autotransporte
tambien conocido como transporte por camion o trailer es uno de los mas conocidos y
tambien motivo de este trabajo. Este sector se encuentra segmentado en nuestro paıs
como se muestra en la grafica 1.1 .
El transporte de carga es el principal modo de transporte para muchos de los produc-
tos manufacturados como artıculos deportivos, juguetes, artıculos electronicos, enseres
domesticos, ropa, medicamentos, equipo de oficina y en un 75% es la eleccion para
transportar productos agrıcolas, como carne, vegetales, productos de elaboracion di-
aria, pan, cigarros y bebidas, de esta forma se transportan todo tipo de productos de
manera rapida y confiable con una mınima perdida o dano del producto durante su
recorrido.
Al transporte que se realiza sin cruzar fronteras internacionales se le conoce como
domestico, aunque preferentemente se realiza por trailer el movimiento de estos pro-
ductos, este compite por los pequenos embarques con el aereo, y contra el tren en los
CAPITULO 1. INTRODUCCION 7
Figura 1.1: Distribucion del transporte de Carga en Mexico
grandes embarques. Lo que ha marcado la diferencia de eleccion de este sobre las demas
es lo eficiente que se vuelven las operaciones de carga y entrega de mercancıas en las
terminales camioneras en comparacion con las terminales aereas para cualquier tamano
del cargamento si la distancia recorrida es menor de 500 millas.
Con respecto al tren cualquier embarque que exceda las 10000 libras sera predomi-
nante su eleccion sobre la transportacion por camion. Una de las ventajas de esta forma
de transporte sobre sus competidoras es la flexibilidad que le proporcionan los cerca de
4 millones de millas infraestructura en caminos que permiten llegar de un punto a otro
en casi cualquier combinacion de origen y destino. Y la versatilidad que le da el poder
mover productos de cualquier tamano y peso a cualquier distancia. Por su flexibilidad
y versatilidad se ha convertido en la forma de transporte dominante en America y otras
partes del mundo ademas de que a podido ser involucrada en los programas de justo
a tiempo (JIT)1 con resultados en menores y confiables tiempos de transito. La ten-
dencia a utilizar esta forma de transporte va en aumento dada su compatibilidad con
1 Just in Time, metodologıa japonesa para un desempeno de inventarios ‘cero’
CAPITULO 1. INTRODUCCION 8
las necesidades de la industria por mover sus productos, mientras los proveedores de
estos servicios se esmeren en proveer un rapido y eficiente servicio a precios competi-
tivos respecto a sus competidores en aire y tren, la industria del transporte por trailer
prosperara.
Una vez que se ha seleccionado el modo de transporte una de las tareas de mayor
importancia y repercusion en los costos es la del ruteo y secuenciamiento. Consideran-
do las grandes inversiones en equipo y localizacion de instalaciones que conllevan los
gastos operativos, los transportistas han reconocido al importancia de un buen ruteo y
secuenciamiento para alcanzar los niveles de ganancias y servicio al cliente deseados.
En los ultimos anos estas areas han aumentado su importancia debido a factores de
competencia, legislacion y factores economicos, ejemplos de estos factores son los trata-
dos de libre comercio establecidos entre las naciones, costo de combustible, situacion
laboral y capacidad e innovaciones en los equipos.
Los transportistas se han dado cuenta que utilizando esta rama de la ciencia del
transporte se puede alcanzar beneficios considerables optimizando las actividades de
ruteo y secuenciamiento, aunque aquı no ahondaremos en que clase de tecnicas se
utilizan es importante mencionar que los grandes grupos industriales del mundo ya han
dado la oportunidad para probar el valor de estas propuestas y han visto su aportacion
en la disminucion de los costos de transporte.
Algunas de las estrategias que se siguen son: preasignacion de embarques para una
area especıfica de mercado al mismo tiempo que se disminuyen la frecuencia de los
envıos o visitas provocando un ahorro para el transportista.
La reduccion de la frecuencia de la recoleccion y entrega resulta en una disminucion
del nivel de transporte necesario para entregar la misma cantidad de producto, ası el
costo de transporte se reduce y la productividad aumenta. Otros ejemplos incluyen el
CAPITULO 1. INTRODUCCION 9
fijar las rutas en lugar de tener rutas variables para algunos embarques y modificacion
a las horas de recepcion de producto por parte del cliente, si el cliente puede aceptar
entregas fuera de los horarios crıticos, el transportista tendra una ventana de tiempo
mas grande que le permitira una mejor administracion del uso de los vehıculos.
En general los beneficios para los transportistas que mejoran su ruteo y secuenci-
amiento incluyen mayor utilizacion de los vehıculos, niveles mayores de satisfaccion al
cliente, disminucion de los costos de transporte, reduccion de la inversion en equipo y
una mejor administracion de la toma de decisiones. Como ejemplo de la aportacion de
una mejor asignacion y ruteo la empresa Baskin-Robbins una compania fabricante de
helados con 2500 tiendas en EU al utilizar una herramienta computacional para deter-
minar rutas y secuencias de su flotilla de transporte obtuvo ahorros de un 10% de las
millas recorridas totales de la flotilla, lo que se traduce en un beneficio economico de
$180,000.[34]
1.3. Objetivo de tesis
Teniendo en cuenta que todo aquel productor de bienes de consumo necesita del
transporte para hacer llegar su producto a la mayor parte del mercado y que este es re-
alizado por tractocamiones propios o rentados bajo un esquema 3PL, en una infraestruc-
tura carretera que conecta a las plantas de produccion con los centros de distribucion.
El problema de que recurso(tractocamion), el camino que seguira para cumplir con una
demanda establecida y los horarios en que debe estar disponible para cumplir con un
horario de atencion para descarga y carga.
El objetivo de este trabajo de investigacion y tesis es construir un modelo matematico
adecuado a este problema que de solucion al problema de asignacion de recursos de
transporte.
CAPITULO 1. INTRODUCCION 10
Como objetivos de este modelo tenemos:
Definir la cantidad optima de recursos de transporte que minimice el costo total
de transporte (fijo + variable).
Cumpliendo con las siguientes restricciones.
Volumen a mover.
Ventanas de carga en los orıgenes.
Ventanas de descarga en los orıgenes
La manera mas clara de ver el objetivo es poder responder a las preguntas ¿Que vehıcu-
lo? ¿A donde debe de ir? ¿A que hora esta disponible?
Este modelo ademas debera de poder ser implementado y probado con datos reales.
El exito de los resultados obtenidos podra servir como base para futuros proyectos
en colaboracion con la industria.
1.4. Organizacion de la tesis
La estructura de este trabajo esta dada de la siguiente forma: en el Capıtulo 2 pre-
sentamos un amplio recorrido por la historia de los trabajos que han buscado trabajar
variantes de este problema. El Capıtulo 3 comprende la exposicion del problema, la
formulacion y explicacion detallada del modelo matematico MIP que sera resuelto me-
diante las tecnicas de la programacion entera mixta. El Capıtulo 4 comprende el estudio
de dos casos practicos presentados por Sintec. Enseguida se presentan los experimentos
hechos con problemas aleatoriamente generados en el Capıtulo 5 y en el Capıtulo 6 se
presentan las conclusiones y las recomendaciones para los trabajos futuros.
Capıtulo 2
El problema y sus antecedentes
Desde la propuesta de Dantzig para resolver el problema de asignacion de vehıculos
conocido por sus siglas en ingles como (VRP), muchos investigadores han tratado este
problema. En aquel momento Dantzing y Ramser[7] presentaban la primer formulacion
matematica para un problema del mundo real, este consistıa en la la entrega de gasolina
a las estaciones de servicio. Unos anos mas tarde Clarke y Wright proponen una efectiva
heurıstica “greedy” que mejora la solucion de Dantzing-Ramser. A mas de 40 anos de la
publicacion de estos artıculos, se han propuesto muchos modelos, tecnicas de solucion
exactas, aproximaciones por heurısticas para resolver el VRP y sus variantes. En este
capıtulo abordaremos algunos de estos modelos al igual que algunas de las metodologıas
exactas y heurısticas utilizadas en los ultimos anos.
2.1. Introduccion a los problemas de ruteo.
La busqueda de una mejor manera de administrar las cadenas de suministro ha
permitido el incremento en el uso de paquetes de optimizacion basados en investigacion
de operaciones y modelacion matematica. El uso de estas tecnicas muestra ahorros
significativos entre el 5% al 20% de los costos totales de transporte. Estos costos por
11
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 12
su participacion global adquieren mas importancia dentro de los costo total de cualquier
producto.
Los problemas conocidos como Problema de Ruteo de Vehıculo(VRP) o Problema
de Asignacion de Vehıculos (VSP) se pueden describir de una manera sencilla como
sigue:
Existen plantas de produccion, almacenes o depositos(origen) en donde se encuentra
el producto terminado, es necesario hacer llegar a los clientes(destino) una cantidad de
producto (demanda), los clientes se encuentran localizados a cierta distancia de los
puntos de origen. Para llegar a ellos el producto se mueve por vehıculos a traves de
caminos trazados(red de distribucion)
Habitualmente los VRP’s son una perfecta descripcion de los sistemas de distribu-
cion de companıas como Bimbo, Coca-Cola, Pepsi, Sabritas, etc. en general situaciones
de recoleccion y entrega de productos o servicios, ejemplos de estas son la recoleccion
de basura, transporte escolar o de personal, y en algunos casos los sistemas tipo entrega
a domicilio (taxis, pizzeria, mensajeria) pueden ser modelados de la misma forma.
De acuerdo a las caracterısticas en los elementos basicos del problema como: red de
caminos, clientes, depositos, vehıculos y conductores se pueden diferenciar entre varias
definiciones del problema
1. Red de caminos. Las redes de distribucion son generalmente representadas por
grafos en donde las aristas representan secciones de carretera o calles y los vertices
las intersecciones de los arcos en donde se encuentran los depositos y clientes. Estos
pueden ser dirigıdos o no dirigıdos dependiendo de la configuracion real de las calles
y carreteras, es decir si son de un solo sentido o en ambas direcciones. Ademas a
cada arco se le asocia un costo que representa la distancia y un tiempo de viaje el
cual puede depender del vehıculo y el perıodo durante el cual el arco es recorrido.
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 13
2. Los clientes pueden asumir las siguientes caracterısticas:
Son localizados en los vertices del grafo,
Se define una cantidad de productos (demanda) posiblemente de diferentes
tipos para ser entregados o recolectados
Perıodos de tiempo durante los cuales los clientes pueden ser atendidos
Tiempos requeridos para recibir y recolectar los productos (carga y descarga)
y pueden depender del tipo de vehıculo
Un subconjunto de vehıculos a utilizar debido a restricciones de acceso o re-
querimientos para su carga y descarga
Para los casos en que la demanda no puede ser totalmente satisfecha para cada
cliente, la cantidad a entregar o recolectar es menor y un grupo de clientes que-
da sin ser atendido, se considera agregar penalizaciones o prioridades de servicio
asignadas
3. Entre las consideraciones de los depositos podemos encontrar tipo y numero de
vehıculos asignados, cantidad de productos para los que tiene capacidad. En al-
gunos casos los clientes son asignados a priori a cada deposito, y los vehıculos
tienen que regresar al deposito al terminar el dıa.
4. Para efectuar la transportacion de los productos se usan flotillas de vehıculos que
pueden estar compuestas de manera homogenea o heterogenea de acuerdo a los
requerimientos de los clientes las caracterısticas que presentan son:
Asignacion a un deposito central y la posibilidad de terminar su servicio en
un deposito diferente
Capacidad del vehıculo expresada como el maximo de peso, volumen, numero
de pallets que un vehıculo puede cargar.
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 14
Posible division del vehıculo en compartimientos para transportar diferentes
tipos de productos, diferenciados por capacidad
Dispositivos para su carga y descarga
Existen costos asociados con el uso de los vehıculos ($/km , $/hr )
5. Hay restricciones de operacion referentes a los vehıculos como las derivadas por
la contratacion de conductores de los vehıculos y a las rutas, maxima carga del
vehıculo, clientes de solo entrega, solo recoleccion o ambas.
2.2. Trabajos sobre ruteo de vehıculos con ventanas
de tiempo
El problema de ruteo de vehıculos con ventanas de tiempo (VRPTW) es una exten-
sion del problema de ruteo de vehıculos con capacidad (CVRP) en el que se considera
lo siguiente; los vehıculos tienen una capacidad limitada y cada cliente i tiene incor-
porado un intervalo de tiempo [ai , bi] al que llamaremos ventana de tiempo . Tiempo
de viaje dado para cada punto (i, j) mas un tiempo de servicio para cada cliente si. El
tiempo en que un cliente comienza a ser atendido esta asociado a su ventana de tiempo
y podra estar en espera en la ubicacion del cliente en un tiempo igual a si, en caso de
que el vehıculo llegue antes del tiempo ai se le esta permitido esperar hasta que inicie
el servicio.
El VRPTW consiste en encontrar una coleccion exacta de de P circuitos simples un
mınimo costo que cumpla con lo siguiente:
Cada circuito visita el deposito.
Cada cliente se encuentra en un solo circuito.
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 15
La suma de las demandas de los clientes localizados en un circuito no puede sobre
pasar la capacidad del vehıculo.
Para cada cliente i el servicio inicia con la ventana de tiempo [ai, bi] y el vehıculo
se detiene si instantes de tiempo.
Dada la importancia de este problema en la vida cotidiana, se han publicado nu-
merosos trabajos, en los que consta la diversidad de planteamientos que se puede pre-
sentar.
A continuacion se exponen algunos de ellos publicados y desarrollados durante los
ultimos 20 anos
Entre los trabajos que se pueden encontrar, algunos investigadores han desarrollado
compendios especiales del problema entre estos se encuentra el de Bodin et al. [19] con
un resumen de ruteo y secuenciamiento de vehıculos. Solomon y Desrosiers en[24] son
mas especıficos en problemas de ruteo con restricciones de temporalidad algunos anos
mas tarde Desrosieres et al. actualizo este estudio y lo publica en [12]. En cuanto a los
metodos de solucion heurısticos y exactos de los problemas VRPTW puede encontrarse
una compilacion en [26].
Los trabajos iniciales que consideraban restricciones de tiempo en problemas de
ruteo, se originan en el estudio del problema del agente viajero con ventanas de tiempo
(TSPTW) y el problema de “dial-a-ride ”servicio a domicilio.
Christofides et al. [31] definieron una tecnica que combina la solucion por medio
de ramificacion y cotas y programacion dinamica para relajar el espacio de solucion de
TSPTW. En el marco de estos trabajos Baker [4] publico un modelo matematico que
considera solo variables continuas, esta formulacion ademas de incluir una funcion de
valor absoluto lo que excluye el uso de tecnicas de solucion de programacion lineal.
Desrosiers et al. [13] modelaron este problema considerandolo el problema de mıni-
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 16
mo costo de flujo en redes con restricciones de tiempo, con este se pudo resolver exi-
tosamente algunos problemas de secuenciamiento de vehıculos escolares con hasta 233
nodos.
Psaraftis [9] estudio el problema de un vehıculo con visita a varios puntos bajo
demanda, donde varios puntos se refiere a diferentes puntos de recoleccion y entrega de
bienes, nos referimos al concepto de bajo demanda a que la utilizacion del vehıculo se
presenta solo cuando alguien solicita el servicio ej. (repartidor de comida, servicio de
taxis). En esta investigacion uso programacion dinamica para minimizar la medida de
insatisfaccion de un cliente por el tiempo total que paso en el vehıculo. Problemas con
hasta 9 clientes se resolvieron optimamente.
En [14] Desrosiers et al. presentan una formulacion de programacion dinamica hacia
adelante para el mismo problema tratado por Psaraftis, estos resuelven problemas de
reales con hasta 40 clientes, y concluyen que su metodo es lo suficientemente robusto
para resolver problemas mas grandes pero debido a que en los problemas de la vida real
las ventanas de tiempo son demasiado ajustadas el espacio de solucion se ve fuertemente
reducido. Siguiendo la misma lınea de investigacion, Sexton y Bodin [36] trabajaron
el mismo problema con restricciones en los tiempos de entrega y desarrollaron una
heurıstica basada en descomposicion de Benders para encontrar rutas factibles.
Los metodos de solucion exacta usualmente consisten en procedimientos de enu-
meracion exhaustiva como los conocidos como: ramificacion y cotas o programacion
dinamica. Estas tecnicas pueden resultar con tiempos de computo muy largos dada la
dificultad del problema [32], para lograr una reduccion de los tiempos se utilizan tecni-
cas como la relajacion lagrangeana, generacion de columnas o planos cortantes como
ramificacion y cortes.
Kolen et al. [1] estudiaron el VRPTW considerando solo un deposito y un solo tipo de
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 17
servicio (entrega o recoleccion) exclusivamente. Utilizando una tecnica de ramificacion
y cota para minimizar el total de la distancia de la ruta pudieron resolver problemas con
hasta 15 clientes con diferentes tiempos en las ventanas de tiempo. A pesar del tamano
de los problemas, se puede senalar el tamano y la frecuencia de la ventana como el
factor mas importante para determinar la dificultad del problema. Ni la capacidad del
vehıculo ni fijar el numero de vehıculos tienen un impacto cercano al de las ventanas
de tiempo.
Desrochers et al. en su trabajo [27] usa la tecnica de generacion de columnas para
resolver algunos problemas con 100 nodos hasta optimalidad con la funcion objetivo de
minimizar la distancia total recorrida. La idea para lograr esto consiste en formular el
VRPTW como un problema ”Set partitioning.en el que se consideran todas las rutas
factibles implıcitamente. Ya que este numero de rutas crece exponencialmente con el
numero de clientes solo una fraccion de las rutas es incluida en el modelo. En cada
iteracion del procedimiento se realiza un chequeo para determinar la existencia de una
ruta aun no incluida que pueda reducir el costo, esto se logra por la solucion relajada
de un subproblema de ruta mas corta con restricciones de tiempo y capacidad. Si
la ruta existe su columna correspondiente es agregada al modelo y el procedimiento se
repite hasta que el conjunto completo de rutas es encontrado. Para encontrar soluciones
enteras con este algoritmo se trabaja con un esquema ramificacion y cotas.
Kohl[30] usa la tecnicas de relajacion lagrangeana para descartar la restriccion de
atender a todos los clientes. Como resultado de la relajacion se transforma en un sub-
problema de ruta mas corta con restricciones de tiempo y capacidad el cuales un prob-
lema mas facil de resolver, de cualquier forma encontrar los mejores multiplicadores de
Lagrange requiere un considerable esfuerzo computacional. Usando esta tecnica se han
resuelto problemas con hasta 100 clientes.
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 18
La combinacion de planos cortantes con una busqueda exhaustiva es conocida co-
mo ramificacion y corte. En esta aproximacion el problema inicial en formulado como
un problema entero mixto lineal. Ası las restricciones de integralidad se relajan y el
problema lineal resultante es optimizado, si la solucion es entera entonces el algoritmo
termina con una solucion optima del problema original y si la solucion es fraccional se
agregan desigualdades o cortes validos al modelo y el procedimiento se repite. Cuando
no se pueden identificar mas cortes por el procedimiento de separacion o el efecto de
cualquier desigualdad es marginal y la ramificacion ocurre.
Padberg y Rinaldi en su trabajo[28] primero utilizaron el metodo de planos cortantes
para resolver instancias grandes del problema del agente viajero (TSP). Una tecnica
similar fue usada por Hoffman y Padberg [18] para resolver un problema de secuenci-
amiento de tripulacion de aerolıneas, otro trabajo es el de Aranque [10] desarrollo un
algoritmo ramificacion y corte para un problema de ruteo de vehıculos con clientes
identicos, Augerat [33] presenta nuevas desigualdades para el problema de capacidad
simetrica de ruteo de vehıculos.
La solucion por metodos exactos de este problema solo es efectiva en tiempo en
problemas de tamano relativamente chico, esto hace util el uso de tecnicas heurısticas.
Una tecnica heurıstica es capaz de encontrar buenas soluciones en un tiempo menor
esto hace que sean tecnicas atractivas de solucion para los problemas de gran tamano
que se encuentran en la industria. A continuacion se citaran algunos trabajos que hacen
uso de las tecnicas heurısticas para la solucion de estos problemas.
Nygard et al. [17] estudiaron una variante del VRPTW considerando unicamente
ventanas de tiempo de un lado es decir de cierre. Inicialmente los clientes se agrupan en
“clusters” resolviendo el problema general de asignacion, el siguiente paso es calcular
los subtours optimos para cada grupo o cluster y finalmente un procedimiento de cambio
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 19
de rama para asegurar que las restricciones temporales son satisfechas. Solomon [22]
propuso una heurıstica de insercion secuencial para el problema de minimizacion del
tamano de la flota con un solo tipo de servicio del VRPTW. Las rutas son construidas
una a la vez por la insercion de clientes en al mejor posicion de acuerdo con un parametro
en funcion de costo. Diferentes soluciones se obtienen por la variacion de los parametros
de la funcion de costo. El peor caso en la aplicacion de esta heurıstica es Ω(n), donde
n es el numero de clientes, se puede encontrar a mas detalle la explicacion del uso de
esta heurıstica en [23], esto significa que en el peor caso la proporcion de la diferencia
de la solucion de la heurıstica contra la solucion optima crece proporcionalmente con
el numero de clientes. Potvin y Rousseau [11]desarrollaron una heurıstica paralela a
la version de Solomon, en esta se construyen varias rutas al mismo tiempo insertando
clientes en la mejor posicion entre las rutas completas parcialmente.
Las tecnicas heurısticas usualmente son complementadas por tecnicas de busque-
da en la vecindad para obtener resultados optimos locales. Iniciando con una solucion
factible una nueva solucion se obtiene por el intercambio de la posicion de un pequeno
grupo de los clientes usualmente dos o tres. El intercambio de la posicion de los clientes
se enumera exhaustivamente hasta que no existe alguna reduccion en la funcion obje-
tivo. Baker y Schaffer [5]estudiaron algunos procedimientos de busqueda local para el
VRPTW modificando los procedimientos de 2-opt y 3-opt de intercambio utilizados el
problema clasico de VRP para poder tomar en cuenta las restricciones de las ventanas
de tiempo y capacidad de los vehıculos. Dos trabajos recientes [25]de Solomon et al.
y [29] Savelsbergh han buscado una disminucion de la complejidad del intercambio de
planos en el VRPTW.
Dentro de las tecnicas heurısticas utilizadas para la solucion del VRPTW , las que
tecnicas probabilısticas han recibido mayor atencion por parte de los investigadores
CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 20
debido a su habilidad para trascender de una optimalidad local. Este mejoramiento en
la busqueda se alcanza por la diversificacion de la misma, pasando de areas en el espacio
de solucion, de mejora muy pobre hacia areas mas prometedoras. Thangiah et al. [35]
en su trabajo propusieron una combinacion de busqueda tabu, algoritmos geneticos
y recocido simulado para solucionar el VRPTW. Con este metodo se han alcanzado
los mejores resultados conocidos para problemas clasicos encontrados en la literatura.
Potvin et al.[15] desarrollaron un algoritmo de busqueda tabu, este algoritmo utiliza
un algoritmo de intercambio especial, con el fin de aprovechar al solucion dada por la
heurıstica determinıstica de Solomon. Potvin and Bengio [16] siguieron una forma de
trabajo similar y usan las soluciones obtenidas por la heurıstica de Solomon para generar
nuevas soluciones a partir de un algoritmo genetico. Rochat y Tailard en [37] trabajan
con una heurıstica de probabilidad que aprovecha las capacidades de diversificacion e
intesificacion de anteriores trabajos con busqueda tabu.
Otros metodos son los basados en K-arboles. Fisher[21] extendio el trabajo realizado
por el metodo 1-arbol para el problema de ruteo de vehıculos y el ruteo de vehıculos
con ventanas de tiempo. En esta aproximacion se supone que cada ruta contiene al
menos dos clientes, se formula un modelo matematico particular y las restricciones son
relajadas por el metodo lagrangeano.
Capıtulo 3
Exposicion del Problema
En muchas organizaciones, la administracion de las actividades de distribucion con-
stituye un problema de toma de decisiones. Este problema ha cobrado mas importancia
debido a la contribucion de los costos de distribucion dentro de los costos totales. La
mayorıa de las companıas requieren de vehıculos para la recoleccion y entrega dentro
de una red de suministro o demanda. La utilizacion y ruteo eficiente de esta flotilla es
el nucleo de la mayorıa de los problemas de ruteo.
Una pregunta que se efectua con frecuencia por los gerentes de distribucion es
¿Cuantos vehıculos son necesarios para satisfacer una demanda a un costo mınimo?
Esta pregunta es difıcil de contestar dada la enorme gama de combinaciones de mezcla
de flotilla y rutas que pueden existir, abriendo la posibilidad de formular el problema
presentado en esta tesis.
3.1. Introduccion
Los problemas de ruteo de vehıculos existen en un ambiente compuesto por redes
de distribucion formadas con Plantas de Produccion y varios Centros de Distribucion,
este ambiente facilita la concentracion de los productos para facilitar su acceso a los
21
CAPITULO 3. EXPOSICION DEL PROBLEMA 22
clientes finales.
Para realizar el transporte desde las plantas hasta los centros de distribucion, existe
un proceso de seleccion del tipo y la cantidad de vehıculos a asignar para realizar esta
tarea. Esta seleccion da lugar a un proceso de toma de decisiones auxiliado por la
Investigacion de Operaciones.
Mediante este proceso se busca minimizar los costos totales de transporte esto es: el
costo fijo que es en el que se incurre por la adquisicion del vehıculo ya sea por compra
o renta del mismo, independientemente se use o no, el costo variable que representa los
costos por combustible y distancia entre la planta y el centro de distribucion siempre
que este vehıculo sea utilizado.
Ademas de estos, nuestra red de distribucion esta sujeta a horarios de atencion para
carga y descarga de los vehıculos en los centros de distribucion como en la planta estos
espacios de tiempo son conocidos como ventanas de tiempo.
3.1.1. Por que optimizar?
La naturaleza del problema nos presenta alternativas en la toma de decisiones para
lograr ahorros en la operacion.
Un numero ilimitado de vehıculos disminuirıa el incumplimiento en las ventanas
de tiempo de los Centros de distribucion ası como un menor numero de viajes
totales a cada CD. Como consecuencia el costo fijo total de la flotilla sera muy
alto.
Con un numero limitado de vehıculos el incumplimiento en las ventanas de tiempo
en los CD serıa mayor, ademas el numero de viajes tambien serıa mas grande, lo
que hace nuestro costo variable aumente .
CAPITULO 3. EXPOSICION DEL PROBLEMA 23
Encontrar el equilibrio entre estas dos alternativas da la posibilidad de poder plantear
esta situacion como un problema de optimizacion que se pueda resolver mediante tecni-
cas de optimizacion.
3.1.2. Sintec
Para la realizacion de esta tesis se conto con el apoyo de Sintec empresa de con-
sultorıa en Generacion de Valor, a traves del desarrollo e implementacion estrategias y
tecnologıas que fortalezcan el desempeno de la Cadena de Valor. Dentro de las consul-
torıas establecidas en Mexico, Sintec es uno de los principales generadores de educacion
y capacitacion en temas de Cadena de Demanda, Cadena de Suministro, Tecnologıa de
la Informacion y organizador del evento Visum.
Sintec, fue fundada en 1987 en Monterrey N.L Mexico y desde su fundacion ha sido
una empresa lıder comprometida con la generacion de valor a sus clientes. Entre los
clientes con los que ha trabajado estan las mas importantes de Mexico entre ellos Coca
Cola FEMSA, Cerveceria Cuahtemoc, Lamosa, Liverpool,Cemex,Qualtia.
Dada la experiencia y reconocimento que ha adquirido en estos anos de excelentes
resultados con sus clientes, por su cercanıa con la practica de las tecnicas de la inves-
tigacion de operaciones y los problemas de nuestro interes para el desarrollo de una
tesis, se considero una empresa adecuada para realizar este trabajo, por su parte se nos
acepto como una propuesta seria de trabajo y tenemos el orgullo de ser aceptados para
presentar una solucion a un problema tıpicamente expuesto a ellos.
Durante sesiones de trabajo con los gerentes del area de suministro Roberto Palacios
y Gerardo Naranjo se obtuvo la informacion necesaria para hacer de este problema
presente en la practica un modelo de optimizacion, estos modelos seran presentados a
continuacion.
CAPITULO 3. EXPOSICION DEL PROBLEMA 24
3.1.3. Modelos Matematicos
La informacion presentada por Sintec describe el problema expuesto en la introduc-
cion de este capıtulo. Recordemos que este problema consiste en la seleccion de recursos
de transporte dentro de una red de distribucion compuesta por una Planta de produc-
cion y Centros de Distribucion con restricciones de horarios de atencion para carga y
descarga de producto en cada una de las instalaciones. En el desarrollo de los mode-
los de optimizacion que representaran la realidad del problema, por la gran y variable
existencia de trabajos que tratan el problema del ruteo de vehıculos con ventanas de
tiempo se penso que se podrıa adaptar alguno de los modelos ya existentes sin embargo
con el estudio mas profundo de estos modelos entendimos que las suposiciones que los
investigadores tomaron para estos modelos en la mayorıa de de los casos no representa-
ban las mismas suposiciones de nuestro problema. Crear un modelo que considerara los
supuestos presentados por Sintec es el objetivo de este trabajo.
El modelo se fue construyendo en un proceso de evolucion hasta llegar al modelo
que representa lo mas fiel posible la situacion de la red y sus restricciones es decir la
descripcion del problema. Cabe mencionar que se ha buscado mantener la linealidad de
los modelos lo que nos permitirıa la solucion del mismo por las tecnicas ya conocidas
para problemas del tipo MIP
Estos modelos son los siguientes.
1. Modelo I.
Las consideraciones que se modelan son las siguientes:
El Vehıculo es usado una sola vez
Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo
Existe un solo tipo de vehıculos, es decir todos los vehıculos tienen las mismas
CAPITULO 3. EXPOSICION DEL PROBLEMA 25
caracterısticas de capacidad.
Las rutas son fijas y enumeradas
Resultados de este modelo: Este modelo no ofrece ninguna optimizacion sobre los
costos de transporte solo cumple con la asignacion de un vehıculo por cliente como
mınimo y si requiere hacer mas viajes para satisfacer demanda asigna un vehıculo
nuevo por cada viaje extra que requiera para satisfacer demanda. Es importante saber
que la capacidad del vehıculo es menor o igual que la demanda. Esta formulacion se
toma como base de los siguientes modelos.
2. Modelo II.
Las consideraciones en este modelo son las siguientes:
El vehıculo deja el deposito, visita un cliente al terminar regresa al deposito y
vuelve a visitar al mismo cliente hasta satisfacer demanda.
Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo
Existe un solo tipo de vehıculos, es decir todos los vehıculos tienen las mismas
caracterısticas de capacidad
Las rutas son fijas y enumeradas
Resultados de este modelo: Como consecuencia de permitir hacer varios recorridos
por vehıculo, la cantidad de vehıculos asignados es igual al numero de clientes. La toma
de decisiones parte de los horarios en que deben ser asignadas las salidas en cada una
de las ocasiones en que el vehıculo salga a realizar una entrega. Existen penalizaciones
por llegadas temprano (el centro de distribucion aun no ha abierto) y por llegadas tarde
(el centro de distribucion ya cerro). Por lo que busca el mejor acomodo en las salidas
de los vehıculos para evitar violaciones en los horarios de los centros de distribucion.
CAPITULO 3. EXPOSICION DEL PROBLEMA 26
3. Modelo III
Las consideraciones de este modelo son las siguientes:
El vehıculo parte del deposito con el fin de visitar un cliente, este es visitado las
ocasiones necesarias para satisfacer demanda
Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo
Existe tres tipos de vehıculos, diferenciados por su capacidad.
Resultados de este modelo: Contar con hasta tres tipos de vehıculo hace una asignacion
de estos de acuerdo a las demandas de los clientes y a las diferentes capacidades de los
vehıculos. Este modelo genera soluciones en la parte de la optimizacion de los costos
variables. De acuerdo a las ventanas de tiempo se elige entre mandar un camion de la
menor capacidad varias veces o uno de mayor capacidad un numero menor de veces.
Como resultado final de esta evolucion de modelos se obtiene un modelo matematico
del tipo Entero Mixto Lineal (MIP)
3.2. Formulacion Matematica
Como ya se ha descrito el problema que se trata de solucionar en este trabajo
cosiste en la seleccion de los recursos de transporte para distribuir productos entre una
planta de produccion y los centros de distribucion que mas adelante se haran cargo de
hacerlo llegar a los clientes finales. La solucion a este problema considera las siguientes
suposiciones.
Los terminos planta de produccion y centros de distribucion son una particularidad
de nuestro problema. A estos tambien se les puede mencionar como deposito y clientes
respectivamente
CAPITULO 3. EXPOSICION DEL PROBLEMA 27
3.2.1. Suposiciones del problema
1. Se satisface la demanda de todos los clientes. Esto significa que para todos los
centros de distribucion que se encuentren asignados a una planta de produccion
se cumple con la oferta de servicio, es decir se le entrega el producto requerido en
tiempo y cantidad.
2. Solo se calcula el tiempo de inicio del primer viaje de cada uno de los vehıculos. Es
decir la optimizacion del tiempo al que debe iniciar cada viaje considera el mejor
primer tiempo para iniciar la entrega de todos los pedidos que pueda hacer ese
vehıculo de acuerdo a las ventanas de tiempo de los centros de distribucion
3. Existen las penalizaciones por llegada fuera del horario de servicio. Esto significa,
que se puede ajustar el nivel de servicio que se desea proveer a los centros de
distribucion. Las penalizacion por llegada fuera del horario de servicio se puede
fijar en tarifas muy altas lo que nos representa la situacion en la que no se permite
la violacion al horario de servicio, por consiguiente el nivel de servicio es de 100% ,
por el contrario si se requiere presentar la situacion en que se sacrifique el nivel de
servicio estas tarifas se ajustan en costos a los que el modelo evalua, y ası obtener
una seleccion entre salir del horario permitido o adquirir mas vehıculos de acuerdo
al costo.
4. La capacidad maxima de cualquiera de los tipos de vehıculos disponibles es inferior
a la demanda de los centros de distribucion, es decir en un solo camion y un viaje
no se podrıa satisfacer la demanda.
CAPITULO 3. EXPOSICION DEL PROBLEMA 28
5. Los vehıculos pueden visitar a un cliente tantas veces se ha necesario para satisfacer
la demanda dentro de las ventanas de tiempo de cada cliente.
Otra forma en la que se presenta este problema es cuando el cliente tiene una
demanda multiplo de la capacidad de los vehıculos. El abastecimiento de las esta-
ciones de servicio de PEMEX es el ejemplo de este tipo de problema. En este la
demanda a satisfacer es por “pipas ”completas de combustible, estas deben visitar
la estacion de servicio 2 o 3 veces por dıa.
6. El problema es determinıstico.
3.2.2. Definicion del Modelo Matematico
1. El modelo matematico resultante, definido por las restricciones y la funcion objeti-
vo, se plantea como un modelo Lineal Entero Mixto (MIP) y se utiliza la siguiente
notacion.
Conjuntos e Indices
I Conjunto de los clientes
J Conjunto de los viajes
K Conjunto de los vehıculos
i=Indice de los Clientes i,∈ I = 0, 1, 2, 3..I
El cliente 0 es la planta de produccion ocasionalemente tambien se conoce como
deposito
j=Indice de los viajes j ∈ J = 1, 2, 3..J
k=Indice de los Vehıculos k ∈ K = 1, 2, 3..K
CAPITULO 3. EXPOSICION DEL PROBLEMA 29
Parametros
Ei= La hora de apertura de la ventana de tiempo en cada cliente i ∈ I.
Li=La hora de cierre de la ventana de tiempo en cada cliente i ∈ I.
Cikt= Costo de viaje al cliente i con el vehıculo k del tipo t; i ∈ I, k ∈ K, t ∈ T.
Fkt=Costo Fijo del vehıculo k del tipo t; k ∈ K, t ∈ T .
Cdi=Costo por llegada tarde al cliente i; i ∈ I.
Cei=Costo por llegada temprano al cliente i; i ∈ I.
Di=Demanda en cada cliente i ;i ∈ I.
θi=Tiempo que dura el recorrido al cliente i; i ∈ I.
Qkt=Capacidad del vehıculo k tipo t; k ∈ K, t ∈ T.
Variables
Xijk=
1 Si el cliente i es visitado en el viaje j por el vehiculo k.
0 Si no
Yk=
1 Si el vehıculo k es usado
0 Si no
Sjk =Tiempo en que sale el vehıculo k en el viaje j.
W+ijk =Tiempo que espera el vehıculo k en el cliente i en su viaje j
W−ijk =Tiempo que esta retrasado el vehıculo k en el cliente i en su viaje j
Ver que el uso del ındice j como un contador interno discreto del tiempo para cada
vehıculo k, asi en cualquier viaje j el vehıculo k puede estar con un cliente o permanecer
en el deposito (i = 0)
CAPITULO 3. EXPOSICION DEL PROBLEMA 30
Formulacion
mın∑
k
FkYk +∑ijk
(CikXijk + CeiW
+ijk + CdiW
−ijk
)(3.1)
Sujeto a:
X0jk +∑i6=0
Xijk = 1; j ∈ J, k ∈ K (3.2)
∑QkXijk ≥ di ; i ∈ I/0 (3.3)
Jk −∑
X0jk ≤ YkJk ; k ∈ K (3.4)
Sj+1,k ≥ Sjk +∑
Xijk2θi ; j ∈ J, k ∈ K (3.5)
W+ijk ≥ EiXijk − (Sjk + θiXijk) ; i ∈ I, j ∈ J, k ∈ K (3.6)
W−ijk ≥ (Sjk + θiXijk)− Li −M (1−Xijk) ; i ∈ I, j ∈ J, k ∈ K (3.7)
Xijk, Yk ∈ 0, 1 , W+ijk, W
−ijk, Sjk ≥ 0 (3.8)
La expresion 3.1 representa la funcion objetivo donde se minimiza el total de los
costos fijos, costos de viaje y costos por desviaciones de la ventana de atencion a cliente.
La minimizacion resulta de la obtencion de los mejores valores de las variables de
decision Xijk,Yk, W+ijk, W
+ijk que minimicen el costo total.
El conjunto de las restricciones 3.2 asegura que para cualquier viaje un vehıculo
se encuentra exactamente en un cliente o en el deposito (cliente (0). Una restriccion
obligatoria en la mayorıa de los problemas de ruteo es la de cumplimiento de la demanda
en los clientes esta se asegura con la expresion 3.3, esta establece que la demanda de
cada cliente debe ser satisfecha.
El conjunto de las restricciones 3.4 junto con el objetivo de minimizar aseguran que
sı el vehıculo permanece en todos los viajes en el deposito este no ha sido usado. Las
CAPITULO 3. EXPOSICION DEL PROBLEMA 31
siguientes restricciones formulan las condiciones que se tienen sobre el tiempo ası el
conjunto de restricciones 3.5 determina que un viaje solo puede iniciar hasta que el
vehıculo k ha regresado al deposito de su viaje previo.
La restriccion del tipo 3.6 en conjunto con el objetivo de minimizacion asegura que
si en cualquier viaje j, el cliente no es visitado (Xijk = 0) entonces no hay costo por
llegar temprano dado que (W+ijk = 0), si el cliente si es visitado (Xijk = 1) el calculo de
la desviacion del tiempo se calcula de forma normal . De manera similar las restricciones
3.7 estiman el tiempo por llegada despues del fin de la ventana de tiempo. Aquı M es
un numero entero positivo(M > Sjk − Li).
Es claro que en 3.6 y en 3.7 W+ijk ≥ 0 solo para Sjk + ti < Ei mientras que W−
ijk ≥ 0
solo para Sjk + ti > Li . Ası para Ei < Li siempre existe(W+
ijk
) (W−
ijk
)= 0. La solucion
de 3.1-3.8 indica la cantidad de vehıculos a ser usados (Yk), provee de un programa de
distribucion dado por el orden de las visitas (Xijk) y el horario en que los vehıculos
deben despacharse en cada viaje (Sjk).
3.3. Metodo de solucion
3.3.1. Programacion Entera (MIP)
En contraste con los problemas de programacion lineal, los problemas formulados
en programacion entera tienen mayor dificultad para resolverlos. En realidad no existe
un algoritmo de aplicacion general que pueda resolver este tipo de problemas. La falta
de este algoritmo general da cabida a intentar resolver este tipo de problemas me-
diante varios tipos de algoritmos. Existen tres categorıas principales de algoritmos de
solucion:[2]
(a) Algoritmos Exactos, estos aseguran la obtencion de una solucion optima a expensas
CAPITULO 3. EXPOSICION DEL PROBLEMA 32
de un numero alto de iteraciones. Dentro de este grupo se encuentran los algoritmos
planos cortantes, ramificacion - cota, ramificacion-corte y programacion dinamica.
(b) Algoritmos de Aproximacion, estos obtienen una solucion suboptima en un tiempo
polinomial junto con una cota respecto al grado de suboptimalidad presente.
(c) Algoritmos heurısticos proveen una solucion suboptima , pero sin garantizar su cal-
idad, ademas su tiempo de ejecucion no se garantiza que sea polinomial, estudios
empıricos apuntan a que en la mayorıa de los casos se logra una buena solucion
rapidamente, algunos ejemplos de estos metodos son las busquedas locales, reco-
Tabla 4.12: Programa de Distribucion Clientes Autoservicio (Cont...)
Nuevamente obtenemos un resultado satisfactorio en poco tiempo, este secuenci-
amiento ademas produce una disminucion de los vehıculos con los que se cuenta actual-
mente.
Nombre del Problema Tiempo CPU Nodos Arbol ObjetivoVrpSin2 1,130 Seg 69187 $ 298,400
Tabla 4.13: Resultados Caso Practico 2
Capıtulo 5
Experimentos Computacionales
Dentro de este capıtulo se demuestran resultados de varios problemas generados
aleatoriamente con el fin de evaluar y generar conclusiones de la efectividad del modelo
propuesto. Se determinaron dos tipos de pruebas: 1)Problemas de tipo ventanas de
tiempo suave, es decir problemas en los que se es permitido la llegada de los vehıculos
fuera de las ventanas de atencion pagando un costo. 2)Problemas de tipo ventanas de
tiempo duras, es decir problemas en los que la llegada fuera de los horarios de atencion
NO es permitida bajo ninguna circunstancia.
5.1. Generacion de problemas
Para la elaboracion de de los experimentos computacionales se requirio de la codifi-
cacion de un programa en Lenguaje C++ y de la definicion de una nomenclatura clara
que nos permita identificar las dimensiones y diferentes tipos de problemas generados.
El programa en Lenguaje C++ nos permite escribir el archivo de los datos modelo.dat
que es necesario para que AMPL pueda resolver el modelo, la necesidad de este pro-
grama se justifica en la rapidez con la que se pueden escribir problemas en los que la
cantidad de los clientes y vehıculos nos generan tablas de datos de ms de 5 renglones
43
CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 44
Nombre del Problema Significadovrpxxzzyy-j-h
xx Cantidad de clienteszz Cantidad de vehıculosyy Tipo de vehıculosj Numero de viajesh Si es problema con las ventanas duras
Tabla 5.1: Nomenclatura problemas generados
por 10 columnas, es decir escribir a “mano ”un problema de 5 clientes con 10 vehıculos
no consume mucho tiempo, sin embargo al querer probar nuestro modelo con instancias
mas grandes como, 50 vehıculos 80 clientes resulta una tarea complicada escribir una
tabla de 4000 datos. El programa genera un archivo con el formato de los archivos .dat
que requiere AMPL, introduciendo los parametros: numero de vehıculos, numero de
clientes, viajes, estos datos definen los conjuntos del modelo, ademas aleatoriamente
se generan los costos fijos, variables, penalizaciones por violar ventanas de tiempo, de-
manda y tiempos de viaje. El archivo de salida de este programa sigue las siguientes
reglas de nomenclatura. Tabla( 5.1)
De esta forma con leer el nombre del problema podemos darnos cuenta de las dimen-
siones y del tipo que es. Por ejemplo un problema con nombre vrp3030-1-7.dat define
a un problema de tamano 30 clientes con 30 vehıculos de 1 solo tipo y con 7 viajes. Si
se requiere de las ventanas del tipo duro se agrega una -h como ultimo parametro.
5.2. Problemas de Asignacion de vehıculos con ven-
tanas suaves de tiempo
Se ejecutaron pruebas de diferente tamano teniendo como criterio para definir los
vehıculos iniciales como el mismo numero que el de los clientes. Se probaron dos es-
CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 45
cenarios: con un solo tipo de vehıculo disponible y con vehıculos de diferentes tipos
(capacidad). Dentro de este conjunto problemas solo se considera las ventanas de tiem-
po que pueden incumplirse con el pago de un costo de acuerdo al tiempo que quede
fuera de las ventanas.
Debido al tamano de los problemas, el optimizador tiene que tener un criterio de
interrupcion, para todos los casos se decidio que fuera un tiempo total de ejecucion de
7 hrs CPU. Por lo que el algoritmo utilizado por CPLEX se detiene si no obtiene una
solucion entera en un lapso de 7 horas.
Los resultados de los problemas con un solo tipo de vehıculo se presentan a conti-
nuacion
Nombre del Problema Tiempo CPU Valor Objetivovrp3060-1-7 3.08 Seg $93,474vrp3260-1-7 303.2 Seg $ 76,877vrp4060-1-7 18.4 Seg $ 114,753vrp4560-1-7-1 5.34 Seg $134,476vrp5060-1-7 8.4 Seg $ 143,379vrp50100-1-7-1 10.82 Seg $ 173,773
Tabla 5.2: Resultados Ventanas Suaves 1-tipo de vehıculo
Los resultados definiendo varios tipos de vehıculos se presentan a continuacion
Nombre del Problema Tiempo CPU Valor Objetivovrp3030-2-7 3.05 Seg $36,573vrp3060-3-7 3.21 Seg $ 105,235vrp4030-2-7 596.9 Seg $ 85,668vrp4030-3-7-1 .58 Seg -vrp4030-3-7 106.46 Seg $ 54,392vrp5060-3-7-1 3.28 Seg $ 169,340vrp5060-3-7 497.76 Seg $ 133,135vrp6075-2-7-1 17.94 Seg $ 181,266vrp6075-2-7 5.64 Seg $ 1,166,241vrp5060-2-7 5.69 Seg $ 126,991
Tabla 5.3: Resultados Ventanas Suaves
CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 46
En esta tabla se pueden observar los tiempos de solucion de los problemas propuestos
aleatoriamente ası como el valor de la funcion objetivo. Para estos problemas de acuerdo
con las ventanas suaves el total del costo esta compuesto solo por los costos fijos y los
costos variables de cada ruta.
Nombre del Problema N. Cliente V. Originales V. Solucionvrp3030-2-7 30 30 4vrp3060-3-7 30 60 20vrp4030-2-7 40 30 17vrp4030-3-7-1 40 - -vrp4030-3-7 40 30 8vrp5060-3-7-1 50 60 33vrp5060-3-7 50 60 26vrp6075-2-7-1 60 75 462 vrp6075-2-7 60 75 54vrp5060-2-7 50 60 39
Tabla 5.4: Resultados Vehıculos utilizados con Ventanas Suaves
De igual forma que en los casos practicos es importante hacer notar la cantidad final
de vehıculos que se utilizarıan para cumplir con el programa de distribucion propuesto
en la solucion de cada uno de estos problemas.
Figura 5.1: Clientes vs Vehıculos utilizados
CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 47
En los problemas con las ventanas de atencion suaves, se puede apreciar un uso
reducido de vehıculos, como consecuencia del poder llegar en cualquier momento al
cliente, los vehıculos son asignados a poder realizar un viaje en cualquier momento.
5.3. Problemas de Asignacion de vehıculos con ven-
tanas duras de tiempo
Ademas de las pruebas realizadas con conjuntos de datos de ventanas de tiempo
suaves se decidio crear algunos experimentos con ventanas, que no permitieran la vio-
lacion a estas.
De nueva cuenta se hacen experimentos con un y varios tipos de vehıculos. Los
resultados de estos experimentos se muestran a continuacion. Tambien se consideran
los casos con diferentes tipos de vehıculos.
Nombre del Problema Tiempo CPU Valor Objetivovrp3050-3-7-1-h 21,603 Seg $432832vrp3050-3-7-h 21,603 Seg $ 1525350vrp4060-3-7-1-h 21,603 Seg $ 5013390vrp4060-3-7-h 21,603 Seg $3426420vrp5060-3-7-1-h - Seg -vrp5060-3-7-h - Seg -vrp6060-3-7-1-h - Seg -vrp6060-3-7-h - Seg -vrp6075-3-7-h 21,603Seg $ 9486240vrp6080-3-7-h - Seg $ 9486240
Tabla 5.5: Resultados Ventanas Duras
Como criterio de interrupcion se sigue con las mismas 7 hrs CPU con las que se
ejecutaron los problemas de ventanas suaves.
En estos resultados es notable, la falta de una solucion entera para algunos proble-
mas, esto debido a nuestros criterios de interrupcion de la optimizacion con las que se
CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 48
ejecuta cada uno de estos. En las tablas la celda con un guion significa que no se pudo
obtener la solucion entera antes de interrupcion.
Nombre del Problema N Clientes V. Originales V. Solucionvrp3050-3-7-1-h 30 50 50vrp3050-3-7-h 30 50 40vrp4060-3-7-1-h 40 60 46vrp4060-3-7-h 40 60 39vrp5060-3-7-1-h 50 60 -vrp5060-3-7-h 50 60 -vrp6060-3-7-1-h 60 60 -vrp6060-3-7-h 60 60 -vrp6075-3-7-h 60 75 67vrp6080-3-7-h 60 80 72
Tabla 5.6: Resultados Vehıculos utilizados con Ventanas Duras
En el caso de los problemas con ventanas dura, el problema es mas restringido y
llegar a la solucion entera dentro del tiempo que se marco como lımite no es suficiente.
Este mismo factor tambien incrementa el uso de vehıculos, hace sentido que a un
menor tiempo en las ventanas de atencion de los clientes, se envıen vehıculos al mismo
tiempo, pues por las distancias a recorrer no alcanzarıa a realizar dos viajes y cumplir
con las ventanas.
Figura 5.2: Clientes vs Vehıculos utilizados
Capıtulo 6
Conclusiones y Recomendaciones
6.1. Conclusiones
La principal diferencia del modelo propuesto contra las formulaciones clasicas del
problema de ruteo esta en la suposicion de la capacidad de los vehıculos es significati-
vamente menor que la demanda de los clientes.
Esto es tıpico de los niveles mas altos de transportacion donde los productos necesi-
tan ser entregados desde una planta de produccion (deposito) a centros de distribucion
[37] Y.Rochat and E. Taillard.Probabilistic diversification and intensification in local
search for vehicle routing. Journal of Heuristics, 1:147-167,1995.
Apendice A
Metodo Ramificacion y Cota
A.1. Ramificacion-cotas (Branch and bound)
La tecnica de ramificacion-cotas usa un principio basico “divide y conquista ” para
explorar el conjunto de soluciones enteras factibles, aunque en lugar de explorar todas
y cada una de las soluciones factibles. La tecnica usa cotas en los costos optimos para
explorar sobre algunas secciones del conjunto de soluciones factibles.
Sea F el conjunto de soluciones factibles al problema
mın c′x
s.t x ∈F
Podemos dividir al conjunto F en una coleccion finita de subconjuntos F1, ....Fk, y
resolver por separado cada uno de estos problemas
mın c′x
s.t x ∈ Fi,i = 1, ..., k.
Despues comparamos las soluciones optimas de los subproblemas y escogemos la
mejor de ellas. Cada subproblema puede ser casi tan difıcil como el problema original
56
APENDICE A. METODO RAMIFICACION Y COTA 57
eso nos sugiere intentar resolver cada subproblema por medio del mismo metodo, esto
es seguir dividiendo el problema en subproblemas, este procedimiento es la parte de
ramificacion del metodo, creando asi un arbol de subproblemas A.1
Figura A.1: Arbol de subproblemas generado en ramificacion y cotas
Se supone la existencia de un algoritmo eficiente en el que para cada Fi de interes,
se calcula una cota inferior b (Fi) del costo optimo de subproblema correspondiente esto
es ,
b (Fi) ≤ mınx∈Fi
c′x
La idea principal del metodo consiste en que mientras que el costo optimo del
subproblema es difıcil de calcular optimamente, una cota del mismo puede resultar mas
facil de obtener. Un forma usual de obtener dicha cota es usando el costo optimo de la
relajacion lineal del problema. Durante el transcurso del algoritmo ocasionalmente se
resuelven problemas a optimalidad o simplemente se evalua el costo de ciertas soluciones
factibles, esto nos permite mantener una cota superior U en el costo optimo, la cual
puede ser el costo de la mejor solucion encontrada hasta el momento.
La esencia del metodo cae en la siguiente observacion. Si la cota inferior b (Fi)
correspondiente a un subproblema en particular satisface b (Fi) ≥ U , entonces este
APENDICE A. METODO RAMIFICACION Y COTA 58
problema no debe ser considerado en el las siguientes iteraciones dado que la solucion
del subproblema no supera la mejor solucion factible encontrada hasta ese momento.
En resumen el algoritmo a nivel general se describe a continuacion.
En cualquier punto el algoritmo guarda en memoria un conjunto de los subproble-
mas activos y el costo U de la mejor la mejor solucion factible encontrada hasta ese
momento. Inicialmente U toma el valor de ∞ o el costo de alguna solucion factible si
esta se encuentra disponible, ası la iteracion tıpica del algoritmo es de la siguiente forma
1.Seleccionar un subproblema Fi
2.Si el subproblema es infactible, se elimina, de otra forma se calcula la cota b (Fi)
para el subproblema correspondiente.
3.Si b (Fi) ≥ U se elimina el subproblema
4.Si b (Fi) < U se puede obtener una solucion optima al subproblema o quebrar
este en sus correspondientes subproblemas estos se agregan a la lista de subproblemas
activos.
En este algoritmo existen algunos parametros libres en la mayorıa de los casos las
mejores opciones son dictadas por la experiencia y el tipo del problema que se trata de
resolver. Ejemplos de estos parametros son:
(a) Existen diferentes maneras de seleccionar un subproblema de activo, dos de las
mas usadas son “breath first search ”y busqueda del primero mas profundo.
(b) Hay varias formas de determinar la cota inferior b (Fi) del costo optimo del los
subproblemas, la mas comun es considerar la relajacion lineal del subproblema.
(c) Existen muchas formas de quebrar el problema en subproblemas.
Como ilustracion, suponemos que usamos como cota inferior b(Fi) el costo optimo
del al relajacion lineal donde las restricciones de integralidad son ignoradas. Si se ob-
tiene una solucion optima entera del problema relajado esta automaticamente es una
APENDICE A. METODO RAMIFICACION Y COTA 59
solucion optima para el correspondiente problema entero, eso evita la expansion en los
subproblemas. El siguiente paso es actualizar U (si la solucion obtenida es mejor que
el valor previo de U) y ası podemos eliminar el actual subproblema, si la solucion x∗
al problema lineal relajado no es entera , entonces se escoge un componente xi para el
que x∗i no es entero y se crean dos subproblemas agregando las siguientes restricciones
xi ≤ bx∗i c, or xi ≥ dx∗i e
Apendice B
AMPL
B.1. Lenguaje AMPL
AMPL es un lenguaje de modelado algebraico para programacion matematica: un
lenguaje capaz de expresar en notacion algebraica problemas de optimizacion tales como
los problemas de programacion lineal. Veamos un pequeno ejemplo.
Ejemplo 1.1. Una companıa fabrica tres productos, P1, P2 y P3, que precisan para
su elaboracion dos materias primas, M1 y M2. Las disponibilidades semanales de estas
materias son 25 y 30 unidades, respectivamente.
El beneficio neto que proporciona cada unidad de producto, ası como las unidades
de materia prima que necesita para su elaboracion, vienen dados en la siguiente tabla:
P1 P2 P3
M1 1 2 2
M2 2 1 3
Beneficio (u.m.) 2 6 3
Planificar la produccion semanal de forma que se maximice el beneficio.
Solucion:
60
APENDICE B. AMPL 61
Sean x1, x2, x3 (xi) la cantidad producida de P1, P2 y P3 respectivamente (Pi, i =
1, 2, 3).
El problema a resolver serıa el siguiente:
max z = 2x1 + 6x2 + 3x3
s.a. x1 + 2x2 + 2x3 ≤ 25
2x1 + x2 + 3x3 ≤ 30
x1, x2, x3 ≥ 0
El modelo (modelo+datos) escrito en AMPL del ejemplo 1.1 es el siguiente:
# FABRICACION DE 3 PRODUCTOS CON 2 MATERIAS PRIMAS# VARIABLES DE DECISION Y RESTRICCIONES DE NO NEGATIVIDADvar x1 >= 0;var x2 >= 0;var x3 >= 0;# FUNCION OBJETIVO DEL MODELOmaximize z : 2*x1 + 6*x2 + 3*x3;# RESTRICCIONES DEL MODELOsubject to restriccion1 : x1 + 2*x2 + 2*x3 <= 25;subject to restriccion2 : 2*x1 + x2 + 3*x3 <= 30;
Tabla B.1: Modelo basico del ejemplo
Ejemplo en AMPL.
La gran potencia del lenguaje AMPL esta en separar el modelo en sı por un lado
y por otro los datos particulares del problema concreto. Para entender esto mejor
escribimos el problema del ejemplo 1.1 desde este punto de vista.
El modelo general con n productos y con m materias primas puede ser escrito de la
siguiente manera:
APENDICE B. AMPL 62
max z = c1x1 + c2x2 + . . . + cnxn
s.a. a11x1 + . . . + a1nxn ≤ b1
a21x1 + . . . + a2nxn ≤ b2
......
am1x1 + . . . + amnxn ≤ bm
x1, x2, . . . , xn ≥ 0
O de forma mas abreviada:
max z =∑n
j=1 cjxj
s.a∑n
j=1 aijxj ≤ bi, ∀i = 1, . . . ,m
xj ≥ 0, j = 1, . . . , n
(1)
En este problema general los valores de cj, aij y bi son datos del problema concreto
y la estructura del problema (1) serıa el modelo general.
Esto en AMPL se escribirıa dos ficheros, en el fichero del modelo serıa como se
muestra en la tabla B.2. El fichero de datos para el ejemplo se muestra en la tabla B.3.
Es posible escribir un fichero de datos con valores diferentes y resolverlo junto al
modelo general (por ejemplo con n = 4 y m = 5).
B.1.1. Reglas lexicas de AMPL.
Los modelos AMPL envuelven variables, restricciones y objetivos, expresados
con la ayuda de conjuntos y parametros. A todos se les llama elementos del mod-
elo. Cada elemento del modelo tiene un nombre alfanumerico (una cadena de uno
o mas letras, dıgitos, y caracteres de subrayado): x1, z, restriccion1. Nota: las letras
mayusculas son distintas de las letras minusculas en AMPL.
APENDICE B. AMPL 63
# MODELO: EJEMPLO1.MOD# FABRICACION DE n PRODUCTOS CON m MATERIAS PRIMAS# PARAMETROS DEL MODELOparam n >=0, integer;param m >=0, integer;# CONJUNTOS DE INDICESset PRODUCTOS := 1..n;set MPRIMAS := 1..m;# VARIABLES DE DECISION Y RESTRICCIONES NO NEGATIVIDADvar x j in PRODUCTOS >= 0;# MAS PARAMETROS DEL MODELOparam c i in PRODUCTOS;param b j in MPRIMAS;param a (i,j) in MPRIMAS,PRODUCTOS;# FUNCION OBJETIVO DEL MODELOmaximize z : sum j in PRODUCTOS c[j]*x[j];# RESTRICCIONES DEL MODELOsubject to restriccion i in MPRIMAS :sum j in PRODUCTOS a[i,j]*x[j] <= b[i];
Tabla B.2: Modelo general del ejemplo
# DATOS: EJEMPLO1.DATparam n := 3;param m := 2;param c:=1 22 63 3;param a : 1 2 3:=1 1 2 22 2 1 3;param b:=1 252 30;
Tabla B.3: Datos para el ejemplo.
APENDICE B. AMPL 64
Existen dos tipos de constantes:
Constantes numericas: un signo opcional, una secuencia de dıgitos que pueden
contener un punto decimal y un exponente opcional que comienza con una de las
letras: d, D, e, E, como en 1.23D-45. Toda la aritmetica en AMPL tiene la misma
precision (sobre la mayorıa de las maquinas tiene precision doble).
Constantes literales son cadenas delimitadas por una comilla simple o por dobles
comillas. Si la comilla simple forma parte de la constante literal debe aparecer dos
veces seguidas (igual ocurre con la doble comilla).
Cada lınea de instrucciones debe ir finalizada con un punto y coma (;).
Los comentarios comienzan con # y se extienden hasta el final de la lınea, o se
pueden delimitar entre /* y */, en cuyo caso pueden extenderse mas de una lınea.
B.1.2. Los elementos de un conjunto.
Un conjunto contiene cero o mas elementos o miembros, cada uno de los cuales es
una lista ordenada de una o mas componentes. Cada miembro de un conjunto debe
ser distinto. Todos los miembros deben tener el mismo numero de componentes; a este
numero comun de le conoce como dimension del conjunto.
Un conjunto explıcitamente se escribe como una lista de miembros separada por
comas, colocados entre llaves: “. . . ”. Si el conjunto es de dimension uno, los miembros
son simplemente constantes numericas o constantes de cadena, o cualquier expresion
cuyo valor sea un numero o una cadena:
\a",\b",\c"
1,2,3,4,5,6,7,8,9
t,t+1,t+2
APENDICE B. AMPL 65
Para un conjunto multidimensional, cada miembro debe escribirse como una lista
separada por comas entre parentesis:
(\a",2),(\a",3),(\b",5)
(1, 2, 3),(1, 2, 4),(1, 2, 5),(1, 3, 7),(1, 4, 6)El valor de un miembro numerico es el resultado de reordenar su representacion
decimal por un valor real de precision limitada. Los miembros numericos que parecen
diferentes pero que al ser redondeados al valor de precision limitada son el mismo, tales
como 1 y 0.01E2, son considerados iguales.
B.1.3. Expresiones que indexan y subındices.
Muchos elementos de AMPL pueden definirse como colecciones indexadas sobre
un conjunto; los miembros individuales son seleccionados al anadir un “subındice”
al nombrar el elemento. El rango de posibles subındices es indicado por una expre-
sion que indexa en la declaracion del modelo. Operadores de reduccion, tales como
sum, tambien usan expresiones que indexan para especificar conjuntos sobre los que
las operaciones son iteradas.
Un subındice es una lista de expresiones simbolicas o numericas, separadas por
comas y encerradas entre corchetes, como en:
demanda[i]
costos[j,p[k],\0-"]
Cada expresion con subındices debe evaluar a un numero o a una literal. El val-
or resultante o secuencia de valores debe dar un miembro de un conjunto de ındices
unidimensional o multidimensional.
Una expresion que indexa es una lista de expresiones de conjunto separadas por
comas, seguida opcionalmente por dos puntos “:” y una expresion logica, todo encerrado
entre llaves:
APENDICE B. AMPL 66
Expresiones que indexan:
lista de expresiones de conjuntos
lista de expresiones de conjuntos : expresion logica
lista de expresiones de conjuntos:
expresion de conjuntos
miembro-ciego in expresion de conjuntos
lista de expresiones de conjuntos, lista de expresiones de conjuntos
Cada expresion de conjunto puede ser precedida por un miembro ciego y la pal-
abra clave in. Un miembro ciego para un conjunto unidimensional es un nombre no
referenciado, es decir, un nombre no definido hasta ese punto. Un miembro ciego para
un conjunto multidimensional es una lista separada por comas, encerrada entre parente-
sis, de expresiones o nombres no referenciados; la lista debe incluir al menos un nombre
no referenciado.
Un miembro ciego introduce uno o mas ındices ciegos (nombres no referenciados
en sus componentes), cuyo campo, o rango de definicion, comienza en la siguiente
expresion de conjunto; el campo de un ındice corre a traves del resto de la expresion
que indexa, hasta el final de la declaracion usando la expresion que indexa, o hasta el
final del operando que usa la expresion que indexa. Cuando un miembro ciego tiene una
o mas expresiones componentes, los ındices ciegos del miembro ciego varıan sobre una
proyeccion del conjunto, es decir, ellos toman todos los valores para que el miembro
ciego pertenezca al conjunto.
APENDICE B. AMPL 67
A # todos los elementos de A
A,B # todos los pares, uno de A, uno de B
i in A, j in B # el mismo que antes
i in A, C[i] # el mismo que antes
i in A, ( j,k) in D # 1 de A y 1 (un par) de D
i in A: p[i ]> 30 # todo i de A tal que p[i] sea mayor que 30
i in A, j in C[i]: i<=j # nota: i y j deben ser numericos
i in A, ( i,j) in D: i<=j # todos los pares con i en A y i,j en D
# (mismo valor de i) e i menor o igual que j
El argumento opcional “: expresion logica” es una expresion que indexa, selecciona
solamente los miembros que verifican la expresion logica y excluye a los demas. La
expresion logica tıpicamente envuelve uno o mas ındices ciegos de la expresion que
indexa.
B.1.4. Expresiones aritmeticas, logicas y de conjuntos. Fun-
ciones matematicas.
En las expresiones logicas y aritmeticas de AMPL, pueden combinarse varios elemen-
tos. A partir de ahora consideraremos que una expresion que puede contener variables
se representara como vexpr. Una expresion que no puede contener variables se denota
como expr y algunas veces sera llamada “expresion constante”, a pesar de que pueda
contener ındices ciegos. Una expresion logica, representada como lexpr, puede con-
tener variables solo cuando es parte de una expresion if que produzca una vexpr. Las
expresiones de conjuntos seran denotadas como sexpr.
Los operadores aritmeticos, logicos y de conjuntos, en orden de precedencia creciente,
se muestran en la tabla 4.
APENDICE B. AMPL 68
Los valores numericos que aparecen como expresiones logicas valen falso (false) si
es 0, y verdadero (true) para cualquier otro valor numerico.
Expresiones Aritmeticas.
Las expresiones aritmeticas son construidas con los operadores aritmeticos usuales,
con funciones de AMPL y con operadores de reduccion aritmeticos como sum:
operador-reduccion expresion que indexa (sum, prod, max, min)
expr Los operadores aritmeticos, logicos y de conjuntos, en orden de precedencia creciente,
se muestran en la tabla .
Las funciones aritmeticas incorporadas en AMPL se muestran en la tabla 5 y en la
tabla 6.
Sobre los operadores de reduccion aritmetica:
La palabra clave sum debe seguirle cualquier expresion que indexa. La expresion
aritmetica siguiente se evalua una vez para cada miembro del conjunto de ındices,
y todos los valores resultantes se suman. El operador sum tiene menor precedencia
que *, ası podemos escribir:
APENDICE B. AMPL 69
Nombre Tipo Notasif . . . then . . . else A, S A: si no hay else, se supone else 0
S: es obligatorio else sexpror, || L o logicoexists, forall L operadores de reduccion logicaand, && L y logico<, <=, =, ==, <>, =!, >=, > L operadores relacionalesin, not in L pertenencia a un conjuntowithin, not within L S within T significa S ⊆ Tnot, ! L negacion logicaunion, diff, symdiff S symdiff es la diferencia simetricainter S interseccioncross S producto cartesianosetof .. by S constructor de conjuntos+, - , less A a less b = max (a− b, 0)sum, prod, min, max A operadores de reduccion aritmetica*, /, div, mod A div cociente entero+, - A mas y menos unarioˆ, ** A exponenciacion
Tabla B.4: Operadores aritmeticos (A), logicos (L) y de conjuntos (S).
Sintaxis SignificadoBeta(a,b) xa−1(1− x)b−1/(Γ(a)Γ(b)/Γ(a + b)), x ∈ [0, 1]Cauchy 1/(π(1 + x2))Exponential e−x, x > 0Gamma(a) xa−1e−x/Γ(a), x ≥ 0, a > 0Irand224() Uniforme entera en [0, 224)Normal(µ, σ) N (µ, σ)Poisson(µ) e−µµk/k!, k = 0, 1, . . .Uniform(m,n) Uniforme[m,n)Uniform01() Uniforme[0, 1)
Tabla B.5: Funciones de generacion de variables aleatorias en AMPL.
APENDICE B. AMPL 70
Sintaxis Significadoabs(x) valor absolutoacos(x) cos−1 (x)acosh(x) cosh−1 (x)asin(x) sin−1 (x)asinh(x) sinh−1 (x)atan(x) tan−1 (x)atan2(y,x) tan−1 (x/y)atanh(x) tanh−1 (x)ceil(x) entero mayor mas cercanocos(x) cosenoexp(x) exponencialfloor(x) menor entero mas cercanolog(x) loge (x)log10(x) log10 (x)max(x,y,. . . ) maximomin(x,y,. . . ) mınimosin(x) senosinh(x) seno hiperbolicosqrt(x) raız cuadradatan(x) tangentetanh(x) tangente hiperbolica
precision(x,n) x redondeado a n cifras significativasround(x,n) x redondeado a n dıgitos despues del punto decimalround(x) x redondeado al entero mas cercanotrunc(x,n) x truncado a n dıgitos despues del punto decimaltrunc(x) x truncado a un entero
Tabla B.6: Funciones aritmticas en AMPL.
APENDICE B. AMPL 71
sumi in ORIG, j in DEST, p in PROD
cost[i,j,p] * Trans[i,j,p]
representa el total de costo[i,j,p] * Trans[i,j,p] sobre todas las combinaciones de
orıgenes, destinos y productos.
Otros operadores aritmeticos iterados son prod para la multiplicacion, min para
el mınimo, y max para el maximo. Como ejemplo, podrıamos usar:
maxi in ORIG oferta[i,p]
para describir la mayor oferta del producto p de todos los orıgenes.
Expresiones Logicas.
Las expresiones logicas aparecen donde se requiera un valor: “verdadero” o “falso”.
Por ejemplo, en el comando check, en la parte “tal que” de las expresiones que indexan
(sigue a los “:”) y en if lexp then . . .
Las expresiones logicas pueden ser de la siguiente forma (lexpr):
expr
expr oper -- compara expr
lexpr oper -- logico lexpr
not lexpr
miembro in sexpr
miembro not in sexpr
sexpr within sexpr
sexpr not within sexpr
exists indexado lexpr
forall indexado lexpr
lexpr
APENDICE B. AMPL 72
El operador exits, cuando se aplica sobre un conjunto vacıo, devuelve falso y el
operador forall devuelve verdadero.
Expresiones de conjunto
Las expresiones de conjuntos (sexpr) que producen conjuntos pueden tener uno de
los siguientes formatos:
[ miembro [ , miembro ... ] ]
sexpr op–conjunto sexpr (union diff symdiff inter cross )
union indexado sexpr
inter indexado sexpr
expr .. expr [ by expr ]
setof indexado miembro
if lexpr then sexpr else sexpr
( sexpr )
interval
conj–predefinido
indexado
Podemos ver el uso del operador setof, en el siguiente ejemplo:
ampl: set y := setof i in 1 ..5 ( i,i ^2);
ampl: display y;
set y := (1,1) (2,4) (3,9) (4,16) (5,25);
B.1.5. Declaraciones de elementos del modelo.
La declaracion de los elementos del modelo tiene el siguiente formato general:
elemento nombre [alias] [exp. indexada] [cuerpo];
APENDICE B. AMPL 73
Las palabras claves para los elementos del modelo AMPL pueden se una de las
siguientes:
set
param
var
arc
minimize
maximize
subject to, subj to, s.t.
node
Si se suprime el nombre del elemento se supone que es subject to.
Las declaraciones pueden aparecer en cualquier orden, con la excepcion de que cada
nombre debe estar declarado antes de ser usado.
Para las declaraciones de variables, restricciones y objetivos, se permite una forma
especial de expresion indexada:
if lexprg
Si la expresion logica lexpr es verdad, entonces el resultado es un elemento simple
(no indexado); en otro caso el elemento es excluido del modelo.
Declaracion de conjuntos.
La declaracion de conjunto del modelo tiene el siguiente formato general:
set nombre [alias] [exp. indexada] [atributos] ;
en la que atributos es una lista de atributos opcionales separada por comas. Los
cuales pueden ser (sexpre indica una expresion de conjuntos):
APENDICE B. AMPL 74
dimen n
within sexpre
:= sexpr
default sexpr
La frase := especifica un valor para el conjunto; esto implica que el conjunto no
sera definido posteriormente en una lınea de instrucciones especıfica para datos (:= y
default son mutuamente excluyentes). El conjunto vacıo se indica con: .
Existe la funcion card(S) la cual da el numero de elementos del conjunto S.
Tambien se pueden realizar operaciones entre conjuntos, como:
set A := 1 ..n ;
set B := i..j by k;
set C := A d i f f B;
set D := A union B;
set E := A inter B;
set F := A symdi f f B;
Se pueden definir conjuntos con infinitos elementos (Nota: no se puede iterar sobre
conjuntos infinitos), los clasicos intervalos cerrados, abiertos o semicerrados, bien de
numeros reales (interval [a,b]) o bien de numeros enteros (integer [a,b]). Nota: la
palabra interval puede omitirse.
Declaracion de parametros
La declaracion de un parametro del modelo tiene el siguiente formato general:
param nombre [alias] [exp. indexada] [atributos] ;
en la que los atributos es una liste de atributos opcionalmente separa por comas.
Los cuales pueden ser (sexpr indica una expresion de conjuntos):
APENDICE B. AMPL 75
binary
integer
symbolic
oprel expr
in sexpr
:= expr
defaul t expr
donde “oprel” puede ser:
< <= = == != <> > >=
El atributo in especifica un chequeo para ver que el parametro se encuentra en
el conjunto dado. Los parametros indexados pueden definirse de forma recursiva. Por
ejemplo:
param comb ~n sobre k’n in 0 .. N, k in 0 .. n
:= if k=0 or k = n then 1 else comb[n-1,k-1] + comb[n-1,k];
Infinity es un parametro predefinido; al igual que -Infinity.
Declaracion de variables.
La declaracion de una variable del modelo tiene el siguiente formato general:
var nombre [alias] [exp. indexada] [atributos] ;
en la que atributos es una lista de atributos opcionalmente separada por comas. Los
cuales pueden ser (vexpr indica una expresion de variables):
APENDICE B. AMPL 76
binary
integer
>= expr
<= expr
:= expr
defaul t expr
= vexpr
coeff [ exp.indexada ] restriccion vexpr
cover [ exp. indexada ] restriccion
obj [ exp. indexada ] objetivo vexpr
Las frases >= y =< especifican cotas, la frase := indica un valor inicial. La frase
default indica los valores iniciales por defecto, cuyos valores pueden darse en una lınea
de instrucciones especıfica para datos.
Las frases coeff y obj se utilizan para la generacion de coeficientes por columnas;
estas especifican los coeficientes que seran colocados es la restriccion indicada u objetivo
indicado, el cual debe ser previamente referenciado usando to come. Una frase cover
es equivalente a la frase coeff pero con vexpr igual a 1.
Declaracion de restricciones
La declaracion de una restriccion de modelo tiene el siguiente formato general:
[subject to] nombre [alias] [exp. indexada] [ := dual–inic]
[default dual–inic] [ : expr restriccion];
La frase opcional := dual–inicial especifica un valor inicial para la variable dual
(multiplicador de Lagrange) asociado con la restriccion. La expresion de restriccion
debe estar en uno de los siguientes formatos:
APENDICE B. AMPL 77
vexpr <= vexpr
vexpr = vexpr
vexpr >= vexpr
expr <= vexpr <= expr
expr >= vexpr >= expr
Para permitir la generacion de coeficientes por columna para la restriccion, una de
las vexprs puede tener una de las siguientes formas:
to come + vexpr
vexpr + to come
to come
Los terminos de esta restriccion que se especifican en una declaracion var son colo-
cados en la posicion de to come.
Declaracion de objetivos.
La declaracion de un objetivo del modelo tiene el siguiente formato general:
maximize nombre [alias] [exp. indexada] [: expresion] ;
minimize nombre [alias] [exp. indexada] [: expresion] ;
y puede especificarse una expresion en una de las siguiente formas:
vexpr
to come + vexpr
vexpr + to come
to come
La forma to come permite la generacion de coeficientes por columna, como con las
restriciciones
APENDICE B. AMPL 78
Notacion para sufijos para valores auxiliares.
Las variables, restricciones y objetivos tienen una variedad de valores auxiliares
asociados, a los cuales se puede acceder anadiendo al nombre uno de lo siguientes
sufijos dependiendo del tipo de elemento del modelo.
Sufijos para variables
.init valor actual inicial
.init0 valor inicial inicial(x0
j
).lb cota inferior actual
.lb0 cota inferior inicial (lj)
.lrc costo reducido menor (.rc, xj ≥ lj)
.lslack menor holgura (xj − lj)
.rc costo reducido − (zj − cj)
.slack min (lsalck,uslack)
.ub cota superior actual
.ub0 cota superior inicial (uj)
.urc costo reducido superior (.rc, xj ≤ uj)
.uslack holgura superior (uj − xj)
.val valor actual (xj)
APENDICE B. AMPL 79
Sufijos para restricciones
.body valor actual del cuerpo de la restriccion (Aix)
.dinit valor inicial actual para la variable dual
.dinit0 valor inicial inicial para la variable dual (w0i )
.dual variable dual actual (wi)
.lb cota inferior (rli)
.ldual valor dual menor (.dual, Aix ≥ rli)
.lsalck holgura menor (Aix− rli)
.slack min(lsalck,uslack)
.ub cota superior (rui)
.udual valor dual superior (.dual, Aix ≤ rui)
.uslack holgura superior (rui −Aix)
Sufijos para objetivos
.val valor actual
B.1.6. Especificacion de datos.
Hay que tener en cuenta que:
La lectura de datos se inicializa con el comando ”data”. Pos ejemplo:
ampl: data diet.dat;
lee los comandos de datos de un fichero llamada diet.dat.
AMPL trata cualquier secuencia de espacios, tabuladores y caracteres claves de
una nueva lınea como un solo espacio.
El final de cualquier comando de datos de indica por un punto y coma “;”.
APENDICE B. AMPL 80
Datos de un conjunto.
Conjuntos unidimensionales.
Un conjunto simple se especifica al listar sus miembros.
set ORIG := SE MD BA ;
set DEST := CA CO HU AL JA MA GR ;
set PROD := plato cuchillo tenedor ;
Si un conjunto se ha declarado con el atributo ordered o circular, debemos de
Si una cadena de la lista incluye caracteres distintos de letras, dıgitos, signo de
subrayado ( ), punto, + y -, debe ser cerrado entre comillas:
set ALMACEN := \A&P" JEWEL VONS ;
Tambien para distinguir cuando un numero queremos que sea una cadena (“+1”
o “3e4”), este debe ser cerrado entre comillas.
Los miembros de un conjunto deben ser todos diferentes; AMPL avisara de la ex-
istencia de elementos duplicados. Los numeros que tienen la misma representacion
en el ordenador seran considerados como iguales.
Para una coleccion indexada de conjuntos, los miembros de cada conjunto de la
coleccion se especificaran individualmente.
APENDICE B. AMPL 81
set PROD ;
set AREA PROD ;
set PROD := plato cuchillo ;
set AREA [ plato ] := este norte ;
set AREA [ cuchillo ] := este oeste export ;
Podemos especificar explıcitamente que uno o mas de esos conjuntos es vacıo, al
dar una lista vacıa; poniendo el punto y coma justo despues del operador “:=”. Si
queremos que AMPL suponga que cada conjunto es vacıo excepto si se especifica
otra cosa, incluyendo una frase default en el modelo:
set AREA PROD default ;
En otro caso serıamos avisados de que la especificacion de los miembros de un
conjunto no se ha realizado.
Conjuntos de dos dimensiones
Para un conjunto de pares, los miembros pueden especificarse de varias maneras:
set ORIG ;
set DEST ;
set LINKS within ORIG , DEST ;
1. lista de pares
set LINKS :=
(SE,CO ) ( SE,HU ) ( SE,JA ) ( SE,GR ) ( MD,CA)
(MD,CO ) ( MD,HU ) ( MD,AL ) ( MD,JA ) ( MD,GR)
(BA,CA ) ( BA,AL ) ( BA,JA ) ( BA,MA ) ;
APENDICE B. AMPL 82
2. lista de pares, sin los parentesis y las comas
set LINKS :=
SE CO SE HU SE JA SE GR MD CA
MD CO MD HU MD AL MD JA MD GR
BA CA BA AL BA JA BA MA ;
3. un conjunto de pares puede especificarse en una tabla tambien de la siguienteforma:
set LINKS: CA CO HU AL JA MA GR :=
SE - + + - + - +
MD + + + + + - +
BA + - - + + + - ;
Un signo “+” indica un par que esta en el conjunto y un signo “-” indica queno esta ese par. Normalmente las filas son etiquetadas con la primera componentey las columnas con la segunda. Si se prefiere lo puesto, podemos indicar una tablatranspuesta al anadir (tr) despues del nombre del conjunto:
set LINKS (tr):
SE MD BA :=
CA - + +
CO + + -
HU + + -
AL - + +
JA + + +
MA - - +
GR + + - ;
Las tablas son mas convenientes para conjuntos que son relativamente densos.En otro caso la lista de pares va mejor.
APENDICE B. AMPL 83
4. Otra forma de describir un conjunto de pares es listar todas las segundas com-ponentes que unen cada primer componente:
set LINKS:=
(SE,*) CO HU JA GR
(MD,*) CA CO HU AL JA GR
(BA,*) CA AL JA MA ;
Se podrıa hacer listando todas las primeras componentes que unen con cadauna de las segundas componentes: (*,CA) MD BA.
Cada comodın * es seguido por una lista, cuyas entradas son sustituidas por el* para generar pares de conjuntos.
Conjuntos multidimensionales
Utilizamos los siguientes ejemplos para ver las distintas formas de definir conjuntos