Instituto Tecnológico y de Estudios Superiores de Monterrey
Campus Monterrey
Monterrey, Nuevo León a
Lic. Arturo Azuara Flores:
Director de Asesoría Legal del Sistema
Por medio de la presente hago constar que soy autor y titular de la obra
titulada:"
en los sucesivo LA OBRA, en virtud de lo cual autorizo a el
Instituto Tecnológico y de Estudios Superiores de Monterrey (EL INSTITUTO)
para que efectúe la divulgación, publicación, comunicación pública, distribución y
reproducción, así como la digitalización de la misma, con fines académicos o
propios al objeto de EL INSTITUTO.
El Instituto se compromete a respetar en todo momento mi autoría y a
otorgarme el crédito correspondiente en todas las actividades mencionadas
anteriormente de la obra.
De la misma manera, desligo de toda la responsabilidad a EL INSTITUTO
por cualquier violación a los derechos de autor y propiedad intelecutal que cometa
el suscrito frente a terceros.
Asignación de eventos de transporte terrestre de carga de
camiones utilizando un algoritmo genético de agrupación y la
heurística DJD modificada-Edición Única
Title
Asignación de eventos de transporte terrestre de carga de
camiones utilizando un algoritmo genético de agrupación y
la heurística DJD modificada-Edición Única
Authors
Juan Manuel Tavernier Deloya
Affiliation
ITESM
Issue Date
2003-12-01
Item type
Tesis
Rights
Open Access
Downloaded
18-Jan-2017 17:25:40
Asignaci´
on de eventos de transporte terrestre de
carga a camiones utilizando un algoritmo gen´
etico
de agrupaci´
on y la heur´ıstica DJD modificada
Por
Juan Manuel Tavernier Deloya
Tesis
Presentada al Programa de Graduados en Electr´onica, Computaci´on, Informaci´on y Comunicaciones
como requisito parcial para obtener el grado acad´emico de
Maestro en Ciencias
especialidad en
Sistemas Inteligentes
Instituto Tecnol´
ogico y de Estudios Superiores de Monterrey
Campus Monterrey
Instituto Tecnol´
ogico y de Estudios Superiores de Monterrey
Campus Monterrey
Divisi´
on de Electr´
onica, Computaci´
on, Informaci´
on y Comunicaciones
Programa de Graduados
Los miembros del comit´e de tesis recomendamos que la presente tesis de Juan Manuel Tavernier Deloya sea aceptada como requisito parcial para obtener el grado acad´emico deMaestro en
Ciencias, especialidad en:
Sistemas Inteligentes
Comit´
e de tesis:
Dr. Hugo Terashima Mar´ın
Asesor de la tesis
Dr. Manuel Valenzuela Rend´on
Sinodal
Dr. Horacio Mart´ınez Alfaro
Sinodal
Dr. David A. Garza Salazar
Director del Programa de Graduados
Reconocimientos
Deseo externar un sincero agradecimiento a todas las personas que de una u otra forma colabo-raron y me apoyaron durante el desarrollo de esta tesis.
Al Dr. Hugo Terashima Mar´ın por la orientaci´on brindada en la elaboraci´on de este trabajo de investigaci´on.
Al Dr. Horacio Mart´ınez Alfaro por ser la voz cr´ıtica que le dio mayor calidad a esta investigaci´on. Al Dr. Manuel Valenzuela Rend´on por sus valiosos comentarios que ayudaron a mejorar este tra-bajo.
Al Lic. Jaime Elizondo Guajardo por su apoyo incondicional en las facilidades para realizar estos estudios de maestr´ıa.
A las empresas de transporte entrevistadas que muy amablemente nos abrieron sus puertas.
Juan Manuel Tavernier Deloya
Asignaci´
on de eventos de transporte terrestre de
carga a camiones utilizando un algoritmo gen´
etico
de agrupaci´
on y la heur´ıstica DJD modificada
Juan Manuel Tavernier Deloya, M.C.
Instituto Tecnol´ogico y de Estudios Superiores de Monterrey, 2003
Asesor de la tesis: Dr. Hugo Terashima Mar´ın
En el presente trabajo se estudia el problema de agrupaci´on y programaci´on de eventos de transporte de carga terrestre a un n´umero de camiones por determinar tomando en cuenta ciertas restricciones. Este problema puede ser visto como un problema de empacado de objetos. Los problemas de este tipo son combinatorios y dif´ıciles de resolver. Este tipo de problemas cae en la clase de problemas llamados NP. El uso de heur´ısticas hace posible generar una soluci´on que, puede no ser la ´
optima, pero que s´ı es una muy aproximada.
El trabajo plantea la soluci´on a este problema utilizando un algoritmo gen´etico de agrupaci´on modificado y adaptado al caso de estudio. Una heur´ıstica en especial se estudia y compara contra el algoritmo gen´etico de agrupaci´on en la soluci´on de problemas de empacados de objetos. Primeramente se define el problema de manera general, tratando de describir todas las variables que lo rodean. De-spu´es se hace una simplificaci´on del mismo, aqu´ı s´olo se consideran un subgrupo de estas variables. La simplificaci´on del problema es necesaria debido a que intentar resolver el problema completo exceder´ıa los alcances del presente trabajo. El modelo toma en cuenta restricciones b´asicas como que no exista traslape entre los eventos, que el origen de un evento consecutivo de otro sea igual al destino del evento que le precede, que los eventos que han sido agrupados para un s´olo cami´on pertenezcan a la misma ruta.
Se realizan experimentos tendientes a demostrar que tanto el algoritmo gen´etico de agrupaci´on como la heur´ıstica DJD pueden ser ´util para resolver este problema. En los experimentos se analiza la optimalidad de la soluci´on que entregan y la velocidad con la que resuelven el problema. Se verifica el tama˜no del problema que las t´ecnicas son capaces de resolver, brindando buenas soluciones incluso para problemas de hasta doscientos eventos en un tiempo relativamente corto. Mediante una peque˜na investigaci´on de campo se conoce y describe la problem´atica real que ciertas empresas de transporte de la ciudad de Monterrey enfrentan, como no contar con sistemas con capacidad para realizar una adecuada planeaci´on; carecer incluso de herramientas computacionales para por lo menos intentar hacer un uso ´optimo de los recursos; depender totalmente del personal del departamento de tr´afico para solicitar o asignar camiones.
´
Indice General
Reconocimientos v
Resumen vi
´Indice de Tablas ix
´Indice de Figuras x
Cap´ıtulo 1 Introducci´on 1
1.1 Contexto de la investigaci´on . . . 1
1.2 Definici´on del Problema . . . 2
1.3 Objetivos . . . 3
1.4 Alcance . . . 4
1.4.1 Hip´otesis . . . 4
1.5 Aporte de la investigaci´on . . . 5
1.6 Estructura de la tesis . . . 5
Cap´ıtulo 2 Marco te´orico 6 2.1 El problema de transportaci´on . . . 6
2.1.1 Estructura del problema de transportaci´on . . . 7
2.1.2 El problema de ruteo de veh´ıculos . . . 7
2.1.3 Evaluaci´on de la soluci´on generada . . . 8
2.1.4 Algunos m´etodos de soluci´on al problema de ruteo de veh´ıculos . . . 8
2.1.5 Sistemas relacionados . . . 10
2.1.6 Complejidad computacional . . . 11
2.2 Algoritmos de b´usqueda . . . 12
2.3 Optimizaci´on . . . 12
2.4 Generalidades sobre los algoritmos gen´eticos . . . 13
2.5 La heur´ıstica DJD . . . 15
2.6 El problema de transportaci´on como un problema de agrupaci´on . . . 15
2.6.1 Generalidades de los problemas de agrupaci´on . . . 17
2.7 El problema de empacado de objetos . . . 17
2.7.1 Funci´on objetivo . . . 18
Cap´ıtulo 3 El problema del uso de veh´ıculos como parte del problema de ruteo 21
3.1 Definici´on del problema . . . 21
3.2 Investigaci´on de campo . . . 23
3.2.1 Cotizaci´on de servicios de transporte . . . 23
3.2.2 Retorno del cami´on . . . 24
3.2.3 Determinaci´on y asignaci´on de camiones a eventos . . . 24
3.2.4 Los sistemas computacionales . . . 25
3.2.5 Conclusiones de la investigaci´on de campo . . . 25
3.3 Definici´on del problema particular . . . 25
3.4 Desventajas de los algoritmos gen´eticos tradicionales para resolver problemas de agru-paci´on . . . 27
3.4.1 Codificaci´on y redundancia . . . 27
3.4.2 Cruce: insensibilidad al contexto . . . 27
3.5 Generalidades sobre el algoritmo gen´etico de agrupaci´on . . . 28
3.5.1 Codificaci´on . . . 29
3.5.2 Cruce . . . 29
3.5.3 Mutaci´on . . . 31
3.5.4 Inversi´on . . . 31
3.5.5 Diferencias entre el algoritmo gen´etico est´andar y el algoritmo gen´etico de agru-paci´on . . . 31
3.6 Modelaci´on del problema . . . 32
3.6.1 Determinaci´on y c´alculo de la funci´on objetivo . . . 34
3.7 Implementaci´on del algoritmo gen´etico de agrupaci´on . . . 35
3.8 Implementaci´on de la heur´ıstica DJD modificada . . . 36
3.9 Prototipo . . . 37
3.10 Resumen . . . 38
Cap´ıtulo 4 Experimentaci´on y resultados 40 4.1 Definici´on de los experimentos . . . 40
4.2 El origen de los problemas . . . 42
4.2.1 Problemas de empacado de objetos . . . 42
4.2.2 Problemas espec´ıficos . . . 42
4.3 Par´ametros utilizados en los experimentos . . . 43
4.4 Resultados de los experimentos . . . 45
4.4.1 Algoritmo gen´etico de agrupaci´on y heur´ıstica DJD originales . . . 45
4.4.2 Algoritmo gen´etico de agrupaci´on modificado y heur´ıstica DJD adaptada . . . 47
4.4.3 Experimentos con DJD adaptada . . . 52
4.4.4 Resultados para un problema peque˜no . . . 53
4.5 Discusi´on de resultados . . . 55
Cap´ıtulo 5 Conclusiones y trabajo futuro 58 5.1 Conclusiones . . . 58
5.2 Trabajo futuro . . . 59
Bibliograf´ıa 61
´
Indice de Tablas
2.1 Ejemplos de problemas de agrupaci´on. . . 17
3.1 Ciudades inclu´ıdas en las rutas. . . 33
3.2 Ciudades que integran cada ruta. . . 34
4.1 Primer grupo de experimentos. . . 41
4.2 Segundo grupo de experimentos. . . 41
4.3 Tama˜no de los problemas. . . 44
4.4 Nivel de enlace de los problemas. . . 44
4.5 Par´ametros del algoritmo para problemas. . . 44
4.6 Par´ametros del algoritmo para problemas empacado de objetos. . . 45
4.7 Par´ametros del algoritmo para problemas empacado de objetos dif´ıciles . . . 46
4.8 80 problemas de empacado de objetos. GGA y DJD. . . 46
4.9 Problemas dif´ıciles de 200 objetos. GGA y DJD. . . 46
4.10 Problemas de 50 eventos. S´olo restricciones duras. GGA y DJD. . . 48
4.11 Problemas de 100 eventos. S´olo restricciones duras. GGA y DJD. . . 48
4.12 Problemas de 200 eventos. S´olo restricciones duras. GGA y DJD. . . 49
4.13 Problemas de 50 eventos. GGA y DJD. . . 49
4.14 Problemas de 100 eventos. GGA y DJD. . . 50
4.15 Problemas de 200 eventos. GGA y DJD. . . 51
4.16 Problemas de 50 eventos con baja probabilidad, DJD. . . 52
4.17 Problemas de 100 eventos con baja probabilidad, DJD. . . 53
4.18 Problemas de 200 eventos con alta probabilidad, DJD. . . 54
4.19 Resultados para un problema de 50 eventos con baja probabilidad de enlace. . . 54
4.20 Un problema peque˜no con baja probabilidad de enlace. . . 56
´
Indice de Figuras
2.1 Algoritmo gen´etico simple. . . 14
2.2 Heur´ıstica DJD. . . 16
2.3 El problema de empacado de objetos. . . 18
2.4 La heur´ıstica del primero que quepa. . . 19
3.1 El operador de cruce del algoritmo gen´etico de agrupaci´on. . . 30
3.2 Estructura del prototipo de software desarrollado. . . 38
4.1 Representaci´on de un evento t´ıpico del problema. . . 43
4.2 Factor de error de los algoritmos GGA y DJD para 80 problemas. . . 47
4.3 Mejor encontrado para problemas de tama˜no 50. . . 50
4.4 Mejor encontrado para problemas de tama˜no 100. . . 51
4.5 Mejor encontrado para problemas de tama˜no 200. . . 52
4.6 Detalle de la interpretaci´on. . . 55
Cap´ıtulo 1
Introducci´
on
1.1
Contexto de la investigaci´
on
La nunca interminable demanda de servicios de transporte de carga y el continuo crecimiento de esta empresa en nuestro pa´ıs, obliga a las empresas a entrar en el mundo de la tecnolog´ıa para no perder su competitividad. La satisfacci´on completa del cliente, as´ı como el mejoramiento contin-uo son premisas b´asicas en cualquier empresa de servicios. Las empresas necesitan transportar sus mercanc´ıas o materias primas, algunas veces lo hacen programadamente, en otras, espor´adicamente. Diversos tipos de mercanc´ıa son transportados a trav´es de nuestro pa´ıs, desde simples cajas contenien-do producto terminacontenien-do hasta contenecontenien-dores enormes con m´aquinas especializadas o autotanques con calefacci´on para transportar l´ıpidos. Cubriendo la rep´ublica existen cientos de empresas transportistas y cientos de clientes con necesidades. Diferentes factores influyen en la elecci´on de un proveedor de servicios de transporte: la r´apidez, la puntualidad, la garant´ıa, la seguridad, la disponibilidad en caso de contingencia. De igual forma, distintos aspectos son considerados por el proveedor del servicio cuando firma un contrato: beneficio econ´omico, menor uso de veh´ıculos, m´axima carga por veh´ıculo, menores tiempos de carga y descarga, valor monetario promedio de la carga (no cargas excesivamente riesgosas por su costo). En general las partes participantes buscan siempre el m´aximo beneficio al realizar la transacci´on. Con la satisfacci´on de las necesidades garantizada, as´ı como con el m´aximo beneficio obtenido, la relaci´on cliente-proveedor se hace m´as s´olida creando un ambiente de negocios seguro y confiable que provoca un crecimiento mutuo y se refleja finalmente en mayores utilidades.
En la industria del transporte la ´optima utilizaci´on de la flota de veh´ıculos significa la obtenci´on del m´aximo beneficio. Encontrar el veh´ıculo apropiado y asignarle el evento para satisfacer las necesi-dades del cliente tomando en cuenta los compromisos previamente adquiridos, as´ı como evaluar las ofertas para determinar cu´al es la m´as conveniente, se convierte en un problema que resuelto manual-mente puede brindar una soluci´on que puede estar muy lejos de ser ´optima y que conlleva en ciertas ocasiones a tomar decisiones incorrectas que se reflejan en un aumento en el costo de operaci´on.
El problema de determinar cu´antos camiones se necesitar´an para satisfacer todos los eventos, ll´amese evento a cada contrato de transporte de carga convenido con el cliente; en un determinado tiempo juega un papel muy importante en la log´ıstica del transporte. En la literatura se han estudia-do una gran gama de problemas de log´ıstica de transporte, con adecuaciones al problema de estudio, pero la mayor´ıa de ellos se enfoca en un problema com´un – el uso eficiente de los veh´ıculos de una flota que deben recoger y entregar mercanc´ıas. En este tipo de problema se requiere especificar cu´ales ´
ordenes ser´an atendidas por cu´al veh´ıculo, de acuerdo a factores como capacidad, tiempo, etc., as´ı como minimizar el costo total sujeto a una variedad de restricciones [6].
mayor uso del cami´on y a la vez satisfaciendo ciertas restricciones.
Dado que la determinaci´on de cu´antos y cu´ales camiones deber´an satisfacer cu´ales eventos debe hacerse en casi cualquier industria que involucre la transportaci´on o distribuci´on de mercanc´ıas, al-imentos o servicios, resolver este tipo de problemas con t´ecnicas mejoradas de Inteligencia Artifical representa un potencial ahorro en el negocio; una mejor calidad en el servicio y por tanto un crec-imiento de la empresa.
De manera general el problema se encuentra en aquellos de transportaci´on. Los problemas de transportaci´on generalmente se enfocan a la ´optima utilizaci´on de la flota de veh´ıculos. Dentro de esta optimizaci´on se encuentra el problema de enrutar los veh´ıculos adecuadamente para minimizar los cos-tos de operaci´on. Enrutar los veh´ıculos puede significar decidir cu´ales de los eventos de transporte que la empresa tiene que cumplir deber´an ser cubiertos por cu´al cami´on y en qu´e orden. Espec´ıficamente, este problema puede ser modelado como uno de empacado de objetos. Los contenedores pueden ser vistos como camiones y los objetos pueden ser vistos como los objetos que ser´an empacados en los contenedores.
El problema de ruteo de veh´ıculos no es directamente mapeable a un problema de empacado de objetos, aunque es posible encontrar una similitud entre ambos problemas. El problema fundamental es de tipo NP-completo en casi todas sus variantes, por lo tanto una soluci´on exacta s´olo es alcanzable para un subconjunto de peque˜nos casos. S´olo el uso de heur´ısticas hace factible el encontrar una soluci´on pero no garantiza alcanzar la ´optima.
En las ´ultimas tres d´ecadas se ha realizado considerable cantidad de investigac´ı´on en la b´usqueda de t´ecnicas de soluci´on en este campo, tanto acad´emica como pragm´atica [10]. El uso de algoritmos gen´eticos para encontrar soluciones ´optimas a este problema tambi´en se ha investigado. Los algoritmos gen´eticos desarrollados por Holland, sus colegas y sus estudiantes en la Universidad de Michigan (Hol-land, 1975; Goldberg, 1989), se han usado exitosamente para resolver problemas como el del vendedor viajero, asignaci´on cuadr´atica, programaci´on de tareas y otros problemas del tipo NP [9]. Algoritmos de b´usqueda tab´u y recocido simulado tambi´en han demostrado generar buenas soluciones de alta calidad. Una revisi´on completa de estos algoritmos la hace Gendrau et al. (1997) [2].
1.2
Definici´
on del Problema
tr´afico, sino que por ser un problema de optimizaci´on se sabe que es un problema combinatorio dif´ıcil de resolver [11]. De ah´ı radica la importancia de utilizar un algoritmo capaz de brindar soluciones buenas y que en verdad sirvan de apoyo al gerente de tr´afico en el proceso de asignaci´on de eventos a los camiones [1].
En resumen, el problema se reduce a un enrutamiento en la que dado un conjunto discreto de eventos, se deben determinar un n´umero de camiones tomando en cuenta las fechas inicial y final, minimizando el n´umero de veh´ıculos utilizados para satisfacer todos los eventos y maximizando la utilizaci´on de los veh´ıculos, asignando el mayor n´umero posible de eventos. Tambi´en debe buscar satisfacer el mayor n´umero de restricciones impuestas por cada asignaci´on y restricciones que tienen que ver con caracter´ısticas de los eventos. En general las restricciones que deben ser tomadas al resolver este problema son consecuencia de las caracter´ısticas del evento. Las restricciones tienen que ver por ejemplo con que dos eventos asignados a un cami´on no se traslapen en sus fechas inicial y final, que el origen del segundo evento se encuentre en la ruta a la que pertenece el primer evento, es decir, que exista una secuencia entre el primero y segundo evento, buscando con eso aprovechar al m´aximo el cami´on. Existen tambi´en restricciones relacionadas con el tiempo m´aximo que deber´a esperar un cami´on en determinado destino para que sea asignado a un evento; algunas otras est´an relacionadas con las distancias que debe recorrer un cami´on sin carga para llegar al siguiente origen de un evento. El problema se plantea y define a detalle en el tercer cap´ıtulo. Se presenta el caso general y por ello muy dif´ıcil y complejo de modelar y resolver. De entre todas las restricciones que presenta el problema se realiza una selecci´on de las que se considera m´as importantes para el caso de estudio y con ´estas se define una simplificaci´on del problema, que tambi´en se detalla en el tercer cap´ıtulo, pero que puede resumirse de la siguiente manera:
• Existe un conjunto de eventos, cada uno con su fecha incial y final, su duraci´on, la ruta a la que pertenece y el origen y el destino de la carga.
• Para todos los eventos que pertenecen a un solo mes, se pretende crear un calendario que minimice el n´umero de camiones asignados para satisfacer la demanda.
• La tarea ser´a enrutar los camiones asign´andoles los eventos de tal manera que se satisfagan las siguientes restricciones:
- Los eventos asignados a un cami´on no deben traslaparse en sus fechas incial y final. - El origen de un evento consecutivo de otro debe ser igual al destino del evento que lo
precede.
- Los eventos deben pertenecer a la misma ruta.
- Debe considerarse un l´ımite de tiempo para asumir que dos eventos son consecutivos. - Debe maximizarse el uso del cami´on, procurando asignarle el mayor n´umero de eventos
posibles.
1.3
Objetivos
Este trabajo de investigaci´on tiene como principal objetivo desarrollar un prototipo capaz de pro-poner un enrutamiento de los camiones formando un calendario entre un rango de fechas, asegurando que las diferentes restricciones se satisfagan.
• Definir una simplificaci´on del problema de ruteo de veh´ıculos satisfaciendo ciertas restricciones. Se escogen dentro del conjunto de restricciones del modelo general las que se consideran m´as relevantes al problema de asignaci´on y con ello se define un problema m´as simple que es el que se intenta resolver en el presente trabajo. El problema general es demasiado complejo para intentar ser resuelto en un trabajo como ´este.
• Modelar el problema partiendo de la simplifiacion obtenida.
• Utilizar e implementar un algoritmo gen´etico de agrupaci´on para solucionar las instancias del problema propuesto.
• Probar el algoritmo para diferentes instancias del problema.
• Comparar el rendimiento del algoritmo contra una heur´ıstica al solucionar problemas de em-pacado de objetos. La heur´ıstica es llamada DJD y fue desarrollada por Djang y Finch [12].
1.4
Alcance
El principal objetivo se centra en la construcci´on del prototipo de una herramienta capaz de proponer una asignaci´on de eventos a un n´umero minimizado de camiones que satisfar´an la demanda y aumentar´an el beneficio cumpliendo adem´as con ciertas retricciones. El prototipo brindar´a escenarios de asignaci´on que deben ser ´utiles al gerente de tr´afico de una empresa de transportes para que ´este junto con su experiencia pueda generar una asignaci´on final muy cercana a la ´opima.
1.4.1
Hip´
otesis
En el problema de ruteo de veh´ıculos, la utilizaci´on de un algoritmo gen´etico para agrupaci´on permite generar un calendario o programa que satisface las restricciones, como son la capacidad del veh´ıculo, el tiempo, y la disponibilidad. Existen las siguientes preguntas a responder:
1. ¿Es posible realizar el planteamiento de un problema de ruteo de veh´ıculos como un problema de empacado de objetos?
2. ¿Qu´e modelo de soluci´on de problemas de optimizaci´on, proporciona un mejor resultado para este problema?
3. El algoritmo gen´etico de agrupaci´on, ¿es ´util para resolver este problema? ¿Qu´e tama˜no de problema es posible resolver?
4. La heur´ıstica DJD, ¿es ´util para resolver este problema?
5. ¿Cu´al es la estrategia para manejar las restricciones en este problema?
6. ¿Qu´e tan factible es utilizar este modelo para otras aplicaciones que necesitan resolver problemas similares?
7. ¿Cu´al es la situaci´on actual de algunas empresas transportistas en Monterrey?
8. ¿El algoritmo gen´etico de agrupaci´on [4], es ´util para resolver problemas de empacado de objetos? 9. ¿La heur´ıstica DJD [12] es ´util para resolver problemas de empacado de objetos?
1.5
Aporte de la investigaci´
on
El aporte de la presente investigaci´on consiste en brindar el prototipo de una herramienta para el gerente de tr´afico de una empresa transportista para que pueda realizar de mejor manera su trabajo. En la mayor´ıa de las empresas transportisas no cuentan con sistemas relacionados con la optimizaci´on de la asignaci´on de los eventos a los camiones. Este trabajo es realizado por el gerente de tr´afico o el supervisor que es una persona que tiene mucha experiencia en el ´area y conoce perfectamente el funcionamiento de esta parte de la empresa. Contar con una herramienta de este tipo permitir´a que gente con poca o mediana experiencia pueda generar asignaciones de eventos a camiones de buena calidad; asignaciones que consideran ciertas restricciones y que buscan maximizar el uso de los recursos lo que se traduce en mayores beneficios econ´omicos que finalmente redundan en un crecimiento para la empresa, objetivo buscado por los gerentes de las mismas.
El aporte de este trabajo es el de poder responder a los cuestionamientos propuestos en el caso de estudio, y particularmente muestran lo siguiente:
• Este trabajo es el primer esfuerzo en el ´area de computaci´on evolutiva del Centro de Sitemas Inteligentes por aplicar t´ecnicas de optimizaci´on inteligente al ´area de ruteo de veh´ıculos, conc-retamente al de asignaci´on de eventos a camiones de carga, utilizando un algoritmo gen´etico de agrupaci´on.
• La investigaci´on de campo realizada en cuando menos tres empresas transportistas importantes de la ciudad de Monterrey, permiti´o comprobar que no existen sistemas computacionales con capacidades de optimizaci´on en estas empresas.
• El prototipo propuesto es capaz de resolver problemas de hasta 200 eventos para un mes, lo que es alentador, porque en la mayor´ıa de las empresas medianas transportistas no se excede este valor.
• El prototipo finalmente desarrollado representar´a una posible herramienta que puede ser de gran ayuda al gerente de tr´afico de la transportista en la planeaci´on de las necesidades de camiones en un tiempo no mayor a 30 d´ıas.
• El prototipo genera soluciones en un tiempo aceptable, no mayor a 15 minutos, lo que facilita el agregar eventos o quitar eventos y generar soluciones un numero grande de veces buscando un agrupamiento adecuado de los eventos.
1.6
Estructura de la tesis
Cap´ıtulo 2
Marco te´
orico
Como se mencion´o en el cap´ıtulo anterior, el problema tratado en el presente trabajo puede clasificarse como un problema de transporte, espec´ıficamente, un problema de ruteo de veh´ıculos. En este cap´ıtulo se detallar´an los antecedentes te´oricos de estos temas, incluyendo una breve descripci´on de algunas t´ecnicas que se han utilizado para resolver este tipo de problemas. Despu´es se describen algunos trabajos relacionados, se comentam algunos aspectos de la complejidad computacional y se explica c´omo la b´usqueda puede ayudar a resolver este problema al tratar de optimizar, mejorando progresivamente una soluci´on conforme se recorre el espacio de b´usqueda. Por ´ultimo se detallan los fundamentos de los algoritmos gen´eticos y el funcionamiento b´asico de la heur´ıstica llamada DJD.
2.1
El problema de transportaci´
on
El problema de transportaci´on se presenta en una gran variedad de actividades de transporte a trav´es de alg´un medio. Hablar del problema de transportaci´on as´ı como tal resulta muy general. En este trabajo hablaremos del problema de transportaci´on para veh´ıculos de carga terrestre. B´asicamente consiste en encontrar una calendarizaci´on o prog ramaci´on de los veh´ıculos de la flota que minimice el costo y que adem´as satisfaga la demanda de transportaci´on entre un conjunto de lugares [1]. La demanda de transportaci´on, la calendarizaci´on o programaci´on de los vehiculos y el costo, se definen con los siguientes elementos:
- Demanda de transportaci´on: definida por los lugares o sitios de llegada y salida, los tiempos requeridos para llegar o salir, propiedades de la carga (volumen, peso, tipo).
- Calendarizaci´on o programaci´on: depende de factores como la ruta que el veh´ıculo siga, el tiempo que tome calendarizarlo, la carga asignada al veh´ıculo.
- Costo: compuesto por el costo del capital, el costo operacional y el costo de evaluaci´on.
cumplimiento de las condiciones y horas de trabajo de los conductores de los veh´ıculos, entre muchas otras.
En resumen, en el problema de transportaci´on para veh´ıculos terrestres de carga se hacen deci-siones din´amicas acerca de la asignaci´on y selecci´on de veh´ıculos y rutas de los mismos para satisfacer la demanda de transportaci´on, en el tiempo requerido, cumpliendo con un conjunto de restricciones que tienen que ver tanto con el uso de los recursos como con la forma en que deben asignarse, y en muchos casos tratando de optimizar ciertos criterios.
Dado que existen similitudes entre un conjunto de problemas de la industria a los que agrupamos como problemas de transportaci´on, es de esperarse que los avances que se realicen en este sentido ten-dr´an un impacto en todos los diferentes problemas relacionados con esta ´area, de ah´ı la importancia del estudio te´orico del problema de transportaci´on.
2.1.1
Estructura del problema de transportaci´
on
En los problemas de transportaci´on t´ıpicos existen dos elementos constitutivos, la planeaci´on b´asica y la planeaci´on operativa.
La planeaci´on b´asica
Consiste en decidir en cu´ales localidades o puntos de carga y descarga es conveniente establecer un centro de distribuci´on o un patio de maniobras. Tambi´en consiste en la distribuci´on eficiente de los veh´ıculos entre esos centros de distribuci´on; y la calendarizaci´on o programaci´on de rutas regulares o fijas que forman parte de una cierta demanda fija de transportaci´on. Esto puede compararse a un problema de transportaci´on de grandes distancias entre un conjunto de ciudades.
Las primeras dos partes de la planeaci´on b´asica son elementos de alto nivel para decidir la configuraci´on de la empresa o red de servicios. Estas partes est´an afectadas directamente por el potencial econ´omico de la empresa y por las facilidades geogr´aficas del territorio en donde se prestan los servicios.
Dado que el volumen de demanda puede llegar a ser grande, los costos de transportaci´on entre centros de distribuci´on pueden llegar a ser tambi´en muy grandes. Por lo tanto, una calendarizaci´on o programaci´on eficiente y una asignaci´on ´optima de los veh´ıculos es de suma importancia para reducir los costos. Es tambi´en de gran utilidad para los niveles de plenaci´on m´as altos.
La planeaci´on operativa
Consiste en programar y asignar los veh´ıculos de acuerdo a la demanda de transportaci´on, inten-tando siempre minimizar los costos. El problema se puede dividir en dos subproblemas [1]: el problema de ruteo de veh´ıculos y el problema del uso de los veh´ıculos. El problema de ruteo de veh´ıculos consiste en crear un conjunto de rutas tales que satisfagan la demanda de transportaci´on. El problema del uso de los veh´ıculos, consiste en asignar los veh´ıculos a las rutas creadas por el problema de ruteo.
2.1.2
El problema de ruteo de veh´ıculos
parecen ser m´as prometedoras para los problemas que se encuentran en esta clase. El problema de ruteo de veh´ıculos se presenta en una amplia gama de problemas de decisiones pr´acticas como las redes de telecomunicaciones, distribuci´on de mercanc´ıas al menudeo, planeaci´on de rutas para autobuses de pasajeros, entrega y distribuci´on de peri´odicos y correo, planeaci´on de rutas y asignaci´on de veh´ıculos en flotas a´ereas y de ferrocarriles, entre otros. Una planeaci´on de rutas efectiva, as´ı como una eficiente asignaci´on puede hacer que las empresas ahorren millones de pesos al a˜no, logrando reducciones en costos de combustible, menores mantenimientos, etc.
2.1.3
Evaluaci´
on de la soluci´
on generada
Para encontrar una soluci´on al problema de ruteo de veh´ıculos es necesario definir lo que hace que una ruta sea mejor que otra, es decir, es necesario encontrar un buen objetivo para maximizar o minimizar. Encontrar esta funci´on es dif´ıcil debido a que, en la industria, normalmente no se realiza una cuantificaci´on formal de la satisafacci´on del cliente en cuanto a calidad del servicio prestado por parte de la empresa transportista.
El problema de ruteo de veh´ıculos tiene t´ıpicamente los siguientes objetivos que son muy difer-entes y en ocasiones pueden llegar a ser antag´onicos:
• minimizar la distancia recorrida,
• minimizar el tiempo transcurrido al completar la ruta,
• minimizar el costo de operaci´on,
• maximizar la calidad y puntualidad del servicio,
• maximizar el uso de los recursos (camiones).
2.1.4
Algunos m´
etodos de soluci´
on al problema de ruteo de veh´ıculos
En las ´ultimas tres d´ecadas se ha realizado considerable cantidad de investigaci´on en la b´usqueda de t´ecnicas de soluci´on en este campo, tanto acad´emica como pragm´atica [10]. El uso de algoritmos gen´eticos para encontrar soluciones ´optimas a este problema tambi´en se ha investigado. Los algoritmos gen´eticos desarrollados por Holland, sus colegas y sus estudiantes en la Universidad de Michigan (Holland, 1975; Goldberg, 1989), se han usado exitosamente para resolver problemas como el del vendedor viajero, asignaci´on cuadr´atica, programaci´on de tareas y otros problemas del tipo NP [9]. Algoritmos de b´usqueda tabu y recocido simulado tambi´en han demostrado generar buenas soluciones de alta calidad. Una revisi´on completa de estos algoritmos la hace Gendrau et al. (1997) [2]. El problema de ruteo de veh´ıculos tiene muchas variantes. Existe por ejemplo aquel que tiene como restricci´on realizar la entrega o recolecci´on de mercanc´ıas en un determinado per´ıodo; ´este se conoce como ventana de tiempo. Tambi´en existe aquel en el que ciertas mercanc´ıas deben entregarse o recogerse en determinados centros de distribuci´on de la red; este se conoce como el problema de trasbordo de m´ultiples mercanc´ıas.
Algoritmos gen´eticos
El algoritmo gen´etico es un m´etodo de b´usqueda heur´ıstico basado en la gen´etica de una poblaci´on. El concepto b´asico fue desarrollado primeramente por Holland en 1975. El trabajo de Holland produjo el comienzo de la teor´ıa de la b´usqueda adaptativa gen´etica. M´as adelante en este cap´ıtulo se da una descripci´on detallada de la constituci´on de esta t´ecnica.
Thangiah et al. ha utilizado un m´etodo de clusters usando algoritmos gen´eticos que ha sido altamente exitoso solucionando problemas de ruteo de veh´ıculos con ventanas de tiempo, m´ultiples almacenes y m´ultiples mercanc´ıas. El m´etodo est´a basado en el esquema del primer-sector-segunda ruta, consiste en: dado un conjunto de clientes y un almacen central, la heur´ıstica agrupa los clientes usando el algoritmo gen´etico y los clientes dentro de cada sector se enrutan usando el m´etodo de inserci´on de menor costo [Golden and Stewart, 1985]. El agrupamiento de los clientes utilizando el algoritmo gen´etico se conoce como sectorizaci´on gen´etica. La heur´ıstica de sectorizaci´on gen´etica permite la exploraci´on y la explotaci´on del espacio de b´usqueda para encontrar soluciones factibles buenas; la exploraci´on la hace el algoritmo gen´etico y la explotaci´on la hacen meta-heur´ısticas de b´usqueda local. El algoritmo gen´etico GENESIS [Grefenstette, 1987] se ha usado en la implementaci´on de la heur´ıstica de sectorizaci´on gen´etica.
Recocido simulado
El algoritmo de recocido simulado es una t´ecnica muy ´util en problemas de optimizaci´on, es-pec´ıficamente para problemas combinatorios. Est´a basado en la analog´ıa con el proceso f´ısico de recocido de s´olidos. En el proceso de recocido, un s´olido se calienta hasta alcanzar una temperatura muy alta y despu´es, gradualmente se enfr´ıa para cristalizarlo. Puesto que el proceso de calentamiento permite a los ´atomos moverse aleatoriamente, si el enfriamiento se hace r´apidamente no permite a los ´
atomos alcanzar el equilibrio t´ermico. En cambio, si el enfriamiento se hace lentamente, se proporciona a los ´atomos el tiempo suficiente para alinearse y alcanzar el m´ınimo estado de energ´ıa. Esta analog´ıa se puede usar para problemas combinatorios, en donde los estados del s´olido corresponder´ıan a la solu-ci´on factible, la energ´ıa en cada estado corresponder´ıa al mejoramiento de la evaluaci´on de la funci´on objetivo y el m´ınimo estado de energ´ıa a la soluci´on ´optima. El inter´es en utilizar el recocido simulado para resolver problemas de optimizaci´on combinatoria comenz´o con Kirkpatrick et. al. [1983]. El recocido simulado usa un m´etodo estoc´astico para dirigir la b´usqueda.
Thangiah [17] propone utilizar un esquema de enfriamiento no monot´onico similar al propuesto por Osman [1993]. Este esquema induce una oscilaci´on en el comportamiento de la temperatura, con-secuentemente lo hace tambi´en en la funci´on objetivo. Este concepto se tom´o prestado de la b´usqueda tab´u y esta combinaci´on ha demostrado dar mejor rendimiento sobre otros esquemas est´andares de recocido simulado. Los autores combinan entonces dos t´ecnicas, recocido simulado y b´usqueda tab´u para intentar dar una soluci´on al problema de ruteo de veh´ıculos con ventanas de tiempo. El algoritmo combinado utiliza una estructura especial de datos que identifica la lista de movimientos candidatos exactos en lugar de usar el esquema tradicional de vecindario del recocido simulado est´andar.
Programaci´on difusa interactiva
de mercanc´ıa. El fabricante busca minimizar sus costos de transportaci´on y en base a eso elige a los agentes, los agentes asignan la fuerza de trabajo maximizando el beneficio, tomando en cuenta la habilidad de los conductores. Los autores formulan el problema como uno de programaci´on entera de dos niveles. Primeramente, establecen las funciones de membres´ıa para las funciones objetivo, as´ı como las funciones de restricci´on espec´ıficas del problema. Dividen el problema en cuatro problemas de programaci´on de objetivo simple, que se optimizan individualmente y determinan los par´ametros de las funciones de membres´ıa consultando los valores ´optimos y las soluciones de los cuatro problemas.
El algoritmo de programaci´on difusa interactiva est´a compuesto de dos fases. En la primera fase, se identifican las funciones de membres´ıa de los tomadores de decisiones del problema, en este caso el fabricante y los agentes. En la segunda fase, se combinan los grados de satisfacci´on de los dos niveles para derivar una soluci´on final.
Sistemas multiagentes
Los autores de este trabajo proponen una arquitectura de agentes para resolver el problema de ruteo de veh´ıculos.
Los sistemas basados en agentes se usan para resolver problemas que van desde estrategias de b´usqueda en la internet hasta robots aut´onomos. Un agente es un objeto de software que est´a situado dentro de un ambiente. Existen muchos atributos asociados con el agente, algunos de los m´as impor-tantes son: anticipable, comunicativo, aut´onomo, reactivo, con objetivos claros, m´ovil, con capacidad de aprendizaje, persistente, colaborativo, distribu´ıdo, entre otros.
La arquitectura propuesta por los autores consiste de un principio de negociaci´on y de un marco de coordinaci´on [18]. El principio de negociaci´on es el coraz´on de los modelos de agentes. Difunde la disponibilidad de los clientes, acepta las licitaciones sobre los clientes y asigna al cliente a el veh´ıculo licitado con el costo m´as bajo.
El marco o entorno de coordinaci´on debe ser dise˜nado para sistemas descentralizados de auto inter´es y entidades racionales. Cada agente de software, responsable ya sea de hacer disponibles a los clientes o de asignar un cliente a una ruta, cooperar´a y coordinar´a para resolver el problema de ruteo de veh´ıculos. Algunas ventajas clave de este esquema son: la adopci´on de un esquema descentralizado, la posibilidad de ejecuciones as´ıncronas o concurrentes, la flexibilidad de mecanismos de control y la habilidad de reconfigurar y extender el problema a m´ultiples computadoras conectadas a una red.
La metodolog´ıa para solucionar el problema usa un proceso de subasta para asignar los clientes a los veh´ıculos. El sistema de agentes propuesto utiliza el m´etodo DOSS, que es la capacidad de un sistema de realizar un b´usqueda usando una o m´as computadoras heterog´eneas en una red distribu´ıda donde cada nodo de la red es capaz de seleccionar aut´onomamente una estrategia de b´usqueda que maximice su rendimiento localmente. Este m´etodo permite integrar estrategias de b´usqueda globales y locales como algoritmos gen´eticos, b´usqueda tab´u y recocido simulado y estrategias de b´usqueda para el vecindario local.
2.1.5
Sistemas relacionados
El sistema MARS
puede exceder la capacidad de una sola compa˜n´ıa. Por consiguiente se contempla la cooperaci´on entre compa˜n´ıas con el fin de alcanzar las metas de una manera satisfactoria. Aparte del sistema de agentes internos, que realizan tareas como la representaci´on y visualizaci´on de la simulaci´on del mundo; la sociedad de agentes de MARS consiste de dos dominios, que corresponden a las entidades l´ogicas: compa˜n´ıas de transporte y camiones. Tomar los camiones como agentes permite delegar los problemas relacionados con el aprovechamiento de los mismos como planeaci´on de rutas, reducci´on de costos, etc. La comunicaci´on entre los agentes se realiza por canales directos de comunicaci´on. El agente de la compa˜n´ıa (o que representa a la compa˜n´ıa) es responsable del despacho de las ´ordenes que se le han confiado. Lo realiza ya sea asignando las ´ordenes a sus propios camiones, lo que envuelve una cooperaci´on vertical; o asign´andolas a otras compa˜n´ıas usando m´etodos y protocolos de cooperaci´on horizontal. De este modo, los agentes de las compa˜n´ıas transpostistas son expertos para la descom-posici´on/asignaci´on de tareas y la cooperaci´on vertical u horizontal. Cuando recibe una orden de su compa˜n´ıa transportista, el agente del cami´on (o que representa al cami´on) planea la ruta de acuerdo a su conocimiento geogr´afico del entorno. Finalmente informa al agente de la compa˜n´ıa acerca de la entrega de las mercanc´ıas. Adem´as, apoya a la compa˜n´ıa transportista durante la fase de planeaci´on reportando el costo estimado, tiempo y capacidades restantes.
Diversos trabajos relacionados
Comparado con el n´umero de aplicaciones del problema de calendarizar con restricciones, existe un n´umero limitado de sistemas que manejan problemas de transportaci´on con restricciones [16]. Algunos se listan a continuaci´on:
- El sistema Pilot maneja la replaneaci´on diaria de pilotos y tripulaci´on de cabina de vuelos cortos y medianos. Intenta cubrir los vuelos abiertos -vuelos para los que no existen recursos-reorganizando el calendario existente.
- El proyecto Daysy Esprit, un desarrollo conjunto de Lufthansa, Grupo Sema, La Universidad de Patras y Cosytec, construye un sistema de administraci´on diario para Lufthansa.
- Un sistema desarrollado por PrologIA para la calendarizaci´on de los tripulantes de cabina de Air Littoral, reimplement´o un sistema basado en el m´etodo Simplex con un resolvedor especial Simplex 0/1.
- El sistema EVA, desarrollado por GIST para la EDF, la compa˜n´ıa francesa, calendariza el transporte de desperdicio nuclear entre estaciones de poder y el sitio de reproceso en Francia. El programa optimiza el uso de los contenedores especiales de transporte y minimiza los tiempos muertos del reactor debido a los retrasos en la transportaci´on.
- En Turqu´ıa, EBI, desarroll´o un sistema para calendarizar el transporte entre almacenes y clientes, que combina la planeaci´on de la utilizaci´on de la capacidad del cami´on junto con la optimizaci´on de la ruta.
2.1.6
Complejidad computacional
Los m´etodos mencionados aqu´ı pueden brindar soluciones exactas pero solamente para un sub-conjunto muy peque˜no de problemas. Los problemas demasiado grandes se consideran intratables, aunque se ha realizado bastante esfuerzo en ofrecer buenas soluciones.
puesto que el problema general de transportaci´on puede tenern almacenes conk veh´ıculos, tiene un n´umero infinito de soluciones posibles si consideramos que las ventanas de tiempo pueden variar. Se sabe que los problemas reales son NP-Completos, lo que significa que no se ha desarrollado alg´un algoritmo que encuentre una buena soluci´on en un tiempo polinomial con respecto al tama˜no del pro-blema.
Adem´as de la complejidad computacional, existen otras caracter´ısticas que hacen que el proble-ma de ruteo de veh´ıculos sea dificil de autoproble-matizar y de que las t´ecnicas actuales para resolverlo no garanticen la optimalidad.
• La contraposici´on en muchas ocasiones de los objetivos buscados.
• Las innumerables restricciones que intervienen en los problemas reales y que muchas veces tienen que dejarse de fuera por la complejidad que le agregan al problema.
• La variabilidad del ambiente en donde se desarrolla el problema.
2.2
Algoritmos de b´
usqueda
Las b´usqueda es el fundamento de gran parte de la inteligencia computacional. B´uscar es listar soluciones parciales a un determinado problema y probar cada una para comprobar si son o no solu-ciones verdaderas del problema. Para realizar la b´usqueda se requiere contar con una definici´on de lo que se aproxima a una soluci´on, un m´etodo para generar las soluciones potenciales y finalmente, alguna manera de verificar que la soluci´on es correcta para el problema dado.
Cuando el espacio de b´usqueda es infinito o cuando es demasiado grande para recorrerlo todo, los m´etodos de b´usqueda que recorren este espacio completamente, no terminar´an en un tiempo ra-zonable por lo que es necesario utilizar otros m´etodos que busquen soluciones factibles y que intenten mejorarlas recorriendo s´olo una porci´on del espacio de b´usqueda.
Existen tres principales m´etodos de b´usqueda, aquellos basados en el c´alculo, los que hacen un trabajo exhaustivo y los que lo hacen aleatoriamente. Los m´etodos basados en el c´alculo pueden ser indirectos, en cuyo caso se buscan los extremos locales resolviendo un conjunto de ecuaciones normal-mente no lineales, resultado de igualar la funcion objetivo a cero. Los m´etodos directos buscan ´optimos locales movi´endose a trav´es de la funci´on en la direcci´on que indique el valor de la funci´on objetivo, lo que se conoce como b´usqueda de alpinista. Los m´etodos exhaustivos o enumerativos recorren el espacio de b´usqueda completamente evaluando punto a punto la funci´on objetivo hasta finalizar el espacio de b´usqueda para finalmente determinar el valor ´optimo de la funci´on objetivo. El m´etodo garantiza encontrar el ´optimo global, pero existen problemas para los que el espacio de b´usqueda es demasiado grande y aplicar estas t´ecnicas resultar´ıa impr´actico. Los m´etodos de b´usqueda aleatoria son algoritmos de b´usqueda guiados que utilizan la selecci´on aleatoria de puntos de la funci´on objetivo. Se llama funci´on objetivo o funci´on de costo a una funci´onf(x) d´ondef(x) se pretende optimizar y
xpertenece a un dominio acotado y definido. Se llama espacio de b´usqueda al conjunto de todos los valores que puede tomarx. Intento es la evaluaci´on def(x) para un valor dado dex.
2.3
Optimizaci´
on
Optimizar implica encontrar extremos de la funci´on objetivo que pueden ser los valores m´aximos, en cuyo caso, el proceso toma el nombre de maximizaci´on; o los valores m´ınimos, en el caso de querer hacer una minimizaci´on. Se dice entonces que optimizar es encontrar los par´ametros que hacen que se optimice (maximice o minimice) una funci´on dada.
Es importante separar el hecho de buscar el mejor con el de encontar un ´optimo. En la realidad no siempre es posible garantizar que un punto es el ´optimo, ni tampoco siempre se estar´a dispuesto a invertir lo necesario para encontrarlo, pero siempre ser´a indispensable mejorar.
Los m´etodos de optimizaci´on son de gran importancia en la pr´actica, particularmente en el campo de la ingenier´ıa, experimentos cient´ıficos y en la toma de decisiones a nivel gerencia.
2.4
Generalidades sobre los algoritmos gen´
eticos
Un algoritmo gen´etico es un algoritmo de b´usqueda basado en la mec´anica de la selecci´on natural. Como se sabe, el proceso de evoluci´on es muy complejo, a continuaci´on se explica la idea b´asica en la que est´an basados los algoritmos gen´eticos.
Un individuo, o m´as exactamente, su fenotipo est´a formado por un conjunto de caracter´ısticas contenidas en sus genes, su genotipo, y de un conjunto de caracter´ısticas adquiridas posteriormente. Los individuos de una misma especie son similares, pero difieren tanto en su genotipo como en su fenotipo. Los nuevos individuos se producen por cruce, es decir, como resultado de combinar las car-acter´ısticas de sus dos padres. En un sistema natural, los individuos luchan por comida, territorio o pareja. Los individuos m´as aptos de la poblaci´on sobreviven y pueden pasar sus genes a su descen-dencia.
Los algoritmos gen´eticos son computacionalmente simples y sin embargo muy poderosos, adem´as de que no est´an limitados por restricciones en el espacio de b´usqueda. Son algoritmos iterativos. Los algoritmos gen´eticos difieren de los m´etodos comunes de optimizaci´on porque:
1. Buscan dentro de una poblaci´on de puntos y no en uno solo.
2. Trabajan con una cadena codificada representando a los par´ametros y no con los par´ametros mismos.
3. Utilizan informaci´on obtenida de la evaluaci´on de la funci´on objetivo y no requieren de ninguna informaci´on acerca de la funci´on (derivadas parciales, continuidad, n´umero de dimensiones, etc.) 4. Sus reglas para la transici´on son probabil´ısticas y no determin´ısticas.
Otra caracter´ıstica de los algoritmos gen´eticos es que los operadores gen´eticos trabajan sobre el espacio de soluciones codificadas en los cromosomas, mientras que la selecci´on y evaluaci´on trabajan sobre el espacio de soluciones reales.
Figura 2.1: Algoritmo gen´etico simple.
mismo ´optimo) del problema. En la figura 2.1 se esquematiza el algoritmo gen´etico simple que puede resumirse as´ı:
1. Generar poblaci´on inicial. Consiste en crear un conjunto de individuos suficientes para formar una poblaci´on. Los individuos se crean de manera aleatoria.
2. Seleccionar una nueva poblaci´on.
a. Asignar aptitud a cada uno de los individuos de la poblaci´on. La evaluaci´on de un cromoso-ma se calcula en base a la evaluaci´on de la funci´on objetivo para el fenotipo correspondiente al cromosoma evaluado.
c. Aplicar selecci´on/reproducci´on. El principal objetivo del operador de reproducci´on es hacer duplicados de buenas soluciones y eliminar las malas, manteniendo el tama˜no de la poblaci´on constante. Esto se logra de la siguiente forma:
i. Identificar los individuos que ser´an parte de la siguiente generaci´on. Los de mejor ap-titud tendr´an mayores probabilidades de contribuir con descendencia para la siguiente generaci´on.
ii. Hacer m´ultiples copias de los individuos (soluciones) seleccionados.
iii. Eliminar el resto de las soluciones para darle lugar a las copias de las buenas soluciones. d. Aplicar el operador de cruce. Determinando puntos de cruce de manera aleatoria sobre una pareja de individuos, ´estos se mezclan, tomando la primera parte del cromosoma del primer individuo, hasta el punto de cruce, para concaternarlo con la segunda parte del cromosoma, despu´es del punto de cruce, del segundo individuo. Esto genera un primer individuo descendiente de la primera pareja. El proceso se repite de la misma forma, pero intercambiando los papeles de los individuos para generar el segundo individuo descendiente. El operador de cruce es el principal responsable de la b´usqueda en los algoritmos gen´eticos. e. Aplicar mutaci´on. Este es un cambio aleatorio en alguna parte del individuo. No se aplica de manera extensiva, de hecho se recomienda usar una mutaci´on por cada 1000 caracteres del cromosoma. El operador de mutaci´on se usa para conservar la diversidad de la poblaci´on. f. Si las condiciones de terminaci´on del algoritmo no se cumplen, regresar al punto 2.
2.5
La heur´ıstica DJD
Esta heur´ıstica, desarrollada por Djang y Finch [12] para resolver problemas de empacado de objetos, coloca los objetos m´as grandes en un contenedor, hasta que ´este est´a al menos un tercio lleno. A partir de ah´ı juega con la combinaci´on de uno, dos o tres objetos sobre el grupo de objetos restantes no empacados e intenta llenar el contenedor al cien por ciento. Si no existe una combinaci´on que satisfaga esta condici´on, entonces se relaja el problema disminuyendo el tama˜no del contenedor en uno y repitiendo el proceso de buscar una combinaci´on que lo llene al cien por ciento. Este procedimiento se repite hasta que se satisface dicha condici´on. Ross [12] afirma que brinda excelentes resultados hasta en un 76 por ciento de los problemas que Falkenauer utiliz´o para probar su algoritmo gen´etico de agrupaci´on. La figura 2.2 muestra el diagrama de flujo del funcionamiento de esta heur´ıstica. Ross [12] ha utilizado el concepto de hiper-heur´ısticas para resolver el problema de empacado de objetos, b´asicamente la idea es que en lugar de usar un un algoritmo evolutivo para encontrar una soluci´on a un problema espec´ıfico, se use para tratar de fabricar un proceso de soluci´on aplicable a muchas instancias del problema y construirlo a partir de heur´ısticas simple perfectamente entendidas.
2.6
El problema de transportaci´
on como un problema de
agru-paci´
on
Figura 2.2: Heur´ıstica DJD.
2.6.1
Generalidades de los problemas de agrupaci´
on
Muchos problemas naturalmente en la pr´actica consisten en particionar un conjuntoUde objetos en una colecci´on de subconjuntos mutuamente separadosui deU, por ejemplo como:
∪ui=U yui∩uj =⊘, i6=j
Estos problemas tambi´en se pueden ver de otra forma. Aquellos en los que se busca agrupar los miembros de un conjuntoUen uno o m´asgruposde objetos, donde cada uno est´a exactamente en un grupo, por ejemplo, encontrar la agrupaci´on de esos objetos.
En la mayor´ıa de los problemas, no todas las agrupaciones son posibles: una soluci´on al problema debe cumplir con varias restricciones, las que pueden ser duras o suaves. Si la soluci´on no cumple con las restricciones se considera que es una soluci´on inv´alida. Esto es, usualmente un objeto no se puede agrupar en todos los posibles subconjuntos de los objetos restantes.
El objetivo de agrupar es optimizar una funci´on de costo o funci´on objetivo definida sobre el conjunto de todas las agrupaciones v´alidas. En la tabla 2.1 listamos algunos ejemplos de problemas de agrupaci´on muy conocidos en la literatura, con una restricci´on dura que la soluci´on debe cumplir y una funci´on objetivo para minimizar: Como puede verse, los problemas de agrupaci´on se caracterizan por tener una funci´on objetivo que depende de la composici´on de los grupos, esto es, donde un objeto que se considera aislado tiene poco o ning´un significado.
Muchos de los problemas de agrupaci´on, si no es que todos son el tipo NP-dif´ıciles (Garey and Johnson, 1979) lo que implica que cualquier algoritmo exacto conocido (por ejemplo, aquel que garantice encon-trar el ´optimo global) se ejecutar´a en un tiempo exponencial dependiendo del tama˜no del problema. Un algoritmo como este es entonces impr´actico en la mayor´ıa de los casos para problemas de tama˜no real.
2.7
El problema de empacado de objetos
Este problema se puede describir mejor en t´erminos de transportaci´on: dado un conjunto de cajas de diferentes tama˜nos, ¿c´omo podr´ıan empacarse todos en contenedores de tama˜no fijo de manera que se usara el menor n´umero de contenedores posibles?
Garey y Johnson en 1979 dieron la siguiente definici´on del problema de empacado de objetos. Dado un conjunto finito O de n´umeros (los tama˜nos de los objetos) y dos constantes B (el tama˜no del contenedor) yN (el n´umero de contenedores), es posible “empacar” todos los objetos en N con-tenedores, por ejemplo, ¿existe una partici´on del conjunto O en N o menos subconjuntos, tal que la suma de los elementos de cada conjunto no exceda B?. Este problema de decisi´on, que es NP-completo, naturalemente tiene asociado un problema de optimizaci´on NP-dif´ıcil. La figura 2.3 ilustra el problema: incluso cuando se tienen seis objetos, uno puede realizar el empacado de una manera
Tabla 2.1: Ejemplos de problemas de agrupaci´on.
Problema Restricci´on dura Funci´on Objetivo Empacado de Objetos Suma de los tama˜nos de los objetos en cualquier grupo< C N´umero de grupos Distribuci´on de trabajo N´umero de m´aquinas en cualquier grupo< C Tr´afico entre celdas
no ´optima, como lo muestra la figura en el “mal empacado”. Ese empacado no es el ´optimo, porque existe una manera de acomodar los objetos usando un menor n´umero de contenedores. La figura 2.3 muestra tambi´en la dificultad inherente del problema, cuando nos damos cuenta de que la soluci´on que estamos construyendo no es la ´optima, y esto es cuando intentamos asignar el objeto de tama˜no dos y requerimos un nuevo contenedor, no hay otra forma de mejorar la soluci´on excepto la de destruir la que actualmente tenemos. De hecho, no hay una manera f´acil de pasar de la mala soluci´on a la buena soluci´on.
[image:29.612.204.434.200.428.2]Dado que el problema se clasifica como un NP-dif´ıcil, no hay un algoritmo ´optimo conocido para
Figura 2.3: El problema de empacado de objetos.
resolver un problema de empacado de objetos en un tiempo polinomial (y muy probablemente nunca lo haya). Sin embargo, Garey y Johnson mencionan heur´ısticas simples que muestran no ser malas (pero tampoco las mejores) y que brindan soluciones de un factor bastante peque˜no por encima del n´umero ´optimo de contenedores. La idea es directa: teniendo un contenedor vac´ıo, tomar los objetos uno por uno y para cada uno de ellos buscar espacio en alg´un conenedor en el que quepa. Si hay alguno, colocar el objeto, si no, tomar un nuevo contenedor. Esta heur´ıstica se conoce como el “el primero que quepa” ofirst fit. La figura 2.4 ilustra la idea. Si se busca el contenedor m´as lleno y que tenga espacio suficiente, entonces la heur´ıstica se llama “el que mejor quepa” obest fit. Esta es una aparente mejor heur´ıstica, que puede, sin embargo, ser mejor (o peor) como “el primero que quepa”, pero puede ser m´as lenta.
Una modificaci´on simple, como el hecho de ordenar los objetos de acuerdo a su tama˜no, puede moejorar considerablemente el desempe˜no de “el primero que quepa”. Esta heur´ıstica se conoce como “el primero que quepa descendente” ofirst fit descending.
2.7.1
Funci´
on objetivo
contene-Figura 2.4: La heur´ıstica del primero que quepa.
dores usados para empacar todos los objetos. Esto es correcto desde el punto de vista estrictamente matem´atico, pero no es usual en la pr´actica, puesto que la funci´on objetivo debe guiarnos dentro de un paisaje extremadamente hostil del espacio de b´usqueda: un n´umero muy peque˜no de puntos ´
optimos en el espacio est´an perdidos en un mar de puntos donde esta significativa funci´on objetivo est´a solamente una unidad por arriba del ´optimo. El problema es que tal funci´on objetivo carece de cualquier capacidad de guiar al algoritmo en la b´usqueda, haciendo el problema algo como buscar una aguja en un pajar.
Debemos entonces encontrar una funci´on objetivo que asigne valores similares pero no iguales a soluciones similares, y que tenga el mismo objetivo que la funci´on arriba comentada. Afortunada-mente, esto es f´acil de hacer en el caso de los problemas de empacado de objetos. Simplemente usamos la premisa que afirma que si hay un desperdicio en el uso de la capacidad de cada contenedor, esto nos llevar´a a la necesidad de requerir m´as contenedores.
Con el fin de promover soluciones que contengan contenedores bien llenos, m´as que el redimien-to general de redimien-todos los contenedores junredimien-tos, debemos redimien-tomar en cuenta lo siguiente: si redimien-tomamos dos contenedores y revolvemos sus objetos entre ellos, la situaci´on en donde uno de los contenedores est´a casi lleno (dejando el otro casi vac´ıo) es mejor que cuando los dos contenedores est´an casi igualmente llenos. Esto es porque en el contenedor casi vac´ıo se acomodar´an m´as f´acilmente objetos adicionales, que de otra manera podr´ıan ser muy grandes para entrar en cualquiera de los dos contenedores.
De esta manera, una funci´on de costo muy usada para el problema de empacado de objetos, es la siguiente:
fBP P =
PN
i=1(Fi/C)k
N (2.1)
donde N es el n´umero de contenedores usados, Fi la suma de los tama˜nos de los objetos en el
con-tenedori, C es la capacidad del contenedor yk una constante que es mayor a 1. En otras palabras, la funci´on de costo a maximizar es el promedio de todos los contenedores, a la k-´esima potencia de la “eficiencia del contenedor” midiendo el aprovechamiento de la capacidad del contenedor. Se han experimentado con varios valores dek y se encontr´o quek= 2 brinda buenos resultados [4].
2.8
Resumen
[image:30.612.138.500.85.201.2]Cap´ıtulo 3
El problema del uso de veh´ıculos como parte del problema de
ruteo
En el presente cap´ıtulo se describe el problema de uso de veh´ıculos como un subproblema de ruteo. Despu´es se resumen los resultados de una peque˜na investigaci´on de campo realizada en algu-nas empresas dedicadas al transporte de mercanc´ıas. Posteriormente, se presenta una definici´on del problema particular como una simplificaci´on del problema general y que se pretende resolver en este trabajo. Se describe tambi´en, detalladamente, el algoritmo gen´etico de agrupaci´on. Una vez definido el problema se modela de tal forma que pueda ser resuelto por el algoritmo propuesto. Finalmente se explican los detalles de la implementaci´on del algoritmo gen´etico de agrupaci´on.
3.1
Definici´
on del problema
En una gran variedad de problemas de log´ıstica, frecuentemente las decisiones ´optimas respecto a uno o varios objetivos genera una reducci´on en la satisfacci´on de otros. Es decir nos encontramos ante la presencia de objetivos contrapuestos o en conflicto entre s´ı, y deseamos satisfacerlos todos simult´aneamente. As´ı, minimizar costos va en contraposici´on generalmente con aumentar los niveles de calidad de los servicios que ofrece la empresa.
Los problemas de log´ıstica, adem´as est´an caracterizados por tener un gran n´umero de variables de decisi´on en la b´usqueda de las soluciones ´optimas globales, asimismo debemos satisfacer una gran diversidad de condiciones restrictivas asociadas a las variables y a sus interrelaciones entre ellas, de muy diversa ´ındole, por ejemplo limitaciones en capacidades de almacenamiento de productos, limita-ciones presupuestarias, limitalimita-ciones de disponibilidad de veh´ıculos, contratos previamente establecidos, tiempos de entrega de mercanc´ıas, restricciones de seguridad de la carga, etc´etera.
Entre los principales problemas a los que una empresa transportista se enfrenta en la realizaci´on de sus actividades se encuentran:
• Veh´ıculos parados, es decir, no laborando por falta de contratos.
• Viajes vac´ıos. Los veh´ıculos han transportado mercanc´ıa para un empresa de una localidad a otra, pero en el regreso al destino no llevan carga consigo.
• Veh´ıculos asignados ´unicamente a viajes peri´odicos. Los veh´ıculos est´an asignados a rutas fijas por contratos que se tienen con las empresas y no se analiza la posibilidad de usar estos camiones en rutas intermedias o cercanas a las localidades en cuesti´on.
• Viajes redundantes. Por falta de log´ıstica, dos veh´ıculos realizan el mismo viaje con carga similar pero en direcciones opuestas.
• Rutas complicadas. Por falta de log´ıstica y satisfacci´on no ´optima de restricciones de entrega o exigencias del cliente, los veh´ıculos no siguen una ruta ´optima cuando realizan varias entregas o satisfacen distintos contratos en regiones contiguas.
En los problemas de transportaci´on t´ıpicos existen dos elementos constitutivos, la planeaci´on b´asica y la planeaci´on operativa. La planeaci´on b´asica consiste en decidir en cu´ales localidades o puntos de carga y descarga es conveniente establecer un centro de distribuci´on o un patio de maniobras. Tambi´en consiste en la distribuci´on eficiente de los veh´ıculos entre esos centros de distribuci´on; y la calendarizaci´on o programaci´on de rutas regulares o fijas que forman parte de una cierta demanda fija de transportaci´on. Esto puede compararse a un problema de transportaci´on de grandes distancias entre un conjunto de ciudades. Las primeras dos partes de la planeaci´on b´asica son elementos de alto nivel para decidir la configuraci´on de la empresa o red de servicios. Estas partes est´an afectadas directamente por el potencial econ´omico de la empresa y por las facilidades geogr´aficas del territorio en donde se prestan los servicios. Dado que el volumen de demanda puede llegar a ser grande, los costos de transportaci´on entre centros de distribuci´on pueden llegar a ser tambi´en muy grandes. Por lo tanto, una calendarizaci´on o programaci´on eficiente y una asignaci´on ´optima de los veh´ıculos es de suma importancia para reducir los costos. Es tambi´en de gran utilidad para los niveles de plaenaci´on m´as altos.
La planeaci´on operativa consiste en programar y asignar los veh´ıculos de acuerdo a la demanda de transportaci´on, intentando siempre minimizar los costos. La planeaci´on operativa se puede dividir en dos subproblemas [1]: el problema de ruteo de veh´ıculos y el problema del uso de los veh´ıculos. El problema de ruteo de veh´ıculos consiste en crear un conjunto de rutas tales que satisfagan la demanda de transportaci´on. El problema del uso de los veh´ıculos, consiste en asignar los veh´ıculos a las rutas creadas por el problema de ruteo.
Dentro de esta parte de la estructura del problema de ruteo de veh´ıculos, se encuentra el problema que atacamos en esta investigaci´on.
Las empresas necesitan transportar sus mercanc´ıas, algunas veces lo hacen programadamente, en otras, espor´adicamente. Diversos tipos de mercanc´ıas son transportados diariamente a trav´es de las carreteras de nuestro pa´ıs, desde simples cajas conteniendo producto terminado o materia prima, hasta contenedores enormes con m´aquinas especializadas o autotanques con calefacci´on para transportar l´ıpidos que vienen de pa´ıses lejanos. Cubriendo la Rep´ublica Mexicana, existen cientos de empresas transportistas y centenares de clientes con necesidades espec´ıficas.
Ciertas localidades son puntos claves en la distribuci´on y entrega de mercanc´ıas, ya sea por su posici´on geogr´afica estrat´egica o porque son centros industriales en donde se concentran buena cantidad de empresas interrelacionadas en su producci´on. Por ejemplo, aquellos centros en donde se ensamblan autom´oviles y donde las compa˜n´ıas que producen el equipamiento del autom´ovil se encuentran en el mismo parque industrial con el fin de eliminar inventarios. En la actualidad, mantener inventarios se est´a convirtiendo en una actividad del pasado. Las empresas no quieren invertir en grandes almacenes en donde pueda permanecer la materia prima para la producci´on, en cambio, quieren contar con un sistema de entrega de dichas materias primas en el momento exacto. La mayor´ıa de las empresas no est´an dispuestas a invertir en un departamento o en una unidad organizacional dedicada a esto. Por el contrario, conf´ıan esta actividad a alguna compa˜n´ıa transportista; algunas lo hacen m´as acertadamente a una compa˜n´ıa de servicios log´ısticos que hoy en d´ıa se est´an volviendo populares.
con sistemas avanzados de planeaci´on y optimizaci´on de recursos. Desafortunadamente, el precio de la tecnolog´ıa hace que esta necesidad se vaya satisfaciendo muy lentamente. As´ı lo demuestra el estudio que realizamos en tres renombradas empresas de transporte en la ciudad de Monterrey, en el estado de Nuevo Le´on en M´exico.
3.2
Investigaci´
on de campo
Con el objetivo de conocer con mayor profundidad algunos de los problemas a los que las empre-sas transportistas se enfrentan en el momento de hacer un uso efectivo de su flota de veh´ıculos, nos dimos a la tarea de platicar con los gerentes de tr´afico de tres empresas transportistas de renombre de la ciudad.
Las empresas no fueron escogidas tomando alg´un criterio en especial, excepto por que son cono-cidas en la regi´on. Adem´as por presentar facilidades para realizar las entrevistas. Platicamos con los gerentes de tr´afico de Transportes Montemayor, Transportes MOR y Transportes Potosinos. Entre sus principales caracter´ısticas est´an:
- De medianas a grandes en tama˜no y capacidad.
- Reconocidas como empresas s´olidas en el transporte de mercanc´ıa. - Con varios a˜nos de servicio en el mercado.
- Con s´olida infraestructura computacional, de comunicaciones, de recursos humanos y materiales. - Una de ellas con una certificaci´on ISO.
- Una de ellas de caracter familiar administrada ya completamente por la segunda generaci´on. - Una de ellas con presencia en todo El Baj´ıo.
Los resultados se resumen en los siguientes puntos.
3.2.1
Cotizaci´
on de servicios de transporte
Las empresas transportistas existen como resultado de la necesidad de que otra empresa requiera mover mercanc´ıas, ya sea entre sus propias plantas o entre sus proveedores o clientes. La mayor´ıa de las empresas transportistas est´a fuertemente ligada a un cliente al que le da un servicio completo; su cliente principal. Esto muchas veces trae como consecuencia la especializaci´on de la transportista hacia las necesidades del cliente. Por eso cuando una transportista cotiza un servicio de un cliente regular no toma en cuenta algunas de los factores que s´ı considerar´ıa si se tratara de un nuevo cliente o de un cliente que no es muy frecuente. En pocas palabras, la transportista brinda un trato preferencial a aquellos clientes grandes y/o a aquellos clientes regulares.
La mayor´ıa de las empresas considera en la cotizaci´on de servicio, los siguientes aspectos.
• el costo del viaje se calcula por kil´ometro recorrido.
• se especifican los puntos de carga en el tramo o ruta.
• se especifica la capacidad m´axima del cami´on.