“asignacion de recursos de transporte:´ un enfoque...

115
UNIVERSIDAD AUT ´ ONOMA DE NUEVO LE ´ ON Facultad de Ingenier´ ıa Mec´ anica y El´ ectrica Divisi´ on de Estudios de Posgrado “Asignaci ´ on de Recursos de Transporte: Un Enfoque Pr ´ actico” Tesis profesional presentada por Israel Cano Robles en opci´ on al grado de Maestro en Ciencias en Ingenier´ ıa de Sistemas San Nicol´ as de los Garza, N.L. Oto˜ no de 2005

Upload: duongkien

Post on 26-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD AUTONOMA DE NUEVO LEON

Facultad de Ingenierıa Mecanica y Electrica

Division de Estudios de Posgrado

“Asignacion de Recursos de Transporte:

Un Enfoque Practico”

Tesis profesional presentada por

Israel Cano Robles

en opcion

al grado de Maestro en Ciencias

en Ingenierıa de Sistemas

San Nicolas de los Garza, N.L. Otono de 2005

UNIVERSIDAD AUTONOMA DE NUEVO LEON

Facultad de Ingenierıa Mecanica y Electrica

Division de Estudios de Posgrado

“Asignacion de Recursos de Transporte:

Un Enfoque Practico”

Tesis profesional presentada por

Israel Cano Robles

en opcional grado de Maestro en Ciencias

en Ingenierıa de Sistemas

Comite de Tesis

Dr. Mauricio Cabrera Rıos

Revisor

Dr. Igor S. Litvinchev

Asesor y Director

MC. Gerardo Naranjo Sotomayor

Revisor

San Nicolas de los Garza, N.L. Noviembre de 2005

Tesis profesional sustentada por

Israel Cano Robles

en opcion al grado de

Maestro en Ciencias en Ingenierıa de Sistemas.

Aceptada por el Division de Estudios de Posgrado

Dr. Igor S. LitvinchevAsesor y Director

Dr. Mauricio Cabrera RıosRevisor

MC. Gerardo Naranjo SotomayorRevisor

Dr. Guadalupe Alan CastilloRodrıguez

Subdirector Division de Estudiosde Posgrado

15 de Noviembre de 2005

”Quiero dedicar este trabajo a todos

aquellos que me apoyaron: maestros,

familia, amigos, pero especialmente a mis

companeros de generacion del PISIS:

Nancy, Leti, Fer, Fernadillo y Oswi, la

hicimos bien.”

Agradecimientos

Agradezco la oportunidad al PISIS y CONACYT por haberme permitido realizar

mis estudios de maestrıa, mediante una beca de estudios de tiempo completo.

Quiero expresar mi agradecimiento infinito a mi asesor Dr. Igor S. Litvinchev desde

el principio confio y respaldo este proyecto. Por su paciencia y entusiasmo a lo largo de

estos anos. Por la motivacion para presentar este trabajo en foros internacionales.

Sin duda alguna este no hubiera sido logrado sin la vocacion y esfuerzo de todos los

profesores del PISIS: Dra. Ada Alvarez, Dr. Roger Rıos, Dr. Oscar Chacon, Dr. Cesar

Villareal , Dr. Rodolfo Garcıa con quienes tuve el gusto de aprender en sus cursos.

A todo el personal de Sintec, especialmente a Oscar Lozano, Roberto Palacios,

Gerardo Naranjo, Jaime Ortega, por abrir las puertas a este proyecto.

A todos los que en las ultimas semanas de elaboracion de este trabajo dedicaron

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 vehıculos 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. Definicion 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 vehıculos con ventanas suaves de tiempo . 44

5.3. Problemas de Asignacion de vehıculos con ventanas duras de tiempo . . 47

6. Conclusiones y Recomendaciones 49

6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2. Aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.3. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Bibliografıa 52

A. Metodo Ramificacion y Cota 56

A.1. Ramificacion-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 subındices. . . . . . . . . . . . . . . 65

B.1.4. Expresiones aritmeticas, logicas y de conjuntos. Funciones matematicas. 67

B.1.5. Declaraciones de elementos del modelo. . . . . . . . . . . . . . . 72

INDICE GENERAL iii

B.1.6. Especificacion 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 influyen en costo del transporte . . . . . . . . . . . . . . . 6

4.1. Parametros clientes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2. Parametros de los vehıculos . . . . . . . . . . . . . . . . . . . . . . . . 35

4.3. Costos Variables a cada destino . . . . . . . . . . . . . . . . . . . . . . 36

4.4. Resultados Clientes Vehıculos Sencillos . . . . . . . . . . . . . . . . . . 37

4.5. Resultados Clientes Vehıculos Dobles . . . . . . . . . . . . . . . . . . . 38

4.6. Resultados Caso Practico 1 . . . . . . . . . . . . . . . . . . . . . . . . 38

4.7. Parametros clientes Caso 2 . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.8. Parametros de los vehıculos . . . . . . . . . . . . . . . . . . . . . . . . 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 vehıculo . . . . . . . . . . . . . . 45

5.3. Resultados Ventanas Suaves . . . . . . . . . . . . . . . . . . . . . . . . 45

5.4. Resultados Vehıculos utilizados con Ventanas Suaves . . . . . . . . . . 46

iv

INDICE DE TABLAS v

5.5. Resultados Ventanas Duras . . . . . . . . . . . . . . . . . . . . . . . . 47

5.6. Resultados Vehıculos 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 figuras

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 Vehıculos utilizados . . . . . . . . . . . . . . . . . . . . . . 46

5.2. Clientes vs Vehıculos utilizados . . . . . . . . . . . . . . . . . . . . . . 48

A.1. Arbol de subproblemas generado en ramificacion y cotas . . . . . . . . 57

vi

Resumen

Israel Cano Robles

Candidato para el Grado de Maestro en Ciencias en Ingenierıa de Sistemas

Universidad Autonoma de Nuevo Leon

Facultad de Ingenierıa Mecanica y Electrica

Tıtulo del Estudio:

Asignacion de Recursos de Transporte: Un Enfoque Practico

Numero de paginas: 115

Objetivos y metodo de estudio:

En muchas organizaciones, la administracion de las actividades de distribucion cons-

tituye un problema de toma de decisiones. Este problema ha cobrado mas importancia

debido a la contribucion de los costos de distribucion dentro de los costos totales. La

mayorıa de las companıas requieren de vehıculos para la recoleccion y entrega dentro

de una red de suministro o demanda. La utilizacion y ruteo eficiente de esta flotilla es

el centro de la mayorıa de los problemas de ruteo.

Particularmente los gerentes de distribucion se cuestionan — cuantos vehıculos son

necesarios para satisfacer demanda a un costo mınimo?— Esta pregunta es difıcil de

contestar dada la enorme gama de combinaciones de mezcla de flotilla y rutas que

pueden existir, esto nos da la posibilidad de formular el problema en que nos enfocamos

en este trabajo.

Dentro de las numerosas variantes del problema de ruteo de vehıculos, generalmente

se comparten las siguientes caracterısticas: un conjunto de rutas debe ser disenado para

los vehıculos; su origen y fin debe ser un deposito central. Los costos de ruteo asociados

con los vehıculos son una parte de la composicion total de los costos de distribucion y

el costo de adquisicion de flotilla y mantenimiento.

En este trabajo consideramos el problema de ruteo con multiples tipos de vehıculos

simultaneamente con la determinacion de la composicion de la flotilla heterogenea,

con el objetivo de satisfacer la demanda en un conjunto de clientes con cantidades

demandadas y ventanas de tiempo conocidas, desde un deposito central o una planta

de produccion. El objetivo es minimizar la suma de los costos de adquisicion (fijos) y

los costos de ruteo (variables).

Suponemos que tenemos una cantidad disponible de cada tipo de vehıculos, al menos

igual al numero de clientes. La demanda de cada uno de los clientes es mas grande que

la capacidad de cualquier vehıculo. Tambien consideramos solo las rutas directas entre

el centro de distribucion y los clientes. De esta forma la red se puede ver del tipo

estrella. Esta configuracion de red es comun donde los puntos de demanda son centros

de distribucion y no los clientes finales.

En contraste con el clasico problema de ruteo, un cliente tiene que ser visitado

varias veces (tal vez por el mismo vehıculo) en orden de satisfacer su demanda ademas

se supone que se pueden dividir los envıos. Se consideran ventanas de tiempo suaves

para permitir que el vehıculo llegue a un cliente antes o despues de esta ventana, en

consecuencia el vehıculo incurre en costos adicionales dado las penalizaciones.

Tambien son consideradas las ventanas de tiempo duras en consecuencia se le prohıbe

al vehıculo llegar fuera de los horarios de atencion.

Para este problema se incluye la formulacion matematica y resultados de un estu-

dio de dos casos practicos presentados por Sintec y un conjunto de experimentos de

problemas generados aleatoriamente.

FIRMA DEL ASESOR:

Dr. Igor S. Litvinchev

Capıtulo 1

Introduccion

“La curiosidad humana y el deseo por saber como se comporta el mundo que nos

rodea establece un area fertil para la aplicacion de la investigacion de operaciones.”

Randolph W. Hall

1.1. Ciencia de Transporte.

En la antiguedad el transporte era realizado por el hombre aprovechando medios

como los animales de carga, y medios naturales como el viento, las corrientes de agua,

fuerza de gravedad y algunos vehıculos sencillos. De igual manera se construıan caminos

y estaciones de carga y descarga, el control e inspeccion solo concernıa a los via-

jantes. Hoy en dıa el movimiento de los vehıculos se debe a motores, la construccion de

caminos y terminales. Existen nuevas tecnologıas como Internet, las redes inalambri-

cas,coberturas satelitales que nos hacen pensar en las marcadas diferencias existentes

entre las formas de transporte actual y sus antecesoras.

Tambien encontramos similitudes, existen vehıculos, caminos, terminales y controles

que son ajustados para realizar ciertas funciones basicas, de los modos de transporte

actualmente conocidos todos tienen capacidad de desplazarse, acelerar, frenar y cuentan

1

CAPITULO 1. INTRODUCCION 2

con mecanismos para almacenar combustible o energıa para funcionar, diferenciar entre

objetos y personas en las terminales, asignar y contener cargas de manera eficiente para

ir de un lugar a otro.

Al paso de los anos y de esta evolucion de modos de transporte, el hombre ha

reconocido en la ciencia del transporte que cualquier modo de transporte contiene los

mismos elementos: —vehıculos, un camino por donde transitar y terminales— operando

bajo cierta polıtica de control.

La clara definicion de estos elementos es util para estar de acuerdo en que sea

cual sea el modo de transporte estos elementos basicos conservan sus propiedades. Los

vehıculos comprenden a todos los recursos moviles en las que pueden viajar personas o

embarques de productos, proveen el espacio para hacer del viaje seguro y confortable.

Los caminos son recursos ya establecidos como las carreteras y autopistas estos definen

el camino fısico que utilizaran los vehıculos en su movimiento de un lugar a otro. Las

terminales son los establecimientos estacionarios con la capacidad de organizar los viajes

de personas objetos de acuerdo a su salida y entrada en las rutas de transportacion. Por

ultimo la polıtica de control se refiere a las reglas que rigen el movimiento y trayectorias

de todo el sistema de transporte.

La ciencia de transporte en parte describe el comportamiento del hombre y de los

sistemas cuando toman decisiones de transporte y por otra parte prescribe la forma en

que se debe tomar esa decision optimizando como objetivo el transporte.

Como consecuencia del andar diario las personas tienen un amplia gama de elec-

ciones que son tomadas de acuerdo a la formacion de habitos, circunstancias y otras

ocasiones por deliberacion. Existen cuatro ramas que clasifican la toma de decisiones

auxiliada por la ciencia de transporte

La manera en que nos comportamos al conducir un vehıculo es decir las decisiones

CAPITULO 1. INTRODUCCION 3

rutinarias como la velocidad, la ruta y modo que seguimos para ir al lugar de trabajo,

la escuela son decisiones de corto plazo mientras que la forma en que elegimos donde

habitar, trabajar y como se forman las ciudades en zonas comerciales habitacionales e

industriales definen de manera colectiva una rama de la ciencia del transporte.

Cuando queremos explicar fenomenos como la manera en que fluyen los vehıculos

cuando pasan a traves de un camino y se encuentran con intersecciones, divisiones y

combinaciones de caminos. Tambien cuando vemos el aumento de la tasa de flujo sobre

un camino y sus relaciones con la disminucion de velocidad, el aumento de la densidad

y como ocurren las primera filas o acumulamientos de vehıculos en las calle, se recurre

a otra rama de la ciencia de transporte ampliamente estudiada y conocida como flujo

en trafico y redes.

Determinar el camino que seguira una unidad de un lugar a otro es la rama de

la ciencia del transporte conocida como ruteo, dentro del ruteo existen tambien tres

tareas basicas: asignacion (elegir el recurso que va a realizar la actividad de transporte),

secuenciamiento (determinar el orden en que se realizaran las actividades del transporte)

y rumbo o itinerario (el camino a seguir de una asignacion a otra).

El ruteo no es exclusivo de vehıculos del tipo automovil puede ser utilizado para

camiones de carga aviones, contenedores de trenes, barcos y las tripulaciones que hacen

que estos recursos funcionen. Administrar precisamente al personal que maneja las

unidades cumpliendo las cargas laborales es un reto para esta rama de investigacion.

Disenar las redes—caminos que seran utilizados para desplazar los productos desde

su lugar de origen hasta su destino— es la ultima rama de la ciencia que mencionare-

mos en este trabajo, el diseno consiste en la localizacion de los almacenes, centros

productivos, depositos de vehıculos, estaciones y en el trazo de los caminos que seran

utilizados y que uniran las instalaciones fısicas unas con otras. Ejemplos de como deben

CAPITULO 1. INTRODUCCION 4

ser disenadas esta rutas las encontramos a diario los rıos, el sistema circulatorio o hasta

en la forma de los arboles, sin embargo la construccion de redes por el hombre buscando

ser mas sofisticada a creado otras estructuras como las de mallas cuadriculadas, redes

de anillos centricos y las de “hub and spoke ”. Hacer estos disenos de la manera mas

eficiente, es decir que siempre generen un beneficio en tiempo o economico es una gran

oportunidad para mostrar interes en la investigacion de estos temas.

1.2. Transporte como actividad economica

Como se describio anteriormente el transporte puede ser considerado como una

materia de estudio. Sin embargo la manera mas comun en que se conoce al transporte es

como una actividad economica. Sabemos que sin esta actividad serıa imposible disponer

de cualquier tipo de producto en el lugar que quisieramos. Esta generalizacion nos hace

pensar en otro concepto conocido como “logıstica ”.

La transportacion y logıstica con frecuencia se pueden confundir como el mismo

concepto, aunado a esto cada quien lo nombra como mejor se adapte a su situacion

y encontramos que este termino es conocido tambien como: Distribucion, Logıstica

industrial, Sistemas de respuesta rapida, Administracion de cadena de suministro. En

un intento por estandarizar la idea el Consejo de Administracion Logıstica (The Council

of Logistics Management [CLM]) a proporcionado esta definicion [3] para logıstica.

El proceso de planeacion, implementacion y control efectivo y eficiente, del flujoy almacenamiento de bienes, servicios e informacion, desde un punto de origenhasta un punto de consumo, con el proposito de cumplir con requerimientos deun cliente.

Basados en esta definicion ubicamos al transporte como parte de las actividades de

la logıstica, considerandolo con la capacidad de poder mover materia prima y bienes

producidos desde un punto de origen a uno de destino donde se consumiran. Tambien

CAPITULO 1. INTRODUCCION 5

involucra la seleccion del modo (ej. avion, tren, barco, camion o tuberıas), ruteo de

los embarques, asegurar el cumplimiento de las reglas del lugar donde se originan los

embarques y la seleccion de una companıa de transporte.

La importancia de esta se basa principalmente y en la mayorıa de las casos por su

participacion en los costos totales de las actividades logısticas.

Un sistema de transportacion eficiente es el sello distintivo de una sociedad in-

dustrializada aun y cuando su influencia como sector economico es tan sutil que muy

pocas veces vemos su impacto en nuestra vida diaria, solamente en EU los gastos de

transportacion en 2002 fueron de cerca de 455 billones de dolares.

El impacto de la transportacion no solo contempla el sentido de participacion de los

costos totales de un bien, tambien es importante la participacion que tiene para lograr

una satisfaccion del cliente. La transportacion es considerada como una actividad de

valor agregado, es decir si el producto puede ser movido desde un lugar a otro se conoce

como valor de lugar, ademas para que el producto este disponible en el momento la

velocidad y consistencia con que se mueve de un lugar a otro determina el valor de

tiempo.

Si el producto no se encuentra en el momento preciso en el lugar que se necesita

puede traer repercusiones costosas como perdida de ventas, insatisfaccion del cliente,

disminucion de la produccion cuando hablamos de sistemas de manufactura. Son cono-

cidos los casos en la industria automotriz de las costosas multas por detencion de lıneas

de produccion como consecuencia de un incumplimiento de estos dos valores Tiempo y

Lugar.

Companıas como FedEx, CSX, UPS,Ryder Integrated Logistics basan su exito en

la capacidad de proveer un consistente tiempo en transito y un gran valor de lugar y

tiempo a los productos de sus clientes.

CAPITULO 1. INTRODUCCION 6

En general los factores que influyen en el costo y precio del transporte se puede

agrupar en dos a continuacion los podemos ver en la tabla (1.1).

Factores relacionados con elproducto

Factores relacionados con elmercado

Densidad Localizacion de mercadosEstibamiento Legislacion actual para los trans-

portistasManejo Balance del trafico que entra y sale

del mercadoResponsabilidad por valor del pro-ducto

Temporizacion de los productos

Transporte domestico o interna-cional

Tabla 1.1: Factores que influyen en costo del transporte

De todos los modos de transporte disponibles—autotransporte, avion, barco, tren,

ductos— que se pueden utilizar para transportar productos el modo de autotransporte

tambien conocido como transporte por camion o trailer es uno de los mas conocidos y

tambien motivo de este trabajo. Este sector se encuentra segmentado en nuestro paıs

como se muestra en la grafica 1.1 .

El transporte de carga es el principal modo de transporte para muchos de los produc-

tos manufacturados como artıculos deportivos, juguetes, artıculos electronicos, enseres

domesticos, ropa, medicamentos, equipo de oficina y en un 75% es la eleccion para

transportar productos agrıcolas, como carne, vegetales, productos de elaboracion di-

aria, pan, cigarros y bebidas, de esta forma se transportan todo tipo de productos de

manera rapida y confiable con una mınima perdida o dano del producto durante su

recorrido.

Al transporte que se realiza sin cruzar fronteras internacionales se le conoce como

domestico, aunque preferentemente se realiza por trailer el movimiento de estos pro-

ductos, este compite por los pequenos embarques con el aereo, y contra el tren en los

CAPITULO 1. INTRODUCCION 7

Figura 1.1: Distribucion del transporte de Carga en Mexico

grandes embarques. Lo que ha marcado la diferencia de eleccion de este sobre las demas

es lo eficiente que se vuelven las operaciones de carga y entrega de mercancıas en las

terminales camioneras en comparacion con las terminales aereas para cualquier tamano

del cargamento si la distancia recorrida es menor de 500 millas.

Con respecto al tren cualquier embarque que exceda las 10000 libras sera predomi-

nante su eleccion sobre la transportacion por camion. Una de las ventajas de esta forma

de transporte sobre sus competidoras es la flexibilidad que le proporcionan los cerca de

4 millones de millas infraestructura en caminos que permiten llegar de un punto a otro

en casi cualquier combinacion de origen y destino. Y la versatilidad que le da el poder

mover productos de cualquier tamano y peso a cualquier distancia. Por su flexibilidad

y versatilidad se ha convertido en la forma de transporte dominante en America y otras

partes del mundo ademas de que a podido ser involucrada en los programas de justo

a tiempo (JIT)1 con resultados en menores y confiables tiempos de transito. La ten-

dencia a utilizar esta forma de transporte va en aumento dada su compatibilidad con

1 Just in Time, metodologıa japonesa para un desempeno de inventarios ‘cero’

CAPITULO 1. INTRODUCCION 8

las necesidades de la industria por mover sus productos, mientras los proveedores de

estos servicios se esmeren en proveer un rapido y eficiente servicio a precios competi-

tivos respecto a sus competidores en aire y tren, la industria del transporte por trailer

prosperara.

Una vez que se ha seleccionado el modo de transporte una de las tareas de mayor

importancia y repercusion en los costos es la del ruteo y secuenciamiento. Consideran-

do las grandes inversiones en equipo y localizacion de instalaciones que conllevan los

gastos operativos, los transportistas han reconocido al importancia de un buen ruteo y

secuenciamiento para alcanzar los niveles de ganancias y servicio al cliente deseados.

En los ultimos anos estas areas han aumentado su importancia debido a factores de

competencia, legislacion y factores economicos, ejemplos de estos factores son los trata-

dos de libre comercio establecidos entre las naciones, costo de combustible, situacion

laboral y capacidad e innovaciones en los equipos.

Los transportistas se han dado cuenta que utilizando esta rama de la ciencia del

transporte se puede alcanzar beneficios considerables optimizando las actividades de

ruteo y secuenciamiento, aunque aquı no ahondaremos en que clase de tecnicas se

utilizan es importante mencionar que los grandes grupos industriales del mundo ya han

dado la oportunidad para probar el valor de estas propuestas y han visto su aportacion

en la disminucion de los costos de transporte.

Algunas de las estrategias que se siguen son: preasignacion de embarques para una

area especıfica de mercado al mismo tiempo que se disminuyen la frecuencia de los

envıos o visitas provocando un ahorro para el transportista.

La reduccion de la frecuencia de la recoleccion y entrega resulta en una disminucion

del nivel de transporte necesario para entregar la misma cantidad de producto, ası el

costo de transporte se reduce y la productividad aumenta. Otros ejemplos incluyen el

CAPITULO 1. INTRODUCCION 9

fijar las rutas en lugar de tener rutas variables para algunos embarques y modificacion

a las horas de recepcion de producto por parte del cliente, si el cliente puede aceptar

entregas fuera de los horarios crıticos, el transportista tendra una ventana de tiempo

mas grande que le permitira una mejor administracion del uso de los vehıculos.

En general los beneficios para los transportistas que mejoran su ruteo y secuenci-

amiento incluyen mayor utilizacion de los vehıculos, niveles mayores de satisfaccion al

cliente, disminucion de los costos de transporte, reduccion de la inversion en equipo y

una mejor administracion de la toma de decisiones. Como ejemplo de la aportacion de

una mejor asignacion y ruteo la empresa Baskin-Robbins una compania fabricante de

helados con 2500 tiendas en EU al utilizar una herramienta computacional para deter-

minar rutas y secuencias de su flotilla de transporte obtuvo ahorros de un 10% de las

millas recorridas totales de la flotilla, lo que se traduce en un beneficio economico de

$180,000.[34]

1.3. Objetivo de tesis

Teniendo en cuenta que todo aquel productor de bienes de consumo necesita del

transporte para hacer llegar su producto a la mayor parte del mercado y que este es re-

alizado por tractocamiones propios o rentados bajo un esquema 3PL, en una infraestruc-

tura carretera que conecta a las plantas de produccion con los centros de distribucion.

El problema de que recurso(tractocamion), el camino que seguira para cumplir con una

demanda establecida y los horarios en que debe estar disponible para cumplir con un

horario de atencion para descarga y carga.

El objetivo de este trabajo de investigacion y tesis es construir un modelo matematico

adecuado a este problema que de solucion al problema de asignacion de recursos de

transporte.

CAPITULO 1. INTRODUCCION 10

Como objetivos de este modelo tenemos:

Definir la cantidad optima de recursos de transporte que minimice el costo total

de transporte (fijo + variable).

Cumpliendo con las siguientes restricciones.

Volumen a mover.

Ventanas de carga en los orıgenes.

Ventanas de descarga en los orıgenes

La manera mas clara de ver el objetivo es poder responder a las preguntas ¿Que vehıcu-

lo? ¿A donde debe de ir? ¿A que hora esta disponible?

Este modelo ademas debera de poder ser implementado y probado con datos reales.

El exito de los resultados obtenidos podra servir como base para futuros proyectos

en colaboracion con la industria.

1.4. Organizacion de la tesis

La estructura de este trabajo esta dada de la siguiente forma: en el Capıtulo 2 pre-

sentamos un amplio recorrido por la historia de los trabajos que han buscado trabajar

variantes de este problema. El Capıtulo 3 comprende la exposicion del problema, la

formulacion y explicacion detallada del modelo matematico MIP que sera resuelto me-

diante las tecnicas de la programacion entera mixta. El Capıtulo 4 comprende el estudio

de dos casos practicos presentados por Sintec. Enseguida se presentan los experimentos

hechos con problemas aleatoriamente generados en el Capıtulo 5 y en el Capıtulo 6 se

presentan las conclusiones y las recomendaciones para los trabajos futuros.

Capıtulo 2

El problema y sus antecedentes

Desde la propuesta de Dantzig para resolver el problema de asignacion de vehıculos

conocido por sus siglas en ingles como (VRP), muchos investigadores han tratado este

problema. En aquel momento Dantzing y Ramser[7] presentaban la primer formulacion

matematica para un problema del mundo real, este consistıa en la la entrega de gasolina

a las estaciones de servicio. Unos anos mas tarde Clarke y Wright proponen una efectiva

heurıstica “greedy” que mejora la solucion de Dantzing-Ramser. A mas de 40 anos de la

publicacion de estos artıculos, se han propuesto muchos modelos, tecnicas de solucion

exactas, aproximaciones por heurısticas para resolver el VRP y sus variantes. En este

capıtulo abordaremos algunos de estos modelos al igual que algunas de las metodologıas

exactas y heurısticas utilizadas en los ultimos anos.

2.1. Introduccion a los problemas de ruteo.

La busqueda de una mejor manera de administrar las cadenas de suministro ha

permitido el incremento en el uso de paquetes de optimizacion basados en investigacion

de operaciones y modelacion matematica. El uso de estas tecnicas muestra ahorros

significativos entre el 5% al 20% de los costos totales de transporte. Estos costos por

11

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 12

su participacion global adquieren mas importancia dentro de los costo total de cualquier

producto.

Los problemas conocidos como Problema de Ruteo de Vehıculo(VRP) o Problema

de Asignacion de Vehıculos (VSP) se pueden describir de una manera sencilla como

sigue:

Existen plantas de produccion, almacenes o depositos(origen) en donde se encuentra

el producto terminado, es necesario hacer llegar a los clientes(destino) una cantidad de

producto (demanda), los clientes se encuentran localizados a cierta distancia de los

puntos de origen. Para llegar a ellos el producto se mueve por vehıculos a traves de

caminos trazados(red de distribucion)

Habitualmente los VRP’s son una perfecta descripcion de los sistemas de distribu-

cion de companıas como Bimbo, Coca-Cola, Pepsi, Sabritas, etc. en general situaciones

de recoleccion y entrega de productos o servicios, ejemplos de estas son la recoleccion

de basura, transporte escolar o de personal, y en algunos casos los sistemas tipo entrega

a domicilio (taxis, pizzeria, mensajeria) pueden ser modelados de la misma forma.

De acuerdo a las caracterısticas en los elementos basicos del problema como: red de

caminos, clientes, depositos, vehıculos y conductores se pueden diferenciar entre varias

definiciones del problema

1. Red de caminos. Las redes de distribucion son generalmente representadas por

grafos en donde las aristas representan secciones de carretera o calles y los vertices

las intersecciones de los arcos en donde se encuentran los depositos y clientes. Estos

pueden ser dirigıdos o no dirigıdos dependiendo de la configuracion real de las calles

y carreteras, es decir si son de un solo sentido o en ambas direcciones. Ademas a

cada arco se le asocia un costo que representa la distancia y un tiempo de viaje el

cual puede depender del vehıculo y el perıodo durante el cual el arco es recorrido.

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 13

2. Los clientes pueden asumir las siguientes caracterısticas:

Son localizados en los vertices del grafo,

Se define una cantidad de productos (demanda) posiblemente de diferentes

tipos para ser entregados o recolectados

Perıodos de tiempo durante los cuales los clientes pueden ser atendidos

Tiempos requeridos para recibir y recolectar los productos (carga y descarga)

y pueden depender del tipo de vehıculo

Un subconjunto de vehıculos a utilizar debido a restricciones de acceso o re-

querimientos para su carga y descarga

Para los casos en que la demanda no puede ser totalmente satisfecha para cada

cliente, la cantidad a entregar o recolectar es menor y un grupo de clientes que-

da sin ser atendido, se considera agregar penalizaciones o prioridades de servicio

asignadas

3. Entre las consideraciones de los depositos podemos encontrar tipo y numero de

vehıculos asignados, cantidad de productos para los que tiene capacidad. En al-

gunos casos los clientes son asignados a priori a cada deposito, y los vehıculos

tienen que regresar al deposito al terminar el dıa.

4. Para efectuar la transportacion de los productos se usan flotillas de vehıculos que

pueden estar compuestas de manera homogenea o heterogenea de acuerdo a los

requerimientos de los clientes las caracterısticas que presentan son:

Asignacion a un deposito central y la posibilidad de terminar su servicio en

un deposito diferente

Capacidad del vehıculo expresada como el maximo de peso, volumen, numero

de pallets que un vehıculo puede cargar.

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 14

Posible division del vehıculo en compartimientos para transportar diferentes

tipos de productos, diferenciados por capacidad

Dispositivos para su carga y descarga

Existen costos asociados con el uso de los vehıculos ($/km , $/hr )

5. Hay restricciones de operacion referentes a los vehıculos como las derivadas por

la contratacion de conductores de los vehıculos y a las rutas, maxima carga del

vehıculo, clientes de solo entrega, solo recoleccion o ambas.

2.2. Trabajos sobre ruteo de vehıculos con ventanas

de tiempo

El problema de ruteo de vehıculos con ventanas de tiempo (VRPTW) es una exten-

sion del problema de ruteo de vehıculos con capacidad (CVRP) en el que se considera

lo siguiente; los vehıculos tienen una capacidad limitada y cada cliente i tiene incor-

porado un intervalo de tiempo [ai , bi] al que llamaremos ventana de tiempo . Tiempo

de viaje dado para cada punto (i, j) mas un tiempo de servicio para cada cliente si. El

tiempo en que un cliente comienza a ser atendido esta asociado a su ventana de tiempo

y podra estar en espera en la ubicacion del cliente en un tiempo igual a si, en caso de

que el vehıculo llegue antes del tiempo ai se le esta permitido esperar hasta que inicie

el servicio.

El VRPTW consiste en encontrar una coleccion exacta de de P circuitos simples un

mınimo costo que cumpla con lo siguiente:

Cada circuito visita el deposito.

Cada cliente se encuentra en un solo circuito.

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 15

La suma de las demandas de los clientes localizados en un circuito no puede sobre

pasar la capacidad del vehıculo.

Para cada cliente i el servicio inicia con la ventana de tiempo [ai, bi] y el vehıculo

se detiene si instantes de tiempo.

Dada la importancia de este problema en la vida cotidiana, se han publicado nu-

merosos trabajos, en los que consta la diversidad de planteamientos que se puede pre-

sentar.

A continuacion se exponen algunos de ellos publicados y desarrollados durante los

ultimos 20 anos

Entre los trabajos que se pueden encontrar, algunos investigadores han desarrollado

compendios especiales del problema entre estos se encuentra el de Bodin et al. [19] con

un resumen de ruteo y secuenciamiento de vehıculos. Solomon y Desrosiers en[24] son

mas especıficos en problemas de ruteo con restricciones de temporalidad algunos anos

mas tarde Desrosieres et al. actualizo este estudio y lo publica en [12]. En cuanto a los

metodos de solucion heurısticos y exactos de los problemas VRPTW puede encontrarse

una compilacion en [26].

Los trabajos iniciales que consideraban restricciones de tiempo en problemas de

ruteo, se originan en el estudio del problema del agente viajero con ventanas de tiempo

(TSPTW) y el problema de “dial-a-ride ”servicio a domicilio.

Christofides et al. [31] definieron una tecnica que combina la solucion por medio

de ramificacion y cotas y programacion dinamica para relajar el espacio de solucion de

TSPTW. En el marco de estos trabajos Baker [4] publico un modelo matematico que

considera solo variables continuas, esta formulacion ademas de incluir una funcion de

valor absoluto lo que excluye el uso de tecnicas de solucion de programacion lineal.

Desrosiers et al. [13] modelaron este problema considerandolo el problema de mıni-

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 16

mo costo de flujo en redes con restricciones de tiempo, con este se pudo resolver exi-

tosamente algunos problemas de secuenciamiento de vehıculos escolares con hasta 233

nodos.

Psaraftis [9] estudio el problema de un vehıculo con visita a varios puntos bajo

demanda, donde varios puntos se refiere a diferentes puntos de recoleccion y entrega de

bienes, nos referimos al concepto de bajo demanda a que la utilizacion del vehıculo se

presenta solo cuando alguien solicita el servicio ej. (repartidor de comida, servicio de

taxis). En esta investigacion uso programacion dinamica para minimizar la medida de

insatisfaccion de un cliente por el tiempo total que paso en el vehıculo. Problemas con

hasta 9 clientes se resolvieron optimamente.

En [14] Desrosiers et al. presentan una formulacion de programacion dinamica hacia

adelante para el mismo problema tratado por Psaraftis, estos resuelven problemas de

reales con hasta 40 clientes, y concluyen que su metodo es lo suficientemente robusto

para resolver problemas mas grandes pero debido a que en los problemas de la vida real

las ventanas de tiempo son demasiado ajustadas el espacio de solucion se ve fuertemente

reducido. Siguiendo la misma lınea de investigacion, Sexton y Bodin [36] trabajaron

el mismo problema con restricciones en los tiempos de entrega y desarrollaron una

heurıstica basada en descomposicion de Benders para encontrar rutas factibles.

Los metodos de solucion exacta usualmente consisten en procedimientos de enu-

meracion exhaustiva como los conocidos como: ramificacion y cotas o programacion

dinamica. Estas tecnicas pueden resultar con tiempos de computo muy largos dada la

dificultad del problema [32], para lograr una reduccion de los tiempos se utilizan tecni-

cas como la relajacion lagrangeana, generacion de columnas o planos cortantes como

ramificacion y cortes.

Kolen et al. [1] estudiaron el VRPTW considerando solo un deposito y un solo tipo de

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 17

servicio (entrega o recoleccion) exclusivamente. Utilizando una tecnica de ramificacion

y cota para minimizar el total de la distancia de la ruta pudieron resolver problemas con

hasta 15 clientes con diferentes tiempos en las ventanas de tiempo. A pesar del tamano

de los problemas, se puede senalar el tamano y la frecuencia de la ventana como el

factor mas importante para determinar la dificultad del problema. Ni la capacidad del

vehıculo ni fijar el numero de vehıculos tienen un impacto cercano al de las ventanas

de tiempo.

Desrochers et al. en su trabajo [27] usa la tecnica de generacion de columnas para

resolver algunos problemas con 100 nodos hasta optimalidad con la funcion objetivo de

minimizar la distancia total recorrida. La idea para lograr esto consiste en formular el

VRPTW como un problema ”Set partitioning.en el que se consideran todas las rutas

factibles implıcitamente. Ya que este numero de rutas crece exponencialmente con el

numero de clientes solo una fraccion de las rutas es incluida en el modelo. En cada

iteracion del procedimiento se realiza un chequeo para determinar la existencia de una

ruta aun no incluida que pueda reducir el costo, esto se logra por la solucion relajada

de un subproblema de ruta mas corta con restricciones de tiempo y capacidad. Si

la ruta existe su columna correspondiente es agregada al modelo y el procedimiento se

repite hasta que el conjunto completo de rutas es encontrado. Para encontrar soluciones

enteras con este algoritmo se trabaja con un esquema ramificacion y cotas.

Kohl[30] usa la tecnicas de relajacion lagrangeana para descartar la restriccion de

atender a todos los clientes. Como resultado de la relajacion se transforma en un sub-

problema de ruta mas corta con restricciones de tiempo y capacidad el cuales un prob-

lema mas facil de resolver, de cualquier forma encontrar los mejores multiplicadores de

Lagrange requiere un considerable esfuerzo computacional. Usando esta tecnica se han

resuelto problemas con hasta 100 clientes.

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 18

La combinacion de planos cortantes con una busqueda exhaustiva es conocida co-

mo ramificacion y corte. En esta aproximacion el problema inicial en formulado como

un problema entero mixto lineal. Ası las restricciones de integralidad se relajan y el

problema lineal resultante es optimizado, si la solucion es entera entonces el algoritmo

termina con una solucion optima del problema original y si la solucion es fraccional se

agregan desigualdades o cortes validos al modelo y el procedimiento se repite. Cuando

no se pueden identificar mas cortes por el procedimiento de separacion o el efecto de

cualquier desigualdad es marginal y la ramificacion ocurre.

Padberg y Rinaldi en su trabajo[28] primero utilizaron el metodo de planos cortantes

para resolver instancias grandes del problema del agente viajero (TSP). Una tecnica

similar fue usada por Hoffman y Padberg [18] para resolver un problema de secuenci-

amiento de tripulacion de aerolıneas, otro trabajo es el de Aranque [10] desarrollo un

algoritmo ramificacion y corte para un problema de ruteo de vehıculos con clientes

identicos, Augerat [33] presenta nuevas desigualdades para el problema de capacidad

simetrica de ruteo de vehıculos.

La solucion por metodos exactos de este problema solo es efectiva en tiempo en

problemas de tamano relativamente chico, esto hace util el uso de tecnicas heurısticas.

Una tecnica heurıstica es capaz de encontrar buenas soluciones en un tiempo menor

esto hace que sean tecnicas atractivas de solucion para los problemas de gran tamano

que se encuentran en la industria. A continuacion se citaran algunos trabajos que hacen

uso de las tecnicas heurısticas para la solucion de estos problemas.

Nygard et al. [17] estudiaron una variante del VRPTW considerando unicamente

ventanas de tiempo de un lado es decir de cierre. Inicialmente los clientes se agrupan en

“clusters” resolviendo el problema general de asignacion, el siguiente paso es calcular

los subtours optimos para cada grupo o cluster y finalmente un procedimiento de cambio

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 19

de rama para asegurar que las restricciones temporales son satisfechas. Solomon [22]

propuso una heurıstica de insercion secuencial para el problema de minimizacion del

tamano de la flota con un solo tipo de servicio del VRPTW. Las rutas son construidas

una a la vez por la insercion de clientes en al mejor posicion de acuerdo con un parametro

en funcion de costo. Diferentes soluciones se obtienen por la variacion de los parametros

de la funcion de costo. El peor caso en la aplicacion de esta heurıstica es Ω(n), donde

n es el numero de clientes, se puede encontrar a mas detalle la explicacion del uso de

esta heurıstica en [23], esto significa que en el peor caso la proporcion de la diferencia

de la solucion de la heurıstica contra la solucion optima crece proporcionalmente con

el numero de clientes. Potvin y Rousseau [11]desarrollaron una heurıstica paralela a

la version de Solomon, en esta se construyen varias rutas al mismo tiempo insertando

clientes en la mejor posicion entre las rutas completas parcialmente.

Las tecnicas heurısticas usualmente son complementadas por tecnicas de busque-

da en la vecindad para obtener resultados optimos locales. Iniciando con una solucion

factible una nueva solucion se obtiene por el intercambio de la posicion de un pequeno

grupo de los clientes usualmente dos o tres. El intercambio de la posicion de los clientes

se enumera exhaustivamente hasta que no existe alguna reduccion en la funcion obje-

tivo. Baker y Schaffer [5]estudiaron algunos procedimientos de busqueda local para el

VRPTW modificando los procedimientos de 2-opt y 3-opt de intercambio utilizados el

problema clasico de VRP para poder tomar en cuenta las restricciones de las ventanas

de tiempo y capacidad de los vehıculos. Dos trabajos recientes [25]de Solomon et al.

y [29] Savelsbergh han buscado una disminucion de la complejidad del intercambio de

planos en el VRPTW.

Dentro de las tecnicas heurısticas utilizadas para la solucion del VRPTW , las que

tecnicas probabilısticas han recibido mayor atencion por parte de los investigadores

CAPITULO 2. EL PROBLEMA Y SUS ANTECEDENTES 20

debido a su habilidad para trascender de una optimalidad local. Este mejoramiento en

la busqueda se alcanza por la diversificacion de la misma, pasando de areas en el espacio

de solucion, de mejora muy pobre hacia areas mas prometedoras. Thangiah et al. [35]

en su trabajo propusieron una combinacion de busqueda tabu, algoritmos geneticos

y recocido simulado para solucionar el VRPTW. Con este metodo se han alcanzado

los mejores resultados conocidos para problemas clasicos encontrados en la literatura.

Potvin et al.[15] desarrollaron un algoritmo de busqueda tabu, este algoritmo utiliza

un algoritmo de intercambio especial, con el fin de aprovechar al solucion dada por la

heurıstica determinıstica de Solomon. Potvin and Bengio [16] siguieron una forma de

trabajo similar y usan las soluciones obtenidas por la heurıstica de Solomon para generar

nuevas soluciones a partir de un algoritmo genetico. Rochat y Tailard en [37] trabajan

con una heurıstica de probabilidad que aprovecha las capacidades de diversificacion e

intesificacion de anteriores trabajos con busqueda tabu.

Otros metodos son los basados en K-arboles. Fisher[21] extendio el trabajo realizado

por el metodo 1-arbol para el problema de ruteo de vehıculos y el ruteo de vehıculos

con ventanas de tiempo. En esta aproximacion se supone que cada ruta contiene al

menos dos clientes, se formula un modelo matematico particular y las restricciones son

relajadas por el metodo lagrangeano.

Capıtulo 3

Exposicion del Problema

En muchas organizaciones, la administracion de las actividades de distribucion con-

stituye un problema de toma de decisiones. Este problema ha cobrado mas importancia

debido a la contribucion de los costos de distribucion dentro de los costos totales. La

mayorıa de las companıas requieren de vehıculos para la recoleccion y entrega dentro

de una red de suministro o demanda. La utilizacion y ruteo eficiente de esta flotilla es

el nucleo de la mayorıa de los problemas de ruteo.

Una pregunta que se efectua con frecuencia por los gerentes de distribucion es

¿Cuantos vehıculos son necesarios para satisfacer una demanda a un costo mınimo?

Esta pregunta es difıcil de contestar dada la enorme gama de combinaciones de mezcla

de flotilla y rutas que pueden existir, abriendo la posibilidad de formular el problema

presentado en esta tesis.

3.1. Introduccion

Los problemas de ruteo de vehıculos existen en un ambiente compuesto por redes

de distribucion formadas con Plantas de Produccion y varios Centros de Distribucion,

este ambiente facilita la concentracion de los productos para facilitar su acceso a los

21

CAPITULO 3. EXPOSICION DEL PROBLEMA 22

clientes finales.

Para realizar el transporte desde las plantas hasta los centros de distribucion, existe

un proceso de seleccion del tipo y la cantidad de vehıculos a asignar para realizar esta

tarea. Esta seleccion da lugar a un proceso de toma de decisiones auxiliado por la

Investigacion de Operaciones.

Mediante este proceso se busca minimizar los costos totales de transporte esto es: el

costo fijo que es en el que se incurre por la adquisicion del vehıculo ya sea por compra

o renta del mismo, independientemente se use o no, el costo variable que representa los

costos por combustible y distancia entre la planta y el centro de distribucion siempre

que este vehıculo sea utilizado.

Ademas de estos, nuestra red de distribucion esta sujeta a horarios de atencion para

carga y descarga de los vehıculos en los centros de distribucion como en la planta estos

espacios de tiempo son conocidos como ventanas de tiempo.

3.1.1. Por que optimizar?

La naturaleza del problema nos presenta alternativas en la toma de decisiones para

lograr ahorros en la operacion.

Un numero ilimitado de vehıculos disminuirıa el incumplimiento en las ventanas

de tiempo de los Centros de distribucion ası como un menor numero de viajes

totales a cada CD. Como consecuencia el costo fijo total de la flotilla sera muy

alto.

Con un numero limitado de vehıculos el incumplimiento en las ventanas de tiempo

en los CD serıa mayor, ademas el numero de viajes tambien serıa mas grande, lo

que hace nuestro costo variable aumente .

CAPITULO 3. EXPOSICION DEL PROBLEMA 23

Encontrar el equilibrio entre estas dos alternativas da la posibilidad de poder plantear

esta situacion como un problema de optimizacion que se pueda resolver mediante tecni-

cas de optimizacion.

3.1.2. Sintec

Para la realizacion de esta tesis se conto con el apoyo de Sintec empresa de con-

sultorıa en Generacion de Valor, a traves del desarrollo e implementacion estrategias y

tecnologıas que fortalezcan el desempeno de la Cadena de Valor. Dentro de las consul-

torıas establecidas en Mexico, Sintec es uno de los principales generadores de educacion

y capacitacion en temas de Cadena de Demanda, Cadena de Suministro, Tecnologıa de

la Informacion y organizador del evento Visum.

Sintec, fue fundada en 1987 en Monterrey N.L Mexico y desde su fundacion ha sido

una empresa lıder comprometida con la generacion de valor a sus clientes. Entre los

clientes con los que ha trabajado estan las mas importantes de Mexico entre ellos Coca

Cola FEMSA, Cerveceria Cuahtemoc, Lamosa, Liverpool,Cemex,Qualtia.

Dada la experiencia y reconocimento que ha adquirido en estos anos de excelentes

resultados con sus clientes, por su cercanıa con la practica de las tecnicas de la inves-

tigacion de operaciones y los problemas de nuestro interes para el desarrollo de una

tesis, se considero una empresa adecuada para realizar este trabajo, por su parte se nos

acepto como una propuesta seria de trabajo y tenemos el orgullo de ser aceptados para

presentar una solucion a un problema tıpicamente expuesto a ellos.

Durante sesiones de trabajo con los gerentes del area de suministro Roberto Palacios

y Gerardo Naranjo se obtuvo la informacion necesaria para hacer de este problema

presente en la practica un modelo de optimizacion, estos modelos seran presentados a

continuacion.

CAPITULO 3. EXPOSICION DEL PROBLEMA 24

3.1.3. Modelos Matematicos

La informacion presentada por Sintec describe el problema expuesto en la introduc-

cion de este capıtulo. Recordemos que este problema consiste en la seleccion de recursos

de transporte dentro de una red de distribucion compuesta por una Planta de produc-

cion y Centros de Distribucion con restricciones de horarios de atencion para carga y

descarga de producto en cada una de las instalaciones. En el desarrollo de los mode-

los de optimizacion que representaran la realidad del problema, por la gran y variable

existencia de trabajos que tratan el problema del ruteo de vehıculos con ventanas de

tiempo se penso que se podrıa adaptar alguno de los modelos ya existentes sin embargo

con el estudio mas profundo de estos modelos entendimos que las suposiciones que los

investigadores tomaron para estos modelos en la mayorıa de de los casos no representa-

ban las mismas suposiciones de nuestro problema. Crear un modelo que considerara los

supuestos presentados por Sintec es el objetivo de este trabajo.

El modelo se fue construyendo en un proceso de evolucion hasta llegar al modelo

que representa lo mas fiel posible la situacion de la red y sus restricciones es decir la

descripcion del problema. Cabe mencionar que se ha buscado mantener la linealidad de

los modelos lo que nos permitirıa la solucion del mismo por las tecnicas ya conocidas

para problemas del tipo MIP

Estos modelos son los siguientes.

1. Modelo I.

Las consideraciones que se modelan son las siguientes:

El Vehıculo es usado una sola vez

Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo

Existe un solo tipo de vehıculos, es decir todos los vehıculos tienen las mismas

CAPITULO 3. EXPOSICION DEL PROBLEMA 25

caracterısticas de capacidad.

Las rutas son fijas y enumeradas

Resultados de este modelo: Este modelo no ofrece ninguna optimizacion sobre los

costos de transporte solo cumple con la asignacion de un vehıculo por cliente como

mınimo y si requiere hacer mas viajes para satisfacer demanda asigna un vehıculo

nuevo por cada viaje extra que requiera para satisfacer demanda. Es importante saber

que la capacidad del vehıculo es menor o igual que la demanda. Esta formulacion se

toma como base de los siguientes modelos.

2. Modelo II.

Las consideraciones en este modelo son las siguientes:

El vehıculo deja el deposito, visita un cliente al terminar regresa al deposito y

vuelve a visitar al mismo cliente hasta satisfacer demanda.

Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo

Existe un solo tipo de vehıculos, es decir todos los vehıculos tienen las mismas

caracterısticas de capacidad

Las rutas son fijas y enumeradas

Resultados de este modelo: Como consecuencia de permitir hacer varios recorridos

por vehıculo, la cantidad de vehıculos asignados es igual al numero de clientes. La toma

de decisiones parte de los horarios en que deben ser asignadas las salidas en cada una

de las ocasiones en que el vehıculo salga a realizar una entrega. Existen penalizaciones

por llegadas temprano (el centro de distribucion aun no ha abierto) y por llegadas tarde

(el centro de distribucion ya cerro). Por lo que busca el mejor acomodo en las salidas

de los vehıculos para evitar violaciones en los horarios de los centros de distribucion.

CAPITULO 3. EXPOSICION DEL PROBLEMA 26

3. Modelo III

Las consideraciones de este modelo son las siguientes:

El vehıculo parte del deposito con el fin de visitar un cliente, este es visitado las

ocasiones necesarias para satisfacer demanda

Se satisface la demanda en cada cliente y se respetan las ventanas de tiempo

Existe tres tipos de vehıculos, diferenciados por su capacidad.

Resultados de este modelo: Contar con hasta tres tipos de vehıculo hace una asignacion

de estos de acuerdo a las demandas de los clientes y a las diferentes capacidades de los

vehıculos. Este modelo genera soluciones en la parte de la optimizacion de los costos

variables. De acuerdo a las ventanas de tiempo se elige entre mandar un camion de la

menor capacidad varias veces o uno de mayor capacidad un numero menor de veces.

Como resultado final de esta evolucion de modelos se obtiene un modelo matematico

del tipo Entero Mixto Lineal (MIP)

3.2. Formulacion Matematica

Como ya se ha descrito el problema que se trata de solucionar en este trabajo

cosiste en la seleccion de los recursos de transporte para distribuir productos entre una

planta de produccion y los centros de distribucion que mas adelante se haran cargo de

hacerlo llegar a los clientes finales. La solucion a este problema considera las siguientes

suposiciones.

Los terminos planta de produccion y centros de distribucion son una particularidad

de nuestro problema. A estos tambien se les puede mencionar como deposito y clientes

respectivamente

CAPITULO 3. EXPOSICION DEL PROBLEMA 27

3.2.1. Suposiciones del problema

1. Se satisface la demanda de todos los clientes. Esto significa que para todos los

centros de distribucion que se encuentren asignados a una planta de produccion

se cumple con la oferta de servicio, es decir se le entrega el producto requerido en

tiempo y cantidad.

2. Solo se calcula el tiempo de inicio del primer viaje de cada uno de los vehıculos. Es

decir la optimizacion del tiempo al que debe iniciar cada viaje considera el mejor

primer tiempo para iniciar la entrega de todos los pedidos que pueda hacer ese

vehıculo de acuerdo a las ventanas de tiempo de los centros de distribucion

3. Existen las penalizaciones por llegada fuera del horario de servicio. Esto significa,

que se puede ajustar el nivel de servicio que se desea proveer a los centros de

distribucion. Las penalizacion por llegada fuera del horario de servicio se puede

fijar en tarifas muy altas lo que nos representa la situacion en la que no se permite

la violacion al horario de servicio, por consiguiente el nivel de servicio es de 100% ,

por el contrario si se requiere presentar la situacion en que se sacrifique el nivel de

servicio estas tarifas se ajustan en costos a los que el modelo evalua, y ası obtener

una seleccion entre salir del horario permitido o adquirir mas vehıculos de acuerdo

al costo.

4. La capacidad maxima de cualquiera de los tipos de vehıculos disponibles es inferior

a la demanda de los centros de distribucion, es decir en un solo camion y un viaje

no se podrıa satisfacer la demanda.

CAPITULO 3. EXPOSICION DEL PROBLEMA 28

5. Los vehıculos pueden visitar a un cliente tantas veces se ha necesario para satisfacer

la demanda dentro de las ventanas de tiempo de cada cliente.

Otra forma en la que se presenta este problema es cuando el cliente tiene una

demanda multiplo de la capacidad de los vehıculos. El abastecimiento de las esta-

ciones de servicio de PEMEX es el ejemplo de este tipo de problema. En este la

demanda a satisfacer es por “pipas ”completas de combustible, estas deben visitar

la estacion de servicio 2 o 3 veces por dıa.

6. El problema es determinıstico.

3.2.2. Definicion del Modelo Matematico

1. El modelo matematico resultante, definido por las restricciones y la funcion objeti-

vo, se plantea como un modelo Lineal Entero Mixto (MIP) y se utiliza la siguiente

notacion.

Conjuntos e Indices

I Conjunto de los clientes

J Conjunto de los viajes

K Conjunto de los vehıculos

i=Indice de los Clientes i,∈ I = 0, 1, 2, 3..I

El cliente 0 es la planta de produccion ocasionalemente tambien se conoce como

deposito

j=Indice de los viajes j ∈ J = 1, 2, 3..J

k=Indice de los Vehıculos k ∈ K = 1, 2, 3..K

CAPITULO 3. EXPOSICION DEL PROBLEMA 29

Parametros

Ei= La hora de apertura de la ventana de tiempo en cada cliente i ∈ I.

Li=La hora de cierre de la ventana de tiempo en cada cliente i ∈ I.

Cikt= Costo de viaje al cliente i con el vehıculo k del tipo t; i ∈ I, k ∈ K, t ∈ T.

Fkt=Costo Fijo del vehıculo k del tipo t; k ∈ K, t ∈ T .

Cdi=Costo por llegada tarde al cliente i; i ∈ I.

Cei=Costo por llegada temprano al cliente i; i ∈ I.

Di=Demanda en cada cliente i ;i ∈ I.

θi=Tiempo que dura el recorrido al cliente i; i ∈ I.

Qkt=Capacidad del vehıculo k tipo t; k ∈ K, t ∈ T.

Variables

Xijk=

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

0 Si no

Yk=

1 Si el vehıculo k es usado

0 Si no

Sjk =Tiempo en que sale el vehıculo k en el viaje j.

W+ijk =Tiempo que espera el vehıculo k en el cliente i en su viaje j

W−ijk =Tiempo que esta retrasado el vehıculo k en el cliente i en su viaje j

Ver que el uso del ındice j como un contador interno discreto del tiempo para cada

vehıculo k, asi en cualquier viaje j el vehıculo k puede estar con un cliente o permanecer

en el deposito (i = 0)

CAPITULO 3. EXPOSICION DEL PROBLEMA 30

Formulacion

mın∑

k

FkYk +∑ijk

(CikXijk + CeiW

+ijk + CdiW

−ijk

)(3.1)

Sujeto a:

X0jk +∑i6=0

Xijk = 1; j ∈ J, k ∈ K (3.2)

∑QkXijk ≥ di ; i ∈ I/0 (3.3)

Jk −∑

X0jk ≤ YkJk ; k ∈ K (3.4)

Sj+1,k ≥ Sjk +∑

Xijk2θi ; j ∈ J, k ∈ K (3.5)

W+ijk ≥ EiXijk − (Sjk + θiXijk) ; i ∈ I, j ∈ J, k ∈ K (3.6)

W−ijk ≥ (Sjk + θiXijk)− Li −M (1−Xijk) ; i ∈ I, j ∈ J, k ∈ K (3.7)

Xijk, Yk ∈ 0, 1 , W+ijk, W

−ijk, Sjk ≥ 0 (3.8)

La expresion 3.1 representa la funcion objetivo donde se minimiza el total de los

costos fijos, costos de viaje y costos por desviaciones de la ventana de atencion a cliente.

La minimizacion resulta de la obtencion de los mejores valores de las variables de

decision Xijk,Yk, W+ijk, W

+ijk que minimicen el costo total.

El conjunto de las restricciones 3.2 asegura que para cualquier viaje un vehıculo

se encuentra exactamente en un cliente o en el deposito (cliente (0). Una restriccion

obligatoria en la mayorıa de los problemas de ruteo es la de cumplimiento de la demanda

en los clientes esta se asegura con la expresion 3.3, esta establece que la demanda de

cada cliente debe ser satisfecha.

El conjunto de las restricciones 3.4 junto con el objetivo de minimizar aseguran que

sı el vehıculo permanece en todos los viajes en el deposito este no ha sido usado. Las

CAPITULO 3. EXPOSICION DEL PROBLEMA 31

siguientes restricciones formulan las condiciones que se tienen sobre el tiempo ası el

conjunto de restricciones 3.5 determina que un viaje solo puede iniciar hasta que el

vehıculo k ha regresado al deposito de su viaje previo.

La restriccion del tipo 3.6 en conjunto con el objetivo de minimizacion asegura que

si en cualquier viaje j, el cliente no es visitado (Xijk = 0) entonces no hay costo por

llegar temprano dado que (W+ijk = 0), si el cliente si es visitado (Xijk = 1) el calculo de

la desviacion del tiempo se calcula de forma normal . De manera similar las restricciones

3.7 estiman el tiempo por llegada despues del fin de la ventana de tiempo. Aquı M es

un numero entero positivo(M > Sjk − Li).

Es claro que en 3.6 y en 3.7 W+ijk ≥ 0 solo para Sjk + ti < Ei mientras que W−

ijk ≥ 0

solo para Sjk + ti > Li . Ası para Ei < Li siempre existe(W+

ijk

) (W−

ijk

)= 0. La solucion

de 3.1-3.8 indica la cantidad de vehıculos a ser usados (Yk), provee de un programa de

distribucion dado por el orden de las visitas (Xijk) y el horario en que los vehıculos

deben despacharse en cada viaje (Sjk).

3.3. Metodo de solucion

3.3.1. Programacion Entera (MIP)

En contraste con los problemas de programacion lineal, los problemas formulados

en programacion entera tienen mayor dificultad para resolverlos. En realidad no existe

un algoritmo de aplicacion general que pueda resolver este tipo de problemas. La falta

de este algoritmo general da cabida a intentar resolver este tipo de problemas me-

diante varios tipos de algoritmos. Existen tres categorıas principales de algoritmos de

solucion:[2]

(a) Algoritmos Exactos, estos aseguran la obtencion de una solucion optima a expensas

CAPITULO 3. EXPOSICION DEL PROBLEMA 32

de un numero alto de iteraciones. Dentro de este grupo se encuentran los algoritmos

planos cortantes, ramificacion - cota, ramificacion-corte y programacion dinamica.

(b) Algoritmos de Aproximacion, estos obtienen una solucion suboptima en un tiempo

polinomial junto con una cota respecto al grado de suboptimalidad presente.

(c) Algoritmos heurısticos proveen una solucion suboptima , pero sin garantizar su cal-

idad, ademas su tiempo de ejecucion no se garantiza que sea polinomial, estudios

empıricos apuntan a que en la mayorıa de los casos se logra una buena solucion

rapidamente, algunos ejemplos de estos metodos son las busquedas locales, reco-

cido simulado, busqueda TABU, Algoritmos geneticos.

En la busqueda de la solucion de nuestra formulacion se utiliza la tecnica de ramifi-

cacion-cota, esta es muy utilizada en las herramientas computacionales disenadas 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 difıcil

encontrar problemas que se puedan solucionar de forma manual, el apoyo de las her-

ramientas computacionales ha permitido a traves de los anos incrementar la dificultad

de los problemas a resolver, el avance en las tecnologıas 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

CAPITULO 3. EXPOSICION 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.

Capıtulo 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 definir

el tamano y tipo de la flota de transporte para realizar la distribucion de sus productos.

En ambos casos se considera de gran importancia el nivel de servicio otorgado por estas

companias, y la implicaciones de no satisfacer al cliente por lo que la definicion de la

flota 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

CAPITULO 4. CASOS PRACTICOS 35

y esta formada por una planta de produccion y 13 centros de distribucion, la figura(

4.1)muestra la una vista de la red cada uno de estos centros de distribucion tiene horario

definido 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 suficientemente grandes

para evitar la llegada fuera de las ventanas y resolver el modelo con las ventanas de

tiempo duras.

Cliente Hora Costos Demanda Tiempo Recorridoapertura cierre Adelantado Retrasado

Deposito 0 24 0 0 0 0La Viga 8 17 100000 100000 772.12 3.63Vallejo 8 17 100000 100000 870.47 3.63Zaragoza 8 17 100000 100000 2300.80 4.63Tlalpan 8 17 100000 100000 2401.05 4.13Iztapalapa 8 17 100000 100000 2674.23 4.04Mixcoac 8 17 100000 100000 3671.67 4.63Tlalnepanatla 8 17 100000 100000 4807.42 3.63Cuatitlan 8 17 100000 100000 5156.43 1.63Huixquilucan 8 17 100000 100000 7999.24 4.13Reyes 8 17 100000 100000 8521.68 4.63Chalco 8 17 100000 100000 8893.52 4.63Texcoco 8 17 100000 100000 10878.64 5.63Coacalo 8 17 100000 100000 12452.37 5.125

Tabla 4.1: Parametros clientes

Los datos de los vehıculos utilizados se presentan en la siguiente tabla

Vehıculos Costo fijo Capacidad1-29 10000 144030-50 15000 2880

Tabla 4.2: Parametros de los vehıculos

Para cada destino se tiene diferente costo variable dependiendo de factores como la

distancia y tipo de caminos transitados

CAPITULO 4. CASOS PRACTICOS 36

Destino Costo VariableLaviga $1103Vallejo $1116Zaragoza $1181Tlalpan $1168Iztapalapa $1094Mixcoac $1116Tlalnepantla $1160Cuatitlan $1203Huixquilucan $1081Reyes $1203Chalco $1344Texcoco $1269Coacalco $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 vehıculo, por cada uno de los viajes

de salida, para este problema el maximo numero de viajes que puede realizar cada

vehıculo 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 vehıculos

primero se muestran los vehıculos de capacidad sencilla ver tabla 4.4 es decir trailer

de una caja. A continuacion se presenta el programa de distribucion para los vehıculos

dobles o “full ”ver la tabla(4.5).

Los resultados mostrados en estas tablas se pueden ilustrar con el siguiente ejemplo:

El vehıculo 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 vehıculo 1 es asignado para seguir hacia Vallejo. Una conclusion impor-

CAPITULO 4. CASOS PRACTICOS 37

Programa de DistribucionVehıculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad1 Reyes 3.37 9.26 12.631 Vallejo 12.63 7.26 19.892 Coacalco 2.875 10.25 13.1253 Huixquilucan 3.87 8.26 12.133 Reyes 12.13 9.26 21.394 Huixquilucan 3.87 8.26 12.134 Chalco 12.13 9.26 21.395 Chalco 3.87 9.26 13.136 Chalco 3.37 9.26 12.637 Coacalco 2.875 10.25 13.1258 Reyes 3.37 9.26 12.638 La Viga 12.63 7.26 19.899 Chalco 3.37 9.26 12.6310 Chalco 3.37 9.26 12.6311 Reyes 3.37 9.26 12.6312 Coacalco 2.875 10.25 13.12513 Coacalco 2.875 10.25 13.12514 Coacalco 2.875 10.25 13.125

Tabla 4.4: Resultados Clientes Vehıculos Sencillos

tante de los resultados obtenidos es que de un total de 50 vehıculos disponibles solo

se requieren 25 para la satisfaccion de la demanda de los 13 clientes asignados de la

siguiente forma: 14 vehıculos de capacidad sencilla y 11 vehıculos 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 numero de vehıculos 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 ramificacion y cota.

En su aplicacion en los problemas reales, este arbol puede alcanzar un tamano en

CAPITULO 4. CASOS PRACTICOS 38

Programa de DistribucionVehıculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad

15 Reyes 3.37 9.26 12.6315 Tlapan 12.63 8.26 20.8916 Tlalnepantla 4.37 7.26 11.6316 Mixcoac 11.63 9.26 20.8917 Iztapa 3.96 8.08 12.0417 Chalco 12.04 9.26 21.318 Texcoco 2.37 11.26 13.6318 Cuatitlan 13.63 3.26 16.8919 Texcoco 2.37 11.26 13.6320 Mixcoac 3.37 9.26 12.6320 Huixquilucan 12.63 8.26 20.8921 Huixquilucan 3.87 8.26 12.1321 Zaragoza 12.13 9.26 21.3922 Tlalnepantla 4.37 7.26 11.6322 Coacalco 11.63 10.25 21.8823 Coacalco 2.87 10.25 13.1224 Texcoco 2.37 11.26 13.6325 Texcoco 2.37 11.26 13.6325 Cuatitlan 13.63 3.26 16.89

Tabla 4.5: Resultados Clientes Vehıculos Dobles

el que por la restriccion del tiempo la exploracion total del arbol resulta intrascendente

cuando con un tiempo lımite se alcanza una solucion que satisface el requerimiento de

beneficios esperados.

Nombre del Problema Tiempo CPU Nodos Arbol ObjetivoVrpSin1 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

CAPITULO 4. CASOS PRACTICOS 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 vehıculos 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 Recorridoapertura cierre Adelantado Retrasado

Planta 0 0 0 0 0 0HEB 6.5 22.5 100000 100000 191 8.54GCA 7 22 100000 100000 114 4.11SCM 0 23.98 100000 100000 142 6.93WBM 0 12 100000 100000 240 5.88WSC 0 12 100000 100000 201 5.8

Tabla 4.7: Parametros clientes Caso 2

CAPITULO 4. CASOS PRACTICOS 40

Los datos de los vehıculos utilizados se presentan en la siguiente tabla

Vehıculos Costo fijo Capacidad1-10 10000 2411-15 20000 40

Tabla 4.8: Parametros de los vehıculos

En este caso, cada uno de los clientes esta situado en un rango de distancia consi-

derado por la empresa como un perımetro mınimo o “local ”por lo que el costo en el

que se incurre en cada uno de los viajes es el mismo.

Destino Descripcion Costo VariableHEB HEB $300GCA Gigante $300SCM Soriana $300WBM Walmart Mty $300WSC 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 numero maximo de viajes que puede realizar un

vehıculo 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 vehıculo cuando mucho

podra ir y venir 5 veces a este cliente, de acuerdo a esta relacion mientras mas lejos

este el cliente menos viajes consecutivos en un dıa se pueden realizar a este.

Otra consideracion es que el tiempo definido 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 flota dedicada de 15 vehıculos y nuestros resultados generan un programa que

satisface la demanda de los clientes con 7 vehıculos.

CAPITULO 4. CASOS PRACTICOS 41

Programa de DistribucionVehıculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad

2 WBM 0 5.88 5.882 WSC 5.88 5.8 11.682 HEB 11.68 8.54 20.222 SCM 20.22 6.92 27.144 WSC 0 5.8 5.84 WBM 5.8 5.88 11.684 HEB 11.68 8.54 20.224 SCM 20.22 6.92 27.146 WSC 0 5.8 5.86 WSC 5.8 5.8 11.66 HEB 11.6 8.54 20.146 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 DistribucionVehıculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad

12 WSC 0 5.8 5.812 WBM 5.8 5.88 11.6812 GCA 11.68 4.1 15.7812 GCA 15.78 4.1 19.8813 WBM 0 5.88 5.8813 WSC 5.88 5.8 11.6813 HEB 11.68 8.54 20.2213 SCM 20.22 6.92 27.1414 WSC 0 5.8 5.814 WBM 5.8 5.88 11.6814 GCA 11.68 4.1 15.7814 HEB 15.78 8.54 24.32

Tabla 4.11: Programa de Distribucion Clientes Autoservicio

CAPITULO 4. CASOS PRACTICOS 42

Programa de DistribucionVehıculo Destino Tiempo Inicio Tiempo de viaje Tiempo disponibilidad

15 WBM 5.88 5.88 11.7615 HEB 11.76 8.54 20.315 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 vehıculos con los que se cuenta actual-

mente.

Nombre del Problema Tiempo CPU Nodos Arbol ObjetivoVrpSin2 1,130 Seg 69187 $ 298,400

Tabla 4.13: Resultados Caso Practico 2

Capıtulo 5

Experimentos Computacionales

Dentro de este capıtulo se demuestran resultados de varios problemas generados

aleatoriamente con el fin de evaluar y generar conclusiones de la efectividad del modelo

propuesto. Se determinaron dos tipos de pruebas: 1)Problemas de tipo ventanas de

tiempo suave, es decir problemas en los que se es permitido la llegada de los vehıculos

fuera de las ventanas de atencion pagando un costo. 2)Problemas de tipo ventanas de

tiempo duras, es decir problemas en los que la llegada fuera de los horarios de atencion

NO es permitida bajo ninguna circunstancia.

5.1. Generacion de problemas

Para la elaboracion de de los experimentos computacionales se requirio de la codifi-

cacion de un programa en Lenguaje C++ y de la definicion de una nomenclatura clara

que nos permita identificar las dimensiones y diferentes tipos de problemas generados.

El programa en Lenguaje C++ nos permite escribir el archivo de los datos modelo.dat

que es necesario para que AMPL pueda resolver el modelo, la necesidad de este pro-

grama se justifica en la rapidez con la que se pueden escribir problemas en los que la

cantidad de los clientes y vehıculos nos generan tablas de datos de ms de 5 renglones

43

CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 44

Nombre del Problema Significadovrpxxzzyy-j-h

xx Cantidad de clienteszz Cantidad de vehıculosyy Tipo de vehıculosj Numero de viajesh Si es problema con las ventanas duras

Tabla 5.1: Nomenclatura problemas generados

por 10 columnas, es decir escribir a “mano ”un problema de 5 clientes con 10 vehıculos

no consume mucho tiempo, sin embargo al querer probar nuestro modelo con instancias

mas grandes como, 50 vehıculos 80 clientes resulta una tarea complicada escribir una

tabla de 4000 datos. El programa genera un archivo con el formato de los archivos .dat

que requiere AMPL, introduciendo los parametros: numero de vehıculos, numero de

clientes, viajes, estos datos definen los conjuntos del modelo, ademas aleatoriamente

se generan los costos fijos, variables, penalizaciones por violar ventanas de tiempo, de-

manda y tiempos de viaje. El archivo de salida de este programa sigue las siguientes

reglas de nomenclatura. Tabla( 5.1)

De esta forma con leer el nombre del problema podemos darnos cuenta de las dimen-

siones y del tipo que es. Por ejemplo un problema con nombre vrp3030-1-7.dat define

a un problema de tamano 30 clientes con 30 vehıculos de 1 solo tipo y con 7 viajes. Si

se requiere de las ventanas del tipo duro se agrega una -h como ultimo parametro.

5.2. Problemas de Asignacion de vehıculos con ven-

tanas suaves de tiempo

Se ejecutaron pruebas de diferente tamano teniendo como criterio para definir los

vehıculos iniciales como el mismo numero que el de los clientes. Se probaron dos es-

CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 45

cenarios: con un solo tipo de vehıculo disponible y con vehıculos de diferentes tipos

(capacidad). Dentro de este conjunto problemas solo se considera las ventanas de tiem-

po que pueden incumplirse con el pago de un costo de acuerdo al tiempo que quede

fuera de las ventanas.

Debido al tamano de los problemas, el optimizador tiene que tener un criterio de

interrupcion, para todos los casos se decidio que fuera un tiempo total de ejecucion de

7 hrs CPU. Por lo que el algoritmo utilizado por CPLEX se detiene si no obtiene una

solucion entera en un lapso de 7 horas.

Los resultados de los problemas con un solo tipo de vehıculo se presentan a conti-

nuacion

Nombre del Problema Tiempo CPU Valor Objetivovrp3060-1-7 3.08 Seg $93,474vrp3260-1-7 303.2 Seg $ 76,877vrp4060-1-7 18.4 Seg $ 114,753vrp4560-1-7-1 5.34 Seg $134,476vrp5060-1-7 8.4 Seg $ 143,379vrp50100-1-7-1 10.82 Seg $ 173,773

Tabla 5.2: Resultados Ventanas Suaves 1-tipo de vehıculo

Los resultados definiendo varios tipos de vehıculos se presentan a continuacion

Nombre del Problema Tiempo CPU Valor Objetivovrp3030-2-7 3.05 Seg $36,573vrp3060-3-7 3.21 Seg $ 105,235vrp4030-2-7 596.9 Seg $ 85,668vrp4030-3-7-1 .58 Seg -vrp4030-3-7 106.46 Seg $ 54,392vrp5060-3-7-1 3.28 Seg $ 169,340vrp5060-3-7 497.76 Seg $ 133,135vrp6075-2-7-1 17.94 Seg $ 181,266vrp6075-2-7 5.64 Seg $ 1,166,241vrp5060-2-7 5.69 Seg $ 126,991

Tabla 5.3: Resultados Ventanas Suaves

CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 46

En esta tabla se pueden observar los tiempos de solucion de los problemas propuestos

aleatoriamente ası como el valor de la funcion objetivo. Para estos problemas de acuerdo

con las ventanas suaves el total del costo esta compuesto solo por los costos fijos y los

costos variables de cada ruta.

Nombre del Problema N. Cliente V. Originales V. Solucionvrp3030-2-7 30 30 4vrp3060-3-7 30 60 20vrp4030-2-7 40 30 17vrp4030-3-7-1 40 - -vrp4030-3-7 40 30 8vrp5060-3-7-1 50 60 33vrp5060-3-7 50 60 26vrp6075-2-7-1 60 75 462 vrp6075-2-7 60 75 54vrp5060-2-7 50 60 39

Tabla 5.4: Resultados Vehıculos utilizados con Ventanas Suaves

De igual forma que en los casos practicos es importante hacer notar la cantidad final

de vehıculos que se utilizarıan para cumplir con el programa de distribucion propuesto

en la solucion de cada uno de estos problemas.

Figura 5.1: Clientes vs Vehıculos utilizados

CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 47

En los problemas con las ventanas de atencion suaves, se puede apreciar un uso

reducido de vehıculos, como consecuencia del poder llegar en cualquier momento al

cliente, los vehıculos son asignados a poder realizar un viaje en cualquier momento.

5.3. Problemas de Asignacion de vehıculos con ven-

tanas duras de tiempo

Ademas de las pruebas realizadas con conjuntos de datos de ventanas de tiempo

suaves se decidio crear algunos experimentos con ventanas, que no permitieran la vio-

lacion a estas.

De nueva cuenta se hacen experimentos con un y varios tipos de vehıculos. Los

resultados de estos experimentos se muestran a continuacion. Tambien se consideran

los casos con diferentes tipos de vehıculos.

Nombre del Problema Tiempo CPU Valor Objetivovrp3050-3-7-1-h 21,603 Seg $432832vrp3050-3-7-h 21,603 Seg $ 1525350vrp4060-3-7-1-h 21,603 Seg $ 5013390vrp4060-3-7-h 21,603 Seg $3426420vrp5060-3-7-1-h - Seg -vrp5060-3-7-h - Seg -vrp6060-3-7-1-h - Seg -vrp6060-3-7-h - Seg -vrp6075-3-7-h 21,603Seg $ 9486240vrp6080-3-7-h - Seg $ 9486240

Tabla 5.5: Resultados Ventanas Duras

Como criterio de interrupcion se sigue con las mismas 7 hrs CPU con las que se

ejecutaron los problemas de ventanas suaves.

En estos resultados es notable, la falta de una solucion entera para algunos proble-

mas, esto debido a nuestros criterios de interrupcion de la optimizacion con las que se

CAPITULO 5. EXPERIMENTOS COMPUTACIONALES 48

ejecuta cada uno de estos. En las tablas la celda con un guion significa que no se pudo

obtener la solucion entera antes de interrupcion.

Nombre del Problema N Clientes V. Originales V. Solucionvrp3050-3-7-1-h 30 50 50vrp3050-3-7-h 30 50 40vrp4060-3-7-1-h 40 60 46vrp4060-3-7-h 40 60 39vrp5060-3-7-1-h 50 60 -vrp5060-3-7-h 50 60 -vrp6060-3-7-1-h 60 60 -vrp6060-3-7-h 60 60 -vrp6075-3-7-h 60 75 67vrp6080-3-7-h 60 80 72

Tabla 5.6: Resultados Vehıculos utilizados con Ventanas Duras

En el caso de los problemas con ventanas dura, el problema es mas restringido y

llegar a la solucion entera dentro del tiempo que se marco como lımite no es suficiente.

Este mismo factor tambien incrementa el uso de vehıculos, hace sentido que a un

menor tiempo en las ventanas de atencion de los clientes, se envıen vehıculos al mismo

tiempo, pues por las distancias a recorrer no alcanzarıa a realizar dos viajes y cumplir

con las ventanas.

Figura 5.2: Clientes vs Vehıculos utilizados

Capıtulo 6

Conclusiones y Recomendaciones

6.1. Conclusiones

La principal diferencia del modelo propuesto contra las formulaciones clasicas del

problema de ruteo esta en la suposicion de la capacidad de los vehıculos es significati-

vamente menor que la demanda de los clientes.

Esto es tıpico de los niveles mas altos de transportacion donde los productos necesi-

tan ser entregados desde una planta de produccion (deposito) a centros de distribucion

generales (clientes) usando vehıculos relativamente pequenos.

Teniendo en cuenta esta suposicion se considera a la red con una topologıa 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 vehıculo 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

CAPITULO 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 fleet 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 fleet 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 tamano mediano pueden ser

resueltos por software comercial en tiempo razonable. Sin embargo para problemas mas

CAPITULO 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 vehıculos en el tiempo, en

cada uno de los clientes. Es decir cuantos vehıculos por hora pueden ser recibidos.

Posibilidad tener las ventanas de tiempo mul’tiples. Es decir tener para varios dıas

diferentes horarios de recibo.

Bibliografıa

[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-

entific,1997

[3] Council of Logistics Managment What’s 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. Schaffer. 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

BIBLIOGRAFIA 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 fleet 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.

BIBLIOGRAFIA 54

[18] K. Hoffman 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. Schaffer. Vehicle routing and scheduling problems

with time windows constraints: Efficient 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.

BIBLIOGRAFIA 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. Christofides, 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 Probleme 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

Artificial 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 diversification and intensification in local

search for vehicle routing. Journal of Heuristics, 1:147-167,1995.

Apendice A

Metodo Ramificacion y Cota

A.1. Ramificacion-cotas (Branch and bound)

La tecnica de ramificacion-cotas usa un principio basico “divide y conquista ” para

explorar el conjunto de soluciones enteras factibles, aunque en lugar de explorar todas

y cada una de las soluciones factibles. La tecnica usa cotas en los costos optimos para

explorar sobre algunas secciones del conjunto de soluciones factibles.

Sea F el conjunto de soluciones factibles al problema

mın c′x

s.t x ∈F

Podemos dividir al conjunto F en una coleccion finita de subconjuntos F1, ....Fk, y

resolver por separado cada uno de estos problemas

mın c′x

s.t x ∈ Fi,i = 1, ..., k.

Despues comparamos las soluciones optimas de los subproblemas y escogemos la

mejor de ellas. Cada subproblema puede ser casi tan difıcil como el problema original

56

APENDICE A. METODO RAMIFICACION Y COTA 57

eso nos sugiere intentar resolver cada subproblema por medio del mismo metodo, esto

es seguir dividiendo el problema en subproblemas, este procedimiento es la parte de

ramificacion del metodo, creando asi un arbol de subproblemas A.1

Figura A.1: Arbol de subproblemas generado en ramificacion y cotas

Se supone la existencia de un algoritmo eficiente en el que para cada Fi de interes,

se calcula una cota inferior b (Fi) del costo optimo de subproblema correspondiente esto

es ,

b (Fi) ≤ mınx∈Fi

c′x

La idea principal del metodo consiste en que mientras que el costo optimo del

subproblema es difıcil de calcular optimamente, una cota del mismo puede resultar mas

facil de obtener. Un forma usual de obtener dicha cota es usando el costo optimo de la

relajacion lineal del problema. Durante el transcurso del algoritmo ocasionalmente se

resuelven problemas a optimalidad o simplemente se evalua el costo de ciertas soluciones

factibles, esto nos permite mantener una cota superior U en el costo optimo, la cual

puede ser el costo de la mejor solucion encontrada hasta el momento.

La esencia del metodo cae en la siguiente observacion. Si la cota inferior b (Fi)

correspondiente a un subproblema en particular satisface b (Fi) ≥ U , entonces este

APENDICE A. METODO RAMIFICACION Y COTA 58

problema no debe ser considerado en el las siguientes iteraciones dado que la solucion

del subproblema no supera la mejor solucion factible encontrada hasta ese momento.

En resumen el algoritmo a nivel general se describe a continuacion.

En cualquier punto el algoritmo guarda en memoria un conjunto de los subproble-

mas activos y el costo U de la mejor la mejor solucion factible encontrada hasta ese

momento. Inicialmente U toma el valor de ∞ o el costo de alguna solucion factible si

esta se encuentra disponible, ası la iteracion tıpica del algoritmo es de la siguiente forma

1.Seleccionar un subproblema Fi

2.Si el subproblema es infactible, se elimina, de otra forma se calcula la cota b (Fi)

para el subproblema correspondiente.

3.Si b (Fi) ≥ U se elimina el subproblema

4.Si b (Fi) < U se puede obtener una solucion optima al subproblema o quebrar

este en sus correspondientes subproblemas estos se agregan a la lista de subproblemas

activos.

En este algoritmo existen algunos parametros libres en la mayorıa de los casos las

mejores opciones son dictadas por la experiencia y el tipo del problema que se trata de

resolver. Ejemplos de estos parametros son:

(a) Existen diferentes maneras de seleccionar un subproblema de activo, dos de las

mas usadas son “breath first search ”y busqueda del primero mas profundo.

(b) Hay varias formas de determinar la cota inferior b (Fi) del costo optimo del los

subproblemas, la mas comun es considerar la relajacion lineal del subproblema.

(c) Existen muchas formas de quebrar el problema en subproblemas.

Como ilustracion, suponemos que usamos como cota inferior b(Fi) el costo optimo

del al relajacion lineal donde las restricciones de integralidad son ignoradas. Si se ob-

tiene una solucion optima entera del problema relajado esta automaticamente es una

APENDICE A. METODO RAMIFICACION Y COTA 59

solucion optima para el correspondiente problema entero, eso evita la expansion en los

subproblemas. El siguiente paso es actualizar U (si la solucion obtenida es mejor que

el valor previo de U) y ası podemos eliminar el actual subproblema, si la solucion x∗

al problema lineal relajado no es entera , entonces se escoge un componente xi para el

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

xi ≤ bx∗i c, or xi ≥ dx∗i e

Apendice B

AMPL

B.1. Lenguaje AMPL

AMPL es un lenguaje de modelado algebraico para programacion matematica: un

lenguaje capaz de expresar en notacion algebraica problemas de optimizacion tales como

los problemas de programacion lineal. Veamos un pequeno ejemplo.

Ejemplo 1.1. Una companıa fabrica tres productos, P1, P2 y P3, que precisan para

su elaboracion dos materias primas, M1 y M2. Las disponibilidades semanales de estas

materias son 25 y 30 unidades, respectivamente.

El beneficio neto que proporciona cada unidad de producto, ası como las unidades

de materia prima que necesita para su elaboracion, vienen dados en la siguiente tabla:

P1 P2 P3

M1 1 2 2

M2 2 1 3

Beneficio (u.m.) 2 6 3

Planificar la produccion semanal de forma que se maximice el beneficio.

Solucion:

60

APENDICE B. AMPL 61

Sean x1, x2, x3 (xi) la cantidad producida de P1, P2 y P3 respectivamente (Pi, i =

1, 2, 3).

El problema a resolver serıa el siguiente:

max z = 2x1 + 6x2 + 3x3

s.a. x1 + 2x2 + 2x3 ≤ 25

2x1 + x2 + 3x3 ≤ 30

x1, x2, x3 ≥ 0

El modelo (modelo+datos) escrito en AMPL del ejemplo 1.1 es el siguiente:

# FABRICACION DE 3 PRODUCTOS CON 2 MATERIAS PRIMAS# VARIABLES DE DECISION Y RESTRICCIONES DE NO NEGATIVIDADvar x1 >= 0;var x2 >= 0;var x3 >= 0;# FUNCION OBJETIVO DEL MODELOmaximize z : 2*x1 + 6*x2 + 3*x3;# RESTRICCIONES DEL MODELOsubject to restriccion1 : x1 + 2*x2 + 2*x3 <= 25;subject to restriccion2 : 2*x1 + x2 + 3*x3 <= 30;

Tabla B.1: Modelo basico del ejemplo

Ejemplo en AMPL.

La gran potencia del lenguaje AMPL esta en separar el modelo en sı por un lado

y por otro los datos particulares del problema concreto. Para entender esto mejor

escribimos el problema del ejemplo 1.1 desde este punto de vista.

El modelo general con n productos y con m materias primas puede ser escrito de la

siguiente manera:

APENDICE B. AMPL 62

max z = c1x1 + c2x2 + . . . + cnxn

s.a. a11x1 + . . . + a1nxn ≤ b1

a21x1 + . . . + a2nxn ≤ b2

......

am1x1 + . . . + amnxn ≤ bm

x1, x2, . . . , xn ≥ 0

O de forma mas abreviada:

max z =∑n

j=1 cjxj

s.a∑n

j=1 aijxj ≤ bi, ∀i = 1, . . . ,m

xj ≥ 0, j = 1, . . . , n

(1)

En este problema general los valores de cj, aij y bi son datos del problema concreto

y la estructura del problema (1) serıa el modelo general.

Esto en AMPL se escribirıa dos ficheros, en el fichero del modelo serıa como se

muestra en la tabla B.2. El fichero de datos para el ejemplo se muestra en la tabla B.3.

Es posible escribir un fichero de datos con valores diferentes y resolverlo junto al

modelo general (por ejemplo con n = 4 y m = 5).

B.1.1. Reglas lexicas de AMPL.

Los modelos AMPL envuelven variables, restricciones y objetivos, expresados

con la ayuda de conjuntos y parametros. A todos se les llama elementos del mod-

elo. Cada elemento del modelo tiene un nombre alfanumerico (una cadena de uno

o mas letras, dıgitos, y caracteres de subrayado): x1, z, restriccion1. Nota: las letras

mayusculas son distintas de las letras minusculas en AMPL.

APENDICE B. AMPL 63

# MODELO: EJEMPLO1.MOD# FABRICACION DE n PRODUCTOS CON m MATERIAS PRIMAS# PARAMETROS DEL MODELOparam n >=0, integer;param m >=0, integer;# CONJUNTOS DE INDICESset PRODUCTOS := 1..n;set MPRIMAS := 1..m;# VARIABLES DE DECISION Y RESTRICCIONES NO NEGATIVIDADvar x j in PRODUCTOS >= 0;# MAS PARAMETROS DEL MODELOparam c i in PRODUCTOS;param b j in MPRIMAS;param a (i,j) in MPRIMAS,PRODUCTOS;# FUNCION OBJETIVO DEL MODELOmaximize z : sum j in PRODUCTOS c[j]*x[j];# RESTRICCIONES DEL MODELOsubject to restriccion i in MPRIMAS :sum j in PRODUCTOS a[i,j]*x[j] <= b[i];

Tabla B.2: Modelo general del ejemplo

# DATOS: EJEMPLO1.DATparam n := 3;param m := 2;param c:=1 22 63 3;param a : 1 2 3:=1 1 2 22 2 1 3;param b:=1 252 30;

Tabla B.3: Datos para el ejemplo.

APENDICE B. AMPL 64

Existen dos tipos de constantes:

Constantes numericas: un signo opcional, una secuencia de dıgitos que pueden

contener un punto decimal y un exponente opcional que comienza con una de las

letras: d, D, e, E, como en 1.23D-45. Toda la aritmetica en AMPL tiene la misma

precision (sobre la mayorıa de las maquinas tiene precision doble).

Constantes literales son cadenas delimitadas por una comilla simple o por dobles

comillas. Si la comilla simple forma parte de la constante literal debe aparecer dos

veces seguidas (igual ocurre con la doble comilla).

Cada lınea de instrucciones debe ir finalizada con un punto y coma (;).

Los comentarios comienzan con # y se extienden hasta el final de la lınea, o se

pueden delimitar entre /* y */, en cuyo caso pueden extenderse mas de una lınea.

B.1.2. Los elementos de un conjunto.

Un conjunto contiene cero o mas elementos o miembros, cada uno de los cuales es

una lista ordenada de una o mas componentes. Cada miembro de un conjunto debe

ser distinto. Todos los miembros deben tener el mismo numero de componentes; a este

numero comun de le conoce como dimension del conjunto.

Un conjunto explıcitamente se escribe como una lista de miembros separada por

comas, colocados entre llaves: “. . . ”. Si el conjunto es de dimension uno, los miembros

son simplemente constantes numericas o constantes de cadena, o cualquier expresion

cuyo valor sea un numero o una cadena:

\a",\b",\c"

1,2,3,4,5,6,7,8,9

t,t+1,t+2

APENDICE B. AMPL 65

Para un conjunto multidimensional, cada miembro debe escribirse como una lista

separada por comas entre parentesis:

(\a",2),(\a",3),(\b",5)

(1, 2, 3),(1, 2, 4),(1, 2, 5),(1, 3, 7),(1, 4, 6)El valor de un miembro numerico es el resultado de reordenar su representacion

decimal por un valor real de precision limitada. Los miembros numericos que parecen

diferentes pero que al ser redondeados al valor de precision limitada son el mismo, tales

como 1 y 0.01E2, son considerados iguales.

B.1.3. Expresiones que indexan y subındices.

Muchos elementos de AMPL pueden definirse como colecciones indexadas sobre

un conjunto; los miembros individuales son seleccionados al anadir un “subındice”

al nombrar el elemento. El rango de posibles subındices es indicado por una expre-

sion que indexa en la declaracion del modelo. Operadores de reduccion, tales como

sum, tambien usan expresiones que indexan para especificar conjuntos sobre los que

las operaciones son iteradas.

Un subındice es una lista de expresiones simbolicas o numericas, separadas por

comas y encerradas entre corchetes, como en:

demanda[i]

costos[j,p[k],\0-"]

Cada expresion con subındices debe evaluar a un numero o a una literal. El val-

or resultante o secuencia de valores debe dar un miembro de un conjunto de ındices

unidimensional o multidimensional.

Una expresion que indexa es una lista de expresiones de conjunto separadas por

comas, seguida opcionalmente por dos puntos “:” y una expresion logica, todo encerrado

entre llaves:

APENDICE B. AMPL 66

Expresiones que indexan:

lista de expresiones de conjuntos

lista de expresiones de conjuntos : expresion logica

lista de expresiones de conjuntos:

expresion de conjuntos

miembro-ciego in expresion de conjuntos

lista de expresiones de conjuntos, lista de expresiones de conjuntos

Cada expresion de conjunto puede ser precedida por un miembro ciego y la pal-

abra clave in. Un miembro ciego para un conjunto unidimensional es un nombre no

referenciado, es decir, un nombre no definido hasta ese punto. Un miembro ciego para

un conjunto multidimensional es una lista separada por comas, encerrada entre parente-

sis, de expresiones o nombres no referenciados; la lista debe incluir al menos un nombre

no referenciado.

Un miembro ciego introduce uno o mas ındices ciegos (nombres no referenciados

en sus componentes), cuyo campo, o rango de definicion, comienza en la siguiente

expresion de conjunto; el campo de un ındice corre a traves del resto de la expresion

que indexa, hasta el final de la declaracion usando la expresion que indexa, o hasta el

final del operando que usa la expresion que indexa. Cuando un miembro ciego tiene una

o mas expresiones componentes, los ındices ciegos del miembro ciego varıan sobre una

proyeccion del conjunto, es decir, ellos toman todos los valores para que el miembro

ciego pertenezca al conjunto.

APENDICE B. AMPL 67

A # todos los elementos de A

A,B # todos los pares, uno de A, uno de B

i in A, j in B # el mismo que antes

i in A, C[i] # el mismo que antes

i in A, ( j,k) in D # 1 de A y 1 (un par) de D

i in A: p[i ]> 30 # todo i de A tal que p[i] sea mayor que 30

i in A, j in C[i]: i<=j # nota: i y j deben ser numericos

i in A, ( i,j) in D: i<=j # todos los pares con i en A y i,j en D

# (mismo valor de i) e i menor o igual que j

El argumento opcional “: expresion logica” es una expresion que indexa, selecciona

solamente los miembros que verifican la expresion logica y excluye a los demas. La

expresion logica tıpicamente envuelve uno o mas ındices ciegos de la expresion que

indexa.

B.1.4. Expresiones aritmeticas, logicas y de conjuntos. Fun-

ciones matematicas.

En las expresiones logicas y aritmeticas de AMPL, pueden combinarse varios elemen-

tos. A partir de ahora consideraremos que una expresion que puede contener variables

se representara como vexpr. Una expresion que no puede contener variables se denota

como expr y algunas veces sera llamada “expresion constante”, a pesar de que pueda

contener ındices ciegos. Una expresion logica, representada como lexpr, puede con-

tener variables solo cuando es parte de una expresion if que produzca una vexpr. Las

expresiones de conjuntos seran denotadas como sexpr.

Los operadores aritmeticos, logicos y de conjuntos, en orden de precedencia creciente,

se muestran en la tabla 4.

APENDICE B. AMPL 68

Los valores numericos que aparecen como expresiones logicas valen falso (false) si

es 0, y verdadero (true) para cualquier otro valor numerico.

Expresiones Aritmeticas.

Las expresiones aritmeticas son construidas con los operadores aritmeticos usuales,

con funciones de AMPL y con operadores de reduccion aritmeticos como sum:

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 evalua una vez para cada miembro del conjunto de ındices,

y todos los valores resultantes se suman. El operador sum tiene menor precedencia

que *, ası podemos escribir:

APENDICE B. AMPL 69

Nombre Tipo Notasif . . . then . . . else A, S A: si no hay else, se supone else 0

S: es obligatorio else sexpror, || L o logicoexists, forall L operadores de reduccion logicaand, && L y logico<, <=, =, ==, <>, =!, >=, > L operadores relacionalesin, not in L pertenencia a un conjuntowithin, not within L S within T significa S ⊆ Tnot, ! L negacion logicaunion, diff, symdiff S symdiff es la diferencia simetricainter S interseccioncross S producto cartesianosetof .. by S constructor de conjuntos+, - , less A a less b = max (a− b, 0)sum, prod, min, max A operadores de reduccion aritmetica*, /, div, mod A div cociente entero+, - A mas y menos unarioˆ, ** A exponenciacion

Tabla B.4: Operadores aritmeticos (A), logicos (L) y de conjuntos (S).

Sintaxis SignificadoBeta(a,b) xa−1(1− x)b−1/(Γ(a)Γ(b)/Γ(a + b)), x ∈ [0, 1]Cauchy 1/(π(1 + x2))Exponential e−x, x > 0Gamma(a) xa−1e−x/Γ(a), x ≥ 0, a > 0Irand224() Uniforme entera en [0, 224)Normal(µ, σ) N (µ, σ)Poisson(µ) e−µµk/k!, k = 0, 1, . . .Uniform(m,n) Uniforme[m,n)Uniform01() Uniforme[0, 1)

Tabla B.5: Funciones de generacion de variables aleatorias en AMPL.

APENDICE B. AMPL 70

Sintaxis Significadoabs(x) valor absolutoacos(x) cos−1 (x)acosh(x) cosh−1 (x)asin(x) sin−1 (x)asinh(x) sinh−1 (x)atan(x) tan−1 (x)atan2(y,x) tan−1 (x/y)atanh(x) tanh−1 (x)ceil(x) entero mayor mas cercanocos(x) cosenoexp(x) exponencialfloor(x) menor entero mas cercanolog(x) loge (x)log10(x) log10 (x)max(x,y,. . . ) maximomin(x,y,. . . ) mınimosin(x) senosinh(x) seno hiperbolicosqrt(x) raız cuadradatan(x) tangentetanh(x) tangente hiperbolica

precision(x,n) x redondeado a n cifras significativasround(x,n) x redondeado a n dıgitos despues del punto decimalround(x) x redondeado al entero mas cercanotrunc(x,n) x truncado a n dıgitos despues del punto decimaltrunc(x) x truncado a un entero

Tabla B.6: Funciones aritmticas en AMPL.

APENDICE B. AMPL 71

sumi in ORIG, j in DEST, p in PROD

cost[i,j,p] * Trans[i,j,p]

representa el total de costo[i,j,p] * Trans[i,j,p] sobre todas las combinaciones de

orıgenes, destinos y productos.

Otros operadores aritmeticos iterados son prod para la multiplicacion, min para

el mınimo, y max para el maximo. Como ejemplo, podrıamos usar:

maxi in ORIG oferta[i,p]

para describir la mayor oferta del producto p de todos los orıgenes.

Expresiones Logicas.

Las expresiones logicas aparecen donde se requiera un valor: “verdadero” o “falso”.

Por ejemplo, en el comando check, en la parte “tal que” de las expresiones que indexan

(sigue a los “:”) y en if lexp then . . .

Las expresiones logicas pueden ser de la siguiente forma (lexpr):

expr

expr oper -- compara expr

lexpr oper -- logico lexpr

not lexpr

miembro in sexpr

miembro not in sexpr

sexpr within sexpr

sexpr not within sexpr

exists indexado lexpr

forall indexado lexpr

lexpr

APENDICE B. AMPL 72

El operador exits, cuando se aplica sobre un conjunto vacıo, devuelve falso y el

operador forall devuelve verdadero.

Expresiones de conjunto

Las expresiones de conjuntos (sexpr) que producen conjuntos pueden tener uno de

los siguientes formatos:

[ miembro [ , miembro ... ] ]

sexpr op–conjunto sexpr (union diff symdiff inter cross )

union indexado sexpr

inter indexado sexpr

expr .. expr [ by expr ]

setof indexado miembro

if lexpr then sexpr else sexpr

( sexpr )

interval

conj–predefinido

indexado

Podemos ver el uso del operador setof, en el siguiente ejemplo:

ampl: set y := setof i in 1 ..5 ( i,i ^2);

ampl: display y;

set y := (1,1) (2,4) (3,9) (4,16) (5,25);

B.1.5. Declaraciones de elementos del modelo.

La declaracion de los elementos del modelo tiene el siguiente formato general:

elemento nombre [alias] [exp. indexada] [cuerpo];

APENDICE B. AMPL 73

Las palabras claves para los elementos del modelo AMPL pueden se una de las

siguientes:

set

param

var

arc

minimize

maximize

subject to, subj to, s.t.

node

Si se suprime el nombre del elemento se supone que es subject to.

Las declaraciones pueden aparecer en cualquier orden, con la excepcion de que cada

nombre debe estar declarado antes de ser usado.

Para las declaraciones de variables, restricciones y objetivos, se permite una forma

especial de expresion indexada:

if lexprg

Si la expresion logica lexpr es verdad, entonces el resultado es un elemento simple

(no indexado); en otro caso el elemento es excluido del modelo.

Declaracion de conjuntos.

La declaracion de conjunto del modelo tiene el siguiente formato general:

set nombre [alias] [exp. indexada] [atributos] ;

en la que atributos es una lista de atributos opcionales separada por comas. Los

cuales pueden ser (sexpre indica una expresion de conjuntos):

APENDICE B. AMPL 74

dimen n

within sexpre

:= sexpr

default sexpr

La frase := especifica un valor para el conjunto; esto implica que el conjunto no

sera definido posteriormente en una lınea de instrucciones especıfica para datos (:= y

default son mutuamente excluyentes). El conjunto vacıo se indica con: .

Existe la funcion card(S) la cual da el numero de elementos del conjunto S.

Tambien se pueden realizar operaciones entre conjuntos, como:

set A := 1 ..n ;

set B := i..j by k;

set C := A d i f f B;

set D := A union B;

set E := A inter B;

set F := A symdi f f B;

Se pueden definir conjuntos con infinitos elementos (Nota: no se puede iterar sobre

conjuntos infinitos), los clasicos intervalos cerrados, abiertos o semicerrados, bien de

numeros reales (interval [a,b]) o bien de numeros enteros (integer [a,b]). Nota: la

palabra interval puede omitirse.

Declaracion de parametros

La declaracion de un parametro del modelo tiene el siguiente formato general:

param nombre [alias] [exp. indexada] [atributos] ;

en la que los atributos es una liste de atributos opcionalmente separa por comas.

Los cuales pueden ser (sexpr indica una expresion de conjuntos):

APENDICE B. AMPL 75

binary

integer

symbolic

oprel expr

in sexpr

:= expr

defaul t expr

donde “oprel” puede ser:

< <= = == != <> > >=

El atributo in especifica un chequeo para ver que el parametro se encuentra en

el conjunto dado. Los parametros indexados pueden definirse de forma recursiva. Por

ejemplo:

param comb ~n sobre k’n in 0 .. N, k in 0 .. n

:= if k=0 or k = n then 1 else comb[n-1,k-1] + comb[n-1,k];

Infinity es un parametro predefinido; al igual que -Infinity.

Declaracion de variables.

La declaracion de una variable del modelo tiene el siguiente formato general:

var nombre [alias] [exp. indexada] [atributos] ;

en la que atributos es una lista de atributos opcionalmente separada por comas. Los

cuales pueden ser (vexpr indica una expresion de variables):

APENDICE B. AMPL 76

binary

integer

>= expr

<= expr

:= expr

defaul t expr

= vexpr

coeff [ exp.indexada ] restriccion vexpr

cover [ exp. indexada ] restriccion

obj [ exp. indexada ] objetivo vexpr

Las frases >= y =< especifican cotas, la frase := indica un valor inicial. La frase

default indica los valores iniciales por defecto, cuyos valores pueden darse en una lınea

de instrucciones especıfica para datos.

Las frases coeff y obj se utilizan para la generacion de coeficientes por columnas;

estas especifican los coeficientes que seran colocados es la restriccion indicada u objetivo

indicado, el cual debe ser previamente referenciado usando to come. Una frase cover

es equivalente a la frase coeff pero con vexpr igual a 1.

Declaracion de restricciones

La declaracion de una restriccion de modelo tiene el siguiente formato general:

[subject to] nombre [alias] [exp. indexada] [ := dual–inic]

[default dual–inic] [ : expr restriccion];

La frase opcional := dual–inicial especifica un valor inicial para la variable dual

(multiplicador de Lagrange) asociado con la restriccion. La expresion de restriccion

debe estar en uno de los siguientes formatos:

APENDICE B. AMPL 77

vexpr <= vexpr

vexpr = vexpr

vexpr >= vexpr

expr <= vexpr <= expr

expr >= vexpr >= expr

Para permitir la generacion de coeficientes por columna para la restriccion, una de

las vexprs puede tener una de las siguientes formas:

to come + vexpr

vexpr + to come

to come

Los terminos de esta restriccion que se especifican en una declaracion var son colo-

cados en la posicion de to come.

Declaracion de objetivos.

La declaracion de un objetivo del modelo tiene el siguiente formato general:

maximize nombre [alias] [exp. indexada] [: expresion] ;

minimize nombre [alias] [exp. indexada] [: expresion] ;

y puede especificarse una expresion en una de las siguiente formas:

vexpr

to come + vexpr

vexpr + to come

to come

La forma to come permite la generacion de coeficientes por columna, como con las

restriciciones

APENDICE B. AMPL 78

Notacion para sufijos para valores auxiliares.

Las variables, restricciones y objetivos tienen una variedad de valores auxiliares

asociados, a los cuales se puede acceder anadiendo al nombre uno de lo siguientes

sufijos dependiendo del tipo de elemento del modelo.

Sufijos para variables

.init valor actual inicial

.init0 valor inicial inicial(x0

j

).lb cota inferior actual

.lb0 cota inferior inicial (lj)

.lrc costo reducido menor (.rc, xj ≥ lj)

.lslack menor holgura (xj − lj)

.rc costo reducido − (zj − cj)

.slack min (lsalck,uslack)

.ub cota superior actual

.ub0 cota superior inicial (uj)

.urc costo reducido superior (.rc, xj ≤ uj)

.uslack holgura superior (uj − xj)

.val valor actual (xj)

APENDICE B. AMPL 79

Sufijos para restricciones

.body valor actual del cuerpo de la restriccion (Aix)

.dinit valor inicial actual para la variable dual

.dinit0 valor inicial inicial para la variable dual (w0i )

.dual variable dual actual (wi)

.lb cota inferior (rli)

.ldual valor dual menor (.dual, Aix ≥ rli)

.lsalck holgura menor (Aix− rli)

.slack min(lsalck,uslack)

.ub cota superior (rui)

.udual valor dual superior (.dual, Aix ≤ rui)

.uslack holgura superior (rui −Aix)

Sufijos para objetivos

.val valor actual

B.1.6. Especificacion de datos.

Hay que tener en cuenta que:

La lectura de datos se inicializa con el comando ”data”. Pos ejemplo:

ampl: data diet.dat;

lee los comandos de datos de un fichero llamada diet.dat.

AMPL trata cualquier secuencia de espacios, tabuladores y caracteres claves de

una nueva lınea como un solo espacio.

El final de cualquier comando de datos de indica por un punto y coma “;”.

APENDICE B. AMPL 80

Datos de un conjunto.

Conjuntos unidimensionales.

Un conjunto simple se especifica al listar sus miembros.

set ORIG := SE MD BA ;

set DEST := CA CO HU AL JA MA GR ;

set PROD := plato cuchillo tenedor ;

Si un conjunto se ha declarado con el atributo ordered o circular, debemos de

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, dıgitos, signo de

subrayado ( ), punto, + y -, debe ser cerrado entre comillas:

set ALMACEN := \A&P" JEWEL VONS ;

Tambien para distinguir cuando un numero queremos que sea una cadena (“+1”

o “3e4”), este debe ser cerrado entre comillas.

Los miembros de un conjunto deben ser todos diferentes; AMPL avisara de la ex-

istencia de elementos duplicados. Los numeros que tienen la misma representacion

en el ordenador seran considerados como iguales.

Para una coleccion indexada de conjuntos, los miembros de cada conjunto de la

coleccion se especificaran individualmente.

APENDICE B. AMPL 81

set PROD ;

set AREA PROD ;

set PROD := plato cuchillo ;

set AREA [ plato ] := este norte ;

set AREA [ cuchillo ] := este oeste export ;

Podemos especificar explıcitamente que uno o mas de esos conjuntos es vacıo, al

dar una lista vacıa; poniendo el punto y coma justo despues del operador “:=”. Si

queremos que AMPL suponga que cada conjunto es vacıo excepto si se especifica

otra cosa, incluyendo una frase default en el modelo:

set AREA PROD default ;

En otro caso serıamos avisados de que la especificacion de los miembros de un

conjunto no se ha realizado.

Conjuntos de dos dimensiones

Para un conjunto de pares, los miembros pueden especificarse de varias maneras:

set ORIG ;

set DEST ;

set LINKS within ORIG , DEST ;

1. lista de pares

set LINKS :=

(SE,CO ) ( SE,HU ) ( SE,JA ) ( SE,GR ) ( MD,CA)

(MD,CO ) ( MD,HU ) ( MD,AL ) ( MD,JA ) ( MD,GR)

(BA,CA ) ( BA,AL ) ( BA,JA ) ( BA,MA ) ;

APENDICE B. AMPL 82

2. lista de pares, sin los parentesis y las comas

set LINKS :=

SE CO SE HU SE JA SE GR MD CA

MD CO MD HU MD AL MD JA MD GR

BA CA BA AL BA JA BA MA ;

3. un conjunto de pares puede especificarse en una tabla tambien de la siguienteforma:

set LINKS: CA CO HU AL JA MA GR :=

SE - + + - + - +

MD + + + + + - +

BA + - - + + + - ;

Un signo “+” indica un par que esta en el conjunto y un signo “-” indica queno esta ese par. Normalmente las filas son etiquetadas con la primera componentey las columnas con la segunda. Si se prefiere lo puesto, podemos indicar una tablatranspuesta al anadir (tr) despues del nombre del conjunto:

set LINKS (tr):

SE MD BA :=

CA - + +

CO + + -

HU + + -

AL - + +

JA + + +

MA - - +

GR + + - ;

Las tablas son mas convenientes para conjuntos que son relativamente densos.En otro caso la lista de pares va mejor.

APENDICE B. AMPL 83

4. Otra forma de describir un conjunto de pares es listar todas las segundas com-ponentes que unen cada primer componente:

set LINKS:=

(SE,*) CO HU JA GR

(MD,*) CA CO HU AL JA GR

(BA,*) CA AL JA MA ;

Se podrıa hacer listando todas las primeras componentes que unen con cadauna de las segundas componentes: (*,CA) MD BA.

Cada comodın * es seguido por una lista, cuyas entradas son sustituidas por el* para generar pares de conjuntos.

Conjuntos multidimensionales

Utilizamos los siguientes ejemplos para ver las distintas formas de definir conjuntos

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

... ;

APENDICE 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 serıa:

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 ;

APENDICE 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 definidos tambien con este comando,

evitando ası la definicion con el comando set PROD; el efecto es combinar las especifi-

caciones del conjunto y los tres parametros indexados sobre el.

Parametros bidimensionales

APENDICE 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 filas dan el primer ındice y las etiquetas de las columnas dan el

segundo ındice, ası por ejemplo, costo[“SE”,“CA”] se ha definido 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 lınea en cualquier

lugar, o tambien emplear el siguiente formato:

APENDICE 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 lasmisma etiquetas de filas, 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 definirse 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 especificado aquı”.

Es posible definir un sımbolo diferente, por ejemplo –, al incluir el siguiente comando

en data:

defaultsym \--";

APENDICE 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 estarıa

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 ;

APENDICE 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.

Podrıamos 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

APENDICE 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:

APENDICE 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-

pecificar la frase default. Por ejemplo,

APENDICE 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 caracterıstica 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;

APENDICE B. AMPL 93

Sin embargo, es mejor poner la frase default en los comandos de datos. La frase

default deberıa ir en el modelo cuando queremos que el valor por defecto dependa de

alguna forma de otros datos. Por ejemplo, un costo arbitrariamente grande podrıa darse

para cada producto al especificar:

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, benefi,

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 comun de asignar valores iniciales a variables o restricciones es dar un

punto de arranque para resolver un problema de optimizacion no lineal.

APENDICE 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 fichero 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 actue 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 lınea de comandos de AMPL podemos escribir, por ejemplo:

ampl: include ejemplo1.run ;

siendo el fichero ejemplo1.run (tabla 8), un fichero por lotes que almacena la secuen-

APENDICE 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: ] lista–argumentos [redireccion];

print [conjunto: ] lista–argumentos [redireccion];

printf [conjunto: ] fmt, lista–argumentos [redireccion];

APENDICE B. AMPL 96

Comandos Significado

break termina un bucle for o while

close cierra un fichero

continue salta al final del cuerpo del bucle

data cambia a modo datos; opcionalmente incluye un fichero

display imprime elementos del modelo y expresiones

delete elimina un componente previamente declarado

drop elimina una restriccion u objetivo

end finaliza la entrada del fichero de entrada actual

expand muestra explıcitamente el modelo

fix fija una variable a su valor actual

for indx cp bucle for

if lexpr then comprueba una condicion

include incluye ficheros

let cambia los valores de los datos (:=)

match(cad,mod) posicion de mod en cad

model cambia al modo modelo; opcionalmente incluye un fichero

objective selecciona un objetivo a optimizar

option define o muestra valores opcionales

print imprime elementos del modelo sin formatear

printf imprime elementos del modelo formateados (\n,%7.1f)

problem nb: def. define un problema

purge elimina un componente y los dependientes de el

quit termina AMPL

read lee datos de un fichero o de la consola (¡-)

redeclare redefine un componente ya definido

APENDICE B. AMPL 97

Comandos Significado

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 especıficos 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 envıa elementos actuales a un solver y devuelve la solucion

step n avanza n pasos en la ejecucion de ficheros por lotes

update permite actualizar datos

unfix deshace un comando fix

write escribe en un fichero partes de un problema

xref muestra dependencias del modelo

Si el conjunto esta presente, su campo de accion se extiende hasta el final 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 fichero para escribir, y la segunda a˜nade al

fichero ya creado, aunque > actua igual que >>, si el fichero esta ya abierto.

Con el comando option se puede conseguir que la salida que se ha solicitado tenga

un formato

APENDICE B. AMPL 98

especıfico. Por ejemplo:

option display precision 3;

option omit zero rows 1;

La primera especifica 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

APENDICE 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