• No se han encontrado resultados

Estudio del desempeño de una heurística en la solución del problema integrado de construcción de tablas de tiempo y programación de personal MCTCSP

N/A
N/A
Protected

Academic year: 2020

Share "Estudio del desempeño de una heurística en la solución del problema integrado de construcción de tablas de tiempo y programación de personal MCTCSP"

Copied!
12
0
0

Texto completo

(1)

ESTUDIO DEL DESEMPEÑO DE UNA HEURÍSTICA EN LA SOLUCIÓN

DEL PROBLEMA INTEGRADO DE CONSTRUCCIÓN DE TABLAS DE

TIEMPO Y PROGRAMACIÓN DE PERSONAL MCTCSP

Alejandro Kuratomi Hernández (a.kuratomi22), 200724719

Resumen ---En (Barrera, Velasco, & Amaya, 2012) se formula un problema de programación de personal con actividades múltiples (MCTCSP) en el cual el objetivo es reducir el número de rutas necesarias para cubrir una cantidad de nodos dada. Los autores proponen un método híbrido para solucionar a optimalidad diferentes tamaños de instancias generados aleatoriamente. El proceso de solución incluye el uso de una heurística para encontrar y mejorar una solución inicial. Esta solución inicial no es capaz de alcanzar optimalidad para las instancias más grandes, por lo cual se recurrió a una fase adicional de Branch & Bound. Se plantearon varias hipótesis sobre la manera en la que se podía modificar el método heurístico para que alcanzara, sin necesidad del Branch & Bound, el punto óptimo. Este documento discute y prueba una de las hipótesis, la cual corresponde en eliminar una de las restricciones del método heurístico diseñado previamente.

Palabras clave: Redes, optimización heurística, ruteo, programación de personal, inserción factible, inserción infactible.

INTRODUCCIÓN

El Multi-Activity Combined Timeatabling and Crew Scheduling Problem (MCTCSP) consiste en programar un equipo de personas especializadas para que cumplan la demanda de un servicio por parte de un cliente, en un tiempo y un espacio particular (Barrera, Velasco, & Amaya, 2012). La magnitud de los escenarios analizados ascendió hasta 300 combinaciones posibles de clientes y servicios, obteniendo soluciones óptimas a través de un método híbrido con tiempos computacionales de 10928 segundos.

El proceso de solución híbrido al problema MCTCSP propuesto por (Barrera, Velasco, & Amaya, 2012) consistió en su primera etapa de un método heurístico. Este método genera un conjunto de rutas factibles usando exploración a profundidad en un grafo. Cada ruta, es disminuida en longitud mediante el retiro e inserción de sus propios nodos, uno a uno, en otras rutas, hasta el punto en que la ruta desaparece. Finalmente, el procedimiento se lleva a cabo ruta a ruta, hasta que se alcanza un número menor de rutas para visitar todos los nodos. Este método tiene una restricción, que puede limitar la calidad de las soluciones. Esto se evidenció en la comparación de las soluciones heurísticas, con las soluciones arrojadas por el modelo de programación lineal. Dicha restricción consiste en la posibilidad de retirar e insertar únicamente un nodo a la vez de cada ruta. De esta forma, y con base a lo discutido en (Barrera, Velasco, & Amaya, 2012), se dejó planteada la hipótesis de que la no optimalidad podría solucionarse eliminando la restricción mencionada, permitiendo el retiro e inserción de una cantidad n de nodos definida previamente.

El objetivo del presente estudio es evaluar la hipótesis, mediante el diseño y aplicación de un algoritmo de optimización heurística que minimice la cantidad de rutas obtenidas mediante la posibilidad de retiro e inserción de múltiples nodos (no sólo de uno) de una ruta perteneciente a un conjunto solución de rutas factibles. El documento está dividido en 5 partes: La primera es el planteamiento del problema, seguido de la metodología utilizada en la cual se describe el programa usado y la modificación a la heurística inicial. Posteriormente vienen los resultados obtenidos a través de los programas descritos, en donde se evalúa comparativamente el desempeño del código con respecto a la solución de (Barrera, Velasco, & Amaya, 2012), y finalmente las conclusiones, seguidas de los anexos en donde se observa en más detalle la programación realizada.

(2)

PLANTEAMIENTO DEL PROBLEMA

El problema evaluado por (Barrera, Velasco, & Amaya, 2012) estaba basado en un proyecto en el cual se cuenta con 36 equipos de profesionales, con un total de 599 personas capacitadas en la prestación de un conjunto de servicios particular. El programa cuenta con una cobertura creciente de 688 sedes o clientes. A través de algunos estudios, se demostró que la manera en que se programaba el personal durante un año lectivo no era la mejor, y que, un mejoramiento en las políticas de uso de los recursos disponibles, podía optimizar la asignación de recursos y mejorar la cobertura del programa (Barrera, Velasco, & Amaya, 2012). De esta forma, dicho mejoramiento consiste en el modelaje del problema como un problema combinado entre TTP y un CSP, puesto que se requiere que ocurra una serie de eventos en el tiempo, y una programación de personal para que asistan en cada una de esas ocurrencias. El diagrama ilustrado en la figura 1 a continuación esquematiza la situación.

Figura 1. Esquema del problema planteado por (Barrera, Velasco, & Amaya, 2012). Para cada nodo: La letra (A o B) significa el cliente; el número (1 ó 2) representa el servicio solicitado.

Teniendo en cuenta la figura 1, el problema se define de la siguiente manera: Se tiene un conjunto de clientes que pertenecen al conjunto C (En este caso los clientes A y B), los cuales solicitan un servicio específico de un conjunto de servicios S (En este caso los servicios 1 y 2). Cada cliente, demanda dicho servicio en un tiempo y lugar particular. Dicho tiempo está definido por un Día D (eje x), y un Hora H (eje y).

La combinación del cliente c C, el servicio s S, el día d D, y la hora h H, conforman un

nodo. N representa el conjunto de nodos. En la figura 1, sin contar la fuente y el sumidero, se observan 9 nodos. Visitar un nodo significa suplir la demanda del servicio s del cliente c. Las flechas uniendo los nodos representan las posibles rutas que se pueden tomar para satisfacer la demanda de los nodos. Nótese que un cliente puede solicitar el mismo servicio en diferentes fechas, es decir, se puede satisfacer su demanda de dicho servicio en cualquiera de las fechas que indica.

Para poder viajar de un nodo i a un nodo j cualesquiera, es necesario que exista el arco A(i,j) que une ambos. A(i,j) toma el valor de 1 si es posible viajar de i a j, y cero de lo contrario. Un nodo puede ser visitado desde otro nodo siempre y cuando el último sea más temprano temporalmente. Cada servicio tiene una duración definida como du. La visita al nodo j desde el nodo i debe cumplir la ecuación 1 a continuación:

(3)

Ecuación 1. Restricción de tiempo de ruteo de nodos.

El que un nodo se encuentre temporalmente más temprano que otro, o lo que es lo mismo, que sea a una hora y/o día antes que otro, no significa que se pueda viajar del primero al último. El arco tiene en cuenta otros factores como la ubicación geográfica.

Una vez se encuentran definidos los arcos que unen los nodos, se trazan las rutas iniciales. A partir del conjunto de rutas iniciales, se implementa el método heurístico propuesto por (Barrera, Velasco, & Amaya, 2012). Este método, consiste en retirar uno de los nodos de una ruta e insertarlo en otra ruta, de tal manera que la primera ruta se reduzca en tamaño, eventualmente, llegando a la eliminación de la misma, quitando un nodo cada vez. Este método no alcanza optimalidad en la mayoría de escenarios por lo que se debe combinar con Branch & Bound para encontrar el punto óptimo.

En (Nagata & Bräysy, 2009) se implementa un algoritmo para la solución de un problema de rutas vehiculares con ventanas de tiempo (Vehicle Routing Problem with Time Windows, VRPTW), en el cual se retiran e insertan nodos múltiples partiendo de un conjunto de rutas de nodos inicial, hasta que se reduce el número de rutas, encontrando mejoras en la solución para varios escenarios. Al margen de las diferencias entre los problemas de investigación, la diferencia entre este último método, y el implementado por (Barrera, Velasco, & Amaya, 2012) radica en la posibilidad de retirar e insertar múltiples nodos a la vez. De esta manera, este trabajo pretende responder a la pregunta ¿es posible mejorar la calidad de las soluciones obtenidas por la heurística mediante la eliminación de la restricción en el número de nodos?.

METODOLOGÍA

Se tiene un conjunto de nodos a visitar, de los cuales se obtienen, a través del método de Vecino Más Cercano, rutas iniciales que son compactadas a través del método de inserciones infactibles. El objetivo principal es reducir al mínimo la cantidad de rutas para así reducir la cantidad de personas que se piensan programar, optimizando el uso de recursos.

Las inserciones infactibles consisten en tomar nodos de una ruta e insertarlos en sitios posibles entre nodos de otras rutas, de tal manera que se reduzca el tamaño de la ruta inicial, hasta eliminarla eventualmente. Éstas permiten que, al retirar un nodo de una ruta, exista durante un lapso de tiempo infactibilidad en la solución. La factibilidad se recupera al movilizar un nodo (el que causa la infactibildad) hacia otro punto en otra ruta donde se vuelva factible. Si sólo se permite movilizar un nodo infactible se tiene la inserción infactible uninodal; si se permite movilizar más de un nodo infactible, se tiene la inserción infactible multinodal.

Es importante aclarar que siempre existirán 3 nodos para una misma combinación de cliente y servicio, es decir, habrán 3 nodos cuyo cliente y servicio son el mismo, pero estarán ubicados en diferentes días u horas, lo que indica que para satisfacer la demanda de un servicio por parte de un cliente dados, se puede visitar cualquiera de los 3 nodos. De esta manera, cuando se satisface la demanda de algún nodo, en realidad se está cumpliendo la demanda de un trio de nodos. Esto se debe tener en cuenta para los algoritmos: Cuando se cumple la demanda de un nodo, se pueden eliminar 3 nodos del conjunto N a asignar.

Se implementó un algoritmo para generar la solución inicial a través del método del Vecino Más Cercano. Este método utiliza el conjunto de arcos A(i,j) para obtener la solución, y tiene en cuenta que a mayor i, ó mayor j, más tardío es el nodo. Defínase el conjunto actual de nodos por asignar como NF, que al inicio cumplirá: NF = N, y el conjunto de nodos posicionados en rutas como NR, que al inicio cumplirá NR =

0. De igual manera, defínase una ruta creada como Rj.

En las líneas 1 y 3 se definen los estados iniciales de los iteradores de la creación de rutas y de revisión de nodos respectivamente. En la línea 4, inicia el ciclo que recorre el conjunto NF en su totalidad, revisando nodo a nodo. Si se cumple que existe el arco entre el Initial Node (que al principio de la ruta será el nodo cero siempre) y el nodo evaluado dentro de NF Las líneas 6 a 8, retiran el trio de nodos del conjunto de NF, asigna

(4)

Initial Node como el último nodo insertado, desde el cual revisará el próximo arco posible en NF. Después de recorrer todo NF, la línea 12 inicializa una nueva ruta Rj. El código no se detendrá hasta que NF tenga longitud cero, es decir, todos los nodos hayan sido asignados, como se ve en la línea 2 de inicialización del ciclo. De ahora en adelante, se entenderá que el movimiento de nodos en el conjunto de nodos por asignar, se hace de a trios (los 3 nodos que tienen la misma combinación de cliente y servicio).

1.

2. 3. 4.

5. 6. 7.

8.

9.

10.

11.

12.

13.

14. 15.

Algoritmo 1. Método del vecino más cercano.

Finalmente, una vez está la solución inicial, se procede a implementar el algoritmo 2 de la inserción infactible. Defínase el conjunto de rutas factibles iniciales como R, indexada a j, y k; Rj,k, indica el nodo k, de

la ruta j. Llámese asimismo a la función V(AN,PN, NN) a la función que arroja VERDADERO (TRUE) si el

nodo AN se puede insertar entre los nodos PN y NN, FALSO (FALSE) de lo contrario. Defínase de igual forma el conjunto de nodos infactibles a insertar, como UN, indexado a h.

En el algoritmo 2, la línea 1 inicializa un contador que sirve para verificar si la cantidad de nodos infactibles a insertar es igual a la longitud de UN. En el caso de que efectivamente sea igual, la inserción del nodo en cuestión se puede realizar, pues los nodos infactibles ya fueron movidos a otras rutas.

La línea 2 es un parámetro ingresado por el usuario del programa, y define la cantidad de nodos infactibles que se permiten durante la implementación del código. Para explicar más en detalle la aplicación de este parámetro, obsérvese la figura 2, en donde el nodo 16 está siendo insertado en la ruta abajo.

Figura 2. Inserción del nodo 16 en la ruta inferior.

La ruta ilustrada en la figura 2 está implementada con la reestructuración de datos. De esta manera, es intuitivo pensar que el nodo 16 únicamente podrá ser ubicado en la posición entre el nodo 12 y el nodo 18, puesto que colocarlos antes o después implicaría una violación del flujo temporal de la ruta.

Se asume por ahora que el parámetro T es igual a 1, caso en el que estaríamos evaluando el programa propuesto por (Barrera, Velasco, & Amaya, 2012) dado que permitimos únicamente el retiro e inserción de 1

(5)

nodo. Asumamos adicionalmente que el arco del nodo 12 al 16 existe, A(12,16) = 1, pero el arco 16 a 18 no,

A(16,18) = 0; de igual manera el arco 16 a 19 existe, A(16,19) = 1. De esta forma, la solución arrojada por el programa sería la ilustrada en la figura 3. Obsérvese que la inserción del nodo 16 es posible retirando el nodo 18, sin embargo, es otra parte del código la que se encarga de insertar 18 en otra ruta.

Ahora, se asumen las mismas condiciones previas para la situación ilustrada en la figura 2, pero el arco 16 a 19 no existe, A(16,19) = 0, y el arco 16 a 21 existe, A(16,21) = 1. Es evidente que la solución debería ser retirar el nodo 18 y el nodo 19 para permitir que el nodo 16 entre, conectando la ruta entre el nodo 12 y el nodo 21, pero, dado que aún asumimos que el parámetro T es igual a 1, el programa no podrá retirar los dos nodos necesarios para insertar 16, y deberá saltar a una siguiente ruta donde buscar la inserción de este nodo. Si el parámetro T fuese 2 o más, los dos nodos, 18 y 19, habrían podido ser retirados.

Figura 3. Retiro del nodo 18 de la ruta, e inserción del nodo 16, para T = 1.

Así, el parámetro T le permite al algoritmo retirar hasta la cantidad de nodos que específica, pudiendo ser una cantidad menor o igual a ésta, pero nunca mayor. Continuando con el algoritmo 2, el conjunto UN se inicializa en ceros en la línea 3. Las líneas 4 y 5 definen la ruta a la que se apunta; dentro de esa ruta, se apunta a cada nodo en las líneas 6 y 7. Una vez se tiene definida una ruta actual, y un nodo actual, se inicia otro apuntador que busca nuevamente entre las rutas que sean diferentes a la ruta actual, en las líneas 8 y 9. En las líneas 10 a 13 se definen los nodos previos y posteriores al nodo actual que se va a insertar. El nodo posterior, definido como NN, se define a través de un ciclo que itera tomando como valor máximo el parámetro T; esto impone la restricción descrita previamente, en la que se revisará si se puede insertar hasta T

nodos posteriores al nodo que se está mirando como nodo previo, PN. La línea 14 revisa si el nodo actual se puede insertar directamente entre los nodos PN y NN de la ruta de inserción; esta función se describe posteriormente como el algoritmo 3. Si es verdadero, entonces se llama la inserción factible, función definida en el algoritmo 4, sino, entonces almacena el nodo NN en el conjunto de nodos UN, como nodo infactible a sacar.

Si al recorrer los nodos siguientes, NN, hasta alcanzar el límite T, hay nodos infactibles para insertar (UN diferente de cero) entonces se toma estos nodos como nodos para insertar en otros sitios. De las líneas 21 a 30 se hace prácticamente lo mismo que de las líneas 6 a 16, pero en este caso, se intenta insertar en otras rutas los nodos del conjunto UN, que conforman los infactibles. Las líneas 31 a 35 verifican si todos los nodos del conjunto de infactibles fueron insertados; si esto sucede, entonces se puede insertar el nodo actual inicial.

(6)

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

(7)

El algoritmo 3 simplemente verifica que los arcos existan.

1.

2. 3. 4. 5.

6.

7. 8.

Algoritmo 3. Método de verificación .

El código del algoritmo 4 verifica que se pueda realizar la inserción entre dos nodos consecutivos del nodo N en la ruta R. Si el nodo se puede insertar, los demás nodos siguientes se corren una posición después de agregarlo, como se ve en la línea 9.

1.

2. 3.

4. 5.

6.

7.

8.

9.

10.

11. 12.

Algoritmo 4. Método de inserción .

Para más detalle de los códigos utilizados, puede referirse a la sección de Anexos, donde se encuentran todos los códigos usados, tanto para la inserción infactible multinodal, como para la reestructuración de la base de datos de instancias y escenarios. Los resultados obtenidos se ilustran en la sección de resultados a continuación

RESULTADOS

Convención Mejora

Iguala

Empeora

(8)

Se tiene la solución obtenida para las rutas finales de cada escenario para cada instancia:

ESCENARIO (Routes)

1 2 3 4 5 6 7 8 9 10

INSTANCIA

35 5 5 5 4 5 5 4 4 5 4

40 5 5 5 5 6 6 6 5 5 5

45 5 6 6 6 6 6 6 6 6 6

50 6 7 7 6 6 6 6 7 6 6

55 7 7 7 7 7 6 7 7 7 7

60 7 8 7 7 7 8 8 7 8 8

65 8 7 8 8 8 8 7 8 8 8

70 9 8 8 8 8 9 9 8 8 8

75 8 9 9 9 9 9 9 9 9 9

80 9 10 10 10 9 10 9 9 9 10 85 10 10 10 10 10 10 10 10 9 10 90 10 10 10 11 10 11 10 10 10 10

200 9 9 9 9 9 9 9 9 9 9

250 9 9 9 9 9 8 9 9 9 9

300 9 9 9 9 9

Tabla 2. Resultados de rutas obtenidas después de inserción infactible discretizados con respecto a solución de (Barrera, Velasco, & Amaya, 2012)

La tabla 2 se resume a continuación:

ESTADÍSTICAS DE RUTAS FINALES

COLOR CASOS PORCENTAJE

37 25.5%

104 71.7%

4 2.8%

TOTAL 145 100%

Tabla 3. Resumen de la tabla 2 de resultados finales de rutas discretizados con respecto a solución anterior.

A partir de las tablas 2 y 3 se puede observar que el código diseñado logra obtener una mejora con respecto a las soluciones presentadas por (Barrera, Velasco, & Amaya, 2012) específicamente en un 25.5% de los casos analizados. Obsérvese también que en casi un 3% de los casos se observa un empeoramiento de la solución. Esto indica que en algunos escenarios, la eyección e inserción de múltiples nodos no mejoró el resultado de rutas.

En cuanto al alcance de optimalidad, se presenta la siguiente convención:

CONVENCIÓN OPTIMAL NO OPTIMAL

Tabla 4. Convención para designar si la solución alcanzó optimalidad o no.

Los resultados de las rutas se observan en la tabla 5. Posteriormente, y a manera de resumen, en la tabla 6 se presentan las estadísticas generales en cuanto a optimalidad. En la tabla 7 se presenta el alcance de optimalidad obtenido reportado por (Barrera, Velasco, & Amaya, 2012).

(9)

ESCENARIO (Routes)

1 2 3 4 5 6 7 8 9 10

INSTANCIA

35 5 5 5 4 5 5 4 4 5 4

40 5 5 5 5 6 6 6 5 5 5

45 5 6 6 6 6 6 6 6 6 6

50 6 7 7 6 6 6 6 7 6 6

55 7 7 7 7 7 6 7 7 7 7

60 7 8 7 7 7 8 8 7 8 8

65 8 7 8 8 8 8 7 8 8 8

70 9 8 8 8 8 9 9 8 8 8

75 8 9 9 9 9 9 9 9 9 9

80 9 10 10 10 9 10 9 9 9 10 85 10 10 10 10 10 10 10 10 9 10 90 10 10 10 11 10 11 10 10 10 10

200 9 9 9 9 9 9 9 9 9 9

250 9 9 9 9 9 8 9 9 9 9

300 9 9 9 9 9

Tabla 5. Resultados de rutas obtenidas después de inserción infactible discretizados con respecto a alcance de optimalidad.

ESTADÍSTICAS DE RUTAS FINALES (Kuratomi, Alejandro)

COLOR CASOS PORCENTAJE

55 37.9%

90 62.1%

TOTAL 145 100%

Tabla 6. Resumen de la tabla 5 de resultados finales de rutas discretizados por optimalidad.

ESTADÍSTICAS DE RUTAS FINALES (Barrera, David)

COLOR CASOS PORCENTAJE

44 30.3%

101 69.7%

TOTAL 145 100%

Tabla 7. Resumen de los resultados reportados por (Barrera, Velasco, & Amaya, 2012).

A partir de las tablas 5, 6 y 7, se observa que los resultados actuales mejoran en un 7.6% la cantidad de escenarios analizados con solución óptima únicamente utilizando la heurística.

Adicionalmente, se quiso evaluar los tiempos computacionales del código presentado, y compararlo con el tiempo computacional de las soluciones obtenidas por (Barrera, Velasco, & Amaya, 2012). Los tiempos computacionales del actual código fueron, en un 100% de los casos, superiores a los de (Barrera, Velasco, & Amaya, 2012). Es posible que esto se deba a eficiencia del código, pues ambos programas se corrieron utilizando la misma máquina (Intel Xeron 5120 processor and 4 GB of Ram). Es importante aclarar que el objetivo no era hacer una solución menos exigente computacionalmente. Sin embargo, los tiempos computacionales de la solución matemática, la cual arrojaba la solución óptima, sí son comparables con los obtenidos aquí. En la tabla 8 se presenta esta información; la tabla 9 es un resumen de la misma. Las celdas demarcadas con color verde significan una disminución en el tiempo computacional de la heurística con respecto a las corridas del modelo matemático; las rojas indican un aumento del mismo.

(10)

ESCENARIO (Time [s])

1 2 3 4 5 6 7 8 9 10

INSTANCIA

35 436 256 111 105 258 158 131 141 152 145

40 176 254 441 163 246 220 764 539 589 406

45 208 257 347 321 396 718 809 1154 334 368 50 217 827 594 1380 162 439 411 354 446 643

55 590 909 430 425 856 431 613 611 376 244

60 379 706 573 569 498 768 609 490 401 488

65 808 524 461 583 498 378 676 428 679 461

70 905 839 865 936 314 833 662 618 358 497

75 506 863 1217 679 841 866 637 358 551 734 80 1229 696 969 1053 730 869 1001 2094 434 879 85 1320 639 1374 865 1185 435 1169 1232 893 1217 90 609 1078 1907 1272 1559 1065 1742 808 573 1357 200 5957 3946 6324 1511 2130 3232 5110 4184 2458 3066 250 4517 3037 3702 3106 4763 9890 6168 4718 4622 5350 300 11523 18412 16988 14965 12471 Tabla 8. Resultados de tiempos computacionales de inserción infactible.

ESTADÍSTICAS DE TIEMPOS VS. SOLUCIÓN MATEMÁTICA

COLOR CASOS PORCENTAJE

44 30.3%

101 69.7%

TOTAL 145 100%

Tabla 9. Resumen de Tabla 8.

Como se puede observar, la solución no presenta una mejoría en tiempos computacionales representativa; es importante recordar que, con respecto a los tiempos de la heurística de (Barrera, Velasco, & Amaya, 2012), los tiempos fueron superiores en todos los casos.

(11)

CONCLUSIONES

Esto documento presenta un problema de investigación con base en la hipótesis planteada a partir de los resultados de una investigación realizada previamente en la solución de un problema de MCTCSP, la cual consiste en evaluar la solución del problema implementando una modificación que permite pasar de retirar e insertar un nodo a la vez, a retirar e insertar varios nodos en un proceso de compactación de rutas.

La aproximación explorada en este documento, la cual tiene la modificación con respecto a (Barrera, Velasco, & Amaya, 2012) de permitir la eyección e inserción de múltiples nodos, presenta una mejoría relativa en cuanto a la solución previamente obtenida, mostrando un 25.5% de escenarios con mejores resultados. De igual manera, la cantidad de escenarios que lograron optimalidad usando únicamente el método heurístico aumentó en un 7.6%, pasando de 30.3% a un 37.9% sobre el total de casos analizados. De esta manera, el código mejora las soluciones obtenidas en un porcentaje relativamente considerable, pero aún no son óptimas en la mayoría de las instancias. Por este motivo es necesario evaluar otro método para llegar a optimalidad sin usar Branch & Bound.

La modificación aquí propuesta se manejó implementando un código que demostró no ser eficiente en comparación con el código utilizado por (Barrera, Velasco, & Amaya, 2012), puesto que en un 100% de los casos resueltos con procedimiento heurístico únicamente, mostró desmejora en el tiempo computacional. Sin embargo, comparando los tiempos de la solución matemática, se observó una mejora del 30.3% sobre el total. Es importante aclarar que no se planteó como objetivo disminuir el tiempo computacional de la solución.

Como recomendación para trabajo futuro, se puede utilizar un algoritmo recursivo que llame varias veces la inserción infactible. El programa aquí presentado se podría describir como una inserción infactible de un nivel, pero se podría programar para n niveles, es decir, que al retirar k nodos infactibles e intentar insertarlos y encontrar que no se puede insertar alguno, permitir retirar h nodos de la ruta evaluada y llegar a un segundo nivel de inserción infactible, y así sucesivamente; esto iría en detrimento de los tiempos computacionales, pero eso posible que permita encontrar mejorías en un porcentaje mayor de escenarios.

(12)

I. BIBLIOGRAFÍA

1. Ahuja, R. K., Magnanti, T. L., & Orlin, J. B. (1993). Network Flows. New Jersey: Prentice Hall.

2. Barrera, D., Velasco, N., & Amaya, C. A. (2012). A network-based approach to the multi-activity combined timetabling and crew scheduling problem: Workforce scheduling for public health policy implementation. Elsevier , 1-11.

3. Nagata, Y., & Bräysy, O. (2009). A powerful route optimization heuristic for the vehicle routing problem with time windows. Elsevier , 333-338.

4. Norberciak, M. (2006). Universal Method for Solving Timetabling Problems Based on Evolutionary

Approach. Proceedings of the International Multiconference on Computer Science and Information Technology , 149-157.

5. Secretaría Distrital de Salud de Bogotá. (2012). Salud Capital. Recuperado el 13 de 9 de 2012, de http://www.saludcapital.gov.co/paginas/saludalcolegio.aspx

Referencias

Documento similar