18
1 Se utiliza la estrategia de representación AON (actividades en los nodos). Por tanto los nodos son las elipses y el número en su interior representa la actividad . Se utilizan tres recursos cuyas disponibilidades son 4 unidades para cada uno. Los consumos de los tres recursos son los números que aparecen debajo de las actividades separados por comas; así por ej. la actividad 3, la cual tiene un consumo de recursos de 3,1,1 consume 3 unidades del recurso 1, 1 unidad del recurso 2 y 1 unídad del recurso 3 durante el tiempo de ejecución (su duración) La duración de las actividades es el número que aparece encima de la respectiva elipse. En Las tablas 1 y 2 aparecen los datos del problema. Tabla 1. Duraciones, consumo de recursos y predecesores de las actividades Actividad Duración Consumo Consumo Consumo Predecesores Recurso 1 Recurso 2 Recurso 3 O O O O 2 3 2 2 2 3 3 3 1 4 O 1 5 2 2 2 6 2 4 O 1 7 3 2 2 8 2 3 2 O 2, 5 9 O 3 3 2 2 3 4, 6 11 O O O O 8, 9, 10 51 3 3 10

nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

1

Se utiliza la estrategia de representacioacuten AON (actividades en los nodos) Por tanto los

nodos son las elipses y el nuacutemero en su interior representa la actividad

Se utilizan tres recursos cuyas dispon ibilidades son 4 unidades para cada uno

Los consumos de los tres recursos son los nuacutemeros que aparecen debajo de las

actividades separados por comas asiacute por ej la actividad 3 la cual tiene un consumo

de recursos de 311 consume 3 unidades del recurso 1 1 unidad del recurso 2 y 1

uniacutedad del recurso 3 durante el tiempo de ejecucioacuten (su duracioacuten)

La duracioacuten de las actividades es el nuacutemero que aparece encima de la respectiva

elipse

En Las tablas 1 y 2 aparecen los datos del problema

Tabla 1 Duraciones consumo de recursos y predecesores de las actividades

Actividad Duracioacuten Consumo Consumo Consumo Predecesores

Recurso 1 Recurso 2 Recurso 3

O O O O

2 3 2 2 2

3 3 3 1

4 O 1

5 2 2 2

6 2 4 O 1

7 3 2 2

8 2 3 2 O 2 5

9 O 3

3 2 2 3 4 6

11 O O O O 8 9 10

51

3

3

10

Las unidades de la duracioacuten son unidades de tiempo y las de consumo de recursos

son unidades de recurso

Tabla 2 Disponibilidades de los recursos

Recurso Disponibilidad

4

2 4

3 4

Las unidades de disponibilidad son unidades de recursos (las mismas usadas en la

Tabla 1)

Para este problema se tiene

Cota inferior LBO = 8 (Ruta criacutetica en flechas maacutes gruesas)

Cota inferior LBS = 11

Cota LBR1 = 11 (mayor entero~10 5)

Cota LBR2 = 8 (mayor entero~7 25)

Cota LBR3 = 7 (mayor entero~7)

Makespan oacuteptimo= 13

Solucioacuten oacuteptima (la que produce el makespan oacuteptimo)

Actividad tiempo de inicio tiempo de terminacioacuten

3 3

4 1

7 2 4

2 4 6

5 5 5

9 6 6

6 7 8

8 9 10

10 11 13

52

51 DESARROLLO DEL ALGORITMO CON EL EJEMPLO NUMEacuteRICO

A continuacioacuten se muestran los pasos iniciales del algoritmo (algunas iteraciones)

En el primer nodo se escoge el punto del tiempo 1 (Inicio del proyecto)

A continuacioacuten se determina el conjunto de actividades elegibles por precedencias

Por estar en el primer nodo las elegibles son las actividades que no tienen

predecesores es decir 2 3 4 Y 7 Ninguna actividad estaacute en ejecucioacuten en este punto

del tiempo Entonces se determina el conjunto de subconjuntos que se podriacutean iniciar

en el tiempo 1

Existen 16 subconjuntos de (2347) (24 = 16 conjunto potencia) que son (2 347)

(234) (237) (247) (347) (23) (24) (27) (34) (37) (47) (2) (3) (4) (7) (CV) donde

(CV) representa el conjunto vaciacuteo

De estos 16 subconjuntos son factibles por recursos 10 subconjuntos (24) (2 7) (34)

(3 7) (47) (2) (3) (4) (7) (CV) (conjunto vaciacuteo)

y no factibles por recursos 6 subconjunto (2347) (234) (237) (247) (347) (23)

Los 6 no factibles por recursos se desechan ya que el algoritmo en su proceso de

construccioacuten de un programa siempre trabaja con programas parciales factibles

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los factibles (se excluye el

vaciacuteo) (34) (37) (24) (27) (47) (3) (2) (4) (7)

Se selecciona el primer subconjunto (34) y queda definido el nodo 1 en el que se

inician las actividades 3 y 4 en el tiempo 1

53

Descendemos un nivel en el aacuterbol y pasamos al 2

De las dos actividades en ejecucioacuten la que primero termina es la 4 que tiene una

duracioacuten de 1 y el tiempo candidato para el nivel 2 es el punto 2 en el tiempo En este

punto 2 las elegibles son 27 las que habiacutean quedado pendientes del nivel anterior ya

que la terminacioacuten de la 4 no habilita ninguna nueva elegible pues el uacutenico sucesor de

la 4 que es la 10 tambieacuten tiene como predecesor la 6 que no se ha iniciado auacuten

Con las actividades (27) se pueden formar los siguientes cuatro (22) subconjuntos

(27) (2) (7) (CV) de los cuales son factibles por recursos soacutelo el (7) y (CV) y no

factibles los otros dos (recueacuterdese que en el tiempo 2 estaacute auacuten en ejecucioacuten la

actividad 3)

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los 2 factibles (7) (CV)

Sin entrar en una descripcioacuten tan detallada como la de los dos primeros niveles se

continuacutea el descenso en eacutel aacuterbol lo que nos lleva a lo siguiente (se omite el conjunto

vaciacuteo que siempre es factible)

nivel tiempo actividades subconjuntos subconj

elegibles clasificados elegido

3 4 (2569) (2) (5)(9) (2)

4 5 (569) (5) (9) (5)

5 6 (69) (9) (9)

6 7 (68) (6) (8) (6)

7 9 (810) (8) (10) (8)

8 11 (10) (10 ) (10)

54

El algoritmo recorre el aacuterbol en profundidad por lo que siempre desciende la primera

vez en el aacuterbol sin hacer backtracking y obtiene la primera solucioacuten factible que es la

descrita arriba Casualmente en este caso eacutesta es la solucioacuten oacuteptima Sin embargo

como se supone que no se conoce el oacuteptimo el algoritmo continuacutea la buacutesqueda en el

aacuterbol hasta haber recorrido todas las permutaciones factibles posibles

En este punto el algoritmo deberiacutea avanzar al nivel 9 y el punto de inicio seriacutea el

tiempo 14 (una unidad maacutes tarde de cuando termina la actividad 10 que es la uacutenica en

ejecucioacuten pero encuentra que en ese punto del tiempo no hay actividades elegibles ni

en ejecucioacuten lo que se interpreta como que se ha completado un programa (asiacute no

hay que llevar un contador de actividades para saber que se ha completado un

programa)

Entonces se inicia el retroceso en el aacuterbol En el nivel 8 soacutelo hay un subconjunto por lo

que retrocedemos nuevamente al nivel 7 En ese nivel existen dos subconjuntos (8) y

(10) Como el (8) fue el uacuteltimo seleccionado se escoge el subconjunto (10) Y se asocia

con el nivel Se realizan los caacutelculos necesarios para desactivar el subconjunto (8) y

activar el (10) Para ver en que consisten estos ajustes consultar el seudocoacutedigo del

algoritmo que aparece en el Anexo A Por ahora se estaacute describiendo solamente la

forma de recorrer el aacuterbol

Entonces el nivel 7 consiste ahora en iniciar en el punto 9 del tiempo (el mismo que se

teniacutea ya que lo que se cambia es el subconjunto) el subconjunto (10)

Continuamos el descenso hacia el nivel 8 donde la uacutenica actividad elegible es la 8 que

habiacutea sido desprogramada en el nivel 7 pero quedaba con el estado de elegible EL

punto donde termina la proacutexima actividad (la 10 que es la uacutenica en ejecucioacuten) es el fin

del periacuteodo 11 (o inicio del 12) y asiacute queda definido el nuevo nivel 8 con el tiempo

asociado 12 y el subconjunto (8)

55

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 2: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Las unidades de la duracioacuten son unidades de tiempo y las de consumo de recursos

son unidades de recurso

Tabla 2 Disponibilidades de los recursos

Recurso Disponibilidad

4

2 4

3 4

Las unidades de disponibilidad son unidades de recursos (las mismas usadas en la

Tabla 1)

Para este problema se tiene

Cota inferior LBO = 8 (Ruta criacutetica en flechas maacutes gruesas)

Cota inferior LBS = 11

Cota LBR1 = 11 (mayor entero~10 5)

Cota LBR2 = 8 (mayor entero~7 25)

Cota LBR3 = 7 (mayor entero~7)

Makespan oacuteptimo= 13

Solucioacuten oacuteptima (la que produce el makespan oacuteptimo)

Actividad tiempo de inicio tiempo de terminacioacuten

3 3

4 1

7 2 4

2 4 6

5 5 5

9 6 6

6 7 8

8 9 10

10 11 13

52

51 DESARROLLO DEL ALGORITMO CON EL EJEMPLO NUMEacuteRICO

A continuacioacuten se muestran los pasos iniciales del algoritmo (algunas iteraciones)

En el primer nodo se escoge el punto del tiempo 1 (Inicio del proyecto)

A continuacioacuten se determina el conjunto de actividades elegibles por precedencias

Por estar en el primer nodo las elegibles son las actividades que no tienen

predecesores es decir 2 3 4 Y 7 Ninguna actividad estaacute en ejecucioacuten en este punto

del tiempo Entonces se determina el conjunto de subconjuntos que se podriacutean iniciar

en el tiempo 1

Existen 16 subconjuntos de (2347) (24 = 16 conjunto potencia) que son (2 347)

(234) (237) (247) (347) (23) (24) (27) (34) (37) (47) (2) (3) (4) (7) (CV) donde

(CV) representa el conjunto vaciacuteo

De estos 16 subconjuntos son factibles por recursos 10 subconjuntos (24) (2 7) (34)

(3 7) (47) (2) (3) (4) (7) (CV) (conjunto vaciacuteo)

y no factibles por recursos 6 subconjunto (2347) (234) (237) (247) (347) (23)

Los 6 no factibles por recursos se desechan ya que el algoritmo en su proceso de

construccioacuten de un programa siempre trabaja con programas parciales factibles

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los factibles (se excluye el

vaciacuteo) (34) (37) (24) (27) (47) (3) (2) (4) (7)

Se selecciona el primer subconjunto (34) y queda definido el nodo 1 en el que se

inician las actividades 3 y 4 en el tiempo 1

53

Descendemos un nivel en el aacuterbol y pasamos al 2

De las dos actividades en ejecucioacuten la que primero termina es la 4 que tiene una

duracioacuten de 1 y el tiempo candidato para el nivel 2 es el punto 2 en el tiempo En este

punto 2 las elegibles son 27 las que habiacutean quedado pendientes del nivel anterior ya

que la terminacioacuten de la 4 no habilita ninguna nueva elegible pues el uacutenico sucesor de

la 4 que es la 10 tambieacuten tiene como predecesor la 6 que no se ha iniciado auacuten

Con las actividades (27) se pueden formar los siguientes cuatro (22) subconjuntos

(27) (2) (7) (CV) de los cuales son factibles por recursos soacutelo el (7) y (CV) y no

factibles los otros dos (recueacuterdese que en el tiempo 2 estaacute auacuten en ejecucioacuten la

actividad 3)

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los 2 factibles (7) (CV)

Sin entrar en una descripcioacuten tan detallada como la de los dos primeros niveles se

continuacutea el descenso en eacutel aacuterbol lo que nos lleva a lo siguiente (se omite el conjunto

vaciacuteo que siempre es factible)

nivel tiempo actividades subconjuntos subconj

elegibles clasificados elegido

3 4 (2569) (2) (5)(9) (2)

4 5 (569) (5) (9) (5)

5 6 (69) (9) (9)

6 7 (68) (6) (8) (6)

7 9 (810) (8) (10) (8)

8 11 (10) (10 ) (10)

54

El algoritmo recorre el aacuterbol en profundidad por lo que siempre desciende la primera

vez en el aacuterbol sin hacer backtracking y obtiene la primera solucioacuten factible que es la

descrita arriba Casualmente en este caso eacutesta es la solucioacuten oacuteptima Sin embargo

como se supone que no se conoce el oacuteptimo el algoritmo continuacutea la buacutesqueda en el

aacuterbol hasta haber recorrido todas las permutaciones factibles posibles

En este punto el algoritmo deberiacutea avanzar al nivel 9 y el punto de inicio seriacutea el

tiempo 14 (una unidad maacutes tarde de cuando termina la actividad 10 que es la uacutenica en

ejecucioacuten pero encuentra que en ese punto del tiempo no hay actividades elegibles ni

en ejecucioacuten lo que se interpreta como que se ha completado un programa (asiacute no

hay que llevar un contador de actividades para saber que se ha completado un

programa)

Entonces se inicia el retroceso en el aacuterbol En el nivel 8 soacutelo hay un subconjunto por lo

que retrocedemos nuevamente al nivel 7 En ese nivel existen dos subconjuntos (8) y

(10) Como el (8) fue el uacuteltimo seleccionado se escoge el subconjunto (10) Y se asocia

con el nivel Se realizan los caacutelculos necesarios para desactivar el subconjunto (8) y

activar el (10) Para ver en que consisten estos ajustes consultar el seudocoacutedigo del

algoritmo que aparece en el Anexo A Por ahora se estaacute describiendo solamente la

forma de recorrer el aacuterbol

Entonces el nivel 7 consiste ahora en iniciar en el punto 9 del tiempo (el mismo que se

teniacutea ya que lo que se cambia es el subconjunto) el subconjunto (10)

Continuamos el descenso hacia el nivel 8 donde la uacutenica actividad elegible es la 8 que

habiacutea sido desprogramada en el nivel 7 pero quedaba con el estado de elegible EL

punto donde termina la proacutexima actividad (la 10 que es la uacutenica en ejecucioacuten) es el fin

del periacuteodo 11 (o inicio del 12) y asiacute queda definido el nuevo nivel 8 con el tiempo

asociado 12 y el subconjunto (8)

55

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 3: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

51 DESARROLLO DEL ALGORITMO CON EL EJEMPLO NUMEacuteRICO

A continuacioacuten se muestran los pasos iniciales del algoritmo (algunas iteraciones)

En el primer nodo se escoge el punto del tiempo 1 (Inicio del proyecto)

A continuacioacuten se determina el conjunto de actividades elegibles por precedencias

Por estar en el primer nodo las elegibles son las actividades que no tienen

predecesores es decir 2 3 4 Y 7 Ninguna actividad estaacute en ejecucioacuten en este punto

del tiempo Entonces se determina el conjunto de subconjuntos que se podriacutean iniciar

en el tiempo 1

Existen 16 subconjuntos de (2347) (24 = 16 conjunto potencia) que son (2 347)

(234) (237) (247) (347) (23) (24) (27) (34) (37) (47) (2) (3) (4) (7) (CV) donde

(CV) representa el conjunto vaciacuteo

De estos 16 subconjuntos son factibles por recursos 10 subconjuntos (24) (2 7) (34)

(3 7) (47) (2) (3) (4) (7) (CV) (conjunto vaciacuteo)

y no factibles por recursos 6 subconjunto (2347) (234) (237) (247) (347) (23)

Los 6 no factibles por recursos se desechan ya que el algoritmo en su proceso de

construccioacuten de un programa siempre trabaja con programas parciales factibles

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los factibles (se excluye el

vaciacuteo) (34) (37) (24) (27) (47) (3) (2) (4) (7)

Se selecciona el primer subconjunto (34) y queda definido el nodo 1 en el que se

inician las actividades 3 y 4 en el tiempo 1

53

Descendemos un nivel en el aacuterbol y pasamos al 2

De las dos actividades en ejecucioacuten la que primero termina es la 4 que tiene una

duracioacuten de 1 y el tiempo candidato para el nivel 2 es el punto 2 en el tiempo En este

punto 2 las elegibles son 27 las que habiacutean quedado pendientes del nivel anterior ya

que la terminacioacuten de la 4 no habilita ninguna nueva elegible pues el uacutenico sucesor de

la 4 que es la 10 tambieacuten tiene como predecesor la 6 que no se ha iniciado auacuten

Con las actividades (27) se pueden formar los siguientes cuatro (22) subconjuntos

(27) (2) (7) (CV) de los cuales son factibles por recursos soacutelo el (7) y (CV) y no

factibles los otros dos (recueacuterdese que en el tiempo 2 estaacute auacuten en ejecucioacuten la

actividad 3)

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los 2 factibles (7) (CV)

Sin entrar en una descripcioacuten tan detallada como la de los dos primeros niveles se

continuacutea el descenso en eacutel aacuterbol lo que nos lleva a lo siguiente (se omite el conjunto

vaciacuteo que siempre es factible)

nivel tiempo actividades subconjuntos subconj

elegibles clasificados elegido

3 4 (2569) (2) (5)(9) (2)

4 5 (569) (5) (9) (5)

5 6 (69) (9) (9)

6 7 (68) (6) (8) (6)

7 9 (810) (8) (10) (8)

8 11 (10) (10 ) (10)

54

El algoritmo recorre el aacuterbol en profundidad por lo que siempre desciende la primera

vez en el aacuterbol sin hacer backtracking y obtiene la primera solucioacuten factible que es la

descrita arriba Casualmente en este caso eacutesta es la solucioacuten oacuteptima Sin embargo

como se supone que no se conoce el oacuteptimo el algoritmo continuacutea la buacutesqueda en el

aacuterbol hasta haber recorrido todas las permutaciones factibles posibles

En este punto el algoritmo deberiacutea avanzar al nivel 9 y el punto de inicio seriacutea el

tiempo 14 (una unidad maacutes tarde de cuando termina la actividad 10 que es la uacutenica en

ejecucioacuten pero encuentra que en ese punto del tiempo no hay actividades elegibles ni

en ejecucioacuten lo que se interpreta como que se ha completado un programa (asiacute no

hay que llevar un contador de actividades para saber que se ha completado un

programa)

Entonces se inicia el retroceso en el aacuterbol En el nivel 8 soacutelo hay un subconjunto por lo

que retrocedemos nuevamente al nivel 7 En ese nivel existen dos subconjuntos (8) y

(10) Como el (8) fue el uacuteltimo seleccionado se escoge el subconjunto (10) Y se asocia

con el nivel Se realizan los caacutelculos necesarios para desactivar el subconjunto (8) y

activar el (10) Para ver en que consisten estos ajustes consultar el seudocoacutedigo del

algoritmo que aparece en el Anexo A Por ahora se estaacute describiendo solamente la

forma de recorrer el aacuterbol

Entonces el nivel 7 consiste ahora en iniciar en el punto 9 del tiempo (el mismo que se

teniacutea ya que lo que se cambia es el subconjunto) el subconjunto (10)

Continuamos el descenso hacia el nivel 8 donde la uacutenica actividad elegible es la 8 que

habiacutea sido desprogramada en el nivel 7 pero quedaba con el estado de elegible EL

punto donde termina la proacutexima actividad (la 10 que es la uacutenica en ejecucioacuten) es el fin

del periacuteodo 11 (o inicio del 12) y asiacute queda definido el nuevo nivel 8 con el tiempo

asociado 12 y el subconjunto (8)

55

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 4: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Descendemos un nivel en el aacuterbol y pasamos al 2

De las dos actividades en ejecucioacuten la que primero termina es la 4 que tiene una

duracioacuten de 1 y el tiempo candidato para el nivel 2 es el punto 2 en el tiempo En este

punto 2 las elegibles son 27 las que habiacutean quedado pendientes del nivel anterior ya

que la terminacioacuten de la 4 no habilita ninguna nueva elegible pues el uacutenico sucesor de

la 4 que es la 10 tambieacuten tiene como predecesor la 6 que no se ha iniciado auacuten

Con las actividades (27) se pueden formar los siguientes cuatro (22) subconjuntos

(27) (2) (7) (CV) de los cuales son factibles por recursos soacutelo el (7) y (CV) y no

factibles los otros dos (recueacuterdese que en el tiempo 2 estaacute auacuten en ejecucioacuten la

actividad 3)

Despueacutes de clasificarlos por los dos criterios mencionados (nuacutemero de elementos y

utilizacioacuten del recurso 1) se tiene el siguiente orden para los 2 factibles (7) (CV)

Sin entrar en una descripcioacuten tan detallada como la de los dos primeros niveles se

continuacutea el descenso en eacutel aacuterbol lo que nos lleva a lo siguiente (se omite el conjunto

vaciacuteo que siempre es factible)

nivel tiempo actividades subconjuntos subconj

elegibles clasificados elegido

3 4 (2569) (2) (5)(9) (2)

4 5 (569) (5) (9) (5)

5 6 (69) (9) (9)

6 7 (68) (6) (8) (6)

7 9 (810) (8) (10) (8)

8 11 (10) (10 ) (10)

54

El algoritmo recorre el aacuterbol en profundidad por lo que siempre desciende la primera

vez en el aacuterbol sin hacer backtracking y obtiene la primera solucioacuten factible que es la

descrita arriba Casualmente en este caso eacutesta es la solucioacuten oacuteptima Sin embargo

como se supone que no se conoce el oacuteptimo el algoritmo continuacutea la buacutesqueda en el

aacuterbol hasta haber recorrido todas las permutaciones factibles posibles

En este punto el algoritmo deberiacutea avanzar al nivel 9 y el punto de inicio seriacutea el

tiempo 14 (una unidad maacutes tarde de cuando termina la actividad 10 que es la uacutenica en

ejecucioacuten pero encuentra que en ese punto del tiempo no hay actividades elegibles ni

en ejecucioacuten lo que se interpreta como que se ha completado un programa (asiacute no

hay que llevar un contador de actividades para saber que se ha completado un

programa)

Entonces se inicia el retroceso en el aacuterbol En el nivel 8 soacutelo hay un subconjunto por lo

que retrocedemos nuevamente al nivel 7 En ese nivel existen dos subconjuntos (8) y

(10) Como el (8) fue el uacuteltimo seleccionado se escoge el subconjunto (10) Y se asocia

con el nivel Se realizan los caacutelculos necesarios para desactivar el subconjunto (8) y

activar el (10) Para ver en que consisten estos ajustes consultar el seudocoacutedigo del

algoritmo que aparece en el Anexo A Por ahora se estaacute describiendo solamente la

forma de recorrer el aacuterbol

Entonces el nivel 7 consiste ahora en iniciar en el punto 9 del tiempo (el mismo que se

teniacutea ya que lo que se cambia es el subconjunto) el subconjunto (10)

Continuamos el descenso hacia el nivel 8 donde la uacutenica actividad elegible es la 8 que

habiacutea sido desprogramada en el nivel 7 pero quedaba con el estado de elegible EL

punto donde termina la proacutexima actividad (la 10 que es la uacutenica en ejecucioacuten) es el fin

del periacuteodo 11 (o inicio del 12) y asiacute queda definido el nuevo nivel 8 con el tiempo

asociado 12 y el subconjunto (8)

55

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 5: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

El algoritmo recorre el aacuterbol en profundidad por lo que siempre desciende la primera

vez en el aacuterbol sin hacer backtracking y obtiene la primera solucioacuten factible que es la

descrita arriba Casualmente en este caso eacutesta es la solucioacuten oacuteptima Sin embargo

como se supone que no se conoce el oacuteptimo el algoritmo continuacutea la buacutesqueda en el

aacuterbol hasta haber recorrido todas las permutaciones factibles posibles

En este punto el algoritmo deberiacutea avanzar al nivel 9 y el punto de inicio seriacutea el

tiempo 14 (una unidad maacutes tarde de cuando termina la actividad 10 que es la uacutenica en

ejecucioacuten pero encuentra que en ese punto del tiempo no hay actividades elegibles ni

en ejecucioacuten lo que se interpreta como que se ha completado un programa (asiacute no

hay que llevar un contador de actividades para saber que se ha completado un

programa)

Entonces se inicia el retroceso en el aacuterbol En el nivel 8 soacutelo hay un subconjunto por lo

que retrocedemos nuevamente al nivel 7 En ese nivel existen dos subconjuntos (8) y

(10) Como el (8) fue el uacuteltimo seleccionado se escoge el subconjunto (10) Y se asocia

con el nivel Se realizan los caacutelculos necesarios para desactivar el subconjunto (8) y

activar el (10) Para ver en que consisten estos ajustes consultar el seudocoacutedigo del

algoritmo que aparece en el Anexo A Por ahora se estaacute describiendo solamente la

forma de recorrer el aacuterbol

Entonces el nivel 7 consiste ahora en iniciar en el punto 9 del tiempo (el mismo que se

teniacutea ya que lo que se cambia es el subconjunto) el subconjunto (10)

Continuamos el descenso hacia el nivel 8 donde la uacutenica actividad elegible es la 8 que

habiacutea sido desprogramada en el nivel 7 pero quedaba con el estado de elegible EL

punto donde termina la proacutexima actividad (la 10 que es la uacutenica en ejecucioacuten) es el fin

del periacuteodo 11 (o inicio del 12) y asiacute queda definido el nuevo nivel 8 con el tiempo

asociado 12 y el subconjunto (8)

55

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 6: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Aquiacute el algoritmo avanza al nivel 9 y se detecta nuevamente la condicioacuten de que no

hay actividades en ejecucioacuten ni elegibles por lo que se tiene otra solucioacuten Se verifica

su makespan oacuteptimo que en este caso vuelve a ser 13 Como no es mejor que el

mejor hasta el momento se descarta Se inicia el retroceso en el aacuterbol y con esta forma

de avanzar y retroceder continuacutea el algoritmo hasta haber recorrido todas las

soluciones factibles permitidas por los niveles de vencimiento ya que como se habiacutea

mencionado antes el nuacutemero de soluciones en cada nivel estaacute acotado para darle

eficiencia al problema

56

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 7: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

6 EVALUACiOacuteN Y ANAacuteLISIS DE RESULTADOS

Para la evaluacioacuten de los resultados se utilizaron los 480 problemas de 30 actividades

y cuatro recursos a los cuales se les conoce la solucioacuten oacuteptima obtenidos de la

libreriacutea PSPLlB (Libreriacutea de problemas benchmark del tipo RCPSP usada por gran

cantidad de investigadores europeos en el tema (httpwwwbwlunishy

kieldeProdpsplib) creada por Kolisch R y A Sprecher)

La solucioacuten oacuteptima exacta de los 480 problemas se obtuvo con el algoritmo de

Demeulemeester and Herroelen del cual el AEM de este trabajo es una modificacioacuten

Cabe mencionar que aunque en la libreriacutea PSPLlB existen problemas de maacutes de 30

actividades a eacutestos no se les ha podido encontrar el oacuteptimo por ninguacuten algoritmo

exacto lo que justifica nuevamente el uso de algoritmos heuriacutesticos

Como siempre hay un compromiso entre la calidad de la solucioacuten y el tiempo

empleado para obtenerla donde a mayor tiempo de ejecucioacuten se obtiene una mejor

solucioacuten entonces se realizaron diferentes ejecuciones de cada uno de los tres

algoritmos para tener diferentes puntos de referencia Sin embargo como la forma en

que cada algoritmo controla el tiempo de ejecucioacuten (o tiempo de parada) es diferente

lo que se hace es controlar la parada del algoritmo seguacuten sus requerimientos

especiacuteficos con el fin de obtener el tiempo de ejecucioacuten con lo que se llega a una

medida estaacutendar para todos los algoritmos el tiempo de ejecucioacuten que los hace

comparables Por eso en las tablas que aparecen en el anaacutelisis de resultados

aparecen valores de tiempo vs calidad siendo el tiempo una consecuencia del criterio

de parada utilizado El paraacutemetro para medir la calidad es la desviacioacuten porcentual de

la solucioacuten obtenida respecto al oacuteptimo del problema que como ya se mencionoacute

anteriormente para los problemas de 30 actividades y 4 recursos utilizados en este

trabajo se conoce Asiacute por ej si el oacuteptimo exacto de un problema es 45 (unidades de

57

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 8: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

tiempo) y en una ejecucioacuten se llega a un oacuteptimo (heuriacutestico aproximado) de 47

entonces la desviacioacuten es (47-45)45 = 245 = 444

Como en la muestra de los 480 problemas existe una mezcla de problemas faacuteciles y

difiacuteciles (asiacute por ej es se sabe que los problemas del grupo 13 son los maacutes difiacuteciles en

tanto que los del grupo 2 son muy sencillos) y para evitar errores de redondeo la

desviacioacuten se calculoacute de la siguiente manera

SH (suma heuriacutestica) = suma de todas las soluciones oacuteptimas heuriacutesticas obtenidas

para los 480 problemas por el algoritmo en cuestioacuten

SE (suma exacta) = suma de todas las soluciones oacuteptimas conocidas para los 480

problemas obtenidas de la misma libreriacutea PSPLlB

Desviacioacuten = (SH - SE)SE (Esta foacutermula de desviacioacuten se utilizoacute para las tres

heuriacutesticas)

EL tiempo promedio se obtuvo como la suma acumulada de las duraciones de los 480

problemas dividiendo luego este valor por 480

Por los motivos expuestos y porque ademaacutes es equivalente a un promedio ponderado

se consideroacute mas conveniente esta expresioacuten para la desviacioacuten que alternativamente

calcular la desviacioacuten individual de cada uno de los problemas y luego obtener la

media de estas desviaciones para los 480 problemas

Por tanto los resultados en las tablas que aparecen a continuacioacuten siempre

corresponden al promedio de los 480 problemas nunca se obtuvieron tablas de

resultados para problemas individuales las cuales podriacutean llegar a ser de intereacutes si se

quisiera calcular la robustez del algoritmo por medio de la desviacioacuten estaacutendar u otra

medida Para el caacutelculo de tales promedios se anexaron a los algoritmos las

58

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 9: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

subrutinas que leiacutean los tiempos de inicio y finalizacioacuten acumulaban los tiempos de

ejecucioacuten y finalmente obteniacutean los promedios de tiempo y de desviacioacuten

61 RESULTADOS DE ENFRIAMIENTO SIMULADO (SA)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de SA desarrollado

mediante el algoritmo de la Figura 1 para diferentes valores del criterio de parada

tiempo de ejecucioacuten El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se ilustran en la

Tabla 3

Los progama fueron elaborados en lenguaje Visual-Basic y corridos en un procesador

de 2 MHz y 256 MB de memoria

TABLA 3 Resultados SA - 30 actividades

Desviacioacuten Tiempo (seg)

197 0169

169 0300

144 0582

114 1141

103 1689

095 2269

087 3398

068 8761

059 17387

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedia de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

59

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 10: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

62 RESULTADOS DE LA BUacuteSQUEDA TABUacute (TS)

Para la evaluacioacuten de esta heuriacutestica se ejecutoacute el programa de TS desarrollado

mediante el algoritmo de la Figura 2 para diferentes valores del criterio de parada

nuacutemero de iteraciones El programa se corrioacute (para los 480 problemas de 30

actividades) en plataforma Visual Basic 60 Los resultados obtenidos se muestran en

la Tabla 4

Los programas fueron elaborados en lenguaje Visual-Basic y corridos en un

procesador de 2 MHz y 256 MB de memoria

Tabla 4 Resultados TS - 30 actividades

Desviacioacuten Tiempo (seg)

208 0136

152 0301

118 0507

091 1023

082 1540

076 2062

068 3097

053 8227

046 15401

034 30719

Tiempo Tiempo promedio de ejecucioacuten de los 480 problemas

Desviacioacuten Desviacioacuten promedio de la mejor solucioacuten hallada por el algoritmo

respecto a la solucioacuten oacuteptima de cada uno de los 480 problemas

60

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 11: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

63 RESULTADOS DEL ALGORITMO HEURiacuteSTICO MODIFICADO (AEM)

Como problemas de prueba se tomaron los mismos 480 problemas de 30 actividades

a los cuales se les conoce la solucioacuten oacuteptima de la libreriacutea PSPLlB libreriacutea de

problemas benchmark creada por Kolisch R y A Sprecher (http wwwbwlunishy

kiel deProdpsplib)

Los programas en este caso fueron elaborados en lenguaje Visual Foxpro y corridos

en un procesador de 17Mhz y 256 MB de memoria

A continuacioacuten se muestran seis tablas 5 6 7 8 9 10 Y 11 con los resultados

obtenidos variando algunos de los paraacutemetros descritos en 57

MS maacuteximo numero de subconjuntos por nivel

PNMI= miacutenimo nuacutemero de pasos por nivel

PNMA= maacuteximo nuacutemero de pasos por nivel

LI valor de LBRLBO por debajo del cual se utiliza PNMI

LS valor de LBR1LBO por encima del cual se utiliza PNMA

Desv desviacioacuten promedio respecto al oacuteptimo

TPO Tiempo promedio por problema en segundos

Tabla 5 con PNMI=1000 PNMA=50000 LI=07 LS= 11

MS Desv TPO

846 001

2 170 071

3 147 135

4 172 113

5 189 094

10 240 063

61

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 12: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Tabla 6 con PNMI=2000 PNMA=100000 L1=07 LS= 11

MS Desv TPO

846 001

2 168 083

3 119 194

4 148 174

5 164 153

10 228 081

Tabla 7 con PNMI=10000 PNMA=500000 L1=07 LS= 11

MS Desv TPO

1 846 001

2 167 095

3 082 477

4 090 488

5 106 427

10 150 2 31

Tabla 8 con PNMI=1000 PNMA=100000 L1=05 LS= 10

MS Desv TPO

1 846 001

2 170 075

3 169 161

4 121 152

5 142 137

10 188 074

62

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 13: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Tabla 9 con PNMI=2000 PNMA=200000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 169 087

3 101 245

4 108 222

5 122 193

10 171 101

Tabla 10 con PNMI=10000 PNMA=1000000 LI=05 LS= 10

MS Desv TPO

1 846 001

2 167 096

3 077 600

4 080 544

5 085 475

10 125 269

Tabla 11 con PNMI=200 PNMA=10000 LI=05 LS= 12

MS Desv TPO

1 846 001

2 193 034

3 195 056

4 207 059

5 198 057

10 250 040

Aunque se observa poca sensibilidad a los paraacutemetros (PNMI PNMA J LS) es de

resaltar que la desviacioacuten decrece hasta llegar a un miacutenimo (en MS =3 o It1S =4)

donde empieza nuevamente a crecer debido a que el control de pasos por nivel evita

algunas buenas soluciones candidatas

63

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 14: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Para MS=1 el algoritmo es equivalente a un meacutetodo constructivo y por eso se obtiene

la misma solucioacuten en todas las tablas

Con valores de PNMI menores se obtienen mejores resultados (igual desviacioacuten y

tiempos menores) ya que cuando los problemas son faacuteciles la buacutesqueda es menos

intensa Como caso extremo se muestra la Tabla 11 donde los problemas faacuteciles soacutelo

realizan 200 pasos por nivel (PNMI=200) aunque llegan al oacuteptimo

De las tablas anteriores se extractaron algunos tiempos comprendidos entre 193 y

082 buscando en la tabla donde se obtenga la mejor combinacioacuten calidad (desviacioacuten)

tiempo y los resultados se llevaron a una nueva tabla denominada tabla resumen

(Tabla 12) que aparece a continuacioacuten La tercera columna de la tabla resumen nos

indica de cual de las tablas originales se obtuvieron los respectivos datos

Tabla 12 resumen

Desv TPO De

Tabla

193 034 11

170 071 5

168 083 6

121 152 8

108 222 9

101 245 9

082 477 7

64 INTERFAZ DE EJECUCiOacuteN

Aunque el nuacutecleo del problema son los tres algoritmos desarrollados y su comparacioacuten

en cuanto a eficiencia sin embargo como dentro de los objetivos del trabajo se

encuentra el desarrollo de una herramienta computacional que implemente el

algoritmo desarrollado y construir un prototipo se disentildeoacute una interfaz para la entrada

de los datos y la lectura de los resultados que consta de un menuacute amigable y sencillo

de utilizar

64

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 15: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Como no es el objetivo del trabajo la parte operativa del menuacute soacutelo se hace una

descripcioacuten muy breve de su utilizacioacuten aunque en el anexo A aparece el detalle de la

forma de utilizacioacuten de los programas

Para que funcionen los programas deben crearse tres directorios (carpetas) en el disco

C con nombres cschedu cschedud y cschedu2003dat32dbf y copiarse a ellas las

que se encuentran en el CD anexo con el mismo nombre Los nombres deben ser

exactos ya que se usa direccionamiento fijo al disco C En la carpeta cschedu existe

un proyecto ejecutable denominado proy1 que permite la ejecucioacuten de los programas

sin necesidad de utilizar el lenguaje Fax-Pro

El menuacute cuando se invoca muestra en la pantalla las siguientes opciones y estaacute hecho

para ejecutar cualquiera de los 480 problemas de 32 actividades de la librariacutea PSPLlB

mencionados en el trabajo u otros problemas descritos por el usuario

1 SELECCION DE PROBLEMA y XXX

2 PREDECESORES

3 DURACIONES

4 DISPONIBILIDAD DE RECURSOS

5 CONSUMO DE RECURSOS

6 CONTROL

7 EJECUTAR PROBLEMA

8 CREAR NUEVO PROBLEMA

9 MEJOR SOLUCION ENCONTRADA

10 VALlDACION

Los problemas de la libreriacutea PSPLlB se identifican con el nuacutemero 1 y los de definidos

por el usuario que se denominan LIBRES con un O A continuacioacuten de este agrupador

va el identificador del problema que es alfabeacutetico por lo que se debe ajustar a la

izquierda y que va del 11 al 4810 en los de PSPLlB donde los dos primeros

caracteres forman el grupo (de 1 a 48) y los dos siguientes (o el siguiente) un

consecutivo (de 1 a 10) Esta es la forma como los han codificado los autores de la

libreriacutea y todos los de un mismo grupo tienen caracteriacutesticas similares en su

generacioacuten ya que los problemas son generados de acuerdo con ciertos paraacutemetros

65

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 16: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

por otro programa de la misma libreriacutea que puede utilizarse cuando alguacuten investigador

desea problemas adicionales

Asiacute por ejemplo los de los grupos 9 y 13 son los maacutes difiacuteciles y por supuesto los que

maacutes tiempo de coacutemputo requieren

El punto 1 selecciona el problema y su coacutedigo queda permanentemente en la pantalla

mientras no se cambie como Y XXX donde Y es el identificador de si es LIBRE o de

PSPLlB

Los puntos 23456 permiten la entrada de los datos

El punto 2 construye la red (que tarea es predecesora de otra)

El punto 3 define las duraciones (en unidades de tiempo) de las actividades Las

actividades uno y uacuteltima deben tener duracioacuten O

El punto 4 define la disponibilidad de cada uno de los recursos

El punto 5 define el consumo de cada recurso por cada una de las actividades

Cuando una actividad no utiliza un recurso no es necesario entrarlo en ceros sino que

simplemente no se crea registro para ese recurso actividad y el problema lo toma

como cero

El punto 6 define el nuacutemero de tareas del proyecto (incluidas las dos actividades

mudas la 1 y la uacuteltima

El punto 7 ejecuta el problema y muestra el oacuteptimo encontrado por el algoritmo

heuriacutestico y si el problema es de la libreriacutea PSPLlB muestra tambieacuten el oacuteptimo real del

problema se hace una pausa con ese par de datos y al dar intro se regresa

nuevamente al menuacute

66

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 17: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

I

El punto 8 permite crear un nuevo problema definido por el usuario Asiacute por ej el

ejemplo de 11 tareas utilizado en este trabajo se codifico como el problema 04

El punto 9 permite ver la solucioacuten encontrada es decir el tiempo de inicio y de

terminacioacuten de cada una de las actividades numeradas en forma consecutiva y

distingue con un uno las que terminan el el uacuteltimo periodo del proyecto lo que permite

identificar su duracioacuten

El punto 10 realiza una validacioacuten en busca de inconsistencia en los datos de entrada

tales como una actividad que consume de un recurso maacutes de su disponibilidad un

predecesor mayor que la tarea que precede y algunos otros errores

Los programas de buacutesqueda tabuacute y enfriamiento simulado en Visual Basic son

autodescriptivos y se encuentran en una carpeta de nombre Tabu en el CD anexo la

cual debe copiarse con todos sus archivos y carpetas al disco C para su ejecucioacuten

65 ANAacuteLISIS COMPARATIVO

Los resultados obtenidos anteriormente para cada uno de los tres algoritmos

separados y utilizando para el AEM la Tabla 12 se llevaron al graacutefico que aparecen

en la figura 5 para efectos de comparacioacuten de los tres algoritmos

Aunque aparentemente el algoritmo exacto modificado es un poco inferior a los otros

dos algoritmos este resultado puede justificarse porque los algoritmos para buacutesqueda

tabuacute (TS en la figura 5) y enfriamiento simulado (SA en la figura 5) fueron

desarrollados en leguaje Visual Basic en tanto que el AEM se desarrolloacute en Foxpro

que es un lenguaje mucho maacutes lento e ineficiente para caacutelculos cientiacuteficos

Adicionalmente el AEM se ejecutoacute en un computador de menor frecuencia de

procesam iento

67

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68

Page 18: nodos son las elipses y el número en su interior ... · nodos son las elipses y el número en su interior representa la actividad. Se utilizan tres recursos cuyas disponibilidades

Figura 5 Graacuteficos de desviacioacuten vs tiempo de ejecucioacuten (seg) de los tres

algoritmos

4

35

3 -C) Q) 25 ~ o 2 - TSc E Q) -- SAiexcl 15

AEM1

05

O

000 050 100 150 200 250

desviacioacuten respecto al oacuteptimo

68