• No results found

Chapter 5: Quantitative Analysis Methodology

5.4 A Social Data 

La complejidad se lleva a cabo con respecto a las secuencias presentadas y se evalúa su complejidad temporal así como su desempeño en tiempo.

4.4.1 Complejidad temporal.

La complejidad temporal se entiende por una clasificación asintótica de una función que exprese el tiempo que toma un algoritmo determinado para analizar y dar su salida. Esta clasificación depende mucho de la función que determine el tiempo que toma el procedimiento en terminar, ya que acota a dicha función del modo más cercano. El determinar una función que acote a otra, para el caso de la complejidad, puede darse en tres modos distintos, el Mejor Caso, Caso Intermedio y Peor Caso. En esta oportunidad, se considera al Peor caso, debido a que permitirá estimar aproximadamente cual es el tiempo de ejecución del algoritmo para un límite máximo. El Peor caso tiene una notación particular denominada O, de modo que ahora se calculará esta función para saber a qué grado de complejidad ascienden nuestros algoritmos. Los resultados del cálculo de la complejidad temporal, para los procedimientos considerados se encuentran en el Cuadro 4.3. En el caso de las complejidades para los tres primeros procedimientos, el valor de n representa el tamaño de la matriz de filas x columnas.

BIBLIOTECA

DE CIENCIAS

FÍSICAS

Procedimiento Complejidad Temporal

Crear población inicial O(n)

Crear un arreglo con tamaño que se estime evaluar la cantidad de generaciones existentes para a evaluar si es que hay variante

1

Iniciar el proceso evolutivo hasta que el factor de varianza converja al estimado.

O(n2)

Crear una población temporal de igual tamaño y tipo del de la población inicial, con datos vacíos

O(n)

Repetir los 4 pasos siguiente igual al tamaño de la población inicial entre dos

O(n/2)

Seleccionar a los padres O(2)

Realizar el proceso de cruce O(2) Realizar el proceso de mutación O(2) Ingresar a la población temporal O(n) Obtener el valor del mejor individuo

(por su fitness)

O(n)

Ingresar el valor del mejor individuo al arreglo de varianza para ser evaluada de acuerdo a un factor de

O(1)

BIBLIOTECA

DE CIENCIAS

FÍSICAS

varianza, para este caso es 1.0

Reemplazar toda la población temporal a la población a evaluar

O(1)

Reportar el valor del mejor individuo O(n)

Discusión

El crear población inicial tendrá que generar la cantidad de cromosomas que está establecido, para este caso es de n cromosomas. Lográndose por medio de una secuencia for desde 1 hasta el tamaño de la población n.

El crear un arreglo con tamaño que se estime evaluar la cantidad de generaciones existentes para evaluar si es que hay variante, se genera al crear una variable de tipo arreglo de tipo numérico, para evaluar posteriormente el proceso de varianza en cada una de las generaciones establecidas. Al iniciar el proceso evolutivo hasta que el factor de varianza converja al estimado, se debe de tomar en cuenta que esta es la parte donde se realiza el proceso. El proceso engloba casos de tipo O(n), tal como el proceso de selección, hasta completar la cantidad de población temporal hasta llegar a n (establecido como tamaño de la población inicial). Por tanto la complejidad en el peor de los casos será de tipo O(n2).

El proceso de crear una población temporal de igual tamaño y tipo del de la población inicial, con datos vacíos es la creación de una variable de arreglo de tipo cromosoma, al tamaño establecido por la población inicial. Por lo tanto tendrá una complejidad de O(n).

BIBLIOTECA

DE CIENCIAS

FÍSICAS

El proceso de repetir los 4 pasos siguiente igual al tamaño de la población inicial entre dos es porque al proceso de selección se va a necesitar de 2 en 2, el cual implica la cantidad total entre 2 veces para completar el tamaño a n. teniendo una complejidad de O(n/2).

El proceso de seleccionar a los padres se hace mediante un par de valores aleatorios creados por la función aleatoria llamada random, por lo tanto se tiene una complejidad de tipo 2. Por lo tanto la complejidad es O(2). Al realizar el proceso de cruce se debe tener en cuenta el tamaño de cromosoma. Pero para nuestro proyecto no se va a considerar cruces de m puntos, puesto que por la naturaleza del proyecto es necesaria la evaluación de un proceso de cruce por intercambio. Implicando la selección de 2 puntos a intercambiar, obtenidas de manera aleatoria en el rango de 1 hasta el tamaño del cromosoma. Por lo tanto la complejidad es de O(2).

Al realizar el proceso de mutación, se va a realizar de la misma manera que el proceso de cruce, obteniendo la complejidad de O(2).

Al ingresar a la población temporal, es el proceso en el cual el nuevo individuo creado bajo el proceso evolutivo, se va a asignar a una población temporal para estar listo cuando se complete al mismo tamaño de la población inicial (n). Por lo tanto se tendrá una complejidad de O(n).

Para obtener el valor del mejor individuo es necesario evaluar un proceso de comparación entre todos los individuos generando una secuencia for, implicando una complejidad de O(n).

BIBLIOTECA

DE CIENCIAS

FÍSICAS

Para Ingresar el valor del mejor individuo al arreglo de varianza para ser evaluada de acuerdo a un factor, de cada proceso evolutivo que se realice se va a obtener el mejor individuo, para ello es necesario realizar una asignación del mejor en una posición del arreglo creado previamente. Por lo tanto se tendrá una complejidad de O(1).

Para el proceso de Reemplazar toda la población temporal a la población a evaluar se hace una asignación o actualización, de una variable grupal, por lo tanto se tendrá una complejidad de O(1).

Para realizar el proceso de Reportar el valor del mejor individuo se debe de tener en cuenta que se tiene que buscar el mejor individuo dentro del tamaño de la población, para ello implica realizar una secuencia for para el proceso de búsqueda del mejor. Por ello implica una complejidad O(n).

4.4.2 Evaluación de desempeño en el tiempo.

Un aspecto importante al momento de poner en marcha una implementación cualquiera, es medir el tiempo de respuesta real. Esto es necesario debido a que permite conocer aspectos técnicos para un futuro uso aplicativo de los conceptos en cuestión. La implementación fue hecha en Netbeans 7.2 ejecutándose sobre un procesador DualCore de 2.88 GHZ con 2Gb de memoria RAM. En este caso específico, medimos el tiempo en minutos, del algoritmo genético se demoró desde el ingreso de datos de los perfiles (tanto de los 32 trabajador, así como el idóneo de cada puesto) hasta el reporte de los resultados de los puestos asignados y fue de 12 minutos.

BIBLIOTECA

DE CIENCIAS

FÍSICAS

4.5 Análisis de los resultados

del proceso de