PROGRAMA RSU PARA LA OPTIMIZACIÓN DE LA RECOGIDA DE RESIDUOS SÓLIDOS URBANOS Ambiente: agua, residuos del Río, L.M. (*) Moreno, J. (*) González, N. (*) Baeza, A. (*) Gil, J.M. (**) Lobato, J. (**) (*) Universidad de Extremadura (**) Consejería de Medio Ambiente, Urbanismo y Turismo. Junta de Extremadura Resumen: Hemos desarrollado un software que permite optimizar la recogida de residuos sólidos urbanos, trabajando el usuario en un entorno gráfico vectorial sobre el mapa de la población o comarca objeto de estudio. El programa elaborado incluye diferentes opciones que permiten realizar las siguientes tareas: 1) Ubicación de los contenedores sobre el mapa 2) Selección de las rutas óptimas de recogida 3) Obtención de los centros logísticos óptimos para la ubicación de las plantas de tratamiento de los residuos. 4) Optimización de los costes del proceso global de recogida 5) Configuración de los diferentes tipos de contenedores, vehículos de recogida, parámetros de costes, etc. A fin de evaluar las distintas alternativas a la recogida de residuos sólidos sobre una población de referencia, hemos efectuado diferentes test de funcionamiento del programa RSU, analizando las diferentes rutas óptimas halladas por el programa, en función de distintos tipos de contenedores utilizados. PROGRAMA RSU PARA LA OPTIMIZACIÓN DE LA RECOGIDA DE RESIDUOS SÓLIDOS URBANOS 1. Introducción. RSU es un paquete informático interactivo, diseñado para gestionar de forma integrada, todos los procesos relacionados con la recogida de residuos sólidos urbanos. El problema a resolver ha sido estudiado por diversos investigadores y no existe una solución exacta y única, ya que se trata de un NP-completo. En el campo de la investigación operativa se han presentado algunas aproximaciones entre las que podemos destacar los trabajos de Bodin (1983), Benavente (1983) y más recientemente Eiselt et al (1992). También son de destacar algunos sistemas computerizados desarrollados para la recolección de basuras en algunas ciudades como el presentado por Beltrami (1974) para New York, el de Male (1978) para Knoxville o más recientemente por Alvarez-Valdes (1993). Asimismo existen soluciones para otros problemas relacionados tales como el control de hielo en las autopistas y repartos postales (Bodin(1978,1979), Roy (1989) y Haslam (1991) ). En la presente comunicación presentamos, en la sección 2, las características generales del programa; en la tercera, se describe, con detalle los contenidos del mismo; en la cuarta, se da una metodología de uso del paquete; en la quinta se incluye algunos detalles sobre la implementación del mismo; en la sexta, se describen los algoritmos básicos para el cálculo de rutas óptimas; y en la última, se detallan una serie de experiencias computacionales realizadas a modo de test de funcionamiento del programa. 2. Características generales del programa. El programa RSU ha sido desarrollado, en un principio, para ser utilizado en la gestión de la recolección de basuras en ciudades con volúmenes de residuos de tipo intermedio correspondientes a poblaciones en torno a 50.000 habitantes aproximadamente. Básicamente está compuesto de una serie de módulos que corresponden a misiones que pueden ser tratadas de forma totalmente separada, ya que para el diseño de los algoritmos se ha tenido en cuenta que su ejecución iba a realizarse en un ordenador monoprocesador del tipo IBM PC o compatible (véase figura 1). Sus características generales pueden resumirse diciendo que es un paquete gráfico interactivo que posee las siguientes habilidades: - Facilidades gráficas que permiten al usuario introducir y/o modificar datos relativos a la referencia de la ciudad, datos censales y otros que conciernen a la geometría de las calles. - Siembra automática de contenedores (incluidas siembras para “zonas especiales”). - Construcción de rutas óptimas de recogida de residuos urbanos para las zonas elegidas por el usuario. - Elaboración de informes (pantalla/impresora/plotter) de todos los procesos asociados a la recogida. 3. Descripción del programa. El programa RSU está organizado en una serie de módulos independientes, cuya interrelación se expresa en el gráfico adjunto (figura 1): CONFIGURACIÓN •Módulo de siembra de contenedores •Módulo de gestión de almacenamiento externo (ficheros) •Módulo de generación de caminos Módulo de Interacción con el usuario •Módulo de cálculos económicos. •Módulo generador de informes figura 1. Esquema de bloques. 1. Módulo de interacción con el usuario: este módulo se instrumenta como un entorno gráfico interactivo compuesto de un sistema de menús que permiten al usuario un control total sobre el sistema por medio de un dispositivo apuntador. El entorno gráfico está dividido en cuatro zonas, tal como puede apreciarse en la figura 2: a) Barra de menús. b) Barra de herramientas. c) Área de edición. d) Área de Información. figura 2. Entorno gráfico de usuario. La Barra de menús, tal como se muestra en la parte superior de la figura 2, contiene los siguientes items: 1. Menú de archivos: gestiona el manejo de archivos necesarios para la ejecución de la aplicación: ficheros de referencia que contienen los planos digitalizados de las ciudades en formato DXF, ficheros de ciudades generados automáticamente en el proceso de edición de datos censales y almacenados en formato ASCII para facilitar la consulta externa, ficheros de mancomunidad que contienen los datos de posición y volumen de basura de cada una de las ciudades que forman una mancomunidad en formato ASCII y ficheros de plotter conteniendo la información gráfica de una ruta óptima generada por el sistema. 2. Configuración: este fichero ASCII contiene las variables globales de la aplicación: Ratio de producción (volumen de basura asociado a cada tipo de vivienda o edificio), Conversiones que permite al sistema transformar el volumen de basura en kilogramos, Contenedores que almacena los tipos de contenedores utilizados en el proceso de siembra y el coste de su mantenimiento, Vehículos, con la información del tipo de camión a utilizar en la recogida y Personal, que almacena los datos económicos relativos al personal encargado de la recogida. 3. Procesos: en este menú el usuario selecciona una de las operaciones globales a realizar en la ciudad: Siembra, proceso de reparto de los contenedores de acuerdo a una serie de premisas fijadas en la configuración, Siembra especial, permite realizar el proceso de siembra en “zonas especiales” de la ciudad con tamaños de contenedores distintos a los elegidos para el resto de la ciudad, Desiembra, que deshace el proceso anterior, Camino, opción que posibilita la búsqueda de una ruta óptima de recogida para una zona sembrada, Consistencia, que realiza un análisis de la ciudad para eliminar todo aquello que haga inconsistente el tráfico de la misma y Centro de gravedad que posibilita el cálculo del centro geométrico de un grupo de ciudades, teniendo en cuenta sus posiciones y sus volúmenes de basura. 4. Informes: este menú gestiona la salida impresa de informes de Siembra, Económico, de camino y de Centro de gravedad. 5. Ayudas : este menú contiene ayudas en línea para todas las operaciones que realiza el programa. 2. Módulo de siembra de contenedores: este módulo contiene las operaciones de Siembra, Desiembra y Siembra especial, mencionadas en el apartado anterior. 3. Módulo de generación de caminos: incluye los algoritmos de generación y depuración de rutas óptimas de recogida de residuos. 4. Módulo de cálculos económicos: de acuerdo con los datos incluidos en la configuración global del sistema, este módulo de encarga de realizar un estudio económico del proceso para una zona sembrada y con una ruta óptima generada. 5. Módulo generador de informes impresos: supone la implementación de los procesos descritos en el menú de informes. La Barra de herramientas situada en la parte inferior izquierda de la figura 2 incluye una serie de iconos correspondientes a diferentes operaciones gráficas de ayuda al usuario: Ampliación, Reducción, Desplazamiento, Mundo, Refresco de pantalla y Gestión de visualización de capas de información. El Área de edición comprende la parte central de la pantalla gráfica y en ella se van a realizar todos los procesos relacionados con la edición de información por parte del usuario sobre el plano de la ciudad de referencia. La Zona de información situada en la parte inferior derecha de la pantalla, que contiene información visual sobre la RAM disponible y utilizada en cualquier instante, el nº de elementos actuales (vértices, cruces y calles), el volumen de basura del grupo elegido y los nombres de la ciudad de la referencia y de la calle activa (sobre la que se está realizando el proceso de edición). Información adicional sobre otras habilidades del programa se detallan en Del Río (1997). 4. Método de trabajo. Para una óptima utilización del paquete recomendamos la siguiente metodología: 1. Una vez establecido el espacio de trabajo, esto es, la ciudad o zona elegida, debe realizarse la carga del fichero DXF que contenga la referencia gráfica sobre la cual el usuario va a interactuar. 2. A continuación dará comienzo una sesión de edición de datos, esto es, introducción de los valores censales correspondientes y la geometría (anchura) de las calles. Los datos introducidos y/o modificados serán almacenados en un fichero ASCII. 3. Cuando el proceso de edición esté completo se efectuará un análisis de consistencia, para verificar la no existencia de calles sin acceso u otro tipo de error cometido en el trabajo de edición. 4. Una vez completado el proceso de edición, debe realizarse la siembra de los contenedores de la ciudad, de acuerdo con los datos existentes en el fichero de configuración (distancia máxima de cualquier portal a un contenedor, tamaños de los contenedores y tipo de carga del vehículo de recogida). Si en la ciudad existieran zonas especiales de siembra, éstas deberán ser especificadas a la hora de la edición de los datos. Una vez realizada la siembra, podrá obtenerse un informe por pantalla o impresora de la misma 5. A continuación, comenzará el proceso de planificación, eligiendo la zona a recolectar (grupo). Este proceso es lógicamente el más lento en términos de tiempo de CPU. 6. Por último, el usuario podrá obtener cualquier salida impresa (informe) sobre el grupo elegido y podrá asimismo exportar al trazador o a un fichero el informe sobre la ruta óptima calculada. 5. Notas sobre la implementación. a) Software. La primera cuestión a tener en cuenta a la hora de implementar una aplicación informática, es sin lugar a dudas la elección de la plataforma de desarrollo que más se ajuste a las tareas y problemas a resolver. Para ordenadores personales tipo PC, existen varios sistemas operativos a tener en cuenta, básicamente: MS-DOS, MS-WINDOWS y LINUX. Nos decantamos por la utilización de un compilador bajo MS-DOS, obviando incluso la potencia gráfica de MSWINDOWS, al tener la certeza de obtener un código más compacto, debido sobre todo a la no presencia de multitarea, usando un compilador DOS. Decidimos utilizar el compilador Turbo Pascal 7.0 (Borland Int.) para los algoritmos básicos y Borland C++ 4.0 (Borland Int.) para las tareas de interacción con el usuario y emisión de informes. La siguiente cuestión a considerar es la técnica de programación, la o las estructuras de datos y los algoritmos que componen el paquete. En cuanto a la técnica de programación, nos decantamos por la utilización de la llamada Object Oriented Programming (OOP), una técnica novedosa de programar basada en los conceptos de herencia y jerarquía de objetos. El ahorro de tiempo y esfuerzos a la hora de implementar operaciones repetitivas justifica por sí solo el uso de esta técnica. El primer nivel lo constituyen los nodos, unidades básicas de información que incluyen cruces, portales, contenedores e inflexiones (cambios de dirección o anchura) de las calles; de cada uno de los nodos se almacena su posición en la calle, el valor de la anchura si se trata de una inflexión y el volumen de basura para los nodos contenedores. En términos de herencia, el siguiente nivel lo constituyen las calles, formadas por un grupo de nodos y un nombre. Por último, aparece la ciudad como entidad superior, formada por un conjunto de calles y un nombre. Asimismo y de forma adicional a efectos de cálculo de un centro de gravedad, se consideró un nivel extra denominado mancomunidad, que agrupa bajo un nombre a un conjunto de ciudades. b) Hardware. Tal como enunciamos en un apartado anterior, este paquete se ejecuta correctamente en cualquier computador PC con procesador 80286 o superior, siempre que esté provisto de un adaptador gráfico compatible con la norma VESA y un dispositivo apuntador cualquiera. La cantidad de memoria RAM y de disco duro necesario depende exclusivamente del tamaño y número de nodos de la ciudad objeto de estudio, aunque es recomendable una RAM mínima de 16 Mbytes y un disco duro con capacidad de 500 Mbytes. Adicionalmente se requiere cualquier impresora gráfica y un plotter compatible con el lenguaje HPGL para las salidas de informes impresos. 6. Algoritmos básicos para el cálculo de rutas óptimas. Inicialmente partimos de la premisa siguiente: una ruta óptima es aquella formada por encadenamiento de “subrutas óptimas”, con lo que el problema global puede ser resuelto teniendo en cuenta dos detalles: encontrar el orden más adecuado para la recogida y un método capaz de calcular el camino más corto que une dos contenedores que deben ser recogidos uno a continuación del otro. Considerando las dos premisas por separado no podríamos resolver el problema satisfactoriamente; sin embargo, si modificamos la primera en función de la segunda, y generamos todas las rutas que el tráfico permita podemos llegar a resultados aceptables. Para ilustrar esta idea imaginemos una pequeña zona compuesta de tres contenedores (C1, C2 y C3) y un punto de salida S. En la figura 3 puede verse este esquema, indicándose las hipotéticas distancias establecidas entre los contenedores (4-6-12), considerándose como una constante la distancia entre el punto de salida y cualquiera de los contenedores. Si pudiéramos generar todas las posibles rutas, lo cual resulta inviable en un caso práctico real, nos encontraríamos con un total de seis caminos de los cuales tres deben ser eliminados por ser incompatibles con las direcciones de tráfico propuestas, tal como se indica en la figura 3. 12 C1 S-C1-C3-C2 4 C2 S 6 C3 Imposible. S-C1-C2-C3 Factible. S-C2-C1-C3 Imposble S-C2-C3-C1 Factible S-C3-C1-C2 Factible S-C3-C2-C1 Imposible figura 3. Ejemplo de recogida. Un proceso de cálculo simple nos indicaría sin lugar a dudas que la ruta óptima es aquella que comienza en C1, pasando a continuación por C2 y por último C3. Veamos el comportamiento del algoritmo RSU. Dado que no podemos saber a priori cual sería el orden inicial que los tres nodos poseerían en la estructura, supongamos un orden cualquiera como C3-C2-C1: a) El algoritmo básico calcularía el camino más corto para ir de C3 a C2 y se encontraría con la ruta C3-C1-C2. A continuación le encadenaría el camino C2-C1, con lo que el camino global sería C3-C1-C2-C1. b) Repetiría el proceso anterior considerando como elemento inicial C2, esto es, calcularía la ruta para el orden C2-C1-C3 y obtendría el camino C2-C3-C1-C3. c) De forma análoga calcularía el camino para la tercera posibilidad C1-C3-C2 y obtendría la ruta C1-C2-C3-C2. d) El proceso de eliminación de redundancias nos daría tres posibles candidatos: C3-C1-C2 :12+4. C2-C3-C1:.6+12. C1-C2-C3:.4+6. f) El proceso final de cálculo nos devolvería la ruta C1-C2-C3 como la óptima dado que es en la que se recorre menor distancia, lo que concuerda exactamente con el resultado previsto. 7. Experiencias computacionales. Para validar la eficacia del paquete se han diseñado una serie de experimentos de recogida simulando los datos censales y geográficos de una ciudad real de aproximadamente 50.000 habitantes. Se partió de un plano digitalizado de la misma, se eligió una zona de ensayo y se introdujeron datos teóricos que representan una elevada concentración de residuos sólidos en la zona. Para efectuar los test se eligieron diversas subzonas y se asumió que el coste es proporcional a la distancia recorrida para recorrer todos los contenedores incluidos en la misma. a) Test de consistencia de cambio de orden: . Con esta prueba intentamos verificar la influencia que el orden de edición de los datos de la ciudad puede poseer en el tiempo de cálculo empleado por el programa en encontrar una determinada ruta óptima. Así, tomando como referencia una zona conteniendo 47 calles y seleccionando 4 no conectadas y muy alejadas entre sí. Se introdujeron los datos de dichas calles en los siguientes órdenes: 1) 1º A- 2º B- 3º C y 4º D: 2) 1º B- 2º A- 3º C y 4º D. 3) 1º C- 2º A- 3º B y 4º D: 4) 1º D- 2º A- 3º B y 4º C: Los consumos de tiempo de cálculo, normalizados al menor (correspondiente al orden 1) son respectivamente: 1) 1,00; 2) 1,06; 3) 1,30; 4) 1,17 Las diferencias observadas se deben a dos factores: el tiempo consumido en conectar entre sí las calles y el hecho de que el algoritmo RSU no genera el mismo número de rutas en todos los casos. b) Test de errores de salida de zona: prácticamente todas las rutas generadas por el programa arrojan resultados que incluyen “salidas” de la zona elegida, debidas sobre todo a la regulación del tráfico. A modo de ejemplo y considerando las cuatro experiencias anteriores los porcentajes de distancias recorridas fuera de la zona elegida son los siguientes: 1) 10,2%.; 2) 8,3%.; 3) 9,9%.;4) 6,4%. Podemos observar que todos los resultados se encuentran en una banda de pérdida en torno al 610%. Es significativo el hecho de que en algún caso (ruta 1) las salidas de la zona elegida contribuyen a facilitar la solución óptima, tal como se desprende del mayor porcentaje de pérdida correspondiente a la ruta más rápidamente encontrada . c) Test de influencia del volumen de los contenedores: Para el diseño de esta prueba se eligió una subzona conteniendo un volumen de residuos aproximadamente igual al de un vehículo y se realizaron siembras en la misma con tres tamaños distintos de contenedores. En la tabla 1 se ofrecen los resultados obtenidos. En ésta, se indican los volúmenes de cada tipo de contenedor seleccionado, su número total correspondiente a la siembra realizada, el tiempo de CPU consumido en encontrar la ruta óptima, el coste estimado y la distancia recorrida en cada una de las rutas óptimas obtenidas. Como puede verse, estos últimos tres parámetros se ofrecen normalizados al de menor valor. Vol. cont. Nº Cont. T. norm CPU Coste Distancia 1000 69 1,00 1,00 1,00 800 83 1,06 1,08 1,05 320 274 1,22 1,33 1,05 Tabla 1. Test de influencia del tamaño del contenedor. Como puede observarse en la tabla, no se aprecia una diferencia significativa entre las distancias recorridas en cada caso, lo cual indica que las rutas seguidas son prácticamente las mismas. Sin embargo, como es lógico,. existe una relación inversa entre el tamaño del contenedor y el coste estimado que supone su recogida, lo cual es consecuencia de la diferente densidad de contenedores obtenida en cada siembra, y por tanto del mayor tiempo empleado en su descarga. 8. Bibliografía. -Alvarez-Valdés, R., Benavent, E., Campos, V., Corberán, A., Mota, E., Tamarit, J.M. y Valls, V.(1993) ARC. A Computerized System for Urban Garbage Collection.Top. Vol 1. nº 1, 1993, pp 89-105. -Bodin , L. D., Golden B. L., Assad A.A., y Ball, M.o.(1983). Routing and Scheduling of vehicles and Crews. The State of the Art. Comput. Oper. Res., nº 10, 1983, pp 63-211. -R., Benavent, E., Campos, V., Corberán, A., Mota (1983). Problemas de rutas por arcos. QUESTIO,nº 7, pp 479-490. -Eiselt H. A., Gendreau, M. y Laporte G. (1992). Arc Routing: Problems, Applications and Algorithm. Technical Report CRT-872. Centre de Recherche sur les Transports. -Male, J. W. y Liebman J.C.(1978). Districting and Routing for Solid Waste Collection. J. of the Environment Engineering Division, 104, EEI. -Bodin L. D. y Kursh S.J. (1978). A Computer-Assisted System for the Routing and Scheduling of street Sweepers. Oper. Res., nº 26, pp 525-537. -Bodin L. D. y Kursh S.J. (1978). A Deatailed Description of a Computer System for the Routing and Scheduling of street Sweepers. Comp. Oper. Res. nº 6, pp 181-198. -Roy, S., y Rosseau J.M.(1989). The capacited Canadian Postman Problem. INFOR. nº 27, pp 58-73. -Haslam E. y Wright J.R. (1991) ). Applications of Routing Technologies to Rural Snow and Ice Control. Transportation Research Record. nº 1304, pp 202-211. -Del Rio Pérez, L.M., Moreno del Pozo, J. y Baeza Espasa, A.. Manual de Referencia del programa RSU. (1997)