TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo...

253
USO DE ALGORITMOS GENÉTICOS PARA FACILITAR EL MANEJO DE LAS VARIABLES Y SU RELACIÓN CON EL VALOR PRESENTE NETO, EN LA CONSTRUCCIÓN DE UN PARQUE URBANO JAIRO ANDRÉS OSSA CALDERÓN PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA CARRERA DE INGENIERÍA CIVIL BOGOTA 2005

Transcript of TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo...

Page 1: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

USO DE ALGORITMOS GENÉTICOS PARA FACILITAR EL MANEJO

DE LAS VARIABLES Y SU RELACIÓN CON EL VALOR PRESENTE

NETO, EN LA CONSTRUCCIÓN DE UN PARQUE URBANO

JAIRO ANDRÉS OSSA CALDERÓN

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA CIVIL

BOGOTA

2005

Page 2: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 2 -

USO DE ALGORITMOS GENÉTICOS PARA FACILITAR EL MANEJO

DE LAS VARIABLES Y SU RELACIÓN CON EL VALOR PRESENTE

NETO, EN LA CONSTRUCCIÓN DE UN PARQUE URBANO

JAIRO ANDRÉS OSSA CALDERÓN

TRABAJO DE GRADO PARA OPTAR AL TÍTULO DE INGENIERO CIVIL

DIRECTORES:

ING. SANDRA PATRICIA JARRO SANABRIA

ING. JUAN PABLO CABALLERO VILLALOBOS

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERÍA

CARRERA DE INGENIERÍA CIVIL

BOGOTA

2005

Page 3: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 3 -

El proyecto de grado titulado:

“USO DE ALGORITMOS GENÉTICOS PARA

FACILITAR EL MANEJO DE LAS VARIABLES Y

SU RELACIÓN CON EL VALOR PRESENTE NETO,

EN LA CONSTRUCCIÓN DE UN PARQUE URBANO”

Presentado por Jairo Andrés Ossa Calderón, en

cumplimiento parcial de los requisitos

exigidos para optar al título de Ingeniero

Civil, fue aprobado el día _________ del

mes de_________ de _________.

________________________________ Ing. Sandra Patricia Jarro Sanabria

DIRECTORA

________________________________ Ing. Juan Pablo Caballero Villalobos

DIRECTOR

________________________________ Ing. Nelson Obregón

JURADO

Fecha y ciudad

Page 4: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 4 -

TABLA DE CONTENIDO

INTRODUCCIÓN ......................................................................................................................- 11 -

1. MARCO CONCEPTUAL..................................................................................................- 12 -

1.1 ALGORITMOS EVOLUTIVOS..................................................................................... - 12 -

1.2 ALGORITMOS GENÉTICOS........................................................................................ - 13 -

1.3 ACTIVIDADES DE CONSTRUCCIÓN EN PROYECTOS ........................................ - 18 -

1.4 PARQUE URBANO ......................................................................................................... - 20 -

1.5 INTERCAMBIO COSTO TIEMPO:.............................................................................. - 21 -

1.6 VALOR PRESENTE NETO............................................................................................ - 24 -

1.7 ESTIMACIONES DE DURACIONES PARA MÉTODO DE PERT............................... - 26 -

2. DESCRIPCIÓN DEL CASO..............................................................................................- 29 -

2.1 DEFINICIÓN DE LAS CARACTERÍSTICAS NECESARIAS DE LAS ACTIVIDADES

- 33 -

2.1.1 COSTOS DIRECTOS...................................................................................................... - 33 -

2.1.2 COSTOS INDIRECTOS.................................................................................................. - 34 -

2.1.3 RETRASOS POSIBLES................................................................................................... - 34 -

2.2 SUPOSICIONES PARA APROXIMAR EL ESTUDIO DEL PROBLEMA............... - 34 -

2.3 MODELO MATEMÁTICO............................................................................................. - 35 -

2.4 DEFINICIÓN DE LA INFORMACIÓN QUE CONTENDRÁ EL CROMOSOMA.. - 40 -

2.4.1 INFORMACIÓN DEL CROMOSOMA ......................................................................................... - 40 -

2.4.2 CONTENIDO DE CROMOSOMA ESCOGIDO ............................................................................. - 44 -

2.4.3 CONFIGURACIÓN DEL CROMOSOMA ..................................................................................... - 46 -

2.5 CLASIFICACIÓN DE LA INFORMACIÓN................................................................. - 59 -

2.5.1 COSTOS DIRECTOS ................................................................................................................ - 61 -

2.5.2 COSTOS INDIRECTOS ............................................................................................................ - 65 -

2.6 PROGRAMACIÓN DEL ALGORITMO GENÉTICO..................................................... - 65 -

Page 5: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 5 -

2.6.1 GENERACIÓN DE LA POBLACIÓN INICIAL ............................................................................. - 68 -

2.6.2 EVALUACIÓN DE CROMOSOMAS........................................................................................... - 70 -

2.6.3 SELECCIÓN ........................................................................................................................... - 78 -

2.6.4 RECOMBINACIÓN.................................................................................................................. - 82 -

2.6.5 MUTACIÓN ........................................................................................................................... - 85 -

2.6.6. NUEVA POBLACIÓN ............................................................................................................. - 88 -

2.6.7 EXPERIMENTO CONTROLADO ............................................................................................... - 89 -

2.6.8 SOLUCIÓN GRÁFICA A LOS CROMOSOMAS, COMUNICACIÓN CON MICROSOFT PROJECT ..... - 95 -

2.6.9 INTERFAZ GRÁFICA DEL ALGORITMO GENÉTICO .................................................................. - 96 -

3. ANÁLISIS DEL PROBLEMA Y RESULTADOS ..............................................................- 98 -

3.1 ANÁLISIS DE LOS OPERADORES............................................................................................. - 98 -

3.1.1 MÉTODO DE SELECCIÓN ..................................................................................................... - 100 -

3.1.2 MÉTODO DE RECOMBINACIÓN............................................................................................ - 101 -

3.1.3 NÚMERO DE HIJOS POR RECOMBINACIÓN........................................................................... - 103 -

3.1.4 GENERACIÓN DE LA POBLACIÓN INICIAL ........................................................................... - 104 -

3.1.5 MÉTODO DE MUTACIÓN...................................................................................................... - 106 -

3.1.5 PORCENTAJE DE MUTACIÓN ............................................................................................... - 107 -

3.1.6 PORCENTAJE DE ELITISMO.................................................................................................. - 109 -

3.1.7 MÉTODO DE SELECCIÓN DE LA NUEVA GENERACIÓN......................................................... - 110 -

3.1.8 TAMAÑO DE POBLACIÓN Y CANTIDAD DE HIJOS POR GENERACIÓN ................................... - 112 -

3.1.9 CANTIDAD DE GENERACIONES ........................................................................................... - 113 -

3.1.10 RESUMEN OPERADORES SELECCIONADOS ........................................................................ - 114 -

3.2 ANÁLISIS PROYECTO PARQUE LISBOA............................................................................... - 115 -

3.2.1 COSTO DE ADMINISTRACIÓN .............................................................................................. - 116 -

3.2.2 PENALIZACIONES................................................................................................................ - 118 -

3.2.3 CORRECCIÓN DE DURACIONES DE LAS ACTIVIDADES POR ESPERANZA PROBABILÍSTICA .. - 119 -

3.3 ANÁLISIS DEL PROYECTO DE CONSTRUCCIÓN ADICIONAL, ESCOMBRERA “GUADALCANAL”-

121 -

3.3.1 COSTO DE ADMINISTRACIÓN .............................................................................................. - 121 -

3.3.2 PENALIZACIONES................................................................................................................ - 123 -

3.3.3 CORRECCIÓN DE DURACIONES DE LAS ACTIVIDADES POR ESPERANZA PROBABILÍSTICA .. - 124 -

Page 6: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 6 -

4. CONCLUSIONES Y RECOMENDACIONES.................................................................. - 126 -

5. INVESTIGACIONES FUTURAS....................................................................................... - 131 -

6. SUGERENCIAS REALIZADAS EN LA SUSTENTACIÓN........................................... - 132 -

7. BIBLIOGRAFÍA................................................................................................................... - 134 -

ANEXOS.................................................................................................................................... - 137 -

Page 7: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 7 -

IMÁGENES

Imagen 1: Ejemplo de recombinación con un punto de cruce ..................................................................... - 15 -

Imagen 2: Ejemplo de recombinación con dos puntos de cruce y dos padres ............................................. - 15 -

Imagen 3: Ejemplo de recombinación con dos puntos de cruce y tres padres............................................. - 15 -

Imagen 4: Mutación en la 5ta posición de un cromosoma........................................................................... - 16 -

Imagen 5: Esquema de un proceso generalmente usado en los algoritmos genéticos................................. - 17 -

Imagen 6: Divisiones y subdivisiones de los costos de obra........................................................................ - 20 -

Imagen 7: Influencia de la duración en los costos de un proyecto .............................................................. - 22 -

Imagen 8: Influencia de la duración en los costos directos, indirectos y totales de un proyecto ................ - 23 -

Imagen 9: Ventajas y desventajas de las diferentes técnicas para el análisis de ICT.................................. - 24 -

Imagen 10: Duraciones máximas y mínimas de las actividades del ejemplo............................................... - 41 -

Imagen 11: Diagrama Pert del artículo de LEU y YANG (1999) ................................................................ - 41 -

Imagen 12: Ejemplo de cromosoma usado por Leu y Yang, duraciones de cada actividad ........................ - 42 -

Imagen 13: Cromosoma usado por Leu y Yang aplicado su ejemplo con un punto de cruce ...................... - 42 -

Imagen 14: Ejemplo de cromosoma usado por Cengiz. Fechas de comienzo de cada actividad................. - 43 -

Imagen 15: Cromosoma usado por Cengiz aplicado al ejemplo de Leu con un punto de cruce................. - 43 -

Imagen 16: Ejemplo de cromosoma usado por Hegazy y Petzold. Días de retraso de cada actividad y método

de cada actividad ......................................................................................................................................... - 43 -

Imagen 17: Cromosoma usado por Hegazy y Petzold aplicado al ejemplo de Leu con un punto de cruce - 44 -

Imagen 18: Ejemplo de cromosoma escogido. Primero información sobre duraciones y luego de retrasos

para cada actividad...................................................................................................................................... - 45 -

Imagen 19: Ejemplo de cromosoma escogido. La información sobre duraciones y retrasos de cada actividad

se encuentra unida ....................................................................................................................................... - 45 -

Imagen 20: Cromosoma indicando longitud de plantilla............................................................................. - 46 -

Imagen 21: Número de puntos de corte = Longitud del cromosoma -1....................................................... - 47 -

Imagen 22: Cromosoma con los alelos de cada actividad separados.......................................................... - 47 -

Imagen 23: Cromosoma con los alelos de cada actividad unidos ............................................................... - 48 -

Imagen 24: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos

separados y alelos unidos con un punto de cruce. ....................................................................................... - 49 -

Imagen 25: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos

separados y alelos unidos con dos puntos de cruce. .................................................................................... - 51 -

Imagen 26: Cromosoma con número posible de cortes igual a la longitud del cromosoma ....................... - 53 -

Imagen 27: Cromosoma con alelos de cada actividad separados .............................................................. - 54 -

Imagen 28: Cromosoma con alelos de cada actividad unidos ..................................................................... - 54 -

Page 8: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 8 -

Imagen 29: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos

separados y alelos unidos con un punto de cruce. ....................................................................................... - 56 -

Imagen 30: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos

separados y alelos unidos con dos puntos de cruce. .................................................................................... - 58 -

Imagen 31: Descripción sobre el contenido del archivo de EXCEL............................................................ - 60 -

Imagen 32 Descripción de las actividades, cantidad a realizar y límites de tiempo.................................... - 61 -

Imagen 33 Órdenes de precedencia ............................................................................................................. - 62 -

Imagen 34: Información de insumos utilizados en la obra .......................................................................... - 63 -

Imagen 35: Información relacionada con el análisis unitario de las actividades. ...................................... - 64 -

Imagen 36: Diagrama de flujo del algoritmo genético ................................................................................ - 67 -

Imagen 37: Población inicial aleatoria ....................................................................................................... - 68 -

Imagen 38: Población inicial aleatoria retraso 0 ........................................................................................ - 69 -

Imagen 39: Diagrama de flujo general para evaluación de valor de aptitud .............................................. - 70 -

Imagen 40: Diagrama de flujo para días de comienzo y finalización.......................................................... - 71 -

Imagen 41: Diagrama de flujo para cálculo de costos directos e indirectos............................................... - 73 -

Imagen 42: Diagrama de flujo para penalizaciones .................................................................................... - 74 -

Imagen 43: Cromosoma experimento controlado........................................................................................ - 75 -

Imagen 44: Características para cálculo..................................................................................................... - 75 -

Imagen 45: Días de comienzo y finalización de las actividades .................................................................. - 76 -

Imagen 46: Costos directos generados para cada actividad ....................................................................... - 77 -

Imagen 47: Costos totales generados para cada actividad ......................................................................... - 77 -

Imagen 48: Selección de los padres ............................................................................................................. - 78 -

Imagen 49: Población sin ordenar............................................................................................................... - 80 -

Imagen 50: Población ordenada de mejor a peor........................................................................................ - 81 -

Imagen 51: Población con valores de adaptación corregidas..................................................................... - 81 -

Imagen 52: Recombinación dos padres un punto ........................................................................................ - 83 -

Imagen 53: Recombinación dos padres dos puntos ..................................................................................... - 84 -

Imagen 54: Recombinación tres padres dos puntos..................................................................................... - 85 -

Imagen 55: Población de hijos en experimento controlado......................................................................... - 87 -

Imagen 56: Población de hijos mutados en experimento controlado .......................................................... - 87 -

Imagen 57: Características ejecución experimento controlado................................................................... - 90 -

Imagen 58: ejecuciones del algoritmo genético para experimento controlado ........................................... - 91 -

Imagen 59: Evolución promedio de la población ........................................................................................ - 92 -

Imagen 60: VPN mínimo encontrado en cada ejecución del experimento controlado ................................ - 92 -

Imagen 61: Análisis de duraciones para un cromosoma solución............................................................... - 93 -

Imagen 62: Cromosoma con diagrama de GANTT...................................................................................... - 95 -

Page 9: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 9 -

Imagen 63: Control del algoritmo genético ................................................................................................. - 97 -

Imagen 64: Reporte gráfico de la evolución del promedio de las poblaciones ........................................... - 97 -

Imagen 65: Parámetros fijos del estudio ................................................................................................... - 100 -

Imagen 66: Evolución de la población para métodos de la selección ....................................................... - 100 -

Imagen 67: Resumen de resultados promedio de las ejecuciones.............................................................. - 101 -

Imagen 68: Parámetros fijos del estudio ................................................................................................... - 101 -

Imagen 69: Evolución de la población para métodos de recombinación .................................................. - 102 -

Imagen 70: Resumen de resultados promedio de las ejecuciones.............................................................. - 102 -

Imagen 71: Parámetros fijos del estudio ................................................................................................... - 103 -

Imagen 72: Evolución de la población para hijos por recombinación ...................................................... - 103 -

Imagen 73: Resumen de resultados promedio de las ejecuciones.............................................................. - 104 -

Imagen 74: Parámetros fijos del estudio ................................................................................................... - 104 -

Imagen 75: Evolución de la población para tipos de generación de población inicial ............................. - 105 -

Imagen 76: Resumen de resultados promedio de las ejecuciones.............................................................. - 105 -

Imagen 77: Parámetros fijos del estudio ................................................................................................... - 106 -

Imagen 78: Evolución de la población para tipo de mutación .................................................................. - 106 -

Imagen 79: Resumen de resultados promedio de las ejecuciones.............................................................. - 107 -

Imagen 80: Parámetros fijos del estudio ................................................................................................... - 107 -

Imagen 81: Evolución de la población para porcentaje de mutación........................................................ - 108 -

Imagen 82: Resumen de resultados promedio de las ejecuciones.............................................................. - 108 -

Imagen 83: Parámetros fijos del estudio ................................................................................................... - 109 -

Imagen 84: Evolución de la población para porcentaje de elitismo.......................................................... - 109 -

Imagen 85: Resumen de resultados promedio de las ejecuciones.............................................................. - 110 -

Imagen 86: Parámetros fijos del estudio ................................................................................................... - 110 -

Imagen 87: Evolución de la población para selección de la nueva generación ........................................ - 111 -

Imagen 88: Resumen de resultados promedio de las ejecuciones.............................................................. - 111 -

Imagen 89: Parámetros fijos del estudio ................................................................................................... - 112 -

Imagen 90: Evolución de la población para cantidad de hijos y tamaño de población............................. - 112 -

Imagen 91: Resumen de resultados promedio de las ejecuciones.............................................................. - 112 -

Imagen 92: Parámetros fijos del estudio ................................................................................................... - 113 -

Imagen 93: Evolución de la población para cantidad de generaciones .................................................... - 113 -

Imagen 94: Valores mínimos encontrados para 5, 30 y 50 generaciones.................................................. - 114 -

Imagen 95: Resumen de resultados promedio de las ejecuciones.............................................................. - 114 -

Imagen 96: Operadores seleccionados ...................................................................................................... - 115 -

Imagen 97: Resultados del proyecto para distintos costos de administración........................................... - 116 -

Imagen 98: VPN del proyecto según el costo de administración............................................................... - 117 -

Page 10: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 10 -

Imagen 99: Duración del proyecto según costo de administración ........................................................... - 117 -

Imagen 100: Resultados del proyecto para las penalizaciones.................................................................. - 119 -

Imagen 101: Resultados del proyecto para duraciones normales y duraciones corregidas para esperanza de

ocurrencia .................................................................................................................................................. - 120 -

Imagen 102: Valor presente neto del proyecto para Tipos de duraciones del proyecto ............................ - 120 -

Imagen 103: Resultados del proyecto para distintos costos de administración......................................... - 121 -

Imagen 104: VPN del proyecto según el costo de administración............................................................. - 122 -

Imagen 105: Resultados del proyecto para las penalizaciones.................................................................. - 123 -

Imagen 106: Duración del proyecto según penalizaciones........................................................................ - 123 -

Imagen 107: Resultados del proyecto para duraciones normales y duraciones corregidas para esperanza de

ocurrencia .................................................................................................................................................. - 124 -

Imagen 108: Valor presente neto del proyecto para Tipos de duraciones del proyecto ............................ - 125 -

Page 11: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 11 -

INTRODUCCIÓN

En los últimos años se ha generado un gran interés por el estudio de la relación entre el

tiempo y el costo de los proyectos (Intercambio costo tiempo), siendo muy útil para

disminuir la duración de estos sin influir considerablemente en sus costos.

El tiempo que toma cada una de las actividades de construcción en una obra civil y las

relaciones existentes entre sí, son de vital importancia para el desarrollo de ésta, ya que se

encuentra estrechamente relacionada con su costo final. En el presente trabajo se pretende

analizar, con la ayuda de algoritmos genéticos, la relación entre los cambios que se realicen

en las duraciones de las actividades, los costos de administración y las penalizaciones

generadas por retraso en entregas del proyecto en el valor presente neto y la duración total

en la construcción de un parque urbano.

Page 12: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 12 -

1. MARCO CONCEPTUAL

1.1 ALGORITMOS EVOLUTIVOS

Debido a los diversos problemas de búsqueda y optimización encontrados en las

investigaciones y proyectos adelantados en los últimos tiempos, se han generado diferentes

herramientas para facilitar su estudio y análisis. En la rama de desarrollo y optimización de

problemas, entre algunas de estas soluciones se encuentran los algoritmos evolutivos (AE)

y la programación lineal. Su uso depende de la relación existente entre sus variables, la

cuales pueden ser lineales o no lineales, caso para los cuales, en la primer opción se prefiere

el uso de programación lineal, y en la segunda el uso de AE.

Los AE se basan, como su nombre lo indica, en la teoría de evolución de Darwin y los

procesos de la naturaleza. Algunos de los métodos desarrollados son mencionados por

Kalyanmoy Deb: optimización de colonia de hormigas, evolución simulada, computación

DNA y algoritmos culturales1. También se encuentran los algoritmos genéticos (AG), las

estrategias evolutivas y la programación evolutiva.

El fundamento de la estructura de los AE es la codificación generalmente en cadenas de la

solución a un problema, simulando un genotipo. Cuando este genotipo es decodificado en

su solución se encuentra el fenotipo: “Cuando vemos a una persona vemos la

representación fenotípica de esta, pero cada característica de la persona se encuentra

precisamente escrita en sus cromosomas”2 . Los genotipos se encuentran compuestos por

cromosomas y cada cromosoma a su vez por genes que toman ciertos valores denominados

alelos.

1 DEB, Kalyanmoy. Multi-objective optimization using evolutionary algorithms. Editorial John Wiley & Sons ltd, 2001 p: 81 2 Ibid. 86

Page 13: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 13 -

Los AE requieren funciones para evaluar el estado o valor al decodificar sus genotipos,

existen dos funciones usadas con este fin y son definidas por Coello3 como:

• Función objetivo: Define la optimización del AE (tiene que ver con el problema

matemático en sí).

• Función de adaptación: Mide qué tan bien una solución particular satisface una

condición y asigna un valor real a su solución (relacionado con el algoritmo). La

función de adaptación se basa en la teoría de Darwin que lo definió para miembros

de una población como“su habilidad para sobrevivir a los predadores, la

pestilencia y otros obstáculos que interfieran en su crecimiento y reproducción4”.

1.2 ALGORITMOS GENÉTICOS

John Holland de la universidad de Michigan fue la persona que introdujo el tema de los AG

que se encuentran dentro del grupo de los AE.

La idea general de los AG es crear cadenas o cromosomas, generalmente de manera

aleatoria. Posteriormente se les evalúa y asigna su función de adaptación para saber qué tan

bien se adecuan a las necesidades definidas y se aplican los operadores genéticos

(reproducción, recombinación y mutación entre otros) que se explicarán más adelante. Los

alelos con los que se trabaja en los algoritmos genéticos pueden ser números reales o

binarios. El funcionamiento de los operadores con los que se trabaja es muy similar para

ambos casos. A continuación se explican las tareas de los operadores para el caso binario

que podrán ser usadas igualmente para cadenas con números reales:

3 COELLO, Carlos. Evolutionary algorithms for solving multi-objective problems. Ciudad no disponible: Editorial Kluwer academic, 2002. p 23 4 GOLDBERG, David. Genetic algorithms in search optimization, and machine learning. Edición No 16 Ciudad no disponible: Editorial ADDISON-WESLEY, 1989. p 11

Page 14: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 14 -

• Reproducción: Su objetivo es hacer copias de cromosomas que representen una

buena solución al problema que se está atacando, sin aumentar el tamaño de la

población, esto se logra al eliminar las cadenas que tengan malos resultados por

medio de diferentes métodos. Estos son descritos por Deb Kalyanmoy (2001):

� Torneo: Se enfrentan dos soluciones seleccionando la mejor entre ellas para

pasar a la siguiente etapa. La idea es programar una buena organización de

los torneos para que cada cadena pueda participar dos veces con el fin de

que la mejor solución se copie dos veces (al sobrevivir ambos

enfrentamientos) y la peor desaparezca (al perder ambos enfrentamientos)

manteniendo el tamaño de la población.

� Selección proporcional: Se asigna un porcentaje de copia a la cadena al

relacionar su función de adaptación con la de la población. Después se

realiza una escogencia aleatoria (como en una ruleta), de esta manera, los

cromosomas con mayor porcentaje tendrán una probabilidad más alta de

copia que las malas. Este es un método lento, debido a la necesidad de

evaluar la función de adaptación promedio cada vez que se genere una

población.

� Escalafón: Dependiendo del valor de la función de adaptación, se clasifican

todas las soluciones de la peor a la mejor, teniendo una mayor probabilidad

la mejor cadena y aplicando luego, el método de selección proporcional5.

• Recombinación: Este es un operador usado para crear nuevas soluciones a partir del

cruce de cadenas predecesoras. Se escogen dos o más cromosomas aleatoriamente y

se selecciona uno o varios puntos de cruce para intercambiar su información, dando

origen a dos o más soluciones. Estas nuevas cadenas no siempre serán buenas, por

eso es que después se vuelven a someter al operador de reproducción.

5 DEB, Op. cit., p 89 - 92

Page 15: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 15 -

No es recomendable realizar recombinación a todas las cadenas de la población, por esta

razón se suele seleccionar un porcentaje mediante el cual se calcula la cantidad de cadenas

que quedarán intactas (generalmente las que mejor respondan a la función de adaptación).

A continuación se presentan esquemas para recombinaciones de un punto y de dos puntos

con uno y dos padres con todas sus combinaciones posibles que pueden ser muy útiles para

entender este operador:

Imagen 1: Ejemplo de recombinación con un punto de cruce

P1 1 0 0 0 1 1 H1 1 0 0 0 0 0

P2 1 1 1 0 0 0 H2 1 1 1 0 1 1

Imagen 2: Ejemplo de recombinación con dos puntos de cruce y dos padres

P1 1 0 0 0 1 1 H1 1 0 1 0 1 1

P2 1 1 1 0 0 0 H2 1 1 0 0 0 0

Imagen 3: Ejemplo de recombinación con dos puntos de cruce y tres padres

P1 1 0 0 0 1 1 H1 1 0 1 0 0 1

P2 1 1 1 0 0 0 H2 1 0 1 1 0 0

P3 0 1 1 1 0 1 H3 1 1 1 1 1 1 H4 1 1 0 0 0 1 H5 0 1 0 0 0 0 H6 0 1 1 0 1 1

Page 16: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 16 -

• Mutación: Mediante este proceso “se altera aleatoriamente la información de un

valor en la cadena”6, generando un cromosoma distinto al inicial. La función de

este operador es generar variedad en la población de esta manera: cuando se concibe

la población inicial, dependiendo de su tamaño, puede quedarse un gran número de

opciones por fuera del futuro estudio de las funciones, ya que por medio de la

reproducción y la recombinación se generarán algunas nuevas cadenas, pero pueden

quedar muchas otras sin estudiar, siendo factible el caso de encontrar soluciones

locales por no investigar un espacio más amplio. Al tener cambios aleatorios en

alguna posición del cromosoma, sería posible encontrar buenas o malas soluciones y

además ampliar el campo de búsqueda. Estos nuevos cromosomas sobrevivirán o

desaparecerán en las próximas generaciones dependiendo de su valor de adaptación

gracias al operador de reproducción.

Imagen 4: Mutación en la 5ta posición de un cromosoma

Pi 1 0 1 0 1 1

Pf 1 0 1 0 0 1

• Otros operadores: además de los mencionados anteriormente, también se encuentran

otros operadores que a pesar de no ser ampliamente utilizados, es importante

mencionarlos:

� Incremento-disminución: Consiste en incrementar o disminuir el valor de un

gen del cromosoma, para de esta manera, generar variedad en la población.

� Transposición: Consiste en intercambiar los valores entre dos genes de un

mismo cromosoma.

Un esquema del proceso de los operadores de los algoritmos genéticos se presenta a

continuación

6 GOLDBERG, Op. cit., p 14

Page 17: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 17 -

Imagen 5: Esquema de un proceso generalmente usado en los algoritmos genéticos

Fuente: Kalyanmoy Deb 7, traducido por Jairo Ossa

Cuando el problema implica trabajar con números de gran magnitud, no se recomienda el

uso del alfabeto binario, ya que las cadenas serían muy extensas y el algoritmo seria más

complejo. Para estos casos es mejor trabajar con números reales.

En los textos desarrollados por David Goldberg (1989) y por Kalyanmoy Deb (2001) se

encuentran buenos ejemplos ilustrativos sobre el funcionamiento de los AG y su teoría.

Recomendados para las personas que quieran saber más sobre el tema.

7 DEB, Op. Cit., p 87

Iniciar población

Generación=0

Evaluar y asignar función de adaptación

¿Satisface?

Si.

Reproducción

No

Recombinación

Mutación

Generación = Generación + 1

Fin.

Page 18: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 18 -

1.3 ACTIVIDADES DE CONSTRUCCIÓN EN PROYECTOS

Debido a la complejidad que implica la realización de cualquier proyecto, este suele

dividirse en actividades para tener un control apropiado sobre su ejecución. Cada una de las

actividades debe tener ciertas características que lo definen, como son:

• Deben ser claramente identificables

• Deben ser realizadas en un momento especifico

• Toman un tiempo determinado para su realización

• Consumen recursos humanos y físicos

• Tienen un costo económico8.

Las actividades de un proyecto deben estar relacionadas para darle continuidad, es decir, se

debe definir que actividades deben estar realizadas o en proceso para poder continuar las

siguientes. Estas relaciones pueden ser de distintos tipos dependiendo de su ubicación en el

tiempo, y se clasifican como actividades concatenadas, paralelas y desfasadas.

• Actividades concatenadas: Son las que sólo pueden ser realizadas en el momento

en el que su actividad predecesora haya sido terminada por completo, como por

ejemplo, es necesario haber levantado los muros antes de pintarlos, entonces la

actividad de construcción de muros y pintura son concatenadas.

• Actividades paralelas: Son las que pueden ser realizadas al mismo tiempo, sin

importar si los recursos necesarios para su realización son compartidos o

independientes. Un ejemplo de esto es la construcción de camino en adoquín y

empradización, que no tiene interferencia una con la otra y pueden ser realizadas al

mismo tiempo.

8 Anónimo. Programación de la construcción y control de obra [on line] www.katodos.com/doctos/e22e4d511d5e40892af541dbf29b3ca2. consultado el 1 de marzo de 2005

Page 19: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 19 -

• Actividades desfasadas: Son muy similares a las actividades concatenadas pero no

es necesario que la actividad predecesora haya sido terminada por completo para

comenzar la siguiente. Es el caso de actividades como adecuación del piso de las

canchas de Baloncesto e instalación de tableros, ya que no es necesario que la

primera haya finalizado totalmente para comenzar la segunda.

La secuencia de actividades concatenadas que implique el mayor tiempo de realización se

conoce como ruta crítica. Esta es la secuencia a la que se le debe prestar mayor atención

debido a que por su naturaleza, en el momento que se genere una demora o un adelanto en

alguna de sus actividades, cambiará la duración total del proyecto. Para el caso de

actividades que no se encuentren dentro de la ruta crítica, existirá un tiempo de holgura que

representa la duración que se puede prolongar la actividad sin que interfiera con sus

sucesoras.

La realización de las actividades de obra implica un costo que suele dividirse en costos

indirectos y directos entendidos como:

• Costos directos: Gastos por materiales, mano de obra y equipos necesarios para la

realización de un proceso productivo.

• Costos indirectos: Gastos administrativos y técnicos asociados a la realización de un

producto final (en este caso un proyecto).

A su vez estos costos tienen otras subdivisiones:

Page 20: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 20 -

Imagen 6: Divisiones y subdivisiones de los costos de obra

DE OPERACIÓN

INDIRECTOS DE OBRA

COSTOS

PRELIMINARES

DIRECTOS FINALES

Fuente: Carlos Suárez9

La definición de cada una de estas subdivisiones se encuentra a continuación:

• Costos de operación: Suma de gastos que por su naturaleza intrínseca son de

aplicación a todas las obras efectuadas en un tiempo determinado

• Costos de obra: Suma de gastos que por su naturaleza intrínseca son aplicables a

todos los conceptos de una obra en especial.

• Costos preliminares: Suma de gastos de material, mano de obra y equipo necesario

para la realización de un subproducto.

• Costo directo final: Sumatoria de gatos de material, mano de obra, equipo y

subproductos para la realización de un producto.

1.4 PARQUE URBANO

Es definido por la real academia española como: “Terreno ubicado dentro de una

población, con plantas, árboles, jardines, mobiliario de recreación y ornato destinado a un

servicio publico, especialmente al recreo de la comunidad”10. Para el caso específico de

este trabajo de grado, se tendrá un parque urbano de aproximadamente 10000 m2 de área,

que cumple con la definición mencionada anteriormente, ubicado en la ciudad de Bogotá.

9 SUAREZ Carlos, Costo y tiempo en edificación. 2da edición. editorial Limusa Wiley S.A 1971. p 25 10 REAL ACADEMIA ESPAÑOLA, Diccionario de la lengua española vigésima segunda edición 2001

Page 21: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 21 -

1.5 INTERCAMBIO COSTO TIEMPO:

El intercambio entre el costo y el tiempo (ICT) es una herramienta que es ampliamente

usada desde que fue estudiada por primera vez hace aproximadamente cuarenta años por

J.E. Kelley y M.R. Walter11. Su uso tiene como fin disminuir la duración del proyecto, más

específicamente la ruta crítica, sin influir considerablemente en sus costos, y de esta manera

“recibir bonos por entregas tempranas, liberar restricciones de actividades y evitar

daños”12.

Consiste en suponer para cada actividad, métodos constructivos distintos al variar sus

duraciones, es decir, para disminuir el tiempo de una actividad puede necesitarse un mayor

número de mano de obra, incrementando el precio de la actividad y tomando esto como un

método constructivo diferente al inicial.

Una actividad realizada en su duración normal tendrá unos costos directos asociados (ver

imagen 7 punto C), a medida que se reduce su duración los costos directos aumentarán (ver

imagen 7 punto A), esto debido principalmente a que para terminar una actividad antes del

tiempo estipulado inicialmente será necesario trabajar con una mayor cantidad de obreros

(como se mencionó anteriormente) o trabajar horas extras. El comportamiento del costo

directo contra la duración se puede apreciar en la imagen 7:

11 Martin Skutella, Problema del intercambio costo-tiempo [on line] http://www.math.tu-berlin.de/coga/research/scheduling/tctp/ . consultado el 1 Marzo de 2005 12 HEGAZY, Tarek. Computer based construction Project Management. New Jersey: Editorial Prentice Hall, 2002. p 212

Page 22: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 22 -

Imagen 7: Influencia de la duración en los costos de un proyecto

Duración

Costo Directo

Fuente: Tarek Hegazy13. Traducido por Jairo Ossa

El caso contrario se dará para los costos indirectos, debido a que a menor duración de la

actividad, menor tiempo en pago de salarios al personal de obra (mano de obra, celador,

almacenista, profesionales, etc).

Al analizar independientemente los costos directos e indirectos como se explicó

anteriormente y sumarlos, se podrá hallar un punto donde los costos totales serán bajos, este

comportamiento se observa en la imagen 8:

13 Ibid. p 212

Page 23: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 23 -

Imagen 8: Influencia de la duración en los costos directos, indirectos y totales de un proyecto

Duración del proyecto

Costo del proyecto

CostosdirectosCostosindirectosCosto total

Fuente: Tarek Hegazy14, traducido por Jairo Ossa

Los intercambios de costo-tiempo pueden ser abordados por medio de distintas técnicas,

algunas de estas son métodos Heurísticos, modelos de programación matemática y

algoritmos genéticos. Las ventajas y desventajas de cada una de estas herramientas para el

análisis son descritas por Hegazy (2002):

14Ibid. p 213

Page 24: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 24 -

Imagen 9: Ventajas y desventajas de las diferentes técnicas para el análisis de ICT

TÉCNICAS PARA EL ANÁLISIS DE ICT

Métodos heurísticos Modelos de programación matemática

Algoritmos genéticos

Descripción Reglas simples de "dedo gordo"

Programación lineal, programación de enteros o programación dinámica

Búsqueda de optimización basada en teoría de la evolución y reproducción

1.Fácil de entender 1. Algoritmos con gran espacio de búsqueda

2.Genera buenas soluciones

2. Pueden usarse relaciones tiempo-costo discretas Ventajas

3.Usado para proyectos de gran tamaño

1.Puede generar soluciones óptimas

3. Aplicable a problemas de gran tamaño

1. Deficiencia en bases matemáticas

1. Difícil de formular 1. Tiempos de compilación altos

2. No garantiza soluciones óptimas

2. Las soluciones encontradas pueden ser mínimos locales

3. Generalmente asume relaciones entre tiempo y costo lineales en lugar de asumir relaciones discretas

Desventajas 3. Generalmente asume relaciones entre tiempo y costo lineales en lugar de

asumir relaciones discretas 4. Sólo aplica para problemas

de tamaño pequeño

2. No se puede saber si se ha encontrado o cuando se ha

encontrado una solución óptima

Fuente: Tarek Hegazy15, traducido por Jairo Ossa

1.6 VALOR PRESENTE NETO

Este es un método usado como criterio de selección para la realización de proyectos, que

consiste en evaluar la diferencia entre los egresos e ingresos generados a lo largo de la

realización o construcción de un proyecto y trasladarlos al valor presente.

15Ibid. p 213

Page 25: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 25 -

Es ampliamente usado debido a su facil aplicación y a que éste incorpora el valor del dinero

en el tiempo para determinar los flujos de efectivo netos, para el caso de este trabajo de

grado, en la construcción de una obra de ingeniería civil, con el fin de poder hacer

comparaciones entre los flujos de efectivo que se generan en periodos definidos a lo largo

de la duración del proyecto. La manera de trasladar los flujos, es calculado mediante la tasa

de interés o la tasa de oportunidad, que puede ser definida por el mercado o por la

esperanza de interés del constructor o dueño del proyecto.

El uso del método del valor presente neto es muy útil, algunas de sus ventajas se mencionan

a continuación:

� Facil aplicación

� Uso del concepto del valor del dinero en el tiempo: Es necesario debido a que el

valor del dinero se encuentra en constante cambio, entonces las inversiones

realizadas en distintos periodos pueden variar.

� Decisión correcta de aceptación o rechazo del proyecto: Al realizar una estimación

correcta de los flujos de caja que se presentarán a lo largo de los periodos, se puede

tomar una decisión confiable sobre la rentabilidad del proyecto.

Uno de los aspectos a los que se debe prestar mayor atención cuando se usa el método del

valor presente neto, es la tasa de oportunidad que vaya a ser usada, ya que el cálculo es muy

sensible a la magnitud de la tasa seleccionada, a mayor tasa de interes, menor será el valor

presente neto, y en caso de estimar una tasa de interés u oportunidad incorrecta, los

resultados pueden ser muy diferentes en el momento de la construcción.

La expresión utilizada para trasladar los flujos de caja a valor presente se presenta a

continuación:

( )∑= +

m

pp

p

i

E

1 1

Page 26: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 26 -

Dónde:

p: 1,2,…, m Periodo en el que se encuentra actualmente el proyecto

Ep: Egreso en el periodo p

i: Tasa de interes u oportunidad del inversionista

1.7 ESTIMACIONES DE DURACIONES PARA MÉTODO DE PERT

Debido a la gran incertidumbre que existe en las duraciones de las actividades de un

proyecto, se pueden usar ciertas estimaciones, para encontrar la probabilidad de terminar el

proyecto en una fecha esperada16.

Para esto se deben definir tres estimaciones de duraciones para el proyecto:

• La más probable: Es la duración que se cree, tenga la mayor probabilidad de

ocurrencia.

• La más optimista: Es la duración en la que se realizaría una actividad si no se

presentaran inconvenientes durante su ejecución.

• La más pesimista: Es la duración en la que se realizaría una actividad en el caso en

que se presentaran inconvenientes durante la construcción.

Para hallar este valor esperado de la actividad, se hacen las siguientes dos suposiciones:

• La dispersión entre la duración optimista (a) y la duración pesimista (b) es de seis

desviaciones estándar, esto debido a que “las colas de muchas distribuciones de

probabilidad (como en la distribución normal) están mas o menos a tres

desviaciones estándar de la media de manera que existe una dispersión de alrededor

de seis desviaciones estándar entre las colas” (Hillier 1997).

16 HILLIER, Frederick y LIEBERMAN. Introducción a la investigación de operaciones. Méjico DF: Editorial McGraw-Hill, Sexta edición 1997. p 396

Page 27: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 27 -

Esta suposición es expresada como:

( )2

2

6

16

−=→−= abab σσ Ecuación 1

• La distribución de probabilidad del tiempo de la actividad es una distribución beta,

es decir, con una sola moda y dos puntos terminales.

Con estas dos suposiciones se puede expresar el valor esperado como se muestra a

continuación:

( )

++= bamte

2

12

3

1 Ecuación 2

Dónde:

a: Estimación optimista

b: Estimación pesimista

m: Estimación más probable.

Teniendo la Variancia (Ecuación 1) y el tiempo esperado (Ecuación 2) para cada actividad

y definiendo una probabilidad de ocurrencia para una duración en la actividad, se pueden

hallar los días que se pueden quitar a la duración de la actividad en sus límites superior e

inferior:

kdec *= Ecuación 3

Page 28: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 28 -

Dónde: c: Días que se descuentan para la duración máxima y que se aumentan en la duración

mínima

d: Desviación estándar, Variancia

k: valor k asociado al área bajo la curva normal para la mitad del complemento de la

probabilidad de esperanza que se quiere. Es decir, si se quiere una esperanza de ocurrencia

del 90%, se debe hallar el valor k asociado al área bajo la curva normal del 5%, y como se

descuenta en la duración máxima y mínima de la actividad, se completa el 10% necesario.

Page 29: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 29 -

2. DESCRIPCIÓN DEL CASO

El problema a estudiar en este trabajo de grado se apoya en los datos reales de la

construcción de un parque urbano localizado en la ciudad de Bogotá y realizada en el año

2004. Por medio de la información encontrada en el análisis de precios unitarios de esta

obra, su presupuesto y duraciones se analizará la relación de los cambios realizados en los

espacios de tiempo de las actividades de la obra y su VPN, con el fin de encontrar una

programación de obra adecuada, es decir, la duración total del proyecto para la cual el costo

de realización será más bajo.

El parque se encuentra ubicado en la avenida 9ª entre calles 135 y 136 en el costado

occidental. Este consta de 30 actividades dividas en seis capítulos y consiste básicamente

en la adecuación del terreno del parque y la dotación e instalación de mobiliario urbano y

de recreación.

La idea de la realización de este trabajo de grado surgió con la intención de aplicar en

Colombia el concepto usado por Dodin y Elimam17 (desarrollado sobre proyectos

realizados en Estados Unidos) a un proyecto real de construcción. Aunque esta

investigación se basa en la mencionada anteriormente, existen algunas diferencias debido a

que la manera de abordar la minimización de costos es totalmente distinta y el escenario de

trabajo en Colombia es diferente al de Estados Unidos.

Algunas de las diferencias presentadas entre Colombia y el país donde fue realizada la

investigación inicialmente (Estados Unidos), se tendrán en cuenta en el desarrollo de este

trabajo. Estas, tendrán influencia en los costos y duraciones de las actividades e igualmente

generarán grandes diferencias en los modelos matemáticos de minimización del costo así:

17 DODIN, B y ELIMAM, A. Integrated Project scheduling and material planning with variable activity duration and rewards. En: IIE Transactions.Volumen 33 Número 11; Marzo de 2001; p 1005-1018.

Page 30: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 30 -

∗ En Colombia ocasionalmente se emplean penalizaciones monetarias (contratos con

empresas del Estado y algunos particulares) por retraso en entregas, pero no existen

bonificaciones monetarias por tiempos en obra menores a los requeridos. Dodin

(2001) tuvo en cuenta estos factores en su investigación, pero en este trabajo no se

usarán, ya que no son muy comunes los incentivos por finalización temprana en los

proyectos de construcción Colombianos.

∗ Las entregas de pedido de materiales no siempre se realizan a tiempo, ya sea por

falta de organización del proveedor o por las condiciones en las que se encuentre

el país en el momento (cierre de vías, paros de transporte, situación social del país,

etc.). Este factor será tenido en cuenta como un tiempo extra en las duraciones

máximas de las actividades, es decir, si se define una duración máxima de 10 días

para una actividad, también se debe tener en cuenta la influencia de la

disponibilidad de insumos en esta, adicionando unos días a la duración máxima,

pudiendo terminar en el día 12 o 13.

∗ No en todas las obras hay un buen manejo e inventario de materiales, facilitando

robos, generando desperdicios, expiración de insumos etc., además usualmente

existe falta de capacitación de la mano de obra que implica mayores tiempos en la

construcción y aumentos en los desperdicios. Al igual que en la entrega de

materiales, este factor será incluido como un tiempo extra de las duraciones

máximas de las actividades.

∗ Clima meteorológico muy variable, que en algunos casos puede retrasar el

desarrollo del proyecto debido a los constantes cambios de temperatura que se

pueden dar en un día de trabajo. Este se tendrá en cuenta en las duraciones

máximas, al igual que en los dos puntos anteriores.

El hecho de que el enfoque de este trabajo sea para el caso colombiano, no quiere decir que

las herramientas usadas para el análisis no puedan ser empleadas para casos de proyectos

Page 31: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 31 -

que no sean realizados en este país o que no sean parques urbanos como se observará más

adelante, porque la esencia del trabajo en sí y las diferencias mencionadas anteriormente se

encuentran incluidas en los parámetros y características de las actividades que influirán

directamente en los resultados arrojados, pero que no tiene nada que ver con el

funcionamiento de las herramientas.

Los datos que se usarán para la realización de este trabajo fueron obtenidos del análisis de

precios unitarios presentado por Construcciones Jairo Antonio Ossa en la licitación para la

construcción del parque y por asesoría de personas con experiencia en realización de

proyectos y obras. La información requerida corresponde a datos sobre los insumos,

rendimientos de maquinaria y mano de obra, relaciones de precedencia entre actividades y

costos en general.

Este análisis se apoyará en el uso de AG, debido a que el modelo matemático no es lineal

(descartando la posibilidad de realizar el análisis por medio de programación lineal como

fue realizado en el trabajo de Dodin (2001)) y se debe estudiar un campo de posibilidades

muy amplio como se mostrará a continuación:

Existen 30 actividades de construcción del parque a realizar. Como se mencionará más

adelante, habrá dos características que definirán cada actividad, una para la duración y otra

para el retraso o días de holgura permitidos. La siguiente expresión permite calcular el

número de combinaciones posibles en el caso de buscar exhaustivamente la mejor solución

del problema:

∏∀ a

aa rd *

Dónde:

da: Duraciones posibles de la actividad a

ra: Retrasos posibles para actividad a

A: {1,2,…,30} conjunto de actividades del proyecto

Page 32: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 32 -

Para hacer el cálculo de la cantidad de combinaciones que puedan ser estudiadas y del

tiempo que pueda tomar, se hallaron las duraciones de cada actividad y los retrasos

posibles, que oscilan entre 5 y 10 días y además se supuso que el análisis de cada

cromosoma toma aproximadamente 2 segundos, de esta manera el número de opciones de

combinación existentes y el tiempo para calificarlas será:

4510*65.4=nesCombinacio

Tiempo = 9.3 * 1045 segundos = 2.58 * 1042 horas = 2.95*1036 siglos

Para esta labor será indispensable el uso de una computadora que permita la exploración de

algunas combinaciones de duraciones (obviamente no será posible llevar a cabo el estudio a

todas las opciones), que como explica Hegazy (2002) los AG son una excelente

herramienta para estos casos.

El procedimiento seguido fue el siguiente:

• Definición de las características necesarias de las actividades.

• Suposiciones para aproximar el estudio del problema.

• Desarrollo del modelo matemático.

• Definición de la información que debe contener el cromosoma

• Clasificación de la información

• Programación del algoritmo genético.

• Resultados.

Page 33: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 33 -

2.1 DEFINICIÓN DE LAS CARACTERÍSTICAS NECESARIAS DE LAS ACTIVIDADES

Las características de las actividades se encuentran relacionadas con los costos directos y

los costos indirectos, que se encuentran afectados por los imprevistos que puedan suceder

en la construcción. A continuación se presentan las características definidas para las

actividades:

2.1.1 COSTOS DIRECTOS

Son los generados por los gastos que implica la realización de cada actividad:

Actividad:

• Tiempo de duración mínimo

• Tiempo de duración máximo

• Cantidad a ejecutar

Materiales

• Cantidad de material necesario para la actividad

• Valor unitario del material

Herramienta

• Costo de herramienta usada por cuadrilla

• Cantidad de herramienta usada por cada cuadrilla de mano de obra

Equipo

• Alquiler equipo por unidad de tiempo

• Rendimiento del equipo en actividad

Mano de obra

• Costo mano de obra por unidad de tiempo

• Rendimiento de la mano de obra

Page 34: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 34 -

2.1.2 COSTOS INDIRECTOS

• Gastos de administración por cada periodo definido por el usuario

2.1.3 RETRASOS POSIBLES Los posibles inconvenientes serán tenidos en cuenta como días adicionales en las

duraciones máximas de cada actividad.

• Clima • Fecha de entrega materiales • Manejo de materiales (robos, desperdicios, expiración) • Variación precios insumos

Las características definidas en esta sección son totalmente nuevas, razón por la cual el

modelo matemático será distinto al usado en la investigación original.

2.2 SUPOSICIONES PARA APROXIMAR EL ESTUDIO DEL PROBLEMA

De acuerdo a las características del problema que se analiza en este trabajo de grado, se

tienen en cuenta las siguientes suposiciones

• No habrá recompensa por terminar las actividades antes del tiempo estipulado.

• Se dispondrá de dinero permanentemente, es decir, no se tendrán en cuenta créditos

ni préstamos, ya que por las especificaciones de la obra, se espera que el valor de la

construcción pueda ser costeada inicialmente por el contratista.

• Se definirán duraciones máximas, mínimas y retrasos posibles para la realización de

cada actividad.

• Las duraciones de actividades se trabajarán por días.

Page 35: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 35 -

• Una jornada o día de trabajo será equivalente a 8 horas y se trabajará de lunes a

sábado, entonces un periodo tendrá 26 días al descontar los domingos.

• Los retrasos generados por el clima, fecha de entrega de materiales, manejo de

materiales y otros son contemplados como un tiempo extra en la duración máxima

de las actividades, es decir, las actividades que se vean afectadas en mayor grado

por estos retrasos, tendrán la adición de unos días extra además de su límite de

duración máximo (asesoría de personas con experiencia en el tema) que permita

cubrir distintos tipos de demoras.

• Debido a que se espera que el proyecto no dure mucho tiempo, la variación de

precios de insumos y mano de obra no afectará drásticamente los costos de la obra y

por lo tanto, no serán tenidos en cuenta. Para el caso de proyectos de larga duración,

se debe realizar un presupuesto que tenga en cuenta una variación de los precios de

insumos y jornales esperada.

• Los insumos se encontrarán disponibles en obra tan pronto sean necesitados, desde

el primer día de cada actividad.

• La relación entre actividades será de naturaleza concatenada, es decir, se debe

terminar por completo la actividad predecesora para comenzar la siguiente. Esto no

suele suceder muy seguido en los proyectos reales, donde no sólo se encuentran

actividades concatenadas, sino también desfasadas y paralelas.

• El costo de una actividad en su duración total podrá ser desglosada por días,

suponiendo gastos proporcionales diarios

2.3 MODELO MATEMÁTICO

El modelo matemático diseñado para este análisis incluye costos asociados al desarrollo del

proyecto en dos distintas áreas: Costos directos (generados por el desarrollo en sí de la

obra) que incluye gastos por materiales, mano de obra, herramienta y equipos, y costos

indirectos (asociados con la supervisión y apoyo).

Page 36: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 36 -

Inicialmente se había incluido en el análisis un factor de cálculo que tenía en cuenta los

costos asociados por almacenamiento del material, es decir, influía en los costos directos

dependiendo de la cantidad que fuera necesario tener en reserva para realizar la actividad.

Después de consultar con personas con experiencia en obra, fue retirado porque estos

costos no son muy importantes ya que, en la mayoría de obras, se exige la construcción de

un campamento, donde se pueden almacenar los materiales. Este campamento debe ser

construido sin importar la limitación de espacio.

A diferencia del modelo presentado por Dodin y Elimam (2001), quienes se enfocan

totalmente en los costos asociados a los materiales, en este modelo matemático, se tienen en

cuenta otros factores para el cálculo de la minimización que fueron mencionados

anteriormente (Costo por herramienta, alquiler de equipo, mano de obra y el costo de

administración). Estos nuevos factores surgen debido a la naturaleza del proyecto

(construcción) mientras que los investigadores originales trabajan proyectos de producción

industrial (no lo especifican en el artículo, se supone por el contexto).

Page 37: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 37 -

Conjuntos:

A: {1, 2,…, n} Actividades del proyecto

P: {1, 2,…, m} Periodos de tiempo

Zn: Actividades predecesoras de la actividad n AZn ⊆ n∀

K: {1,2,…..o} Tipos de mano de obra

E: {1,2,…..,p} Tipo de equipo

J: {1,2,……,q} Tipo de material

H:{1,2,……,r} Tipo de herramienta

Parámetros:

Dj,a: Demanda de recurso j para la actividad a por unidad de actividad

Uj: Costo unitario del recurso j

Rk,a: Rendimiento de la mano de obra k en la actividad a

Ye,a: Rendimiento del equipo e en la actividad a

Vk,a: Valor unitario de la mano de obra k por realizar actividad a para duración normal

Qa: Cantidad a ejecutar en la actividad a

Ma: Duración máxima de la actividad a

Na: Duración mínima de la actividad a

Le,a: Costo alquiler equipo e por realizar la actividad a para una duración normal

Gp: Costo administración por periodo

Xh,k,a: Costo de herramienta usada por unidad de mano de obra k para unidad de actividad a

i: Tasa de interés de oportunidad

Variables

ma,k: Cantidad de cuadrillas k necesarias para realizar unidad de actividad a

la,e: Cantidad de equipo e necesario para realizar unidad de actividad a

da: Duración de la actividad a

ca,p: Costo de la actividad a en el periodo p

sa: Día de inicio de la actividad a

fa: Día de finalización de la actividad a

ep: Egreso en el periodo p

yh,a: Desgaste por unidad de tiempo de la herramienta h para actividad a

Page 38: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 38 -

Función objetivo

( )∑=

++

m

pi

pp pGeMin1

1

1*)(

Ecuación 4

Restricciones:

∑=

=n

a

pap ce1

, p∀ Ecuación 5

( ) ( )∑∑∀∀

++=h

ah

j

ajajpa yQUDC ,,, **

(a) (b)

( ) ( )akka

e

eaae QVmlQL **** ,. +∑∀

a∀ Ecuación 6

(c) (d)

aka

aka Rd

Qm

,*,

81

= a∀ k∀ Ecuación 7

aakhkaah QXmy ** ,,,, = a∀ h∀ Ecuación 8

aea

aea Yd

Ql

,*,

81

= a∀ e∀ Ecuación 9

0, =pac asp <∀ a∀ Ecuación 10

0, =pac afp >∀ a∀ Ecuación 11

aaa MdN ≤≤ a∀ Ecuación 12

0>− aa sf a∀ Ecuación 13

01 ≥−+ aa fs a∀ Ecuación 14

Page 39: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 39 -

En la ecuación (4) se indica la intención de minimizar el VPN de todos los egresos. La

ecuación (5) define la manera en que se calcularán los egresos, siendo una suma de los

costos directos para cada actividad (ecuación 6). La ecuación (6) muestra los costos

directos asociados a la realización de cada actividad de la siguiente manera: La sección (a)

corresponde al valor de materiales para la actividad a así: cantidad de material necesario

para realizar una unidad de la actividad por el costo unitario de los materiales por la

cantidad de actividad necesaria. La sección (b) se relaciona con los costos por desgaste de

herramienta que salen de la ecuación (8), que depende de la cantidad de mano de obra que

interviene en la realización de la actividad y el desgaste por cada cuadrilla. La sección (c)

obedece a los gastos de equipos y la (d) a los gastos de mano de obra.

En la expresión (7) se encuentra la definición de la demanda de mano de obra que es muy

similar a la ecuación (9) que muestra la demanda de maquinaria para una actividad, éstas

consisten en encontrar la cantidad de actividad que debe ser ejecutada a diario y

relacionarla al rendimiento de la mano de obra o de la máquina, teniendo en cuenta que

éstos se dan por horas y es necesaria su transformación a días (jornales de 8 horas). Todas

éstas se encuentran incluidas en la ecuación (6).

Las siguientes ecuaciones presentadas son restricciones; la (10) y (11) expresan que si una

actividad no se ha comenzado en el periodo que se está estudiando o la actividad ha

terminado el nuevo periodo que se está estudiando, su costo asociado será cero. La

expresión (12) restringe la duración de una actividad a sus límites máximo y mínimo, en la

ecuación (13) se especifica que la duración de una actividad debe ser mayor a cero

unidades y en la (14) se dice que una actividad no podrá comenzar sin que sus predecesores

hayan terminado.

Page 40: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 40 -

2.4 DEFINICIÓN DE LA INFORMACIÓN QUE CONTENDRÁ EL CROMOSOMA

2.4.1 Información del cromosoma

En la función objetivo, se observa que la información necesaria para resolverla se encuentra

en su mayoría en función del tiempo. Sabiendo esto, se debe diseñar un cromosoma que

contenga información sobre duración de actividades, pero la decisión del cromosoma que

se quiere usar no puede ser tomada a la ligera, ya que se podrían generar soluciones

infactibles o cromosomas que involucrarían revisiones para prevenirlas, que implicaría un

gasto de tiempo innecesario en la ejecución de la aplicación.

A continuación se presentan cromosomas que han sido usados por algunos autores en

distintas investigaciones, y que se aplicaron para este problema en el ejemplo del artículo

de Sou-Sen Leu y Chung-Huei Yang18, con el fin de estudiar las ventajas y desventajas de

cada una de las codificaciones. De esta manera se diseñó un cromosoma que respondió de

manera acertada a las necesidades de este trabajo de grado. Para este análisis se trabajó con

recombinación de un punto. El ejemplo contiene la siguiente información:

18LEU, Sou y YANG, Chung. GA-Based multicriteria optimal model for construction scheduling. Journal of construction engineering and management.Volumen 125 Número 6; Diciembre de 1999; p 425

Page 41: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 41 -

Imagen 10: Duraciones máximas y mínimas de las actividades del ejemplo

Duración

Actividad Mínima Máxima

A 2 3

C 2 6

B 4 5

E 3 4

L 2 4

F 4 7

G 4 7

M 2 3

N 5 5

P 2 4

Q 1 1

Imagen 11: Diagrama Pert del artículo de LEU y YANG (1999)

A

B

C G

MFQ

PE L

N

(2,3)

(3,4)(4,5) (2,4) (2,4)

(1,1)

(2,6)

(4,7)

(4,7)

(2,3)

(5,5)

Actividad

Leyenda: (Duración mínima, Duración máxima)

Fuente: Sou Leu19 Traducido por Jairo Ossa

El punto de cruce para la reproducción se encuentra entre la actividad L y la actividad F.

19 Ibid 425

Page 42: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 42 -

• Sou-Sen Leu y Chung-Huei Yang12 usaron cromosomas cuyos genes contenían la

información sobre las duraciones de cada actividad. Al aplicarla en un ejemplo se

encontró:

Imagen 12: Ejemplo de cromosoma usado por Leu y Yang, duraciones de cada actividad

A B C D E F G H I Actividad

3 4 6 4 3 2 4 4 2 Duración de actividad

Imagen 13: Cromosoma usado por Leu y Yang aplicado su ejemplo con un punto de cruce

Orden precedencia A C B E L F G M N P Q Rutas críticas posibles Duración

crítica

Padre 1 2 2 5 4 2 7 4 2 5 4 1 18 18 21 20 18 15 14 21

Padre 2 3 4 4 3 3 5 5 3 5 3 1 17 17 19 18 19 19 18 19 Duración

Padre 3 3 6 4 4 4 4 7 3 5 4 1 20 19 19 17 22 24 22 24

P1+P2 2 2 5 4 2 5 5 3 5 3 1 17 18 19 18 19 16 15 19

P1+P3 2 2 5 4 2 4 7 3 5 4 1 18 19 19 17 22 19 17 22

P2+P3 3 4 4 3 3 4 7 3 5 4 1 18 18 19 17 22 22 20 22

P2+P1 3 4 4 3 3 7 4 2 5 4 1 18 17 21 20 18 18 17 21

P3+P1 3 6 4 4 4 7 4 2 5 4 1 20 18 21 20 18 20 19 21

Generación 1

P3+P2 3 6 4 4 4 5 5 3 5 3 1 19 18 19 18 19 21 20 21

Ventaja

Al momento de cruzar cromosomas para generar una población no habrá soluciones

infactibles.

Desventaja

Se obligará a cada actividad a empezar lo más rápido que se pueda, sin dar espacio

para actividades con tiempo de holgura.

• Y. Cengiz20 usó cromosomas cuyos genes contenían información sobre las fechas

de comienzo de cada actividad. Al aplicarlo al ejemplo se encontró lo siguiente:

20 CENGIZ, Y. Application of genetic algorithms to construction scheduling with or without resource constrains. En: Canadian journal of civil engineering. Vol 29 No 3Junio de 2002. p 423

Page 43: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 43 -

Imagen 14: Ejemplo de cromosoma usado por Cengiz. Fechas de comienzo de cada actividad

A B C D E F G H I Actividad 3 4 6 4 3 2 4 4 2 Fechas de comienzo de actividad

Imagen 15: Cromosoma usado por Cengiz aplicado al ejemplo de Leu con un punto de cruce

Orden precedencia A C B E L F G M N P Q Padre 1 0 2 2 6 9 6 6 10 10 12 15

Duración Padre 2 0 3 3 8 12 8 8 13 13 16 17 P1+P2 0 2 2 6 9 8 8 13 13 16 17

Generación 1 P2+P1 0 3 3 8 12 6 6 10 10 12 15

Desventaja

Al momento de cruzar cromosomas para generar una población se pueden generar

soluciones infactibles, como se observa en la generación P2 + P1 donde la actividad

L y la actividad P comienzan el mismo día, sabiendo que L es predecesora de P

(Imagen 15).

• Hegazy y Petzold21 usaron cromosomas con dos genes para cada actividad, basados

en lo que ellos llaman “el síndrome del estudiante”. La primera parte del

cromosoma son días de retraso para no empezar la actividad lo más temprano

posible, sino, empezarla con demoras. La siguiente parte de la cadena es sobre

método de realización usado para cada actividad, definiendo 3 métodos por cada

una.

Imagen 16: Ejemplo de cromosoma usado por Hegazy y Petzold. Días de retraso de cada actividad y método de cada actividad

1 2 3 4 … N 1 2 3 4 … N

1 5 3 2 … 2 2 1 3 2 … 1

Días de retraso Método de construcción N: Número de actividades

21 HEGAZY Y PETZOLD. Genetic optimization for dynamic project control. En Journal of construction engineering and management. Vol. 129 no. 4 Julio 2003. p 401

Page 44: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 44 -

Imagen 17: Cromosoma usado por Hegazy y Petzold aplicado al ejemplo de Leu con un punto de cruce

Ventaja

Con los días de retraso no se generan infactibilidades y no se obliga a la actividad a

empezar lo más temprano posible.

Desventaja

Generalmente, en los proyectos de construcción se trabaja con un método por cada

actividad, por lo tanto sería escasa la información para codificar el cromosoma.

2.4.2 Contenido de cromosoma escogido

Después de analizar las ventajas y desventajas de cada cromosoma, se decidió trabajar con

una cadena que contendrá dos características por cada actividad. El primer gen tendrá la

información sobre su duración y el segundo contendrá la información sobre los días de

retraso de cada actividad. De esta manera se garantiza que no existirán generaciones con

información infactible, como se observó en los ejemplos mencionados anteriormente y que

las actividades no se encontrarán obligadas a comenzar lo más temprano posible, ya que se

trabajará con genes que retrasarán el comienzo de las actividades permitiendo la holgura. A

continuación se muestra un ejemplo del cromosoma escogido:

Orden precedencia A C B E L F G M N P Q Rutas críticas posibles Duración crítica

Duración P 1 1 4 1 1 2 3 3 1 0 2 0 21 20 23 21 23 24 22 24 P 2 0 3 1 0 1 3 2 1 0 1 0 17 17 21 20 20 20 19 21

P 3 1 2 0 1 2 1 3 0 0 0 0 18 16 17 18 19 19 20 20 Generación P1+P2 1 4 1 1 2 3 2 1 0 1 0 20 19 22 21 21 22 21 22 1 P1+P3 1 4 1 1 2 1 3 0 0 0 0 19 17 18 19 20 21 22 22 P2+P3 0 3 1 0 1 1 3 0 0 0 0 16 15 17 18 19 19 20 20 P2+P1 0 3 1 0 1 3 3 1 0 2 0 18 18 22 20 22 22 20 22 P3+P1 1 2 0 1 2 3 3 1 0 2 0 20 19 22 20 22 22 20 22 P3+P2 1 2 0 1 2 3 2 1 0 1 0 19 18 21 20 20 20 19 21

Page 45: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 45 -

Imagen 18: Ejemplo de cromosoma escogido. Primero información sobre duraciones y luego de retrasos para cada actividad

Duración generada

Días de retraso

Actividad A C B E … Q A C B E … Q

2 4 4 4 … 1 0 2 1 0 … 0

Puesto que cada actividad estará contenida por dos alelos, la configuración del cromosoma

podría darse de dos maneras, la primera opción es que inicialmente se encuentre la cadena

de duraciones y luego la de días de retraso, teniendo así los dos genes de cada actividad

separados. La segunda opción es tener los dos alelos de la actividad pegados como se

muestra en la Imagen 19:

Imagen 19: Ejemplo de cromosoma escogido. La información sobre duraciones y retrasos de cada actividad se encuentra unida

Duraciones

Actividad A A B B C C D D E E F F G G2 1 4 2 5 3 3 1 1 0 3 0 1 0

Retrasos

Page 46: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 46 -

2.4.3 Configuración del cromosoma

Para tomar la decisión sobre la configuración del cromosoma, se observó la influencia de

las distribuciones mencionadas en la teoría de las plantillas similares22.

Al evaluar la función de adaptación de un grupo de cromosomas e identificar los que mejor

respondan, puede darse el caso que se reconozcan características similares en el cromosoma

y que éstas sean las que mejoren su adaptación. Si esto sucede se suele dejar estos puntos

fijos, es decir, la porción de cadena que se encuentre entre los puntos identificados se

denomina plantilla y se desea que esta se transmita a sus hijos, con el fin de esperar

generaciones futuras mejores. En el momento de realizar la recombinación se corre el

riesgo de que un punto o alguno de los puntos de corte caigan dentro de la plantilla que se

quiere mantener unida y destruya su información. Un ejemplo ilustrativo ayudará a

entender mejor el concepto:

Imagen 20: Cromosoma indicando longitud de plantilla

2 1 4 2 5 3 3 1 1 0 3 0 1 0

Longitud de cadena deseada (plantilla)

Se puede observar que solo dos puntos son necesarios, pero debido a su separación el

tamaño de la plantilla será de 7 posiciones, dentro de las cuales no puede caer un punto de

corte ya que se destruiría la porción deseada.

Ahora, entendiendo este concepto se estudiará cual de las dos opciones mencionadas

previamente será mejor, tomando como ejemplo un proyecto de 7 actividades en las cuales

es necesario mantener la plantilla de duración-retraso para una actividad, caso que será muy

posible encontrar en el desarrollo de este trabajo (para este ejemplo, la tercera actividad).

22 GOLDBERG, Op. cit. p 19

Page 47: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 47 -

Trabajando con recombinación de uno y dos puntos y una configuración que implique

tantos puntos de corte como elementos del cromosoma o un punto menos de corte que la

cantidad de elementos de la cadena, se observará cual tipo de arreglo es más conveniente, al

analizar curvas de probabilidad de mantener la plantilla vs. longitud del cromosoma, esta

última directamente relacionada con la dimensión de la plantilla.

Para el análisis se tendrá en cuenta que:

• N: Número de actividades * 2

• L: Longitud de la plantilla

• A: Longitud de la cadena a la izquierda de la plantilla

• B: Longitud de la cadena a la derecha de la plantilla

2.4.3.1 Análisis para puntos de corte menor a elementos del cromosoma

Este es el caso en el que el número posible de cortes es igual a la longitud del cromosoma

menos 1 (Imagen 21).

Imagen 21: Número de puntos de corte = Longitud del cromosoma -1

Actividad A A B B C C D D E E F F G G

2 1 4 2 5 3 3 1 1 0 3 0 1 0

Imagen 22: Cromosoma con los alelos de cada actividad separados

A L B

Actividad A B C D E F G A B C D E F G2 1 4 2 5 3 3 1 1 0 3 0 1 0

Duraciones Retrasos

Page 48: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 48 -

Imagen 23: Cromosoma con los alelos de cada actividad unidos

A L B

Actividad A A B B C C D D E E F F G G2 1 4 2 5 3 3 1 1 0 3 0 1 0

2.4.3.1.1 Para 1 punto de corte:

La probabilidad de mantener la plantilla unida es:

( ) ( )( )1

11

−−−=

n

LnPl Ecuación 15

Expresado como la cantidad de puntos posibles por fuera de la plantilla del cromosoma

dividido en el total de puntos, siendo para este caso igual a la longitud del cromosoma

menos uno.

• Alelos de la actividad separados (Imagen 22)

Para este caso la dimensión L de la plantilla será igual a:

12 += nL Ecuación 16

Donde L es reemplazado en la ecuación 15 para encontrar la probabilidad de mantener la

plantilla unida.

� Alelos de la actividad unidos (

� Imagen 23)

Page 49: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 49 -

Para este caso la dimensión L de la plantilla será igual a 2

2=L Ecuación 17

Dónde L es reemplazado en la ecuación 15 para encontrar la probabilidad de mantener la

plantilla unida.

La curva de probabilidades se muestra a continuación:

Imagen 24: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos separados y alelos unidos con un punto de cruce.

0.00

0.20

0.40

0.60

0.80

1.00

0 10 20 30 40 50

N

Probabilidad

Alelos separados

Alelos unidos

2.4.3.1.2 Para 2 puntos de corte:

La probabilidad de mantener la plantilla unidad depende ahora de dos puntos posibles de

corte:

( ) ( )( )

( ) ( )( )

( ) ( )( )

( ) ( )( )

−−−−+

−−−−

−−−−+

−−−−=

1

11

1

11*

1

11

1

11

n

ALn

n

BLn

n

ALn

n

BLnPl Ecuación 18

Page 50: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 50 -

(1) (2) (3) (4)

( ) ( )( )

( ) ( )( )

2

1

11

1

11

−−−−+

−−−−=

n

ALn

n

BLnPl

( ) ( )( )

2

1

1*21*2

−−−−−=

n

ABLnPl

( )

2

1

22

−−−=

n

ABLnPl Ecuación 19

La ecuación 18 expresa la probabilidad de mantener la plantilla unida, pero para este caso

hay que tener en cuenta que habrá dos puntos de recombinación. En las secciones (1) y (2)

se tiene en cuenta la posibilidad de que el primer punto caiga por fuera de la plantilla, en

(1) se tiene en cuenta la cantidad de puntos de recombinación posibles a la izquierda de la

plantilla (longitud de A) y en (2) se tiene en cuenta la cantidad correspondiente a la derecha

de la plantilla (Longitud de B), ambas divididas entre la cantidad de puntos total. Como la

recombinación puede darse en A o en B, las relaciones se suman. Puesto que el siguiente

punto de recombinación se encontrará sujeto a exactamente las mismas condiciones

mencionadas anteriormente, (3) y (4) será igual a (1) y (2).

Después se simplifica la expresión llegando a la ecuación 19.

• Alelos de la actividad separados (Imagen 22)

Para este caso la dimensión L de la plantilla será igual a:

12 += nL Ecuación 20

Page 51: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 51 -

Dónde L es reemplazado en la ecuación 16 para encontrar la probabilidad de mantener la

plantilla unida.

� Alelos de la actividad unidos (

� Imagen 23)

Para este caso la dimensión L de la plantilla será igual a 2

2=L Ecuación 21

Dónde L es reemplazado en la ecuación 19 para encontrar la probabilidad de mantener la

plantilla unida.

La curva de probabilidades se muestra a continuación

Imagen 25: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos separados y alelos unidos con dos puntos de cruce. Probabilidad de mantener la plantilla unida vs N

0.000.100.200.300.400.500.600.700.800.901.00

0 10 20 30 40 50

N

Probabilidad

Alelos separados

Alelos unidos

Page 52: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 52 -

Para estas situaciones (1 y 2 puntos) la mejor opción posible se encuentra cuando la

configuración del cromosoma tiene los alelos unidos, ya que en el caso de identificar una

plantilla similar de los genes de una misma actividad, su probabilidad de no destruir los

datos deseados es mucho más alta, sobre todo cuando no se trabaja con 1 sino con más

puntos de cruce, caso para el cual, en el arreglo de alelos separados disminuye

considerablemente la probabilidad de unión de la plantilla.

También se puede observar que entre más largo sea el cromosoma, mayor probabilidad de

unión en la distribución de alelos unidos, comportándose, para ambos casos (1 y 2 puntos)

asintóticamente al 100%.

Page 53: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 53 -

2.4.3.2 Análisis para puntos de corte igual a elementos de cromosoma

Este es el caso en el que el número posible de cortes es igual a la longitud del cromosoma,

un esquema que puede explicar esta situación se encuentra en la Imagen 26.

Imagen 26: Cromosoma con número posible de cortes igual a la longitud del cromosoma

Page 54: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 54 -

Imagen 27: Cromosoma con alelos de cada actividad separados

Imagen 28: Cromosoma con alelos de cada actividad unidos

Page 55: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 55 -

Para este caso el número de puntos posibles de corte es igual al número de elementos de la

cadena, entonces las probabilidades para 1 y 2 puntos quedarán así:

2.4.3.2.1 Para 1 punto de corte:

La probabilidad de mantener la plantilla unida es:

( )n

LnPl

1−−= Ecuación 22

Expresado como la cantidad de puntos posibles por fuera de la plantilla divido en el total de

puntos, siendo para este caso igual a la longitud del cromosoma

• Alelos de la actividad separados (Imagen 27)

Para este caso la dimensión L de la plantilla será igual a:

Ecuación 23

Dónde L es remplazado en la ecuación 22 para encontrar la probabilidad de mantener la

plantilla unida.

• Alelos de la actividad unidos (Imagen 28)

Para este caso la dimensión L de la plantilla será igual a 2

2=L Ecuación 24

Dónde L es remplazado en la ecuación 22 para encontrar la probabilidad de mantener la

plantilla unida.

12 += nL

Page 56: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 56 -

La curva de probabilidades se muestra a continuación:

Imagen 29: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos separados y alelos unidos con un punto de cruce.

0.00

0.20

0.40

0.60

0.80

1.00

0 10 20 30 40 50

N

Probabilidad

Alelos separados

Alelos unidos

2.4.3.2.2 Para 2 puntos de corte:

La probabilidad de mantener la plantilla unida es:

( ) ( )

−−

−−=

n

Ln

n

LnPl

1*

1 Ecuación 25

(1) (2)

( ) 21

−−=

n

LnPl

Page 57: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 57 -

21

1

−−=

n

LPl Ecuación 26

La ecuación 25 expresa la probabilidad de mantener la plantilla unida, pero para este caso

hay que tener en cuenta que habrá dos puntos de recombinación. En la sección (1) se tiene

en cuenta la posibilidad de que el primer punto caiga por fuera de la plantilla, es decir, la

cantidad posible de puntos de corte por fuera de esta dividida entre la cantidad de puntos

total. Como el siguiente punto de recombinación se encontrará sujeto a exactamente la

misma condición mencionada anteriormente, (2) será igual a (1).

Después se simplifica la expresión llegando a la ecuación 26.

• Alelos de la actividad separados (Imagen 27)

Para este caso la dimensión L de la plantilla será igual a:

12 += nL

Dónde L es remplazado en la ecuación 26 para encontrar la probabilidad de mantener la

plantilla unida.

• Alelos de la actividad unidos (Imagen 28)

Para este caso la dimensión L de la plantilla será igual a 2

2=L

Dónde L es remplazado en la ecuación 26 para encontrar la probabilidad de mantener la

plantilla unida.

Page 58: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 58 -

La curva de probabilidades se muestra a continuación:

Imagen 30: Probabilidad de mantener la plantilla unida vs. longitud del cromosoma para el caso de alelos separados y alelos unidos con dos puntos de cruce.

0.00

0.20

0.40

0.60

0.80

1.00

0 10 20 30 40 50

N

Probabilidad

Alelos separados

Alelos unidos

Para estas situaciones (1 y 2 puntos), al igual que en el escenario visto anteriormente, la

mejor opción posible se encuentra cuando la configuración del cromosoma tiene los alelos

unidos, debido a que la probabilidad de no destruir los datos deseados es más alta y tiende a

un 100% a medida que aumenta el número de actividades del proyecto. Si se observa el

arreglo de alelos separados, este disminuye a medida que aumenta el número de puntos de

corte y no varía con la longitud del cromosoma, haciendo menos atractivo su uso para el

trabajo.

Como se ha advertido en el comportamiento de las configuraciones de los alelos con ayuda

de las gráficas, se decidió trabajar con el arreglo de genes unidos, además, al comparar sus

probabilidades de unión para el caso de número de puntos menor al número de elementos y

número de puntos igual al número de elementos, no se percibe una gran diferencia en las

magnitudes de las posibilidades de unión, es más, los porcentajes son muy parecidos y el

Page 59: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 59 -

desempeño de ambos es igual (comportamiento asintótico al 100% a medida que crece la

longitud del cromosoma). Para efectos de facilidad en la programación del AG, se usará el

caso de número de puntos posibles para la recombinación menor al total de genes. Pues

como se expresó previamente la cantidad de puntos no será muy influyente en la teoría de

las plantillas similares.

2.5 CLASIFICACIÓN DE LA INFORMACIÓN

A continuación se presentan los datos, que como se mencionó en la sección 2.2, serán

necesarios para estudiar el problema. Esta información se divide en costos directos e

indirectos.

La información se organizó en una tabla de Excel, la cual servirá de formato para estudiar

cualquier proyecto que se quiera analizar debido a que la programación del algoritmo se

encontrará referenciada a las diferentes posiciones en la página. Por esto es muy importante

la ubicación de cada una de las características del proyecto en las columnas o filas

definidas, ya que cualquier cambio alteraría totalmente el funcionamiento del programa.

El archivo se encuentra dividido en diferentes hojas, donde cada una contiene cierta

información del proyecto y el algoritmo, organizado de la siguiente manera:

Page 60: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 60 -

Imagen 31: Descripción sobre el contenido del archivo de EXCEL

HOJA DESCRIPCIÓN

Insumos Contiene el listado de todos los insumos que serán usados en la obra

Unitarios Análisis de precios unitarios para cada actividad

Precedencias Relación de precedencia para todas las actividades del proyecto

Actividades Descripción sobre la cantidad y duración de cada una de las actividades

Población Individuos candidatos a ser padres en la generación actual. Clasificados por columnas

Pob_intermedia La primera columna contiene la información sobre los padres de la generación. A partir de ésta se encuentran los hijos

Pob_mejores Individuos escogidos para continuar a la siguiente generación

Resultados previos Almacena los mejores cromosomas de cada corrida

Control Se definen todos los parámetros bajo los cuales se ejecutará el algoritmo genético

Reporte Información sobre los resultados finales de la ejecución del algoritmo

Reporte gráfico Gráfica sobre la evolución del valor de adaptación promedio para cada ejecución del algoritmo a través de las diferentes generaciones

Para la presentación de la información y los formatos, se emplearán las características de un

experimento controlado que fue usado para la validación del algoritmo genético (sección

2.6). Este proyecto corresponde a la pavimentación de los lotes números 135 C, D, E, F y G

de automotriz interamericana S.A. y tiene seis actividades.

La información completa para el experimento controlado y los demás proyectos que se

analizaron en este trabajo de grado se puede encontrar en el anexo 1.

Page 61: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 61 -

2.5.1 Costos directos

• Relacionado con las actividades: información de las duraciones (mínimas, máximas

con adiciones por retrasos posibles y retraso permitido), unidad, cantidad y órdenes

de precedencia de cada actividad.

Imagen 32 Descripción de las actividades, cantidad a realizar y límites de tiempo

Dónde:

• Columna A: Es el código de la actividad

• Columna B: descripción de la actividad

• Columna C: Unidades en las que se cuantifica la actividad

Page 62: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 62 -

• Columna D: Cantidad de actividad que debe ser realizada

• Columna E: Duración máxima permitida para la actividad

• Columna F: Duración mínima permitida para la actividad

• Columna G: Retraso u holgura máxima permitida para la actividad

Imagen 33 Órdenes de precedencia

Dónde en la columna de predecesoras se indica la o las actividades que deben

encontrarse terminadas antes de empezar con la realización de la actividad actual. Para

el caso del experimento controlado, cada actividad solo tiene una predecesora. Cuando

los proyectos contienen más de una predecesora, estas se ubican de izquierda a derecha

en la fila de la actividad actual.

• Relacionada con el costo de los insumos: se presentan los insumos que fueron

usados en la construcción con sus respectivas unidades, código y precios unitarios.

Page 63: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 63 -

Imagen 34: Información de insumos utilizados en la obra

Dónde:

• Columna A: indica el código del insumo

• Columna B: descripción del insumo

• Columna C: indica las unidades en las que se cuantifica el insumo

• Columna D: es el costo del insumo por unidad

• Columna E: tipo de insumo. Estos pueden ser: herramienta, equipo, material o mano

de obra

Page 64: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 64 -

• Relacionada con análisis de precios unitarios: Actividad a la que pertenece, insumo

usado, cantidad, rendimiento y costos.

Imagen 35: Información relacionada con el análisis unitario de las actividades.

Dónde:

• Columna A: indica la actividad a la cual pertenece el insumo

• Columna B: indica el código del insumo que se usa en la actividad

• Columna C: indica la cantidad de insumo necesario, para el caso de materiales

• Columna D: indica el rendimiento del insumo para herramienta, mano de obra y

equipo. Para el caso de materiales toma el mismo valor que se encuentra en la

columna C

Page 65: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 65 -

• Columna E: Es el costo que implica el uso de herramienta por cuadrilla de trabajo

para la actividad

• Columna F: Costo de mano de obra por realización de la actividad en tiempo

ordinario

• Columna G: Costo de equipo por realización de la actividad en tiempo ordinario

2.5.2 Costos indirectos Son los costos generados cada periodo (en este caso mensualmente) por los gastos de

administración.

Gastos Administrativos = $ 13’300.000

El detalle de los gastos administrativos para el experimento controlado y para los demás

proyectos estudiados en este trabajo de grado se puede ver en el ANEXO 2.

2.6 PROGRAMACIÓN DEL ALGORITMO GENÉTICO

Como se mencionó en la sección 1.2, existen diversos operadores que pueden ser usados en

los algoritmos genéticos. En esta sección se mencionarán y explicarán los operadores que

fueron programados para este trabajo de grado, y además se ilustrará cada uno de estos con

un experimento controlado, el cual consta de 6 actividades y es un proyecto para la

adecuación y pavimentación de lotes de 540 m2. En esta explicación se trabajó con un

tamaño de población de 5 cromosomas y 10 hijos por generación.

El uso y análisis del experimento controlado se realizó con el fin de comprender mejor los

operadores programados y validarlos.

Page 66: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 66 -

El algoritmo fue programado en lenguaje Visual Basic y Microsoft Excel, debido a la

necesidad de definir las características del proyecto como información de entrada al

programa, características que, como se explica en la sección 2.5, se encuentran clasificadas

en una hoja de Excel. Además este Software, en el ámbito de la ingeniería civil, para

cualquiera de sus áreas, es de común uso y de fácil acceso, haciéndolo una alternativa muy

atractiva y práctica.

El diagrama de flujo del programa se puede observar en la Imagen 36. A continuación se

explica su funcionamiento y las diferentes alternativas para cada operador.

Page 67: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 67 -

Imagen 36: Diagrama de flujo del algoritmo genético

Generar población inicial

Recombinación

Selección

Evaluación

Evaluación Hijos

Mutación

Fin

Nueva generación

¿Es la generación actualmenor o igual al númerototal de generaciones?

No

Si

Page 68: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 68 -

2.6.1 Generación de la población inicial

El tamaño de la población, es decir, la cantidad de cromosomas que serán escogidos en

cada generación para convertirse en padres, será definido por el usuario. Pero para el primer

ciclo o generación del algoritmo, los padres deben ser creados en la hoja “Población”, la

cuál contiene un individuo por cada columna a partir de la tercera fila. Las dos primeras

filas son espacios reservados para el valor de adaptación de cada cromosoma.

Se escogieron tres alternativas para este operador:

2.6.1.2 Población inicial aleatoria

Para este caso, los alelos del cromosoma son ocupados por valores aleatorios, pero teniendo

cuidado de no sobrepasar los límites establecidos en las características de las actividades

para sus duraciones y los retrasos (Imagen 32). La población generada para el experimento

controlado se observa en la Imagen 37.

Imagen 37: Población inicial aleatoria

Page 69: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 69 -

Al comparar la Imagen 32 con la Imagen 37 se puede afirmar que las duraciones y los

retrasos generados aleatoriamente se encuentran dentro de los rangos establecidos

2.6.1.2 Población inicial retraso 0

Para este caso, los alelos del cromosoma que representan duración son ocupados por

valores aleatorios, teniendo cuidado de no sobrepasar los límites establecidos en las

características de las actividades (Imagen 32), todos los retrasos que sean generados

tendrán un valor de cero, con el fin de tener la posibilidad de estudiar comportamientos

cuando no existe holgura entre actividades. La población generada para el experimento

controlado en este caso se observa en la Imagen 38.

Imagen 38: Población inicial aleatoria retraso 0

Al comparar la Imagen 32 con la Imagen 38 se puede afirmar que las duraciones generadas

aleatoriamente se encuentran dentro de los rangos establecidos, además que todos los

retrasos tienen valor cero.

Page 70: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 70 -

2.6.1.3 Población inicial mejores anteriores

Cada vez que el programa se corre, al final del ciclo, es decir cuando se ha completado el

número total de generaciones, se identifica el mejor cromosoma y se almacena en una

sección especial que tiene como fin recopilar buenas soluciones y poder crear poblaciones

iniciales a partir de resultados previos, teniendo la oportunidad de analizar nuevos espacios

de soluciones partiendo de soluciones no aleatorias.

Esta alternativa escoge al azar un número de padres igual al tamaño de población desde la

hoja de almacenamiento de resultados históricos. En caso de no existir un número

suficiente de cromosomas históricos, se completa la diferencia con cromosomas aleatorios.

2.6.2 Evaluación de cromosomas

Esta función evalúa el valor de aptitud de los cromosomas, siguiendo 3 pasos básicos de la

siguiente manera:

Imagen 39: Diagrama de flujo general para evaluación de valor de aptitud

Encontrar días de comienzo y finalizaciónde cada actividad

Penalizar el cromosoma en caso deexceder el plazo máximo de realizacióndel proyecto o encontrar cromosomashijos igual a algún cromosoma padre.

Calcular costos directos e indirectos delproyecto

Page 71: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 71 -

2.6.2.1 Calculo de costos Cada uno de estos pasos sigue los siguientes procedimientos:

2.6.2.1.1 Días de comienzo y finalización

Imagen 40: Diagrama de flujo para días de comienzo y finalización

Encontrar el número máximo de predecesoras que tiene cada actividad del proyecto

Llenar matriz original() con el código de todas las actividades y el código de cada una de sus predecesoras

Encontrar actividades sin predecesoras, hallar sus días de comienzo y finalización y borrarlas de la matriz original().Luego enviarlas a la matriz listas(), la cual tiene el código de la actividad, su día de comienzo y su día de finalización.

Para cada actividad: ¿todas sus predecesoras se

encuentran en la matriz listas()?

Borrar la actividad de la matrizoriginal() y enviarla a la matriz

listas().

Si

Revisa la siguiente actividad

No

¿Esta vacía lamatriz

original()?

No

Si

Definir finalización del proyecto,al identificar actividad con día

mayor de finalización

FIN

Page 72: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 72 -

Este procedimiento es muy importante, ya que se debe identificar en que periodo o

periodos, para este caso meses, se esta realizando la actividad, para asignar su costo directo

al espacio de tiempo correspondiente y poder trasladarlos a VPN.

Además al buscar en la matriz listas () el día de finalización más tardío, se puede identificar

la terminación del proyecto, dato que será importante para el análisis de la solución

encontrada.

Page 73: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 73 -

2.6.2.1.2 Costos directos e indirectos del proyecto

Imagen 41: Diagrama de flujo para cálculo de costos directos e indirectos

Por medio de la duración del proyecto, definir el número de periodos en los que se realiza la obra

Clasificar los insumos de cada actividad en la matriz insumos(), la cual contiene toda su información asociada (código,cantidad, rendimiento, precio unitario, tipo, costo de la cantidad de herramienta, costo ordinario de la mano de obra y costo

ordinario de la maquinaria)

Evaluar el costo de cada insumo para la actividad dependiendo de su tipo (Mano de obra, material, herramienta, maquinaria)

¿La actividades realizadaen un soloperiodo?

Definir el día de comienzo y finalización de cada actividad, esta información se encuentra en la matriz listas()

Adicionar el costo de laactividad al periodo

correspondiente

Si

Calcular la proporción de laactividad realizada en cadaperiodo y asignar los costos

proporcionalmente

No

Sumar los costos poradministración a cada

periodo

Convertir los gastos decada periodo a VPN

FIN

Page 74: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 74 -

2.6.2.1.3 Penalizaciones

Existen dos tipos de penalizaciones para los individuos de la población:

Cuando un hijo es igual a un padre, se corre el riesgo de que éste individuo se adueñe de la

población, es decir, cada vez que se generan cromosomas iguales, se multiplica la

probabilidad de que éste sea escogido ya que su presencia es cada vez mayor. El problema

puede ser evitado al penalizar los hijos que sean iguales a los padres, para hacerlos

indeseables en la selección de la nueva generación. Se penalizará multiplicando el valor de

la función objetivo por mil.

Cuando se firma un contrato de construcción existe un compromiso en la fecha de entrega

de la obra. Si esta fecha es excedida, suele cobrarse un uno por ciento del valor del contrato

por cada día de retraso. Para el caso de este trabajo de grado, se definió el plazo máximo de

cada proyecto, con el fin de aplicar las sanciones en la eventualidad de excederlo.

Imagen 42: Diagrama de flujo para penalizaciones

¿La duración delproyecto es mayor

a la permitida?

Adicionar 1% del costo totaldel proyecto por cada dia que

se exceda

Si

No

FIN

¿Es un hijo igual auno de los padres?

Multiplicar su valorde adaptación por mil

Si

No

Page 75: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 75 -

2.6.2.2 Validación del cálculo de la función objetivo

Para la validación del algoritmo se continuará trabajando con el experimento controlado.

Tomando un individuo cualquiera, se calculó su valor de adaptación manualmente y por

medio del Macro, esperando los mismos resultados.

El cromosoma escogido para la validación con su costo hallado por medio del macro se

encuentra en la Imagen 43

Imagen 43: Cromosoma experimento controlado

$ 212,247,743

11 5 22 1 4 0 10 5 16 4 1 8

Las características definidas para su cálculo fueron las siguientes:

Imagen 44: Características para cálculo

Característica Valor

Días que tiene un periodo 26

Plazo máximo del proyecto 52

Costo de administración por periodo $13,300,000

Tasa de oportunidad del inversionista 5%

Page 76: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 76 -

Con la información del cromosoma de la Imagen 43, y las relaciones de precedencia de la

Imagen 33 se calculó el día de comienzo y finalización de cada actividad de la siguiente

manera:

Imagen 45: Días de comienzo y finalización de las actividades

Actividad Duración Retraso Actividad

predecesora

Finalización

actividad

predecesora

Comienzo Final

1 11 5 3 19 25 35

2 22 1 1 35 37 58

3 4 0 4 15 16 19

4 10 5 0 - 6 15

5 16 4 2 58 63 78

6 1 8 5 78 87 87

Como se puede observar, aunque la actividad 4 no tenga predecesoras, su realización

comienza el día 6, debido a los 5 días de retraso generados en el cromosoma.

La fecha de finalización para este proyecto es el día 87, en el cual finaliza la última

actividad (actividad 6). Sabiendo esto, y el número de días que tiene un periodo, se puede

calcular la cantidad de periodos en las que se realiza el proyecto:

meses434.326

87≈= Ecuación 27

Los costos por cada una de las actividades, se calcularon por medio de las ecuaciones

encontradas en la sección 2.3 y la información del proyecto que se presenta en el ANEXO

1. A continuación se indican los resultados:

Page 77: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 77 -

Imagen 46: Costos directos generados para cada actividad

Actividad

Costo 1 2 3 4 5 6

Mano de obra $ 4,901,912 $ 1,867,500 $ 230,492 $ 414,165 $ 780,200 $ 20,000

Materiales $ 32,034,318 $ 9,450,977 $ 918,206 $ 2,637,210 $ 63,728,993 $ 4,979,400

Equipo $ 1,508,760 $ 0 $ 0 $ 0 $ 0 $ 0

Herramienta $ 521,208 $ 224,100 $ 1,152 $ 20,700 $ 234,060 $ 600

Total $ 38,966,198 $ 11,542,577 $ 1,149,850 $ 3,072,075 $ 64,743,253 $ 5,000,000

Mes 1 directos $ 7,013,825 $ 0 $ 1,149,850 $ 3,072,075 $ 0 $ 0

Mes 2 directos $ 31,951,872 $ 8,310,655 $ 0 $ 0 $ 0 $ 0

Mes 3 directos $ 0 $ 3,231,921 $ 0 $ 0 $ 64,743,253 $ 0

Mes 4 directos $ 0 $ 0 $ 0 $ 0 $ 0 $ 5,000,000

Imagen 47: Costos totales generados para cada actividad

Mes 1 Mes 2 Mes 3 Mes 4

Costos directos $ 11,235,750 $ 40,262,527 $ 67,975,174 $ 5,000,000 Costos

indirectos $ 13,300,000 $ 13,300,000 $ 13,300,000 $ 13,300,000

Total $ 24,535,750 $ 53,562,527 $ 81,275,174 $ 18,300,000

Al trasladar todos los valores generados a VPN con un índice de oportunidad del 5% se

obtiene.

VPN $ 157,220,000

Como el plazo máximo de finalización del proyecto es de 52 días y el cromosoma evaluado

tiene una duración de 87 días, se debe penalizar el individuo por los 35 días que se excede,

aumentando el valor del VPN un 35%.

VPN $ 212,247,000

Page 78: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 78 -

Como se puede observar, el VPN hallado manualmente concuerda con el encontrado por

medio del Macro. Para la información detallada sobre el cálculo del VPN en el experimento

controlado observar el ANEXO 3.

2.6.3 Selección

Este operador es el encargado de seleccionar los cromosomas que se convertirán en padres,

fundamentado básicamente en el valor de la función de adaptación de cada uno de los

individuos.

Se programaron cuatro distintas opciones para el operador. Cada una de estas elige un

número de individuos para convertirse en padres y ubica su identificación (columna en la

que se encuentra el cromosoma en la hoja “Población”) en la primera columna de la hoja

“Pob_intermedia”, como se muestra en la siguiente imagen:

Imagen 48: Selección de los padres

Page 79: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 79 -

Como se puede observar, el primer padre se encuentra en la segunda columna de la hoja

“Población”, el segundo padre se encuentra en la quinta columna de la hoja “Población” y

así sucesivamente hasta completar todos los padres. Hay que tener en cuenta que no se

pueden elegir dos padres iguales seguidos, ya que al recombinarlos, el hijo será igual al

padre, caso que no es deseable para evitar que este individuo se adueñe de la población.

El número de padres elegidos depende del número de hijos, el tipo de recombinación y el

número de hijos por recombinación que se elijan. La explicación detallada sobre este tema

se encuentra en la sección 2.6.4.

2.6.3.1 Selección aleatoria

Conociendo el tamaño de la población, se generan números aleatorios entre uno y el

tamaño de la población para elegir el padre. Una vez elegido, su posición será enviada a la

hoja “Pob_intermedia”.

2.6.3.2 Selección por torneo

En este tipo de selección se eligen dos individuos de la hoja “Población” aleatoriamente y

se comparan sus valores de aptitud, el mejor de ellos se convierte en padre y su posición es

enviada a la hoja “Pob_intermedia”.

2.6.3.3 Selección proporcional

Según el valor de adaptación del individuo, a este se le asigna una porción entre 0 y 1,

definida respecto a la sumatoria total de los valores de adaptación de todos los individuos

encontrados en la hoja “Población”. Es decir, para un individuo con un valor en la función

objetivo más bajo que el resto de la población, su porción será más grande (ya que son más

deseables los cromosomas con costos bajos debido a la finalidad del problema). Luego se

genera un número aleatorio entre 0 y 1 para elegir al padre, cuya posición se enviará a la

Page 80: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 80 -

hoja “Pob_intermedia”, teniendo mayor probabilidad de ser escogido el individuo que

tenga una mayor porción del rango, es decir, el que tenga un menor costo.

2.6.3.4 Selección escalonada

Esta opción es muy similar a la selección proporcional, con la diferencia que los valores de

adaptación de los individuos de la población son corregidos de la siguiente manera:

• Para la población que se muestra:

Imagen 49: Población sin ordenar

0

50

100

150

200

250

1 2 3 4 5

• Se ordenan los individuos de la población de mejor a peor:

Page 81: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 81 -

Imagen 50: Población ordenada de mejor a peor

0

50

100

150

200

250

1 2 3 4 5

• Se define una línea imaginaria entre el mejor y el peor individuo y luego se ajustan

los cromosomas intermedios a esta línea de tendencia.

Imagen 51: Población con valores de adaptación corregidas

0

50

100

150

200

250

1 2 3 4 5

Page 82: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 82 -

Al tener la población con los valores de adaptación corregidos, se sigue el procedimiento

explicado en la selección proporcional (sección 2.6.3.3).

Esta opción es muy útil ya que “uniforma” la población, es decir, en el caso de que exista

un individuo muy bueno, este no se adueñará de la mayoría del rango entre 0 y 1, sino que

se corregirá el resto de los individuos para que estos tengan una probabilidad más alta de

reproducirse, sin llegar a exceder al mejor individuo.

2.6.4 Recombinación Luego de haber elegido los padres, se generan los hijos por medio de una de las tres

opciones que se programaron. Por cada grupo de padres que se escoge para recombinar, se

pueden generar máximo el mismo número de hijos, entonces, si se escogen dos padres,

podrían generarse uno o dos hijos, y si se escogen tres padres pueden generarse uno, dos o

tres hijos, teniendo en cuenta que el punto de recombinación será diferente para cada uno

de ellos. Esta cantidad de hijos se denominó como hijos por recombinación

Sabiendo esto, se puede calcular el número de padres que deben ser elegidos para generar

descendencia en función del número de hijos y el número de hijos por recombinación por

medio de la siguiente expresión:

NPNHR

NHP *1

+= Ecuación 28

Donde:

P: Cantidad total de padres

NH: Número de hijos en la población

NHR: Número de hijos por recombinación

NP: Número de padres por recombinación

Page 83: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 83 -

2.6.4.1 Recombinación con dos padres y un punto En esta opción se escogen dos padres y un punto de cruce para generar uno o dos hijos

dependiendo de la elección del usuario. La Imagen 52, tomada de individuos del

experimento controlado puede ayudar a entender mejor este operador

Imagen 52: Recombinación dos padres un punto

P1 P2 H1 H2

18 9 18 9 7 6 7 6 17 17 17 17 4 5 5 5 3 4 4 4 5 5 5 5 10 8 8 10 3 5 5 3 14 15 15 14 3 2 2 3 1 1 1 1 8 6 6 8

Donde H1 tiene la cabeza de P1 y la cola de P2 y H2 tiene la cabeza de P2 y la cola de P1.

En el caso de elegir un hijo por recombinación, el cromosoma resultante tendrá la forma

mostrada en H1 en la Imagen 52. En caso de elegir dos hijos por recombinación, se

generarán cromosomas con la forma H1 y H2 de la Imagen 52.

2.6.4.2 Recombinación con dos padres y dos puntos En esta opción se escogen dos padres y dos puntos de cruce para generar uno o dos hijos

dependiendo de la elección del usuario. La Imagen 53, tomada de individuos del

experimento controlado puede ayudar a entender mejor este operador

Page 84: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 84 -

Imagen 53: Recombinación dos padres dos puntos

P1 P2 H1 H2

18 9 18 9 7 6 7 6 17 17 17 17 4 5 4 4 3 4 4 3 5 5 5 5 10 8 8 10 3 5 5 3 14 15 15 14 3 2 2 3 1 1 1 1 8 6 8 6

Donde H1 tiene la cabeza y la cola de P1 y el cuerpo de P2 y H2 tiene la cabeza y la cola de

P2 y el cuerpo de P1

En el caso de elegir un hijo por recombinación, el cromosoma resultante tendrá la forma

mostrada en H1 en la Imagen 53. En caso de elegir dos hijos por recombinación, se

generarán cromosomas con la forma H1 y H2 de la Imagen 53

2.6.4.3 Recombinación con tres padres y dos puntos En esta opción se escogen tres padres y dos puntos de cruce para generar uno, dos o tres

hijos dependiendo de la elección del usuario. La Imagen 54, tomada de individuos del

experimento controlado puede ayudar a entender mejor este operador

Page 85: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 85 -

Imagen 54: Recombinación tres padres dos puntos

P1 P2 P3 H1 H2 H3

18 9 17 18 17 9 7 6 1 7 1 6 17 17 23 17 23 17 4 5 0 5 0 5 3 4 4 4 3 4 5 5 8 5 5 8 10 8 13 13 10 13 3 5 9 9 3 9 14 15 19 19 15 14 3 2 6 6 2 3 1 1 1 1 1 1 8 6 3 3 6 8

Donde H1 tiene la cabeza de P1, el cuerpo de P2 y la cola de P3, H2 tiene la cabeza de P3,

el cuerpo de P1 y la cola de P2 y H3 tiene la cabeza de P2, el cuerpo de P3 y la cola de P1

En el caso de elegir un hijo por recombinación, el cromosoma resultante tendrá la forma

mostrada en H1 en la Imagen 54. En caso de elegir dos hijos por recombinación, se

generarán cromosomas con la forma H1 y H2 de la Imagen 54 y en caso de elegir tres hijos

por recombinación se tendrán cromosomas con la forma H1, H2 y H3 de la Imagen 54.

2.6.5 Mutación

Este es un operador que es aplicado a los hijos de cada generación (“Pob_intermedia”) y es

muy importante para generar diversidad en la población y evitar una convergencia

temprana a soluciones locales. Se programaron los siguientes tres métodos para la

mutación:

Page 86: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 86 -

2.6.5.1 Mutación aleatoria

Por medio de esta mutación se cambia aleatoriamente alelos del cromosoma, teniendo en

cuenta que el nuevo valor del alelo se encuentre dentro del rango definido en la hoja

“Actividades”.

El número de mutaciones que habrá en una generación (ecuación 26), depende de la

cantidad de alelos de la población y el porcentaje de mutación que defina el usuario.

MutaciónsActividadeHijosMutacionesCant %*2**. = Ecuación 29

Donde:

Hijos: Cantidad de cromosomas en Pob_intermedia

Actividades: Cantidad de actividades del proyecto

% Mutación: Porcentaje de la población de los hijos que el usuario desea mutar.

En la Imagen 55, se observa una población de diez hijos del experimento controlado, es

decir 120 alelos. Para un porcentaje de mutación del 5% habrá cambios en 6 alelos de la

población (alelos rojos, Imagen 56)

Page 87: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 87 -

Imagen 55: Población de hijos en experimento controlado

15 12 15 12 16 15 16 15 12 15 0 3 0 3 0 0 0 0 3 0 11 10 11 10 11 11 11 11 10 11 3 6 4 6 4 3 4 3 6 3 5 5 5 5 3 3 5 3 5 5 5 6 5 6 3 3 5 3 6 6 12 11 12 11 11 11 11 8 12 11 7 2 7 2 2 2 2 6 7 5 13 10 13 10 14 15 14 15 10 13 6 3 6 3 5 6 5 6 3 6 1 1 1 1 1 1 1 1 1 1 0 6 0 6 3 6 3 6 3 6

Imagen 56: Población de hijos mutados en experimento controlado

15 12 15 12 16 15 16 15 12 15 0 3 0 2 0 0 0 0 3 0 11 10 11 10 11 11 11 11 10 11 3 6 4 6 4 3 4 3 6 3 5 4 5 5 3 3 5 3 5 5 5 7 5 6 3 3 5 3 6 6 12 11 12 11 11 11 11 8 12 11 7 2 7 2 2 2 2 6 7 5 13 10 13 10 14 15 14 15 10 13 7 3 6 3 5 6 5 6 3 6 1 1 1 1 1 1 1 1 1 1 0 6 0 6 3 7 3 6 3 4

2.6.5.2 Mutación incremento decremento

Este método es muy similar a la mutación aleatoria; el número de mutaciones también se

calcula como se explica en la ecuación 26. La diferencia radica en que el alelo elegido para

ser mutado en el caso aleatorio, cambiaba dentro de un rango establecido mientras que en

este se suma o resta una unidad al valor original del alelo.

Page 88: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 88 -

2.6.5.3 Mutación Variable

Para este caso, se definen porcentajes de mutación mínimo y máximo, con el fin de que a

medida que pasen las generaciones aumenten los cambios en la población, basados en que

para las últimas generaciones son necesarios porcentajes más altos de mutación para evitar

convergencia a un óptimo local.

La expresión que define la cantidad de cambios por mutación se muestra a continuación:

( )( )generaciónmínmáxmínmutacionesCant *%%100*%. −+= Ecuación 30

Dónde:

%mín: Porcentaje mínimo de mutación definido por el usuario

%máx: Porcentaje máximo de mutación definido por el usuario

Generación: Generación actual

El cambio que se realiza en el alelo seleccionado es aleatorio, teniendo en cuenta que no se

salga de los rangos establecidos en la hoja “Actividades”

2.6.6. Nueva población Este es el operador que selecciona cuales individuos pasarán a la siguiente generación,

fundamentado básicamente en el valor de adaptación de estos. Se programaron dos métodos

para esta acción:

Page 89: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 89 -

2.6.6.1 Mejores padres e hijos En esta opción, se seleccionan y ordenan los mejores padres y los mejores hijos de la

generación que esté terminando, y pasa a la siguiente generación una cantidad igual al

tamaño de la población, de los mejores individuos escogidos

2.6.6.2 Elitismo

Por medio de éste, se garantiza que siempre sobreviva en porcentaje de los padres, el cual

es definido por el usuario. Al final de cada generación se revisa la cantidad de padres (los

mejores) que pasarán a la siguiente generación por medio del porcentaje de mutación, y se

completa el resto del tamaño de la población con los mejores hijos.

2.6.7 Experimento controlado Para comprobar que el algoritmo genético esta cumpliendo con su función, se ejecutó el

macro con la información del experimento controlado que ha sido mencionado

anteriormente, sobre el cual se puede realizar un análisis para determinar si los resultados

arrojados son realistas o si se acercan a la solución esperada.

El número de combinaciones posibles para el experimento controlado, será calculado según

la siguiente ecuación:

∏∀ a

aa rd *

Donde:

da: Duraciones posibles de la actividad a

ra: Retrasos posibles para actividad a

A: {1,2,…,6} número de actividades del proyecto

Page 90: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 90 -

Al aplicarla se encuentra que el número de posibilidades de combinación existentes para

una búsqueda exhaustiva es:

Número de posibilidades: 7.2 * 10^10

Como tomaría una gran cantidad de tiempo realizar la evaluación de cada una de las

posibilidades, se trabajó el algoritmo genético con una población de 25 padres y 50 hijos

para 30 generaciones, analizando un máximo de 2250 posibilidades o menos, para

encontrar una solución al proyecto

La configuración con la que se ejecutó el algoritmo genético se muestra a continuación:

Imagen 57: Características ejecución experimento controlado

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 1

Porcentaje de Mutación: 5% Días que tiene un periodo 26

Límite de duración de la obra 52 días Costo administración por periodo $13´300.000

Operadores Empleados:

Método de Selección: Proporcional Método de Recombinación: 3 Padres 2 Puntos

Método de Mutación: Incremento-decremento Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Aleatorio

Se realizaron tres ejecuciones con estas características (imagen 58) y se promediaron los

resultados del promedio de la función de adaptación para cada generación, obteniendo la

siguiente curva (imagen 59):

Page 91: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 91 -

Imagen 58: ejecuciones del algoritmo genético para experimento controlado

Adaptaciones promedio en las corridas 1 2 3 Promedio 1 $ 204,447,664 $ 200,111,008 $ 203,349,296 $ 202,635,989 2 $ 186,371,456 $ 176,581,760 $ 185,485,552 $ 182,812,923 3 $ 170,810,112 $ 167,538,752 $ 176,334,176 $ 171,561,013 4 $ 164,956,032 $ 159,995,584 $ 168,098,208 $ 164,349,941 5 $ 160,984,368 $ 155,450,352 $ 159,395,872 $ 158,610,197 6 $ 158,856,432 $ 147,026,624 $ 149,744,512 $ 151,875,856 7 $ 156,293,504 $ 142,721,776 $ 142,636,592 $ 147,217,291 8 $ 152,017,808 $ 142,291,584 $ 142,261,696 $ 145,523,696 9 $ 142,740,784 $ 142,041,824 $ 142,147,568 $ 142,310,059 10 $ 142,144,384 $ 141,706,800 $ 142,030,976 $ 141,960,720 11 $ 142,005,856 $ 141,578,688 $ 141,899,936 $ 141,828,160 12 $ 141,910,800 $ 141,440,704 $ 141,727,840 $ 141,693,115 13 $ 141,736,544 $ 141,201,936 $ 141,445,136 $ 141,461,205 14 $ 141,544,880 $ 141,084,368 $ 141,328,128 $ 141,319,125 15 $ 141,397,744 $ 141,000,912 $ 141,253,232 $ 141,217,296 16 $ 141,219,568 $ 140,886,720 $ 141,212,880 $ 141,106,389 17 $ 141,030,560 $ 140,805,168 $ 141,212,880 $ 141,016,203 18 $ 140,926,416 $ 140,776,432 $ 141,212,880 $ 140,971,909 19 $ 140,807,920 $ 140,758,912 $ 141,211,520 $ 140,926,117 20 $ 140,696,512 $ 140,735,168 $ 141,208,784 $ 140,880,155 21 $ 140,589,120 $ 140,688,432 $ 141,184,944 $ 140,820,832 22 $ 140,467,072 $ 140,655,264 $ 141,139,760 $ 140,754,032 23 $ 140,329,024 $ 140,630,064 $ 141,057,856 $ 140,672,315 24 $ 140,227,088 $ 140,565,904 $ 140,870,384 $ 140,554,459 25 $ 140,141,296 $ 140,544,304 $ 140,618,816 $ 140,434,805 26 $ 140,040,320 $ 140,478,768 $ 140,548,896 $ 140,355,995 27 $ 139,938,000 $ 140,357,552 $ 140,470,768 $ 140,255,440 28 $ 139,870,192 $ 140,170,592 $ 140,406,784 $ 140,149,189 29 $ 139,842,768 $ 140,139,824 $ 140,406,784 $ 140,129,792 30 $ 139,827,792 $ 140,096,064 $ 140,406,784 $ 140,110,213

Page 92: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 92 -

Imagen 59: Evolución promedio de la población

EVOLUCIÓN PROMEDIO DE POBLACIÓN

$ 130

$ 140

$ 150

$ 160

$ 170

$ 180

$ 190

$ 200

$ 210

0 5 10 15 20 25 30 35

Millones

Generación

Valor del proyecto en

Donde los valores presentes netos mínimos, las duraciones del proyecto y los cromosomas

correspondientes para cada una de las ejecuciones fueron:

Imagen 60: VPN mínimo encontrado en cada ejecución del experimento controlado

Ejecución 1 Ejecución 2 Ejecución 3 VPN mínimo $ 139,516,873 $ 139,764,342 $ 140,035,166

Duración (días) 52 52 52 15 14 13 0 0 0 13 14 15 0 0 0 4 3 3 0 0 0 9 10 9 0 0 0 10 10 11 0 0 0 1 1 1

Mejores cromosomas de cada ejecución

0 0 0

Como se puede observar, el valor mínimo hallado para cada una de las ejecuciones es muy

similar, pero la característica destacada, para asegurar que el algoritmo genético está

funcionando correctamente es que las poblaciones que inicialmente fueron creadas

Page 93: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 93 -

aleatoriamente, tienden a buscar soluciones de proyectos con duraciones que no excedan el

límite de tiempo permitido, preferiblemente iguales o muy cercanas a éste (Imagen 57 e

Imagen 60), esto lo logran al llevar los alelos de duraciones a un valor de cero días y

prolongar las duraciones de las actividades lo máximo posible, sin que la programación

exceda el plazo.

La explicación de este comportamiento es que, como los retrasos de las actividades son

cero, estas podrán ser realizadas tan pronto terminen sus predecesoras, permitiendo asignar

duraciones un poco más prolongadas de una actividad (observar Imagen 60 y anexo 1),

disminuyendo de esta manera los costos directos del proyecto, pero teniendo en cuenta no

exceder su límite de tiempo o no pasar al siguiente periodo para evitar un gasto adicional

por administración.

A manera de ejemplo para el análisis se escogerá el primer cromosoma de la Imagen 60 y

se realizarán variaciones en las duraciones de algunos sus alelos de duración (identificados

por color rojo) para observar como estos cambios influyen en el costo final:

Imagen 61: Análisis de duraciones para un cromosoma solución

$ 139,516,873

$ 151,903,162

$ 139,965,399

$ 152,063,896

$ 139,787,122

$ 152,139,207

$ 139,704,590

$ 152,139,150

$ 139,685,510

$ 152,163,062

15 16 14 15 15 15 15 15 15 15

0 0 0 0 0 0 0 0 0 0

13 13 13 14 12 13 13 13 13 13

0 0 0 0 0 0 0 0 0 0

4 4 4 4 4 5 3 4 4 4

0 0 0 0 0 0 0 0 0 0

9 9 9 9 9 9 9 10 8 9

0 0 0 0 0 0 0 0 0 0

10 10 10 10 10 10 10 10 10 11

0 0 0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0 0 0 Cromosoma

Original Cromosoma

1 Cromosoma

2 Cromosoma

3 Cromosoma

4 Cromosoma

5 Cromosoma

6 Cromosoma

7 Cromosoma

8 Cromosoma

9

Se realizaron cambios incrementando y disminuyendo en una unidad las duraciones

encontradas en el cromosoma original, observando que ninguno de estos cambios hace que

los individuos mejoren el valor de aptitud hallado originalmente, las razones son:

Page 94: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 94 -

• Para el caso en que se aumenta una unidad, aunque los costos directos de la

actividad disminuyen, la duración del proyecto excede el límite establecido,

generando penalización.

• Para el caso en que se disminuye la duración, los costos directos de la actividad

aumentan, generando un aumento en el valor total del proyecto.

Para confirmar las afirmaciones realizadas anteriormente, se ejecutó de nuevo el algoritmo,

pero esta vez variando el número de generaciones, esperando que el mejor cromosoma

hallado al final de cada ejecución tenga como característica principal una duración de

proyecto que llegue hasta el límite del plazo pero sin excederlo, sin importar las

combinaciones de duraciones de cada actividad. Los resultados fueron los siguientes:

Como se puede observar, las duraciones esperadas para el proyecto en el mejor individuo se

cumplieron, siendo esta de 59 días. Vale la pena anotar que aunque estos individuos tienen

en común su duración, los valores del proyecto son menores a medida que aumentan las

generaciones, es decir que el algoritmo mejora los individuos a medida que pasan las

poblaciones.

Número de generaciones Duración del proyecto (días) Valor del proyecto para el

mejor cromosoma

10 52 $140´643,827

20 52 $140´041,379

30 52 $139´734,213

40 52 $139´566,437

50 52 $139´547,458

Page 95: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 95 -

2.6.8 Solución gráfica a los cromosomas, comunicación con Microsoft

Project

Microsoft Project es una herramienta útil para observar gráficamente y entender mejor las

soluciones generadas por el algoritmo, o en otras palabras “decodificar” la información del

cromosoma en un diagrama de barras.

Por esta razón, se programó en Microsoft Project Visual Basic un procedimiento que

grafica en un diagrama tipo Gantt, alguna de las soluciones finales encontradas para cada

ejecución, usando 3 datos básicos: La duración y el retraso de cada actividad encontrados

en el cromosoma y las relaciones de precedencia para cada actividad encontradas en la hoja

“Precedencias” del archivo. En la siguiente imagen se observa un cromosoma del

experimento controlado y la gráfica generada por el macro:

Imagen 62: Cromosoma con diagrama de GANTT

15 0 13 0 4 0 9 0 10 0 1 0

Duración: 52d

Page 96: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 96 -

2.6.9 Interfaz gráfica del algoritmo genético

La interfaz diseñada para controlar todos los operadores y datos de entrada del algoritmo

genético, se encuentran en la hoja “Control” del archivo de trabajo, adicionalmente, hay

una gráfica dinámica en la hoja “reporte grafico” en el archivo, donde se grafican los

promedios de cada población para cada generación de una ejecución.

Page 97: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 97 -

Imagen 63: Control del algoritmo genético

Imagen 64: Reporte gráfico de la evolución del promedio de las poblaciones

Page 98: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 98 -

3. Análisis del problema y resultados En esta sección se analizó el comportamiento de los operadores programados para definir

cuales se usarían. Al tomar esta decisión, se realizó el estudio del caso para encontrar

resultados del cambio de distintos factores del problema y su influencia en el valor presente

neto del parque urbano, además para validar el análisis, se ejecutó bajo los mismos

parámetros que el parque, un nuevo proyecto de 20 actividades que consiste en la

construcción de una escombrera, que aunque va más allá del alcance del trabajo, se realizó

con el fin de demostrar que el algoritmo genético programado para este trabajo de grado

puede ser aplicado para cualquier tipo de proyecto de ingeniería civil con resultados

satisfactorios.

Los análisis fueron realizados con la información del proyecto de construcción del parque

Lisboa y de la construcción de la escombrera (Ver ANEXO 1).

3.1 Análisis de los operadores Este estudio se realizó ejecutando el algoritmo con distintas combinaciones de operadores

en el proyecto de construcción del parque urbano. Para cada análisis, se dejaron fijos todos

los parámetros y operadores del algoritmo genético, variando solo las opciones del

operador en estudio. Además, se ejecutó el algoritmo tres veces por cada observación, con

el fin de identificar si las poblaciones y el comportamiento del algoritmo a través de las

generaciones fueron homogéneos y promediar los resultados para realizar las

comparaciones.

Los criterios tenidos en cuenta para las comparaciones fueron los siguientes:

• Valor promedio de la función objetivo en la población final y en el mejor

cromosoma encontrado: Como la idea de este trabajo de grado es la minimización

Page 99: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 99 -

del valor presente neto, es importante identificar los operadores que encuentran los

valores del proyecto más bajos.

• Diferencia entre la función objetivo de la última y la primera generación: Es un

factor importante, ya que luego de realizar varias ejecuciones, se observó que el

valor final hallado en un algoritmo genético depende de los valores generados en la

primera generación, entonces, aunque son importantes las funciones objetivo más

bajas, no se puede decidir directamente por ellas, sin tener en cuenta el valor

promedio de la población inicial.

• Forma y suavidad de la curva evolución de los promedios del valor presente neto

para las poblaciones a través de las generaciones: La importancia de la forma y

suavidad de esta curva es que ella indica que tan “inteligentemente” funciona el

algoritmo genético, es decir, su comportamiento tiene que cumplir con la forma

esperada, para este caso la curva deberá disminuir o tender hacia un valor del

proyecto mínimo durante todo su recorrido, además, si la forma de la curva contiene

variaciones muy bruscas, el algoritmo puede estar realizando búsquedas o

evolucionando aleatoriamente, caso que no debería suceder, ya que los operadores

de selección de padres y selección de individuos para la siguiente generación son

los encargados de controlar este tipo de cambios.

Page 100: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 100 -

3.1.1 Método de selección

Imagen 65: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 1

Porcentaje de Mutación: 5.0%

Operadores Empleados: Método de Recombinación: 2 Padres 2 Puntos

Método de Mutación: Incremento-decremento Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Aleatorio

Imagen 66: Evolución de la población para métodos de la selección

$ 162

$ 164

$ 166

$ 168

$ 170

$ 172

$ 174

$ 176

$ 178

$ 180

0 10 20 30 40

Generación

Valor del proyecto en millones

Proporcional

Aleatorio

Torneo

Escalonada

Page 101: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 101 -

Imagen 67: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 Proporcional 26m 54s $ 165.040.351 $ 165.180.272 $ 13,471,056

Aleatorio 27m 40s $ 165,029,476 $ 165,145,205 $ 13,439,184 Torneo 27m 56s $ 165,150,896 $ 165,250,469 $ 9,629,211

Escalonada 27m 51s $ 164,335,960 $ 164,448,192 $ 12,664,597 Como se puede observar, los valores mínimos encontrados y la forma de las curvas son

muy similares entres sí, y aunque para la selección escalonada se encontró el mínimo VPN,

se prefirió el uso de la selección proporcional ya que la diferencia entre la función objetivo

de la generación inicial y final es la mayor.

3.1.2 Método de recombinación

Imagen 68: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 1

Porcentaje de Mutación: 5.0%

Operadores Empleados: Método de Selección: Escalonada Método de Mutación: Incremento-decremento

Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Aleatorio

Page 102: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 102 -

Imagen 69: Evolución de la población para métodos de recombinación

$ 164

$ 166

$ 168

$ 170

$ 172

$ 174

$ 176

$ 178

$ 180

0 10 20 30 40

Generación

Valor del proyecto en millones

2 Padres 1 Pto

2 Padres 2 Pts

3 Padres 2 Pts

Imagen 70: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 2 P 1 Pto 28m 20s $ 165,380,392 $ 165,488,592 $ 12,610,043 2 P 2 Pts 26m 57s $ 164,878,189 $ 165,037,291 $ 9,824,917 3 P 2 Pts 25m 54s $ 164,579,594 $ 164,738,069 $ 10,696,640

Aunque inicialmente, la mejor opción parece ser tres padres dos puntos, por el valor

mínimo encontrado ($164,579,594), el operador de dos padres un punto supera al

mencionado anteriormente, por el delta generación, que significa que el promedio de la

generación inicial tuvo un valor más alto y que hubo un mayor cambio desde la generación

1 hasta la 30.

Se decidió usar tres padres dos puntos, que, aunque no es tan bueno como 2 padres un

punto, tiene un delta generación muy similar al de este y toma menos tiempo en su

ejecución.

Page 103: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 103 -

3.1.3 Número de hijos por recombinación

Imagen 71: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Porcentaje de Mutación: 5.0%

Operadores Empleados:

Método de Selección: Escalonada Método de Recombinación: 3 Padres 2 Puntos

Método de Mutación: Incremento-decremento Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Aleatorio

Imagen 72: Evolución de la población para hijos por recombinación

$ 162

$ 164

$ 166

$ 168

$ 170

$ 172

$ 174

$ 176

$ 178

$ 180

0 10 20 30 40

Generación

Valor del proyecto en millones

1 Hijo por Recomb.

2 Hijo por Recomb.

3 Hijo por Recomb.

Page 104: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 104 -

Imagen 73: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 1 Hijo 26m 14s $ 164,909,759 $ 165,065,269 $ 12,498,827 2 Hijos 26m 3s $ 164,555,797 $ 164,719,835 $ 8,371,152 3 hijos 25m 26s $ 164,468,242 $ 164,562,139 $ 11,018,048

Se escogió un hijo por recombinación ya que la evolución durante todas las generaciones,

concibió un delta generación mayor a los demás, esto debido talvez a mayor variedad en la

población de hijos porque para este caso cada hijo tiene una selección de padres diferentes,

mientras que para los otros casos, por cada grupo de padres genera dos o tres hijos,

cabiendo la posibilidad de engendrar individuos muy similares.

3.1.4 Generación de la población inicial

Imagen 74: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 3

Porcentaje de Mutación: 5.0%

Operadores Empleados: Método de Selección: Escalonada

Método de Recombinación: 3 Padres 2 Puntos Método de Mutación: Incremento-decremento

Selección de la Nueva Generación: Mejores padres e hijos

Page 105: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 105 -

Imagen 75: Evolución de la población para tipos de generación de población inicial

$ 158

$ 160

$ 162

$ 164

$ 166

$ 168

$ 170

$ 172

$ 174

$ 176

0 10 20 30 40

Generación

Valor del proyecto en millones

Aleatoria

Retraso 0

Imagen 76: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 Aleatoria 25m 14s $ 164,439,762 $ 164,522,096 $ 9,509,152 Retraso 0 25m 18s $ 159,882,470 $ 159,979,829 $ 7,121,856

Para este caso no importa el delta generación, ya que los valores hallados por medio de

generación inicial con retraso 0 son mucho menores que por el método aleatorio, entonces

se escogió retraso 0.

Page 106: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 106 -

3.1.5 Método de mutación

Imagen 77: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 3

Porcentaje de Mutación: 10% Porcentaje Mínimo de Mutación: 5%

Operadores Empleados:

Método de Selección: Escalonada Método de Recombinación: 3 Padres 2 Puntos

Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Retraso 0

Imagen 78: Evolución de la población para tipo de mutación

$ 159

$ 160

$ 161

$ 162

$ 163

$ 164

$ 165

$ 166

$ 167

$ 168

0 10 20 30 40

Generación

Valor del proyecto en millones

Aleatoria

Incrementodecremento

Variable

Page 107: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 107 -

Imagen 79: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 Incremento-Decremento 26m 16s $ 160,076,075 $ 160,234,597 $ 6,094,256

Aleatoria 25m 42s $ 160,284,074 $ 160,384,469 $ 7,138,363 Variable 25m 52s $ 160,669,811 $ 160,724,464 $ 6,172,267

Se escogió mutación aleatoria ya que es la que concibe el mayor delta generación de todas

las opciones y además es la que realiza la búsqueda de una manera más ordenada, es decir,

cuya curva tiene la forma más suave.

3.1.5 Porcentaje de mutación

Imagen 80: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 3

Operadores Empleados:

Método de Selección: Escalonada Método de Recombinación: 3 Padres 2 Puntos

Método de Mutación: Aleatoria Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Retraso 0

Page 108: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 108 -

Imagen 81: Evolución de la población para porcentaje de mutación

$ 158

$ 160

$ 162

$ 164

$ 166

$ 168

$ 170

$ 172

0 10 20 30 40

Generación

Valor del proyecto en millones

10%

5%

20%

40%

60%

Imagen 82: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 5% 27m 51s $ 160,061,904 $ 160,170,405 $ 7,164,117 10% 25m 34s $ 160,361,488 $ 160,623,957 $ 7,036,277 20% 26m 33s $ 161,693,573 $ 162,387,675 $ 5,773,808 40% 27m 12s $ 163,982,334 $ 164,979,680 $ 4,596,912 60% 25m 44s $ 163,694,393 $ 165,731,445 $ 3,884,571

Se escogió mutación de 5% ya que es la que mayor delta generación encuentra, además es

la búsqueda más ordenada de todas, esto se puede observar en la Imagen 81, donde su curva

tiene una forma más suave que las demás. Para el caso de mutaciones de mayor porcentaje,

la evolución del promedio de la función objetivo a través de las generaciones (delta

generación) no es tan buena debido a que gran parte de los alelos de la población de los

hijos es mutada y la búsqueda no se realiza de una manera ordenada sino aleatoria.

Page 109: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 109 -

3.1.6 Porcentaje de elitismo

Imagen 83: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 3

Porcentaje de Mutación: 5.0%

Operadores Empleados: Método de Selección: Escalonada

Método de Recombinación: 3 Padres 2 Puntos Método de Mutación: Aleatoria

Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Retraso 0

Imagen 84: Evolución de la población para porcentaje de elitismo

$ 160$ 161$ 162$ 163$ 164$ 165$ 166$ 167$ 168$ 169$ 170$ 171

0 10 20 30 40

Generación

Valor del proyecto en millones

20%

50%

80%

Page 110: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 110 -

Imagen 85: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 20% 26m 48s $ 161,052,459 $ 164,187,269 $ 3,105,136 50% 27m 33s $ 160,837,121 $ 161,396,667 $ 6,547,760 80% 26m 45s $ 161,182,576 $ 161,491,323 $ 8,693,552

Al observar la Imagen 84, se puede ver que entre más bajo sea el porcentaje de elitismo,

más desordenada será la búsqueda, debido a que una pequeña porción de los padres, que se

supone, deben ser los mejores individuos que sobreviven generación a generación, son los

que se escogen, dejando una gran fracción de la siguiente población a los hijos, que así

como pueden ser buenos individuos, también pueden generar soluciones muy malas,

dañando las poblaciones futuras y generando una búsqueda desordenada.

Por esta razón la opción escogida es el 80% de elitismo, que mantiene una gran cantidad de

los padres y deja un pequeño espacio para los hijos.

3.1.7 Método de selección de la nueva generación

Imagen 86: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Tamaño de la Población: 25

Cantidad de Hijos por Generación: 50 Cantidad de Hijos por Recombinación: 3

Porcentaje de Mutación: 5.0% Porcentaje de Elitismo: 80%

Operadores Empleados:

Método de Selección: Escalonada Método de Recombinación: 3 Padres 2 Puntos

Método de Mutación: Aleatoria Generación de la Población Inicial: Retraso 0

Page 111: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 111 -

Imagen 87: Evolución de la población para selección de la nueva generación

$ 158

$ 160

$ 162

$ 164

$ 166

$ 168

$ 170

$ 172

0 10 20 30 40

Generación

Valor del proyecto en millones

Mejores padresmejores hijos

Elitismo 80%

Imagen 88: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 Mejores

padres e hijos 25m 30s $ 160,312,595 $ 160,527,531 $ 8,674,917 Elitismo 80% 28m 56s $ 160,683,549 $ 161,016,064 $ 10,093,355

Para la selección de la nueva generación se decidió usar elitismo de 80%, ya que encuentra

un delta de generación más alto que mejores padres e hijos, además su curva de evolución

(ver Imagen 87) tiene una forma más suave, es decir, una búsqueda más ordenada.

Page 112: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 112 -

3.1.8 Tamaño de población y cantidad de hijos por generación

Imagen 89: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Cantidad de Generaciones: 30 Cantidad de Hijos por Recombinación: 3

Porcentaje de Mutación: 5.0%

Operadores Empleados: Método de Selección: Escalonada

Método de Recombinación: 3 Padres 2 Puntos Método de Mutación: Aleatoria

Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Retraso 0

Imagen 90: Evolución de la población para cantidad de hijos y tamaño de población

$ 160$ 161

$ 162$ 163

$ 164$ 165

$ 166$ 167

$ 168$ 169

$ 170

0 10 20 30 40

Generación

Valor del proyecto en millones

20 Padres 20 hijos

25 Padres 50 hijos

25 Padres 75 hijos

50 Padres 75 hijos

Imagen 91: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 20 Padres 20 hijos 11m 27s $ 161,562,073 $ 162,254,469 $ 6,438,565 25 Padres 50 hijos 28m 20s $ 160,842,292 $ 161,193,701 $ 7,229,227 25 Padres 75 hijos 39m 40s $ 160,379,928 $ 160,562,117 $ 5,886,741 50 Padres 75 hijos 40m 17s $ 160,851,189 $ 161,361,952 $ 7,326,347

Page 113: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 113 -

Se decidió usar 25 padres 50 hijos, que aunque no tiene un delta generación tan bueno

como 50 padres 75 hijos (Imagen 95), su valor es muy cercano y además su tiempo de

compilación es mucho más bajo, evitando un tiempo adicional de ejecución de casi 12

minutos.

3.1.9 Cantidad de generaciones

Imagen 92: Parámetros fijos del estudio

EJECUCIÓN EN ESTUDIO Generales

Tamaño de la Población: 25 Cantidad de Hijos por Generación: 50

Cantidad de Hijos por Recombinación: 3 Porcentaje de Mutación: 5.0%

Operadores Empleados:

Método de Selección: Escalonada Método de Recombinación: 3 Padres 2 Puntos

Método de Mutación: Aleatoria Selección de la Nueva Generación: Mejores padres e hijos Generación de la Población Inicial: Retraso 0

Imagen 93: Evolución de la población para cantidad de generaciones

$ 160$ 161$ 162$ 163$ 164$ 165$ 166$ 167$ 168$ 169

0 10 20 30 40 50 60

Generación

Valor del proyecto en

millones

5 Generaciones 30 Generaciones 50 Generaciones

Page 114: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 114 -

Imagen 94: Valores mínimos encontrados para 5, 30 y 50 generaciones

$ 161

$ 161

$ 161

$ 161

$ 161

$ 162

$ 162

$ 162

$ 162

$ 162

0 10 20 30 40 50 60

Generación

Valor del proyecto en millones

Imagen 95: Resumen de resultados promedio de las ejecuciones

Método Tiempo

ejecución Valor mínimo

Promedio última

generación Delta Generación

1 - 30 5 Generaciones 4m 55s $ 162,217,496 $ 163,651,600 $ 4,737,413 30 Generaciones 28m 34s $ 160,818,195 $ 161,116,600 $ 7,052,840 50 Generaciones 43m 26s $ 160,691,497 $ 160,921,872 $ 7,390,536

Como se puede observar en la Imagen 93 y la Imagen 94, los resultados arrojados por la

ejecución de 50 generaciones son mucho mejores que las demás, pero toma mucho más

tiempo. Por esto es que se escogió 30 generaciones, ya que los resultados son muy cercanos

pero se ahorran aproximadamente 15 minutos de ejecución.

3.1.10 Resumen operadores seleccionados A continuación se presenta una tabla con el resumen de los operadores seleccionados a lo

largo de la sección 3.1 que serán usados para el análisis del problema

Page 115: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 115 -

Imagen 96: Operadores seleccionados

Operador Opción seleccionada Cantidad Método de selección Proporcional -

Método de recombinación 3 Padres 2 Puntos 1 hijo por

recombinación Población inicial Retraso 0 -

Método de mutación Aleatoria 5% Selección nueva

generación Elitismo 80% Número de padres e hijos - 25 Padres 50 Hijos Número de generaciones - 30 Generaciones

3.2 Análisis proyecto Parque Lisboa Luego de haber elegido los operadores con los que hay un buen comportamiento y

resultados para los algoritmos genéticos en el proyecto, se procedió a realizar el análisis

sobre la influencia de distintos factores del proyecto en su valor presente neto.

Para esta fase, se generaron las poblaciones iniciales del algoritmo mediante la opción de

mejores resultados anteriores, con el fin de tener individuos en la población inicial con

valores de función de aptitud uniformes, ya que como se mencionó anteriormente, los

resultados finales del algoritmo se encuentran estrechamente relacionados con la población

inicial, de esta manera se garantiza que todas los comparaciones sean realizadas bajo

condiciones similares.

Los criterios tenidos en cuenta para el análisis de sensibilidad del proyecto fueron los

siguientes:

• Costo de administración: Como afecta el valor del costo por administración del

proyecto su duración

• Penalizaciones: Como influyen las penalizaciones por excedencia de límites de

tiempo establecido la duración y costos del proyecto

Page 116: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 116 -

• Corrección de duraciones de las actividades por esperanza probabilística:

Comportamiento de los algoritmos genéticos e influencia en costos y duración del

proyecto por ajustes de las duraciones de sus actividades.

Plazo del proyecto: 104 días

Índice de oportunidad: 1%

La información detallada del proyecto se encuentra en el ANEXO 1.

3.2.1 Costo de administración En esta sección se analizó la influencia del costo de administración en las características del

proyecto:

Imagen 97: Resultados del proyecto para distintos costos de administración

Costo de administración

$ 1,000,000 $ 3,000,000 $ 5,000,000

$ 12,500,000

$ 20,000,000

Duración del proyecto

(días) 104 78 78 78 78

Desviación Estándar

Valor mínimo encontrado

$ 137,662,131

$ 145,153,005

$ 151,096,617

$ 173,318,383

$ 195,162,942

$ 23,512,498

Promedio generación

inicial

$ 140,047,584

$ 146,155,675

$ 152,376,309

$ 174,771,803

$ 196,842,203

$ 23,466,237

Promedio última

generación

$ 137,668,949

$ 145,157,749

$ 151,116,571

$ 173,396,368

$ 195,169,253

$ 23,521,074

Delta generación

30-1 $ 2,378,635 $ 997,925 $ 1,259,739 $ 1,375,435 $ 1,672,949 $ 213,168

Page 117: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 117 -

Imagen 98: VPN del proyecto según el costo de administración

$ 100$ 110$ 120$ 130$ 140$ 150

$ 160$ 170$ 180$ 190$ 200

$ 0 $ 5 $ 10 $ 15 $ 20 $ 25

Costo de administración (Millones de pesos)

VPN del proyecto (millones)

Como es de suponerse, el costo de administración es una fracción económica muy

importante en el valor total del proyecto, a menor costo de administración menor valor del

proyecto para un periodo (ver Imagen 98). Pero la influencia en el proyecto de la magnitud

de este factor va más allá, la duración de la obra se encuentra altamente influenciada por

este elemento como se puede observar en la Imagen 99.

Imagen 99: Duración del proyecto según costo de administración

0

20

40

60

80

100

120

$ 1,000,000 $ 3,000,000 $ 5,000,000 $ 12,500,000 $ 20,000,000

Costo de administración (Millones de pesos)

Duración (dias)

Page 118: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 118 -

Los periodos tomados para el proyecto fueron de 26 días con un plazo total para la obra de

4 periodos, es decir, el primer periodo termina el día 26, el segundo el día 52, el tercero el

día 78 y el cuarto el día 104. Para el caso del costo de administración de $1,000,000, el

algoritmo concibió una solución para una duración de 104 días, es decir, es preferible pagar

otro periodo adicional de administración (teniendo en cuenta no exceder el plazo) para

poder extender las duraciones de las actividades y de esta manera tener costos directos

menores. Por el otro lado, para los costos de administración más altos, es preferible

comprimir las duraciones de las actividades del proyecto, generando costos directos más

altos pero evitando el pago de los costos de administración de un mes. Este punto de

equilibrio obedece a la teoría de intercambio costo-tiempo (ver Imagen 8), que se

encuentra implícito en el análisis del algoritmo genético, ya que este busca la mejor

solución variando la duraciones para encontrar la mejor proporción entre costos directos e

indirectos.

El costo de administración seleccionado no influye en el desempeño del algoritmo genético,

ya que las duraciones de ejecución se mantienen uniformes, además el delta generación es

muy parejo sin importar la magnitud de la administración, con una desviación estándar de

$213.168.

3.2.2 Penalizaciones

Se estudió el problema omitiendo las penalizaciones por exceder el límite de tiempo dado al

proyecto, con el fin de ver como influye este factor en las duraciones y el costo del

proyecto. Los resultados se muestran a continuación:

Page 119: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 119 -

Imagen 100: Resultados del proyecto para las penalizaciones

Penalizaciones Sin penalizaciones Con penalizaciones

Duración del proyecto (días) 78 78

Desviación Estándar

Valor mínimo encontrado $ 173,207,730 $ 173,318,383 $ 78,243 Promedio generación

inicial $ 174,770,347 $ 174,771,803 $ 1,030 Promedio última

generación $ 173,273,493 $ 173,396,368 $ 86,886 Delta generación 30-1 $ 1,496,853 $ 1,375,435 $ 85,856

Como se puede observar en las duraciones del proyecto para ambos casos, las

penalizaciones no influyen ni en los costos ni en las duraciones, teniendo resultados muy

similares en los valores presentes netos, con desviación estándar máxima de $86,886. Esto

se debe a que para la construcción del parque, es más influyente el costo de administración,

restringiendo la duración a no sobrepasar los días del último periodo y evitar un sobre costo

de los $12´500,000 que significaría un mes adicional de obra.

3.2.3 Corrección de duraciones de las actividades por esperanza

probabilística

Debido a que en una obra se pueden presentar una gran cantidad de imprevistos, es

interesante analizar el comportamiento del proyecto realizando una corrección en las

duraciones de cada actividad.

Para este caso se realizó la corrección teniendo una esperanza de ocurrencia del 90%, es

decir, limitar las duraciones del proyecto en cada extremo un 5%. El valor K asociado a un

área del 5% bajo la curva normal es de 1.65. La corrección de las duraciones fue hallada

con ayuda de las ecuaciones 1 y 2. Los resultados se pueden observar en el ANEXO 4.

Page 120: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 120 -

Imagen 101: Resultados del proyecto para duraciones normales y duraciones corregidas para esperanza de ocurrencia

Duraciones Sin corregir corregidas

Duración del proyecto (días) 78 78

Desviación Estándar

Valor mínimo encontrado $ 174,373,557 $ 175,490,926 $ 790,099 Promedio generación

inicial $ 184,973,451 $ 184,242,912 $ 516,569 Promedio última

generación $ 174,621,323 $ 175,490,832 $ 614,836 Delta generación 30-1 $ 10,352,128 $ 8,752,080 $ 1,131,405

Imagen 102: Valor presente neto del proyecto para Tipos de duraciones del proyecto

$ 174

$ 174

$ 174

$ 174

$ 175

$ 175

$ 175

$ 175

$ 175

$ 176

Sin corregir corregidas

Duraciones de las actividades

Valor presente neto (Millones)

Como se puede observar en la Imagen 101 y la Imagen 102 los resultados son mejores para

el rango de duraciones sin corrección, ya que el valor del proyecto encontrado y el delta

generación son mejores que para la configuración de las duraciones corregidas, sin

embargo es preferible trabajar con las duraciones corregidas por esperanza de ocurrencia ya

que es una búsqueda más inteligente y además sus duraciones tienen una mayor

probabilidad de incidencia por encontrarse dentro de un rango de probabilidad de

ocurrencia del 90%.

Page 121: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 121 -

3.3 Análisis del proyecto de construcción adicional, Escombrera

“Guadalcanal”

Este análisis, es un proyecto adicional al trabajo de grado que fue realizado con los mismos

operadores elegidos en la sección 3.1 y además se tuvieron en cuenta los mismos criterios

de análisis usados en la sección 3.2 para el proyecto de la construcción del parque urbano,

con la diferencia que para este proyecto, los algoritmos genéticos generaron la población

inicial con retraso 0 y no con resultados históricos, ya que no se tenían las suficientes

ejecuciones del programa para este caso.

Plazo del proyecto: 156 Días

Índice de oportunidad: 1%

La información detallada del proyecto se encuentra en el ANEXO 1.

3.3.1 Costo de administración En esta sección se analizó la influencia del costo de administración en las características del

proyecto:

Imagen 103: Resultados del proyecto para distintos costos de administración

Costo de administración

$ 1,000,000 $ 5,000,000 $ 13,320,000

Duración del proyecto (días) 156 156 156 Desviación Estándar

Valor mínimo encontrado $ 254,309,978 $ 277,051,318 $ 326,786,937 $ 37,066,854

Promedio generación inicial $ 331,553,888 $ 357,289,856 $ 434,297,419 $ 53,461,416

Promedio última generación $ 254,706,240 $ 277,415,243 $ 327,223,872 $ 37,093,138

Delta generación 30-1 $ 76,847,648 $ 79,874,613 $ 107,073,547 $ 16,646,068

Page 122: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 122 -

Imagen 104: VPN del proyecto según el costo de administración

$ 100

$ 150

$ 200

$ 250

$ 300

$ 350

$ 0 $ 2 $ 4 $ 6 $ 8 $ 10 $ 12 $ 14

Costo de administración (Millones de pesos)

VPN del proyecto (millones)

Al igual que en el proyecto de construcción del parque, el costo de administración es una

fracción económica muy importante en el valor total del proyecto, a menor costo de

administración menor valor del proyecto para un periodo (ver Imagen 104).

Para este caso, la evolución del algoritmo sí se vio afectada por los operadores usados en la

ejecución, más específicamente por la generación de la población inicial, que a diferencia

del proyecto de construcción del parque, se realizó aleatoria con retraso 0 existiendo una

gran diferencia en la evolución de la búsqueda con una desviación estándar del delta

generación de casi $17´000,000 comparado con los $213,000 pesos de desviación estándar

del proyecto del parque Lisboa. Esto se debe a que en el caso de generar la población

inicial con resultados históricos, todos los individuos iniciales tendrán valores de la función

de aptitud muy cercanos, mientras que de manera aleatoria los individuos iniciales tendrán

grandes diferencias en sus funciones de aptitud, afectando la evolución del algoritmo

genético con evoluciones distintas

Page 123: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 123 -

3.3.2 Penalizaciones Se estudió el problema omitiendo las penalizaciones por exceder el límite de tiempo dado al

proyecto, con el fin de ver como influye este factor en las duraciones y el costo del

proyecto. Los resultados se muestran a continuación:

Imagen 105: Resultados del proyecto para las penalizaciones

Penalizaciones Sin penalizaciones Con penalizaciones

Duración del proyecto (días) 182 156

Desviación Estándar

Valor mínimo encontrado $ 323,908,608 $ 320,995,513 $ 2,059,869 Promedio generación

inicial $ 352,227,776 $ 424,350,347 $ 50,998,359 Promedio última

generación $ 324,074,400 $ 321,754,112 $ 1,640,691 Delta generación 30-1 $ 28,153,376 $ 102,596,235 $ 52,639,050

Imagen 106: Duración del proyecto según penalizaciones

140

145

150155

160

165

170175

180

185

Sin penalizaciones Con penalizaciones

Penalización

Duración del proyecto (Días)

En este caso se observa un efecto muy importante que ejercen las penalizaciones y la

generación de las poblaciones en las duraciones y el costo del proyecto. Cuando se genera

la población inicial con resultados históricos, el campo de búsqueda de soluciones está

reducido, debido a que la búsqueda se realizará con los mejores individuos de distintas

áreas del espacio del problema. Cuando las poblaciones se generan de manera aleatoria, la

búsqueda se debe realizar en el espacio total de las soluciones, para este caso, las

Page 124: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 124 -

penalizaciones son una excelente herramienta para acotar este gran espacio. Al comparar

las duraciones halladas para las mejores soluciones del parque Lisboa (en el límite del plazo

sin importar las penalizaciones) con las de éste proyecto (excediendo el límite del plazo si

no existen penalizaciones), se puede ver que si no existen restricciones o penalizaciones en

el campo de búsqueda, los individuos exploran todo el espacio sin importar infactibilidades

(considerando como infactibilidad el hecho de exceder los límites), y si encuentra una

buena solución en estas áreas infactibles, pueden guiar a toda la población en ése sentido,

perdiendo la oportunidad de explorar otras áreas de búsqueda en las cuales puedan existir

soluciones mejores, como se puede observar en la Imagen 105, donde se encuentran

mejores soluciones en el campo factible, es decir, dentro de los límites del plazo de

construcción del proyecto.

3.3.3 Corrección de duraciones de las actividades por esperanza

probabilística

Para este caso se realizó la corrección teniendo una esperanza de ocurrencia del 90%, es

decir, limitar las duraciones del proyecto en cada extremo un 5%. El valor K asociado a un

área del 5% bajo la curva normal es de 1.65. La corrección de las duraciones fue hallada

con ayuda de las ecuaciones 1 y 2. Los resultados se pueden observar en el ANEXO 4.

Imagen 107: Resultados del proyecto para duraciones normales y duraciones corregidas para esperanza de ocurrencia

Duraciones Sin corregir corregidas

Duración del proyecto (días) 156 156

Desviación Estándar

Valor mínimo encontrado $ 326,168,490 $ 337,457,750 $ 7,982,713 Promedio generación

inicial $ 422,683,627 $ 437,628,565 $ 10,567,667 Promedio última

generación $ 326,438,069 $ 339,239,776 $ 9,052,174 Delta generación 30-1 $ 96,245,557 $ 98,388,789 $ 1,515,494

Page 125: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 125 -

Imagen 108: Valor presente neto del proyecto para Tipos de duraciones del proyecto

$ 320

$ 322$ 324

$ 326$ 328

$ 330

$ 332$ 334

$ 336$ 338

$ 340

Sin corregir corregidas

Duraciones de las actividades

Valor presente neto (Millones)

Al igual que para el proyecto del parque Lisboa, los resultados son mejores para el rango de

duraciones sin corrección, pero es preferible trabajar con las duraciones corregidas porque

las soluciones encontradas por este método tienen una probabilidad más alta de ocurrencia,

como fue justificado en la sección 3.2.3.

Page 126: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 126 -

4. Conclusiones y recomendaciones

• En el caso de no tener conocimiento en el manejo de algoritmos genéticos, se

recomienda realizar un estudio práctico sobre el comportamiento de las diferentes

opciones de los operadores, para entender mejor su funcionamiento. En el caso de la

cantidad generaciones necesarias, es bueno analizar la evolución de las poblaciones

para diferentes números de generaciones, ya que el uso de una gran cantidad de

estas no garantiza el encontrar la mejor solución de todas tomando además una gran

cantidad de tiempo para la ejecución. Debido al comportamiento asintótico de la

evolución de los algoritmos genéticos, se pueden hallar buenas soluciones sin

necesidad de ejecutar una gran cantidad de generaciones.

• Una representación adecuada de la información que contiene el cromosoma evita el

uso de mecanismos de reparación, es decir, revisión y corrección de infactibilidades

en las soluciones a medida que se usen los operadores y pasen las generaciones.

• El valor de adaptación de los individuos de la población final de algoritmo genético,

está estrechamente relacionada con el valor de adaptación de los de la primera

generación, por esto, si se está trabajando con generaciones iniciales aleatorias, en el

momento de evaluar la evolución de las poblaciones a través de las generaciones no

es recomendable tomar decisiones basados totalmente en el valor mínimo

encontrado, sino en la diferencia de los valores de adaptación de la primera y la

última generación. Por ejemplo, si la población inicial de una ejecución es muy

mala, y el valor de adaptación del mejor individuo encontrado a través de las

generaciones no es tan bueno como el de otra ejecución, hay que revisar la

población inicial del individuo de la segunda generación, ya que ésta puede ser

buena, y finalmente la evolución de la primera ejecución puede ser mejor que el de

la segunda.

Page 127: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 127 -

• Para realizar comparaciones entre evoluciones y resultados de los algoritmos

genéticos, es mejor trabajar con poblaciones iniciales que sean generadas por medio

de resultados históricos, de esta manera se garantiza que el punto de partida del

análisis para las diferentes poblaciones será homogéneo.

• Para el uso de mutación variable, es necesario tener mutaciones iniciales que no

sean cero ni muy pequeñas, ya que al existir una variación baja en las primeras

generaciones, la búsqueda se puede estancar en una solución local.

• Tampoco es recomendable el uso de mutaciones muy altas ya que la búsqueda se

realizará de una manera desordenada pudiendo perder genes importantes de los

cromosomas o buenos esquemas.

• Es recomendable el uso de un hijo por cada grupo de padres escogidos así tome más

tiempo la ejecución del algoritmo genético, ya que con varios hijos por grupo de

padres escogidos habrá menor variedad en la población generada en la

recombinación, perdiendo espacio en el campo de búsqueda.

• Para el uso del elitismo no es recomendable usar porcentajes bajos, ya que el hecho

de que halla un cruce entre padres buenos no quiere decir que el hijo vaya a ser

similar o mejor, entonces la escogencia de los individuos que serán padres en la

siguiente generación tendrá en su mayoría hijos, y muchos de estos pueden ser

malos, dañando la evolución de las poblaciones y generando una búsqueda

desordenada.

• En lugar de ejecutar algoritmos genéticos con muchas generaciones, es mejor

compilar los programas muchas veces con una cantidad menor de generaciones y

creando poblaciones iniciales por medio de resultados históricos, de esta manera se

garantiza que cada vez que se ejecute el programa se encontraran soluciones finales

mejores o por lo menos iguales a la compilación anterior.

Page 128: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 128 -

• Para el uso de elitismo, en el momento en el que la curva de evolución de las

poblaciones empezaba a comportarse asintóticamente, es decir, el momento en el

que empezaba a enfocarse en una solución, disminuía la posibilidad de encontrar

hijos mejores a los padres, esto se observó debido a que en generaciones finales, el

valor promedio de adaptación solía desmejorar con respecto poblaciones anteriores.

• Es necesaria una penalización fuerte a los hijos que sean iguales a los padres, para

que estos no sean deseables en la selección de la siguiente generación. En caso de

no evitar este problema, puede suceder que uno o algunos individuos se apoderen de

las poblaciones y el algoritmo genético converja muy rápidamente a soluciones

óptimas locales

• La magnitud de la penalización por exceder el plazo de realización del proyecto

define la duración de este, es decir, cuando las penalizaciones son altas es preferible

tener duraciones de proyectos menores al límite establecido, preferiblemente en el

límite, así esto implique mayores costos directos de la actividades por tener

duraciones cortas. En cambio, si la penalización es baja, es preferible alargar un

poco las duraciones de las actividades, que implica menores costos directos, aunque

se generen penalizaciones. Aunque esta situación puede ser atractiva por generar

menores costos, no es deseable por el incumplimiento del compromiso

generalmente adquirido en la firma de los contratos. Para evitar este problema, es

necesario ajustar las penalizaciones para que los individuos del algoritmo genético a

través de las generaciones se adapten al plazo establecido.

• Para evitar problemas con la recomendación anterior, es mejor, ejecutar varias veces

los algoritmos genéticos para el proyecto en estudio. Con el fin de tener

almacenados varios individuos que tengan un buen valor de adaptación. Luego

generar poblaciones iniciales con los individuos históricos para de esta manera tener

Page 129: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 129 -

poblaciones iniciales en las ejecuciones con valores de adaptación similares y poder

analizar los resultados finales bajo unas mismas condiciones.

• En caso de no disponer de resultados históricos para la generación de las

poblaciones iniciales, las penalizaciones son una herramienta muy útil para

disminuir el espacio de búsqueda, haciendo menos atractivas las soluciones

infactibles y reduciendo la búsqueda solo a individuos factibles.

• Para el caso del estudio de minimización del valor presente neto de proyectos, es

recomendable trabajar con relaciones de las actividades concatenadas sin holgura,

ya que de esta manera hay mayor posibilidad de extender las duraciones de las

actividades para generar costos directos menores, teniendo en cuenta el control de

los costos de administración generados, es decir, si se tienen periodos de 30 días y

una configuración de un proyecto de 22 días, la mejor solución sería alargar

duraciones de actividades hasta llegar a los 30 días, teniendo costos directos

menores y sabiendo que los costos indirectos son iguales para 22 que para 30 días,

pero controlando el no pasarse a los 31 días, ya que se generaría un costo de

administración adicional, que aumentaría el valor total del proyecto. Para el caso del

uso de los algoritmos genéticos en este trabajo de grado, el común denominador de

todas las soluciones encontradas fue éste.

• El costo administrativo tiene una gran influencia en la duración de los proyectos,

definiendo y acotando más importantemente sus duraciones que por medio de las

penalizaciones. Acá se puede ver la aplicación directa de la teoría de intercambio

costo tiempo, ya que todas las soluciones arrojadas por los algoritmos genéticos en

este trabajo de grado tuvieron duraciones que siempre llegaban hasta el límite final

de un periodo. Dependiendo de la duración mínima posible de la ruta crítica estos

coincidían con el plazo máximo del periodo o con días finales de periodos

anteriores al último permitido.

Page 130: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 130 -

• Aunque los resultados con las duraciones sin corregir por esperanza de ocurrencia

son mejores que los corregidos, es recomendable el uso de la corrección ya que en

la ejecución de una obra en la vida real, las cosas muy pocas veces salen como se

esperan, por esto al tener duraciones acotadas a la mayor probabilidad de

ocurrencia, las soluciones se acercarán más a lo que pueda suceder durante la

construcción

Page 131: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 131 -

5. Investigaciones Futuras Debido a que esta es la primera investigación de este tipo realizada en la universidad y tal

vez en Colombia, la información y recomendaciones se basó en proyectos realizados en

otros países. Acá radica la importancia de este trabajo, el cuál no se encuentra totalmente

perfeccionado, por eso se realizan las siguientes recomendaciones para personas interesadas

en continuar con este tema:

• La suposición de que los proyectos se realizan de una manera lineal, es decir,

esperando la finalización de la actividad predecesora para poder continuar, limita

de cierta modo el estudio de combinaciones y su aplicación directa a los proyectos

reales, ya que son muy pocos los casos de construcción de obras civiles que sean

realizados linealmente, por esto se recomienda la implementación de actividades

desfasadas en el algoritmo genético.

• Para el caso de minimización del valor presente neto, y de actividades las cuales su

única manera de desarrollo sea lineal, se recomienda realizar controles de retraso 0,

es decir, generar poblaciones con retraso 0 solo para las de este tipo. Para el resto

de las actividades no hay problema con los periodos de holgura siempre y cuando

no sobrepasen la ruta crítica.

• Sería interesante realizar una agrupación de esta investigación con disponibilidad

de insumos y su reporte correspondiente en Microsoft Project, ya que la suposición

de que los insumos están disponibles para el instante en el que comienza una

actividad, no es muy real.

• La inclusión de ingresos al estudio del problema, daría un enfoque totalmente

distinto al estudiado en este trabajo de grado. Como por ejemplo introduciendo la

distribución y proporciones de ingresos que generalmente se especifican en los

pliegos de las licitaciones.

Page 132: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 132 -

6. Sugerencias realizadas en la sustentación

A continuación se presenta respuesta a las sugerencias y recomendaciones realizadas en la

sustentación.

• Se adicionó un hito al final del proyecto, en la herramienta que exporta la solución

seleccionada a Microsoft Project, con el fin de identificar la terminación de éste y

su duración total.

• Se estudió el uso de retrasos negativos para permitir traslapos o desfases en los

comienzos de las actividades con respecto a sus predecesoras, de esta manera no es

necesario esperar a que finalice en su totalidad la actividad predecesora para

continuar con la sucesora.

Esta aplicación puede ser realizada, pero es necesario definir el porcentaje de

actividad predecesora que debe encontrarse realizada para poder comenzar con la

siguiente actividad, es decir, además del retraso máximo permitido que fue definido

en este trabajo de grado, se debe definir el retraso negativo permitido, que se

encontrará directamente relacionado con la duración de la actividad predecesora

(alelo de duración para una actividad) y con el porcentaje de predecesora que debe

encontrarse realizado.

• Se realizaron pruebas con tamaños de población y cantidad de hijos con capacidad

máxima (255 individuos para cada uno) y diferentes tamaños de poblaciones, con el

fin de revisar si la herramienta programada en Excel fallaba en algún momento. Las

compilaciones estudiadas oscilaron entre 4 y 8 horas dependiendo del tamaño de la

población y durante toda su ejecución no se reporto ningún problema, pudiendo

afirmar que el ambiente Windows y el uso de Microsoft Excel son herramientas

que responden adecuadamente al estudio del problema, ya que el análisis para los

tamaños estudiados son más que suficiente, porque como se ha explicado a lo largo

Page 133: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 133 -

de este trabajo de grado, con el uso de los algoritmos genéticos se encuentra un

punto en el cual la evolución de las soluciones no es muy significativa y el aumento

de los tamaños y poblaciones no harán gran diferencia en los resultados.

Page 134: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 134 -

7. Bibliografía

∗ CENGIZ, Y. Application of genetic algorithms to construction scheduling with or

without resource constrains. Canadian journal of civil engineering. Vol 29 Número

3 Junio de 2002.

∗ CHAN, CHUA Y KANNAN. Construction resource scheduling with genetic

algorithms. Journal of construction engineering and management Vol 122 Número

2.

∗ COELLO, Carlos. Evolutionary algorithms for solving multi-objective problems.

Editorial Kluwer academic, 2002.

∗ DEB, Kalyanmoy. Multi-objective optimization using evolutionary algorithms.

Editorial John Wiley & Sons ltd, 2001

∗ DOERSCH y PATTERSON. Scheduling a Project to maximize its present value: a

zero-one programming approach. Management science Vol 23 Número 8.

∗ DODIN, B y ELIMAM, A. Integrated Project scheduling and material planning

with variable activity duration and rewards. IIE Transactions.Volumen 33 Número

11; Marzo de 2001.

∗ DREXL. Scheduling of Project networks by job assignment. Management science

Vol 37 Número 12.

∗ EL-BIBANY. Parametric constraint management in planning and scheduling

computational basis. Journal of construction engineering and management Vol 123

Número 4.

∗ ELDIN. Concurrent engineering: A schedule reduction tool. Journal of construction

engineering and management Vol 123 Número 3.

∗ Estimación del valor presente neto [on line].

http://www.nafin.com/portalnf/files/pdf/finanzas3_6.pdf. consultado el 23 de Mayo

de 2005.

Page 135: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 135 -

∗ GOLDBERG, David. Genetic algorithms in search optimization, and machine

learning. Edición No 16. Editorial ADDISON-WESLEY, 1989.

∗ Guía básica para la programación en Visual Basic. [on line]

http://www.telecable.es/personales/jrubi/index.htm?curso.htm. consultado el 15 de

Abril de 2005.

∗ HARMELINK y ROWINGS. Linear scheduling model: development of controlling

activity path. Journal of construction engineering and management Vol 124 Número

4.

∗ HEGAZY, Tarek. Computer based construction Project Management. Editorial

Prentice Hall, 2002.

∗ HEGAZY, SHABEEB, ELBELTAGI, CHEEMA. Algorithm for scheduling with

multiskilled constrained resources. Journal of construction engineering and

management Vol 126 Número 4.

∗ HEGAZY Y PETZOLD. Genetic optimization for dynamic project control. Journal

of construction engineering and management. Vol. 129 Número. 4 Julio 2003.

∗ HILLIER, Frederick y LIEBERMAN. Introducción a la investigación de

operaciones. Editorial McGraw-Hill, Sexta edición 1997.

∗ INSTITUTO COLOMBIANO DE NORMAS TÉCNICAS. Normas Colombianas

para la presentación de trabajos de investigación. ICONTEC, 2002.

∗ KANG y PAULSON. Information management to integrate cost and schedule for

civil engineer projects. Journal of construction engineering and management Vol

124 Número 5.

∗ KARIM y ADELI. Information model for construction project management. Journal

of construction engineering and management Vol 125 Número 5.

∗ LI. New approach to optimization of overall construction schedule. Journal of

construction engineering and management Vol 122 Número 1.

∗ LEU, Sou y YANG, Chung. GA-Based multicriteria optimal model for construction

scheduling. Journal of construction engineering and management.Volumen 125

Número 6; Diciembre de 1999.

Page 136: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 136 -

∗ Martin Skutella, Problema del intercambio costo-tiempo [on line]

http://www.math.tu-berlin.de/coga/research/scheduling/tctp/ . consultado el 1 Marzo

de 2005

∗ MERELO, Juan. Información evolutiva: Algoritmos genéticos. en

http://geneura.ugr.es/~jmerelo/ie/ags.htm. consultado el 23 de Febrero de 2005

∗ Programación de la construcción y control de obra [on line]

www.katodos.com/doctos/e22e4d511d5e40892af541dbf29b3ca2. consultado el 1 de

Marzo de 2005.

∗ REAL ACADEMIA ESPAÑOLA, Diccionario de la lengua española vigésima

segunda edición 2001

∗ SON y SKIBNIEWSKI. Multiheuristic approach for resource leveling problem in

construction engineering: Hybrid approach. Journal of construction engineering and

management Vol 125 Número 1.

∗ SUAREZ Carlos, Costo y tiempo en edificación. 2da edición. editorial Limusa

Wiley S.A 1971.

Page 137: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 137 -

ANEXOS

ANEXO 1

Proyecto Adecuación y pavimentación lotes de automotriz interamericana

(Experimento Controlado)

Plazo de construcción: 52 días.

Índice de oportunidad: 1%

Insumos

Código Descripción Unidad Precio unitario Tipo

3 Tubería novafort D=8" ml 29928 Material 4 Malla electrosoldada M-084 Kg 2200 Material 5 Marco y tapa para caja de 0.8 x 0.8 Und 160000 Material 30 Concreto MR 36 Kgf/cm2 m3 275152 Material 35 Arena lavada de pozo m3 30000 Material 37 Sikaflex 15lm Can 697798 Material 38 Cortadora con disco diamantado día 30000 Equipo 39 Sika road de 1/4" ml 450 Material 40 Regla vibradora día 40000 Equipo 44 Polietileno No 6 m2 800 Material 45 puerta en malla y tubo de 16.5 m Und 4856032 Material 46 Cerramiento perimetral en malla ml 140000 Material 133 Cuadrilla general Hra 10000 M. obra 295 Formaleta m2 4000 Material 306 Ladrillo recocido Und 220 Material 342 Acero de refuerzo Fy 2600 Kgf/cm2 Kg 1800 Material 375 Herramienta menor Glb 300 Herramienta 455 Mortero 1:3 m3 190000 Material 1031 Concreto de 3000psi m3 268192 Material

Page 138: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 138 -

Análisis de precios unitarios

Actividad Cod_insumo

Cantidad de

insumo Rendimiento

Costo herramienta usada por mano de obra

Costo ordinario mano de obra por actividad

Costo ordinario maquinaria por actividad

1 44 1.10 1.10 1 375 2.00 760.00 1 133 4.82 7147.00 1 295 0.25 0.25 1 39 0.85 0.85 1 37 0.00 0.00 1 30 0.16 0.16 1 38 4.82 1200 1 40 4.82 1000 1 342 0.61 0.61 1 4 4.38 4.38 2 295 1.00 1.00 2 1031 0.07 0.07 2 375 0.50 600.00 2 133 2.59 5000.00 3 1031 0.06 0.06 3 306 148.00 148.00 3 455 0.11 0.11 3 5 1.00 1.00 3 375 1.00 300.00 3 133 0.13 60024.01 4 3 1.03 1.03 4 35 0.08 0.08 4 1031 0.04 0.04 4 375 1.00 300.00 4 133 0.65 6002.40 5 1031 0.02 0.02 5 342 3.00 3.00 5 46 1.02 1.02 5 375 0.50 600.00 5 133 3.46 2000.00 6 45 1.00 1.00 6 1031 0.46 0.46 6 375 0.50 600.00 6 133 0.13 20000.00

Page 139: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 139 -

Relación de precedencias

Actividad Predecesoras 1 3 2 1 3 4 4 0 5 2 6 5

Características de las actividades

ACTIVIDAD DESCRIPCIÓN UNIDAD CANTIDAD DURACIÓN MÁXIMA

DURACIÓN MÍNIMA

RETRASO PERMITIDO

1

Pavimento en concreto reforzado, con manto de polietileno No6 m2 540 20 8 10

2

Cuneta prefabricada en concreto de 0.4m de ancho ml 415 30 10 10

3 Cajas de inspección de 0.8 x 0.8m Und 4 5 3 10

4 Tubería novafort de 8" ml 60 15 8 10

5 Cerramiento en malla y tubo ml 415 20 10 10

6 Puerta en malla y tubo de 16,5m Und 1 1 1 10

Page 140: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 140 -

Proyecto construcción del parque Lisboa

Plazo de construcción: 104 días

Índice de oportunidad: 1%

Insumos

Código Descripción Unidad Precio unitario Tipo

23 Pasos en acero D=3/4" para pozo Und 3500 Material 25 Base B600 M3 19500 Material 35 Arena lavada de pozo M3 30000 Material 52 Benitin Día 160000 Equipo 81 Cerramiento en malla eslabonada Ml 400000 Material 82 Baranda tipo M-80 H=1.00 Ml 97500 Material 83 Juegos infantiles modulo tipo 3 Jg 5153000 Material 84 Juegos infantiles modulo 5 columpio 3p Jg 1478000 Material 85 Estructura Baloncesto con tablero antib Jg 2842000 Material 86 Ruta de vida de seis eventos en tubo gal Und 1342000 Material 87 Marco y tapa para caja de 60 X 60 Und 80000 Material 90 Rodadura asfáltica ext y comp 1350 M3 421400 Material 91 Imprimación M2 1000 Material 92 Tela polipropileno Ml 2583 Material 106 Bordillo prefabricado tipo A80 Und 15500 Material 115 Vara corredor de 3 metros Und 2500 Material 123 Banca tipo M-31 Un 230000 Material 124 Canecas M120 Und 275000 Material 133 Cuadrilla general Hra 10000 M. obra 200 Concreto en 1500 psi M3 226800 Material 213 Geotextil NT 1800 M2 2450 Material 281 Pintura demarcación Glb 35000 Material 295 Formaleta M2 4000 Material 306 Ladrillo recocido Und 195 Material 316 Geotextil T 2100 M2 2830 Material 317 Grama M2 1800 Material 321 Gravilla de río M3 48000 Material 342 Acero de refuerzo 60000 psi kg 1970 Material 375 Herramienta menor Glb 300 Herramienta 455 Mortero 1:3 M3 190000 Material 517 Puntilla Lb 1200 Material 566 Retroexcavadora Hra 90000 Equipo 763 Vibrocompactadora CA15 Hra 40000 Equipo 772 Volqueta Hra 25000 Equipo

Page 141: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 141 -

1031 Concreto 3000 psi M3 266400 Material 1106 Subbase B400 M3 18300 Material 1110 Concreto 210 Kg/cm2 M3 266400 Material 1175 Tubería novafort 100 mm Ml 11300 Material 1188 Adoquín en ladrillo tipo tolete e=6cm M2 15000 Material

Análisis de precios unitarios

Actividad Cod_insumo

Cantidad de

insumo Rendimiento

Costo herramienta usada por mano de obra

Costo ordinario mano de obra por actividad

Costo ordinario maquinaria por actividad

1.01 375 2.00 150 1.01 566 3.03 1600 1.01 772 3.03 1250.00 1.02 375 4.05 74.1 1.02 772 15.67 925.93 1.02 133 15.67 2500.00 1.03 375 5.00 60 1.03 772 16.75 500.00 1.03 133 16.75 440.00 1.04 375 2.00 150 1.04 772 0.38 5000.00 1.04 133 0.38 10000.00 1.05 375 1.00 300 1.05 772 0.13 5000.00 1.05 133 0.13 10000.00 1.06 375 1.00 300 1.06 772 0.50 20000.00 1.06 133 0.50 33333.33 1.07 375 1.00 300 1.07 772 0.02 20000.00 1.07 133 0.02 50000.00 2.01 375 1.00 300 2.01 763 5.10 1000 2.01 25 0.325 0.33 2.01 90 0.05 0.05 2.01 281 0.08 0.08 2.01 91 1 1.00 2.01 133 5.10 2500.00 2.02 375 1.00 300 2.02 772 2.32 3846.15 2.02 52 2.32 2580.65 2.02 1106 0.26 0.26

Page 142: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 142 -

2.02 25 0.26 0.26 2.02 321 0.165 0.17 2.02 316 1.1 1.10 2.02 133 2.32 5000.00 2.03 375 1.00 300 2.03 52 1.76 2500.00 2.03 772 1.76 3846.15 2.03 1106 0.265 0.27 2.03 25 0.265 0.27 2.03 321 0.165 0.17 2.03 316 1.1 1.10 2.03 133 1.76 5000.00 2.04 375 1.00 300 2.04 52 4.85 2500.00 2.04 772 4.85 4166.67 2.04 1106 0.265 0.27 2.04 25 0.195 0.20 2.04 35 0.1 0.10 2.04 316 1.1 1.10 2.04 1188 1.04 1.04 2.04 133 4.85 8000.00 2.05 375 1.00 300 2.05 772 5.96 1666.67 2.05 1106 0.05 0.05 2.05 200 0.005 0.01 2.05 455 0.008 0.01 2.05 106 1.25 1.25 2.05 133 5.96 3333.33 2.06 375 1.00 300 2.06 1188 0.5 0.50 2.06 1106 0.15 0.15 2.06 133 1.22 8000.00 2.07 375 0.50 600 2.07 52 0.56 2500.00 2.07 772 0.56 7575.76 2.07 1106 0.37 0.37 2.07 35 0.1 0.10 2.07 1188 1.04 1.04 2.07 106 2.5 2.50 2.07 455 0.017 0.02 2.07 25 0.21 0.21 2.07 200 0.012 0.01 2.07 133 0.56 16666.67 3.01 375 1.00 300 3.01 306 100 100.00 3.01 455 0.06 0.06

Page 143: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 143 -

3.01 1110 0.15 0.15 3.01 87 1 1.00 3.01 133 0.08 50000.00 3.02 375 1.00 300 3.02 772 0.78 1250.00 3.02 1175 1.02 1.02 3.02 133 0.78 5000.00 3.03 375 1.00 300 3.03 52 0.75 2500.00 3.03 772 0.75 1000.00 3.03 1110 0.105 0.11 3.03 200 0.05 0.05 3.03 1106 0.325 0.33 3.03 295 0.25 0.25 3.03 133 0.75 9523.81 3.04 375 1.00 300 3.04 306 400 400.00 3.04 213 6.5 6.50 3.04 455 0.15 0.15 3.04 23 2 2.00 3.04 1110 0.12 0.12 3.04 342 45 45.00 3.04 133 0.13 50000.00 3.05 375 1.00 300 3.05 306 300 300.00 3.05 455 0.13 0.13 3.05 1031 0.13 0.13 3.05 133 0.17 50000.00 4.01 375 1.00 300 4.01 1110 0.05 0.05 4.01 124 1 1.00 4.01 133 0.25 10000.00 4.02 375 1.00 300 4.02 123 1 1.00 4.02 1110 0.05 0.05 4.02 133 0.58 10000.00 4.03 83 1 1.00 4.03 133 0.03 100000.00 4.04 84 1 1.00 4.04 133 0.03 100000.00 4.05 85 1 1.00 4.05 133 0.03 50000.00 4.06 86 1 1.00 5.01 375 0.50 600 5.01 1110 0.13 0.13 5.01 295 1 1.00

Page 144: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 144 -

5.01 342 8.5 8.50 5.01 81 1 1.00 5.01 133 0.80 12195.12 5.02 375 1.00 300 5.02 1110 0.065 0.07 5.02 342 6.5 6.50 5.02 295 0.5 0.50 5.02 82 1 1.00 5.02 133 0.77 8000.00 6.01 375 1.00 300 6.01 317 1.1 1.10 6.01 133 3.33 1000.00 6.02 375 1.00 300 6.02 772 0.14 91675.83 6.02 566 0.14 257142.86 6.02 133 0.14 83333.33 6.04 375 1.00 300 6.04 92 1.02 1.02 6.04 115 0.33 0.33 6.04 517 0.2 0.20 6.04 133 0.03 2000.00

Relaciones de precedencia

Actividad Predecesoras 1.01 1.02 1.03 1.04 1.05 1.06 1.02 6.04 1.03 6.04 1.04 6.04 1.05 6.04 1.06 6.04 1.07 6.04 2.01 1.07 2.02 2.05 2.03 2.05 2.04 2.05 3.02 2.05 1.01 2.06 2.04 2.07 2.04 3.01 3.02 3.02 1.01 3.03 2.04 3.04 3.03 3.05 2.04 4.01 6.01

Page 145: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 145 -

4.02 6.01 4.03 5.02 4.04 5.02 4.05 2.01 4.06 5.02 5.01 4.03 4.04 4.05 4.06 5.02 2.02 2.03 6.01 4.03 4.04 4.05 4.06 6.02 1.01 6.04 0

Características de las actividades

ACTIVIDAD DESCRIPCIÓN UND CANTIDAD DURACIÓN MÁXIMA

DURACIÓN MÍNIMA

RETRASO MÁXIMO

1.01

Conformación y nivelación de terreno con retiro de sobrantes m2 242 14 6 10

1.02

Demolición de anden en concreto, incluye cargue y retiro de escombros m2 564 6 3 10

1.03

Demolición de bordillo en ladrillo, incluye cargue y retiro de escombros ml 335 3 2 10

1.04 Retiro de bancas, incluye cargue y retiro Und 3 1 1 10

1.05 Desmonte de canecas, incluye cargue y retiro Und 1 1 1 10

1.06

Desmonte de juego infantil, incluye cargue y retiro Und 4 1 1 10

1.07

Adecuación estructura cancha múltiple (incluye retiro de tablero exterior) Jg 1 10 4 10

2.01

Recuperación con realce (en pavimento flexible sin recubrimiento con demarcación) estructura en B600 e=0.25m m2 510 17 8 5

2.02

Piso en juegos infantiles con estructura subbase IDU gradación A-B m2 158 12 5 5

Page 146: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 146 -

(B=400 de SOP incluye gravilla y geotextil)

2.03

Piso ruta de la vida con estructura B=200 e=0.2, B=400 e=0.2, Gravilla e=0.15, Geotextil T-2100 m2 120 12 5 5

2.04

Adoquín tipo tolete para pendientes menores al 5% incluye estructura B=400 e=0.2, B=600 e=0.2, arena e=.09 m2 1008 32 20 5

2.05

Bordillo prefabricado A-80 en concreto H=0.35, incluye excavación, B=400, concreto pobre, mortero, atraque y retiro ml 620 16 10 10

2.06 Peldaños escaleras en adoquín tolete e=0.5 ml 225 31 15 10

2.07

Rampa para discapacitados en adoquín tipo tolete, confinada con bordillos en concreto m2 18 5 3 5

3.01 Caja de inspección 60 X 60 (incluye excavación) Und 2 4 2 10

3.02

Tubería en PVC, 110mm alcantarillado tipo Fort (incluye accesorios, excavación y relleno) ml 25 5 3 10

3.03

Cuneta trapezoidal, anden en concreto reforzado de 3000psi, fundido en sitio e=0.1 A=1.0 (inc. exc. Conc. Pob) ml 30 7 3 10

3.04 Realce pozo de inspección Diam. 1.2m Und 1 1 1 10

3.05 Realce caja doble de energía de 1.2 X 0.6 m Und 2 2 1 10

4.01 Suministro e instalación de canecas M-12 Und 3 2 1 10

4.02

Suministro e instalación de bancas prefabricadas en concreto M-31, sin Und 7 2 1 10

Page 147: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 147 -

espaldar

4.03

Suministro e instalación de juegos infantiles modulo tipo 3 Jg 1 6 3 10

4.04

Suministro e instalación de juegos infantiles modulo tipo 5, columpio 3 puestos Jg 1 6 3 10

4.05

Suministro e instalación estructura baloncesto con tablero antibandalico Jg 1 6 3 10

4.06

Suministro e instalación ruta de la vida de seis eventos en tubo galvanizado, según especificación técnica, incluye señalización Und 1 6 3 10

5.01

Cerramiento H=5.00 m, malla eslabonada, estructura en tubo galvanizado de 3, e=3.81 viga de 40 X 30 ml 32 7 3 10

5.02

Baranda para área de juegos infantiles tipo M-80, H=1.00 con viga perimetral en concreto de 3000 psi ml 77 15 10 10

6.01 Empradización zona a recuperar m2 200 10 5 10

6.02

Transplante y bloqueo de árboles de 5.00m a 10.00 m Und 4 5 2 10

6.04 Cerramiento en polipropileno H=2.00m ml 1 5 3 5

Page 148: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 148 -

Proyecto de construcción de la escombrera “Guadalcanal”

Plazo de construcción: 156 días

Índice de oportunidad 1%

Insumos

Código Descripción Unidad Precio unitario Tipo

289 Acarreo horizontal Glb 5000 Equipo 342 Acero de refuerzo 60000 psi Kg 1970 Material 298 Afirmado m3 15000 Material 42 Afirmado de Combia m3 10000 Material 293 Agua Lt 4 Material 22 Alambre negro No 18 Kg 2401 Material 18 Amarra para teja A.C Und 150 Material 172 Aro tapa en hierro gris Und 110000 Material 53 Canguro Dia 30000 Equipo 182 Cemento gris Kg 400 Material 198 Comisión topográfica Dia 80000 Equipo 202 Concreto 2500 psi m3 263088 Material 203 Concreto 3000 psi m3 274340 Material 264 Concreto simple de 27.6 Mpa m3 194750 Material 376 Cuadrilla general Hra 10000 M. obra 303 Entibados en madera H=4m m2 20000 Material 141 Equipo topográfico día 40000 Equipo 140 Estacas Glb 250 Material 6 Esterilla de 3 x 0.25 m Und 1800 Material

295 Formaleta m2 3000 Material 288 Gafas protectoras sencillas Und 7500 Material 302 Geotextil NT 2100 m2 3400 Material 323 Gravilla m3 22000 Material 299 Gravilla 3/4" a 2" m3 30000 Material 5 Guadua sobrebasa x 3m Und 2000 Material

375 Herramienta menor Glb 500 Herramienta 306 Ladrillo recocido Und 200 Material 292 Lechada de cemento Lt 300 Material 290 Mezcladora de un saco Dia 30000 Equipo 455 Mortero 1:3 m3 190000 Material 148 Motoniveladora hr 40000 Equipo 287 Paso escalera de gato 3/4 x 1m Und 4500 Material 67 Piedra media zonga m3 25000 Material 990 Pintura esmalte Glb 38500 Material 7 Puntilla Lb 1705 Material

Page 149: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 149 -

566 Retroexcavadora Hra 80000 Equipo

237 Tapa cámara alcantarilla A&A + Aro

Manhole Und 147215 Material 135 Teja de zinc No 10 Und 14000 Material 291 Transporte de material m3 10000 Material 300 Tubería de concreto reforzado de 40" ml 400000 Material 301 Tubería de concreto reforzado de 48" ml 580000 Material 256 Tubo concreto reforzado de 27" ml 175000 Material 39 Valla informativa m2 51400 Material

1328 Vibrador Dia 18000 Equipo 763 Vibrocompactador Dia 30000 Equipo

Análisis de precios unitarios

Actividad Cod

insumo

Cantidad de

insumo Rendimiento

Costo herramienta usada por mano de obra

Costo ordinario mano de obra por actividad

Costo ordinario maquinaria por actividad

1.01 202 0.08 0.08 1.01 135 0.60 0.60 1.01 5 0.80 0.80 1.01 7 0.20 0.20 1.01 22 0.19 0.19 1.01 6 3.50 3.50 1.01 18 2.00 2.00 1.01 375 1.00 499.0 1.01 376 0.83 12500.00 1.02 288 0.02 0.02 1.02 375 0.21 2379.8 1.02 376 0.28 83682.01 1.02 289 0.28 2742.13 1.03 990 0.00199 0.00199 1.03 7 0.02 0.02 1.03 140 0.20 0.20 1.03 375 7.00 71.4 1.03 141 11.67 400.00 1.03 376 11.67 100.00 1.03 198 11.67 800.00 1.04 39 1.00 1.00 1.04 375 1.00 500.0 1.04 376 0.25 8000.00 1.05 375 9.52 52.5 1.05 376 80.33 312.50 1.05 289 80.33 100.00 1.06 375 1.00 500.0

Page 150: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 150 -

1.06 376 0.32 8000.00 1.06 289 0.32 3292.94 2.01 375 5.74 87.1 2.01 566 33.93 1454.55 2.01 376 33.93 333.33 2.02 375 1.00 500.0 2.02 376 12.86 10000.00 2.02 289 12.86 1100.01 2.03 375 0.33 1533.3 2.03 376 6.79 12500.00 2.03 289 6.79 1666.67 2.04 53 4.98 1999.80 2.04 375 1.00 500.0 2.04 376 4.98 8000.00 2.05 375 5.00 100.0 2.05 566 3.75 3200.00 2.05 376 3.75 468.00 2.06 42 1.25 1.25 2.06 182 100.00 100.00 2.06 293 100.00 100.00 2.06 292 23.00 23.00 2.06 291 1.00 1.00 2.06 375 1.11 450.0 2.06 763 0.58 3000.00 2.06 290 0.58 500.00 2.06 376 0.58 12000.48 2.06 289 0.58 250.00 2.07 67 1.05 1.05 2.07 375 0.10 5000.0 2.07 376 0.71 25969.30 3.01 203 0.27 0.27 3.01 342 35.20 35.20 3.01 22 1.50 1.50 3.01 375 1.00 500.0 3.01 376 0.01 25000.00 3.02 287 1.00 1.00 3.02 375 1.51 331.1 3.02 376 0.13 2000.00 3.03 203 1.05 1.05 3.03 342 50.00 50.00 3.03 22 2.00 2.00 3.03 295 6.67 6.67 3.03 375 0.95 529.1 3.03 376 0.06 65997.89 3.04 237 1.00 1.00 3.04 375 1.00 500.0

Page 151: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 151 -

3.04 376 0.04 10000.00 3.05 256 1.01 1.01 3.05 375 0.86 583.3 3.05 566 0.81 10490.70 3.05 376 0.81 12500.00 4.01 264 1.00 1.00 4.01 375 2.00 250.0 4.01 376 0.81 20000.00 4.02 203 1.02 1.02 4.02 295 8.00 8.00 4.02 375 0.98 510.4 4.02 1328 0.08 1200.00 4.02 376 0.08 65573.77

Relación de precedencias

Actividad Predecesoras 1.01 1.02 1.03 1.05 1.04 1.05 1.06 1.03 2.01 1.03 2.02 1.03 2.03 1.03 2.04 4.01 2.05 4.01 2.06 1.06 2.01 2.02 2.03 2.07 2.06 3.01 3.05 3.02 3.03 3.03 3.01 3.04 4.02 3.05 2.07 4.01 3.05 4.02 3.02

Características de las actividades

ACTIVIDAD DESCRIPCIÓN UNIDAD CANTIDAD DURACIÓN MÁXIMA

DURACIÓN MÍNIMA

Page 152: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 152 -

1.01 Campamento esterilla + teja zinc+ piso m2 30 6 3

1.02 Demolición concreto simple man m3 10 6 3

1.03 Localización y replanteo obra m2 280 4 2

1.04 Valla informativa instalada m2 2 1 1

1.05 Limpieza y rocería de superficies m2 4820 8 4

1.06 Manejo temporal aguas negras brecha ml 90 30 20

2.01 Excavación material común abierto Mec. m3 9500 30 20

2.02

Excavacion material común seco H=2m man m3 3600 30 20

2.03

Excavacion material común seco H=2-4m man m3 1900 30 20

2.04 Lleno compactado material sitio man m3 1394 30 20

2.05 Lleno material común mecánico m3 1200 40 20

2.06 Afirmado + cemento 5% peso m3 115 25 15

2.07 Enrocado m3 170 30 20

3.01 Base y canuela cámara de inspección Und 1 15 6

3.02 Escalera gato 3/4 L=1m Und 20 25 10

Page 153: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 153 -

3.03 Caja inspección D=1.5m + refuerzo Und 10 25 10

3.04

Tapa cámara alcantarilla + aro manhole Und 1 4 2

3.05 Tubería en concreto reforzado 27" ml 195 30 20

4.01 Concreto simple 27.6 Mpa para anclajes m3 195 30 20

4.02 Muro concreto reforzado para caja m3 20 30 20

Page 154: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 154 -

ANEXO 2

Gastos administrativos para adecuación y construcción de lotes de Automotriz

Interamericana

Ocupación/Razón Gasto mensual Dedicación/Cantidad Total

Director de obra $ 4,000,000 50% $ 2,000,000 Residente $ 3,000,000 100% $ 3,000,000

Almacenista $ 1,000,000 100% $ 1,000,000 Secretaria $ 800,000 20% $ 160,000 Mensajero $ 800,000 20% $ 160,000

Celador $ 1,000,000 2 $ 2,000,000 Campamento $ 2,000,000 1 $ 2,000,000 Baño móvil $ 300,000 2 $ 600,000 Teléfono $ 300,000 1 $ 300,000

Agua y luz $ 300,000 1 $ 300,000 Papelería $ 300,000 1 $ 300,000

Legalización y Pólizas $ 1,000,000 1 $ 1,000,000

Transportes $ 500,000 1 $ 500,000 Total $ 13,320,000

Gastos administrativos para construcción del parque urbano. “Parque Lisboa”

Ocupación/Razón Gasto mensual Dedicación/Cantidad Total

Director de obra $ 4,000,000 50% $ 2,000,000 Residente $ 3,000,000 100% $ 3,000,000

Almacenista $ 1,000,000 100% $ 1,000,000 Secretaria $ 800,000 40% $ 320,000 Mensajero $ 800,000 20% $ 160,000

Celador $ 1,000,000 2 $ 2,000,000 Campamento $ 1,000,000 1 $ 1,000,000 Baño móvil $ 300,000 2 $ 600,000 Teléfono $ 300,000 1 $ 300,000

Agua y luz $ 300,000 1 $ 300,000 Papelería $ 300,000 1 $ 300,000

Legalización y Pólizas $ 1,000,000 1 $ 1,000,000

Transportes $ 500,000 1 $ 500,000 Total $ 12,480,000

Page 155: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 155 -

Gastos administrativos para construcción de escombrera “Guadalcanal”

Ocupación/Razón Gasto mensual Dedicación/Cantidad Total

Director de obra $ 4,000,000 50% $ 2,000,000 Residente $ 3,000,000 100% $ 3,000,000

Almacenista $ 1,000,000 100% $ 1,000,000 Secretaria $ 800,000 20% $ 160,000 Mensajero $ 800,000 20% $ 160,000

Celador $ 1,000,000 2 $ 2,000,000 Campamento $ 2,000,000 1 $ 2,000,000 Baño móvil $ 300,000 2 $ 600,000 Teléfono $ 300,000 1 $ 300,000

Agua y luz $ 300,000 1 $ 300,000 Papelería $ 300,000 1 $ 300,000

Legalización y Pólizas $ 1,000,000 1 $ 1,000,000

Transportes $ 500,000 1 $ 500,000 Total $ 13,320,000

Page 156: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 156 -

ANEXO 3

Detalle de los costos directos del experimento controlado.

Actividad 1:

Cantidad: Qa = 540 m2

Duración: da = 11 días

Mano de obra:

• Código insumo: 133

27.182.48

1*

11

54081

*,

, ===aka

aka

RdQ

m Ecuación 31

7147$=kV

412.901'4$540*7147*27.1**, === akka QVmCosto Ecuación 32

Costo Material:

• Código insumo: 44

21.1, mD aj =

800$=jU

200.475$540*800*1.1**, === ajaj QUDCosto Ecuación 33

• Código insumo: 295

Page 157: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 157 -

225.0, mD aj =

4000$=jU

000.540$540*4000*25.0**, === ajaj QUDCosto Ecuación 34

• Código insumo: 39

mlD aj 85.0, =

450$=jU

550.206$540*450*85.0**, === ajaj QUDCosto Ecuación 28

• Código insumo: 37

canD aj 0033.0, =

798.697$=jU

243476'1$540*697798*0033.0**, === ajaj QUDCosto Ecuación 35

• Código insumo: 30

316.0, mD aj =

275152$=jU

773132'23$540*275152*16.0**, === ajaj QUDCosto Ecuación 36

• Código insumo: 342

KgD aj 61.0, =

1800$=jU

Page 158: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 158 -

520.592$540*1800*61.0**, === ajaj QUDCosto Ecuación 37

• Código insumo: 4

KgD aj 38.4, =

2200$=jU

440.203'5$540*2200*38.4**, === ajaj QUDCosto Ecuación 38

• Costo total insumos

318.034'32$**, =∑ ajaj QUD Ecuación 39

Equipo:

• Código insumo: 38

27.182.48

1*

11

54081

*,

, ===aea

aea

YdQ

l Ecuación 40

1200$=eL

960.822$540*1200*27.1**, === aeea QLlCosto Ecuación 41

• Código insumo: 40

27.182.48

1*

11

54081

*,

, ===aea

aea

YdQ

l Ecuación 42

Page 159: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 159 -

1000$=eL

800.685$540*1000*27.1**, === aeea QLlCosto Ecuación 43

• Costo total equipo

∑ = 760.508'1$**, aeea QLl Ecuación 44

Herramienta:

• Código insumo: 375

27.182.48

1*

11

54081

*,

, ===aka

aka

RdQ

m Ecuación 45

760$,, =akhX

208.521$540*760*27.1** ,,, === aakhka QXmCosto Ecuación 46

Total actividad 1:

Mano de obra + Materiales + Equipo + Herramienta = $38’965.698

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el primer y el segundo

mes de la siguiente manera:

Día de inicio: 25

Page 160: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 160 -

Día finalización: 35

Día final del primer periodo: 26

Proporción al primer periodo: 18.011

12526=

+− Ecuación 47

Proporción al segundo periodo: 82.011

2635=

− Ecuación 48

Costo asociado al primer mes: 64,825.013'7$38965698*18.0 = Ecuación 49

Costo asociado al segundo mes: 36,872.951'31$38965698*82.0 = Ecuación 50

Actividad 2:

Cantidad: Qa = 415 ml

Duración: da = 22 días

Mano de obra:

• Código insumo: 133

9.059.28

1*

22

41581

*,

, ===aka

aka

RdQ

m Ecuación 51

5000$=kV

500.867'1$415*5000*91.0**, === akka QVmCosto Ecuación 52

Costo Material:

Page 161: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 161 -

• Código insumo: 295

21, mD aj =

4000$=jU

000.660'1$415*4000*1**, === ajaj QUDCosto Ecuación 53

• Código insumo: 1031

307.0, mD aj =

192.268$=jU

977.790'7$415*268192*07.0**, === ajaj QUDCosto Ecuación 54

• Costo total insumos

450977'9$**, =∑ ajaj QUD Ecuación 55

Herramienta:

• Código insumo: 375

9.059.28

1*

22

41581

*,

, ===aka

aka

RdQ

m Ecuación 56

600$,, =akhX

224100$415*600*9.0** ,,, === aakhka QXmCosto Ecuación 57

Total actividad 2:

Page 162: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 162 -

Mano de obra + Materiales + Equipo + Herramienta = $11’542.577

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el segundo y el tercer

mes de la siguiente manera:

Día de inicio: 37

Día finalización: 58

Día final del segundo periodo: 52

Proporción al primer periodo: 72.022

13752=

+− Ecuación 58

Proporción al segundo periodo: 28.022

5258=

− Ecuación 59

Costo asociado al segundo mes: 44,655.310'8$ $11542.577*72.0 = Ecuación 60

Costo asociado al tercer mes: 56,921.231'3$ $11542.577*28.0 = Ecuación 61

Actividad 3:

Cantidad: Qa = 4 Und

Duración: da = 4 días

Mano de obra:

• Código insumo: 133

Page 163: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 163 -

96.013.8

1*

4

481

*,

, ===aka

aka

RdQ

m Ecuación 62

024.60$=kV

492.230$4*60024*96.0**, === akka QVmCosto Ecuación 63

Costo Material:

• Código insumo: 1031

306.0, mD aj =

268192$=jU

366.64$4*268192*06.0**, === ajaj QUDCosto Ecuación 64

• Código insumo: 306

UndD aj 148, =

220$=jU

130240$4*220*148**, === ajaj QUDCosto Ecuación 65

• Código insumo: 455

311.0, mD aj =

190000$=jU

83600$4*190000*11.0**, === ajaj QUDCosto Ecuación 66

• Código insumo: 5

Page 164: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 164 -

UndD aj 1, =

000.160$=jU

640000$4*160000*1**, === ajaj QUDCosto Ecuación 67

• Costo total insumos

206.918$**, =∑ ajaj QUD Ecuación 68

Herramienta:

• Código insumo: 375

96.013.8

1*

4

481

*,

, ===aka

aka

RdQ

m Ecuación 69

300$,, =akhX

1152$4*300*96.0** ,,, === aakhka QXmCosto Ecuación 70

Total actividad 3:

Mano de obra + Materiales + Equipo + Herramienta = $1’149850

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el primer mes

Page 165: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 165 -

Día de inicio: 16

Día finalización: 19

Costo asociado al primer mes: 149850'1$ Ecuación 71

Actividad 4:

Cantidad: Qa = 60 ml

Duración: da = 10 días

Mano de obra:

• Código insumo: 133

15.165.08

1*

10

6081

*,

, ===aka

aka

RdQ

m Ecuación 72

5.6002$=kV

165.414$60*4.6002*15.1**, === akka QVmCosto Ecuación 73

Costo Material:

• Código insumo: 3

mlD aj 03.1, =

29928$=jU

849550'1$60*29928*03.1**, === ajaj QUDCosto Ecuación 74

• Código insumo: 35

Page 166: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 166 -

308.0, mD aj =

30000$=jU

144000$60*30000*08.0**, === ajaj QUDCosto Ecuación 75

• Código insumo: 1031

304.0, mD aj =

268192$=jU

643660$60*268192*04.0**, === ajaj QUDCosto Ecuación 76

• Costo total insumos

637210'2$**, =∑ ajaj QUD Ecuación 77

Herramienta:

• Código insumo: 375

15.165.08

1*

10

6081

*,

, ===aka

aka

RdQ

m Ecuación 78

300$,, =akhX

20700$60*300*15.1** ,,, === aakhka QXmCosto Ecuación 79

Total actividad 4:

Page 167: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 167 -

Mano de obra + Materiales + Equipo + Herramienta = $3’072075

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el primer mes

Día de inicio: 6

Día finalización: 15

Costo asociado al primer mes: $3’072075 Ecuación 80

Actividad 5:

Cantidad: Qa = 415 ml

Duración: da = 16 días

Mano de obra:

• Código insumo: 133

94.046.38

1*

16

41581

*,

, ===aka

aka

RdQ

m Ecuación 81

2000$=kV

780200$415*2000*94.0**, === akka QVmCosto Ecuación 82

Costo Material:

• Código insumo: 1031

Page 168: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 168 -

302.0, mD aj =

268192$=jU

2225993$415*268192*02.0**, === ajaj QUDCosto Ecuación 83

• Código insumo: 342

KgD aj 3, =

1800$=jU

000.241'2$415*1800*3**, === ajaj QUDCosto Ecuación 84

• Código insumo: 46

mlD aj 02.1, =

140000$=jU

262000'59$415*140000*02.1**, === ajaj QUDCosto Ecuación 85

• Costo total insumos

993.728'63$**, =∑ ajaj QUD Ecuación 86

Herramienta:

• Código insumo: 375

94.046.38

1*

16

41581

*,

, ===aka

aka

RdQ

m Ecuación 87

600$,, =akhX

Page 169: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 169 -

234060$415*600*94.0** ,,, === aakhka QXmCosto Ecuación 88

Total actividad 5:

Mano de obra + Materiales + Equipo + Herramienta = $64’743253

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el tercer mes

Día de inicio: 63

Día finalización: 78

Costo asociado al tercer mes: $64’743253 Ecuación 89

Actividad 6:

Cantidad: Qa = 1 Und

Duración: da = 1 día

Mano de obra:

• Código insumo: 133

1125.08

1*

1

181

*,

, ===aka

aka

RdQ

m Ecuación 90

20000$=kV

20000$1*20000*1**, === akka QVmCosto Ecuación 91

Page 170: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 170 -

Costo Material:

• Código insumo: 1031

346.0, mD aj =

268192$=jU

123368$1*268192*46.0**, === ajaj QUDCosto Ecuación 92

• Código insumo: 45

UndD aj 1, =

4856032$=jU

032.856'4$**, == ajaj QUDCosto Ecuación 93

• Costo total insumos

979400'4$**, =∑ ajaj QUD Ecuación 94

Herramienta:

• Código insumo: 375

1125.08

1*

1

181

*,

, ===aka

aka

RdQ

m Ecuación 95

600$,, =akhX

Page 171: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 171 -

600$** ,,, == aakhka QXmCosto Ecuación 96

Total actividad 5:

Mano de obra + Materiales + Equipo + Herramienta = $ 5’000.000

Periodo en el que se ejecuta

Según los días de inicio y finalización, la actividad genera costos en el cuarto mes

Día de inicio: 87

Día finalización: 87

Costo asociado al tercer mes: $ 5’000.000 Ecuación 97

Page 172: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 172 -

ANEXO 4

Parque Lisboa Corrección de duraciones con una probabilidad del 90%

Actividad Duración máxima

Duración mínima

Duración más probable

Valor esperado Variancia

Desviación estándar

Tiempo a cortar

Nuevo máximo

Nuevo mínimo

1.01 14 6 12 12.00 1.78 1.33 2 12 8 1.02 6 3 5 5.00 0.25 0.50 0 6 3 1.03 3 2 3 3.00 0.03 0.17 0 3 2 1.04 1 1 1 1.00 0.00 0.00 0 1 1 1.05 1 1 1 1.00 0.00 0.00 0 1 1 1.06 1 1 1 1.00 0.00 0.00 0 1 1 1.07 10 4 7 7.00 1.00 1.00 1 9 5 2.01 17 8 14 14.00 2.25 1.50 2 15 10 2.02 12 5 10 10.00 1.36 1.17 1 11 6 2.03 12 5 10 10.00 1.36 1.17 1 11 6 2.04 32 20 25 26.00 4.00 2.00 3 29 23 2.05 16 10 13 13.00 1.00 1.00 1 15 11 2.06 31 15 25 25.00 7.11 2.67 4 27 19 2.07 5 3 4 4.00 0.11 0.33 0 5 3 3.01 4 2 3 3.00 0.11 0.33 0 4 2 3.02 5 3 4 4.00 0.11 0.33 0 5 3 3.03 7 3 5 5.00 0.44 0.67 1 6 4 3.04 1 1 1 1.00 0.00 0.00 0 1 1 3.05 2 1 2 2.00 0.03 0.17 0 2 1 4.01 2 1 2 2.00 0.03 0.17 0 2 1 4.02 2 1 2 2.00 0.03 0.17 0 2 1 4.03 6 3 5 5.00 0.25 0.50 0 6 3 4.04 6 3 5 5.00 0.25 0.50 0 6 3 4.05 6 3 5 5.00 0.25 0.50 0 6 3 4.06 6 3 5 5.00 0.25 0.50 0 6 3 5.01 7 3 5 5.00 0.44 0.67 1 6 4 5.02 15 10 14 14.00 0.69 0.83 1 14 11 6.01 10 5 8 8.00 0.69 0.83 1 9 6 6.02 5 2 4 4.00 0.25 0.50 0 5 2 6.04 5 3 4 4.00 0.11 0.33 0 5 3

Page 173: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 173 -

Construcción escombrera “Guadalcanal” Corrección de duraciones con una probabilidad del 90%

Actividad Duración máxima

Duración mínima

Duración más probable

Valor esperado Variancia

Desviación estándar

Tiempo a cortar

Nuevo máximo

Nuevo mínimo

1.01 6 3 5 6 0.25 0.50 0 6 3 1.02 6 3 5 6 0.25 0.50 0 6 3 1.03 4 2 4 4 0.11 0.33 0 4 2 1.04 1 1 1 1 0.00 0.00 0 1 1 1.05 8 4 7 7 0.44 0.67 1 7 5 1.06 30 20 28 27 2.78 1.67 2 28 22 2.01 30 20 28 27 2.78 1.67 2 28 22 2.02 30 20 28 27 2.78 1.67 2 28 22 2.03 30 20 28 27 2.78 1.67 2 28 22 2.04 30 20 28 27 2.78 1.67 2 28 22 2.05 40 20 36 34 11.11 3.33 5 35 25 2.06 25 15 23 22 2.78 1.67 2 23 17 2.07 30 20 28 27 2.78 1.67 2 28 22 3.01 15 6 13 13 2.25 1.50 2 13 8 3.02 25 10 22 21 6.25 2.50 4 21 14 3.03 25 10 22 21 6.25 2.50 4 21 14 3.04 4 2 4 4 0.11 0.33 0 4 2 3.05 30 20 28 27 2.78 1.67 2 28 22 4.01 30 20 28 27 2.78 1.67 2 28 22 4.02 30 20 28 27 2.78 1.67 2 28 22

Page 174: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 174 -

ANEXO 5

A continuación se presenta el código del algoritmo genético en lenguaje Microsoft Excel

Visual Basic

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Genera una Poblacion inicial:

'Selecciona los Nind mejores cromosomas de la Hoja Resultados_Previos

'y los copia en la Hoja Poblacion

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub PobIni_ResHistoric1()

Dim Tpob, Nact, fila, Nind, aux, j, Ngenes, Tpobv

Dim Xp As Single

Dim i

Dim Elite() As Integer 'Vector en el que se guardan las posiciones

'de los Nind individuos seleccionados

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Nind = Tpob 'Número de Individuos a copiar

'Cuenta cuantos individuos hay en la hoja Resultados_Previos

j = 1

While (Not (IsEmpty(Worksheets("Resultados_Previos").Cells(1, j))))

Tpobv = j

j = j + 1

Wend

Page 175: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 175 -

ReDim Elite(Tpobv) 'Cambio de tamaño según Tamaño Población

'Inicialización vector Elite

For i = 1 To Tpobv

Elite(i) = i

Next i

'Ordenar para escoger los mejores Nind individuos de la población

For i = 1 To Nind

For j = i + 1 To Tpobv

If (Worksheets("Resultados_Previos").Cells(1, Elite(i)) <

Worksheets("Resultados_Previos").Cells(1, Elite(j))) Then

aux = Elite(i): Elite(i) = Elite(j): Elite(j) = aux

End If

Next j

Next i

Worksheets("Población").Range("A1:AZ10000").ClearContents

'Copiar los Nind individuos a la hoja Pob_Intermedia

For i = 1 To Nind 'Recorre el vector Elite

For fila = 1 To (Ngenes + 2) Step 2 'Recorre la hoja Pob_Intermedia

'Copia el individuo en la posicion Elite (i)

'de la Hoja Poblacion a la Hoja Pob_Intermedia

Worksheets("Población").Cells(fila, i).Value =

Worksheets("Resultados_Previos").Cells(fila, Elite(i)).Value

Worksheets("Población").Cells(fila + 1, i).Value =

Worksheets("Resultados_Previos").Cells(fila + 1, Elite(i)).Value

Next fila

Page 176: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 176 -

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Genera una Poblacion Inicial con Numeros Aleatorios en la Hoja Población

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub PobIni_Aleatorio()

Dim Tpob, Nact, fila, col, act, Li, Ls, D, R, RM As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Randomize

Worksheets("Población").Range("A1:AZ10000").ClearContents

'Crea la Poblacion Inicial en la Hoja Población

For col = 1 To Tpob 'Recorre la Hoja Actividades

act = 2

For fila = 3 To (Ngenes + 2) Step 2 'Recorre la Hoja Población

'Obtiene la Dur max y min de las actividades y retraso maximo

Li = Worksheets("Actividades").Cells(act, 6).Value 'duracion minima

Ls = Worksheets("Actividades").Cells(act, 5).Value 'duracion maxima

RM = Worksheets("Actividades").Cells(act, 7).Value 'retraso maximo

act = act + 1

Page 177: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 177 -

'Asigna la duración y retrazo para cada actividad

D = Int((Ls - Li + 1) * Rnd + Li)

Worksheets("Población").Cells(fila, col).Value = D

R = Int(Rnd * RM) 'ojo: aqui se modifica el rango de las holguras

Worksheets("Población").Cells(fila + 1, col).Value = R

Next fila

Next col

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Genera una Población Inicial con Dur aleatoria y retrazo = 0 en la Hoja Población

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub PobIni_Retraso0()

Dim Tpob, Nact, fila, col, act, Li, Ngenes, Ls, D As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Randomize

Worksheets("Población").Range("A1:AZ10000").ClearContents

'Crea la Poblacion Inicial en la Hoja Población

For col = 1 To Tpob 'Recorre la Hoja Actividades

act = 2

Page 178: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 178 -

For fila = 3 To (Ngenes + 2) Step 2 'Recorre la Hoja Población

'Obtiene la Dur max y min de las actividades

Li = Worksheets("Actividades").Cells(act, 6).Value

Ls = Worksheets("Actividades").Cells(act, 5).Value

act = act + 1

'Asigna la duración y retrazo para cada actividad

D = Int((Ls - Li + 1) * Rnd + Li)

Worksheets("Población").Cells(fila, col).Value = D

Worksheets("Población").Cells(fila + 1, col).Value = 0

Next fila

Next col

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Selecciona individuos aleatoriamente de la hoja Población y copia la posicion

'de los seleccionados en la hoja Pob_Intermedia

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Selección_Aleatoria()

Dim Tpob, Pos, CS, Nhijos, Nhr, Ppr As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'cantidad de hijos por generación

Nhr = Worksheets("Control").Cells(8, 2).Value 'cantidad de hijos por recombinacion

Ppr = Worksheets("Control").Cells(16, 2).Value 'cantidad de padres por recombinación

Page 179: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 179 -

CS = (Nhijos / Nhr + 1) * Ppr 'cantidad de padres a seleccionar

Worksheets("Pob_intermedia").Range("A1:A1000").ClearContents

Randomize

For i = 1 To CS

If i = 1 Then 'cuando selecciona el primero

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Int((Tpob - 1) * Rnd + 1)

End If

If i = 2 Then 'cuando selecciona el segundo

Pos = Int((Tpob - 1) * Rnd + 1)

If Pos <> Worksheets("Pob_Intermedia").Cells(i, 1).Value Then

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Pos

Else

i = i - 1

End If

End If

If i > 2 Then 'cuando selecciona del tercero en adelante

Pos = Int((Tpob - 1) * Rnd + 1)

If Pos <> Worksheets("Pob_Intermedia").Cells(i - 1, 1).Value And Pos <>

Worksheets("Pob_Intermedia").Cells(i - 2, 1).Value Then

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Pos

Else

i = i - 1

End If

End If

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Seleccion Escalonada:

Page 180: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 180 -

'Organiza los individuos, traza una recta entre el ind con menor aptitud y el ind

'con mayor aptitud; luego prolonga la aptitud de cada individuo hasta la recta

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Selección_Escalonada()

Dim Tpob, Nact, fila, Nind, i, poss, Ngenes, Nhijos, Nhr, Ppr, CS As Integer

Dim Vect() As Single 'Vector en el que se guardan los rangos

'de aptitud de los individuos

Dim Pos() As Integer 'Guarda las posiciones de los individuos seleccionados

Dim Sapt, Rand As Single

Dim Elite() As Integer 'Vector en el que se guardan las posiciones

'de los Nind individuos seleccionados

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Nhijos = Worksheets("Control").Cells(7, 2).Value 'cantidad de hijos por generación

Nhr = Worksheets("Control").Cells(8, 2).Value 'cantidad de hijos por recombinacion

Ppr = Worksheets("Control").Cells(16, 2).Value 'cantidad de padres por recombinación

CS = (Nhijos / Nhr + 1) * Ppr 'cantidad de padres a seleccionar

Worksheets("Pob_intermedia").Range("A1:A1000").ClearContents

ReDim Vect(Tpob) 'Cambio de tamaño según Tamaño Población

ReDim Pos(CS) 'Cambio de tamaño según cantidad de padres a seleccionar

ReDim Elite(Tpob) 'Cambio de tamaño según Tamaño Población

'Inicialización vector Elite

For i = 1 To Tpob

Elite(i) = i

Next i

Page 181: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 181 -

'Ordena los individuos de la población de mejor a peor en el vector Elite

'OJO: ordena las posiciones, no los individuos fisicamente

For i = 1 To Tpob

For j = i + 1 To Tpob

If (Worksheets("Población").Cells(1, Elite(i)) < Worksheets("Población").Cells(1,

Elite(j))) Then

aux = Elite(i): Elite(i) = Elite(j): Elite(j) = aux

End If

Next j

Next i

'guarda las aptitudes de todos los cromosomas en Vect

For i = 1 To Tpob

Vect(i) = Worksheets("Población").Cells(1, Elite(i))

Next i

amen = Vect(Tpob) 'Menor aptitud

amay = Vect(1) 'Mayor aptitud

'Prolonga la aptitud de cada individuo hasta la recta

'y guarda dichos valores en Vect

'Suma las nuevas aptitudes en Sapt

Sapt = 0

For i = 0 To (Tpob - 1)

Vect(i + 1) = (((amay - amen) / Tpob) * (Tpob - i))

Sapt = Sapt + Vect(i + 1) 'Guarda la sumatoria de las aptitudes de todos los

cromosomas

Next i

Page 182: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 182 -

'Asigna el limte superior del rango de cada individuo y lo guarda en Vect

Vect(1) = Vect(1) / Sapt

For i = 2 To Tpob

Vect(i) = Vect(i) / Sapt

Vect(i) = Vect(i - 1) + Vect(i)

Next i

Randomize

'Selecciona el primer padre

Rand = Rnd 'Genera un # aleatorio

j = 0

While (j < Tpob)

If Vect(j + 1) >= Rand And Vect(j) < Rand Then 'Pregunta si el aleatorio esta en el

'intervalo del individuo en la posicion (j+1)

Pos(1) = Elite(j + 1)

j = Tpob

Else

j = j + 1

End If

Wend

'Selecciona los inidividuos y guarda la posicion de los seleccionados en Pos

For i = 2 To CS

Rand = Rnd 'Genera un # aleatorio

j = 0

While (j < Tpob)

If Vect(j + 1) >= Rand And Vect(j) < Rand Then 'Pregunta si el aleatorio esta en el

'intervalo del individuo en la posicion (j+1)

poss = Elite(j + 1)

Page 183: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 183 -

If Pos(i - 1) <> poss And Pos(i - 2) <> poss Then 'si el individuo seleccionado es

diferente a los dos seleccionados anteriormente, entonces lo selecciona

Pos(i) = Elite(j + 1) 'Asigna a Pos la posicion del individuo seleccionado

j = Tpob

Else

i = i - 1

j = Tpob

End If

Else

j = j + 1

End If

Wend

Next i

Worksheets("Pob_Intermedia").Range("A1:AZ10000").ClearContents

'Copia la posicion de los individuos seleccionados a Pob_Intermedia

For i = 1 To CS 'Recorre el vector Pos

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Pos(i)

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Selecciona los mejores cromosomas proporcionalmente a su valor de aptitud

'y copia la posicion de los seleccionados en Pob_Intermedia

'"Ruleta"

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Selección_Proporcional()

Page 184: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 184 -

Dim Tpob, Nact, fila, Nind, i, poss, Ngenes, Nhijos, Nhr, Ppr, CS As Integer

Dim Vect() As Single 'Vector en el que se guardan los rangos

'de aptitud de los individuos

Dim Pos() As Integer 'Guarda las posiciones de los individuos seleccionados

Dim Sapt, Rand As Single

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Nhijos = Worksheets("Control").Cells(7, 2).Value 'cantidad de hijos por generación

Nhr = Worksheets("Control").Cells(8, 2).Value 'cantidad de hijos por recombinacion

Ppr = Worksheets("Control").Cells(16, 2).Value 'cantidad de padres por recombinación

CS = (Nhijos / Nhr + 1) * Ppr 'cantidad de padres a seleccionar

Worksheets("Pob_intermedia").Range("A1:A1000").ClearContents

ReDim Vect(Tpob) 'Cambio de tamaño según Tamaño Población

ReDim Pos(CS) 'Cambio de tamaño según la cantidad de padres a seleccionar

'Suma las aptitudes de todos los cromosomas en Sapt y

'guarda las aptitudes de todos los cromosomas en Vect

Sapt = 0

For i = 1 To Tpob

Sapt = Sapt + Worksheets("Población").Cells(1, i).Value 'Guarda la sumatoria de las

aptitudes de todos los cromosomas

Vect(i) = Worksheets("Población").Cells(1, i)

Next i

'Asigna el limte superior del rango de cada individuo y lo guarda en Vect

Vect(1) = Vect(1) / Sapt

For i = 2 To Tpob

Page 185: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 185 -

Vect(i) = Vect(i) / Sapt

Vect(i) = Vect(i - 1) + Vect(i)

Next i

Randomize

'selecciona el primer padre

Rand = Rnd 'Genera un # aleatorio

j = 0

While (j < Tpob)

If Vect(j + 1) >= Rand And Vect(j) < Rand Then 'Pregunta si el aleatorio esta en el

'intervalo del individuo en la posicion (j+1)

Pos(1) = (j + 1) 'Asigna a Pos la posicion del individuo seleccionado

j = Tpob

Else

j = j + 1

End If

Wend

'Selecciona los inidividuos y guarda la posicion de los seleccionados en Pos

For i = 2 To CS

Rand = Rnd 'Genera un # aleatorio

j = 0

While (j < Tpob)

If Vect(j + 1) >= Rand And Vect(j) < Rand Then 'Pregunta si el aleatorio esta en el

'intervalo del individuo en la posicion (j+1)

poss = (j + 1)

If poss <> Pos(i - 1) And poss <> Pos(i - 2) Then 'si el individuo seleccionado es

diferente al seleccionado anteriormente, entonces lo selecciona

Pos(i) = (j + 1) 'Asigna a Pos la posicion del individuo seleccionado

Page 186: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 186 -

j = Tpob

Else

i = i - 1

j = Tpob

End If

Else

j = j + 1

End If

Wend

Next i

Worksheets("Pob_Intermedia").Range("A1:AZ10000").ClearContents

'Copia la posicion de los individuos seleccionados en Pob_Intermedia

For i = 1 To CS 'Recorre el vector Pos

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Pos(i)

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Selecciona por torneos aleatorios los cromosomas de la Hoja Población y

'copia en la Hoja Pob_Intermedia la posicion de los seleccionados

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Selección_Torneo()

Dim Tpob, Nact, fila, i, Ia, Ib, Ngenes, Nhijos, Nhr, Ppr, CS, Pos() As Integer

Dim Aa, Ab As Single

Page 187: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 187 -

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Ngenes = Nact * 2 'Número de genes

Nhijos = Worksheets("Control").Cells(7, 2).Value 'cantidad de hijos por generación

Nhr = Worksheets("Control").Cells(8, 2).Value 'cantidad de hijos por recombinacion

Ppr = Worksheets("Control").Cells(16, 2).Value 'cantidad de padres por recombinación

CS = (Nhijos / Nhr + 1) * Ppr 'cantidad de padres a seleccionar

ReDim Pos(CS)

Worksheets("Pob_intermedia").Range("A1:A1000").ClearContents

Randomize

'hace el primer torneo para seleccionar el primer individuo

'Produce posociones aleatorias entre las cuales se hace el torneo

Ia = Int(Tpob * Rnd + 1)

Ib = Int(Tpob * Rnd + 1)

If Ia = Ib Then

Ia = Int((Tpob / 2) + (Tpob / 2) * Rnd)

Ib = Int((Tpob / 2) * Rnd + 1)

End If

'Obtiene los valores de aptitud de los cromosomas en las posiciones Ia Ib

Aa = Worksheets("Población").Cells(1, Ia).Value

Ab = Worksheets("Población").Cells(1, Ib).Value

'Copia en la Hoja Pob_Intermedia al ganador del torneo

If Aa > Ab Then

Pos(1) = Ia

End If

If Ab > Aa Then

Pos(1) = Ib

Page 188: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 188 -

End If

If Aa = Ab Then

Pos(1) = Ib

End If

'hace torneos entre dos padres, y guarda la posicion del ganador en pos

For i = 2 To CS

'Produce posociones aleatorias entre las cuales se hace el torneo

Ia = Int(Tpob * Rnd + 1)

Ib = Int(Tpob * Rnd + 1)

If Ia = Ib Then

Ia = Int((Tpob / 2) + (Tpob / 2) * Rnd)

Ib = Int((Tpob / 2) * Rnd + 1)

End If

'Obtiene los valores de aptitud de los cromosomas en las posiciones Ia Ib

Aa = Worksheets("Población").Cells(1, Ia).Value

Ab = Worksheets("Población").Cells(1, Ib).Value

'Copia en la Hoja Pob_Intermedia al ganador del torneo

If Aa > Ab Then

If Ia <> Pos(i - 1) And Ia <> Pos(i - 2) Then

Pos(i) = Ia

Else

i = i - 1

End If

End If

Page 189: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 189 -

If Ab > Aa Then

If Ib <> Pos(i - 1) And Ib <> Pos(i - 2) Then

Pos(i) = Ib

Else

i = i - 1

End If

End If

If Aa = Ab Then

If Ib <> Pos(i - 1) And Ib <> Pos(i - 2) Then

Pos(i) = Ib

Else

i = i - 1

End If

End If

Next i

Worksheets("Pob_Intermedia").Range("A1:AZ10000").ClearContents

For i = 1 To CS

Worksheets("Pob_Intermedia").Cells(i, 1).Value = Pos(i)

Next i

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Selecciona los mejores cromosomas correspondientes al Xp% de la Hoja

'Población y los copia en la Hoja Pob_Mejores

'Luego Selecciona los Nhij mejores cromosomas correspondientes

Page 190: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 190 -

'de Pob_Intermedia y los copia en la hoja Pob_Mejores

'"Elitismo"

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Elitismo()

Dim Tpob, Nact, fila, Nind, aux, Nhij, Ngenes As Integer

Dim Xp As Single

Dim Elite() As Integer 'Vector en el que se guardan ordenadamente

'las posiciones de los padres

Dim Eliteh(256) As Integer 'Vector en el que se guardan ordenadamente

'las posiciones de los hijos

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Xp = Worksheets("Control").Cells(4, 2).Value 'Porcentaje de Elitismo

Ngenes = Nact * 2 'Número de genes

Nind = Int(Tpob * Xp) 'Número de padres a copiar desde Población a Pob_Mejores

Nhij = Tpob - Nind 'Número de hijos a copiar desde Pob_Intermedia a Pob_Mejores

ReDim Elite(Tpob) 'Cambio de tamaño según Tamaño Población

'Inicialización vector Elite

For i = 1 To Tpob

Elite(i) = i

Next i

'Ordenar para escoger los mejores Nind padres de Población

For i = 1 To Nind

Page 191: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 191 -

For j = i + 1 To Tpob

If (Worksheets("Población").Cells(1, Elite(i)) < Worksheets("Población").Cells(1,

Elite(j))) Then

aux = Elite(i): Elite(i) = Elite(j): Elite(j) = aux

End If

Next j

Next i

Worksheets("Pob_Mejores").Range("A1:AZ10000").ClearContents

'Copiar los mejores padres a la hoja Pob_Mejores

For i = 1 To Nind 'Recorre el vector Elite

For fila = 1 To (Ngenes + 2) Step 2 'Recorre la hoja Pob_Mejores

'Copia el individuo en la posicion Elite (i)

'de la Hoja Poblacion a la Hoja Pob_Intermedia

Worksheets("Pob_Mejores").Cells(fila, i).Value =

Worksheets("Población").Cells(fila, Elite(i)).Value

Worksheets("Pob_Mejores").Cells(fila + 1, i).Value =

Worksheets("Población").Cells(fila + 1, Elite(i)).Value

Next fila

Next i

'Inicialización vector Eliteh

For i = 1 To 256

Eliteh(i) = i

Next i

'Ordenar para escoger los mejores Nhij hijos de Pob_Intermedia

For i = 2 To (Nhij + 1)

Page 192: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 192 -

For j = i + 1 To 256

If (Worksheets("Pob_Intermedia").Cells(1, Eliteh(i)) <

Worksheets("Pob_Intermedia").Cells(1, Eliteh(j))) Then

aux = Eliteh(i): Eliteh(i) = Eliteh(j): Eliteh(j) = aux

End If

Next j

Next i

'Copiar los mejores hijos a la hoja Pob_Mejores

For i = 1 To Nhij 'Recorre el vector Eliteh

For fila = 1 To (Ngenes + 2) Step 2 'Recorre la hoja Pob_Mejores

'Copia el individuo en la posicion Eliteh(i)

'de la Hoja Pob_Intermedia a la Hoja Pob_Mejores

Worksheets("Pob_Mejores").Cells(fila, i + Nind).Value =

Worksheets("Pob_Intermedia").Cells(fila, Eliteh(i + 1)).Value

Worksheets("Pob_Mejores").Cells(fila + 1, i + Nind).Value =

Worksheets("Pob_Intermedia").Cells(fila + 1, Eliteh(i + 1)).Value

Next fila

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Ordena los mejores padres e hijos, presentes en Población y Pob_Intermedia y los copia en

'Pob_Mejores

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Mejores_PadresHijos()

Dim Tpob, Tvorg, Nact, Ngenes, i, j As Integer

Dim Vorg(), aux As Single 'Vector en el que se guardan las posiciones de los individuos

Page 193: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 193 -

Nact = Worksheets("Control").Cells(1, 2).Value 'Número Actividades

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamaño Poblacion

Ngenes = Nact * 2

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Número Hijos

Tvorg = Tpob + Nhijos + 1

ReDim Vorg(2, Tvorg)

'Inicializa Vorg con la posicion de cada individuo y el valor de aptitud asociado

For i = 1 To Tpob 'llena el vector con los padres en poblacion

Vorg(1, i) = i

Vorg(2, i) = Worksheets("Población").Cells(1, i).Value

Next i

For i = 2 To Nhijos + 1 'llena el vector con los hijos en Pob_Intermedia

Vorg(1, i + Tpob) = i + Tpob

Vorg(2, i + Tpob) = Worksheets("Pob_Intermedia").Cells(1, i).Value

Next i

'Ordena los mejores Tpob individuos en Vorg

For i = 1 To Tvorg

If i <> Tpob + 1 Then

For j = i + 1 To Tvorg

If j <> Tpob + 1 Then

If Vorg(2, i) < Vorg(2, j) Then

aux = Vorg(2, i): Vorg(2, i) = Vorg(2, j): Vorg(2, j) = aux

aux = Vorg(1, i): Vorg(1, i) = Vorg(1, j): Vorg(1, j) = aux

End If

End If

Next j

Page 194: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 194 -

End If

Next i

Worksheets("Pob_Mejores").Range("A1:AZ10000").ClearContents

'Escribe en Pob_Mejores los mejores padres e hijos

For i = 1 To Tpob

If Vorg(1, i) < Tpob + 1 Then 'Pregunta si esta en la hoja Población

For j = 1 To Ngenes + 2

Worksheets("Pob_Mejores").Cells(j, i).Value = Worksheets("Población").Cells(j,

Vorg(1, i)).Value

Next j

End If

If Vorg(1, i) > Tpob + 1 Then 'Pregunta si esta en la hoja Pob_Intermedia

For j = 1 To Ngenes + 2

Worksheets("Pob_Mejores").Cells(j, i).Value =

Worksheets("Pob_Intermedia").Cells(j, Vorg(1, i) - Tpob).Value

Next j

End If

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''

'Realiza la recombinacion entre 2 padres y 1 punto

'''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Recombinacion_1pto()

Page 195: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 195 -

Dim Tpob, Nact, Nhijos, hijosxpadre, Ngenes, Npadres, cont, cont2, fila, corte, P1, P2,

escape As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamano de la poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Ngenes = Nact * 2

hijosxpadre = Worksheets("control").Cells(8, 2).Value 'numero de hijos por padre

Randomize

escape = 1

Worksheets("Pob_Intermedia").Range("B1:IV10000").ClearContents

While escape < Nhijos + 1 'llenar toda la hoja de calculos de hijos

For cont = 1 To 2 * Nhijos Step 2 'genera hijos

If (escape > Nhijos) Then

Exit For

End If

P1 = Worksheets("Pob_intermedia").Cells(cont, 1).Value 'elige padre1

P2 = Worksheets("Pob_intermedia").Cells(cont + 1, 1).Value 'elige padre2

For cont2 = 1 To hijosxpadre

If escape > Nhijos Then

Exit For

End If

corte = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un punto de corte que no sera ni el

primero ni el ultimo

Page 196: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 196 -

If cont2 = 1 Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la informacion del padre 1 al hijo

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la info del padre 2 al hijo

End If

Next fila

ElseIf cont2 = 2 Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la informacion del padre 1 al hijo

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la info del padre 2 al hijo

End If

Next fila

Page 197: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 197 -

End If

escape = escape + 1

Next cont2

Next cont

Wend

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''

'Realiza la recombinacion entre 2 padres con 2 puntos

'''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Recombinacion_2pts_2padres()

Dim Tpob, Nact, Nhijos, hijosxpadre, Ngenes, escape, cont, cont2, fila, punto1, corte1,

punto2, corte2, P1, P2, modo As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamano de la poblacion

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Ngenes = Nact * 2

escape = 1

Randomize

hijosxpadre = Worksheets("control").Cells(8, 2).Value

Worksheets("Pob_Intermedia").Range("B1:IV10000").ClearContents

While escape < Nhijos + 1

Page 198: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 198 -

For cont = 1 To 2 * Nhijos Step 2 'genera hijos

If escape > Nhijos Then

Exit For

End If

P1 = Worksheets("Pob_intermedia").Cells(cont, 1).Value

P2 = Worksheets("Pob_intermedia").Cells(cont + 1, 1).Value

For cont2 = 1 To hijosxpadre

If escape > Nhijos Then

Exit For

End If

punto1 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un punto de corte que no sera ni el

primero ni el ultimo

punto2 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un punto de corte que no sera ni el

primero ni el ultimo

While (punto1 = punto2) 'revisa el caso si los pts de corte son iguales

punto1 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un nuevo punto de corte

Wend

If (punto1 > punto2) Then ' ordena los puntos de corte

corte2 = punto1

corte1 = punto2

Else

corte2 = punto2

corte1 = punto1

Page 199: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 199 -

End If

If (cont2 = 1) Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte1 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 1

ElseIf (fila <= (corte2 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la info del padre 2 al hijo por el modo 1

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 1

End If

Next fila

ElseIf cont2 = 2 Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte1 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 2

Page 200: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 200 -

ElseIf (fila <= (corte2 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la info del padre 2 al hijo por el modo 2

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 2

End If

Next fila

End If

escape = escape + 1

Next cont2

Next cont

Wend

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''

'Realiza la recombinacion entre 3 padres con 2 puntos

'''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub Recombinacion_2pts_3padres()

Dim Tpob, Nact, cont, hijosxpadre, escape, Nhijos, Ngenes, cont2, fila, punto1, corte1,

punto2, corte2, P1, P2, P3, modo As Integer

Tpob = Worksheets("Control").Cells(2, 2).Value 'Tamano de la poblacion

Page 201: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 201 -

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

hijosxpadre = Worksheets("control").Cells(8, 2).Value 'Numero de hijos de cada grupo

de padres escojidos

Ngenes = Nact * 2

cont = 0

cont2 = 1

Randomize

escape = 1

Worksheets("Pob_Intermedia").Range("B1:IV10000").ClearContents

While (escape < Nhijos + 1) 'genera hijos

For cont = 1 To 3 * Nhijos Step 3

If escape > Nhijos Then

Exit For

End If

P1 = Worksheets("pob_intermedia").Cells(cont, 1).Value 'elige padres

P2 = Worksheets("pob_intermedia").Cells(cont + 1, 1).Value 'elige padres

P3 = Worksheets("pob_intermedia").Cells(cont + 2, 1).Value 'elige padres

For cont2 = 1 To hijosxpadre 'genera # de hijos por cada grupo de padres

especificados

If (escape > Nhijos) Then ' revisa que hijosxpadre divisor de # total hijos

Exit For

End If

Page 202: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 202 -

punto1 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un punto de corte que no sera ni el

primero ni el ultimo

punto2 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un punto de corte que no sera ni el

primero ni el ultimo

While (punto1 = punto2) 'revisa el caso si los pts de corte son iguales

punto1 = Int(((Nact - 1) * Rnd) + 1) * 2 'elige un nuevo punto de corte

Wend

If (punto1 > punto2) Then ' ordena los puntos de corte

corte2 = punto1

corte1 = punto2

Else

corte2 = punto2

corte1 = punto1

End If

If (cont2 = 1) Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte1 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 1

ElseIf (fila <= (corte2 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la info del padre 2 al hijo por el modo 1

Page 203: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 203 -

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P3).Value

'Arriba se pasa la informacion del padre 3 al hijo por el modo 1

End If

Next fila

ElseIf (cont2 = 2) Then

For fila = 3 To (Ngenes + 2)

If (fila <= (corte1 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P3).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 2

ElseIf (fila <= (corte2 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la info del padre 3 al hijo por el modo 2

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la informacion del padre 2 al hijo por el modo 2

End If

Next fila

ElseIf (cont2 = 3) Then

Page 204: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 204 -

For fila = 3 To (Ngenes + 2)

If (fila <= (corte1 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P2).Value

'Arriba se pasa la informacion del padre 2 al hijo por el modo 3

ElseIf (fila <= (corte2 + 2)) Then

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P3).Value

'Arriba se pasa la info del padre 3 al hijo por el modo 3

Else

Worksheets("Pob_Intermedia").Cells(fila, escape + 1).Value =

Worksheets("Población").Cells(fila, P1).Value

'Arriba se pasa la informacion del padre 1 al hijo por el modo 3

End If

Next fila

End If

escape = escape + 1

Next cont2

Next cont

Wend

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Page 205: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 205 -

'Realiza mutacion sumando o restando 1 a la posicion inicial

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub mutacion_incremento_decremento()

Dim Mutacion, Tpob, Nhijos, Nact, cambio, Ngenes, original, nuevo, Generacion,

Actividad, Cont_mutacion, i, columna, fila, Posicion, Rango, Minimo, maximo As Integer

Mutacion = Worksheets("Control").Cells(5, 2).Value 'Procentaje de mutacion

Tpob = Worksheets("control").Cells(2, 2).Value ' Tamano de poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

Ngenes = Nact * 2 ' Numero de genes

Generacion = Nhijos * Ngenes 'total de casillas en la poblacion de una generacion

Cont_mutacion = Int(Generacion * Mutacion) 'Numero de veces que hay mutacion

Randomize

For i = 1 To Cont_mutacion

Posicion = Int(Generacion * Rnd) + 1 'elige una posicion para mutar

columna = Int((Posicion - 1) / Ngenes) + 1 + 1 'encuentra la columna tiene en cuenta

columna de padres

fila = Posicion Mod Ngenes 'encuentra la fila

If (fila = 0) Then

fila = fila + Ngenes 'corrige las veces que quede en la ultima fila

Page 206: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 206 -

End If

cambio = Int((Rnd - 0.5))

If (cambio = 0) Then

cambio = 1

End If

If ((Posicion Mod 2) = 1) Then 'revisa si hay restriccion por duraciones

Actividad = Int(fila / 2) + 1 ' encuentra cual es la actividad que va a ser mutada

Minimo = Worksheets("Actividades").Cells((Actividad + 1), 6).Value

maximo = Worksheets("Actividades").Cells((Actividad + 1), 5).Value

Rango = maximo - Minimo

'arriba se encontro el rango en el que se puede hacer mutacion

original = Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value

'encuentra el valor que estaba originalmente en la casilla

nuevo = original + cambio 'muta

If (Rango >= 1) Then 'revisa que no salga del rango

If (nuevo >= Minimo And nuevo <= maximo) Then

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = nuevo 'muta

ElseIf (nuevo > maximo) Then

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = maximo - 1

Page 207: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 207 -

ElseIf (nuevo < Minimo) Then

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = Minimo + 1

End If

End If

Else

Actividad = Int(fila / 2)

original = Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value

'encuentra el valor que estaba originalmente en la casilla

nuevo = original + cambio

Rango = Worksheets("Actividades").Cells((Actividad + 1), 7).Value

If (nuevo >= 0 And nuevo <= Rango) Then

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = nuevo 'muta

ElseIf (nuevo > Rango) Then

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = Rango 'muta

Else

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = 0 'muta

End If

End If

Next i

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Realiza mutacion cuyo porcentaje varia dependiendo del numero de generacion actual

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Page 208: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 208 -

Public Sub Mutacion_variable()

Dim Mutacion, minmutacion, generacion_actual, Tpob, Nhijos, Nact, Ngenes, original,

nuevo, Generacion, Actividad, Cont_mutacion, i, columna, fila, Posicion, Rango, Minimo,

maximo As Integer

Mutacion = Worksheets("Control").Cells(5, 2).Value 'Procentaje de mutacion

Tpob = Worksheets("control").Cells(2, 2).Value ' Tamano de poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

minmutacion = Worksheets("Control").Cells(10, 2).Value 'mutacion minima

Ngenes = Nact * 2 ' Numero de genes

Generacion = Nhijos * Ngenes 'total de casillas en la poblacion de una generacion

generacion_actual = Worksheets("control").Cells(9, 2).Value 'numero de generacion

actual

Cont_mutacion = Int((minmutacion * 100) + (Mutacion * generacion_actual)) 'Numero

de veces que hay mutacion en la generacion actual

Randomize

For i = 1 To Cont_mutacion

Posicion = Int(Generacion * Rnd) + 1 'elige una posicion para mutar

columna = Int((Posicion - 1) / Ngenes) + 1 + 1 'encuentra la columna tiene en cuenta

columna de padres

fila = Posicion Mod Ngenes 'encuentra la fila

Page 209: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 209 -

If (fila = 0) Then

fila = fila + Ngenes 'corrige las veces que quede en la ultima fila

End If

If ((Posicion Mod 2) = 1) Then 'revisa si hay restriccion por duraciones

Actividad = Int(fila / 2) + 1 ' encuentra cual es la actividad que va a ser mutada

Minimo = Worksheets("Actividades").Cells((Actividad + 1), 6).Value

maximo = Worksheets("Actividades").Cells((Actividad + 1), 5).Value

Rango = maximo - Minimo

'arriba se encontro el rango en el que se puede hacer mutacion

If (Rango >= 1) Then

original = Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value

'encuentra el valor que estaba originalmente en la casilla

nuevo = Minimo + Int(Rango * Rnd) 'muta

If (original = nuevo) Then

nuevo = Minimo + Int(Rango * Rnd) ' revisa que no quede el mismo valor

End If

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = nuevo 'muta

End If

Else

Actividad = Int(fila / 2)

Rango = Worksheets("Actividades").Cells(Actividad + 1, 7).Value 'define rango

para mutar

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = Int(Rango * Rnd)

'muta

Page 210: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 210 -

End If

Next i

End Sub

'''''''''''''''''''''''''''

'Realiza mutacion aleatoria

'''''''''''''''''''''''''''

Public Sub Mutacion_aleatoria()

Dim Mutacion, Tpob, Nhijos, Nact, Ngenes, original, nuevo, Generacion, Actividad,

Cont_mutacion, i, columna, fila, Posicion, Rango, Minimo, maximo As Integer

Mutacion = Worksheets("Control").Cells(5, 2).Value 'Procentaje de mutacion

Tpob = Worksheets("control").Cells(2, 2).Value ' Tamano de poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Nact = Worksheets("Control").Cells(1, 2).Value 'Numero de actividades

Ngenes = Nact * 2 ' Numero de genes

Generacion = Nhijos * Ngenes 'total de casillas en la poblacion de una generacion

Cont_mutacion = Int(Generacion * Mutacion) 'Numero de veces que hay mutacion

Randomize

Page 211: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 211 -

For i = 1 To Cont_mutacion

Posicion = Int(Generacion * Rnd) + 1 'elige una posicion para mutar

columna = Int((Posicion - 1) / Ngenes) + 1 + 1 'encuentra la columna, tiene en cuenta

desplazamiento por columna de padres

fila = Posicion Mod Ngenes 'encuentra la fila

If (fila = 0) Then

fila = fila + Ngenes 'corrige las veces que quede en la ultima fila

End If

If ((Posicion Mod 2) = 1) Then 'revisa si hay restriccion por duraciones

Actividad = Int(fila / 2) + 1 ' encuentra cual es la actividad que va a ser mutada

Minimo = Worksheets("Actividades").Cells((Actividad + 1), 6).Value

maximo = Worksheets("Actividades").Cells((Actividad + 1), 5).Value

Rango = maximo - Minimo

'arriba se encontro el rango en el que se puede hacer mutacion

If (Rango >= 1) Then

original = Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value

'encuentra el valor que estaba originalmente en la casilla

nuevo = Minimo + Int(Rango * Rnd) 'muta

If (original = nuevo) Then

nuevo = Minimo + Int(Rango * Rnd) ' revisa que no quede el mismo valor

End If

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = nuevo 'muta

End If

Page 212: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 212 -

Else

Actividad = Int(fila / 2)

Rango = Worksheets("Actividades").Cells((Actividad + 1), 7).Value 'define rango

para mutar

Worksheets("Pob_intermedia").Cells((fila + 2), columna).Value = Int(Rango * Rnd)

'muta

End If

Next i

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Organiza matrices de actividades realizadas, por realizar y de fin y comienzo de cada

actividad

'ademas calcula la adaptacion. todo esto solo para la poblacion inicial

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub adaptacion_pob_inicial()

Dim original(), listasfs(), Nact, Ngenes, Predecesora, Nhijos, sumatoria, escape, cont,

cont2, fingrande, fintemp, codigo, todas_predecesoras, predecesoras_actividad

Dim Tpob, k, i, j, s, o, l, t, m, R, h, a, generacion_actual, maximo, act_actual,

costo_material, costo_herramienta, costo_equipo, costo_mano_obra

Dim insumo, Cant_insumos, codigo_m_o, insumos(), mano_obra, duracion_actividad,

Cantidad_actividad

Dim mak, w, lae, dias_periodo, administracion_periodo, costo_oportunidad, N_periodos,

periodos()

Dim comienzo, final, periodo_comienzo, periodo_final, costo_total_actividad, x,

proporcion_periodo

Page 213: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 213 -

Dim Funcion_objetivo, plazo_maximo

Tpob = Worksheets("control").Cells(2, 2).Value 'encuentra el tamano de la poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Nact = Worksheets("control").Cells(1, 2).Value 'encuentra el numero de actividades del

proyecto

Ngenes = Nact * 2

generacion_actual = Worksheets("Control").Cells(9, 2).Value ' revisa cual es la

generacion actual

dias_periodo = Worksheets("Control").Cells(11, 2).Value 'encuentra el numero de dias

de un periodo

administracion_periodo = Worksheets("Control").Cells(12, 2).Value 'encuentra el costo

de administracion de un periodo

costo_oportunidad = Worksheets("Control").Cells(13, 2).Value 'encuentra el costo de

oportunidad

plazo_maximo = Worksheets("Control").Cells(15, 2).Value 'encuentra el plazo maximo

de la obra

For t = 1 To 9999 'encuentra el codigo de mano de obra para revision posterior

If (Worksheets("insumos").Cells(t + 1, 5).Value = "M. obra") Then

codigo_m_o = Worksheets("insumos").Cells(t + 1, 1).Value

End If

Next t

Page 214: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 214 -

For k = 1 To Tpob

cont = 0

Predecesora = 0

escape = 0

For i = 1 To Nact

If (cont > Predecesora) Then

Predecesora = cont

End If

cont = 0

For j = 1 To 50

If (Worksheets("Precedencias").Cells(i + 1, j + 1).Value > 0) Then

cont = cont + 1

End If

Next j

Next i

' Arriba se encontro cual es el maximo numero de predecesoras que tiene una actividad

para armar matriz

ReDim original(Nact, Predecesora + 1) 'se dimensiona matriz donde se encontrara la

info original

ReDim listasfs(Nact, 3) 'se dimensiona vector de actividades terminadas con su

comienzo y fin

Page 215: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 215 -

For i = 1 To Nact

For j = 1 To Predecesora + 1

original(i, j) = Worksheets("Precedencias").Cells(i + 1, j).Value 'llena la matriz

con la informacion original

Next j

Next i

For i = 1 To Nact

If (original(i, 2) = 0) Then ' comienza con las actividades sin predecesoras

original(i, 1) = 0 'borra actividad lista de la original

listasfs(i, 1) = Worksheets("Precedencias").Cells(i + 1, 1).Value ' pasa el codigo a

la tabla listasfs

listasfs(i, 2) = Worksheets("Población").Cells((i * 2) + 2, k) + 1 'halla dia inicial

listasfs(i, 3) = Worksheets("Población").Cells((i * 2) - 1 + 2, k) + listasfs(i, 2) - 1

'halla dia final

End If

Next i

While escape = 0 'ahora revisa las actividades con predecesoras

For s = 1 To Nact 'comienza el ciclo para revisar hasta que se borren todas las act de

original()

fingrande = 0

predecesoras_actividad = 0

todas_predecesoras = 0

Page 216: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 216 -

For o = 1 To Predecesora

If (Worksheets("Precedencias").Cells(s + 1, o + 1).Value > 0) Then

predecesoras_actividad = predecesoras_actividad + 1 'cuenta la cantidad de

predecesoras

'que tiene la actividad

End If

Next o

For j = 1 To predecesoras_actividad

If (original(s, 1) = 0) Then 'revisa que la actividad no este en la matriz listasfs

Exit For 'sale para buscar la siguiente actividad

End If

codigo = original(s, j + 1) 'encuentra el codigo de la predecesora

For l = 1 To Nact

If ((codigo - listasfs(l, 1)) = 0) Then 'si la actividad ya esta en listasfs

fintemp = listasfs(l, 3) ' asigna una fecha de fin temporal

todas_predecesoras = todas_predecesoras + 1 'suma cada vez que

encuentra una predecesora

'y solo continuara hasta que todas sumen

If (fingrande < fintemp) Then

fingrande = fintemp

End If

End If

Page 217: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 217 -

Next l

If (fingrande = 0) Then

Exit For

End If

Next j

If (fingrande <> 0 And todas_predecesoras = predecesoras_actividad) Then 'revisa

que todas las opredecesoras cumplan

original(s, 1) = 0 'borra actividad lista de la original

listasfs(s, 1) = Worksheets("Precedencias").Cells(s + 1, 1).Value ' pasa el codigo

a la tabla listasfs

listasfs(s, 2) = Worksheets("Población").Cells((s * 2) + 2, k) + 1 + fingrande

'halla dia inicial

listasfs(s, 3) = Worksheets("Población").Cells((s * 2) - 1 + 2, k) + listasfs(s, 2) - 1

'halla dia final

End If

Next s

sumatoria = 0

For i = 1 To Nact

sumatoria = sumatoria + original(i, 1) 'sumatoria de los codigos

Next i

If (sumatoria = 0) Then

Page 218: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 218 -

escape = 1 ' revisa cuando la lista original() esta vacia para salir del ciclo

End If

Wend

maximo = 0

For i = 1 To Nact

If (listasfs(i, 3) > maximo) Then

maximo = listasfs(i, 3) 'revisa cuanto se demora la obra en terminarse

End If

Next i

'hasta aca se han evaluado los comienzos y finales de cada actividad en el cromosoma

'a continuacion se evalua el numero de periodos del proyecto y se crea vector de gastos

N_periodos = Int((maximo - 1) / dias_periodo) + 1

ReDim periodos(1, N_periodos)

'a continuacion se evaluan los costos directos

cont = 0

cont2 = 0

Funcion_objetivo = 0

For j = 1 To 9999 ' encuentra la dimension de la matriz unitarios que es la cantidad

total de insumos

If (Worksheets("unitarios").Cells(j + 1, 1).Value <> 0) Then

cont = cont + 1

Page 219: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 219 -

End If

Next j

For j = 1 To 9999 ' encuentra la cantidad total de insumos que se usara en la obra

If (Worksheets("insumos").Cells(j + 1, 1).Value <> 0) Then

cont2 = cont2 + 1

End If

Next j

For i = 1 To Nact 'comienza la evaluacion de costos para cada actividad

act_actual = Worksheets("Precedencias").Cells(i + 1, 1).Value ' encuentra cada

actividad que va a analizar

duracion_actividad = Worksheets("Población").Cells((i * 2) - 1 + 2, k).Value

'CAMBIA PARA POB_INTERMEDIA. encuentra la duracion de la actividad

Cantidad_actividad = Worksheets("Actividades").Cells(i + 1, 4) 'encuentra la

cantidad de actividad a desarrollar

comienzo = listasfs(i, 2) 'encuentra el dia en el que comienza la actividad

final = listasfs(i, 3) 'encuentra el dia en el que termina la actividad

periodo_comienzo = Int((comienzo - 1) / dias_periodo) + 1 'encuentra el periodo en

el que comienza la actividad

periodo_final = Int((final - 1) / dias_periodo) + 1 'encuentra el periodo en el que

termina la actividad

costo_total_actividad = 0

costo_material = 0

costo_herramienta = 0

costo_equipo = 0

Page 220: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 220 -

costo_mano_obra = 0

Cant_insumos = 0

mano_obra = 0

mak = 0

escape = 0 'para revisar insumos

For R = 1 To cont

If (act_actual = Worksheets("unitarios").Cells(R + 1, 1).Value) Then 'revisa la

cantidad de insumos de la actividad estudiada

Cant_insumos = Cant_insumos + 1

End If

Next R

ReDim insumos(Cant_insumos, 8) 'vector de insumos

For t = 1 To cont

If (act_actual = Worksheets("unitarios").Cells(t + 1, 1).Value) Then 'revisa que

evalue insumo de la actividad estudiada

For m = 1 To Cant_insumos

insumos(m, 1) = Worksheets("unitarios").Cells(t + m, 2).Value 'encuentra el

codigo insumo de la actividad

insumos(m, 2) = Worksheets("unitarios").Cells(t + m, 3).Value 'encuentra la

cantidad de insumo de la actividad

insumos(m, 3) = Worksheets("unitarios").Cells(t + m, 4).Value 'encuentra el

rendimiento del insumo de la actividad

insumos(m, 4) = Worksheets("unitarios").Cells(t + m, 5).Value 'encuentra el

costo de la cantidad de herramienta de la actividad

insumos(m, 7) = Worksheets("unitarios").Cells(t + m, 6).Value 'encuentra el

precio ordinario de la mano de obra

Page 221: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 221 -

insumos(m, 8) = Worksheets("unitarios").Cells(t + m, 7).Value 'encuentra el

precio ordinario de la maquinaria

For h = 1 To cont2

If (insumos(m, 1) = Worksheets("insumos").Cells(h + 1, 1).Value) Then

insumos(m, 5) = Worksheets("insumos").Cells(h + 1, 4).Value

'encuentra el precio unitario del insumo

insumos(m, 6) = Worksheets("insumos").Cells(h + 1, 5).Value

'encuentra el tipo de insumo

End If

Next h

If (insumos(m, 1) = codigo_m_o) Then 'tan pronto encuentre mano de obra

evalua la cantidad de M O porque es necesario para evaluar herramientas

mano_obra = 1

mak = (Cantidad_actividad / duracion_actividad) * ((1 / 8) / insumos(m,

3))

End If

Next m

Exit For

End If

Next t

For w = 1 To Cant_insumos ' evalua materiales, herramienta, equipo y mano de

obra

Page 222: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 222 -

If (insumos(w, 6) = "M. obra") Then 'evalua costos por mano de obra

costo_mano_obra = costo_mano_obra + (mak * insumos(w, 7) *

Cantidad_actividad)

End If

If (insumos(w, 6) = "Material") Then 'evalua costos por material

costo_material = costo_material + (insumos(w, 2) * insumos(w, 5) *

Cantidad_actividad)

End If

If (insumos(w, 6) = "Equipo") Then 'evalua costos por equipo

lae = (Cantidad_actividad / duracion_actividad) * ((1 / 8) / insumos(w, 3))

costo_equipo = costo_equipo + (insumos(w, 8) * Cantidad_actividad * lae)

End If

If (insumos(w, 6) = "Herramienta") Then 'evalua costos por herramienta

If (mano_obra = 1) Then

costo_herramienta = costo_herramienta + (mak * insumos(w, 4) *

Cantidad_actividad)

Else

mak = 1

costo_herramienta = costo_herramienta + (mak * insumos(w, 4) *

Cantidad_actividad)

End If

End If

Next w

costo_total_actividad = costo_mano_obra + costo_material + costo_equipo +

costo_herramienta 'Halla el costo total de la actividad

Page 223: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 223 -

If (periodo_final - periodo_comienzo = 0) Then 'asigna costos directos al periodo en

curso

periodos(1, periodo_comienzo) = periodos(1, periodo_comienzo) +

costo_total_actividad

ElseIf (periodo_final - periodo_comienzo > 0) Then

For x = 1 To ((periodo_final - periodo_comienzo) + 1) 'asigna costos directos a

los periodos en los que se desarrolla la actividad

If ((periodo_comienzo - 1 + x) = periodo_comienzo) Then 'revisa que se este

evaluando el periodo comienzo

proporcion_periodo = (((periodo_comienzo * dias_periodo) - comienzo + 1) /

duracion_actividad)

periodos(1, periodo_comienzo) = periodos(1, periodo_comienzo) +

(costo_total_actividad * proporcion_periodo)

ElseIf ((periodo_comienzo - 1 + x) > periodo_comienzo And

(periodo_comienzo - 1 + x) < periodo_final) Then 'revisa que evalue periodos intermedios

proporcion_periodo = dias_periodo / duracion_actividad

periodos(1, periodo_comienzo - 1 + x) = periodos(1, periodo_comienzo - 1 +

x) + (costo_total_actividad * proporcion_periodo)

Else 'revisa que evalue el periodo final

Page 224: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 224 -

proporcion_periodo = (final - ((periodo_final * dias_periodo) - dias_periodo)) /

duracion_actividad

periodos(1, periodo_final) = periodos(1, periodo_final) +

(costo_total_actividad * proporcion_periodo)

End If

Next x

End If

Next i

'ahora se traen los costos generados periodo a periodo a valor presente neto

For a = 1 To N_periodos ' Trae a VPN los costos de cada periodo

Funcion_objetivo = Funcion_objetivo + ((periodos(1, a) + administracion_periodo)

/ ((1 + costo_oportunidad) ^ a)) 'acumula valor de funcion objetivo periodo a periodo

Next a

If maximo > plazo_maximo Then 'penalizacion si la duracion es mayor al plazo

maximo

Funcion_objetivo = Funcion_objetivo * (1 + (0.01 * (maximo - plazo_maximo)))

'costo aumenta 1% por cada dia que se exceda del limite

Page 225: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 225 -

End If

Worksheets("población").Cells(1, k) = 1 / Funcion_objetivo 'CAMBIA SEGUN

POBLACION

Worksheets("población").Cells(2, k) = Funcion_objetivo 'CAMBIA SEGUN

POBLACION

Next k

End Sub

Public Sub adaptacion_pob_intermedia()

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'a partir de aca se evalua Pob_intermedia

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim original(), listasfs(), Nact, Ngenes, Predecesora, Nhijos, sumatoria, escape, cont,

cont2, fingrande, fintemp, codigo, todas_predecesoras, predecesoras_actividad

Dim Tpob, k, i, j, s, o, l, t, m, R, h, a, b, c, generacion_actual, maximo, act_actual,

costo_material, costo_herramienta, costo_equipo, costo_mano_obra

Dim insumo, Cant_insumos, codigo_m_o, insumos(), mano_obra, duracion_actividad,

Cantidad_actividad

Dim mak, w, lae, dias_periodo, administracion_periodo, costo_oportunidad, N_periodos,

periodos()

Page 226: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 226 -

Dim comienzo, final, periodo_comienzo, periodo_final, costo_total_actividad, x,

proporcion_periodo

Dim Funcion_objetivo, plazo_maximo, prueba_igual

Tpob = Worksheets("control").Cells(2, 2).Value 'encuentra el tamano de la poblacion

Nhijos = Worksheets("Control").Cells(7, 2).Value 'Numero de hijos

Nact = Worksheets("control").Cells(1, 2).Value 'encuentra el numero de actividades del

proyecto

Ngenes = Nact * 2

generacion_actual = Worksheets("Control").Cells(9, 2).Value ' revisa cual es la

generacion actual

dias_periodo = Worksheets("Control").Cells(11, 2).Value 'encuentra el numero de dias

de un periodo

administracion_periodo = Worksheets("Control").Cells(12, 2).Value 'encuentra el costo

de administracion de un periodo

costo_oportunidad = Worksheets("Control").Cells(13, 2).Value 'encuentra el costo de

oportunidad

plazo_maximo = Worksheets("Control").Cells(15, 2).Value 'encuentra el plazo maximo

de la obra

For t = 1 To 9999 'encuentra el codigo de mano de obra para revision posterior

If (Worksheets("insumos").Cells(t + 1, 5).Value = "M. obra") Then

codigo_m_o = Worksheets("insumos").Cells(t + 1, 1).Value

End If

Next t

For k = 1 To Nhijos

Page 227: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 227 -

cont = 0

Predecesora = 0

escape = 0

For i = 1 To Nact

If (cont > Predecesora) Then

Predecesora = cont

End If

cont = 0

For j = 1 To 50

If (Worksheets("Precedencias").Cells(i + 1, j + 1).Value > 0) Then

cont = cont + 1

End If

Next j

Next i

' Arriba se encontro cual es el maximo numero de predecesoras que tiene una actividad

para armar matriz

ReDim original(Nact, Predecesora + 1) 'se dimensiona matriz donde se encontrara la

info original

ReDim listasfs(Nact, 3) 'se dimensiona vector de actividades terminadas con su

comienzo y fin

Page 228: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 228 -

For i = 1 To Nact

For j = 1 To Predecesora + 1

original(i, j) = Worksheets("Precedencias").Cells(i + 1, j).Value 'llena la matriz

con la informacion original

Next j

Next i

For i = 1 To Nact

If (original(i, 2) = 0) Then ' comienza con las actividades sin predecesoras

original(i, 1) = 0 'borra actividad lista de la original

listasfs(i, 1) = Worksheets("Precedencias").Cells(i + 1, 1).Value ' pasa el codigo a

la tabla listasfs

listasfs(i, 2) = Worksheets("Pob_intermedia").Cells((i * 2) + 2, k + 1) + 1 'halla

dia inicial

listasfs(i, 3) = Worksheets("Pob_intermedia").Cells((i * 2) - 1 + 2, k + 1) +

listasfs(i, 2) - 1 'halla dia final

End If

Next i

While escape = 0 'ahora revisa las actividades con predecesoras

For s = 1 To Nact 'comienza el ciclo para revisar hasta que se borren todas las act de

original()

fingrande = 0

predecesoras_actividad = 0

todas_predecesoras = 0

Page 229: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 229 -

For o = 1 To Predecesora

If (Worksheets("Precedencias").Cells(s + 1, o + 1).Value > 0) Then

predecesoras_actividad = predecesoras_actividad + 1 'cuenta la cantidad de

predecesoras

'que tiene la actividad

End If

Next o

For j = 1 To predecesoras_actividad

If (original(s, 1) = 0) Then 'revisa que la actividad no este en la matriz listasfs

Exit For 'sale para buscar la siguiente actividad

End If

codigo = original(s, j + 1) 'encuentra el codigo de la predecesora

For l = 1 To Nact

If ((codigo - listasfs(l, 1)) = 0) Then 'si la actividad ya esta en listasfs

fintemp = listasfs(l, 3) ' asigna una fecha de fin temporal

todas_predecesoras = todas_predecesoras + 1 'suma cada vez que

encuentra una predecesora

'y solo continuara hasta que todas sumen

If (fingrande < fintemp) Then

fingrande = fintemp

End If

End If

Page 230: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 230 -

Next l

If (fingrande = 0) Then

Exit For

End If

Next j

If (fingrande <> 0 And todas_predecesoras = predecesoras_actividad) Then 'revisa

que todas las opredecesoras cumplan

original(s, 1) = 0 'borra actividad lista de la original

listasfs(s, 1) = Worksheets("Precedencias").Cells(s + 1, 1).Value ' pasa el codigo

a la tabla listasfs

listasfs(s, 2) = Worksheets("Pob_intermedia").Cells((s * 2) + 2, k + 1) + 1 +

fingrande 'halla dia inicial

listasfs(s, 3) = Worksheets("Pob_intermedia").Cells((s * 2) - 1 + 2, k + 1) +

listasfs(s, 2) - 1 'halla dia final

End If

Next s

sumatoria = 0

For i = 1 To Nact

sumatoria = sumatoria + original(i, 1) 'sumatoria de los codigos

Next i

If (sumatoria = 0) Then

Page 231: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 231 -

escape = 1 ' revisa cuando la lista original() esta vacia para salir del ciclo

End If

Wend

maximo = 0

For i = 1 To Nact

If (listasfs(i, 3) > maximo) Then

maximo = listasfs(i, 3)

End If

Next i

'hasta aca se encontro el comienzo y fin de cada actividad

'a continuacion se evalua el numero de periodos del proyecto y se crea vector de gastos

N_periodos = Int((maximo - 1) / dias_periodo) + 1

ReDim periodos(1, N_periodos)

'a continuacion se evaluan los costos directos

cont = 0

cont2 = 0

Funcion_objetivo = 0

For j = 1 To 9999 ' encuentra la dimension de la matriz unitarios que es la cantidad

total de insumos

If (Worksheets("unitarios").Cells(j + 1, 1).Value <> 0) Then

cont = cont + 1

End If

Next j

Page 232: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 232 -

For j = 1 To 9999 ' encuentra la cantidad total de insumos que se usara en la obra

If (Worksheets("insumos").Cells(j + 1, 1).Value <> 0) Then

cont2 = cont2 + 1

End If

Next j

For i = 1 To Nact 'comienza la evaluacion de costos para cada actividad

act_actual = Worksheets("Precedencias").Cells(i + 1, 1).Value ' encuentra cada

actividad que va a analizar

duracion_actividad = Worksheets("Pob_Intermedia").Cells((i * 2) - 1 + 2, k +

1).Value 'encuentra la duracion de la actividad

Cantidad_actividad = Worksheets("Actividades").Cells(i + 1, 4) 'encuentra la

cantidad de actividad a desarrollar

comienzo = listasfs(i, 2) 'encuentra el dia en el que comienza la actividad

final = listasfs(i, 3) 'encuentra el dia en el que termina la actividad

periodo_comienzo = Int((comienzo - 1) / dias_periodo) + 1 'encuentra el periodo en

el que comienza la actividad

periodo_final = Int((final - 1) / dias_periodo) + 1 'encuentra el periodo en el que

termina la actividad

costo_total_actividad = 0

costo_material = 0

costo_herramienta = 0

costo_equipo = 0

costo_mano_obra = 0

Cant_insumos = 0

mano_obra = 0

Page 233: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 233 -

mak = 0

escape = 0 'para revisar insumos

For R = 1 To cont

If (act_actual = Worksheets("unitarios").Cells(R + 1, 1).Value) Then 'revisa la

cantidad de insumos de la actividad estudiada

Cant_insumos = Cant_insumos + 1

End If

Next R

ReDim insumos(Cant_insumos, 8) 'vector de insumos

For t = 1 To cont

If (act_actual = Worksheets("unitarios").Cells(t + 1, 1).Value) Then 'revisa que

evalue insumo de la actividad estudiada

For m = 1 To Cant_insumos

insumos(m, 1) = Worksheets("unitarios").Cells(t + m, 2).Value 'encuentra el

codigo insumo de la actividad

insumos(m, 2) = Worksheets("unitarios").Cells(t + m, 3).Value 'encuentra la

cantidad de insumo de la actividad

insumos(m, 3) = Worksheets("unitarios").Cells(t + m, 4).Value 'encuentra el

rendimiento del insumo de la actividad

insumos(m, 4) = Worksheets("unitarios").Cells(t + m, 5).Value 'encuentra el

costo de la cantidad de herramienta de la actividad

insumos(m, 7) = Worksheets("unitarios").Cells(t + m, 6).Value 'encuentra el

precio ordinario de la mano de obra

insumos(m, 8) = Worksheets("unitarios").Cells(t + m, 7).Value 'encuentra el

precio ordinario de la maquinaria

Page 234: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 234 -

For h = 1 To cont2

If (insumos(m, 1) = Worksheets("insumos").Cells(h + 1, 1).Value) Then

insumos(m, 5) = Worksheets("insumos").Cells(h + 1, 4).Value

'encuentra el precio unitario del insumo

insumos(m, 6) = Worksheets("insumos").Cells(h + 1, 5).Value

'encuentra el tipo de insumo

End If

Next h

If (insumos(m, 1) = codigo_m_o) Then 'tan pronto encuentre mano de obra

evalua la cantidad de M O porque es necesario para evaluar herramientas

mano_obra = 1

mak = (Cantidad_actividad / duracion_actividad) * ((1 / 8) / insumos(m,

3))

End If

Next m

Exit For

End If

Next t

For w = 1 To Cant_insumos ' evalua materiales, herramienta, equipo y mano de

obra

If (insumos(w, 6) = "M. obra") Then 'evalua costos por mano de obra

costo_mano_obra = costo_mano_obra + (mak * insumos(w, 7) *

Cantidad_actividad)

Page 235: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 235 -

End If

If (insumos(w, 6) = "Material") Then 'evalua costos por material

costo_material = costo_material + (insumos(w, 2) * insumos(w, 5) *

Cantidad_actividad)

End If

If (insumos(w, 6) = "Equipo") Then 'evalua costos por equipo

lae = (Cantidad_actividad / duracion_actividad) * ((1 / 8) / insumos(w, 3))

costo_equipo = costo_equipo + (insumos(w, 8) * Cantidad_actividad * lae)

End If

If (insumos(w, 6) = "Herramienta") Then 'evalua costos por herramienta

If (mano_obra = 1) Then

costo_herramienta = costo_herramienta + (mak * insumos(w, 4) *

Cantidad_actividad)

Else

mak = 1

costo_herramienta = costo_herramienta + (mak * insumos(w, 4) *

Cantidad_actividad)

End If

End If

Next w

costo_total_actividad = costo_mano_obra + costo_material + costo_equipo +

costo_herramienta 'Halla el costo total de la actividad

If (periodo_final - periodo_comienzo = 0) Then 'asigna costos directos al periodo en

curso

Page 236: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 236 -

periodos(1, periodo_comienzo) = periodos(1, periodo_comienzo) +

costo_total_actividad

ElseIf (periodo_final - periodo_comienzo > 0) Then

For x = 1 To ((periodo_final - periodo_comienzo) + 1) 'asigna costos directos a

los periodos en los que se desarrolla la actividad

If ((periodo_comienzo - 1 + x) = periodo_comienzo) Then 'revisa que se este

evaluando el periodo comienzo

proporcion_periodo = (((periodo_comienzo * dias_periodo) - comienzo + 1) /

duracion_actividad)

periodos(1, periodo_comienzo) = periodos(1, periodo_comienzo) +

(costo_total_actividad * proporcion_periodo)

ElseIf ((periodo_comienzo - 1 + x) > periodo_comienzo And

(periodo_comienzo - 1 + x) < periodo_final) Then 'revisa que evalue periodos intermedios

proporcion_periodo = dias_periodo / duracion_actividad

periodos(1, periodo_comienzo - 1 + x) = periodos(1, periodo_comienzo - 1 +

x) + (costo_total_actividad * proporcion_periodo)

Else 'revisa que evalue el periodo final

proporcion_periodo = (final - ((periodo_final * dias_periodo) - dias_periodo)) /

duracion_actividad

periodos(1, periodo_final) = periodos(1, periodo_final) +

(costo_total_actividad * proporcion_periodo)

Page 237: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 237 -

End If

Next x

End If

Next i

'ahora se traen los costos generados periodo a periodo a valor presente neto

For a = 1 To N_periodos ' Trae a VPN los costos de cada periodo

Funcion_objetivo = Funcion_objetivo + ((periodos(1, a) + administracion_periodo)

/ ((1 + costo_oportunidad) ^ a)) 'acumula valor de funcion objetivo periodo a periodo

Next a

If maximo > plazo_maximo Then 'penalizacion si la duracion es mayor al plazo

maximo

Funcion_objetivo = Funcion_objetivo * (1 + (0.01 * (maximo - plazo_maximo)))

'costo aumenta 1% por cada dia que se exceda del limite

End If

For b = 1 To Tpob 'se penaliza en el caso de que un hijo sea igual a algun padre

Page 238: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 238 -

If Funcion_objetivo = Worksheets("Población").Cells(2, b).Value Then

prueba_igual = 0

For c = 1 To Ngenes 'revisa si todos los genes son iguales

If Worksheets("Pob_intermedia").Cells(c + 2, k + 1).Value =

Worksheets("Población").Cells(c + 2, b).Value Then

prueba_igual = prueba_igual + 1

End If

Next c

If prueba_igual = Ngenes Then 'en caso de ser iguales penaliza

Funcion_objetivo = Funcion_objetivo * 1000

Exit For

End If

End If

Next b

Worksheets("pob_intermedia").Cells(1, k + 1) = 1 / Funcion_objetivo 'CAMBIA

SEGUN POBLACION

Worksheets("pob_intermedia").Cells(2, k + 1) = Funcion_objetivo 'CAMBIA SEGUN

POBLACION

Next k

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que genera la población inicial

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton1_Click()

Page 239: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 239 -

If ComboBox1 = "Aleatorio" Then

PobIni_Aleatorio

Worksheets("reporte").Cells(16, 2).Value = "Aleatorio"

End If

If ComboBox1 = "Retraso 0" Then

PobIni_Retraso0

Worksheets("reporte").Cells(16, 2).Value = "Retraso 0"

End If

If ComboBox1 = "Mejores Anteriores" Then

PobIni_ResHistoric1

Worksheets("reporte").Cells(16, 2).Value = "Resultados historicos"

End If

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que evalua la población inicial

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton2_Click()

adaptacion_pob_inicial

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que hace la seleccion

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton3_Click()

Page 240: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 240 -

If ComboBox2 = "Aleatorio" Then

Selección_Aleatoria

Worksheets("reporte").Cells(17, 2).Value = "Aleatorio"

End If

If ComboBox2 = "Torneo" Then

Selección_Torneo

Worksheets("reporte").Cells(17, 2).Value = "Torneo"

End If

If ComboBox2 = "Proporcional" Then

Selección_Proporcional

Worksheets("reporte").Cells(17, 2).Value = "Proporcional"

End If

If ComboBox2 = "Escalonado" Then

Selección_Escalonada

Worksheets("reporte").Cells(17, 2).Value = "Escalonada"

End If

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que hace la recombinación

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton4_Click()

If ComboBox3 = "2 Padres 1 Punto" Then

Recombinacion_1pto

Worksheets("reporte").Cells(18, 2).Value = "2 Padres 1 Punto"

End If

If ComboBox3 = "2 Padres 2 Puntos" Then

Recombinacion_2pts_2padres

Page 241: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 241 -

Worksheets("reporte").Cells(18, 2).Value = "2 Padres 2 Puntos"

End If

If ComboBox3 = "3 Padres 2 Puntos" Then

Recombinacion_2pts_3padres

Worksheets("reporte").Cells(18, 2).Value = "3 Padres 2 Puntos"

End If

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que hace la mutación

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton5_Click()

If ComboBox4 = "Aleatoria" Then

Mutacion_aleatoria

Worksheets("reporte").Cells(19, 2).Value = "Aleatoria"

End If

If ComboBox4 = "Incremento - Decremento" Then

mutacion_incremento_decremento

Worksheets("reporte").Cells(19, 2).Value = "Incremento-decremento"

End If

If ComboBox4 = "Mutación variable" Then

Mutacion_variable

Worksheets("reporte").Cells(19, 2).Value = "Variable"

End If

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Page 242: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 242 -

'programa al boton que hace la evaluación de la pob intermedia

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton6_Click()

adaptacion_pob_intermedia

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que genera la nueva generacion

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton7_Click()

If ComboBox5 = "Elitismo" Then

Elitismo

Worksheets("reporte").Cells(20, 2).Value = "Elistismo"

End If

If ComboBox5 = "Mejores padres e hijos" Then

Mejores_PadresHijos

Worksheets("reporte").Cells(20, 2).Value = "Mejores padres e hijos"

End If

If Worksheets("Control").Cells(20, 8).Value <> Worksheets("Control").Cells(10,

5).Value Then

Worksheets("Pob_Mejores").Range("A1:AZ5000").Copy

Worksheets("Población").Paste

Destination:=Worksheets("Población").Range("A1:AZ5000")

End If

End Sub

Page 243: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 243 -

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'programa al boton que ejecuta la totalidad del algoritmo

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Sub CommandButton8_Click()

Dim NG, KI, KJ, GAC, RP As Integer

Dim Prom As Single

Dim HI, HF As Date

Dim Tpob

'Obtiene y escribe la hora de inicio

HI = Time

Worksheets("Reporte").Cells(2, 2).Value = HI

Nact = Worksheets("Control").Cells(1, 2).Value

NG = Worksheets("Control").Cells(10, 5).Value

Worksheets("Control").Cells(24, 8).Value = 1

Tpob = Worksheets("Control").Cells(2, 2).Value

Worksheets("Reporte").Range("D5:E5000").ClearContents

CommandButton1_Click 'Generación de la Población Inicial

CommandButton2_Click 'Evaluación de la Población Inicial

For KI = 1 To NG

Worksheets("Control").Cells(24, 8).Value = KI

CommandButton3_Click 'Selección

CommandButton4_Click 'Recombinación

CommandButton5_Click 'Mutación

CommandButton6_Click 'Evaluación

CommandButton7_Click 'Generación de la Nueva Generación

Page 244: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 244 -

'Calcula el promedio del valor de aptitud de todos los individuos en la generación KI

Prom = 0

For KJ = 1 To Worksheets("Control").Cells(2, 2).Value

Prom = Prom + Worksheets("Pob_Mejores").Cells(2, KJ).Value

Next KJ

Prom = Prom / Worksheets("Control").Cells(2, 2)

Worksheets("Reporte").Cells(KI + 4, 4).Value = KI

Worksheets("Reporte").Cells(KI + 4, 5).Value = Prom

Next KI

'Copia a Reporte el mejor cromosoma de todas las generaciones

Worksheets("Reporte").Range("H1:H5000").ClearContents

Worksheets("Pob_Mejores").Range("A1:A5000").Copy

Worksheets("Reporte").Paste Destination:=Worksheets("Reporte").Range("H1:H5000")

'Encuentra un campo vacio en Resultados_Previos

RP = 1

While Worksheets("Resultados_Previos").Cells(1, RP) <> 0

RP = RP + 1

Wend

'Copia a Resultados_Previos el mejor cromosoma de todas las generaciones

For KI = 1 To (Nact * 2) + 2

Worksheets("Resultados_Previos").Cells(KI, RP).Value =

Worksheets("Pob_Mejores").Cells(KI, 1).Value

Next KI

Duracion_proyecto

'Obtiene y escribe la hora de finalizacion

Page 245: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 245 -

HF = Time

Worksheets("Reporte").Cells(3, 2).Value = HF

'Obtiene y escribe la hora de finalizacion

End Sub

'cantidad de padres necesarios segun el tipo de recombinacion

Public Sub ComboBox3_Change()

If ComboBox3 = "3 Padres 2 Puntos" Then

Worksheets("control").Cells(16, 2).Value = 3

Else

Worksheets("control").Cells(16, 2).Value = 2

End If

End Sub

Public Sub commandbutton9_click()

exportar

End Sub

'halla la duración del proyecto para el cromosoma escogido como el mejor de la corrida

Public Sub Duracion_proyecto()

Dim original(), listasfs(), Nact, Ngenes, Predecesora, Nhijos, sumatoria, escape, cont,

cont2, fingrande, fintemp, codigo, todas_predecesoras, predecesoras_actividad

Page 246: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 246 -

Dim Tpob, maximo, act_actual

Dim insumo, Cant_insumos, insumos()

Tpob = Worksheets("control").Cells(2, 2).Value 'encuentra el tamano de la poblacion

Nact = Worksheets("control").Cells(1, 2).Value 'encuentra el numero de actividades del

proyecto

Ngenes = Nact * 2

cont = 0

Predecesora = 0

escape = 0

For i = 1 To Nact

If (cont > Predecesora) Then

Predecesora = cont

End If

cont = 0

For j = 1 To 50

If (Worksheets("Precedencias").Cells(i + 1, j + 1).Value > 0) Then

cont = cont + 1

End If

Next j

Next i

' Arriba se encontro cual es el maximo numero de predecesoras que tiene una actividad

para armar matriz

Page 247: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 247 -

ReDim original(Nact, Predecesora + 1) 'se dimensiona matriz donde se encontrara la

info original

ReDim listasfs(Nact, 3) 'se dimensiona vector de actividades terminadas con su

comienzo y fin

For i = 1 To Nact

For j = 1 To Predecesora + 1

original(i, j) = Worksheets("Precedencias").Cells(i + 1, j).Value 'llena la matriz

con la informacion original

Next j

Next i

For i = 1 To Nact

If (original(i, 2) = 0) Then ' comienza con las actividades sin predecesoras

original(i, 1) = 0 'borra actividad lista de la original

listasfs(i, 1) = Worksheets("Precedencias").Cells(i + 1, 1).Value ' pasa el codigo a

la tabla listasfs

listasfs(i, 2) = Worksheets("reporte").Cells((i * 2) + 2, 8) + 1 'halla dia inicial

listasfs(i, 3) = Worksheets("Reporte").Cells((i * 2) - 1 + 2, 8) + listasfs(i, 2) - 1

'halla dia final

End If

Next i

While escape = 0 'ahora revisa las actividades con predecesoras

Page 248: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 248 -

For s = 1 To Nact 'comienza el ciclo para revisar hasta que se borren todas las act de

original()

fingrande = 0

predecesoras_actividad = 0

todas_predecesoras = 0

For o = 1 To Predecesora

If (Worksheets("Precedencias").Cells(s + 1, o + 1).Value > 0) Then

predecesoras_actividad = predecesoras_actividad + 1 'cuenta la cantidad de

predecesoras

'que tiene la actividad

End If

Next o

For j = 1 To predecesoras_actividad

If (original(s, 1) = 0) Then 'revisa que la actividad no este en la matriz listasfs

Exit For 'sale para buscar la siguiente actividad

End If

codigo = original(s, j + 1) 'encuentra el codigo de la predecesora

For l = 1 To Nact

If ((codigo - listasfs(l, 1)) = 0) Then 'si la actividad ya esta en listasfs

fintemp = listasfs(l, 3) ' asigna una fecha de fin temporal

Page 249: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 249 -

todas_predecesoras = todas_predecesoras + 1 'suma cada vez que

encuentra una predecesora

'y solo continuara hasta que todas sumen

If (fingrande < fintemp) Then

fingrande = fintemp

End If

End If

Next l

If (fingrande = 0) Then

Exit For

End If

Next j

If (fingrande <> 0 And todas_predecesoras = predecesoras_actividad) Then 'revisa

que todas las opredecesoras cumplan

original(s, 1) = 0 'borra actividad lista de la original

listasfs(s, 1) = Worksheets("Precedencias").Cells(s + 1, 1).Value ' pasa el codigo

a la tabla listasfs

listasfs(s, 2) = Worksheets("Reporte").Cells((s * 2) + 2, 8) + 1 + fingrande 'halla

dia inicial

listasfs(s, 3) = Worksheets("Reporte").Cells((s * 2) - 1 + 2, 8) + listasfs(s, 2) - 1

'halla dia final

End If

Next s

Page 250: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 250 -

sumatoria = 0

For i = 1 To Nact

sumatoria = sumatoria + original(i, 1) 'sumatoria de los codigos

Next i

If (sumatoria = 0) Then

escape = 1 ' revisa cuando la lista original() esta vacia para salir del ciclo

End If

Wend

maximo = 0

For i = 1 To Nact

If (listasfs(i, 3) > maximo) Then

maximo = listasfs(i, 3)

End If

Next i

Worksheets("Reporte").Cells(24, 2).Value = maximo

End Sub

Public Sub exportar()

'abre el archivo "C:\Solucion" de project

Dim pj As MSProject.Project

Set pj = CreateObject("MSProject.Project")

pj.Application.Visible = True

pj.Application.FileOpen ("C:\Solucion.mpp")

Dim i, j As Integer

Page 251: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 251 -

Nact = Worksheets("Control").Cells(1, 2).Value 'Cantidad de Actividades

'crea una variable dummy de inicio

ActiveProject.Tasks.Add ("Inicio")

ActiveProject.Tasks("Inicio").Duration = 0 & "d"

'Crear las actividades en Project

For i = 2 To Nact + 1

nombre = Worksheets("Actividades").Cells(i, 2)

ActiveProject.Tasks.Add (nombre)

Next i

For i = 2 To Nact + 1

nombre = Worksheets("Actividades").Cells(i, 2)

retr = Worksheets("Reporte").Cells((i - 1) * 2 + 2, 8) 'obtiene el retraso de la actividad

dur = Worksheets("Reporte").Cells((i - 1) * 2 + 1, 8) 'obtiene la duracion de la actividad

ActiveProject.Tasks(nombre).Duration = dur & "d" 'asigna en project la duracion

j = 2

While IsEmpty(Worksheets("Precedencias").Cells(i, j)) <> True

pred = Worksheets("Precedencias").Cells(i, j) 'codigo de la predecesora

For k = 2 To Nact + 1

If (pred = Worksheets("Actividades").Cells(k, 1).Value) Then

pospred = k

Exit For

End If

Next k

nompred = Worksheets("Actividades").Cells(pospred, 2) 'nombre de la predecesora

Page 252: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida

- 252 -

ActiveProject.Tasks(nombre).TaskDependencies.Add ActiveProject.Tasks(nompred),

pjFinishToStart 'asigna cada predecesora

ActiveProject.Tasks(nombre).TaskDependencies(j - 1).Lag = retr & "d" 'asigna el

retraso a cada predecesora

j = j + 1

Wend

'asigna la dummy como predecoesora de las que no tienen predecesora para poder

asignarles el retraso

If j = 2 Then

ActiveProject.Tasks(nombre).TaskDependencies.Add ActiveProject.Tasks("Inicio"),

pjFinishToStart 'asigna la predecesora

ActiveProject.Tasks(nombre).TaskDependencies(1).Lag = retr & "d" 'asigna el retraso

End If

Next i

End Sub

Page 253: TRABAJO DE GRADO - javeriana.edu.co · - 2 - uso de algoritmos genÉticos para facilitar el manejo de las variables y su relaciÓn con el valor presente neto, ... se encuentra unida