You are on page 1of 115

UNIVERSIDAD AUT

ONOMA DE NUEVO LE

ON
Facultad de Ingeniera Mecanica y Electrica
Division 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 Ingeniera de Sistemas
San Nicolas de los Garza, N.L. Oto no de 2005
UNIVERSIDAD AUT

ONOMA DE NUEVO LE

ON
Facultad de Ingeniera Mecanica y Electrica
Division 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 Ingeniera de Sistemas
Comit e de Tesis
Dr. Mauricio Cabrera Ros
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 Ingeniera de Sistemas.
Aceptada por el Division de Estudios de Posgrado
Dr. Igor S. Litvinchev
Asesor y Director
Dr. Mauricio Cabrera Ros
Revisor
MC. Gerardo Naranjo Sotomayor
Revisor
Dr. Guadalupe Alan Castillo
Rodrguez
Subdirector Division de Estudios
de Posgrado
15 de Noviembre de 2005
Quiero dedicar este trabajo a todos
aquellos que me apoyaron: maestros,
familia, amigos, pero especialmente a mis
compa neros 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 maestra, mediante una beca de estudios de tiempo completo.
Quiero expresar mi agradecimiento innito a mi asesor Dr. Igor S. Litvinchev desde
el principio cono y respaldo este proyecto. Por su paciencia y entusiasmo a lo largo de
estos a nos. 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 Ros, Dr. Oscar Chacon, Dr. Cesar
Villareal , Dr. Rodolfo Garca 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
parte de su tiempo.

Indice general
1. Introduccion 1
1.1. Ciencia de Transporte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Transporte como actividad economica . . . . . . . . . . . . . . . . . . . 4
1.3. Objetivo de tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Organizacion de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2. El problema y sus antecedentes 11
2.1. Introduccion a los problemas de ruteo. . . . . . . . . . . . . . . . . . . 11
2.2. Trabajos sobre ruteo de vehculos con ventanas de tiempo . . . . . . . . 14
3. Exposicion del Problema 21
3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1. Por que optimizar? . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.2. Sintec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.3. Modelos Matematicos . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2. Formulacion Matematica . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.1. Suposiciones del problema . . . . . . . . . . . . . . . . . . . . . 27
3.2.2. Denicion del Modelo Matematico . . . . . . . . . . . . . . . . . 28
3.3. Metodo de solucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1. Programacion Entera (MIP) . . . . . . . . . . . . . . . . . . . . 31
i

INDICE GENERAL ii
3.3.2. Herramientas Computacionales . . . . . . . . . . . . . . . . . . 32
4. Casos Practicos 34
4.1. Caso 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2. Caso 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5. Experimentos Computacionales 43
5.1. Generacion de problemas . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2. Problemas de Asignacion de vehculos con ventanas suaves de tiempo . 44
5.3. Problemas de Asignacion de vehculos con ventanas duras de tiempo . . 47
6. Conclusiones y Recomendaciones 49
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2. Aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Bibliografa 52
A. Metodo Ramicacion y Cota 56
A.1. Ramicacion-cotas (Branch and bound) . . . . . . . . . . . . . . . . . . 56
B. AMPL 60
B.1. Lenguaje AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
B.1.1. Reglas lexicas de AMPL. . . . . . . . . . . . . . . . . . . . . . . 62
B.1.2. Los elementos de un conjunto. . . . . . . . . . . . . . . . . . . . 64
B.1.3. Expresiones que indexan y subndices. . . . . . . . . . . . . . . 65
B.1.4. Expresiones aritmeticas, logicas y de conjuntos. Funciones matem aticas. 67
B.1.5. Declaraciones de elementos del modelo. . . . . . . . . . . . . . . 72

INDICE GENERAL iii


B.1.6. Especicacion de datos. . . . . . . . . . . . . . . . . . . . . . . 79
B.1.7. Comandos del lenguaje. . . . . . . . . . . . . . . . . . . . . . . 94
C. Modelo en AMPL 99
D. Carta Referencia Sintec 101

Indice de Tablas
1.1. Factores que inuyen en costo del transporte . . . . . . . . . . . . . . . 6
4.1. Parametros clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2. Parametros de los vehculos . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3. Costos Variables a cada destino . . . . . . . . . . . . . . . . . . . . . . 36
4.4. Resultados Clientes Vehculos Sencillos . . . . . . . . . . . . . . . . . . 37
4.5. Resultados Clientes Vehculos Dobles . . . . . . . . . . . . . . . . . . . 38
4.6. Resultados Caso Practico 1 . . . . . . . . . . . . . . . . . . . . . . . . 38
4.7. Parametros clientes Caso 2 . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.8. Parametros de los vehculos . . . . . . . . . . . . . . . . . . . . . . . . 40
4.9. Costos Variables a cada destino . . . . . . . . . . . . . . . . . . . . . . 40
4.10. Programa de Distribucion Clientes Autoservicio . . . . . . . . . . . . . 41
4.11. Programa de Distribucion Clientes Autoservicio . . . . . . . . . . . . . 41
4.12. Programa de Distribucion Clientes Autoservicio (Cont...) . . . . . . . . 42
4.13. Resultados Caso Practico 2 . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1. Nomenclatura problemas generados . . . . . . . . . . . . . . . . . . . . 44
5.2. Resultados Ventanas Suaves 1-tipo de vehculo . . . . . . . . . . . . . . 45
5.3. Resultados Ventanas Suaves . . . . . . . . . . . . . . . . . . . . . . . . 45
5.4. Resultados Vehculos utilizados con Ventanas Suaves . . . . . . . . . . 46
iv

INDICE DE TABLAS v
5.5. Resultados Ventanas Duras . . . . . . . . . . . . . . . . . . . . . . . . 47
5.6. Resultados Vehculos utilizados con Ventanas Duras . . . . . . . . . . . 48
B.1. Modelo basico del ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 61
B.2. Modelo general del ejemplo . . . . . . . . . . . . . . . . . . . . . . . . 63
B.3. Datos para el ejemplo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.4. Operadores aritmeticos (A), logicos (L) y de conjuntos (S). . . . . . . . 69
B.5. Funciones de generacion de variables aleatorias en AMPL. . . . . . . . 69
B.6. Funciones aritmticas en AMPL. . . . . . . . . . . . . . . . . . . . . . . 70
B.7. Fichero de lotes para el modelo del ejemplo 1.1 . . . . . . . . . . . . . . 95

Indice de guras
1.1. Distribucion del transporte de Carga en Mexico . . . . . . . . . . . . . 7
4.1. Red de distribucion Valle de Mexico . . . . . . . . . . . . . . . . . . . . 34
4.2. Red de distribucion Clientes Centralizados . . . . . . . . . . . . . . . . 39
5.1. Clientes vs Vehculos utilizados . . . . . . . . . . . . . . . . . . . . . . 46
5.2. Clientes vs Vehculos utilizados . . . . . . . . . . . . . . . . . . . . . . 48
A.1.

Arbol de subproblemas generado en ramicacion y cotas . . . . . . . . 57
vi
Resumen
Israel Cano Robles
Candidato para el Grado de Maestro en Ciencias en Ingeniera de Sistemas
Universidad Autonoma de Nuevo Leon
Facultad de Ingeniera Mecanica y Electrica
Ttulo del Estudio:
Asignacion de Recursos de Transporte: Un Enfoque Practico
N umero 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
mayora de las compa nas requieren de vehculos para la recoleccion y entrega dentro
de una red de suministro o demanda. La utilizacion y ruteo eciente de esta otilla es
el centro de la mayora de los problemas de ruteo.
Particularmente los gerentes de distribucion se cuestionan cuantos vehculos son
necesarios para satisfacer demanda a un costo mnimo? Esta pregunta es difcil de
contestar dada la enorme gama de combinaciones de mezcla de otilla 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 vehculos, generalmente
se comparten las siguientes caractersticas: un conjunto de rutas debe ser dise nado para
los vehculos; su origen y n debe ser un deposito central. Los costos de ruteo asociados
con los vehculos son una parte de la composicion total de los costos de distribucion y
el costo de adquisicion de otilla y mantenimiento.
En este trabajo consideramos el problema de ruteo con m ultiples tipos de vehculos
simultaneamente con la determinacion de la composicion de la otilla 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 (jos) y
los costos de ruteo (variables).
Suponemos que tenemos una cantidad disponible de cada tipo de vehculos, al menos
igual al n umero de clientes. La demanda de cada uno de los clientes es mas grande que
la capacidad de cualquier vehculo. 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 conguracion de red es com un donde los puntos de demanda son centros
de distribucion y no los clientes nales.
En contraste con el clasico problema de ruteo, un cliente tiene que ser visitado
varias veces (tal vez por el mismo vehculo) en orden de satisfacer su demanda ademas
se supone que se pueden dividir los envos. Se consideran ventanas de tiempo suaves
para permitir que el vehculo llegue a un cliente antes o despues de esta ventana, en
consecuencia el vehculo incurre en costos adicionales dado las penalizaciones.
Tambien son consideradas las ventanas de tiempo duras en consecuencia se le prohbe
al vehculo 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
Captulo 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 antig uedad 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 vehculos sencillos. De igual manera se construan caminos
y estaciones de carga y descarga, el control e inspeccion solo concerna a los via-
jantes. Hoy en da el movimiento de los vehculos se debe a motores, la construccion de
caminos y terminales. Existen nuevas tecnologas 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 vehculos, 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
CAP

ITULO 1. INTRODUCCI

ON 2
con mecanismos para almacenar combustible o energa para funcionar, diferenciar entre
objetos y personas en las terminales, asignar y contener cargas de manera eciente para
ir de un lugar a otro.
Al paso de los a nos 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: vehculos, un camino por donde transitar y terminales operando
bajo cierta poltica de control.
La clara denicion 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
vehculos 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 denen
el camino fsico que utilizaran los vehculos 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 poltica de control se reere 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 clasican la toma de decisiones
auxiliada por la ciencia de transporte
La manera en que nos comportamos al conducir un vehculo es decir las decisiones
CAP

ITULO 1. INTRODUCCI

ON 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 denen de manera colectiva una rama de la ciencia del transporte.
Cuando queremos explicar fenomenos como la manera en que uyen los vehculos
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 ujo sobre
un camino y sus relaciones con la disminucion de velocidad, el aumento de la densidad
y como ocurren las primera las o acumulamientos de vehculos en las calle, se recurre
a otra rama de la ciencia de transporte ampliamente estudiada y conocida como ujo
en traco 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 vehculos 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.
Dise nar las redescaminos 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 dise no consiste en la localizacion de los almacenes, centros
productivos, depositos de vehculos, estaciones y en el trazo de los caminos que seran
utilizados y que uniran las instalaciones fsicas unas con otras. Ejemplos de como deben
CAP

ITULO 1. INTRODUCCI

ON 4
ser dise nadas esta rutas las encontramos a diario los ros, el sistema circulatorio o hasta
en la forma de los arboles, sin embargo la construccion de redes por el hombre buscando
ser mas sosticada a creado otras estructuras como las de mallas cuadriculadas, redes
de anillos centricos y las de hub and spoke . Hacer estos dise nos de la manera mas
eciente, es decir que siempre generen un benecio 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 com un en que se conoce al transporte es
como una actividad economica. Sabemos que sin esta actividad sera imposible disponer
de cualquier tipo de producto en el lugar que quisieramos. Esta generalizacion nos hace
pensar en otro concepto conocido como logstica .
La transportacion y logstica 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, Logstica
industrial, Sistemas de respuesta rapida, Administracion de cadena de suministro. En
un intento por estandarizar la idea el Consejo de Administracion Logstica (The Council
of Logistics Management [CLM]) a proporcionado esta denicion [3] para logstica.
El proceso de planeacion, implementacion y control efectivo y eciente, del ujo
y almacenamiento de bienes, servicios e informacion, desde un punto de origen
hasta un punto de consumo, con el proposito de cumplir con requerimientos de
un cliente.
Basados en esta denicion ubicamos al transporte como parte de las actividades de
la logstica, 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
CAP

ITULO 1. INTRODUCCI

ON 5
involucra la seleccion del modo (ej. avion, tren, barco, camion o tuberas), ruteo de
los embarques, asegurar el cumplimiento de las reglas del lugar donde se originan los
embarques y la seleccion de una compa na de transporte.
La importancia de esta se basa principalmente y en la mayora de las casos por su
participacion en los costos totales de las actividades logsticas.
Un sistema de transportacion eciente es el sello distintivo de una sociedad in-
dustrializada a un y cuando su inuencia 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 lneas
de produccion como consecuencia de un incumplimiento de estos dos valores Tiempo y
Lugar.
Compa nas 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.
CAP

ITULO 1. INTRODUCCI

ON 6
En general los factores que inuyen 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 el
producto
Factores relacionados con el
mercado
Densidad Localizacion de mercados
Estibamiento Legislacion actual para los trans-
portistas
Manejo Balance del traco que entra y sale
del mercado
Responsabilidad por valor del pro-
ducto
Temporizacion de los productos
Transporte domestico o interna-
cional
Tabla 1.1: Factores que inuyen en costo del transporte
De todos los modos de transporte disponiblesautotransporte, 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 pas
como se muestra en la graca 1.1 .
El transporte de carga es el principal modo de transporte para muchos de los produc-
tos manufacturados como artculos deportivos, juguetes, artculos electronicos, enseres
domesticos, ropa, medicamentos, equipo de ocina y en un 75 % es la eleccion para
transportar productos agrcolas, 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 conable con una mnima perdida o da no 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 peque nos embarques con el aereo, y contra el tren en los
CAP

ITULO 1. INTRODUCCI

ON 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 eciente que se vuelven las operaciones de carga y entrega de mercancas en las
terminales camioneras en comparacion con las terminales aereas para cualquier tama no
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 exibilidad 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 tama no y peso a cualquier distancia. Por su exibilidad
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 conables tiempos de transito. La ten-
dencia a utilizar esta forma de transporte va en aumento dada su compatibilidad con
1
Just in Time, metodologa japonesa para un desempe no de inventarios cero
CAP

ITULO 1. INTRODUCCI

ON 8
las necesidades de la industria por mover sus productos, mientras los proveedores de
estos servicios se esmeren en proveer un rapido y eciente 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 a nos 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 benecios 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 especca de mercado al mismo tiempo que se disminuyen la frecuencia de los
envos 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
CAP

ITULO 1. INTRODUCCI

ON 9
jar las rutas en lugar de tener rutas variables para algunos embarques y modicacion
a las horas de recepcion de producto por parte del cliente, si el cliente puede aceptar
entregas fuera de los horarios crticos, el transportista tendra una ventana de tiempo
mas grande que le permitira una mejor administracion del uso de los vehculos.
En general los benecios para los transportistas que mejoran su ruteo y secuenci-
amiento incluyen mayor utilizacion de los vehculos, 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 compa nia fabricante de
helados con 2500 tiendas en EU al utilizar una herramienta computacional para deter-
minar rutas y secuencias de su otilla de transporte obtuvo ahorros de un 10 % de las
millas recorridas totales de la otilla, lo que se traduce en un benecio 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.
CAP

ITULO 1. INTRODUCCI

ON 10
Como objetivos de este modelo tenemos:
Denir la cantidad optima de recursos de transporte que minimice el costo total
de transporte (jo + variable).
Cumpliendo con las siguientes restricciones.
Volumen a mover.
Ventanas de carga en los orgenes.
Ventanas de descarga en los orgenes
La manera mas clara de ver el objetivo es poder responder a las preguntas Que vehcu-
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 Captulo 2 pre-
sentamos un amplio recorrido por la historia de los trabajos que han buscado trabajar
variantes de este problema. El Captulo 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 Captulo 4 comprende el estudio
de dos casos practicos presentados por Sintec. Enseguida se presentan los experimentos
hechos con problemas aleatoriamente generados en el Captulo 5 y en el Captulo 6 se
presentan las conclusiones y las recomendaciones para los trabajos futuros.
Captulo 2
El problema y sus antecedentes
Desde la propuesta de Dantzig para resolver el problema de asignacion de vehculos
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 consista en la la entrega de gasolina
a las estaciones de servicio. Unos a nos mas tarde Clarke y Wright proponen una efectiva
heurstica greedy que mejora la solucion de Dantzing-Ramser. A mas de 40 a nos de la
publicacion de estos artculos, se han propuesto muchos modelos, tecnicas de solucion
exactas, aproximaciones por heursticas para resolver el VRP y sus variantes. En este
captulo abordaremos algunos de estos modelos al igual que algunas de las metodologas
exactas y heursticas utilizadas en los ultimos a nos.
2.1. Introduccion a los problemas de ruteo.
La b usqueda 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
signicativos entre el 5 % al 20 % de los costos totales de transporte. Estos costos por
11
CAP

ITULO 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 Vehculo(VRP) o Problema
de Asignacion de Vehculos (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 vehculos a traves de
caminos trazados(red de distribucion)
Habitualmente los VRPs son una perfecta descripcion de los sistemas de distribu-
cion de compa nas 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 caractersticas en los elementos basicos del problema como: red de
caminos, clientes, depositos, vehculos y conductores se pueden diferenciar entre varias
deniciones 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 dirigdos o no dirigdos dependiendo de la conguracion 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 vehculo y el perodo durante el cual el arco es recorrido.
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 13


2. Los clientes pueden asumir las siguientes caractersticas:
Son localizados en los vertices del grafo,
Se dene una cantidad de productos (demanda) posiblemente de diferentes
tipos para ser entregados o recolectados
Perodos 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 vehculo
Un subconjunto de vehculos 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 n umero de
vehculos asignados, cantidad de productos para los que tiene capacidad. En al-
gunos casos los clientes son asignados a priori a cada deposito, y los vehculos
tienen que regresar al deposito al terminar el da.
4. Para efectuar la transportacion de los productos se usan otillas de vehculos que
pueden estar compuestas de manera homogenea o heterogenea de acuerdo a los
requerimientos de los clientes las caractersticas que presentan son:
Asignacion a un deposito central y la posibilidad de terminar su servicio en
un deposito diferente
Capacidad del vehculo expresada como el maximo de peso, volumen, n umero
de pallets que un vehculo puede cargar.
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 14


Posible division del vehculo 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 vehculos ($/km , $/hr )
5. Hay restricciones de operacion referentes a los vehculos como las derivadas por
la contratacion de conductores de los vehculos y a las rutas, maxima carga del
vehculo, clientes de solo entrega, solo recoleccion o ambas.
2.2. Trabajos sobre ruteo de vehculos con ventanas
de tiempo
El problema de ruteo de vehculos con ventanas de tiempo (VRPTW) es una exten-
sion del problema de ruteo de vehculos con capacidad (CVRP) en el que se considera
lo siguiente; los vehculos tienen una capacidad limitada y cada cliente i tiene incor-
porado un intervalo de tiempo [a
i
, b
i
] al que llamaremos ventana de tiempo . Tiempo
de viaje dado para cada punto (i, j) mas un tiempo de servicio para cada cliente s
i
. 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 s
i
, en caso de
que el vehculo llegue antes del tiempo a
i
se le esta permitido esperar hasta que inicie
el servicio.
El VRPTW consiste en encontrar una coleccion exacta de de P circuitos simples un
mnimo costo que cumpla con lo siguiente:
Cada circuito visita el deposito.
Cada cliente se encuentra en un solo circuito.
CAP

ITULO 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 vehculo.
Para cada cliente i el servicio inicia con la ventana de tiempo [a
i
, b
i
] y el vehculo
se detiene s
i
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 a nos
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 vehculos. Solomon y Desrosiers en[24] son
mas especcos en problemas de ruteo con restricciones de temporalidad algunos a nos
mas tarde Desrosieres et al. actualizo este estudio y lo publica en [12]. En cuanto a los
metodos de solucion heursticos 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.
Christodes et al. [31] denieron una tecnica que combina la solucion por medio
de ramicacion 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 mni-
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 16


mo costo de ujo en redes con restricciones de tiempo, con este se pudo resolver exi-
tosamente algunos problemas de secuenciamiento de vehculos escolares con hasta 233
nodos.
Psaraftis [9] estudio el problema de un vehculo con visita a varios puntos bajo
demanda, donde varios puntos se reere a diferentes puntos de recoleccion y entrega de
bienes, nos referimos al concepto de bajo demanda a que la utilizacion del vehculo 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 vehculo. 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 sucientemente 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 lnea de investigacion, Sexton y Bodin [36] trabajaron
el mismo problema con restricciones en los tiempos de entrega y desarrollaron una
heurstica 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: ramicacion y cotas o programacion
dinamica. Estas tecnicas pueden resultar con tiempos de computo muy largos dada la
dicultad 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
ramicacion y cortes.
Kolen et al. [1] estudiaron el VRPTW considerando solo un deposito y un solo tipo de
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 17


servicio (entrega o recoleccion) exclusivamente. Utilizando una tecnica de ramicacion
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 tama no
de los problemas, se puede se nalar el tama no y la frecuencia de la ventana como el
factor mas importante para determinar la dicultad del problema. Ni la capacidad del
vehculo ni jar el numero de vehculos 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 implcitamente. Ya que este n umero 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 a un 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 ramicacion 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.
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 18


La combinacion de planos cortantes con una b usqueda exhaustiva es conocida co-
mo ramicacion 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 identicar mas cortes por el procedimiento de separacion o el efecto de
cualquier desigualdad es marginal y la ramicacion 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 Homan y Padberg [18] para resolver un problema de secuenci-
amiento de tripulacion de aerolneas, otro trabajo es el de Aranque [10] desarrollo un
algoritmo ramicacion y corte para un problema de ruteo de vehculos con clientes
identicos, Augerat [33] presenta nuevas desigualdades para el problema de capacidad
simetrica de ruteo de vehculos.
La solucion por metodos exactos de este problema solo es efectiva en tiempo en
problemas de tama no relativamente chico, esto hace util el uso de tecnicas heursticas.
Una tecnica heurstica es capaz de encontrar buenas soluciones en un tiempo menor
esto hace que sean tecnicas atractivas de solucion para los problemas de gran tama no
que se encuentran en la industria. A continuacion se citaran algunos trabajos que hacen
uso de las tecnicas heursticas 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 nalmente un procedimiento de cambio
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 19


de rama para asegurar que las restricciones temporales son satisfechas. Solomon [22]
propuso una heurstica de insercion secuencial para el problema de minimizacion del
tama no de la ota 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 heurstica es (n), donde
n es el n umero de clientes, se puede encontrar a mas detalle la explicacion del uso de
esta heurstica en [23], esto signica que en el peor caso la proporcion de la diferencia
de la solucion de la heurstica contra la solucion optima crece proporcionalmente con
el n umero de clientes. Potvin y Rousseau [11]desarrollaron una heurstica 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 heursticas usualmente son complementadas por tecnicas de b usque-
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 peque no
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 Schaer [5]estudiaron algunos procedimientos de b usqueda local para el
VRPTW modicando 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 vehculos. 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 heursticas utilizadas para la solucion del VRPTW , las que
tecnicas probabilsticas han recibido mayor atencion por parte de los investigadores
CAP

ITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 20


debido a su habilidad para trascender de una optimalidad local. Este mejoramiento en
la b usqueda se alcanza por la diversicacion 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 b usqueda 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 b usqueda tabu, este algoritmo utiliza
un algoritmo de intercambio especial, con el n de aprovechar al solucion dada por la
heurstica determinstica de Solomon. Potvin and Bengio [16] siguieron una forma de
trabajo similar y usan las soluciones obtenidas por la heurstica de Solomon para generar
nuevas soluciones a partir de un algoritmo genetico. Rochat y Tailard en [37] trabajan
con una heurstica de probabilidad que aprovecha las capacidades de diversicacion e
intesicacion de anteriores trabajos con b usqueda 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 vehculos y el ruteo de vehculos
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.
Captulo 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
mayora de las compa nas requieren de vehculos para la recoleccion y entrega dentro
de una red de suministro o demanda. La utilizacion y ruteo eciente de esta otilla es
el n ucleo de la mayora de los problemas de ruteo.
Una pregunta que se efect ua con frecuencia por los gerentes de distribucion es
Cuantos vehculos son necesarios para satisfacer una demanda a un costo mnimo?
Esta pregunta es difcil de contestar dada la enorme gama de combinaciones de mezcla
de otilla y rutas que pueden existir, abriendo la posibilidad de formular el problema
presentado en esta tesis.
3.1. Introduccion
Los problemas de ruteo de vehculos 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
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 22
clientes nales.
Para realizar el transporte desde las plantas hasta los centros de distribucion, existe
un proceso de seleccion del tipo y la cantidad de vehculos 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 jo que es en el que se incurre por la adquisicion del vehculo 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 vehculo sea utilizado.
Ademas de estos, nuestra red de distribucion esta sujeta a horarios de atencion para
carga y descarga de los vehculos 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 n umero ilimitado de vehculos disminuira el incumplimiento en las ventanas
de tiempo de los Centros de distribucion as como un menor n umero de viajes
totales a cada CD. Como consecuencia el costo jo total de la otilla ser a muy
alto.
Con un n umero limitado de vehculos el incumplimiento en las ventanas de tiempo
en los CD sera mayor, ademas el n umero de viajes tambien sera mas grande, lo
que hace nuestro costo variable aumente .
CAP

ITULO 3. EXPOSICI

ON 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-
sultora en Generacion de Valor, a traves del desarrollo e implementacion estrategias y
tecnologas que fortalezcan el desempe no de la Cadena de Valor. Dentro de las consul-
toras establecidas en Mexico, Sintec es uno de los principales generadores de educacion
y capacitacion en temas de Cadena de Demanda, Cadena de Suministro, Tecnologa 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 lder 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 a nos de excelentes
resultados con sus clientes, por su cercana con la practica de las tecnicas de la inves-
tigaci on 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
acept o como una propuesta seria de trabajo y tenemos el orgullo de ser aceptados para
presentar una solucion a un problema tpicamente 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.
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 24
3.1.3. Modelos Matematicos
La informacion presentada por Sintec describe el problema expuesto en la introduc-
cion de este captulo. 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 vehculos con ventanas de
tiempo se penso que se podra 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 mayora 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 el 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 permitira 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 Vehculo es usado una sola vez
Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo
Existe un solo tipo de vehculos, es decir todos los vehculos tienen las mismas
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 25
caractersticas de capacidad.
Las rutas son jas y enumeradas
Resultados de este modelo: Este modelo no ofrece ninguna optimizacion sobre los
costos de transporte solo cumple con la asignacion de un vehculo por cliente como
mnimo y si requiere hacer mas viajes para satisfacer demanda asigna un vehculo
nuevo por cada viaje extra que requiera para satisfacer demanda. Es importante saber
que la capacidad del vehculo 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 vehculo 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 vehculos, es decir todos los vehculos tienen las mismas
caractersticas de capacidad
Las rutas son jas y enumeradas
Resultados de este modelo: Como consecuencia de permitir hacer varios recorridos
por vehculo, la cantidad de vehculos asignados es igual al n umero 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 vehculo 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 vehculos para evitar violaciones en los horarios de los centros de distribucion.
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 26
3. Modelo III
Las consideraciones de este modelo son las siguientes:
El vehculo parte del deposito con el n 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 vehculos, diferenciados por su capacidad.
Resultados de este modelo: Contar con hasta tres tipos de vehculo hace una asignacion
de estos de acuerdo a las demandas de los clientes y a las diferentes capacidades de los
vehculos. 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 n umero menor de veces.
Como resultado nal 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 nales. 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
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 27
3.2.1. Suposiciones del problema
1. Se satisface la demanda de todos los clientes. Esto signica 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 vehculos. 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
vehculo de acuerdo a las ventanas de tiempo de los centros de distribucion
3. Existen las penalizaciones por llegada fuera del horario de servicio. Esto signica,
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
jar 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 sacrique el nivel de
servicio estas tarifas se ajustan en costos a los que el modelo eval ua, y as obtener
una seleccion entre salir del horario permitido o adquirir mas vehculos de acuerdo
al costo.
4. La capacidad maxima de cualquiera de los tipos de vehculos disponibles es inferior
a la demanda de los centros de distribucion, es decir en un solo camion y un viaje
no se podra satisfacer la demanda.
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 28
5. Los vehculos 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 m ultiplo de la capacidad de los vehculos. 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 da.
6. El problema es determinstico.
3.2.2. Denicion del Modelo Matematico
1. El modelo matematico resultante, denido 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 vehculos
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 Vehculos k K = {1, 2, 3..K}


CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 29
Parametros
E
i
= La hora de apertura de la ventana de tiempo en cada cliente i I.
L
i
=La hora de cierre de la ventana de tiempo en cada cliente i I.
C
ikt
= Costo de viaje al cliente i con el vehculo k del tipo t; i I, k K, t T.
F
kt
=Costo Fijo del vehculo k del tipo t; k K, t T.
Cd
i
=Costo por llegada tarde al cliente i; i I.
Ce
i
=Costo por llegada temprano al cliente i; i I.
D
i
=Demanda en cada cliente i ;i I.

i
=Tiempo que dura el recorrido al cliente i; i I.
Q
kt
=Capacidad del vehculo k tipo t; k K, t T.
Variables
X
ijk
=

1 Si el cliente i es visitado en el viaje j por el vehiculo k.


0 Si no
Y
k
=

1 Si el vehculo k es usado
0 Si no
S
jk
=Tiempo en que sale el vehculo k en el viaje j.
W
+
ijk
=Tiempo que espera el vehculo k en el cliente i en su viaje j
W

ijk
=Tiempo que esta retrasado el vehculo 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
vehculo k, asi en cualquier viaje j el vehculo k puede estar con un cliente o permanecer
en el deposito (i = 0)
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 30
Formulacion
mn

k
F
k
Y
k
+

ijk

C
ik
X
ijk
+Ce
i
W
+
ijk
+Cd
i
W

ijk

(3.1)
Sujeto a:
X
0jk
+

i=0
X
ijk
= 1; j J, k K (3.2)

Q
k
X
ijk
d
i
; i I/0 (3.3)
J
k

X
0jk
Y
k
J
k
; k K (3.4)
S
j+1,k
S
jk
+

X
ijk
2
i
; j J, k K (3.5)
W
+
ijk
E
i
X
ijk
(S
jk
+
i
X
ijk
) ; i I, j J, k K (3.6)
W

ijk
(S
jk
+
i
X
ijk
) L
i
M (1 X
ijk
) ; i I, j J, k K (3.7)
X
ijk
, Y
k
{0, 1} , W
+
ijk
, W

ijk
, S
jk
0 (3.8)
La expresion 3.1 representa la funcion objetivo donde se minimiza el total de los
costos jos, 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
decisi on X
ijk,
Y
k
, W
+
ijk
, W
+
ijk
que minimicen el costo total.
El conjunto de las restricciones 3.2 asegura que para cualquier viaje un vehculo
se encuentra exactamente en un cliente o en el deposito (cliente (0). Una restriccion
obligatoria en la mayora 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 vehculo permanece en todos los viajes en el deposito este no ha sido usado. Las
CAP

ITULO 3. EXPOSICI

ON 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
vehculo 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 (X
ijk
= 0) entonces no hay costo por
llegar temprano dado que (W
+
ijk
= 0), si el cliente si es visitado (X
ijk
= 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 n de la ventana de tiempo. Aqu M es
un n umero entero positivo(M > S
jk
L
i
).
Es claro que en 3.6 y en 3.7 W
+
ijk
0 solo para S
jk
+t
i
< E
i
mientras que W

ijk
0
solo para S
jk
+t
i
> L
i
. As para E
i
< L
i
siempre existe

W
+
ijk

W

ijk

= 0. La solucion
de 3.1-3.8 indica la cantidad de vehculos a ser usados (Y
k
), provee de un programa de
distribucion dado por el orden de las visitas (X
ijk
) y el horario en que los vehculos
deben despacharse en cada viaje (S
jk
).
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 dicultad 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 categoras principales de algoritmos de
solucion:[2]
(a) Algoritmos Exactos, estos aseguran la obtencion de una solucion optima a expensas
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 32
de un n umero alto de iteraciones. Dentro de este grupo se encuentran los algoritmos
planos cortantes, ramicacion - cota, ramicacion-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 heursticos proveen una solucion suboptima , pero sin garantizar su cal-
idad, ademas su tiempo de ejecucion no se garantiza que sea polinomial, estudios
empricos apuntan a que en la mayora de los casos se logra una buena solucion
rapidamente, algunos ejemplos de estos metodos son las b usquedas locales, reco-
cido simulado, b usqueda TABU, Algoritmos geneticos.
En la b usqueda de la solucion de nuestra formulacion se utiliza la tecnica de rami-
cacion-cota, esta es muy utilizada en las herramientas computacionales dise nadas para
resolver estos problemas. Como se explica mas adelante las herramientas computa-
cionales logran implementar estos algoritmos con exito ademas de resolver problemas
muy grandes en poco tiempo.
3.3.2. Herramientas Computacionales
Aunque las tecnicas de solucion puedan realizarse a mano, en la realidad es difcil
encontrar problemas que se puedan solucionar de forma manual, el apoyo de las her-
ramientas computacionales ha permitido a traves de los a nos incrementar la dicultad
de los problemas a resolver, el avance en las tecnologas computacionales a dado, mas
libertad para plantear problemas mas complejos y que requieran de mas calculos.
Para solucionar el modelo matematico planteado en este trabajo se utilizaron dos
herramientas computacionales, la primera es el lenguaje modelador, este programa es
utilizado en la creacion del modelo matematico de forma que la computadora lo pueda
entender y as resolver. Existe gran variedad de modeladores matematicos entre los que
CAP

ITULO 3. EXPOSICI

ON DEL PROBLEMA 33
se encuentran LINDO, GAMMS, AMPL,XPress MP, etc [6]. Un lenguaje modelador
toma la formulacion matematica anteriormente descrita y transforma en un conjunto
de instrucciones que mas adelante podran ser interpretadas por otro programa conoci-
do como el motor de solucion (solver), esta es la segunda herramienta necesaria para
resolver problemas de optimizacion.
Entre los motores de solucion uno de los mas conocidos y robusto es CPLEX de Ilog
este motor de solucion contiene los algoritmos de solucion para PL,MIP,QP, ademas de
este existen otros solucionadores como LINGO, MOSEK,SOPT, XPress con variantes
de capacidad en el tipo de problemas que resuelven. En el articulo [6] se describe
una encuesta actualizada del software disponible para solucionar los problemas de la
programacion lineal.
Como lenguaje modelador para resolver nuestro problema se selecciono AMPL por
ser una herramienta en la que facilmente se puede implementar cualquier formulacion
matematica propuesta.
En AMPL la formulacion matematica se divide en dos elementos, uno el modelo
matematico es decir la funcion objetivo, las restricciones y las variables, el otro elemento
son los datos concretos del problema a resolver. Estos dos elementos se guardan por
separado en dos archivos uno es el modelonombre.mod y el que contiene los datos
modelonombre.dat.
Una vez que se tiene la formulacion del problema en AMPL se resuelve mediante
el solver CPLEX de Ilog, en nuestro caso Cplex implementa un algoritmo de Branch-
Bound muy similar al explicado anteriormente para resolver el problema. Para mas
detalle sobre AMPL y Cplex en la seccion de Apendices, se encuentra un resumen con
lo mas relevante de las herramientas.
Captulo 4
Casos Practicos
Con el apoyo de Sintec se pudieron plantear dos problemas practicos presentes en sus
clientes. Para dos empresas de productos de consumo que tuvieron la necesidad denir
el tama no y tipo de la ota de transporte para realizar la distribucion de sus productos.
En ambos casos se considera de gran importancia el nivel de servicio otorgado por estas
compa nias, y la implicaciones de no satisfacer al cliente por lo que la denicion de la
ota esta basada en supuestos de servicio.
4.1. Caso 1
Figura 4.1: Red de distribucion Valle de Mexico
El caso uno se localiza en una red de distribucion en el area del Valle de Mexico
34
CAP

ITULO 4. CASOS PR

ACTICOS 35
y esta formada por una planta de produccion y 13 centros de distribucion, la gura(
4.1)muestra la una vista de la red cada uno de estos centros de distribucion tiene horario
denido de apertura de 8:00 a.m y de cierre de 5:00 p.m, estos son estrictos en su
cumplimiento debido al enfoque de servicio en el que se estan plateando los problemas.
La tabla 4.1 muestra los datos de cada uno de los centros de distribucion en este caso
los costos por llegada adelantada o en retraso se consideran los sucientemente grandes
para evitar la llegada fuera de las ventanas y resolver el modelo con las ventanas de
tiempo duras.
Cliente Hora Costos Demanda Tiempo Recorrido
apertura cierre Adelantado Retrasado
Dep osito 0 24 0 0 0 0
La Viga 8 17 100000 100000 772.12 3.63
Vallejo 8 17 100000 100000 870.47 3.63
Zaragoza 8 17 100000 100000 2300.80 4.63
Tlalpan 8 17 100000 100000 2401.05 4.13
Iztapalapa 8 17 100000 100000 2674.23 4.04
Mixcoac 8 17 100000 100000 3671.67 4.63
Tlalnepanatla 8 17 100000 100000 4807.42 3.63
Cuatitlan 8 17 100000 100000 5156.43 1.63
Huixquilucan 8 17 100000 100000 7999.24 4.13
Reyes 8 17 100000 100000 8521.68 4.63
Chalco 8 17 100000 100000 8893.52 4.63
Texcoco 8 17 100000 100000 10878.64 5.63
Coacalo 8 17 100000 100000 12452.37 5.125
Tabla 4.1: Parametros clientes
Los datos de los vehculos utilizados se presentan en la siguiente tabla
Vehculos Costo jo Capacidad
1-29 10000 1440
30-50 15000 2880
Tabla 4.2: Parametros de los vehculos
Para cada destino se tiene diferente costo variable dependiendo de factores como la
distancia y tipo de caminos transitados
CAP

ITULO 4. CASOS PR

ACTICOS 36
Destino Costo Variable
Laviga $1103
Vallejo $1116
Zaragoza $1181
Tlalpan $1168
Iztapalapa $1094
Mixcoac $1116
Tlalnepantla $1160
Cuatitlan $1203
Huixquilucan $1081
Reyes $1203
Chalco $1344
Texcoco $1269
Coacalco $1291
Tabla 4.3: Costos Variables a cada destino
Como resultado del modelo se obtiene un programa de distribucion con detalle en
las horas a las que debe salir, el destino de cada vehculo, por cada uno de los viajes
de salida, para este problema el maximo n umero de viajes que puede realizar cada
vehculo es de 7 dado el tiempo de recorrido que hay entre el deposito y los centros de
distribucion.
Los resultados de secuenciamiento se presentan a continuacion.
Estos estan divididos en dos partes de acuerdo a la capacidad de los vehculos
primero se muestran los vehculos de capacidad sencilla ver tabla 4.4 es decir trailer
de una caja. A continuacion se presenta el programa de distribucion para los vehculos
dobles o full ver la tabla(4.5).
Los resultados mostrados en estas tablas se pueden ilustrar con el siguiente ejemplo:
El vehculo 1 inicia su viaje hacia Reyes a las 3.37 (aproximadamente las 3:22 horas),
regresa al deposito a las 12.63 (aproximadamente las 12:37), por las consideraciones
hechas en este problema suponemos disponibilidad inmediata para iniciar el siguiente
viaje, as el vehculo 1 es asignado para seguir hacia Vallejo. Una conclusion impor-
CAP

ITULO 4. CASOS PR

ACTICOS 37
Programa de Distribucion
Vehculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad
1 Reyes 3.37 9.26 12.63
1 Vallejo 12.63 7.26 19.89
2 Coacalco 2.875 10.25 13.125
3 Huixquilucan 3.87 8.26 12.13
3 Reyes 12.13 9.26 21.39
4 Huixquilucan 3.87 8.26 12.13
4 Chalco 12.13 9.26 21.39
5 Chalco 3.87 9.26 13.13
6 Chalco 3.37 9.26 12.63
7 Coacalco 2.875 10.25 13.125
8 Reyes 3.37 9.26 12.63
8 La Viga 12.63 7.26 19.89
9 Chalco 3.37 9.26 12.63
10 Chalco 3.37 9.26 12.63
11 Reyes 3.37 9.26 12.63
12 Coacalco 2.875 10.25 13.125
13 Coacalco 2.875 10.25 13.125
14 Coacalco 2.875 10.25 13.125
Tabla 4.4: Resultados Clientes Vehculos Sencillos
tante de los resultados obtenidos es que de un total de 50 vehculos disponibles solo
se requieren 25 para la satisfaccion de la demanda de los 13 clientes asignados de la
siguiente forma: 14 vehculos de capacidad sencilla y 11 vehculos de doble capacidad.
Los resultados como el tiempo de solucion se muestran en la siguiente tabla ( 4.6).
Aunque en este tiempo no obtenemos una solucion optima nuestra solucion factible
alcanzada en 1 hora resulta una excelente propuesta dado el n umero de vehculos a
utilizar en total para cumplir con el servicio.
Es importante mencionar que la optimalidad del problema resulta ser un criterio
subjetivo para evaluar la efectividad de nuestro modelo, la optimalidad de un resultado
en este tipo de problemas se comprueba hasta que se explora la totalidad del arbol
creado por el metodo de ramicacion y cota.
En su aplicacion en los problemas reales, este arbol puede alcanzar un tama no en
CAP

ITULO 4. CASOS PR

ACTICOS 38
Programa de Distribucion
Vehculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad
15 Reyes 3.37 9.26 12.63
15 Tlapan 12.63 8.26 20.89
16 Tlalnepantla 4.37 7.26 11.63
16 Mixcoac 11.63 9.26 20.89
17 Iztapa 3.96 8.08 12.04
17 Chalco 12.04 9.26 21.3
18 Texcoco 2.37 11.26 13.63
18 Cuatitlan 13.63 3.26 16.89
19 Texcoco 2.37 11.26 13.63
20 Mixcoac 3.37 9.26 12.63
20 Huixquilucan 12.63 8.26 20.89
21 Huixquilucan 3.87 8.26 12.13
21 Zaragoza 12.13 9.26 21.39
22 Tlalnepantla 4.37 7.26 11.63
22 Coacalco 11.63 10.25 21.88
23 Coacalco 2.87 10.25 13.12
24 Texcoco 2.37 11.26 13.63
25 Texcoco 2.37 11.26 13.63
25 Cuatitlan 13.63 3.26 16.89
Tabla 4.5: Resultados Clientes Vehculos Dobles
el que por la restriccion del tiempo la exploracion total del arbol resulta intrascendente
cuando con un tiempo lmite se alcanza una solucion que satisface el requerimiento de
benecios esperados.
Nombre del Problema Tiempo CPU Nodos

Arbol Objetivo
VrpSin1 3,706 Seg 31,513 $ 350,136
Tabla 4.6: Resultados Caso Practico 1
4.2. Caso 2
El caso dos se presenta para otro cliente de Sintec, en este la red de distribucion varia
un poco y solo modelamos un segmento de los clientes de esta empresa de productos
CAP

ITULO 4. CASOS PR

ACTICOS 39
de consumo (GAMESA). La red esta formada por una planta productora situada en
Monterrey, N.L y 5 de sus clientes de mayor volumen y con entrega centralizada en sus
centros de distribucion, este tipo de clientes fue seleccionado por las suposiciones en las
que se baso la formulacion del modelo general.
Figura 4.2: Red de distribucion Clientes Centralizados
Es decir estos clientes cumplen con los requisitos de tener una demanda mayor a la
capacidad de los vehculos disponibles, poder ser visitados mas de una vez si es necesario
para satisfacer la demanda y tener ventanas tiempo para recepcion de producto.
De igual manera que con el caso uno se presentan los datos de este problema en la
tabla 4.7
Cliente Hora Costos Demanda Tiempo Recorrido
apertura cierre Adelantado Retrasado
Planta 0 0 0 0 0 0
HEB 6.5 22.5 100000 100000 191 8.54
GCA 7 22 100000 100000 114 4.11
SCM 0 23.98 100000 100000 142 6.93
WBM 0 12 100000 100000 240 5.88
WSC 0 12 100000 100000 201 5.8
Tabla 4.7: Parametros clientes Caso 2
CAP

ITULO 4. CASOS PR

ACTICOS 40
Los datos de los vehculos utilizados se presentan en la siguiente tabla
Vehculos Costo jo Capacidad
1-10 10000 24
11-15 20000 40
Tabla 4.8: Parametros de los vehculos
En este caso, cada uno de los clientes esta situado en un rango de distancia consi-
derado por la empresa como un permetro mnimo o local por lo que el costo en el
que se incurre en cada uno de los viajes es el mismo.
Destino Descripcion Costo Variable
HEB HEB $300
GCA Gigante $300
SCM Soriana $300
WBM Walmart Mty $300
WSC Walmart Super C $300
Tabla 4.9: Costos Variables a cada destino
El resultado de este problema de igual forma se presenta como un programa de
distribucion en el que se detalla la hora de salida y el destino de cada uno de los viajes
ejecutados. Para este problema el n umero maximo de viajes que puede realizar un
vehculo es de 5. Es decir el cliente mas cercano se encuentra a 4.1 horas de distancia
de la planta de produccion, por lo que en 24 horas cualquier vehculo cuando mucho
podr a ir y venir 5 veces a este cliente, de acuerdo a esta relacion mientras mas lejos
este el cliente menos viajes consecutivos en un da se pueden realizar a este.
Otra consideracion es que el tiempo denido en los parametros ya incluye los tiempos
de carga y descarga y son totalmente simetricos.
Los resultados para este caso resultan muy buenos puesto que actualmente se cuenta
con una ota dedicada de 15 vehculos y nuestros resultados generan un programa que
satisface la demanda de los clientes con 7 vehculos.
CAP

ITULO 4. CASOS PR

ACTICOS 41
Programa de Distribucion
Vehculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad
2 WBM 0 5.88 5.88
2 WSC 5.88 5.8 11.68
2 HEB 11.68 8.54 20.22
2 SCM 20.22 6.92 27.14
4 WSC 0 5.8 5.8
4 WBM 5.8 5.88 11.68
4 HEB 11.68 8.54 20.22
4 SCM 20.22 6.92 27.14
6 WSC 0 5.8 5.8
6 WSC 5.8 5.8 11.6
6 HEB 11.6 8.54 20.14
6 SCM 20.14 6.92 27.06
Tabla 4.10: Programa de Distribucion Clientes Autoservicio
De estos tres son de capacidad sencilla como se ve en la tabla (4.10).
Y los restantes cuatro, de capacidad doble los resultados se presentan en la tabla(4.11)
Programa de Distribucion
Vehculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad
12 WSC 0 5.8 5.8
12 WBM 5.8 5.88 11.68
12 GCA 11.68 4.1 15.78
12 GCA 15.78 4.1 19.88
13 WBM 0 5.88 5.88
13 WSC 5.88 5.8 11.68
13 HEB 11.68 8.54 20.22
13 SCM 20.22 6.92 27.14
14 WSC 0 5.8 5.8
14 WBM 5.8 5.88 11.68
14 GCA 11.68 4.1 15.78
14 HEB 15.78 8.54 24.32
Tabla 4.11: Programa de Distribucion Clientes Autoservicio
CAP

ITULO 4. CASOS PR

ACTICOS 42
Programa de Distribucion
Vehculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad
15 WBM 5.88 5.88 11.76
15 HEB 11.76 8.54 20.3
15 SCM 20.3 6.92 27.22
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 vehculos con los que se cuenta actual-
mente.
Nombre del Problema Tiempo CPU Nodos

Arbol Objetivo
VrpSin2 1,130 Seg 69187 $ 298,400
Tabla 4.13: Resultados Caso Practico 2
Captulo 5
Experimentos Computacionales
Dentro de este captulo se demuestran resultados de varios problemas generados
aleatoriamente con el n 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 vehculos
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 codi-
cacion de un programa en Lenguaje C++ y de la denicion de una nomenclatura clara
que nos permita identicar 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 justica en la rapidez con la que se pueden escribir problemas en los que la
cantidad de los clientes y vehculos nos generan tablas de datos de ms de 5 renglones
43
CAP

ITULO 5. EXPERIMENTOS COMPUTACIONALES 44


Nombre del Problema Signicado
vrpxxzzyy-j-h
xx Cantidad de clientes
zz Cantidad de vehculos
yy Tipo de vehculos
j N umero de viajes
h 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 vehculos
no consume mucho tiempo, sin embargo al querer probar nuestro modelo con instancias
mas grandes como, 50 vehculos 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: n umero de vehculos, n umero de
clientes, viajes, estos datos denen los conjuntos del modelo, ademas aleatoriamente
se generan los costos jos, 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 dene
a un problema de tama no 30 clientes con 30 vehculos 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 vehculos con ven-
tanas suaves de tiempo
Se ejecutaron pruebas de diferente tama no teniendo como criterio para denir los
vehculos iniciales como el mismo n umero que el de los clientes. Se probaron dos es-
CAP

ITULO 5. EXPERIMENTOS COMPUTACIONALES 45


cenarios: con un solo tipo de vehculo disponible y con vehculos 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 tama no 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 vehculo se presentan a conti-
nuaci on
Nombre del Problema Tiempo CPU Valor Objetivo
vrp3060-1-7 3.08 Seg $93,474
vrp3260-1-7 303.2 Seg $ 76,877
vrp4060-1-7 18.4 Seg $ 114,753
vrp4560-1-7-1 5.34 Seg $134,476
vrp5060-1-7 8.4 Seg $ 143,379
vrp50100-1-7-1 10.82 Seg $ 173,773
Tabla 5.2: Resultados Ventanas Suaves 1-tipo de vehculo
Los resultados deniendo varios tipos de vehculos se presentan a continuaci on
Nombre del Problema Tiempo CPU Valor Objetivo
vrp3030-2-7 3.05 Seg $36,573
vrp3060-3-7 3.21 Seg $ 105,235
vrp4030-2-7 596.9 Seg $ 85,668
vrp4030-3-7-1 .58 Seg -
vrp4030-3-7 106.46 Seg $ 54,392
vrp5060-3-7-1 3.28 Seg $ 169,340
vrp5060-3-7 497.76 Seg $ 133,135
vrp6075-2-7-1 17.94 Seg $ 181,266
vrp6075-2-7 5.64 Seg $ 1,166,241
vrp5060-2-7 5.69 Seg $ 126,991
Tabla 5.3: Resultados Ventanas Suaves
CAP

ITULO 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 jos y los
costos variables de cada ruta.
Nombre del Problema N. Cliente V. Originales V. Solucion
vrp3030-2-7 30 30 4
vrp3060-3-7 30 60 20
vrp4030-2-7 40 30 17
vrp4030-3-7-1 40 - -
vrp4030-3-7 40 30 8
vrp5060-3-7-1 50 60 33
vrp5060-3-7 50 60 26
vrp6075-2-7-1 60 75 46
2 vrp6075-2-7 60 75 54
vrp5060-2-7 50 60 39
Tabla 5.4: Resultados Vehculos utilizados con Ventanas Suaves
De igual forma que en los casos practicos es importante hacer notar la cantidad nal
de vehculos que se utilizaran para cumplir con el programa de distribucion propuesto
en la solucion de cada uno de estos problemas.
Figura 5.1: Clientes vs Vehculos utilizados
CAP

ITULO 5. EXPERIMENTOS COMPUTACIONALES 47


En los problemas con las ventanas de atencion suaves, se puede apreciar un uso
reducido de vehculos, como consecuencia del poder llegar en cualquier momento al
cliente, los vehculos son asignados a poder realizar un viaje en cualquier momento.
5.3. Problemas de Asignacion de vehculos 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 vehculos. Los
resultados de estos experimentos se muestran a continuacion. Tambien se consideran
los casos con diferentes tipos de vehculos.
Nombre del Problema Tiempo CPU Valor Objetivo
vrp3050-3-7-1-h 21,603 Seg $432832
vrp3050-3-7-h 21,603 Seg $ 1525350
vrp4060-3-7-1-h 21,603 Seg $ 5013390
vrp4060-3-7-h 21,603 Seg $3426420
vrp5060-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 $ 9486240
vrp6080-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
CAP

ITULO 5. EXPERIMENTOS COMPUTACIONALES 48


ejecuta cada uno de estos. En las tablas la celda con un guion signica que no se pudo
obtener la solucion entera antes de interrupcion.
Nombre del Problema N Clientes V. Originales V. Solucion
vrp3050-3-7-1-h 30 50 50
vrp3050-3-7-h 30 50 40
vrp4060-3-7-1-h 40 60 46
vrp4060-3-7-h 40 60 39
vrp5060-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 67
vrp6080-3-7-h 60 80 72
Tabla 5.6: Resultados Vehculos 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 lmite no es suciente.
Este mismo factor tambien incrementa el uso de vehculos, hace sentido que a un
menor tiempo en las ventanas de atencion de los clientes, se enven vehculos al mismo
tiempo, pues por las distancias a recorrer no alcanzara a realizar dos viajes y cumplir
con las ventanas.
Figura 5.2: Clientes vs Vehculos utilizados
Captulo 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 vehculos es signicati-
vamente menor que la demanda de los clientes.
Esto es tpico de los niveles mas altos de transportacion donde los productos necesi-
tan ser entregados desde una planta de produccion (deposito) a centros de distribucion
generales (clientes) usando vehculos relativamente peque nos.
Teniendo en cuenta esta suposicion se considera a la red con una topologa tipo
estrella, donde solo rutas directas entre el deposito y los clientes es permitida. Bajo este
sistema un cliente puede ser visitado repetidas ocasiones por el mismo vehculo y esta
es otra diferencia de los modelos clasicos.
6.2. Aportaciones
Se considera la principal aportacion de este trabajo la formulacion de un modelo
matematico que nace de una problematica real. Hasta el momento no se conoce un
49
CAP

ITULO 6. CONCLUSIONES Y RECOMENDACIONES 50


modelo del tipo entero mixto lineal con las suposiciones establecidas, los resultados se
consideran exitosos debido a su utilidad en una implementacion real.
Los resultados del presente trabajo han sido publicados en:
1. Cano Robles Israel(2005) The eet size and mix problem for vehicle routing in a
star-case network. En Techiniques and Methodologies for Modelling and Simula-
tion of Systems, Morelia, Mexico. Abril
2. Cano Robles Israel(2005) Modeling Vehicle Routing in a Star-Case Transportation
Network. En Memoria del XIV Congreso Internacional de Computacion CIC 2005,
D.F, Mexico. Septiembre
Y presentados en
1. Cano Robles Israel (2004)Asignacion de recursos de transporte sujeto a nivel de
servicio Ciclo de seminarios del PISIS, FIME, UANL, Mayo - Noviembre
2. Cano Robles Israel(2005) Asignacion de Recursos de transporte sujeto a nivel de
servicio. ENOAN XV, Morelia, Mexico. Abril
3. Cano Robles Israel(2005) The eet size and mix problem for vehicle routing in a
star-case network. International Conference on Modelling and Simulation AMSE
2005, Morelia, Mexico. Abril
4. Cano Robles Israel(2005) Modeling Vehicle Routing in a Star-Case Transportation
Network. En Memoria del XIV Congreso Internacional de Computacion CIC 2005,
IPN, D.F, Mexico. Septiembre
6.3. Recomendaciones
El estudio computacional indica que problemas de tama no mediano pueden ser
resueltos por software comercial en tiempo razonable. Sin embargo para problemas mas
CAP

ITULO 6. CONCLUSIONES Y RECOMENDACIONES 51


grandes son necesarias tecnicas de solucion mas rapidas. Estas puede ser un area para la
investigacion en el futuro. Ademas se pueden agregar algunos cambios en la formulacion
para considerar las siguientes situaciones:
Considerar la existencia de mas de un deposito central
Existencia de restricciones en la capacidad de recibo de vehculos en el tiempo, en
cada uno de los clientes. Es decir cuantos vehculos por hora pueden ser recibidos.
Posibilidad tener las ventanas de tiempo multiples. Es decir tener para varios das
diferentes horarios de recibo.
Bibliografa
[1] A. Kolen, A. Rinnooy Kan, and H. Mercure. Vehicle routing with timw windows.
Operations Research, 35(2):266-273, 1987.
[2] B. Dimitris, Tsitsiklis, John N. Introduction to Linear Optimization, Athena Sci-
entic,1997
[3] Council of Logistics Managment Whats It All About? Oak Brook, IL, 1993.
[4] E. Baker. An exact algorithn for the time constrained traveling salesman problem.
Operations Research, 31(5):938-945, 1983
[5] E. Baker and J. Schaer. Solution improvement heuristics for the vehicle rout-
ing and scheduling problem with time window constraints. American Journal of
Mathematical and Management Sciences, 6 (3,4):261-300,1988
[6] F. Robert, Software Survey: Linear Programming INFORMS OR/MS Today,
32(3),2005
[7] G.B. Dantzing and J.H. Ramser The truck dispatching problem.Management
Science, 6:80, 1959.
[8] Hall, H. Randolph, Handbook of Transportation Science, 2nd Edition, Kluwer Aca-
demic Publishers, 2003
[9] H. Psaraftis. A dynamic programming solution to the single vehicle many to many
immediate request dial-a-ride problem. Transportation Science, 14(2):154,1980.
52
BIBLIOGRAF

IA 53
[10] J.Aranque, G. Kudwa, T. Morin, and J. Penky. A branch-and-cut algorithm for
vehicle routing problems. Annals of Operations Research, 50: 35-59,1994
[11] J. Potvin and J. Rousseau. A parallel route building algorithm for the vehicle rout-
ing and scheduling problem with time windows. European Journal of Operational
Research, 66: 331-340, 1991
[12] J. Desrosiers, M. Solomon and F. Soumis. Time constrained routing and schedul-
ing. In M. Ball, T Magnati, C. Momma, G. Nemhauser, editors, Handbooks in
Operations Research and Management Science:Networks. North-Holland, 1994.
[13] J. Desrosiers, M. Sauve and F. Soumis. Langrangian relaxation methods for solving
the minimum eet size multiple traveling salesman problem with time windows.
Management Science 34(8):1005-1022,1988.
[14] J. Desrosiers, Y. Dumas, and F. Soumis. A dynamic programing solution of the
large-scale single- vehicle dial-a-ride problem with time windows. American Journal
of Mathematics and Management Sciences, 6(3&4):301-325,1986.
[15] J. Potvin, T. Kervahut, B. Garcia, and J. Rousseau. The vehicle routing problem
with time windows, Part I: Tabu search. INFORMS Journal on Computing, 8(2):
158-164,1996.
[16] J. Potvin and S. Bengio. The vehicle routing problem with time windows, Part II:
Genetic search. INFORMS Journal on Computing, 8(2):165-172,1996.
[17] K. Nygard, P. Greenberg, W. Bolkan, and E. Swenson. Generalized assignment
methods for the deadline vehicle routing problem. In B. Golden and A. Assad, edi-
tors, Vehicle Routing. Methods and Studies, p. 107-126 North Holland, Amsterdam,
1988.
BIBLIOGRAF

IA 54
[18] K. Homan and M. Padberg. Solving airlane crew scheduling problems by branch-
and-cut. Management Science, 39 (6) 657-683, 1993.
[19] L. Bodin, B. Golden, A. Assad and M. Ball. Routing and scheduling of vehicles
and crews the state of the art. Computers & Operations Research, 10:63-211, 1983
[20] L. Lilian, R. Michael , B. David, A global view og industrial logistics, European
Journal of Operational Research, 129(1) 231-234.
[21] Marshall L. Fisher,Kurt O Jornstern and Oli B. Madsen Vehicle Routing with
time windows two optimization algorithms,Operations Research, 45(3): 488-492
[22] M. Solomon. Algorithms for the vehicle routing and scheduling problem with time
window constraints. Operations Research 35(2):254-265,1987.
[23] M. Solomon. On the worst-case performance of some heuristics for the vehicle
routing and scheduling problem with time windows constraints. Networks, 16:161-
174,1986.
[24] M. Solomon and J. Desrosiers. Time window constrained routing and scheduling
problems. Transportation Science, 22 (1):1-13,1988.
[25] M. Solomon, E. Baker And J. Schaer. Vehicle routing and scheduling problems
with time windows constraints: Ecient implementations of solution improvement
procedures. In B. Golden and A. Assad, editors, Vehicle Routing: Methods and
Studies, pages 85-105. North-Holland, Amsterdam,1988
[26] M. Desrochers, J. Lenstra, M. Savelsbergh, and F Soumis. Vehicle routing with time
windows: Optimization and approximation. In B. Golden and A. Assad, editors,
Vehicle Routing:Methods and Studies, p. 65-84. North Holland, Amsterdam, 1988.
BIBLIOGRAF

IA 55
[27] M. Desrochers, J. Desrosiers, and M. Solomon. A new optimization algorithm for
the vehicle routing problem with time windows. Operations Research, 40(2) 342-
354, 1992.
[28] M. Padberg and G. Rinaldi. A branch-and-cut algorithm for the resolution of large
scale symmetric traveling salesman problems. SIAM Reviews 33(1):60-100,1991.
[29] M. Savelsbergh. The vehicle routing problem with time windows: Minimizing route
duration. ORSA Journal on Computing 4(2):146-154,1992
[30] N. Kohl. Exact Methods for Time Constrained Routing and Related Scheduling
Problems. PhD thesis, Technical University of Denamark. Copenhagen, 1995.
[31] N. Christodes, A. Mingozzi, and P. Toth. State-space relaxation for the compu-
tation of bounds to routing problems. Networks 11:145-164. 1981.
[32] P. Toth, D. Vigo. The Vehicle Routing Problem. SIAM, 2001.
[33] P. Augerat. Approache Polyedrale du Probl`eme de Tournees de Vehicules. PhD
thesis, Institut National Polytechnique de Greenoble, France,1995.
[34] Routing Software Prevents Scheduling Meltdown ,Logistics Management 35, no
6 (june 1996) p 85.
[35] S. Thangiah, K. Nygard, and P. Juell, Gideon: A genetic algorithm system for
vehicle routing with time windows. In Proceedings of the 7th IEEE Conference on
Articial Intelligence Applications, p422-425, Miami 1991
[36] T. Sexton and L.Bodin. Optimizing single vehicle many-to-many operations with
desired delivery times. Transportation Science, 19:378-435, 1985.
[37] Y.Rochat and E. Taillard.Probabilistic diversication and intensication in local
search for vehicle routing. Journal of Heuristics, 1:147-167,1995.
Apendice A
Metodo Ramicacion y Cota
A.1. Ramicacion-cotas (Branch and bound)
La tecnica de ramicacion-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
mn c

x
s.t x F
Podemos dividir al conjunto F en una coleccion nita de subconjuntos F
1
, ....F
k
, y
resolver por separado cada uno de estos problemas
mn c

x
s.t x F
i,
i = 1, ..., k.
Despues comparamos las soluciones optimas de los subproblemas y escogemos la
mejor de ellas. Cada subproblema puede ser casi tan difcil como el problema original
56
AP

ENDICE A. M

ETODO RAMIFICACI

ON 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
ramicacion del metodo, creando asi un arbol de subproblemas A.1
Figura A.1:

Arbol de subproblemas generado en ramicacion y cotas
Se supone la existencia de un algoritmo eciente en el que para cada F
i
de interes,
se calcula una cota inferior b (F
i
) del costo optimo de subproblema correspondiente esto
es ,
b (F
i
) mn
xF
i
c

x
La idea principal del metodo consiste en que mientras que el costo optimo del
subproblema es difcil 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 eval ua 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 (F
i
)
correspondiente a un subproblema en particular satisface b (F
i
) U, entonces este
AP

ENDICE A. M

ETODO RAMIFICACI

ON 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 tpica del algoritmo es de la siguiente forma
1.Seleccionar un subproblema F
i
2.Si el subproblema es infactible, se elimina, de otra forma se calcula la cota b (F
i
)
para el subproblema correspondiente.
3.Si b (F
i
) U se elimina el subproblema
4.Si b (F
i
) < 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 mayora 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 rst search y b usqueda del primero mas profundo.
(b) Hay varias formas de determinar la cota inferior b (F
i
) del costo optimo del los
subproblemas, la mas com un 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(F
i
) 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
AP

ENDICE A. M

ETODO RAMIFICACI

ON 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 x


i
para el
que x

i
no es entero y se crean dos subproblemas agregando las siguientes restricciones
x
i
x

i
, or x
i
x

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 peque no ejemplo.
Ejemplo 1.1. Una compa na fabrica tres productos, P
1
, P
2
y P
3
, que precisan para
su elaboracion dos materias primas, M
1
y M
2
. Las disponibilidades semanales de estas
materias son 25 y 30 unidades, respectivamente.
El benecio 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:
P
1
P
2
P
3
M
1
1 2 2
M
2
2 1 3
Benecio (u.m.) 2 6 3
Planicar la produccion semanal de forma que se maximice el benecio.
Solucion:
60
AP

ENDICE B. AMPL 61
Sean x
1
, x
2
, x
3
(x
i
) la cantidad producida de P
1
, P
2
y P
3
respectivamente (P
i
, i =
1, 2, 3).
El problema a resolver sera el siguiente:
max z = 2x
1
+ 6x
2
+ 3x
3
s.a. x
1
+ 2x
2
+ 2x
3
25
2x
1
+x
2
+ 3x
3
30
x
1
, x
2
, x
3
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 NEGATIVIDAD
var x1 >= 0;
var x2 >= 0;
var x3 >= 0;
# FUNCION OBJETIVO DEL MODELO
maximize z : 2*x1 + 6*x2 + 3*x3;
# RESTRICCIONES DEL MODELO
subject 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:
AP

ENDICE B. AMPL 62
max z = c
1
x
1
+c
2
x
2
+. . . +c
n
x
n
s.a. a
11
x
1
+. . . +a
1n
x
n
b
1
a
21
x
1
+. . . +a
2n
x
n
b
2
.
.
.
.
.
.
a
m1
x
1
+. . . +a
mn
x
n
b
m
x
1
, x
2
, . . . , x
n
0
O de forma mas abreviada:
max z =

n
j=1
c
j
x
j
s.a

n
j=1
a
ij
x
j
b
i
, i = 1, . . . , m
x
j
0, j = 1, . . . , n
(1)
En este problema general los valores de c
j
, a
ij
y b
i
son datos del problema concreto
y la estructura del problema (1) sera el modelo general.
Esto en AMPL se escribira dos cheros, en el chero del modelo sera como se
muestra en la tabla B.2. El chero de datos para el ejemplo se muestra en la tabla B.3.
Es posible escribir un chero 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, dgitos, y caracteres de subrayado): x1, z, restriccion1. Nota: las letras
may usculas son distintas de las letras min usculas en AMPL.
AP

ENDICE B. AMPL 63
# MODELO: EJEMPLO1.MOD
# FABRICACION DE n PRODUCTOS CON m MATERIAS PRIMAS
# PARAMETROS DEL MODELO
param n >=0, integer;
param m >=0, integer;
# CONJUNTOS DE INDICES
set PRODUCTOS := 1..n;
set MPRIMAS := 1..m;
# VARIABLES DE DECISION Y RESTRICCIONES NO NEGATIVIDAD
var x {j in PRODUCTOS} >= 0;
# MAS PARAMETROS DEL MODELO
param c {i in PRODUCTOS};
param b {j in MPRIMAS};
param a {(i,j) in {MPRIMAS,PRODUCTOS}};
# FUNCION OBJETIVO DEL MODELO
maximize z : sum {j in PRODUCTOS} c[j]*x[j];
# RESTRICCIONES DEL MODELO
subject 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.DAT
param n := 3;
param m := 2;
param c:=
1 2
2 6
3 3;
param a : 1 2 3:=
1 1 2 2
2 2 1 3;
param b:=
1 25
2 30;
Tabla B.3: Datos para el ejemplo.
AP

ENDICE B. AMPL 64
Existen dos tipos de constantes:
Constantes numericas: un signo opcional, una secuencia de dgitos 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 mayora 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 lnea de instrucciones debe ir nalizada con un punto y coma (;).
Los comentarios comienzan con # y se extienden hasta el nal de la lnea, o se
pueden delimitar entre /* y */, en cuyo caso pueden extenderse mas de una lnea.
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 n umero de componentes; a este
n umero com un de le conoce como dimension del conjunto.
Un conjunto explcitamente 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 n umero o una cadena:
{\a",\b",\c"}
{1,2,3,4,5,6,7,8,9}
{t,t+1,t+2}
AP

ENDICE 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 subndices.
Muchos elementos de AMPL pueden denirse como colecciones indexadas sobre
un conjunto; los miembros individuales son seleccionados al a nadir un subndice
al nombrar el elemento. El rango de posibles subndices 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 especicar conjuntos sobre los que
las operaciones son iteradas.
Un subndice 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 subndices debe evaluar a un n umero 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:
AP

ENDICE 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 denido 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 denicion, comienza en la siguiente
expresion de conjunto; el campo de un ndice corre a traves del resto de la expresion
que indexa, hasta el nal de la declaracion usando la expresion que indexa, o hasta el
nal del operando que usa la expresion que indexa. Cuando un miembro ciego tiene una
o mas expresiones componentes, los ndices ciegos del miembro ciego varan sobre una
proyeccion del conjunto, es decir, ellos toman todos los valores para que el miembro
ciego pertenezca al conjunto.
AP

ENDICE 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 verican la expresion logica y excluye a los dem as. La
expresion logica tpicamente 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.
AP

ENDICE 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:
numero
variable
expresion op.aritmetico expresion (+,-,less,*,/,mod,div,^,**)
unario expresion
funcion( lista de expresiones )
if lexpr then vexpr [ else vexpr ]
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 eval ua 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:
AP

ENDICE B. AMPL 69
Nombre Tipo Notas
if . . . then . . . else A, S A: si no hay else, se supone else 0
S: es obligatorio else sexpr
or, || L o logico
exists, forall L operadores de reduccion logica
and, && L y logico
<, <=, =, ==, <>, =!, >=, > L operadores relacionales
in, not in L pertenencia a un conjunto
within, not within L S within T signica S T
not, ! L negacion logica
union, di, symdi S symdi es la diferencia simetrica
inter S interseccion
cross S producto cartesiano
setof .. 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 Signicado
Beta(a,b) x
a1
(1 x)
b1
/((a)(b)/(a +b)), x [0, 1]
Cauchy 1/((1 +x
2
))
Exponential e
x
, x > 0
Gamma(a) x
a1
e
x
/(a), x 0, a > 0
Irand224() Uniforme entera en [0, 2
24
)
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.
AP

ENDICE B. AMPL 70
Sintaxis Signicado
abs(x) valor absoluto
acos(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 cercano
cos(x) coseno
exp(x) exponencial
oor(x) menor entero mas cercano
log(x) log
e
(x)
log10(x) log
10
(x)
max(x,y,. . . ) maximo
min(x,y,. . . ) mnimo
sin(x) seno
sinh(x) seno hiperbolico
sqrt(x) raz cuadrada
tan(x) tangente
tanh(x) tangente hiperbolica
precision(x,n) x redondeado a n cifras signicativas
round(x,n) x redondeado a n dgitos despues del punto decimal
round(x) x redondeado al entero mas cercano
trunc(x,n) x truncado a n dgitos despues del punto decimal
trunc(x) x truncado a un entero
Tabla B.6: Funciones aritmticas en AMPL.
AP

ENDICE B. AMPL 71
sum{i 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
orgenes, destinos y productos.
Otros operadores aritmeticos iterados son prod para la multiplicacion, min para
el mnimo, y max para el maximo. Como ejemplo, podramos usar:
max{i in ORIG} oferta[i,p]
para describir la mayor oferta del producto p de todos los orgenes.
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 }
AP

ENDICE B. AMPL 72
El operador exits, cuando se aplica sobre un conjunto vaco, 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 opconjunto sexpr (union di symdi inter cross )
union indexado sexpr
inter indexado sexpr
expr .. expr [ by expr ]
setof indexado miembro
if lexpr then sexpr else sexpr
( sexpr )
interval
conjpredenido
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];
AP

ENDICE 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):
AP

ENDICE B. AMPL 74
dimen n
within sexpre
:= sexpr
default sexpr
La frase := especica un valor para el conjunto; esto implica que el conjunto no
sera denido posteriormente en una lnea de instrucciones especca para datos (:= y
default son mutuamente excluyentes). El conjunto vaco se indica con: {}.
Existe la funcion card(S) la cual da el n umero 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 denir conjuntos con innitos elementos (Nota: no se puede iterar sobre
conjuntos innitos), los clasicos intervalos cerrados, abiertos o semicerrados, bien de
n umeros reales (interval [a,b]) o bien de n umeros 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):
AP

ENDICE B. AMPL 75
binary
integer
symbolic
oprel expr
in sexpr
:= expr
defaul t expr
donde oprel puede ser:
< <= = == != <> > >=
El atributo in especica un chequeo para ver que el parametro se encuentra en
el conjunto dado. Los parametros indexados pueden denirse 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];
Innity es un parametro predenido; al igual que -Innity.
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):
AP

ENDICE 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 =< especican cotas, la frase := indica un valor inicial. La frase
default indica los valores iniciales por defecto, cuyos valores pueden darse en una lnea
de instrucciones especca para datos.
Las frases coe y obj se utilizan para la generacion de coecientes por columnas;
estas especican los coecientes 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 coe 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] [ := dualinic]
[default dualinic] [ : expr restriccion];
La frase opcional := dualinicial especica 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:
AP

ENDICE B. AMPL 77
vexpr <= vexpr
vexpr = vexpr
vexpr >= vexpr
expr <= vexpr <= expr
expr >= vexpr >= expr
Para permitir la generacion de coecientes por columna para la restriccion, una de
las vexprs p uede tener una de las siguientes formas:
to come + vexpr
vexpr + to come
to come
Los terminos de esta restriccion que se especican 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 especicarse 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 coecientes por columna, como con las
restriciciones
AP

ENDICE B. AMPL 78
Notacion para sujos para valores auxiliares.
Las variables, restricciones y objetivos tienen una variedad de valores auxiliares
asociados, a los cuales se puede acceder a nadiendo al nombre uno de lo siguientes
sujos dependiendo del tipo de elemento del modelo.
Sujos para variables
.init valor actual inicial
.init0 valor inicial inicial

x
0
j

.lb cota inferior actual


.lb0 cota inferior inicial (l
j
)
.lrc costo reducido menor (.rc, x
j
l
j
)
.lslack menor holgura (x
j
l
j
)
.rc costo reducido (z
j
c
j
)
.slack min (lsalck,uslack)
.ub cota superior actual
.ub0 cota superior inicial (u
j
)
.urc costo reducido superior (.rc, x
j
u
j
)
.uslack holgura superior (u
j
x
j
)
.val valor actual (x
j
)
AP

ENDICE B. AMPL 79
Sujos para restricciones
.body valor actual del cuerpo de la restriccion (A
i
x)
.dinit valor inicial actual para la variable dual
.dinit0 valor inicial inicial para la variable dual (w
0
i
)
.dual variable dual actual (w
i
)
.lb cota inferior (rl
i
)
.ldual valor dual menor (.dual, A
i
x rl
i
)
.lsalck holgura menor (A
i
x rl
i
)
.slack min(lsalck,uslack)
.ub cota superior (ru
i
)
.udual valor dual superior (.dual, A
i
x ru
i
)
.uslack holgura superior (ru
i
A
i
x)
Sujos para objetivos
.val valor actual
B.1.6. Especicacion 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 chero llamada diet.dat.
AMPL trata cualquier secuencia de espacios, tabuladores y caracteres claves de
una nueva lnea como un solo espacio.
El nal de cualquier comando de datos de indica por un punto y coma ;.
AP

ENDICE B. AMPL 80
Datos de un conjunto.
Conjuntos unidimensionales.
Un conjunto simple se especica 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
listar sus miembros en orden:
set SEMANAS := 27 sep93 04 oct93 11 oct93 18 oct93 ;
Si una cadena de la lista incluye caracteres distintos de letras, dgitos, signo de
subrayado ( ), punto, + y -, debe ser cerrado entre comillas:
set ALMACEN := \A&P" JEWEL VONS ;
Tambien para distinguir cuando un n umero 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 n umeros 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 especicaran individualmente.
AP

ENDICE B. AMPL 81
set PROD ;
set AREA { PROD };
set PROD := plato cuchillo ;
set AREA [ plato ] := este norte ;
set AREA [ cuchillo ] := este oeste export ;
Podemos especicar explcitamente que uno o mas de esos conjuntos es vaco, al
dar una lista vaca; poniendo el punto y coma justo despues del operador :=. Si
queremos que AMPL suponga que cada conjunto es vaco excepto si se especica
otra cosa, incluyendo una frase default en el modelo:
set AREA { PROD } default {};
En otro caso seramos avisados de que la especicacion de los miembros de un
conjunto no se ha realizado.
Conjuntos de dos dimensiones
Para un conjunto de pares, los miembros pueden especicarse 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 ) ;
AP

ENDICE 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 especicarse en una tabla tambien de la siguiente
forma:
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 que
no esta ese par. Normalmente las las son etiquetadas con la primera componente
y las columnas con la segunda. Si se preere lo puesto, podemos indicar una tabla
transpuesta al a nadir (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.
AP

ENDICE 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 podra hacer listando todas las primeras componentes que unen con cada
una de las segundas componentes: (*,CA) MD BA.
Cada comodn * 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 denir conjuntos
multidimensionales:
set RUTAS within {ORIG,DEST,PROD};
set RUTAS :=
(SE,HU, cuchillo ) ( SE,JA, cuchillo ) (SE,GR, cuchillo )
(MD,CA, plato ) ( MD,CA, cuchillo ) (MD,CO, plato )
... ;
set RUTAS :=
SE HU cuchillo SE JA cuchillo SE GR cuchillo
MD CA plato MD CA cuchillo MD CO plato
... ;
set RUTAS :=
(MD ,*, plato ) CA CO HU JA GR
(BA ,*, plato ) CA AL JA MA
... ;
AP

ENDICE B. AMPL 84
set RUTAS :=
(*, CA ,*) MD plato MD cuchillo BA plato
(*, CO ,*) MD plato MD cuchillo
... ;
set RUTAS :=
(*,*, plato ): CA CO HU AL JA MA GR :=
SE - - - - - - -
MD + + + - + - +
BA + - - + + + -
(*,*, cuchillo ): CA CO HU AL JA MA GR :=
SE - - + - + - +
MD + + + + + - -
BA - - - - - + - ;
Tambien se puede usar la notacion (tr).
Datos de parametros.
Para un parametro escalar (no indexado), la asignacion de un valor sera:
param avail := 40;
Parametros indexados
La forma mas simple para da datos para un parametro indexado es por medio de
una lista. Para un parametro indexado sobre un conjunto simple:
set PROD;
param valor {PROD} > 0;
Cada elemento de la lista de datos consta de un miembro del conjunto y de un valor;
set PROD:= plato cuchillo tenedor ;
AP

ENDICE B. AMPL 85
param valor :=
plato 200
cuchillo 140
tenedor 160 ;
equivalentemente:
param valor := plato 200, cuchillo 140, tenedor 160 ;
A menudo necesitamos datos para varios parametros que estan indexados sobre el
mismo conjunto, en esta situacion puede escribirse:
param valor := plato 200 cuchillo 140 tenedor 160 ;
param benefi := plato 25 cuchillo 30 tenedor 29 ;
param market := plato 6000 cuchillo 4000 tenedor 3500 ;
o
param: valor benefi market :=
plato 200 25 6000
cuchillo 140 30 4000
tenedor 160 29 3500 ;
Los dos puntos despues de la palabra clave param es obligatoria; indica que damos
valores para varios parametros.
Si se sigue con el nombre del conjunto PROD y otros dos puntos:
param: PROD: valor benefi market :=
plato 200 25 6000
cuchillo 140 30 4000
tenedor 160 29 3500 ;
entonces los elementos del conjunto PROD son denidos tambien con este comando,
evitando as la denicion con el comando set PROD; el efecto es combinar las especi-
caciones del conjunto y los tres parametros indexados sobre el.
Parametros bidimensionales
AP

ENDICE B. AMPL 86
Los valores de un parametro indexado sobre dos conjuntos, son generalmente intro-
ducidos como:
set ORIG;
set DEST;
param costo {ORIG,DEST} >= 0;
data
param costo: CA CO HU AL JA MA GR :=
SE 39 14 11 14 16 82 8
MD 27 9 12 9 26 95 17
BA 24 14 17 13 28 99 20 ;
Las etiquetas en las las dan el primer ndice y las etiquetas de las columnas dan el
segundo ndice, as por ejemplo, costo[SE,CA] se ha denido a 39.
Podemos usar la notacion (tr):
param costo ( tr ):
SE MD BA
CA 39 27 24
CO 14 9 14
... ;
Cuando las tablas son grandes pueden utilizarse caracteres de nueva lnea en cualquier
lugar, o tambien emplear el siguiente formato:
AP

ENDICE B. AMPL 87
param costo : CA CO HU AL :=
SE 39 14 11 14
MD 27 9 12 9
BA 24 14 17 13
: JA MA GR :=
SE 16 82 8
MD 26 95 17
BA 28 99 20
Los dos puntos indica el comienzo de cada nueva subtabla; cada una tiene las
misma etiquetas de las, pero diferentes etiquetas de columna.
El parametro no tiene porque estar indexado sobre todas las combinaciones de miem-
bros de ORIG y DEST, sino tan solo de un subconjunto de esos pares:
set LINKS within { ORIG , DEST };
param costo { LINKS } >= 0;
Como se vio en la seccion anterior, el conjunto LINKS puede denirse como:
param costo: CA CO HU AL JA MA GR
SE . 14 11 . 16 . 8
MD 27 9 12 9 26 . 17
BA 24 . . 13 28 99 . ;
Donde un + indica un miembro del conjunto, la tabla para costo da un valor.
Donde un - indica que no pertenece, la tabla contiene un punto .. El punto puede
aparecer en cualquier tabla AMPL para indicar valor no especicado aqu.
Es posible denir un smbolo diferente, por ejemplo , al incluir el siguiente comando
en data:
defaultsym \--";
AP

ENDICE B. AMPL 88
el cual puede ser desactivado al introducir el comando:
nodefaultsym ;
Tambien es posible introducir los datos del siguiente modo:
param costo :=
SE CO 14 SE HU 11 SE JA 16 SE GR 8
MD CA 27 ... ;
Cuando un parametro esta indexado sobre un subconjunto poco denso de pares, una
lista puede ser mas compacta y legible que la representacion tabular, la cual estara
formada mayoritariamente por puntos.
Otra ventaja del formato lista es que, como en el caso unidimensional, los datos
para varias componentes pueden darse juntos:
param: LINKS: costo limit :=
SE CO 14 1000
SE HU 11 800
SE JA 16 1200
SE GR 8 1100
MD CA 27 1200
MD CO 9 600
MD HU 12 900
MD AL 9 950
MD JA 26 1000
MD GR 17 800
BA CA 24 1500
BA AL 13 1400
BA JA 28 1500
BA MA 99 1200 ;
AP

ENDICE B. AMPL 89
Esta tabla da simultaneamente los miembros de LINKS y los valores para costo,
y tambien los valores para otros parametros, limit, que esta tambien indexado sobre
LINKS.
Finalmente, la lista de datos para costo puede escribirse mas concisamente al or-
ganizarla en trozos, como se menciono para los miembros del conjunto LINKS en la
seccion previa.
set LINKS :=
(SE ,*) CO HU JA GR
... ;
param costo :=
[SE ,*] CO 14 HU 11 JA 16 GR 8
[MD ,*] CA 27 CO 9 HU 12 AL 9 JA 26 GR 17
[BA ,*] CA 24 AL 13 JA 28 MA 99 ;
Parametros multidimensionales.
Podramos introducirlos de las siguientes formas:
set ORIG ;
set DEST ;
set PROD ;
set RUTAS within { ORIG,DEST,PROD };
param costo { RUTAS } >= 0;
lista simple
param costo :=
MD CO plato 9 MD CO cuchillo 8 MD CA plato 27
MD CA cuchillo 23 MD GR plato 17 ... ;
uso de trozos
AP

ENDICE B. AMPL 90
param costo :=
[MD, *, plato ] CA 27 CO 9 HU 12 JA 26 GR 17
[BA, *, plato ] CA 24 AL 13 JA 28 MA 99
... ;
uso de trozos
param costo :=
[*, CA, *] MD plato 27 MD cuchillo 23 BA plato 24
[*, CO, *] MD plato 9 MD cuchillo 8
... ;
uso de trozos 2 dimensiones y tablas
param costo :=
[*,*, plato ]: CA CO HU AL JA MA GR :=
MD 27 9 12 . 26 . 17
BA 24 . . 13 28 99 .
[*,*, cuchillo ]: CA CO HU AL JA MA GR
SE . . 11 . 16 . 8
MD 23 8 10 9 21 . .
BA . . . . . 81 . ;
Se puede emplear la notacion (tr).
Otro ejemplo:
AP

ENDICE B. AMPL 91
set PROD ;
set AREA { PROD };
param T > 0;
param renta {p in PROD , AREA [p ], 1 ..T } >= 0;
data
param T := 4;
set PROD := plato cuchillo ;
set AREA [ plato ] := este norte ;
set AREA [ cuchillo ] := este oeste export ;
param renta :=
[ plato, *,*]: 1 2 3 4 :=
este 25.0 26.0 27.0 27.0
norte 26.5 27.5 28.0 28.5
[ cuchillo, *,*]: 1 2 3 4 :=
este 30 35 37 39
oeste 29 32 33 35
export 25 25 25 28 ;
Valores por defecto.
AMPL comprueba que los comandos de datos asignan valores para exactamente
todos los parametros en el modelo. AMPL dara un mensaje de error si damos un valor
para un parametro inexistente, o nos olvidamos de dar un valor a un parametro que
existe.
Si el mismo valor apareciera muchas veces en un comando de datos, podemos es-
pecicar la frase default. Por ejemplo,
AP

ENDICE B. AMPL 92
set ORIG ;
set DEST ;
set PROD ;
param costo { ORIG,DEST,PROD } >= 0;
data
param costo defaul t 9999 :=
[*,*, plato ]: CA CO HU AL JA MA GR :=
MD 27 9 12 . 26 . 17
BA 24 . . 13 28 99 .
[*,*, cuchillo ]: CA CO HU AL JA MA GR :=
SE . . 11 . 16 . 8
MD 23 8 10 9 21 . .
BA . . . . . 81 . ;
Tanto a los parametros missing (como costo[SE,CA,plato]), como a los mar-
cados como omitidos con el uso de un punto (como costo[SE,CA,cuchillo]), se les
asignara el valor 9999. En total, hay 24 con valor 9999.
La caracterstica default es especialmente util cuando queremos que todos los paramet-
ros de una coleccion indexada tengan el mismo valor. Por ejemplo:
param oferta { ORIG } >= 0;
param demanda { DEST } >= 0;
data
param oferta default 1 ;
param demanda default 1 ;
Tambien, como se explico en secciones anteriores, una declaracion de parametro
puede incluir una expresion default. Por ejemplo:
param costo { ORIG,DEST,PROD } >= 0, default 9999;
AP

ENDICE B. AMPL 93
Sin embargo, es mejor poner la frase default en los comandos de datos. La frase
default debera ir en el modelo cuando queremos que el valor por defecto dependa de
alguna forma de otros datos. Por ejemplo, un costo arbitrariamente grande podra darse
para cada producto al especicar:
param gran costo { PROD } > 0;
param costo { ORIG,DEST,p in PROD } >= 0, default gran costo [p];
Datos para variables y restricciones.
Opcionalmente podemos asignar valores iniciales a las variables o restricciones del
modelo, usando cualquiera de las opciones para asignar valores a parametros. El nombre
de la variable almacena su valor, y el nombre de la restriccion el valor de la variable
dual asociada.
var Tans: CA CO HU AL JA MA GR :=
SE 100 100 800 100 100 500 200
MD 900 100 100 500 500 200 200
BA 100 900 100 500 100 900 200
Tambien con una tabla simple podemos dar valores a parametros (valor, bene,
market) y variables (Make):
param: valor benefi market Make :=
plato 200 25 6000 3000
cuchillo 140 30 4000 2500
tenedor 160 29 3500 1500 ;
Los valores iniciales de las variables (o expresiones que envuelven esos valores ini-
ciales) pueden verse antes de escribir solve, usando los comandos display, print o
printf.
El uso mas com un de asignar valores iniciales a variables o restricciones es dar un
punto de arranque para resolver un problema de optimizacion no lineal.
AP

ENDICE B. AMPL 94
B.1.7. Comandos del lenguaje.
La llamada a AMPL normalmente causa la entrada en un entorno de comandos,
donde los comandos pueden ser introducidos interactivamente. Las declaraciones del
modelo y las instrucciones de introduccion de datos son tambien aceptadas como co-
mandos.
El entorno de comandos de AMPL reconoce dos modos. En modo modelo, reconoce
las declaraciones del modelo y todos los comandos que se describiran a continuacion.
El otro modo es el modo datos, en el cual solo se reconocen instrucciones referentes a
la introduccion de datos. El entorno siempre vuelve al modo modelo al encontrar una
palabra clave que no comience con la palabra data.
Una frase de la forma:
include fichero ;
trae el contenido del chero al entorno de comandos de AMPL. Los comandos in-
clude pueden estar anidados, ellos son reconocidos en modo modelo y en modo datos.
Las secuencias:
model; include fichero ;
data; include fichero ;
pueden abreviarse como:
model fichero ;
data fichero ;
Los comandos no son parte de un modelo, pero producen que AMPL act ue como
se describe en la tabla 7. Los comandos distintos a data, end, include, quit y shell
producen que AMPL entre en modo modelo.
Desde la lnea de comandos de AMPL podemos escribir, por ejemplo:
ampl: include ejemplo1.run ;
siendo el chero ejemplo1.run (tabla 8), un chero por lotes que almacena la secuen-
AP

ENDICE B. AMPL 95
# EJEMPLO1.RUN
option solver cplex;
model ejemplo1.mod ;
data ejemplo1.dat ;
solve ;
display z;
display x;
display restriccion.slack ;
Tabla B.7: Fichero de lotes para el modelo del ejemplo 1.1
cia de comandos necesarios para resolver el ejemplo 1.1.
Los comandos display, print y printf imprimen expresiones arbitrarias. Tienen el
siguiente formato:
display [conjunto: ] listaargumentos [redireccion];
print [conjunto: ] listaargumentos [redireccion];
printf [conjunto: ] fmt, listaargumentos [redireccion];
AP

ENDICE B. AMPL 96
Comandos Signicado
break termina un bucle for o while
close cierra un chero
continue salta al nal del cuerpo del bucle
data cambia a modo datos; opcionalmente incluye un chero
display imprime elementos del modelo y expresiones
delete elimina un componente previamente declarado
drop elimina una restriccion u objetivo
end naliza la entrada del chero de entrada actual
expand muestra explcitamente el modelo
x ja una variable a su valor actual
for { indx }{ cp } bucle for
if lexpr then {} comprueba una condicion
include incluye cheros
let cambia los valores de los datos (:=)
match(cad,mod) posicion de mod en cad
model cambia al modo modelo; opcionalmente incluye un chero
objective selecciona un objetivo a optimizar
option dene o muestra valores opcionales
print imprime elementos del modelo sin formatear
printf imprime elementos del modelo formateados (\n, %7.1f)
problem nb: def. dene un problema
purge elimina un componente y los dependientes de el
quit termina AMPL
read lee datos de un chero o de la consola (-)
redeclare redene un componente ya denido
AP

ENDICE B. AMPL 97
Comandos Signicado
repeat while lexpr { cp } repite un bloque de comandos mientras V.
repeat until lexpr { cp } repite un bloque de comandos hasta F.
repeat { cp } while lexpr repite un bloque de comandos mientras V.
repeat { cp } until lexpr repite un bloque de comandos hasta F.
reset reinicia elementos especcos a su estado inicial
restore deshace un comando drop
shell temporalmente sale al sistema operativo
show muestra componentes del modelo
solution importa valores de variables de un solver
solve enva elementos actuales a un solver y devuelve la solucion
step n avanza n pasos en la ejecucion de cheros por lotes
update permite actualizar datos
unx deshace un comando x
write escribe en un chero partes de un problema
xref muestra dependencias del modelo
Si el conjunto esta presente, su campo de accion se extiende hasta el nal del co-
mando, y causa una ejecucion del comando para cada miembro del conjunto.
La lista-argumentos es una lista de expresiones separadas por comas.
El opcional redireccin tiene una de las dos formas siguientes:
> fichero
>> fichero
La primera abre por primera vez un chero para escribir, y la segunda anade al
chero ya creado, aunque > act ua igual que >>, si el chero esta ya abierto.
Con el comando option se puede conseguir que la salida que se ha solicitado tenga
un formato
AP

ENDICE B. AMPL 98
especco. Por ejemplo:
option display precision 3;
option omit zero rows 1;
La primera especica la precision de salida (0 equivale a ninguna) y la segunda
omite las salidas con valor cero (por defecto es 0, es decir no omite los valores cero).
Otras opciones son:
option solver msg 0;
option relax integrality 1;
option presolve 0;
option show stats 1;
option times 1;
option gentimes 1;
option log file hola.tmp ;
option solution round 6;
option single step 1;
Apendice C
Modelo en AMPL
Declaracion de Conjuntos
Set Vehiculos; # Declaracion del Conjunto de los Vehiculos
Set Clientes; # Declaracion del Conjunto de los Clientes incluye al deposito
(Cliente =0)
Set Viajes ordered; # Declaracion del Conjunto de los Viajes
Set Cliente; # Declaracion del Conjunto de los Clientes
(Solo los CD)
param LlegadaE Clientes >=0;
param LlegadaL Clientes >=0;
param LlegadaL Clientes >=0;
param Costo Clientes,Vehiculos >=0;
param Fijo Vehiculos >=0;
param CostoE Clientes >=0;
param CostoD Clientes >=0;
param Demanda Clientes >=0;
param Tiempo Clientes >=0;
param Capacidad Vehiculos >=0;
99
AP

ENDICE C. MODELO EN AMPL 100


# Declaracion de Varibles
var Camionrecorrido Clientes,Viajes,Vehiculos binary;
#Declaracion de la variable Xijk, como binarias
var Uso Vehiculos binary;
# Declaracion de la variable Yk como binaria
var SalidaV Viajes,Vehiculos >=0;
# Declaracion de la variable Sijk como continua
var Espera Clientes,Viajes,Vehiculos >=0;
#Declaracion de la variable Wijk(+) como continua
var Retraso Clientes,Viajes,Vehiculos >=0;
# Declaracion de la variable Wijk(-) como continua
Funcion Objetivo
minimize costo total: sum i in Clientes,j in Viajes,k in Vehiculos
Costo[i,k]*Camionrecorrido[i,j,k]
+ sum k in Vehiculos Fijo[k]*Uso[k]
+ sum i in Clientes,j in Viajes,k in Vehiculos CostoE[i]*Espera[i,j,k]
+ sum i in Clientes,j in Viajes,k in Vehiculos CostoD[i]*Retraso[i,j,k];
# Restriccion (2)
subject to visita j in Viajes, k in Vehiculos :
Camionrecorrido[0,j,k]+sumh in Cliente Camionrecorrido[h,j,k]=1;
# Restriccion (3)
subject to Demandav h in Cliente:
sum j in Viajes,k in Vehiculos
Camionrecorrido[h,j,k]*Capacidad[k]>=Demanda[h]; # Restriccion (4)
subject to cuatro k in Vehiculos:
7 - sum j in ViajesCamionrecorrido[0,j,k]<= Uso[k]*7;
# Restriccion (5)
subject to Timek in Vehiculos,j in Viajes:ord(j)<7:
SalidaV[j+1,k]=SalidaV[j,k]+
sumi in ClientesCamionrecorrido[i,j,k]*(2*Tiempo[i]);
# Restriccion (6)
subject to Tpotem i in Clientes,j in Viajes,k in Vehiculos:
Espera[i,j,k] >=(Camionrecorrido[i,j,k]*LlegadaE[i])
-(SalidaV[j,k]+ (Camionrecorrido[i,j,k]*Tiempo[i]));
# Restriccion (7)
subject to Tpotar i in Cliente,j in Viajes,k in Vehiculos:
Retraso[i,j,k]>=SalidaV[j,k]+(Camionrecorrido[i,j,k]*Tiempo[i]
-LlegadaL[i]-2000*(1-Camionrecorrido[i,j,k])
Apendice D
Carta Referencia Sintec
101

You might also like