212
i ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS GENÉTICOS. SAMUEL ANTONIO PEÑA NAVARRO CESAR ANTONIO RIVERO LEIVA CORPORACIÓN UNIVERSITARIA TECNOLÓGICA DE BOLÍVAR FACULTAD DE INGENIERÍA DE SISTEMAS CARTAGENA DE INDIAS D.T. Y C. 2.000.

ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

i

ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS

GENÉTICOS.

SAMUEL ANTONIO PEÑA NAVARRO

CESAR ANTONIO RIVERO LEIVA

CORPORACIÓN UNIVERSITARIA TECNOLÓGICA DE BOLÍVAR

FACULTAD DE INGENIERÍA DE SISTEMAS

CARTAGENA DE INDIAS D.T. Y C.

2.000.

Page 2: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

ii

ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS

GENÉTICOS.

SAMUEL ANTONIO PEÑA NAVARRO

CESAR ANTONIO RIVERO LEIVA

Tesis de grado presentada como requisito parcial para optar el titulo de ingeniero de sistemas

Director. ISAAC ZUÑIGA SILGADO Ingeniero de Sistemas

CORPORACIÓN UNIVERSITARIA TECNOLÓGICA DE BOLÍVAR

FACULTAD DE INGENIERÍA DE SISTEMAS

CARTAGENA DE INDIAS D.T. Y C.

2.000.

Page 3: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

iii

Nota de aceptación

__________________________ __________________________ __________________________ __________________________ __________________________ Jurado __________________________ Jurado

Cartagena de Indias D.T. y C., Febrero 2 de 2000.

Page 4: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

iv

Dedicamos la culminación de este logro

A Dios por habernos dado la fuerza, voluntad y sabiduría necesaria para

alcanzar nuestras metas.

A nuestros padres, hermanos y familiares por todo el apoyo que nos

brindaron y por todos los sacrificios que realizaron para impulsarnos a

lograr la realización de nuestros sueños, que hoy se han hecho realidad.

A nuestros maestros por su ejemplo de disciplina, valores y exhortarnos a

alcanzar los objetivos profesionales.

A todos, mil gracias

Cesar y Samuel

Page 5: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

v

AGRADECIMIENTOS

Los autores expresan su agradecimiento a:

Lic. Martha Céspedes, Jefe del Departamento de Recursos Humanos de la

Empresa Social del Estado Hospital Universitario de Cartagena, por su

colaboración e interés en la ejecución del proyecto.

Carlos Ferriol D, Jefe del Departamento de Sistemas de la Empresa

TUBOCARIBE S.A., por sus valiosos aportes y orientación.

Daniel de las Aguas, Ingeniero de Sistemas, por su asesoría y constante

motivación.

Isaac Zúñiga S, Ingeniero de sistemas profesor de la Corporación

Universitaria Tecnológica de Bolívar, por su apoyo y orientación.

A los funcionarios del Departamento de Recursos Humanos de la Empresa

Social del Estado Hospital Universitario de Cartagena, por su colaboración.

Page 6: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

vi

Cartagena de Indias, 10 de Diciembre de 1999.

Señores

CORPORACIÓN UNIVERSITARIA TECNOLÓGICA DE BOLÍVAR

FACULTAD DE INGENIERÍA DE SISTEMAS

ATN: ING. JUAN CARLOS MANTILLA

Decano Facultad

Ciudad

Respetados señores

Comedidamente nos dirigimos a usted con el fin de presentar a

consideración para su estudio y aprobación el trabajo de grado titulado

“Asignación de Recursos Mediante Algoritmos Genéticos”,

con el objeto de optar el título de Ingeniero de sistemas

Atentamente,

CESAR A. RIVERO LEIVA SAMUEL A. PEÑA NAVARRO

Page 7: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

vii

Cartagena de Indias, 10 de Diciembre de 1999.

Señores

CORPORACIÓN UNIVERSITARIA TECNOLÓGICA DE BOLÍVAR

FACULTAD DE INGENIERÍA DE SISTEMAS

ATN. COMITÉ DE EVALUACIÓN DE PROYECTOS

Ciudad

Respetados Señores,

Con la presente me dirijo a ustedes, con ocasión a la petición de los

señores CESAR A. RIVERO LEIVA Y SAMUEL A. PEÑA NAVARRO, estudiantes

matriculados en el programa de Ingeniería de sistemas, quienes han

manifestado su determinación de presentar su proyecto titulado

“Asignación de Recursos Mediante Algoritmos Genéticos”,

requisito este indispensable para optar el titulo de Ingeniero de sistemas.

Al respecto me permito comunicar que he dirigido el citado proyecto, el

cual considero de gran importancia y utilidad.

Atentamente

_________________________ Ing. ISAAC ZÚÑIGA S. Director de Proyecto

Page 8: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

viii

REGLAMENTO ACADEMICO

(ARTICULO 105)

La Corporación Universitaria Tecnológica De Bolívar se reserva el derecho

de propiedad intelectual de todos los trabajos de grado aprobados y no

pueden ser explotados comercialmente sin su autorización.

Page 9: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

ix

LISTA DE TABLAS

pag

Tabla 1. Estructura de la tabla Asignación. 131

Tabla 2. Estructura de la tabla Cargos 131

Tabla 3. Estructura de la tabla Dpto. 132

Tabla 4. Estructura de la tabla Empleado. 132

Tabla 5. Descripción de unidades de código 138

Page 10: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

x

LISTA DE FIGURAS

pag

Figura 1. Propiedades de un objeto de la clase automóviles 33

Figura 2. Los atributos compartidos de los objetos se agrupan en la clase. 34

Figura 3. Intercambio de información entre dos objetos. 35

Figura 4. Mensaje de un objeto produce que otro objeto de una clase diferente cambie un atributo. 36

Figura 5. Herencia de propiedades de una clase madre por una clase hija. 38

Figura 6. Diagrama de jerarquía de procesos 58

Figura 7.Diagramas de flujo de datos – proceso asignación 59

Figura 8. Diagrama de flujo de datos opción selección de personas. 60

Figura 9. Evolución del proyecto 75

Figura 10. Interfaz del primer modelo 76

Figura 11. Interfaz del segundo modelo 80

Figura 12. Estructura de datos utilizada en el segundo modelo. 82

Figura 13. Interfaz del tercer modelo. 84

Figura 14. Estructura de datos utilizada en el segundo modelo. 86

Figura 15. Diagrama de jerarquía de procesos - Abrir 96

Figura 16. Diagrama de jerarquía de procesos - Nueva Asignación 97

Figura 17. Diagrama de flujo de datos opción abrir hábitat 98

Figura 18. Diagrama de flujo de datos opción Abrir Hábitat, configuración avanzada. 99

Figura 19. Diagrama de flujo de datos opción Nuevo Hábitat. 100

Figura 20. Diagrama de flujo de datos opción Nuevo Hábitat. 101

Figura 21. Diagrama de estado del objeto Individuo. 116

Page 11: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xi

Figura 22. Diagrama de estado del objeto Población. 121

Figura 23. Diagrama de estado del objeto HiloPoblación 122

Figura 24. Diagrama de estado del objeto Hábitat 126

Figura 25. Diagrama de estado del objeto HiloHabitat 127

Figura 26.Modelo relacional de la base de datos del sistema. 133

Figura 27. Descripción de objetos según enfoque Coud y Yourdon. 134

Figura 28. Estructura de un cromosoma. 139

Figura 29 Interfaz del cuarto modelo 150

Figura 30. notación de representación de objetos según enfoque coad y yourdon 190

Page 12: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xii

CONTENIDO

pag

INTRODUCCIÓN 1

1 MARCO TEÓRICO 3

1.1 ALGORITMOS GENÉTICOS 3

1.1.1 Orígenes 3

1.1.2 Algoritmo Genético. 5

1.1.3 Algoritmo Genético como técnica de optimización. 9

1.1.4 Bases matemáticas. 10

1.1.4.1 Elementos Básicos de un Algoritmo Genético Tradicional 10

1.1.5 Qué Ventajas y Desventajas tienen con respecto a otras técnicas de búsqueda? 21

1.1.6 Características que distinguen a los AG de otras técnicas de IA. 22

1.1.7 Algoritmos Genéticos Paralelos 22

1.1.7.1 Clasificación de los AGPs 23

1.1.7.1.1 AGPs de Grano Burdo 25

1.1.7.1.1.1 Formación de especies 26

1.1.7.1.1.2 Interrupción del equilibrio 27

1.1.7.1.1.3 Migración 29

Page 13: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xiii

1.1.7.1.1.4 Aplicaciones 31

1.2 HILOS DE EJECUCIÓN 31

1.3 PROGRAMACIÓN ORIENTADA A OBJETOS 32

1.3.1 Objeto =codigo + datos. 33

1.3.2 Clases. 34

1.3.3 Mensajes. 35

1.3.4 Encapsulación 36

1.3.5 Herencia 38

1.3.6 Polimorfismo 40

2 ASIGNACIÓN DE RECURSO HUMANO EN EL HOSPITAL UNIVERSITARIO DE CARTAGENA 41

2.1 CLASIFICACIÓN DE TURNOS 43

2.1.1 Nomenclatura de la Asignación. 43

2.2 PROCESO DE ASIGNACIÓN 44

2.2.1 Tiempo Laboral 44

2.2.2 Algoritmo 45

2.3 PLAN DE CARGOS 47

2.4 DETERMINACIÓN DEL ESPACIO MUESTRAL 47

3 SISTEMA DE INFORMACIÓN PARA ELABORACIÓN DE HORARIOS EN EL HUC 50

3.1 REQUERIMIENTOS DEL SISTEMA 50

3.1.1 Descripción del sistema 50

3.1.1.1 Sistema de administración y control de recursos humanos 50

Page 14: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xiv

3.1.1.1.1 Administración del Recurso Humano. 51

3.1.1.1.2 Control y Liquidación de Nómina. 52

3.1.1.2 Delimitación del sistema 52

3.1.1.3 Frecuencia 53

3.1.1.4 Personal encargado 53

3.1.1.5 Restricciones 53

3.2 DISEÑO DE ENTRADA DE DATOS 54

3.2.1 Datos variables ó suministrados por el usuario 54

3.2.2 Datos de identificación o almacenados en el sistema. 55

3.2.3 Datos invariables o constantes 55

3.3 DISEÑO DE SALIDA DE DATOS 56

3.3.1 Salidas por pantalla 56

3.3.2 Salidas por Impresora 56

3.3.3 Salidas a archivos 57

3.4 DIAGRAMA DE JERARQUÍA DE PROCESOS 58

3.5 DICCIONARIO DE DATOS. 61

3.5.1 Definición de flujos de datos 61

3.5.2 Definición de almacenes de datos 63

3.5.3 Descripción de procesos 64

4 METODOLOGÍA DE INVESTIGACIÓN 66

4.1 DETERMINACIÓN DE REQUERIMIENTOS 66

4.1.1 Investigación preliminar 66

Page 15: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xv

4.1.2 Técnicas para encontrar hechos 67

4.1.3 Requerimientos del sistema 68

4.1.3.1 Requerimientos para el algoritmo 68

4.2 ESTRATEGIA DE DESARROLLO. 69

4.3 DESARROLLO DE UN MODELO DE TRABAJO. 70

4.3.1 Esquema de desarrollo 71

4.3.2 Herramientas de Desarrollo. 71

5 EVOLUCIÓN DEL PROYECTO. 73

5.1 DESARROLLO DEL PROYECTO 74

5.1.1 Primer Modelo (Asignar) 74

5.1.1.1 Diseño 77

5.1.1.2 Estructuras de datos utilizadas 78

5.1.1.3 Conclusiones 78

5.1.2 Segundo Modelo (AG) 79

5.1.2.1 Diseño 80

5.1.2.2 Estructuras de datos utilizadas 82

5.1.2.3 Conclusiones 83

5.1.3 Tercer Modelo (Ag Manager ) 84

5.1.3.1 Diseño 85

5.1.3.2 Estructura de Datos 86

5.1.3.3 Conclusiones 86

6 SISTEMA DE ASIGNACION DE RECURSOS - SAR 88

Page 16: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xvi

6.1 DISEÑO DE ENTRADA DE DATOS 88

6.1.1 Datos variables ó suministrados por el usuario 88

6.1.1.1 Módulo de captura de información básica 89

6.1.1.2 Módulo de captura de información avanzada 89

6.1.2 Datos de Identificación 91

6.2 DISEÑO DE SALIDA DE DATOS 92

6.2.1 Salidas por pantalla 92

6.2.1.1 Módulo de resultados parciales 92

6.2.1.2 Módulo de resultados de la búsqueda 93

6.2.2 Salidas por Impresora 94

6.2.3 Salidas a archivos 95

6.3 DIAGRAMAS DE JERARQUÍA DE PROCESOS 96

6.4 DIAGRAMAS DE FLUJO DE DATOS 98

6.5 DICCIONARIO DE DATOS. 102

6.5.1 Definición de flujos de datos 102

6.5.2 Definición de almacenes de datos 106

6.5.3 Definición de tipos de datos 107

6.5.4 Definición de objetos 114

6.5.4.1 Objeto Individuo 114

6.5.4.1.1 Propiedades 114

6.5.4.1.2 Métodos 115

6.5.4.1.3 Diagrama de Estado 116

Page 17: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xvii

6.5.4.2 Objeto Población 116

6.5.4.2.1 Propiedades 116

6.5.4.2.2 Métodos 118

6.5.4.2.3 Diagrama de Estado 121

6.5.4.3 Objeto HiloPoblacion 121

6.5.4.3.1 Propiedades 121

6.5.4.3.2 Métodos 121

6.5.4.3.3 Diagrama de Estado 122

6.5.4.4 Objeto Hábitat 122

6.5.4.4.1 Propiedades 122

6.5.4.4.2 Métodos 124

6.5.4.4.3 Diagrama de Estado 126

6.5.4.5 Objeto HiloHabitat 126

6.5.4.5.1 Propiedades 126

6.5.4.5.2 Métodos 127

6.5.4.5.3 Diagrama de Estado 127

6.5.5 Descripción de procesos 128

6.5.6 Definición de las estructuras de datos 130

6.5.6.1 Diseño de la base de datos 130

6.5.6.1.1 Estructura de tablas 131

6.5.6.1.1.1 Tabla Asignaci 131

6.5.6.1.1.2 Tabla Cargos 131

Page 18: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xviii

6.5.6.1.1.3 Tabla Dpto 132

6.5.6.1.1.4 Tabla empleado 132

6.5.6.1.2 Modelo Relacional 133

6.5.6.2 Estructura de relaciones entre los objetos de AG. 134

6.6 DESCRIPCIÓN DEL SOFTWARE 135

6.6.1 Estructura del cromosoma. 139

6.6.2 La Función de evaluación. 141

6.6.3 Proceso de selección de individuos. 144

6.6.4 Relevo generacional. 145

6.6.5 Movimiento de individuos. 146

6.6.6 Independencia de las poblaciones. 147

6.6.7 Algoritmo evolutivo. 148

6.6.8 Sincronización de hilos. 148

6.6.9 La interfaz gráfica 149

CONCLUSIONES 151

RESULTADOS 154

RECOMENDACIONES 156

BIBLIOGRAFIA 158

ANEXOS 160

Page 19: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xix

LISTA DE ANEXOS

pag

Anexo A. Plan de cargos del H.U.C. 160

Anexo B. Planillas de asignación de turnos del HUC 168

Anexo C. Manual del Usuario para el Sistema de Asignación de Recursos SAR. 171

Anexo D. Notación de representación de objetos según enfoque Coad y Yourdon. 189

Page 20: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xx

GLOSARIO Adaptación: cualidad que poseen las especies para cambiar características biológicas, con el objeto de sobrevivir a la evolución. Algoritmo: conjunto de pasos lógicos que conllevan a la solución de un problema o alcanzar un objetivo. Algoritmo Genético: algoritmo que emplea tres procesos básicos: evaluación, selección y reproducción. Búsqueda: proceso que realiza el algoritmo genético para la obtención de soluciones. Búsqueda en paralelo: búsquedas simultaneas en espacios distintos. Computación evolutiva: rama de la computación que emula el comportamiento biológico y genético de individuos. La Computación Evolutiva interpreta la naturaleza como una inmensa máquina de resolver problemas y trata de encontrar el origen de dicha potencialidad para utilizarla en nuestros programas. Cromosoma: colección de genes que guarda la información genética de un individuo. Cruce: intercambio genético entre individuos. Función de salud: función objetivo empleada por el algoritmo genético. Gen: estructura básica de los cromosomas. Genotipo: individuo. Granularidad: se define como la razón entre el tiempo dedicado por el algoritmo al procesamiento de los individuos y el tiempo dedicado a la

Page 21: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xxi

comunicación entre las subpoblaciones. Si esta relación es alta, se dice que el procesamiento es de grano burdo. Indicadores de gestión: recomendaciones dictaminadas por el ministerio de salud pública. Individuo: elemento o ser biológico, que posee características propias. Inteligencia Artificial: rama de la computación que emula el comportamiento de los seres vivos a través de algoritmos. Mensaje: intercambio de información entre objetos. Migración: paso de individuos entre poblaciones. Mutación: proceso mediante el cual los individuos alteran su estructura genética. Pila de variables: almacén de información empleado por los hilos de ejecución para guardar o extraer información de los datos residentes en memoria. Plan de cargos: documento de uso privado en el H.U.C. que determina el número de cargos y personal para cada uno de los departamentos. Planilla de asignación: documento que representa la programación de horarios a laborar, por sección. Población: conjunto evolucionable de cromosomas o individuos. POO: programación orientada a objetos. Prototipo de sistemas: modelo que funciona para una aplicación de sistemas de información. el prototipo no contiene todas o lleva a cabo la totalidad de las funciones necesarias del sistema final. Reproducción: proceso mediante el cual los individuos generan nuevos individuos. Turno: espacio de tiempo.

Page 22: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

xxii

RESUMEN El objetivo de este trabajo es demostrar la viabilidad de implementar una herramienta de asignación de recursos humanos que sirva de apoyo a el departamento de personal, basada en Algoritmos Genéticos, parte de la computación evolutiva y por tanto de inteligencia artificial; para llegar a esto, se presenta una herramienta prototipo computacional que aplica técnicas de computación evolutiva, para generar asignaciones de turnos de trabajo de forma automática. El proyecto evoluciona a través de cuatro modelos experimentales, a través de los cuales se realizaron ensayos hasta determinar un sistema funcional capaz de generar una asignación de turnos con los requerimientos específicos de la Empresa Social del Estado Hospital Universitario de Cartagena. En el desarrollo de la herramienta se emplearon técnicas avanzadas de programación para la implementación de algoritmos genéticos paralelos.

Page 23: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

1

INTRODUCCIÓN La asignación de horarios es una tarea que en la mayoría de las

instituciones de educación, organizaciones, empresas, etc. donde es

requerida, necesita de mucho tiempo y recursos para obtener un

resultado aceptable o factible.

En empresas que organizan su tiempo de operación en turnos que a su vez

requiere de una asignación dinámica de personal, se constituye un

problema para la administración el tratar de optimizar este proceso. Sin

embargo dado la complejidad que conlleva el procedimiento en mención,

este objetivo está lejos de ser cumplido; y en la mayoría de las situaciones

se conforma con una solución funcional, mas no eficiente.

El proyecto toma como base la problemática del Hospital Universitario de

Cartagena (HUC). La entidad presenta dificultades en el proceso de

asignación del recurso humano el cual se realiza en forma manual y es

elaborado mensualmente por los jefes de departamento, empleando estos

Page 24: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

2

hasta un 40% de su tiempo laboral para realizar la tarea de asignación. La

población de empleados del Hospital Universitario de Cartagena sobrepasa

actualmente los 800 empleados, redundando esto en una distribución

ineficiente, desde el punto de vista de costos, equidad en los horarios de

trabajo y diferencias respecto a las exigencias reales del personal necesario

en las unidades.

Con los avances de la informática en el campo de inteligencia artificial este

problema es hoy abordable con técnicas emuladoras de selección natural,

entre ellas la más difundida en el campo de la Computación Evolutiva:

Algoritmos Genéticos; alternativa viable ante la asignación metódica de

recursos: Asignación manual, Modelos de programación lineal, pudiendo

incluso superar a estos en aspectos como flexibilidad, optimalidad y costos

(recursos designados para realizar la tarea).

El objetivo de este proyecto es determinar la factibilidad de asignar los

recursos humanos del H.U.C. mediante una herramienta computacional

basada en algoritmos genéticos.

Page 25: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

3

1 MARCO TEÓRICO

1.1 ALGORITMOS GENÉTICOS

1.1.1 Orígenes. En los últimos años, la comunidad científica internacional

ha mostrado un creciente interés en una nueva técnica de búsqueda

basada en la teoría de la evolución y que se conoce como el algoritmo

genético. Esta técnica se basa en los mecanismos de selección que utiliza

la naturaleza, de acuerdo a los cuales los individuos más aptos de una

población son los que sobreviven, al adaptarse más fácilmente a los

cambios que se producen en su entorno. Hoy en día se sabe que estos

cambios se efectúan en los genes de un individuo (unidad básica de

codificación de cada uno de los atributos de un ser vivo), y que sus

atributos más deseables (por ejemplo, los que le permiten adaptarse mejor

a su entorno) se transmiten a sus descendientes cuando éste se reproduce

sexualmente.

John Holland, investigador de la Universidad de Michigan lconsciente de la

importancia de la selección natural, a fines de los 60s desarrolló una

Page 26: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

4

técnica que permitió incorporarla en un programa de computadora. Su

objetivo era lograr que las computadoras aprendieran por sí mismas. A la

técnica que inventó Holland se le llamó originalmente "planes

reproductivos", pero se hizo popular bajo el nombre "algoritmo genético"

tras la publicación de su libro en 1975.

Una definición bastante completa de un algoritmo genético es la propuesta

por John Koza: Es un algoritmo matemático altamente paralelo que

transforma un conjunto de objetos matemáticos individuales con respecto al

tiempo usando operaciones modeladas de acuerdo al principio Darwiniano

de reproducción y supervivencia del más apto, y tras haberse presentado de

forma natural una serie de operaciones genéticas de entre las que destaca

la recombinación sexual. Cada uno de estos objetos matemáticos suelen ser

una cadena de caracteres (letras o números) de longitud fija que se ajusta al

modelo de las cadenas de cromosomas, y se les asocia con una cierta

función matemática que refleja su aptitud.

La familia de algoritmos genéticos presenta un modo de abordar

problemas inspirado en los mecanismos que descubrió Darwin en la

evolución de las especies biológicas. Así hablando de algoritmos genéticos

enseguida surgen palabras como selección natural, población, adaptación,

Page 27: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

5

mutación, genes, etc. tan comunes en biología. Típicamente se aplican en

problemas de optimización y de minimización de funciones.

Básicamente dichos algoritmos plantean el problema de la optimización

como un proceso iterativo de búsqueda de la mejor solución dentro del

espacio de posibles respuestas al problema. Comienza con un conjunto

aleatorio de soluciones tentativas, que constituye la población inicial.

Combinando las mejores respuestas de ese conjunto se crea un nuevo

conjunto que reemplaza al anterior, y que es la generación siguiente. Así

repetidamente. Con cada nueva iteración la población se va refinando más,

consiguiendo mejores respuestas al problema, convergiendo finalmente la

mayoría de los individuos en un entorno de la solución óptima.

1.1.2 Algoritmo Genético1. Para aplicar un AG a un problema se necesita

identificar el espacio de posibles soluciones, de respuestas al

problema, y una codificación de los puntos de ese espacio en un

determinado formato. Por ejemplo supongamos que tenemos un sistema

controlado por 3 parámetros (a, b y c) y queremos saber el valor conjunto

de esos parámetros que hace que el sistema funcione del mejor modo

posible.

1 http://www.faqs.org/faqs/ga/

Page 28: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

6

En este caso el espacio de soluciones será el tridimensional con todos los

posibles valores del trío (a-b-c). Cada punto de este espacio es una posible

respuesta al problema y su codificación podría ser la cadena de bits que

representa a los tres números reales en el ordenador. A esta codificación

se le llama cadena cromosómica, cromosoma o genotipo, y a sus

diferentes partes, genes.

El AG se puede ver como un algoritmo de búsqueda dentro del espacio de

las posibles soluciones al problema planteado. Comienza con una

población inicial, que es un conjunto aleatorio de respuestas tentativas al

problema, codificadas. En el ejemplo sería un grupo de tríos con valores

concretos de a-b-c. Cada trío es un individuo de esta generación, que es la

primera de todo el proceso evolutivo.

En el siguiente paso se calcula la función de salud (función de fuerza,

fitness) para cada individuo de la población, que indica el grado en que

cada solución tentativa es adecuada como solución al problema. En

nuestro ejemplo diremos que un trío tiene mucha salud, es bueno, en la

medida en que hace que el sistema se comporte adecuadamente. En

biología sería el grado de adaptación del individuo a su entorno.

Page 29: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

7

A continuación se seleccionan los individuos con mayor salud para que

engendren la siguiente generación. Este selecto grupo constituyen los

padres de la nueva población. Aquellos puntos con muy baja adaptación,

esto es, los que son claramente malos como solución al problema

desaparecen al no tener descendencia. Sólo las soluciones más óptimas se

reproducen y sus genes pasan de una generación a otra. Combinando las

soluciones tentativas del grupo de padres se generan nuevas soluciones

tentativas, los hijos. La creación de estos nuevos puntos se lleva a cabo

mediante los operadores genéticos, que principalmente son dos:

Cruce: Se elige un punto dentro de los cromosomas del padre 1 y del

padre 2, y por ahí se cortan sus cromosomas. La cadena

cromosómica del hijo se compone de un trozo de la del padre 1 y de

la parte complementaria en el padre 2. El hijo es una nueva

combinación de los genes que ya existían en los padres, y en cierta

medida mantiene cierta similitud con sus progenitores, pero es un

punto enteramente nuevo en el espacio de posibles soluciones. En

nuestro ejemplo de los padres 23-34-58 y 57-21-44, podrían salir los

hijos 23-34-44 y 57-21-58 si el punto de corte está entre el segundo

y tercer gen.

Page 30: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

8

Mutación Provoca un cambio aleatorio en alguno de los genes del hijo,

introduciendo así nuevos genes en la población, a través de este

individuo. Estos cambios serán favorables si aumentan la salud del

individuo que los lleva, es decir, si le hacen ser una solución mejor.

Si los cambios son perjudiciales, esos genes no se propagarán de

una generación a otra porque los individuos que los portan se

extinguirán; al ser peores soluciones nunca serán elegidos como

padres y morirán. Por ejemplo el individuo 57-21-58 podría mutar a

57-29-58.

Para terminar este ciclo la nueva generación reemplaza a la anterior.

Puesto que se seleccionan como padres con mayor probabilidad los puntos

más óptimos y se desechan los de peor comportamiento, la nueva

generación tenderá a tener mejores genes y por ello tendrá soluciones más

óptimas al problema planteado. Iterando este proceso repetidamente se

obtienen sucesivas poblaciones, por ejemplo, conjuntos de soluciones,

cada vez mejores. Se dice entonces que las poblaciones se desplazan, en el

espacio de posibles respuestas, hacia la solución óptima. Finalmente, la

evolución converge situándose las poblaciones en entornos muy pequeños

de ese punto óptimo. El AG converge entonces a puntos cercanos al

óptimo, encontrando así una que cumpla con las expectativas en la

solución del problema que se quería resolver.

Page 31: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

9

1.1.3 Algoritmo Genético como técnica de optimización. El problema de la

optimización se puede plantear como un problema de búsqueda del

máximo de una función de bondad, o búsqueda del mínimo de una

función de costo, en el espacio de posibles soluciones. El problema de la

minimización está muy estudiado, y en ciertos dominios eficientemente

resuelto. Están a nuestra disposición, y por supuesto siempre tenemos la

búsqueda exhaustiva como referencia, o determinadas búsquedas

ayudadas por heurísticos.

Los Algoritmos Genéticos emergen también como una técnica de búsqueda

con sus ventajas y sus inconvenientes. Para encontrar el máximo de una

función f con AG basta encontrar una codificación aplicable para todos los

puntos del dominio y asignar como función de salud la propia f. Como

hemos visto el AG desemboca en el punto donde la función de salud es

mayor, que en este caso es precisamente el máximo de f. De modo idéntico

se resuelve la minimización con AG, por ejemplo asignando como "fitness" -

f (el máximo de -f es el mínimo de f).

A diferencia de otras técnicas, como el descenso de gradiente, los AG

prueban con un conjunto de puntos en cada iteración, no con uno solo. Es

decir tienen una búsqueda en paralelo lo cual le permite cierta robustez

frente a mínimos locales. Otra de las ventajas de los AG es su rango de

Page 32: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

10

aplicación. Puesto que no exigen cálculo de derivadas, únicamente evaluar

la función, se puede aplicar en dominios no numéricos, definiendo los

operadores genéticos adecuados.

1.1.4 Bases matemáticas2. Tradicionalmente, el espacio de cromosomas G

está constituido por todas las cadenas de una determinada longitud λ

construidas a partir de los símbolos de un alfabeto Σ. A partir de esta

representación de las soluciones, se deriva todo el aparato matemático que

justificaba y, hasta cierto punto, explicaba el funcionamiento de estas

técnicas. Tras describir sumariamente los componentes fundamentales del

algoritmo, dicha justificación será brevemente expuesta.

1.1.4.1 Elementos Básicos de un Algoritmo Genético Tradicional

Un algoritmo genético tradicional puede ser definido como una tupla con

los siguientes elementos:

GA (Σ, λ, f, Ι, S, R, X, KX, M, KM, τ) (1)

donde cada componente tiene el significado que a continuación se indica:

2 http://cs.felk.cvut.cz/~xobitko/

Page 33: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

11

√ Σ y λ son los elementos ya comentados consistentes en el alfabeto

empleado para construir los cromosomas y la longitud de las mismas.

Dichos cromosomas forman el espacio de genotipos, por ejemplo,

Genotipos posibles = Σλ.

En su versión más simple, el alfabeto es binario (Σ={0,1}).

√ f es la función de salud que relaciona los cromosomas con la bondad de

las soluciones que representan. Puesto que, estrictamente hablando,

esta salud corresponde en última instancia a dichas soluciones, debe

asumirse la existencia de una función de codificación/decodificación ρ

internamente usada en f. No obstante, en muchas ocasiones dicha

función de decodificación no existe como tal, hallándose fuertemente

incrustada dentro la función de adecuación.

√ I es el operador de inicialización, responsable de generar los individuos

que formarán parte de la población inicial. Usualmente, dichos

individuos se generan de manera totalmente aleatoria, aunque es

posible considerar otras alternativas:

� Inicialización Sistemática: la población inicial es generada mediante

un proceso pseudoaleatorio que asegura que todos los posibles

valores de cada gen se hallan presentes en la misma.

Page 34: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

12

� Inicialización Heurística: la población inicial se crea utilizando las

soluciones producidas por un cierto heurístico de construcción.

√ S es el denominado operador de selección. Su misión es determinar

cuáles de los cromosomas presentes en la población pasan a la fase

reproductiva. Dicha selección está guiada por los valores de adecuación

de estos cromosomas, de manera que aquéllos cuya adecuación sea

mayor tendrán una mayor probabilidad de ser seleccionados.

Tradicionalmente pueden considerarse tres mecanismos fundamentales

de realizar esta selección:

• Selección proporcional a la adecuación (fitness-proportionate

selection): Cada componente de la población seleccionada para

reproducirse es escogido de la población actual de manera

independiente. Para ello se realiza una selección aleatoria en la que

el individuo i-ésimo cuya adecuación es fi tiene una probabilidad pi

de ser seleccionado calculada como

. (2)

Idealmente, en una población de N individuos este mecanismo de

selección debería alojar ni = N � pi copias del individuo i-ésimo. La

implementación de este tipo de selección que más se ajusta a este

ideal es el muestreo estocástico universal (Stochastic Universal

Page 35: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

13

Sampling). Este mecanismo de selección tiene, no obstante, ciertos

problemas:

a. Asume que los valores altos de adecuación son mejores que los

más bajos. Si bien esto es cierto desde un punto de vista

semánticamente estricto del término adecuación, en muchas

ocasiones el objetivo es la minimización de una cierta función de

coste. Dicha minimización deberá ser reconvertida en

maximización, lo cual puede realizarse de dos maneras

fundamentales:

1. (3)

2. (4)

En la Expresión 1, F es el máximo valor de la función objetivo

(conocido a priori, estimado, o tomado como el mayor valor de la

población actual).

b. Cuando los valores de adecuación son muy similares entre sí, el

algoritmo de selección no es capaz de discriminar entre las

diferentes soluciones. En efecto, compruébese que la Expresión

(2) puede ser expresada como

f

f

f

ff

f

fn iii

i

∆+=

∆+== 1 (5)

Page 36: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

14

Claramente, si > > ∆ fi, ni ≅ 1 para cualquier individuo. En esta

situación es necesario emplear algún tipo de mecanismo de

escalado, tendente a aumentar la capacidad de discriminación

del algoritmo. Los más comunes son:

• Escalado lineal: se seleccionan dos parámetros a y b,

reajustándose la adecuación como

bfaf ii +⋅=' (6)

Este ajuste puede provocar valores negativos de adecuación,

los cuales deberán ser tratados adecuadamente (por ejemplo.,

convirtiéndolos a cero).

• Truncado sigma: se calcula la desviación estándar σ, de los

valores de adecuación, ajustándose los mismos como

)(' σ⋅−−= cfff ii . (7)

Típicamente, c=1. Al igual que en el caso anterior, pueden

producirse valores negativos de adecuación, los cuales deben

recibir el tratamiento previamente indicado.

Page 37: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

15

• Escalado exponencial: para un determinado parámetro k, la

nueva adecuación se calcula como

( )kii ff =' (8)

Se propone una estimación dinámica de k, de manera que su

valor sea mayor (y por lo tanto más fuerte el escalado) a

medida que evoluciona el algoritmo.

Si bien estos mecanismos descritos pueden solucionar el problema

del escalado, tienen el inconveniente de que la presión selectiva que

ejercen sobre la población varía dinámicamente. Existen, no

obstante, otras soluciones que permiten mantener una presión

constante, como a continuación se verá.

• Selección por Rango: este procedimiento de selección consiste en

construir la población seleccionada atendiendo a la ordenación de

los valores de adecuación en lugar de a sus valores absolutos,

esto es, el mejor individuo es seleccionado con probabilidad p1, el

siguiente con p2, etc. Dichas probabilidades pueden ser

calculadas de muy diversas maneras. La forma más extendida de

hacerlo se denomina ranking lineal:

−−⋅−+= −+−

1

1)(

1

N

i

Npi ηηη (9)

Page 38: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

16

donde η+ + η− = 2. Este mecanismo de selección presenta numerosas

ventajas sobre la selección proporcional, como son la transparencia

al sentido de la optimización (maximización o minimización),

invariancia a traslaciones (y por lo tanto, ausencia de problemas de

escalado) y mantenimiento de una presión selectiva constante a lo

largo de la ejecución del algoritmo.

• Selección por torneo: este mecanismo de selección consiste en tomar

un subgrupo de t individuos de la población actual, copiando el

mejor de éstos a la población seleccionada. Frecuentemente se toma

t=2 (torneo binario). Este algoritmo de selección comparte las

mismas propiedades que la selección mediante Rango.

√ R es el operador de reemplazo. Su misión es formar una nueva

población a partir de la ya existente y de los nuevos individuos creados

durante la fase reproductiva. Al igual que el operador de selección, el

reemplazo puede realizarse de diversas maneras:

• Reemplazo del peor: los nuevos individuos creados

substituyen a los peores individuos de la población actual.

• Reemplazo aleatorio: se seleccionan al azar los individuos que

serán reemplazados.

• Reemplazo por torneo: se selecciona un subgrupo de t

individuos y se substituye al peor de éstos.

Page 39: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

17

• Reemplazo directo: cada pareja de descendientes reemplaza a

sus progenitores.

Una práctica muy habitual consiste en forzar la permanencia de los

k mejores individuos de la población (k-elitismo). De este manera se

asegura que las mejores soluciones encontradas no se pierden (i.e.,

el mejor individuo de la población final es el mejor individuo

generado durante toda la ejecución del algoritmo).

√ X y KX son un operador de cruce y los parámetros del mismo

respectivamente. La misión del operador de cruce es producir nuevas

soluciones a partir de la combinación de porciones de soluciones ya

existentes

Los operadores de cruce más utilizados hasta principios de los 90 se

basaban en linealidad de los cromosomas y, usualmente, en la

ortogonalidad de los mismos. Dichos operadores son los siguientes:

• Cruce de un punto (one-point crossover o single-point crossover):

se selecciona una posición interior de las cadenas y se

intercambian los segmentos de ambas cadenas a la izquierda de

las mismas

• Cruce de n puntos (n-point crossover): este operador constituye

una generalización del anterior en el que se seleccionan n puntos

Page 40: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

18

en el interior de las cadenas y se intercambian los segmentos

entre puntos de corte alternos. Típicamente, n = 2, .

• Cruce uniforme (uniform crossover): este tiene un

funcionamiento similar al del cruce de n puntos con n = λ.

Para ser precisos, se realiza un test aleatorio para decidir de

cuál de los antecesores se toma cada posición de la cadena.

Estos operadores frecuentemente producirán individuos que

representan soluciones inválidas cuando se aplican a problemas con

restricciones. En dicha situación existen diversas posibilidades:

1. Eliminar los individuos inválidos. Esta opción tiene el inconveniente

de desperdiciar el esfuerzo computacional empleado en generar

dichas soluciones.

2. Emplear un mecanismo de reparación para producir soluciones

correctas.

3. Usar una función de penalización que haga que las soluciones

inválidas tengan una adecuación menor que las válidas.

Ninguna de estas opciones es plenamente satisfactoria, siendo la mejor

solución modificar los operadores de cruce para que manipulen

adecuadamente los individuos

√ M y KM son un operador de mutación y los parámetros del mismo

respectivamente. La misión del operador de mutación es producir

Page 41: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

19

nuevas soluciones a partir de la modificación de un cierto número de

posiciones de una solución ya existente.

En las versiones más clásicas del operador, KM indica la proporción de

posiciones de la cadena que sufrirán modificación. Esta modificación se

considera necesaria para introducir nuevo material genético en la

población.

√ τ es el criterio de terminación que determina cuando se debe concluir la

ejecución del algoritmo. Existen numerosas posibilidades en este

aspecto:

• Finalizar la ejecución tras realizar un número máximo de

evaluaciones de la función objetivo.

• Finalizar la ejecución cuando tras un determinado número de

iteraciones no se ha obtenido ninguna mejora global de la

solución.

• Finalizar la ejecución cuando se obtiene una solución cuya

calidad se estima suficiente.

Estos criterios pueden combinarse libremente entre sí, terminándose la

ejecución del algoritmo cuando se cumpla un subconjunto determinado de

las condiciones de parada indicadas.

Page 42: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

20

Debe reseñarse que la elección de los operadores de selección y reemplazo

determina uno de los parámetros fundamentales del algoritmo: el modelo

de evolución. En este sentido pueden considerarse tres opciones:

a. Modelo generacional: en cada iteración del algoritmo se renueva

completamente la población del algoritmo.

b. Modelo de estado estacionario: en cada iteración del algoritmo

únicamente se generan uno o dos individuos nuevos, los cuales son

reinsertados en la población siguiendo el mecanismo de reemplazo

elegido.

c. Modelo gradual: este modelo generaliza los dos anteriores. En cada

iteración se genera un porcentaje g de la población (gap), el cual es

acto seguido reinsertado en la población.

En general, cuanto menor sea el porcentaje de solapamiento, esto es,

cuantos menos individuos se generen en cada iteración, más rápida será la

convergencia del algoritmo. Esto puede ser ventajoso, aunque debe tenerse

en cuenta que puede redundar en una prematura degeneración de la

población.

Page 43: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

21

1.1.5 Qué Ventajas y Desventajas tienen con respecto a otras técnicas de

búsqueda?.

• No necesitan conocimientos específicos sobre el problema que

intentan resolver.

• Operan de forma simultánea con varias soluciones, en vez de

trabajar de forma secuencial como las técnicas tradicionales.

• Cuando se usan para problemas de optimización - maximizar una

función objetivo- resultan menos afectados por los máximos locales

(falsas soluciones) que las técnicas tradicionales.

• Resulta sumamente fácil ejecutarlos en las modernas arquitecturas

masivamente paralelas.

• Usan operadores probabilísticos, en vez de los típicos operadores

determinísticos de las otras técnicas.

• Pueden tardar mucho en converger, o no converger en absoluto,

dependiendo en cierta medida de los parámetros que se utilicen

(tamaño de la población, número de generaciones, etc.).

• Pueden converger prematuramente debido a una serie de problemas

de diversa índole.

• Tolerancia a la información difusa.

Page 44: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

22

1.1.6 Características que distinguen a los AG de otras técnicas de IA.

• Codificación. Trabajan sobre una codificación del conjunto de

parámetros, conocida como cromosoma o individuo.

• Búsqueda múltiple. Realizan la búsqueda sobre una población de

puntos, no un sólo punto.

• Búsqueda ciega. La única información que guía la búsqueda es la

función objetivo, sin usar otro conocimiento auxiliar.

• Estocásticos. Combinan en proporción variable, reglas

probabilísticas y determinísticas.

• Paralelismo implícito. Procesan externamente vectores de código,

al hacer esto se procesan internamente patrones de similitud, que

son muchos más que los vectores considerados.

1.1.7 Algoritmos Genéticos Paralelos. Los Algoritmos Genéticos son

técnicas de optimización y búsqueda basados en principios biológicos.

Para aumentar su velocidad de ejecución se han desarrollado Algoritmos

Genéticos en arquitecturas paralelas, que, como beneficio adicional, han

mejorado también la calidad de sus soluciones.

Page 45: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

23

A pesar de que los AGs son eficientes, las funciones de evaluación de

algunos problemas complejos requieren un tiempo de procesamiento

considerable. En estos casos el AG necesita grandes cantidades de tiempo

de procesamiento para alcanzar una solución satisfactoria. Por esta razón

se han desarrollado AGs en computadoras con arquitecturas paralelas que

permiten reducir el tiempo de respuesta de los AGs. Uno de los fenómenos

más importantes que se observan al utilizar AGPs es que no sólo reducen

el tiempo de procesamiento, sino que en muchas ocasiones entregan

mejores resultados que los AGs seriales [4, 5, 6]. Este hecho, aunado a la

creciente disponibilidad de computadoras paralelas, ha provocado que el

número de personas interesadas en los AGPs haya aumentado

significativamente en los últimos años.

1.1.7.1 Clasificación de los AGPs. Se pueden distinguir cuatro niveles de

paralelismo entre los distintos modelos de AGPs que existen. Estos niveles

establecen de alguna manera la complejidad de los algoritmos y su

capacidad de explotar eficientemente los recursos de diferentes

arquitecturas paralelas.

Los primeros dos niveles de paralelismo procesan la población de la misma

manera que un AG serial pero obtienen resultados en un menor tiempo. El

primer nivel se encuentra al ejecutar un AG serial en una computadora

Page 46: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

24

paralela. A pesar de que es muy probable que el compilador paralelice

algún cómputo, no se hace ningún intento por utilizar explícitamente la

arquitectura de la computadora. En el segundo nivel de paralelismo, el AG

utiliza explícitamente varios procesadores para evaluar simultáneamente

diferentes individuos de la población. Esta paralelización es más efectiva

que la anterior ya que en todos los problemas, salvo en los más simples, la

evaluación de los individuos consume la mayor parte del tiempo de

procesamiento de un AG.

El tercer nivel de paralelismo se explota en los AGPs de grano burdo, que

constituyen una forma muy natural y sencilla de paralelizar a un AG. La

población se divide en subpoblaciones, se ejecuta un AG serial en cada

subpoblación y se comunican periódicamente a los mejores individuos

entre las subpoblaciones. A este modelo también se le conoce como

Algoritmo Genético Distribuido, resaltando el hecho de que normalmente

se implanta en máquinas MIMD (Multiple Instruction stream, Multiple

Data stream) con memoria distribuida. Otros lo llaman modelo de isla

porque las subpoblaciones se encuentran aisladas de las demás salvo por

alguna comunicación más o menos frecuente de individuos.

El cuarto y último nivel de paralelismo se encuentra en los AGPs de grano

fino, que explotan eficientemente arquitecturas masivamente paralelas. En

Page 47: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

25

los AGPs de grano fino el tamaño de las subpoblaciones es más pequeño y

la comunicación entre los procesadores es mucho más frecuente que en

los AGPs de grano burdo. Normalmente se utiliza un individuo por

procesador, aunque dependiendo del número de procesadores disponibles

se pueden colocar varios individuos en el mismo procesador. Para cada

procesador se define un vecindario, que es un conjunto reducido de

procesadores, y la selección y el apareamiento se limitan al vecindario de

cada procesador. Es importante notar que los vecindarios pueden

traslaparse, por lo que existe intercambio de información entre ellos. El

vecindario de un procesador se define como el conjunto de procesadores

con los que se puede comunicar directamente. A este modelo también se le

conoce algunas veces como AG celular.

Actualmente existe una gran discusión entre cuál de los últimos dos

modelos es mejor. Se han hecho y reportado resultados de experimentos,

algunos favoreciendo a los AGPs de grano burdo y otros a los de grano

fino.

1.1.7.1.1 AGPs de Grano Burdo. La diferencia esencial con el AG básico

es el intercambio de migrantes entre las subpoblaciones. Los migrantes

que recibe cada proceso se incorporan inmediatamente a su población y

son tratados por el mecanismo de selección de la misma forma que los

Page 48: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

26

individuos locales. La selección asegura que el tamaño de cada

subpoblación sea constante en

cada generación.

Generar la población inicial

Evaluar a la población

Mientras los criterios de terminación no se cumplan

{ Seleccionar a los individuos más aptos

Aplicarles los operadores de cruce y mutación

Enviar migrantes si es necesario

Recibir migrantes si es necesario

Evaluar a los nuevos individuos

}

En los AGPs de grano burdo ocurren algunos fenómenos similares a los

que ocurren en la naturaleza cuando se tienen varias subpoblaciones

relativamente separadas entre sí. Estos fenómenos son la formación de

especies, la interrupción del equilibrio y la migración.

1.1.7.1.1.1 Formación de especies. Dado que las diversas subpoblaciones

del AGP se inicializan de manera distinta, cada una puede evolucionar

hacia distintas regiones del espacio de búsqueda del problema que se está

resolviendo y converger hacia óptimos locales. Puede considerarse

entonces que las subpoblaciones forman especies distintas.

Page 49: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

27

La pregunta relevante ahora es: ¿Qué consecuencias tiene la aparición de

especies para el algoritmo? Si utilizamos un AG serial para maximizar una

función, es predecible que los individuos de la población, después de un

número suficiente de generaciones, converjan en uno solo de los máximos.

Esto se debe a errores de muestreo causados por poblaciones pequeñas.

Si no hay formación de especies los individuos convergen a sólo uno de los

máximos.

Si en cambio, utilizamos AGPs para propiciar la aparición de especies, es

posible esperar que al final de la ejecución existan individuos de la

población que representen a los máximos. Cada máximo equivale a un

nicho en el medio ambiente. Los máximos tienen el mismo valor y no existe

un criterio para preferir a alguno.

En otros problemas, la formación de especies es favorable para el AGP ya

que mantiene cierta diversidad en la población que puede contribuir a

encontrar la solución global

. 1.1.7.1.1.2 Interrupción del equilibrio. Los AGs convergen rápidamente

hacia una solución en las primeras generaciones. Cuando se encuentran

en la región cercana a la solución empiezan a refinar su población

acercándose lentamente a un óptimo. En esta etapa en que los cambios

Page 50: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

28

son muy pequeños se dice que la población está en equilibrio. La población

de un AG alcanza rápidamente el equilibrio.

Las poblaciones pueden quedarse en equilibrio durante mucho tiempo

hasta que ocurra algo que favorezca a individuos distintos. Si los

individuos están bien adaptados a su medio no existe una razón para

cambiar, no se exploran variaciones y eventualmente se pierde diversidad

en la población. La aparición de cambios evolutivos se incrementa cuando

ocurre algún fenómeno en la población que tienda a contrarrestar una

estabilidad excesiva.

Uno de estos fenómenos es la migración. Si una especie migra a una zona

en donde existe otra especie similar existirá competencia entre ambas. La

presión de la selección se incrementa y el equilibrio en que se encontraba

la población que recibe a los migrantes se interrumpe. La selección

favorece nuevos cambios que mejoran la supervivencia. Se incrementa la

diversidad y se explora mejor el espacio de búsqueda, reduciendo la

posibilidad de caer en un óptimo local.

Page 51: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

29

1.1.7.1.1.3 Migración. El intercambio de individuos entre subpoblaciones

se conoce como migración. Al utilizar migración en un AGP surgen cuatro

cuestiones fundamentales:

1. ¿Con qué frecuencia migran individuos de una población a otra?

2. ¿Cuántos individuos migran cada vez?

3. ¿Hacia dónde migran?

4. ¿Qué individuos migran?

A cada una de estas preguntas corresponde un parámetro para el AGP. La

primera pregunta se resuelve introduciendo el intervalo de migración, que

se define como el número de generaciones que ocurren entre migraciones.

La tasa de migración es la respuesta de la segunda pregunta y define la

proporción de la población que migra en un momento dado.

Al recibir individuos de otras subpoblaciones (migrantes) se introduce

diversidad y se incrementa la presión de la selección (se aumenta la

competencia por sobrevivir) en cada subpoblación. Esto es muy útil para

evitar convergencias prematuras a óptimos locales. Sin embargo, si la

subpoblación ha llegado a un estado de equilibrio, la introducción de

nuevo material puede no ser efectiva porque es posible que cada

subpoblación haya encontrado un nicho adecuado y se hayan formado

Page 52: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

30

especies distintas. Igual que en la naturaleza, el cruce de individuos de

especies distintas generalmente no da buenos resultados.

La tercera pregunta, ¿hacia dónde migran los individuos? define la

topología de comunicación entre las subpoblaciones. A pesar de que se

han hecho estudios comparando algunas topologías, hasta ahora no hay

resultados concluyentes que demuestren que una topología sea mejor que

otras en una amplia variedad de problemas.

La cuarta pregunta se refiere al criterio de selección de los migrantes. Es

bastante razonable pensar que en una población natural los individuos

que migran son generalmente los más fuertes, pues migrar implica

recorrer cierta distancia a través de obstáculos. Para continuar imitando

los procesos naturales, en un AGP normalmente los mejores individuos de

una subpoblación son los que se seleccionan para migrar y se envían

copias de ellos a otras subpoblaciones según la topología de comunicación.

Sin embargo, existen otras posibilidades de migración, por ejemplo los

migrantes podrían ser seleccionados aleatoriamente y se podría eliminar a

los migrantes de su subpoblación original.

Page 53: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

31

1.1.7.1.1.4 Aplicaciones. Los AGPs se pueden utilizar para resolver todos

los problemas que se resuelven con AGs seriales e intentar mejorar el

tiempo de respuesta y la calidad de los resultados. Específicamente los

AGPs han sido utilizados con éxito para resolver problemas de preparación

de horarios de clases y de trenes, y de asignación de procesos a

procesadores en una computadora paralela con memoria distribuida. Las

ventajas de los AGPs se hacen más evidentes mientras más compleja sea

la función de evaluación del problema que se desea resolver y mientras

mayor sea el espacio de búsqueda que debe explorarse.

1.2 HILOS DE EJECUCIÓN

En Windows 95, como en Windows NT, cada programa de 32 bits que se

ejecuta se llama proceso. Un proceso tiene que ver principalmente con

aspectos de pertenencia. Por ejemplo, un proceso posee su espacio en

memoria. Por lo que le concierne a la ejecución de código, el sistema

operativo utiliza un nuevo objeto llamado hilos de ejecución (Thread).

Cuando se inicia un nuevo proceso, automáticamente se le asigna un hilo

que comienza a ejecutar código en la rutina apropiada. El sistema

operativo usa los hilos para programar el tiempo del procesador. ¿Qué

significa esto? Se trata de un método que se emplea para asignar tiempo a

Page 54: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

32

cada hilo (no decimos simplemente proceso porque un proceso puede tener

más de un hilo). El sistema operativo observa todos los hilos que hay en

estado ejecutable y elige uno para ejecutar. Esta asignación de tiempo

determina también la porción o cantidad tiempo que da a cada hilo de

ejecución.

En cualquier momento puede haber más de un hilo ejecutándose. ¿Cuáles

son las propiedades de cada uno? Cada hilo tiene su propia pila de

variables locales y una copia del estado en que se encuentra. Todos los

hilos en un proceso pueden tener acceso a cualquier objeto de memoria

global; por ello, un programa procesador de textos, mientras que el hilo

principal realiza todas las demás tareas.

1.3 PROGRAMACIÓN ORIENTADA A OBJETOS Hoy en día, la mayoría de los programadores han oído el término POO. La

programación orientada a objetos en el método más reciente y actual de

desarrollo de software que existe. Como su nombre implica, la

programación orientada a objetos se basa fuertemente en el concepto de

objeto.

Page 55: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

33

1.3.1 Objeto =codigo + datos. Un objeto es una representación en

computadora de alguna cosa o evento del mundo real. Un aeroplano se

puede describir en términos físicos: el número de pasajeros que puede

albergar, el empuje que genera, su coeficiente de resistencia al avance, etc.

Alternativamente, un aeroplano se pude describir en términos funcionales:

despega, asciende y desciende, gira y aterriza, etc. Ni la descripción física

ni la funcional por separado captan la esencia de lo que es un aeroplano –

son necesarias ambas descripciones.

La figura 1 muestra cómo una computadora podría representar un auto.

Por ejemplo, si se trata de un Ferrari F40, la computadora podría guardar

el nombre del modelo, el número del chasis del vehículo (SC717480) y el

tipo de motor(8 cilindros). Los objetos pueden tener tanto propiedades o

atributos (tales como modelo, número del chasis y tipo de motor) como

métodos o comportamientos (tales como “encender luz” y “apagar luz”).

Propiedades y métodos se combinan entonces para formar un objetos.

Figura 1. Propiedades de un objeto de la clase automóviles

Page 56: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

34

Al igual que el auto, los objetos hacen que los programas sean un reflejo

más fiel de la forma en que tratamos con el mundo real.

1.3.2 Clases. Una clase es una categoría de objetos similares. Los objetos

se agrupan clases. La figura 2 muestra cómo un grupo de objetos que

representan automóviles podrían estar formados en una clase llamada

“Automóviles”. Una clase define el conjunto de propiedades y

comportamientos compartidos que se encuentran en cada objeto de la

clase. Por ejemplo, todo automóvil tendrá atributos para

fabricante/modelo, número de chasis y motor. Cuando se ejecuta el

programa se pueden crear objetos a partir de las clases establecidas, a

estos se les denomina instancias, en el ejemplo el Ferrari F 40 es una

instancia de la clase Automóviles.

Figura 2. Los atributos compartidos de los objetos se agrupan en la clase.

Page 57: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

35

1.3.3 Mensajes. Se puede enviar información de un objeto a otro. En la

figura 3 un objeto (María) de la clase “Operador” está enviando una orden

o mensaje a un objeto (Ferrari) de la clase “Automóviles”. El mensaje es

“arrancar motor”. Estos mensajes no son de forma libre en ningún sentido,

ya que en vez de eso las clases de Operador y Automóviles han sido

programadas cuidadosamente para enviar y recibir un mensaje de

“Arrancar motor”. La clase Operador ha sido programada para transmitir

un mensaje arrancar motor bajo determinadas circunstancias. La clase

Automóviles ha sido programada para reaccionar al mensaje “arrancar

motor” en alguna forma.

Figura 3. Intercambio de información entre dos objetos.

Page 58: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

36

1.3.4 Encapsulación. Uno de los elementos primordiales de la POO es la

encapsulación, la creación de objetos que funcionan como entidades

completas. Una de la reglas de la encapsulación es que el programador

nunca necesita acceder directamente a los campos de datos de un objeto.

En vez de esto, se deben definir métodos dentro del objeto que gobiernen

toda la manipulación de datos.

Típicamente, la información acerca de un objeto está encapsulada por su

comportamiento. Esto significa que un objeto mantiene datos acerca de

cosas del mundo real a las que representa en un sentido verdadero.

Figura 4. Mensaje de un objeto produce que otro objeto de una clase diferente cambie un atributo.

Page 59: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

37

Típicamente, a un objeto se le debe “pedir o decir” que cambie sus propios

datos con un mensaje, en vez de esperar tales datos de procesos externos

cambien la naturaleza de un objeto. En la figura 4 el objeto Pedro (Clase

Mecánico) envía un mensaje Quitar motor al objeto Ferrari (Clase

Automóviles). La clase Automóviles reacciona a este mensaje con un

comportamiento (también llamado “Método” o Procedimiento”) que cambia

el atributo de motor a Ninguno. Este método es llamado Quitar motor.

Vemos que l objeto Jeep reacciona al mensaje cambiando uno de lo a

atributos a Ninguno.

Puede parecer trivial el que un atributo de un objeto sea cambiado

alterando directamente sus datos o enviando un mensaje al objeto para

que active el comportamiento interno que cambia ese dato. Pero esta

diferencia es una características extremadamente importante de los

programas O-O.

Los datos encapsulados pueden ser protegidos en forma tal que solamente

el objeto mismo puede hacer tales cambios por medio de su propio

comportamiento. Esta construcción facilita la construcción de objetos que

son muy confiable y consistentes, debido a que ellos tienen control

completo sobre sus propios atributos. También hace que sea mucho más

fácil en el mantenimiento y cambio de programas. Por ejemplo, la clase

Page 60: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

38

Mecánico está aislada completamente de los detalles internos de la clase

Automóviles. La clase Automóviles puede ser reprogramada totalmente sin

cambiar nada de la clase Mecánica, siempre y cuando la clase Automóviles

continúe recibiendo adecuadamente el mensaje Quitar motor. Este

aislamiento hace que sea mucho más fácil cambiar una parte del

programa sin causar problemas en cascada a otras partes del programa.

1.3.5 Herencia. La Herencia es una de las características más poderosas

de la POO, mediante esta las clases pueden tener hijos, esto es una clase

puede ser creada a partir de otra clase. La clase original, o madre, es

llamada “clase base”. La clase hija es llamada “clase derivada”. Una clase

derivada puede ser creada de forma tal que herede todos las propiedades y

comportamientos de la clase base. En la figura 5. Se crea una clase

derivada (Camión) en forma tal que hereda todos las propiedades y

Figura 5. Herencia de propiedades de una clase madre por una clase hija.

Page 61: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

39

comportamientos de la clase base Automóviles. Una clase derivada puede

tener también propiedades y comportamientos adicionales. Por ejemplo, la

clase Camión no solo tiene propiedades para fabricante/modelo, Nº de

Chasis y motor, sino también tiene atributos para carga, remolques y

refrigeración. Los objetos automóviles no tienen estos nuevos atributos. La

herencia reduce la labor de programación reutilizando fácilmente objetos

antiguos; sólo se necesita declarar que la clase Camión hereda de la clase

Automóviles, y luego proporcionar cualquier detalle adicional acerca de las

nuevas propiedades o comportamientos (mostrados en cuadro de línea

continua de la figura). Todos los atributos y comportamientos antiguos de

la clase Automóviles son parte automática e implícita de la parte camión

(se muestra en el cuadro de línea de guiones) y no requiere ninguna nueva

programación.

Algunos lenguajes de programación O-O proporcionan herencia múltiple.

En estos casos especiales se puede crear una clase derivada en forma tal

que herede todos las propiedades y comportamientos de más de una clase

base. Por ejemplo, si hubiera una clase llamada Automóviles y una clase

llamada bicicleta, podríamos crear una clase llamada Motocicletas que

herede parte de sus propiedades y comportamientos de Automóviles y

parte de sus propiedades y comportamientos de Bicicletas.

Page 62: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

40

1.3.6 Polimorfismo. El término polimorfismo se refiere a comportamientos

alternos entre clases derivadas relacionadas. Cuando varias clases

heredan atributos y comportamientos, puede haber casos donde el

comportamiento de una clase derivada deba ser diferente de su clase base

o de sus clases derivadas parientes.. Esto significa que un mensaje puede

tener diferentes efectos, dependiendo de exactamente que clase de objeto

recibe el mensaje. El método arrancar tiene un procedimiento y unos

efectos distintos entre los clases Bicicletas y Motocicletas aún cuando una

se deriva de la otra.

Page 63: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

41

2 ASIGNACIÓN DE RECURSO HUMANO EN EL HOSPITAL UNIVERSITARIO DE

CARTAGENA

El proceso de asignación del recurso humano de la Empresa Social del

Estado Hospital Universitario de Cartagena - HUC, se realiza de forma

manual; éste es realizado por los jefes de departamento. La asignación

comprende una programación de horarios que cubre un mes de trabajo

para cada empleado.

Los parámetros y criterios utilizados en el proceso de asignación, varían de

acuerdo a la sección o departamento, dado que cada uno tiene políticas

distintas para asignar horarios a sus funcionarios. Estas se originan en

pactos administrativos o logros de los empleados en convenciones. Además

la ley laboral presenta unas normas que regulan la intensidad horaria

obligatoria para cargos o funciones especiales que deba desempeñar un

trabajador, ejemplo de esto, son las personas que laboran en los

departamentos que están expuestos a enfermedades infectocontagiosas,

recepción de agentes radiactivos y alto riesgo de accidente.

Page 64: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

42

Por lo anterior, el horario para un trabajador de la institución varía

dependiendo del departamento o sección para la cual se desee asignar

recursos.

El número de personas asignadas a una sección lo determina los

indicadores de gestión y datos históricos de demanda de personal, para

determinadas áreas. La cantidad de empleados asignados por turnos varía

de acuerdo al turno, el turno nocturno requiere menos demanda de

personal para algunas secciones que el turno de Mañana o tarde. Otro

factor influyente en la determinación del número de empleados a asignar

es la demanda creada por agentes incontrolables o impredecibles como

pueden ser enfermedades virales, catástrofes, Festividades en la Ciudad, o

cualquier otro factor que demande personal. Aunque estos factores no

afecten a todas las secciones de la institución.

La estructura jerárquica de la institución (véase anexo A), está distribuida

por departamentos o centros de costo, los cuales pueden tener

subdivisiones llamadas Secciones. No todos los departamentos presentan

secciones, dado que algunos tienen poco personal a su disposición. El

departamento con mayor volumen de empleados es enfermería, éste a su

vez tiene varias secciones con volumen de personal distinto.

Page 65: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

43

2.1 CLASIFICACIÓN DE TURNOS El proceso de asignación comprende tres turnos:

• Turno Mañana

Este turno comprende el horario comprendido entre las 07 horas a las

13 horas ( 7 AM – 1 PM). Tiene una duración de seis horas.

• Turno Tarde

Este turno comprende el horario comprendido entre las 13 horas a las

19 horas ( 1 PM – 7 PM). Tiene una duración de seis horas.

• Turno nocturno

Este turno comprende el horario comprendido entre las 19 horas a las

07 horas del día siguiente ( 7 PM – 7 AM). Tiene una duración de doce

horas.

2.1.1 Nomenclatura de la Asignación. La siguiente es la nomenclatura

empleada por los jefes de departamento para generar las planillas de

turnos (asignación) de un mes de trabajo:

• M: Mañana

• T: tarde

• N: nocturno

Page 66: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

44

• L: Libre (descanso)

• Lc: Libre compensatorio

• Lp: Libre pendiente

• Ag: Area general

• Vacaciones (se extiende en los días de la planilla)

• Vacaciones de Riesgo (se extiende en los días de la planilla)

2.2 PROCESO DE ASIGNACIÓN

La programación de turnos de trabajo para las distintas secciones y cargos

que existen en la institución se realiza mensualmente, el funcionario

encargado de realizar la asignación se basa en la planilla de asignación del

mes anterior, verifica los empleados que entran a vacaciones para el

período a asignar y saber hasta que día puede ser programado para

laborar.

Para la asignación de una semana se recomienda que un empleado labore

4 días en turnos de día y dos de noche (4/2) por semana.

2.2.1 Tiempo Laboral. La jornada laboral para un empleado del Hospital

Universitario, depende de la clasificación de la sección en la cual éste se

encuentre laborando; las secciones que presentan riesgos tienen un

Page 67: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

45

horario menor que aquellas secciones que no presentan riesgo. La carga

laboral es la siguiente:

♦ Secciones con riesgos de infección laboran 36 horas a la semana.

♦ Secciones sin riesgos de infección o accidente laboran 40 horas a la

semana.

♦ Secciones con riesgos de accidente laboran 36 horas a la semana.

♦ Secciones administrativas laboran 40 horas a la semana, el horario

para estas es de 8 AM a 5 PM en jornada continua.

2.2.2 Algoritmo. Revisar las planillas de asignación del mes anterior.

Verificar los empleados que entran a vacaciones normales o vacaciones por

riesgo, señalando la fecha de inicio. Esto con el objeto de no tenerlos en

cuenta para la asignación

Revisar la demanda de ocupación o requerimiento de personal para cada

sección o departamento. Para determinar la demanda, los jefes de

departamento recurren a los manuales de indicadores de gestión y a datos

históricos, más experiencias y conocimientos de los jefes.

Asignar los turnos, es decir, determinar el horario que debe laborar un

empleado durante un mes. Este proceso es iterativo hasta cubrir todos los

Page 68: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

46

empleados de la sección. Las variables a tener en cuenta en este proceso

son las siguientes.

♦ Ultimo turno del mes anterior que le correspondió al empleado a

asignar.

♦ Sí tiene días libres o libres compensatorios pendientes del mes anterior.

♦ Si recibirá vacaciones en el período a asignar, y a partir de que fecha.

♦ Tener en cuenta la clasificación de la sección (sí es de riesgo).

♦ Es recomendable que el empleado labore máximo dos turnos de noche

por semana y cuatro entre los turnos mañana y tarde.

♦ El número de días del período, es igual a los días calendario que tenga

el mes a programar.

♦ Revisión y publicación de la planilla de asignación (véase anexo B).

Page 69: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

47

2.3 PLAN DE CARGOS

La disposición de personal para cada una de las secciones, es determinada

por el departamento de recursos humanos; empleando como patrón el plan

de cargos vigente a la fecha. Este es diseñado y aprobado por funcionarios

del ministerio de salud pública.

En el plan de cargo se describen los cargos requeridos por sección, el

número de cargos, el sueldo mensual, horas a laborar, nombre y código del

cargo. (Véase anexo A).

2.4 DETERMINACIÓN DEL ESPACIO MUESTRAL

El espacio muestral está conformado por todas las asignaciones posibles,

estas reciben el nombre de puntos o elementos muestrales. Según las

determinaciones expuestas en la sección 2.2, los empleados nunca

trabajan más de un turno por día. Si E representa el número de empleados

disponibles para asignar, R el número de requisiciones que se necesitan

para la asignación, como por ejemplo 2 camilleros por turno en la sección

de Urgencia del departamento de enfermería, y T los turno por día, el

número de Días Posible (Dp), es decir todos los posibles valores que puede

Page 70: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

48

tomar la asignación de un día dados los parámetros expuestos, es la

combinación de E empleados tomando RT :

!)(*)!(

!

RTERT

E

RT

EDP −

=

=

Dado que el alcance de este proyecto se limita al análisis de los turnos de

atención continua (24 horas), el valor de T se torna constante e igual a tres

(3). Por tanto la determinación de los Días Posibles se cambia a:

!)3(*)!3(

!

3 TET

E

T

EDP −

=

=

Teniendo el número de días posibles, podemos encontrar los periodos

posibles PP, es decir todos las posibles maneras en que se presenta un

periodo conformados por un número de D de días. Este valor representa el

número de puntos del espacio muestral, y se halla aplicando una variación

pues una asignación válida puede tener uno a más días con la misma

asignación diaria:

DPP DP )(=

Page 71: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

49

El uso de la variación permite la existencia en el espacio de puntos

(asignaciones) que tienen una misma asignación diaria de manera

consecutiva, lo que sería una situación extrema en caso de escasez de

personal.

El número de puntos muestrales para asignar 10 empleados a dos

requisiciones por tres turnos al día, durante 31 días es de 6.117 × 1073.

Siendo esta una asignación pequeña, el resultado nos da una idea de lo

vasto del espacio muestral a explorar.

Page 72: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

50

3 SISTEMA DE ELABORACIÓN DE HORARIOS EN EL HUC

3.1 REQUERIMIENTOS DEL SISTEMA El análisis del sistema de asignación de recursos humanos empleado por

el H.U.C. en la actualidad, señala que el desarrollo manual, como lo

describe el capítulo anterior, es el principal obstáculo. A continuación se

presenta el diseño de un nuevo sistema que contempla las exigencias de la

institución para asignar los turnos de trabajo a sus empleados. Este solo

contempla la asignación de personal para secciones y/o departamentos

que laboran de manera ininterrumpida.

3.1.1 Descripción del sistema. La necesidad de contar con una

herramienta de apoyo para la asignación de personal llevada a cabo por los

Jefes de Departamento, motiva a la elaboración de un nuevo sistema que

disminuya la carga laboral de los mencionados Jefes de Departamento.

3.1.1.1 Sistema de administración y control de recursos humanos. El

departamento de recursos humanos del Hospital Universitario de

Page 73: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

51

Cartagena (H.U.C.) cumple dos procesos básicos: Administración del

Recurso Humano y Control - Liquidación de Nómina.

3.1.1.1.1 Administración del Recurso Humano. En este proceso se

recolecta y manipula la información correspondiente a los empleados de la

Institución desde el momento de la requisición de un empleado. A cada

empleado activo se le lleva un registro (carpeta) donde se consignan sus

datos personales, historia laboral, copias de certificados emitidos y control

de novedades (memos, resoluciones, incapacidades, vacaciones, etc.); los

registros de los empleados que dejan de laborar se les ubica en un archivo

llamado inactivos. Las hojas de vida recibidas de personas no contratadas

inmediatamente, son guardadas en un archivo llamado “empleados

potenciales”. Además se realiza la contratación y asignación del empleado

al departamento donde fue solicitado, se envían informes, reportes y

documentos periódicos de carácter administrativo y de control a las

directivas, otros departamentos y entidades que los soliciten. Todas las

gestiones administrativas (contratación, incapacidades, vacaciones,

certificados) son basadas en la información consignada en el archivo de

hoja de vida de empleados potenciales, en el archivo de empleados activos

o en el archivo de empleados inactivos.

Page 74: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

52

3.1.1.1.2 Control y Liquidación de Nómina. Este proceso se encarga de

realizar la liquidación mensual del salario de los empleados y realizar los

controles necesarios para la alimentación del sistema (aplicación de

nómina hecha en Cobol) y la verificación de los datos emitidos por el

mismo.

Todos los empleados devengan un sueldo básico más ingresos adicionales

que resultan de recargos, horas extras, subsidios, auxilios y prestaciones

sociales; se hacen deducciones por conceptos como préstamos, sindicato,

cooperativas, embargos y otros.

3.1.1.2 Delimitación del sistema. El sistema de información para la

administración de recursos humanos contempla varios procesos, además

de los antes mencionados como elaboración de certificados, banco de hojas

de vidas y seguimiento de novedades del personal. El objeto del proyecto

de asignación de recursos humanos, sólo se limitará a resolver el problema

de la programación de turnos de laborales, pretende ofrecer a las directivas

del H.U.C, una herramienta de apoyo en la obtención de la programación

de turnos en tiempos mínimos, además de la posibilidad de aplicar

políticas de control de costos. Al final esta información servirá como

programación tentativa y el usuario decidirá que aspectos de la asignación

se deben corregir.

Page 75: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

53

3.1.1.3 Frecuencia. El proceso de asignación de turnos de trabajo se

realiza mensualmente; empieza los últimos diez días de cada mes, para

poder presentar la asignación del mes siguiente a partir del día veintiocho,

así los empleados reciben la información de su cronograma de trabajo para

el mes venidero antes de la culminación del actual.

3.1.1.4 Personal encargado. Como se mencionó, las personas encargadas

de realizar la asignación de los empleados, son los jefes de cada sección;

que a la vez controlan el cumplimiento del cronograma de trabajo de cada

empleado y reportan las novedades al departamento de Recursos

Humanos.

3.1.1.5 Restricciones. Las siguientes son limitaciones a tener en cuenta

en las asignación elaborada por el sistema, para alcanzar una solución

factible, cuando se pretende asignar turnos de trabajo para una sección

del H.U.C.

• Abarcar el último turno que asignado en el mes anterior.

• Clasificar los empleados que recibirán vacaciones y descansos

acumulados.

• Establecer el número de horas a laborar por semana, dependiendo

para la sección que se asignen turnos.

Page 76: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

54

• Cada empleado debe laborar máximo dos turnos de noche por

semana y cuatro entre los turnos mañana y tarde.

3.2 DISEÑO DE ENTRADA DE DATOS

Los datos empleados para realizar asignación de turnos, los podemos

clasificar como datos variables ó suministrados por el usuario, datos de

identificación o almacenados en el sistema y datos invariables o

constantes.

3.2.1 Datos variables ó suministrados por el usuario. Digitados o

recuperados de una previa entrada de datos, normalmente manual se

consideran:

Personas a asignar: Selección de personas que entran al sistema para ser

asignadas.

Personas por turno diurno: Número de personas necesarias por cargo

durante un turno diurno.

Personas por turno nocturno: Número de personas necesarias por cargo

durante un turno nocturno.

Horas semanales: Horas que se laboran durante una semana.

Fecha: Fecha de inicio de la asignación.

Page 77: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

55

Días a laborar: Días que se laboran en el período.

Festivos: Días que se clasifican como festivos o de descanso.

3.2.2 Datos de identificación o almacenados en el sistema. Los datos de

identificación, corresponden a la información residente en la base de datos

del departamento de recursos humanos, que necesitan los jefes de

departamento para seleccionar las personas que deben laborar.

Identificador del empleado: Código interno del empleado.

Nombre y apellido: Datos del empleado.

3.2.3 Datos invariables o constantes. Es información que normalmente no

cambia pues están sujetas a normatividades que perduran en el tiempo

por un espacio prolongado.

Turnos: Número de divisiones de un día laboral establecidos en 3

jornadas: mañana, tarde y noche. (solo se consideran los departamentos

de que laboran en jornada continua).

Recargos por horas nocturnas y/o festivos: Coeficientes del número de

horas laboradas en un día festivo o domingo y en las horas nocturnas.

Page 78: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

56

3.3 DISEÑO DE SALIDA DE DATOS

Las salidas de datos despliegan la información generada, durante el

proceso de asignación de empleados de una sección y/o departamento. Los

datos de salida del sistema, se clasifican en salidas por pantalla y salidas

impresas.

3.3.1 Salidas por pantalla. La información del resultado del proceso de

asignación contempla los siguientes datos:

Nombre de la sección: Descripción del departamento o sección a la que

corresponde la asignación.

Período: Mes y año correspondientes al período a laborar.

Datos de empleados: Nombre y apellidos de los empleados que laborarán

durante el período.

Matriz de turnos: Cuadro que describe el empleado, día y turno asignado

por empleado.

3.3.2 Salidas por Impresora. Estos datos son requeridos por los

trabajadores de la institución que laboran por turnos, éstos se clasifican

como usuarios finales indirectos.

El usuario del sistema utiliza la impresora para desplegar los resultados

de la asignación, en el reporte se presentan los siguientes datos.

Page 79: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

57

Nombre de la sección: Descripción del departamento o sección a la que

corresponde la asignación.

Fecha: Fecha correspondiente al período laboral

Nombre del Empleado: Nombre y apellido del empleado

Cronograma de trabajo: descripción del horario de trabajo, para cada

empleado.

3.3.3 Salidas a archivos. La información resultante del proceso de

asignación, se almacena en un archivo plano, que contiene la siguiente

información:

Nombre de la sección: Descripción del departamento o sección a la que

corresponde la asignación.

Fecha: Fecha correspondiente al período laboral

Nombre del Empleado: Nombre y apellido del empleado

Horario de trabajo: descripción de los turnos en que el empleado laborará

en el periodo asignado.

Page 80: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

58

3.4 DIAGRAMA DE JERARQUÍA DE PROCESOS A continuación se describen los diagramas de flujo de datos, que ilustran

sobre el comportamiento de los datos a través de los procesos que se

realizan en la asignación de recursos

Figura 6. Diagrama de jerarquía de procesos

Page 81: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

59

Figura 7.Diagramas de flujo de datos – proceso asignación

Page 82: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

60

Figura 8. Diagrama de flujo de datos opción selección de personas.

Page 83: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

61

3.5 DICCIONARIO DE DATOS.

3.5.1 Definición de flujos de datos. A continuación se detallan los

elementos que conforman los de flujos de datos.

Nombre del flujo de datos Decide elaborar una asignación Descripción

Representa la determinación del usuario, por elaborar una asignación.

Fuente Usuario que realiza la asignación. Para los procesos Asignación Nombre del flujo de datos Opción selección de personas. Descripción Representa la determinación del usuario,

por seleccionar personas. De los proceso Asignación. Para los procesos Selección de personas Nombre del flujo de datos Opción configuración de parámetros Descripción

Representa la determinación del usuario, por configurar los parámetros necesarios para la asignación.

De los procesos Asignación. Para los procesos Parámetros. Nombre del flujo de datos Opción definir el período. Descripción Representa la determinación del usuario,

por establecer el período laboral. De los procesos Asignación. Para los procesos Definir período. Nombre del flujo de datos Parámetros para la asignación Descripción El usuario alimenta el sistema con datos

necesarios para asignación Fuente Usuario que realiza la asignación. Para los procesos Parámetros Estructuras de datos No de horas a laborar por semana, No de

turnos diurnos, No de turnos nocturnos, No de personas por sección.

Page 84: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

62

Nombre del flujo de datos Datos constantes de parámetros. Descripción Información de los parámetros, que se

almacena. De lo procesos Parámetros. Para el almacén Estructura para el almacenamiento de

parámetros. Estructuras de datos No de horas a laborar por semana, No de

turnos diurnos, No de turnos nocturnos, No de personas por sección.

Nombre del flujo de datos Días a laborar y festivos. Descripción El usuario selecciona el período a laborar,

incluyendo los días no laborales que comprenda el período.

Fuente Usuario que realiza la asignación. Para los procesos Definir período Estructuras de datos Fecha inicial y final del período, días festivos. Nombre del flujo de datos Período a laborar. Descripción Información de los días a laborar y los no

laborales. De lo procesos Definir período. Para el almacén Estructura para el almacenamiento del

período. Estructuras de datos Fecha inicial y final del período, días no

laborales. Nombre del flujo de datos Opción abrir selección. Descripción Representa la determinación del usuario, por

abrir una selección del período inmediatamente anterior.

Fuente Usuario que realiza la asignación. Para los procesos Abrir selección existente.

Nombre del flujo de datos Opción nueva selección. Descripción Representa la determinación del usuario, por

crear una selección. Fuente Usuario que realiza la asignación. Para los procesos Nueva selección.

Page 85: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

63

Nombre del flujo de datos Selección a usar. Descripción El usuario escoge la selección del período

anterior. Fuente Usuario que realiza la asignación. Para los procesos Abrir selección.

Nombre del flujo de datos Modifica la selección. Descripción El usuario modifica los datos de la selección

abierta. De los procesos Abrir selección existente. Para los procesos Modificar selección.

Nombre del flujo de datos Datos constantes de la asignación. Descripción Información de los empleados a ser

asignados. De lo procesos Modificar selección. Para el almacén Estructura para el almacenamiento de la

selección. Estructuras de datos Nombre y apellido del empleado, código,

departamento.

3.5.2 Definición de almacenes de datos

Nombre del almacén de datos Estructura para el almacenamiento de la selección.

Descripción Información de los empleados que serán asignados, para laborar en un período determinado.

Flujo de datos recibidos Datos constantes de la asignación, datos constantes de la nueva asignación.

Descripción de datos Detalles de los empleados a asignar, Volumen La frecuencia depende del número de

asignaciones que genere el usuario encargado de la asignación.

Page 86: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

64

Nombre del almacén de datos Estructura para el almacenamiento de

parámetros. Descripción Información de configuración, necesaria

para elaborar una asignación. Flujo de datos recibidos Datos constantes de parámetros. Descripción de datos No de turnos, No de personas a laborar

por turno. Volumen La frecuencia depende del número de

asignaciones que genere el usuario encargado de la asignación.

Nombre del almacén de datos Estructura para el almacenamiento del

período. Descripción Información de las fechas que contempla

el período a laborar. Flujo de datos recibidos Período a laborar. Descripción de datos Fecha inicial y final, días no laborales. Volumen La frecuencia depende del número de

asignaciones que genere el usuario encargado de la asignación.

3.5.3 Descripción de procesos

Nombre del proceso Asignación Descripción Opción que permite crear o establecer los

parámetros que empleará el sistema para realizar la asignación.

Nombre del proceso Selección de personas. Descripción Opción que permite abrir una selección existente,

para modificar los parámetros o crear una nueva selección.

Page 87: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

65

Nombre del proceso Nueva selección. Descripción Clasificación de las personas que serán asignadas

para laborar en un determinado período. Entrada Código del empleado, nombre, apellido. Salida Datos de las personas seleccionadas. Resumen de la lógica Realizar una consulta por cargos y

departamentos. Ejecutar la consulta y seleccionar las personas que serán asignadas, el número de personas lo determina el usuario.

Nombre del proceso Modificar selección. Descripción Cambios de las personas que serán asignadas

para laborar en un determinado período. Entrada Código del empleado, nombre, apellido. Salida Datos de las personas seleccionadas. Resumen de la lógica Realizar una consulta por cargos y

departamentos y, reemplazar o eliminar empleados de la lista.

Nombre del proceso Parámetros Descripción Captura de la información correspondiente a la

configuración del sistema para realizar la asignación.

Entrada No de turnos, horas a laborar por semana, No de personas por turno nocturno, No personas por turno.

Salida Datos que serán constantes durante el proceso de la asignación correcta.

Resumen de la lógica Alimentar el módulo de configuración de la asignación.

Nombre del proceso Definir período. Descripción Se determina el período a laborar, incluyendo los

días festivos. Entrada Fecha inicial y final del período, días festivos Salida Período a laborar en días, incluyendo los festivos. Resumen de la lógica Alimentar el módulo de establecer fechas y

festivos, llenado los campos de la fecha inicial y final.

Page 88: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

66

4 METODOLOGÍA DE INVESTIGACIÓN

4.1 DETERMINACIÓN DE REQUERIMIENTOS

El proyecto asignación de recursos humanos mediante algoritmos

genéticos, surge de la necesidad de mejorar el desempeño de los jefes de

departamentos y en especial el departamento de Recursos Humanos,

teniendo en cuenta el crecimiento, las proyecciones y los planes de

modernización de la institución.

4.1.1 Investigación preliminar. El proceso de clasificación de información y

comprensión de los distintos procesos y métodos empleados en la

administración de recursos humanos, cubrió gran parte del cronograma

general del proyecto de investigación, dado a las políticas o convenciones

laborales, por lo cual el proceso de asignación cambia de acuerdo a la

clasificación de la sección, como fue antes mencionado.

Los cambios o reestructuración del plan de cargos y modificaciones de

carácter administrativo, conllevaron a cambios en el manejo del recurso

Page 89: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

67

humano; en la primera etapa del proyecto, antes de efectuarse la

reestructuración, existía la modalidad de contratación de personal

supernumerario (empleados contratados temporalmente, adicionales a los

de planta), estos empleados conformaban una nómina alterna, de la cual

se seleccionaban y se asignaban a secciones en las cuales hubiese

demanda de recurso. El primer diseño del algoritmo se planteó teniendo en

cuenta este criterio, en el curso del proyecto, por orden del ministerio de

salud pública se eliminan las contrataciones de supernumerarios y se

reestructura el plan de cargos, lo que implica rediseñar y eliminar

variables que hasta el momento tenían un grado alto de incidencia en el

comportamiento y rendimiento del algoritmo.

4.1.2 Técnicas para encontrar hechos. La información recopilada para

determinación del ámbito, se obtuvo mediante técnicas de entrevista,

observación directa del sistema y la revisión de registros. La entrevista

cubrió a todas las personas involucradas en el departamento de recursos

humanos. Además se efectuaron reuniones con personas ajenas al

departamento, pero que poseen conocimiento o requieren información del

sistema, entre ellas: Jefes de Dpto., Jefe de Sistemas y personal

administrativo que hace uso de la información que genera la asignación de

turnos.

Page 90: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

68

4.1.3 Requerimientos del sistema. Los requerimientos del sistema de

información para el manejo y control de horarios de las distintas secciones

o departamentos del H.U.C son los siguientes:

♦ Realizar una distribución de turnos de trabajo en forma equitativa para

cada trabajador.

♦ Reducir el margen de error, para no sobrecargar empleados que puedan

ser asignados a horarios nocturnos o doblar el turno.

♦ La asignación del mes próximo, se basa en la asignación del período

anterior, esto con el objeto de clasificar a los empleados que pasan con

descansos acumulados o compensatorios.

4.1.3.1 Requerimientos para el algoritmo. Su espacio de búsqueda (por

ejemplo, sus posibles soluciones) debe estar delimitado dentro de un cierto

rango.

♦ Debe poderse definir una función de aptitud que nos indique qué tan

buena o mala es una cierta respuesta.

♦ Las soluciones deben codificarse de una forma que resulte

relativamente fácil de implementar en la computadora

Page 91: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

69

4.2 ESTRATEGIA DE DESARROLLO.

Se consideró prudente emplear como estrategia de desarrollo el Prototipo

de sistemas, teniendo en cuenta que:

♦ No se encontraron referencias anteriores a la asignación de Recursos

Humanos mediante Algoritmos Genéticos.

♦ Los investigadores y colaboradores no contaban con experiencia y/o

conocimiento previo en el campo.

♦ La necesidad de un modelo fácilmente modificable (que permita una

rápida evolución), para el adiestramiento tanto en las técnicas

aprendidas de AGs, como en las técnicas avanzadas de programación y

su aplicación en la herramienta escogida.

♦ Aunque los AGs son aplicables a una gran cantidad de necesidades, no

había garantía de que el modelo resultara operacionalmente factible y

eficaz; de modo que el prototipo brindaba la capacidad de evaluar los

resultados de los tiempos de respuesta en la búsqueda de la solución y

de esta manera evaluar su factibilidad.

♦ El análisis de requerimientos no garantizaba abarcar la totalidad de las

necesidades del sistema por los constantes cambios y reformas de las

políticas laborales y la crisis administrativa de la institución.

Page 92: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

70

♦ Las diferentes versiones del sistema evolucionarían con la experiencia

al igual que el desarrollo adicional y el refinamiento de sus

características.

♦ Es difícil establecer la fecha tentativa de terminación dada la naturaleza

del método de desarrollo y la complejidad del campo. La experiencia con

el sistema es la que determina eventualmente cuando el sistema está

terminado.

4.3 DESARROLLO DE UN MODELO DE TRABAJO.

Por recomendación de los colaboradores se optó por omitir la actividad

estipulada en el anteproyecto de Elaboración de Modelos Experimentales

(fundamentalmente juegos) basados en AGs, concebidos inicialmente para

el adiestramiento en el campo; pues el éxito de estas pruebas no

garantizaba el éxito en el campo de asignación de recursos humanos, cada

modelo se crea a partir de problemáticas distintas y conlleva a estrategias

distintas de resolución. El conocimiento adquirido a través de dichos

modelos se puede también obtener mediante modelos sencillos de

asignación con el agregado de estar trabajando en la materia

correspondiente.

Page 93: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

71

4.3.1 Esquema de desarrollo. Durante el desarrollo del proyecto se crearon

cuatro modelos experimentales, partiendo desde un problema sencillo de

asignación, con estructuras de datos básicas, hasta llegar al cuarto

modelo que contempla una interfaz amigable y de fácil manejo por parte

del usuario, con estructuras de datos complejas y empleando diseño

orientado a objetos. Gráficamente podemos representar la evolución del

proyecto.

4.3.2 Herramientas de Desarrollo. Para el desarrollo de la Herramienta

Computacional basada en AGs se seleccionó a Borland Delphi de Inprise

Inc. Por ofrecer las siguientes características:

♦ Presenta un ambiente de desarrollo RAD (Desarrollo Rápido de

Aplicaciones) ampliamente reconocido por los sectores especializados en

programación, requerido para el desarrollo del esquema de prototipos

informáticos del proyecto.

♦ El lenguaje que utiliza (Object Pascal) tiene una amplia tradición desde

sus inicios con Turbo Pascal 1.0 que lo han llevado ha ser considerado

como uno de los dos lenguajes más ricos (por no mencionar los

compiladores más rápidos) en el medio.

Page 94: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

72

♦ Object Pascal es un lenguaje orientado a objetos, adicionalmente es un

lenguaje ‘fuerte’ en la declaración de tipos de datos, facilitado la

elaboración de objetos y/o nuevos tipos de datos.

♦ El compilador genera código optimizado y con prestaciones

comparables al nivel de C++. Con de más de diez años de evolución

♦ Permite la creación de Hilos necesarios (como se vera más adelante)

para la implementación del paralelismo del modelo.

Page 95: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

73

5 EVOLUCIÓN DEL PROYECTO.

Debido a la complejidad que presenta el proceso de asignación del recurso

humano de la Empresa Social del Estado – Hospital Universitario de

Cartagena, el alto coste que demanda y los errores generados (asignación

no eficiente), se ha diseñado una herramienta prototipo como un

mecanismo de gestión que realiza este trabajo con mejores índices de

eficiencias, a una fracción del costo actual.

En la solución a este problema de asignación de recursos humanos se

emplean técnicas de inteligencia artificial, Algoritmos Genéticos, aunque

la inteligencia artificial demanda alto tiempo de proceso (inversamente

proporcional la capacidad de computo); el principal objetivo es liberar de

trabajo a los jefes de departamento para que puedan emplear este tiempo

en actividades netamente administrativas, sin sacrificar la eficiencia de la

asignación de turnos.

Page 96: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

74

5.1 DESARROLLO DEL PROYECTO

El resultado del proyecto sobre asignación de recurso humano mediante

algoritmos genéticos proviene del desarrollo progresivo de cuatro modelos.

Se detallan los tres primeros modelos a manera informativa (ver figura 9) y

el modelo final, denominado Sistema de Asignación de Recursos Humanos

– SAR se describe con profundidad en el siguiente capítulo, pues es el

resultado del presente proyecto. SAR esta diseñado para dar soporte a las

decisiones de los funcionarios que realizan la asignación de turnos del

personal sin tener en cuenta el control de vacaciones o descansos

acumulados de los empleados, pues estos son solo una limitación del

espacio muestral y no son relevantes para comprobar la utilidad de los

AGs en la asignación de los recursos del HUC.

5.1.1 Primer Modelo (Asignar). El primer modelo concebido es una

herramienta elemental que sólo aplica los principios fundamentales de una

herramienta computacional basada en algoritmos genéticos para búsqueda

de una solución factible entre muchas posibles soluciones.

Page 97: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

75

Este primer modelo aplica los principios de la evolución de las especies,

cruce y mutación genética, empleando una sola población con número

determinado de individuos.

Figura 9. Evolución del proyecto

Page 98: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

76

La asignación se realiza para un puesto de trabajo determinado (una sola

asignación por turno) y contempla tres turnos por día. La función de

optimalidad viene dada por la equidad de la distribución de turnos entre el

número de personas a asignar sin importar el costo de esta.

Figura 10. Interfaz del primer modelo

Page 99: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

77

5.1.1.1 Diseño. El modelo inicial está conformado por una unidad de

código en la cual se define la estructura de datos, variables,

procedimientos y funciones empleadas.

La interfaz gráfica del usuario es una pantalla sencilla, que despliega los

resultados de una asignación, mostrando la evolución y número de

generaciones alcanzadas y su respectivo peso.

El software presenta una interfaz en la cual el usuario determina los

parámetros que se emplearán en la ejecución y búsqueda de soluciones.

Los datos a suministrar son los siguientes:

♦ Desviación estándar: representa la equidad de las distintas

asignaciones.

♦ Tamaño de la población: Número de individuos que tiene la población.

♦ Número de personas: Cantidad de empleados a ser asignados para un

puesto de trabajo.

♦ Días(período): numero de días para los cuales se requiere asignar

personas.

Page 100: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

78

♦ Tasa de mutación de población: porcentaje de individuos que mutan o

cambian su estructura genética en una generación.

♦ Tasa de mutación de gen: porcentaje de genes a mutar en el individuo.

♦ Tasa de apareamiento: porcentaje de individuos que se aparean en una

generación.

♦ La función de evaluación solo tiene en cuenta el valor de la desviación

estándar.

5.1.1.2 Estructuras de datos utilizadas. Para la asignación se utiliza una

matriz variable, que contiene una asignación (individuo) por cada fila.

Los turnos a laborar de un empleado, son representados por un vector. Se

utiliza una posición por cada turno.

5.1.1.3 Conclusiones

♦ Es posible encontrar soluciones factibles implementando un método de

iteración evolutiva con estructuras básicas, evaluando información

mínima.

Page 101: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

79

♦ El modelo encuentra asignaciones con distribuciones de turnos en los

empleados cercanos al promedio general.

♦ Este modelo, como está concebido no soporta los requerimientos de la

problemática del HUC, pues fue concebido como modelo didáctico.

♦ Es necesario tener en cuenta variables como el costo de la asignación,

para encontrar soluciones más próximas a la realidad.

♦ Se deben tener en cuenta restricciones de número de horas trabajadas,

turnos dobles y número de personas por turno de noche, que pueden

inhabilitar una asignación.

♦ Las estructuras de datos empleadas son precarias para el soporte de un

algoritmo evolutivo.

5.1.2 Segundo Modelo (AG). En el segundo modelo, se emplean

estructuras de datos más complejas y se implementa la creación de los

objetos, que representan las entidades genéticas, a saber, población e

individuo. Aplica además una concepción más amplia de un algoritmo

genético. A diferencia del primer modelo, este, hace uso de varias

poblaciones, cada una con distinto número de individuos. La información

suministrada por el usuario es la misma, para el primer modelo. El cálculo

Page 102: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

80

del peso, en este modelo, se hace basándose en la desviación estándar de

los turnos asignados y el costo de la asignación.

5.1.2.1 Diseño. La interfaz gráfica del usuario es una pantalla, que

despliega los resultados de una asignación, mostrando la evolución y

número de generaciones alcanzadas y su respectivo peso.

♦ Desviación estándar: representa la equidad de las distintas

asignaciones.

Figura 11. Interfaz del segundo modelo

Page 103: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

81

♦ Tamaño de la población: Número de individuos que tiene la población.

♦ Número de personas: Cantidad de empleados a ser asignados para un

puesto de trabajo.

♦ Días(período): numero de días para los cuales se requiere asignar

personas.

♦ Tasa de mutación de población: porcentaje de individuos que mutan o

cambian su estructura genética en una generación.

♦ Tasa de apareamiento: porcentaje de individuos que se aparean en una

generación.

♦ Número de asignaciones: cantidad de personas a laborar por turnos.

♦ Valor de parada: valor máximo alcanzado por el paso, para detener el

algoritmo.

♦ Criterio de selección de parejas: Método empleado por el algoritmo para

seleccionar las parejas.

Page 104: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

82

5.1.2.2 Estructuras de datos utilizadas.

Para el manejo de la información en el segundo

modelo, se establecieron estructuras de datos

basados en objetos no visuales descendientes de

la clase objeto, tales como población basada en

la clase lista e individuo basado en la clase

objeto,. Las estructuras se implementan en

unidades independientes, las siguientes son las

unidades de código utilizadas.

♦ Individuo. Representa el código – declaración de la estructura que

contiene la información de un individuo (Cromosoma que representa la

asignación de una semana).

♦ Población. Representa el código – declaración de la estructura que

contiene la información de una población (conjunto de posibles

asignaciones).

♦ Ventana. Representa el código que maneja las propiedades de los

objetos visuales empleados para desplegar la información en pantalla.

♦ Tipos. Representa el código y definiciones de los tipos de datos

empleados por las demás unidades que conforman el proyecto.

Figura 12. Estructura de datos utilizada en el segundo modelo.

Page 105: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

83

♦ Biblioteca. Esta unidad de código, contiene todas las funciones y

procedimientos genéricos, que pueden ser usados en las unidades

principales.

5.1.2.3 Conclusiones

♦ Al hacer uso de nuevos factores para hallar el peso de los individuos, el

proceso de asignación alcanza mejores resultados.

♦ Dado que el algoritmo, emplea estructuras de datos más complejas y

los requerimientos más amplios, el proceso requiere de un tiempo

mayor.

♦ Es necesario la implementación de nuevas estructuras, que permitan el

manejo de múltiples poblaciones, y así, poder elaborar un algoritmo

genético paralelo.

♦ La interfaz gráfica no brinda un ambiente agradable al usuario.

♦ Además de las estructuras adicionales, para la ejecución de un

algoritmo genético en paralelo; es necesario que la evolución de cada

población sea manejada por un proceso independiente.

Page 106: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

84

5.1.3 Tercer Modelo (Ag Manager ). El tercer modelo es una evolución del

segundo modelo. Para el diseño e implementación de éste, se cubrieron

las recomendaciones de mejoras que se detectaron en el segundo modelo.

Las estructuras empleadas soportan las exigencias de un algoritmo

genético paralelo, la interfaz gráfica es más clara, en cuanto a la captura

de información proveniente del usuario; los resultados son presentados en

forma ordenada, y lo más importante, con datos reales.

Figura 13. Interfaz del tercer modelo.

Page 107: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

85

5.1.3.1 Diseño. La herramienta consta de una única ventana, que maneja

todos los objetos utilizados mediante una interfaz gráfica, que representa

la estructura del hábitat, utilizando una lista de nodos. Se introducen tres

nuevos tipos de objetos:

♦ Hábitat: descendiente de una lista (igual que población) que agrupa las

diferentes poblaciones que maneja el AG.

♦ Un hilo vinculado al hábitat (como una propiedad de éste), que

coordina la evolución de las poblaciones del hábitat.

♦ Un hilo vinculado a cada población que efectúa el proceso evolutivo de

la población a que pertenece.

En este modelo se tienen nuevos factores en la función de evaluación, que

representan algunas de las restricciones a las que se somete una

asignación, como son: número de horas trabajadas por semana, número

de turnos nocturnos por semana, personal asignado, asignación de turnos

dobles, además del costo y la desviación estándar.

Page 108: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

86

5.1.3.2 Estructura de Datos.

En las estructuras de datos

empleadas por el algoritmo

encontramos tres niveles de

jerarquía para intercambio de

información. El diseño

contempla tres estructuras

principales: Hábitat, Población e

individuo; así un hábitat que

puede evolucionar, esto es, está

listo para iniciar el proceso, tiene

una o más poblaciones que a su

vez tienen cero, uno o más individuos.

5.1.3.3 Conclusiones.

♦ Este modelo se aproxima más a la naturaleza del problema, pues

contempla en la función evaluadora restricciones del proceso de

asignación.

Figura 14. Estructura de datos utilizada en el segundo modelo.

Page 109: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

87

♦ El soporte a las nuevas estructuras, demanda mayores recursos

computacionales, en aras a un mejor cubrimiento del espacio de

búsqueda.

♦ El paralelismo implica explorar distintos espacios de soluciones al

tiempo, reduciendo la probabilidad de caer en óptimos locales.

♦ Este esquema hace uso eficaz de los recursos, en sistemas

multiprocesador y/o sistemas distribuidos.

Page 110: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

88

6 SISTEMA DE ASIGNACION DE RECURSOS – SAR.

6.1 DISEÑO DE ENTRADA DE DATOS.

Los datos empleados para realizar la búsqueda de una solución a la

asignación, los podemos clasificar como datos variables ó suministrados

por el usuario y datos de identificación (véase anexo D).

6.1.1 Datos variables ó suministrados por el usuario. El sistema requiere

de una información mínima, que se denominará datos de configuración del

algoritmo. El algoritmo genético, se compone de elementos hábitat y

población; éstos controlan la información genética y las soluciones a la

asignación, de generación en generación. Estos datos, son ingresados por

el funcionario encargado de realizar la asignación.

Se han clasificado los datos variables, en datos básicos del algoritmo y

para una configuración avanzada del algoritmo.

Page 111: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

89

6.1.1.1 Módulo de captura de información básica. Los coeficientes de cada

uno de los factores que inciden en el cálculo del peso de los individuos,

permite establecer niveles de prioridad entre dichos factores par que así,

un determinado factor incida en menor o mayor escala en el valor del peso

del individuo.

Número de personas disponibles: cantidad de empleados aptos para ser

asignados.

Turnos: Número de divisiones de un día laboral.

Personas a Asignar en el turno de mañana ó tarde: Cantidad de

personas a asignar por turnos.

Personas a Asignar en el turno Noche: Cantidad de personas a asignar

para laborar en el turno nocturno.

Horas semanales: Horas que se laboran durante una semana.

Fecha: Fecha de inicio de la asignación.

Días a laborar: Días que se laboran en el período.

Festivos: Días que se clasifican como festivos o de descanso.

6.1.1.2 Módulo de captura de información avanzada.

Nombre del hábitat: Descripción del hábitat

Nombre de la Población: descripción de la población.

Tamaño: Número de individuos que se mantienen en cada generación.

Page 112: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

90

Número de migraciones: Cantidad máxima de migraciones por ciclo

evolutivo.

Número de generaciones por migración: Cantidad de generaciones que

se dan por cada migración.

Coeficiente de la desviación estándar: Factor de incidencia de la

desviación estándar en el cálculo del peso.

Coeficiente del costo de la asignación: Factor de incidencia del costo

normalizado del individuo (asignación) en el cálculo del peso.

Coeficiente de turnos dobles: Factor de incidencia de la cantidad de

turnos dobles que se presentan en una asignación, para el cálculo del

peso.

Coeficiente de personas asignadas: Factor de incidencia de la cantidad

de personas asignadas, con respecto a las disponibles, para el cálculo del

peso.

Coeficiente del número personas con horas excedidas por semana ó

fracción: Factor de incidencia de la cantidad de personas, que fueron

asignadas con una sobrecarga laboral, para el cálculo del peso.

Coeficiente del número personas que exceden dos turnos de noche

por semana ó fracción: Factor de incidencia de la cantidad de personas,

que durante la semana laboran más de dos turnos nocturnos, para el

cálculo del peso.

Page 113: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

91

Tipo de apareamiento: conducta que emplea una población para

seleccionar los progenitores de las nuevas generaciones de individuos.

Tipo de reproducción: Método de combinar los genes de los padres, para

concebir nuevos individuos.

Tipo de reducción: Práctica empleada por la población, para seleccionar

los individuos a eliminar.

Criterio de reemplazo: Modelo empleado por la población, para

determinar la forma en que los individuos nuevos entran en la población.

Probabilidad de Mutación: Probabilidad, de que un gen de un individuo

nuevo, sea una mutación.

Valor de parada: La iteración del algoritmo, culmina al cumplir con el

valor de parada.

6.1.2 Datos de Identificación. Los datos de identificación, corresponden a

la información residente en la base de datos del departamento de recursos

humanos, que necesita el algoritmo para establecer la asignación. Estos

datos son seleccionados en el módulo de captura de información básica.

Identificador del empleado: Código interno del empleado.

Salario: valor pagado a un trabajador mensualmente.

Page 114: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

92

6.2 DISEÑO DE SALIDA DE DATOS.

Las salidas de datos despliegan la información generada, durante el

proceso de búsqueda de una solución para la asignación de empleados de

una sección y/o departamento. Los datos de salida del sistema, se

clasifican en salidas por pantalla y salidas impresas.

6.2.1 Salidas por pantalla. La información del resultado del proceso de

asignación contempla los siguientes datos:

6.2.1.1 Módulo de resultados parciales. Durante las iteraciones, que

realiza el algoritmo genético para la búsqueda de la solución, se generan

datos, que informan al usuario del estado y comportamiento del algoritmo;

estos datos son:

Estado: Indicador de ejecución, puede estar de tenido o evolucionando.

Hora de inicio de la ejecución: Tiempo inicial del proceso

Tiempo empleado: Tiempo acumulado desde el inicio del proceso de

búsqueda.

Población en ejecución: porcentaje de poblaciones que se encuentran

corriendo.

Generación: Número de la generación en la cual se encuentra el proceso.

Page 115: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

93

Porcentaje de poblaciones corriendo: Porcentaje de poblaciones que se

encuentran en ejecución con respecto a las iniciales.

Esta información es empleada por el usuario que realiza la asignación de

personas.

6.2.1.2 Módulo de resultados de la búsqueda. La solución a la asignación

de recursos, despliega la información de las poblaciones y de los

individuos. Un hábitat está compuesto de poblaciones, y estas a su vez de

individuos; el sistema presenta en detalle información de cada uno de

estos. Los datos que conforma las soluciones posibles son los individuos,

estos se presentan al usuario encargado de la asignación (véase anexo D).

Estos datos son empleados por el personal encargado de realizar las

asignaciones, éstos se clasifican como usuarios finales directos.

Personal asignado: Personas asignadas, con respecto a las disponibles

para asignación.

Peso: valor establecido en el individuo por la función de idoneidad, que

clasifica a éste, como más o menos apto que los demás (a menor peso,

mejor individuo).

Desviación estándar: Representa la equidad en la distribución de los

turnos por empleado, en una asignación(individuo).

Costo: Valor monetario de la asignación.

Page 116: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

94

Media de horas: Promedio de las horas asignadas por empleado.

Matriz de asignación: Cuadro que representa el resultado de una

asignación para un período, con los datos de los empleados y los turnos

que le corresponden laborar.

6.2.2 Salidas por Impresora. Estos datos son requeridos por los

trabajadores de la institución que laboran por turnos, éstos se clasifican

como usuarios finales indirectos.

El usuario del sistema utiliza la impresora para desplegar los resultados

de la asignación, en el reporte se presentan los siguientes datos.

Nombre de la sección: Descripción del departamento o sección a la que

corresponde la asignación.

Fecha: Fecha correspondiente al período laboral

Nombre del Empleado: Nombre y apellido del empleado

Cronograma de trabajo: descripción del horario de trabajo, para cada

empleado.

La impresión emite tres copias: para el archivo del departamento o sección

que se asigna, departamento de recursos humanos y la pública para los

empleados de la sección (véase anexo D).

Page 117: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

95

6.2.3 Salidas a archivos. La información resultante del proceso de

asignación, se almacena en un archivo plano, que contiene la siguiente

información:

Nombre de la sección: Descripción del departamento o sección a la que

corresponde la asignación.

Fecha: Fecha correspondiente al período laboral

Nombre del Empleado: Nombre y apellido del empleado

Horario de trabajo: descripción del los turnos en que los empleado

laborará en el periodo asignado.

La información almacenada es utilizada por los usuarios que realizan las

asignaciones, para realizar consultas de datos históricos y por el

departamento de recursos humanos (Véase anexo D).

Page 118: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

96

6.3 DIAGRAMAS DE JERARQUÍA DE PROCESOS

Figura 15. Diagrama de jerarquía de procesos - Abrir

Page 119: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

97

Figura 16. Diagrama de jerarquía de procesos - Nueva Asignación

Page 120: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

98

6.4 DIAGRAMAS DE FLUJO DE DATOS A continuación se detallan los diagramas de flujo de datos, que ilustran

sobre el comportamiento de los datos a través de los procesos que se

realizan en la asignación de recursos.

Figura 17. Diagrama de flujo de datos opción abrir hábitat

Page 121: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

99

Figura 18. Diagrama de flujo de datos opción Abrir Hábitat, configuración avanzada.

Page 122: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

100

Figura 19. Diagrama de flujo de datos opción Nuevo Hábitat.

Page 123: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

101

Figura 20. Diagrama de flujo de datos opción Nuevo Hábitat.

Page 124: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

102

6.5 DICCIONARIO DE DATOS.

6.5.1 Definición de flujos de datos. A continuación se detallan los

elementos que conforman los de flujos de datos.

Nombre del flujo de datos Información del hábitat Descripción Detalles de configuración del hábitat Fuente Usuario que realiza la asignación. Para los procesos Nuevo hábitat Estructuras de datos Selección de personas, configuración de la

asignación, fechas y festivos.

Nombre del flujo de datos Opción configuración selección Descripción Representa la determinación del usuario, por

configurar la selección de personas. Fuente Usuario que realiza la asignación. Para los procesos Selección de personas, configuración de la

asignación, fechas y festivos.

Nombre del flujo de datos Personas a asignar Descripción Usuario relaciona los empleados para la

asignación Fuente Usuario que realiza la asignación. Para los procesos Selección de personas

Nombre del flujo de datos Selección de personas a asignar Descripción Información de las personas que serán

seleccionadas para asignar. Proviene de los procesos Proceso selección de personas. Para la fuente Objeto hábitat Estructuras de datos Código del empleado, nombre, apellido, y

salario.

Page 125: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

103

Nombre del flujo de datos Opción configuración asignación Descripción Representa la determinación del usuario, por

configurar el módulo de asignación. Fuente Usuario que realiza la asignación. Para los procesos Configuración de la asignación.

Nombre del flujo de datos Parámetros para la asignación. Descripción El usuario alimenta al sistema los datos

básicos para la asignación ( No de turnos, horas a laborar, No de asig. Por turno)

Fuente Usuario que realiza la asignación. Para los procesos Configuración de la asignación

Nombre del flujo de datos Datos constantes para la asignación. Descripción Parámetros que el algoritmo empleará para

realizar la asignación. Proviene de los procesos Configuración de la asignación. Para la fuente Objeto hábitat Estructuras de datos No de turnos a laborar, No de asignaciones

por turno, horas de trabajo por semana, No de asignaciones por turno de noche.

Nombre del flujo de datos Opción configuración fechas. Descripción Representa la determinación del usuario, por

configurar el módulo de establecer fecha y festivos

Fuente Usuario que realiza la asignación. Para los procesos Establecer fecha y festivos.

Nombre del flujo de datos Días a laborar y festivos Descripción Selección de la fecha inicial y final del

período laborar y días festivos, que este contempla.

Fuente Usuario que realiza la asignación. Para los procesos Establecer fecha y festivos.

Page 126: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

104

Nombre del flujo de datos Datos de fecha del período. Descripción Información de los días festivos que incluye

el período a laborar y rango del período. Proviene de los procesos Establecer fecha y festivos. Para la fuente Objeto hábitat Estructuras de datos Fecha inicial del período, fecha final y días

festivos.

Nombre del flujo de datos Decide abrir un hábitat Descripción Detalles de configuración del hábitat Fuente Usuario que realiza la asignación. Para los procesos Abrir hábitat Estructuras de datos Selección de personas, configuración de la

asignación, fechas y festivos.

Nombre del flujo de datos Configuración avanzada. Descripción El usuario ingresa al módulo de

configuración avanzada. Proviene de los procesos Nuevo hábitat y abrir hábitat. Para los procesos Explorador / configuración avanzada.

Nombre del flujo de datos Parámetros del hábitat. Descripción Información suministrada por el usuario,

correspondiente a la información genética del hábitat.

Fuente Usuario que realiza la asignación. Para los procesos Configurar hábitat.

Nombre del flujo de datos Datos constantes para el hábitat Descripción Información de los parámetros genéticos para

la ejecución del algoritmo. Proviene de los procesos Configurar hábitat. Para la fuente Objeto hábitat Estructuras de datos Tipo de migración, valor de parada, No de

individuos por migración, No de migraciones por ciclo.

Page 127: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

105

Nombre del flujo de datos Opción configurar hábitat. Descripción Representa la determinación del usuario, por

configurar el módulo de establecer parámetros del hábitat.

Fuente Usuario que realiza la asignación. Para los procesos Configurar hábitat.

Nombre del flujo de datos Opción configurar población. Descripción Representa la determinación del usuario, por

configurar el módulo de establecer parámetros de la población.

Fuente Usuario que realiza la asignación. Para los procesos Configurar población.

Nombre del flujo de datos Datos constantes de la población. Descripción Información de los parámetros genéticos de

la población para la ejecución del algoritmo. Proviene de los procesos Configurar población. Para la fuente Objeto población. Estructuras de datos Tamaño de la población, coeficientes de

factores del peso, No de generaciones por migración.

Nombre del flujo de datos Datos de la población. Descripción Información suministrada por el usuario,

correspondiente a la información genética de la población.

Fuente Usuario que realiza la asignación. Para los procesos Configurar población.

Nombre del flujo de datos Datos de la especie. Descripción Información suministrada por el usuario,

correspondiente a la información genética de la especie.

Fuente Usuario que realiza la asignación. Para los procesos Configurar especie.

Page 128: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

106

Nombre del flujo de datos Datos constantes de la especie. Descripción Información de los parámetros genéticos de

la especie para la ejecución del algoritmo. Proviene de los procesos Configurar especie. Para la fuente Objeto población. Estructuras de datos Método de selección de parejas, tipo de

reproducción, tipo de reducción, criterio de reemplazo, porcentaje de reproducción, probabilidad de mutación.

6.5.2 Definición de almacenes de datos

Nombre del almacén de datos Objeto hábitat . Descripción Información de parámetros de

configuración, información de empleados, período de asignación.

Flujo de datos recibidos Selección de personas a asignar, datos constantes para la asignación, datos de fechas del período.

Descripción de datos Detalles de los empleados a asignar, información básica y avanzada del algoritmo genético, periodo a laborar y festivos.

Volumen La frecuencia depende del número de hábitat que genere el usuario encargado de la asignación.

Nombre del almacén de datos Objeto población. Descripción información genética de la población

(tasa de mutación, coeficientes de factores del peso, tipo de reproducción.

Flujo de datos recibidos Datos constantes de la especie, datos constantes de la población.

Descripción de datos Detalles avanzada del algoritmo genético, describe el comportamiento del proceso de búsqueda dado los parámetros suministrados.

Volumen La frecuencia depende del número de poblaciones que el usuario determine emplear para búsqueda de la solución.

Page 129: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

107

6.5.3 Definición de tipos de datos

Nombre: Lógico

Estructura Simple

Basado en: Genérico

Descripción Valores de verdadero o falso

Rango Verdadero/Falso

Nombre: Entero

Estructura Simple

Basado en: Generico

Descripción Valores enteros con signo

Rango Z

Nombre: Real

Estructura punto flotante

Basado en: Generico

Descripción Valores de punto flotante

Rango R

Nombre: Moneda

Estructura Derivado

Basado en: Real

Descripción Valores de punto flotante para monedas

Rango R

Nombre: TipoFecha

Estructura Derivado

Basado en: Entero

Descripción Vumero de dias con respecto a una fecha inicial

Rango Z

Nombre: Carácter

Estructura Simple

Basado en: Generico

Descripción Representación de una letra o simbolo de escritura

Rango Simbolo

Nombre: Cadena

Estructura arreglo (vector)

Basado en: Caracteres

Descripción Secuencia de caracteres

Rango Simbolo/Simbolo*

Page 130: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

108

Nombre: VectorEntero

Estructura arreglo (vector)

Basado en: Entero

Descripción Vector de enteros

Rango Z/Z*

Nombre: VectorMoneda

Estructura arreglo (vector)

Basado en: Moneda

Descripción Vector de valores moneda

Rango R/R*

Nombre: TtipoUsuario

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores descriptivos de el tipo de usuario actual del sistema

Rango TuAdministrador, tuOperador

Nombre: TestadoHabitat

Estructura Tipo enumerado

Basado en: Def usuario

Descripción Valores que puede tomar el estado de un habitat

Rango EhNoListo, ehListo, ehEvolucionando, ehExitoso, ehDetenido

Nombre: TestadoPoblacion

Estructura Tipo enumerado

Basado en: Def usuario

Descripción Valores que puede tomar el estado de un habitat

Rango EpNoListo, epListo, epEvolucionando, epExitoso, epDetenido

Nombre: TtipoMigracion

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores descriptivos de el tipo migración que se produce en las diversas poblaciones del hábitat

Rango TmSinMigracion, tmEstrella, tmAnillo, tmRed, tmCentralizado

Nombre: TtipoSeleccion

Estructura Tipo enumerado

Basado en: Def usuario

Descripción Forma en que se seleccionan las parejas para aparearse

Rango tsNinguno, tsPeso, tsRango, tsElite, tsTorneo, tsAleatorio

Page 131: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

109

Nombre: TtipoCruce

Estructura Tipo enumerado

Basado en: Def usuario

Descripción Valores que especifican la forma en que se recombinan los genes de los padres para dar origen a su prole

Rango tcNinguno, tcUnPunto, tcDosPuntos, tcUniforme

Nombre: TtipoReduccion

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores descriptivos de forma de eliminación de individuos

Rango trNinguno, trPeso, trRango, trElite, trTorneo, trAleatorio

Nombre: TcriterioReemplazo

Estructura Tipo enumerado

Basado en: Def usuario

Descripción Valores que indican de que forma los decendientes reeemplazan a la generación antigua

Rango CrNinguno, crInmediato, crInclusion, crInsercion

Nombre: TtipoTag

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores descriptivos de la forma en que se calcula el valor de la propiedad Tag (utilizada en la selección de individuos y parejas)

Rango ttNinguno, ttPesoUp, ttPesoDown, ttRangoUp, ttRangoDown

Nombre: Tnormalizador

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores que muestran la forma de calcular el normalizador del costo de la asignación

Rango NrNinguno, nrMenor, mrMayor, nrPromedio, nrPromedioExtremos

Nombre: TseleccionIndividuos

Estructura Tipo enumerado

Basado en: Def usuario

Descripción contiene los valores descriptivos de la forma en que se seleccionan los individuos

Rango siNinguno, siPesoUp, siPesodown, siRangoUp, siRangoDown,siEliteUp, siEliteDown, siTorneoUp, siTorneoDown, siRandomUp, siRandomDown

Page 132: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

110

Nombre: TipoGen

Estructura arreglo(Vector)

Basado en: VectorEntero

Descripción Arreglo de vectores (matriz si se quiere) en que cada posición representa un turno y cada vector las asignaciones de ese turno. Un gen representa un día de asignación

Rango

Nombre: TipoCromosoma

Estructura arreglo(Vector)

Basado en: Gen

Descripción Arreglo en el que cada possición representa un gen, por lo tanto un cromosoma es un conjunto de días asignados. El cromosoma representa a la asignación completa, una de las muchas soluciones a estudiar

Rango

Nombre: TipoParejas

Estructura arreglo (vector)

Basado en: TipoPareja

Descripción Vector de pareja que guarda una seleccón de parejas

Rango

Nombre: TipoGenero

Estructura Registro

Nombre: NumSimbolos Estructura simple Basado en: entero Descripción Número de valores que se pueden utilizar para contruir un gen

(personas disponibles) Rango Z+ Nombre: NumSegmentos Estructura simple Basado en: entero Descripción Número de Turnos por dia Rango 3 Nombre: NumAsignaciones Estructura simple Basado en: entero Descripción Número puestos a asignar en cada turno Rango =NumSimbolos Nombre: NumAsigNoche Estructura simple Basado en: entero Descripción Número puestos a asignar en cada turno nocturno Rango <=NumAsignaciones Basado en: Def usuario

Descripción Información genetica que comparten los individuos de un mismo habitat

Page 133: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

111

Nombre: TipoEspecie

Estructura Registro

Nombre: TipoSeleccion Estructura Derivado Basado en: TTipoSeleccion Descripción Tipo de selección de de parejas Rango Nombre: TipoCruce Estructura Derivado Basado en: TTipoCruce Descripción Tipo de intercambio de genes entre parejas Rango Nombre: TipoReduccion Estructura Derivado Basado en: TTipoReduccion Descripción Forma en que se eliminan los individuos Rango Nombre: CriterioReemplazo: Estructura Derivado Basado en: TCriterioReemplazo Descripción Manera en que la decendencia entra en la población Rango Nombre: SelMultiple Estructura Derivado Basado en: Entero Descripción Cuntas veces se puede seleccionar a un individuo para cruce en

una generacion Rango Z+ Nombre: SelGrupo Estructura Derivado Basado en: Entero Descripción Solo utilizado Fseleccion= Elite o torneo : especifica el numero

de individuos que son escogidos como los mejores(elite) , o los grupos del torneo

Rango Z+ Nombre: PorCruce Estructura Derivado Basado en: Real Descripción porcentaje de individuos a aparearse Rango 0 ~ 1 Nombre: ProbMutar Estructura Derivado Basado en: Real Descripción Probabilidad de que un gen de un individuo mute Rango 0 ~ 1

Basado en: Def usuario

Descripción Repositorio de las caracteristicas de reproducción de los individuos de la población

Nombre: TipoPareja

Page 134: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

112

Estructura Registro

Nombre: Papa Estructura Derivado Basado en: Entero Descripción Indice del individuo que actua como padre en la recombinación Rango <=Numero de individuos de la población Nombre: Mama Estructura Derivado Basado en: Entero Descripción Indice del individuo que actua como madre en la recombinación Rango <=Numero de individuos de la población

Basado en: Def usuario

Descripción Guarda los indices de dos individuos distintos de una misma población

Nombre: TipoFactores

Estructura Registro

Nombre: DesEst Estructura Derivado Basado en: Real Descripción Factor desviación estándar Rango R+ Nombre: Costo Estructura Derivado Basado en: Moneda Descripción Factor costo de la asignación Rango R+ Nombre: TurDbles Estructura Derivado Basado en: Entero Descripción Factor turnos dobles de la asignación Rango Z+ Nombre: PerAsig Estructura Derivado Basado en: Entero Descripción Factor personas asignadas Rango <=TipoEspecie.NumSimbolos Nombre: MasHoras Estructura Derivado Basado en: Entero Descripción Factor individuos asignadas con más de las horas semanales Rango Z+ Nombre: MasNoches Estructura Derivado Basado en: Entero Descripción Factor individuos con mas de 2 turnos nocturnos asignados por

semana Rango Z+

Basado en: Def usuario

Descripción Guarda los valores los factores que componen el peso de los individuos

Page 135: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

113

Nombre: TipoCoeficiente

Estructura Registro

Nombre: CoeDesEst Estructura Derivado Basado en: Entero Descripción Coeficiente del factor desviación estándar Rango 0 ~ 1000 Nombre: CoeCosto Estructura Derivado Basado en: Entero Descripción Coeficiente del factor costo de la asignación Rango 0 ~ 1000 Nombre: CoeTurDbles Estructura Derivado Basado en: Entero Descripción Coeficiente del factor turnos dobles de la asignación Rango 0 ~ 1000 Nombre: CoePerAsig Estructura Derivado Basado en: Entero Descripción Coeficiente del factor personas asignadas Rango 0 ~ 1000 Nombre: CoeMasHoras Estructura Derivado Basado en: Entero Descripción Coeficiente del factor individuos asignadas con más de las horas

semanales Rango 0 ~ 1000 Nombre: CoeMasNoches Estructura Derivado Basado en: Entero Descripción Coeficiente del factor individuos con mas de 2 turnos nocturnos

asignados por semana Rango 0 ~ 1000

Basado en: Def usuario

Descripción Guarda los valores los coeficientes de los factores que componen el peso de los individuos

Nombre: Lista

Estructura Estructura

Basado en: Def usuario

Descripción Estructura de punteros que referencian a un conjunto de objetos

Rango

Page 136: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

114

6.5.4 Definición de objetos. En esta sección se detalla la definición de los

objetos usados en el proceso de evolución usando una terminología

genérica, para no asociarlas al lenguaje utilizado. Se omiten las

propiedades, métodos y eventos que han sido heredados de objetos predefinidos

como: crear, destruir, identificación en el sistema, clase, etc. Por no ser relevantes

al proceso evolutivo. Así mismo en la utilización de las propiedades en los

procesos, no se contemplan los de creación, verificación y acceso, pues en estos

las propiedades no se utilizan para cálculos y/o referencias sino se inicializan o

verifican.

6.5.4.1 Objeto Individuo

6.5.4.1.1 Propiedades

Nombre Edad Tipo de dato Entero Descripción Número de generaciones que ha vivido el individuo Utilización Información Nombre IdPoblacion Tipo de dato Poblacion Descripción Referencia al objeto población al que pertenece el individuo Utilización Referencia para calculos con valores innerentes en la población: GetGen, Idoneidad,

LlenarCromosoma, Evaluar, Cruzar Nombre Hilo Tipo de dato HiloPoblacion Descripción Referencia al objeto HiloPoblacion Utilización Ejecucion de procesos de evolución de la población: GO_T, Reset Nombre Seleccionado Tipo de dato Entero Descripción Especfica cuantas veces ha sido seleccinado el individuo en cada proceso de selección Utilización Contador Nombre Peso Tipo de dato Real Descripción Valor que le confiere al individuo la función evaluadora en virtud de su rendimiento (a

Page 137: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

115

menor peso mejor es el individuo) Utilización Referencia para calculos: Idoneidad, Evaluar Nombre Factores Tipo de dato TipoFactores Descripción Valores de los factores que componen el peso de los individuos Utilización Referencia para calculos: Evaluar Nombre Tag Tipo de dato Real Descripción Valor empleado para hacer las selecciones de individuo Utilización Referencia para calculos Nombre Cromosoma Tipo de dato TipoCromosoma Descripción Arreglo de genes que contiene la asignación del individuo Utilización Referencia para calculos: Idoneidad, LlenarCromosoma, Evaluar, Cruzar, Nombre Empleados Tipo de dato Cadena Descripción Contiene los números de los indices de los empleados que fueron utilizados en la

selección, separados por comas Utilización Información: Idoneidad

6.5.4.1.2 Métodos

Nombre GetGen Tipo de método Función Descripción Obtiene un gen aleatoriamente Parámetros No tiene Retorna TipoGen Nombre Idoneidad Tipo de método Procedimiento Descripción Calcula los factores del Peso Parámetros No tiene Retorna No aplica Nombre Cruzar Tipo de método Procedimiento Descripción Realiza una recombinación de genes de dos individuos para crear dos nuevos

individuos con caracteristicas de los padres Parámetros crMadre: cromosoma de la madre Retorna No aplica Nombre LlenarCromosoma Tipo de método Procedimiento Descripción Inicializa un cromosoma aleatoriamente Parámetros No tiene

Page 138: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

116

Retorna No aplica Nombre Evaluar Tipo de método Procedimiento Descripción Calcula el peso del individuo y lo almacena en la proiedad peso Parámetros No tiene Retorna No aplica

6.5.4.1.3 Diagrama de Estado

6.5.4.2 Objeto Población

6.5.4.2.1 Propiedades

Nombre Nombre Tipo de dato Cadena Descripción Descripcion de la población para fácil referencia Utilización Información Nombre Especie Tipo de dato TipoEspecie Descripción Repositorio de las caracteristicas de apareamiento y mutación de los individuos de la

población Utilización Rutinas de procesamiento genético : SeleccionarParejas, Reducir, GeneratioNext

Nombre IdHabitat Tipo de dato Habitat Descripción Referencia al objeto Habitat al que pertenece la población Utilización Referencia para calculos con valores innerentes en el habitat: Seleccionar,

Figura 21. Diagrama de estado del objeto Individuo.

Page 139: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

117

GeneratioNext, Migrar Nombre Hilo Tipo de dato HiloPoblacion Descripción Referencia al objeto HiloPoblacion Utilización Ejecucion de procesos de evolución de la población: GO_T, Reset Nombre Generaciones Tipo de dato Entero Descripción Numero de generaciones de la población Utilización Contador: GeneratioNext Nombre MejorPeso Tipo de dato Real Descripción Especifica el mejor peso de todas las generaciones de la población, su valor corresponde

a la evaluciación de MejorCromosoma (ver siguiente item) Utilización Información: GeneratioNext Nombre MejorCromosoma Tipo de dato Cromosoma Descripción Especifica el mejor cromosoma de todas las generaciones de la población Utilización Información: GeneratioNext Nombre MediaPeso Tipo de dato Real Descripción Promedio de los pesos de los individuos de la población; es la medida con que se escoje

la mejor población Utilización Cálculo de la mejor poblacion: CalcularPeso, GeneratioNext Nombre NumGeneraciones Tipo de dato Entero Descripción Numero de generaciones que se realizan en la población actual antes de una migración Utilización Referencia para cumplir el número de generaciones: GeneratioNext Nombre Tamano Tipo de dato Entero Descripción Numero de individuos que se mantienen en la población Utilización Referencia para el mantenimiento de la población : Equilibrar Nombre Permitir iguales Tipo de dato Lógico Descripción Establece si se deben eliminar los individuos de igual configuración genética Utilización Referencia eliminar la duplicidad en la población : Equilibrar

Nombre MejorIndividuo Tipo de dato Entero Descripción Indice del mejor individuo de la actual generación Utilización Información: GeneratioNext

Page 140: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

118

Nombre Estado Tipo de dato EstadoPoblación Descripción Estado en que se encuentra la población Utilización Información: GeneratioNext Nombre Historial Tipo de dato Cadena Descripción Ruta del archivo de seguimiento de los avances de la población Utilización Ejecucion del resguardo en disco de la evolución de la población Nombre Individuos Tipo de dato Lista Descripción Referencia a todos los individuos que hacen parte de la pobalción Utilización Referencia: Delete, EstablecerTag, Ruleta, Seleccionar, SeleccionarParejas, Reducir,

Cruzar, Equilibrar, GeneratioNext,QuitarSeleccion, Migrar, FindBest Nombre Coeficientes Tipo de dato TipoCoeficiente Descripción Coeficeintes de los factores para el calculo del peso de los individuos Utilización

6.5.4.2.2 Métodos

Nombre Add Tipo de método Procedimiento Descripción Adiciona un individuo a la población Parámetros X : objeto individuo a adicionar Retorna No aplica Nombre AddNews Tipo de método Procedimiento Descripción Adiciona N individuos nuevos a la población Parámetros N: numero de individuos a adiconar Retorna No aplica Nombre Delete Tipo de método Procedimiento Descripción Borra un individuo de la población Parámetros Index : Indice del individuo a eliminar Retorna No aplica

Nombre Clear Tipo de método Procedimiento Descripción Borra todos los individuos de la población Parámetros No tiene Retorna No aplica

Page 141: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

119

Nombre Ordenar Tipo de método Procedimiento Descripción Ordena la población en función del peso Parámetros Acendente: especifica si la ordenación es de mayor a menor o vicversa Retorna No aplica Nombre Seleccionar Tipo de método funcion Descripción Selecciona una grupo de individuos de acuerdo a los parámetros Parámetros TipoSel: Tipo de selección de acuerdo a TTipoSeleccion, Numero: numero de

individuos; NumSel: cuantas veces se puede seleccionar el mismo individuo; SelGrupo: tamaño de los grupos a selccionar (si se escoge selección por competencia)

Retorna Vector de enteros con los índices de los individuos seleccionados Nombre SeleccionarParejas Tipo de método funcion Descripción Selecciona un grupo de parejas para el apareamiento Parámetros TipoParejas: vector de registros TipoPareja que guarda los indices de los

progenitores de la nueva especie Retorna Vector de enteros con los índices de las parejas seleccionadas Nombre Check Tipo de método funcion Descripción Verifica que las configuraciones de la población sean las correctas Parámetros No tiene Retorna cadena: mensaje de error, sino una cadena vacía Nombre Reducir Tipo de método Procedimiento Descripción Reduce la población Parámetros N: número de individuos a eliminar; TipoRed: tipo de reducción basado en

TTipoReduccion Retorna No aplica Nombre GeneracioNext Tipo de método Procedimiento Descripción Inica la evolución de la población Parámetros N: número de generaciones que se realizarán enla población Retorna No aplica

Nombre GO_T Tipo de método Procedimiento Descripción Inicia a GeneratioNext en un hilo independiente Parámetros No tiene Retorna No aplica

Page 142: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

120

Nombre EstablecerTag Tipo de método Procedimiento Descripción Establece la propiedad Tag de los individuos de la población con los valores

necesarios para su clasificación Parámetros TipoTag: basado en TTipoTag determina la forma en que se calcula el valor la

propiedad Retorna No aplica Nombre Equilibrar Tipo de método Procedimiento Descripción Hace que la población mantenga el tamaño especificado en la propiedad tamano ya

sea eliminando o adicionando individuos Parámetros No tiene Retorna No aplica Nombre CalcularPeso Tipo de método Procedimiento Descripción Recalcula el peso de los individuos y determina el peso promedio de la pobalción Parámetros No tiene Retorna No aplica Nombre Migrar Tipo de método Procedimiento Descripción Inicia la migración de la población de individuos de la población actual a una

población destino Parámetros N: número de individuos a migrar; Destino: indice de la población destino Retorna No aplica Nombre QuitarSeleccion Tipo de método Procedimiento Descripción Establece en 0 los indicadores de selección de los individuos (propiedad

seleccionado) Parámetros No tiene Retorna No aplica Nombre FindBest Tipo de método funcion Descripción Busca el mejor individuos de la población Parámetros No tiene Retorna Entero indice del mejor individuo

Nombre Reset Tipo de método Procedimiento Descripción Detiene la evolución de la población Parámetros No tiene Retorna No aplica

Page 143: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

121

6.5.4.2.3 Diagrama de Estado

6.5.4.3 Objeto HiloPoblacion

6.5.4.3.1 Propiedades

Nombre IdHabitat Tipo de dato Habitat Descripción Referencia al poblacion al que pertenece el hilo Utilización se utiliza la referencia para iniciar el proceso evolutivo en un hilo independiente: Execute Nombre Terminar Tipo de dato Booleano Descripción Switche para detener la evolución de la población referenciada por el hilo Utilización Especifica el detenimiento del hilo (en caso de que se este ejecutando): Execute

6.5.4.3.2 Métodos

Nombre Ejecutar Tipo de método Procedimiento Descripción Contiene el código de evolución de la población Parámetros No tiene

Figura 22. Diagrama de estado del objeto Población.

Page 144: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

122

Retorna No aplica

6.5.4.3.3 Diagrama de Estado

6.5.4.4 Objeto Hábitat

6.5.4.4.1 Propiedades

Nombre Nombre Tipo de dato Cadena Descripción Descripcion del habitat para fácil referencia Utilización Información Nombre Genero Tipo de dato TipoGenero Descripción Almacén de datos de la configuración genética del individuo Utilización Rutinas de procesamiento genético : CalcularNormalizador Nombre Fecha Tipo de dato Fecha Descripción Fecha del primer día de la asignación Utilización Información Nombre Hilo Tipo de dato HiloHabitat Descripción Referencia al objeto HiloHabitat Utilización Ejecucion de procesos de evolución: DoIncMigraciones, Play Nombre HiloRun Tipo de dato Lógico

Figura 23. Diagrama de estado del objeto HiloPoblación

Page 145: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

123

Descripción Indica si el hilo está ejecutandose Utilización Información, procesos de sincronización de hilos Nombre Migraciones Tipo de dato Entero Descripción Numero de migraciones del hábitat en la sesión actual Utilización Contador: DoIncMigraciones Nombre NumMigraciones Tipo de dato Entero Descripción Numero máximo de migraciones que realiza el hábitat Utilización Cota superior: DoIncMigraciones Nombre CountMigraciones Tipo de dato Entero Descripción Contador de migraciones por ciclo evolutivo Utilización Contador: DoIncMigraciones Nombre MejorPoblacion Tipo de dato Entero Descripción Indice de la mejor población del habitat (mejor peso promedio) Utilización Información: DoDecPobsRun, FindBestPob, Migrar Nombre PobsRun Tipo de dato Entero Descripción Número de poblaciones que están evolucionando Utilización Información: ReanudarHilosPob, DoDecPobsRun Nombre StopValue Tipo de dato Real Descripción Valor máximo que se debe encontrar para que el algoritmo pare ed inmediato Utilización Cota inferior Nombre Estado Tipo de dato EstadoHabitat Descripción Estado en que se encuentra el habitat Utilización Información: DoIncMigraciones, Play, DoDecPobsRun, DoEndJumpHab Nombre TipoMigracion Tipo de dato TipoDeMigracion Descripción Forma en que se intercambian los individuos del las porblaciones del habitat Utilización Información de decición: Migrar Nombre NumMigrantes Tipo de dato Integer Descripción Cantidad de individuos que se intercambian entre poblaciones Utilización Cantidad: Migrar Nombre TipoNormalizador

Page 146: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

124

Tipo de dato TipoDeNormalizador Descripción Forma en que se calcula el normalizador del costo Utilización Información de decición: SetHabitat Nombre Normalizador Tipo de dato Moneda Descripción Valor del normalizador de costo Utilización Valor calculado: SetHabitat Nombre Fiestas Tipo de dato VectorIntero Descripción Vector con la posicion de los días festivos respecto a la Fecha Utilización Información para calculodel costo de la asignación Nombre CostoHoraEmpleado Tipo de dato VectorMoneda Descripción Vector del costo de la hora del empleado Utilización Información para calculodel costo de la asignación Nombre InfoEmpleado Tipo de dato Cadena Descripción Información adicional del empleado en el mismo orden de CostoHoraEntrada Utilización Información Nombre Poblaciones Tipo de dato Lista Descripción Referencia a todos las poblaciones que hacen parte del hábitat Utilización Referencia: Delete, CrearHilosPob, ReanudarHilosPob, LibararHilosPob, Play,

DoIncMigraciones, DoDecPobsRun, FindBestInd, FindBestPob, Migrar, Reset

6.5.4.4.2 Métodos

Nombre Add Tipo de método Procedimiento Descripción Adiciona una población al hábitat Parámetros X : objeto Poblacion a adicionar Retorna No aplica Nombre Delete Tipo de método Procedimiento Descripción Borra una población Parámetros Index : Indice de la población a eliminar Retorna No aplica Nombre Play Tipo de método Procedimiento Descripción Inicia la evolución Parámetros No tiene Retorna No aplica

Page 147: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

125

Nombre DoDecPobsRun Tipo de método Procedimiento Descripción se ejecuta cuando una población cumple el ciclo de genetaciones Parámetros PobIndex : indice de la población que se detuvo Retorna No aplica Nombre DoIncPobsRun Tipo de método Procedimiento Descripción se ejecuta cuando una población inicia su ciclo evolutivo Parámetros No tiene Retorna No aplica Nombre FindBestPob Tipo de método Funcion Descripción Encuentra la mejor población (con mejor peso promedio) Parámetros No tiene Retorna entero, con el índice de la mejor población Nombre findBestIndPob Tipo de método Funcion Descripción Encuentra la población con el mejor individuo y establece en cada poblacion la

propiedad MejorInd como el mejor indiduo de cada una Parámetros No tiene Retorna entero, con el índice de la población que contiene al mejor individuo Nombre CalcularNormalizador Tipo de método Funcion Descripción Calcula el normalizador Parámetros Tipo : tipo de normalizador Retorna modenda: valor del normalizador Nombre Migrar Tipo de método Procedimiento Descripción inicia la migración en las poblaciones del hábitat Parámetros No tiene Retorna No aplica Nombre CrearHilosPob Tipo de método Procedimiento Descripción crea los hilos que iniciaran la evolución de las respectivas poblaciones Parámetros No tiene Retorna No aplica

Nombre ReanudarHilosPob Tipo de método Procedimiento Descripción Reactiva los hilos de las pobalciones respectivas Parámetros No tiene Retorna No aplica

Page 148: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

126

Nombre LiberarHilosPob Tipo de método Procedimiento Descripción Reactiva los hilos de las pobalciones respectivas para que terminen su ejecución Parámetros No tiene Retorna No aplica Nombre Check Tipo de método Funcion Descripción Verifica que las configuraciones del habitat sean las correctas Parámetros No tiene Retorna cadena: mensaje de error, sino una cadena vacía Nombre Reset Tipo de método Procedimiento Descripción Detiene la evolución del habitat Parámetros No tiene Retorna No aplica

6.5.4.4.3 Diagrama de Estado

6.5.4.5 Objeto HiloHabitat

6.5.4.5.1 Propiedades

Figura 24. Diagrama de estado del objeto Hábitat

Page 149: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

127

Nombre IdHabitat Tipo de dato Habitat Descripción Referencia al hábitat al que pertenece el hilo Utilización se utiliza la referencia para iniciar el proceso evolutivo en un hilo independiente: Execute Nombre Terminar Tipo de dato Booleano Descripción Switche para detener la evolución del hábiata referenciado por el hilo Utilización Especifica el detenimiento del hilo (en caso de que se este ejecutando): Execute

6.5.4.5.2 Métodos

Nombre Ejecutar Tipo de método Procedimiento Descripción Contiene el código de evolución del habitat Parámetros No tiene Retorna No aplica

6.5.4.5.3 Diagrama de Estado

Figura 25. Diagrama de estado del objeto HiloHabitat

Page 150: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

128

6.5.5 Descripción de procesos

Nombre del proceso Nueva asignación Descripción Opción que permite crear o establecer los

parámetros que empleará el algoritmo para realizar la búsqueda de la solución.

Nombre del proceso Abrir asignación Descripción Opción que permite abrir una asignación

existente, para realizar una nueva búsqueda o modificar los parámetros de búsqueda y empezar un nuevo proceso.

Nombre del proceso Selección de personas Descripción Clasificación de las personas que serán

asignadas para laborar en un determinado período.

Entrada Código del empleado, nombre, apellido, y salario de personas a ser clasificadas.

Salida Datos de las personas seleccionadas. Resumen de la lógica

Realizar una consulta por cargos y departamentos. Ejecutar la consulta y seleccionar las personas que serán asignadas, el número de personas lo determina el usuario.

Nombre del proceso Configurar la asignación Descripción Captura de la información correspondiente a la

asignación que se desee buscar. Entrada No de turnos, horas a laborar por semana, No de

personas por turno nocturno, No personas por turno.

Salida Datos que serán constantes durante el proceso de búsqueda de la solución de la asignación correcta.

Resumen de la lógica

Alimentar el módulo de configuración de la asignación, empleando las alternativas de respuesta que presenta el formulario.

Page 151: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

129

Nombre del proceso Establecer fechas y festivos. Descripción Se determina el período a laborar, incluyendo los

días festivos. Entrada Fecha inicial y final del período, días festivos Salida Período a laborar en días, incluyendo los festivos. Resumen de la lógica

Alimentar el módulo de establecer fechas y festivos, llenado los campos de la fecha inicial y final, mediante el uso de calendarios visuales y seleccionando los días lo laborales.

Nombre del proceso Explorador / opción configuración avanzada. Descripción Opción que permite acceder al módulo de

configuración avanzada.

Nombre del proceso Configurar hábitat Descripción Captura de la información correspondiente a la

configuración del hábitat. Entrada Valor de parada, cálculo normalizador del costo,

tipo de migración, No de individuos por migración, No de migraciones por ciclo.

Salida Datos que serán constantes durante el proceso de búsqueda de la solución de la asignación correcta.

Resumen de la lógica

Alimentar el módulo de configuración del hábitat, empleando las alternativas de respuesta que presenta el formulario.

Nombre del proceso Configurar población Descripción Captura de la información correspondiente a la

configuración de la población. Entrada Tamaño, generaciones por migración,

coeficientes de factores del peso. Salida Datos que serán constantes durante el proceso

de búsqueda de la solución de la asignación correcta.

Resumen de la lógica

Alimentar el módulo de configuración de la población, empleando las alternativas de respuesta que presenta el formulario.

Page 152: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

130

Nombre del proceso Configurar población Descripción Captura de la información correspondiente a la

configuración de la población. Entrada Tamaño, generaciones por migración,

coeficientes de factores del peso. Salida Datos que serán constantes durante el proceso

de búsqueda de la solución de la asignación correcta.

Resumen de la lógica

Alimentar el módulo de configuración de la población, empleando las alternativas de respuesta que presenta el formulario.

Nombre del proceso Configurar especie Descripción Captura de la información correspondiente a la

configuración de la especie. Entrada Modo de selección de parejas, tipo de

reproducción, tipo de reducción, criterio de reemplazo, tamaño de selección por grupos, porcentaje de reproducción, probabilidad de mutación.

Salida Datos que serán constantes durante el proceso de búsqueda de la solución de la asignación correcta.

Resumen de la lógica

El usuario determina los parámetros genéticos que empleará el algoritmo. La selección de los parámetros los determina mediante cuadros de alternativas y campos de valores enteros.

6.5.6 Definición de las estructuras de datos.

6.5.6.1 Diseño de la base de datos. La base de datos empleada por el

algoritmo está compuesta de cuatro tablas, formando una estructura

relacional.

Page 153: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

131

6.5.6.1.1 Estructura de tablas

6.5.6.1.1.1 Tabla Asignación. En esta tabla se registran las asignaciones

correspondientes a un período.

Campo Tipo de Dato Dimensión Descripción

ACONSEC Numérico Doble Consecutivo o índice

ACODIGO Cadena 254 carac. Código de la asignación

AEMPLEADO Cadena 6 caract. Código del empleado

AFECHA Fecha Corta Día, mes y año del turno

ATURNO Numérico Doble Clasificación del turno

Tabla 1. Estructura de la tabla Asignación.

6.5.6.1.1.2 Tabla Cargos. Esta tabla contiene la información de todos los

cargos registrados en el plan de cargos.

Campo Tipo de Dato Dimensión Descripción

CCODIGO Cadena 3 caract. Código del cargo

CNOMBRE Cadena 254 carac. Nombre del cargo

CDESCRIPCI Cadena 254 caract. Descripción u observaciones

Tabla 2. Estructura de la tabla Cargos

Page 154: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

132

6.5.6.1.1.3 Tabla Dpto. Esta tabla contiene la información de las

secciones o departamentos para los cuales se realice el proceso de

asignación automática.

Campo Tipo de Dato Dimensión Descripción

DCODIGO Cadena 4 caract. Código del departamento

DNOMBRE Cadena 254 carac. Nombre del departamento

DDESCRIP Cadena 254 caract. Descripción u observaciones

Tabla 3. Estructura de la tabla Dpto.

6.5.6.1.1.4 Tabla empleado. En esta tabla se registra la información de los

empleados que laboran en el hospital universitario.

Campo Tipo de Dato Dimensión Descripción

ECODIGO Cadena 6 caract. Código del empleado

ENOMBRES Cadena 16 carac. Nombres del empleado

EAPELLIDOS Cadena 16 caract. Apellidos del empleado

ECEDULA Cadena 11 caract. Número de cédula del empleado

ECARGO Cadena 3 caract. Código del cargo que desempeña

EDPTO Cadena 4 caract. Código del departamento

ESALARIO Numérico Doble Salario mensual

Tabla 4. Estructura de la tabla Empleado.

Page 155: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

133

6.5.6.1.2 Modelo Relacional

Figura 26.Modelo relacional de la base de datos del sistema.

Page 156: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

134

6.5.6.2 Estructura de relaciones entre los objetos de AG. Para el modelo

de AGs se usa una instancia del objeto Hábitat, una del objeto HioHabitat,

Figura 27. Descripción de objetos según enfoque Coud y Yourdon.

Page 157: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

135

una o más instancias del objeto Población e igual número de instancias

para el objeto HiloPoblación, en el estado inicial del modelo pueden no

existir instancias de objetos Individuos.

A continuación se muestra el diagrama de las relaciones Gen-Spec y Todo-

Partes del modelo evolutivo utilizado mediante la notación Coad y

Yourdon. (véase anexo C)

6.6 DESCRIPCIÓN DEL SOFTWARE El Sistema de Asignación de Recursos - SAR, Es un prototipo de

herramienta para asignación de recursos humanos desarrollado sobre la

base de la problemática que al respecto tiene el Hospital Universitario de

Cartagena. El sistema tiene por principal objetivo demostrar que es factible

desarrollar un programa de soporte a la asignación de turnos de la

institución basándose en un modelo de algoritmos genéticos que brinde

respuestas en un tiempo considerable. Con este prototipo no se pretende

reemplazar el actual modelo de asignación de recursos. Por la naturaleza

del proyecto se han omitido algunas consideraciones de la asignación que

no son relevantes para probar su objetividad, tal como el caso de las

vacaciones de empleados y las asignaciones de días de descanso que

simplemente delimitan el espacio de búsqueda. Está pues a consideración

de las directivas del HUC determinar la continuación del presente proyecto

Page 158: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

136

hasta elaborar un producto que cumpla con todos estándares; sin embargo

cabe resaltar que este prototipo es funcional y puede ser empleado como

soporte para la ejecución de asignaciones tentativas que luego serán

evaluadas por los responsables de la asignación.

Para la elaboración del software se emplearon: dos estaciones Windows 95

con 32 MB en memoria RAM y procesadores Intel® Celeron® de 400 Mhz y

Pentium® de 166 Mhz; como herramienta de programación se utilizó

Borland® Delphi® 4.0 versión profesional; con las siguientes

actualizaciones:

♦ Update Pack 3 para Borland® Delphi® 4 de Imprise® inc.

(Requiere Update Pack 2 para la instalación). Distribuido por

Imprise® para corrección errores y modificaciones de su producto

(d4pupd2.exe & d4pupd3.exe)

♦ Borland Database Engine Versión 5.10. Distribuido por Imprise®

para la actualización de su motor de base de datos relacional.

(bde510en.exe).

♦ Delphi® 4 VCL&RTL Recursos en Español de México: traducción

de los mensajes de la VCL (Visual Component Library) traducidos

por Favio [email protected] (d4RecEsp.zip).

Page 159: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

137

Los archivos reseñados se suministran en directorio:

\software\delphi

de el disco compacto que acompaña este documento, o se pueden

encontrar en el web site de Imprise®: www.imprise.com. Se determinó no

usar herramientas, objetos y/o controles de terceros para mantener la

uniformidad del código y facilitar su evaluación.

Se hace uso además de una base de datos Microsoft® Acces® 97

independiente en donde reposa una réplica de la información actualizada

de la información de los empleados de la institución, se seleccionó el

formato de Microsoft® Acces® por su facilidad en la importación y

vinculación de tablas y otros archivos que permiten su fácil actualización

guardando independencia respecto al programa, el cual no fue concebido

como manejador de la información inherente a los empleados del Hospital;

este además a adoptado a esta herramienta como su estándar

institucional. La base de datos además de las respectivas tablas tiene una

interfaz gráfica* amigable basada en cuatro formularios, desarrollada para

mejorar la facilidad de actualizar la información de la base de datos.

* Necesario tener instalado Microsoft® Acces® 97.

Page 160: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

138

El proceso evolutivo en sí está soportado por cinco objetos, definidos cada

uno en una unidad, y en dos unidades de código donde se guardan

declaraciones y procedimientos, estos fueron diseñados de forma exclusiva

para esta aplicación. A continuación se presenta una reseña de las

unidades en mención:

Nombre de la Unidad

Descripción

Hábitat Se define la estructura de datos, métodos, eventos y propiedades del objeto THabitat.

HiloHab Se define la estructura de datos, métodos, eventos y propiedades del objeto ThiloHab (hilo de ejecución).

Población Se define la estructura de datos, métodos, eventos y propiedades del objeto TPoblación.

HiloPob Se define la estructura de datos, métodos, eventos y propiedades del objeto Tpoblación (hilo de ejecución).

Individuo Se define la estructura de datos, métodos y propiedades del objeto Tpoblación.

Biblioteca Se implementan las funciones y procedimientos de aplicación general.

Tipos En esta unidad se definen los tipos de datos, registros, constantes y variables globales empleados por las unidades anteriores.

Tabla 5. Descripción de unidades de código

A continuación se detallan las partes del software que se considera

merecen una descripción adicional a las reseñadas en el diccionarios de

datos.

Page 161: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

139

6.6.1 Estructura del cromosoma. Como se estableció en la sección 1.1, un

cromosoma representa una posible solución al problema y hace parte del

espacio de búsqueda a explorar que se delimito en la sección 2.4. los

cromosomas son parte fundamental de la estructura de los individuos, de

hecho, los individuos no tienen razón de ser sin un cromosoma. El

cromosoma empleado en el este proyecto es un arreglo dinámico

compuesto por genes, que a su vez son arreglos dinámicos de vectores de

enteros, como se puede apreciar en la figura 9.

Cada posición de los vectores

de enteros guarda un valor que

oscila entre 0 y el número de

empleados a asignar. Este

número es asignado

incrementalmente, empezando

por uno (1), a un empleado

cuando este se selecciona para

su posible asignación de

turnos. El cero se reserva para

una requisición de turno no

asignada. Los vectores de los que se componen los genes representan las

requisiciones por turno que se necesitan, cada gen representa un día y

Figura 28. Estructura de un cromosoma.

Page 162: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

140

tiene vectores como turnos tiene el día, es decir cada vector contenido en

un gen guarda las personas asignadas (tantas como requisiciones haya) en

el turno específico, la estructura soporta un número variable de turnos

pero como se especifico la sección 2.2 el problema se ha delimitado a tres

turnos por día se mantienen constantes. Al representar las asignaciones

diarias con genes, como es obvio un cromosoma representa entonces la

asignación de un período, que se normalmente se estipula de un mes. Las

dimensiones de las estructuras genéticas son:

♦ Número de asignaciones: número de requisiciones o

asignaciones por turno.

♦ Número de segmentos: número de turnos por día.

♦ Número de genes: número de días de la asignación.

♦ Numero de símbolos: número de empleados que se

seleccionaron para la asignación.

Estos parámetros se almacenan en la propiedad Genero del objeto Hábitat,

dado que son las mismas para todas las poblaciones, y por ende para

todos los individuos, permite que dos individuos de diferentes especies y

poblaciones, puedan aparearse. La ubicación de los parámetros de la

estructura genética en el Hábitat también hace posible la migración entre

poblaciones.

Page 163: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

141

En la creación de los cromosomas se utiliza el método protegido GetGen;

este regresa una variable de tipo Gen que contiene una asignación diaria

válida, esto es, que no permite que un individuo sea asignado más de una

vez al día, acorde con la delimitación del espacio muestral. Este método es

además usado

6.6.2 La Función de evaluación. El objeto Individuo evalúa internamente

su cromosoma utilizando el método público evaluar; este hace un llamado

al método protegido Idoneidad que establece los factores del peso, que son

los parámetros utilizados para la obtención del peso; son estos:

1. Costo: costo en pesos de la asignación.

2. Personal: número de personas asignadas.

3. Desviación estándar: desviación estándar de las horas asignadas

por persona, muestra la equidad de la asignación.

4. Turnos Dobles: número de veces que se le asigna a algún

empleado dos turnos seguidos o dos noches consecutivas.

5. Horas > 40: número de veces que a algún empleado se le asignan

en promedio más de 40 horas semanales.

6. Turnos de noche > 2: numero de veces que a algún empleado se

le asignan en promedio más de dos turnos nocturnos por

semana.

Page 164: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

142

En el método idoneidad están implementadas las funciones salud y

castigo. Una función de castigo es aquella que penaliza a los individuos

que han infringido una restricción marcándolos para ser eliminados o

modificando su peso para que sean menos aptos para sobrevivir, en el

caso de este proyecto se utiliza el segundo esquema. Los factores que

determinan la salud de un individuo son:

♦ Desviación estándar.

♦ Costo de la asignación.

♦ Personal asignado.

Estos factores son inversamente proporcionales a la salud del individuo;

por otro lado los factores que determinan el castigo del individuo son:

♦ Turnos dobles.

♦ Horas > de 40.

♦ Turnos noche > 2.

Estos factores representan restricciones al modelo, su valor ideal es de

cero, sin embargo esto no es camisa de fuerza y es posible contemplar

soluciones en que estos factores tengan valores distintos de cero, como en

el caso de escasez de personal o austeridad presupuestal.

Page 165: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

143

El método Evaluar normaliza los factores del peso, a excepción de la

desviación estándar, para que sus valores sean equilibrados a la hora de

obtener el peso; de no ser así la variable costo seria la que determinaría de

mayor forma el valor del peso. La normalización se realiza de la siguiente

manera:

Costo: se divide el costo de la asignación por uno de los siguientes valores:

1. El costo de la asignación suponiendo que todos los empleados

devenguen el salario más bajo.

2. El costo de la asignación suponiendo que todos los empleados

devenguen el salario más alto.

3. El costo de la asignación suponiendo que todos los empleados

devenguen el salario promedio.

4. El costo de la asignación suponiendo que todos los empleados

devenguen el salario promedio de los valores extremos.

5. 1, es decir no se normaliza.

Personal: Porcentaje de empleados asignados, es decir, el número de

empleados asignados dividido entre el número de empleados seleccionados

para la asignación.

Turnos Dobles: razón del número de turnos dobles por personas

asignadas.

Page 166: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

144

Horas > 40: razón del número promedio de veces que se asignan más de

cuarenta horas semanales por individuo.

Turnos de noche > 2: razón del número promedio de veces que se asignan

más de dos turnos semanales por individuo.

Por último el método Evaluar multiplica los factores por sus coeficientes,

previamente establecidos en la población y la sumatoria de estos

productos representa el peso del individuo.

6.6.3 Proceso de selección de individuos. Para la operaciones de

reproducción y eliminación es necesario hacer una selección de un

determinado número de individuos de la población; esta selección puede

realizarse de cinco maneras:

1. Selección por peso: los individuos con mayor peso tienen mayor

probabilidad se ser escogidos.

2. Selección por rango: la selección por pesos presenta inconvenientes

en el caso de que las diferencias de peso entre un individuo a otro

sea muy grandes o muy pequeñas, pues en el primer caso los

mejores individuos tienen una probabilidad inmensa de ser

escogidos lo que puede ser desventajoso para la exploración del

Page 167: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

145

espacio muestral, y en segundo caso los peores individuos tienen

casi la misma posibilidad de ser escogidos que los mejores. Una

alternativa a este problema es la selección por rango en el que se

ordenan por peso los individuos y a se reparten probabilidades de

acuerdo al orden.

3. Selección elitista: simplemente se escoge a los mejores

directamente, sin una probabilidad asociada.

4. Selección por torneo: tomando grupos al azar de se escoge al

individuo con mejor peso y se repite el proceso para el número de

individuos que se necesite seleccionar. Este tipo de selección tiene la

característica de que nunca se escogerá al peor individuo.

5. Selección aleatoria: se escogen los individuos al azar.

En la selección de las parejas se busca a los individuos mas aptos,

mientras que la selección para reducción se buscan los menos aptos.

6.6.4 Relevo generacional. Es importante la forma en que las nuevas

generaciones entran en la población, esto se determina mediante el criterio

de reemplazo que puede ser por:

1. Inmediato: ocurre cuando la descendencia reemplaza directamente

a sus progenitores.

Page 168: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

146

2. Inclusión: los nuevos individuos entran a competir directamente a

la población.

3. Inserción: la prole reemplaza a los individuos menos aptos.

6.6.5 Movimiento de individuos. En los AGs paralelos los individuos de

una población pueden relacionarse con los de las demás poblaciones.

Normalmente los escogidos para el intercambio o más bien para la

clonación a otras poblaciones son la elite de la población emisora. La

forma en como se mueven los individuos se especifica por el tipo de

migración:

1. Ninguna: los individuos permanecen en sus respectivas poblaciones.

2. Anillo: los individuos migran hacia la siguiente población.

3. Estrella: al iniciar la migración se escoge la mejor población,

teniendo en cuenta el peso promedio de los individuos de cada

población, y esta intercambia individuos con las restantes.

4. Red: Todas las poblaciones intercambian individuos.

5. Centralizada: se escoge una población que siempre realizará el

intercambio con las demás.

Page 169: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

147

6.6.6 Independencia de las poblaciones. Los objetos poblaciones son

totalmente independientes ente sí, esto es necesario para poder

implementar el paralelismo evolutivo. En cada Población se determinan las

características de la especie, que representa el modo de actuar o las

costumbres en las faenas evolutivas como son los modos de reproducción,

mutación, eliminación etc., y la manera en que cada factor del peso

contribuye al cálculo de este. El índice de contribución de los factores del

peso esta determinado, como se vio en la sección anterior, por los

coeficientes de los respectivos factores del peso, estos se establecen en la

población pues es una característica común a los individuos de una

misma población. Este grupo de propiedades a nivel población, de ninguna

manera inhabilitan a los individuos a migrar de una población a otra pues

se respeta su estructura genética, la cual como se mencionó en la sección

5.1.4.8.2 se encuentra definida en el Hábitat. El intercambio de individuos

entre poblaciones es factible entonces por que las dimensiones de sus

cromosomas son iguales, al pasar de una población a otra el individuo

inmigrante se encuentra ante un medio nuevo y posiblemente hostil, que

lo lleva a una competencia desleal frente a individuos que han

evolucionado y luchado durante muchas generaciones para llegar ahí o

que son el producto de la recombinación de individuos aptos en ese medio.

Las poblaciones pueden tener además distinto número de individuos y

Page 170: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

148

distinta frecuencia de migración, es decir, pueden variar cada cuantas

generaciones se detienen a migrar.

6.6.7 Algoritmo evolutivo. La ejecución de la evolución de las poblaciones

está implementada en el método público GeneratioNext del objeto

Población. La secuencia de los procesos de este método es como sigue:

Repetir

{

Seleccionar parejas a cruzar

Determinar el criterio de reemplazo

Cruzar parejas seleccionadas (la mutación está implícita aquí)

Eliminar individuos si hay exceso

Adicionar individuos si hay defecto

Seleccionar el mejor individuo

Si se encontró la solución terminar

}

Hasta se cumplan un número de generaciones

Este método es ejecutado, controlado y regulado en un Hilo de Ejecución

independiente propio del objeto Población que es del tipo HiloPoblacion.

6.6.8 Sincronización de hilos. Alternamente al hilo principal del programa,

en el momento en que se inicia la evolución el objeto Hábitat crea un

nuevo hilo del tipo HiloHabitat que es el encargado de llevar la secuencia

de la evolución del modelo. Este HiloHabitat crea los hilos de las diferentes

Page 171: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

149

poblaciones del Hábitat y espera a que cada uno de estos termine con la

evolución de su respectiva Población para luego determinar si le faltan

migraciones por cumplir. El manejo de hilos en este modelo permite

manejar un hilo por cada objeto durante toda la evolución, a diferencia del

modelo anterior, que creaba un hilo por objeto en cada migración,

desperdiciando así valiosos recursos.

6.6.9 La interfaz gráfica. El Programa cuenta con una Interfaz Múltiple de

Formularios (IMF) que permite presentar hasta cuatro subformularios al

tiempo cada uno con información inherente al proceso(ver figura 10),

dependiendo del criterio del usuario. Esta facilita la configuración de cada

uno de los objetos, además permite grabar y recuperar el Hábitat con sus

Poblaciones e Individuos, característica útil pues así es posible detener el

proceso para iniciarlo posteriormente y guardar poblaciones de individuos

saludables para usarlos como población inicial de un nuevo proceso. Para

mayor información, véase Manual del Usuario en anexo D.

Page 172: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

150

Figura 29 Interfaz del cuarto modelo

Page 173: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

151

CONCLUSIONES

• Los algoritmos genéticos resuelven el problema de asignación de

recursos humanos, en turnos de trabajo; de una manera efectiva y

eficiente en comparación con el sistema tradicional de asignación

empleado en el H.U.C.

• Dado el tamaño del espacio muestral de las posibles soluciones al

problema de la asignación, el uso de modelos matemáticos

convencionales como programación lineal resulta ser

operacionalmente infactible para modelos que como éste varían para

cada sección a la que se esté asignando.

• Los tiempos empleados por la herramienta SAR cumplen con las

expectativas operacionales propuestas por las directivas del HUC,

pues las asignaciones de personal se logran a lo sumo en una hora

por sección.

Page 174: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

152

• El uso de modelos distintos al de asignación de recursos, no

representan aportes significativos en la obtención de las

codificaciones y configuraciones del algoritmo empleado, pues estos

parámetros varían dependiendo de las características del problema.

• El sistema SAR que emplea una arquitectura de AG en paralelo,

produjo mejores resultados en la obtención de asignaciones

factibles, que los modelos anteriores a éste que se limitaban a

algoritmos seriales.

• Es posible implementar algoritmos genéticos paralelos con

herramientas de desarrollo convencionales y recursos de máquina a

nivel de microcomputadores (PCs).

• La herramienta desarrollada supera ampliamente al modelo

tradicionalmente empleado en el H.U.C.; además, brinda servicios de

valor agregado como son el control del costo de la asignación y la

equidad en la distribución de los turnos.

• El software despliega información detallada de cualquiera de las

asignaciones encontradas, permitiendo analizar y considerar

muchas otras alternativas a la solución recomendada.

Page 175: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

153

• EL uso de modelos de AGs con arquitectura paralela, permite tener

una mayor probabilidad de encontrar mejores resultados, por

cuanto se abarca un mayor espacio de búsqueda.

• Se logró implementar exitosamente en la representación de los genes

estructuras de datos (matrices), en lugar de las representaciones

tradicionales : cadena binaria en la que cada posición representa un

gen, y colección de datos numéricos en los que cada número

representa un gen.

Page 176: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

154

RESULTADOS ♦ Este proyecto es pionero en la realización de estudios en la

computación evolutiva, área de inteligencia artificial, demostrando la

capacidad académica e investigativa de la facultad de ingeniería de

sistemas para abordar proyectos de Instituciones externas mediante

modelos experimentales.

♦ Con la implantación de una herramienta computacional para la

programación de horarios de trabajo, se centraliza el proceso de la

elaboración de planillas de turno; éste lo efectuaría el departamento de

recursos humanos, y no cada jefe de departamento, como hasta ocurre.

Esto es posible por la disminución del tiempo y la eficacia de la

herramienta para realizar el proceso. Centralizando el proceso de

asignación, se logra controlar los recursos financieros de la institución,

dado que la herramienta contempla restricciones como el costo de la

asignación.

Page 177: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

155

♦ El proyecto concebido como proceso investigativo, es una solución de

un problema real del Hospital Universitario de Cartagena, aplicable a

instituciones con requerimientos similares.

♦ Las configuraciones basadas en selecciones por rango y peso

presentaron mejores prestaciones que los basados por elite, torneo y

rango.

Page 178: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

156

RECOMENDACIONES

♦ Es de suma importancia un buen diseño de las estructuras genéticas

(cromosoma y genes) de los individuos y la definición de la función

evaluadora, para el correcto funcionamiento de cualquier modelo de

AGs.

♦ La implementación del modelo de AG basados en el análisis y diseño

orientado a objetos tiene ventajas significativas con respecto a las

formas tradicionales, dado que facilita la codificación y relación entre

las estructuras internas del modelo de AG.

♦ El sistema SAR está diseñado para realizar búsquedas en paralelo,

gracias a la implementación de hilos de ejecución que brinda un pseudo

paralelismo al destinar tiempo del procesador a cada hilo según su

prioridad. Las pruebas de SAR se realizaron en PCs con configuraciones

básicas con resultados satisfactorios. Aunque para este caso en

particular los resultados fueron obtenidos de manera satisfactoria con

los recursos descritos, es recomendable en futuros desarrollos utilizar

Page 179: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

157

arquitecturas paralelas en hardware y/o sistema operativo (maquinas

con multiprocesadores y/o sistemas distribuidos).

♦ Migrar las estructuras de SAR a un modelo de objetos distribuidos

como CORBA o COM para explotar más a fondo las prestaciones del

paralelismo implícito y explícito de los algoritmos genéticos paralelos.

♦ Dado el alto uso del procesador que tiene la aplicación (aprox. 90%

según el medidor de recursos de Windows 95) es aconsejable no utilizar

otros programas mientras el SAR este en estado de evolución.

♦ En equipos con recursos limitados en la capacidad de procesamiento

(inferiores a Pentium 166 Mhz) y de memoria (menos de 32 MB en Ram)

se sugiere emplear con poblaciones pequeñas.

♦ Este proyecto esta concebido para servir como base a futuras

investigaciones de AGs o nuevas implementaciones del mismo algoritmo

pues los procedimientos evolutivos están desligados de las fórmulas que

calculan el peso de los individuos. Así pues, las modificaciones

significativas solo se llevan a cabo en los objetos individuos gracias a la

encapsulación del código.

Page 180: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

158

BIBLIOGRAFIA

♦ DARWIN, Charles. El Origen de las Especies. 6 ed. Fondo Editorial Progreso. Santafé de Bogotá. 1996. 380 p.

♦ DAVIS, Lawrance. HandBook of Genetic Algorithms. 3 ed.

Internationational Thomson Publishing. New York. 1996. 385 p. ♦ INPRISE CORPORATION. Developer’s Guide, Borland Delphi™ 4 for

Windows 95 and Windows NT. Imprise Corp. U.S.A. 1998.968 p. ♦ INPRISE CORPORATION. Object Pascal Language Guide, Borland

Delphi™ 4 for Windows 95 and Windows NT. Imprise Corp. U.S.A. 1998.263 p.

♦ JOYANES, Luis. Programación en turbo pascal 7. 3 ed. Mc Graw-Hill.

Madrid. 1998. 799 p. ♦ JOYANES, Luis. Programación orientada a objetos. 2 ed. Mc Graw-Hill.

Madrid 1998. 658 p. ♦ KENDALL, Kenneth, Julie Kendall. Análisis y Diseño de sistemas de

Información. 3 ed. Pretince Hall. México D.F. 1997. 942 p. ♦ PRESSMAN, Roger S. Ingeniería del software, un enfoque práctico. 4 ed.

Mc Graw Hill. Madrid. 1999. 823 p. ♦ REISDORPH, Kent. Aprendiendo Borland Delphi 4 en 21 días. Pretince

Hall. México DF. 1999. 706 p. ♦ SENN, James A. Análisis y Diseño de sistemas de Información. 2 ed.

Mc Graw Hill. México DF. 1995. 849 p.

Page 181: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

159

♦ SILBERSCHATZ, Abraham; etal, Fundamentos de bases de datos. 2 ed. Mc Graw Hill. Madrid. 1998. 884 p.

♦ WALPOLE, Myers. Probabilidad y estadística. 4 ed. Mc Graw Hill.

México DF. 1993. 797 p.

WEBSITES

♦ http://www.faqs.org/faqs/ga/

♦ http://www.vilspa.esa.es/~jrz/mainesp.html

♦ http://www.ing.udec.cl/~ivillavi/

♦ http://www.trajan-software.demon.co.uk/sugal.htm.

Page 182: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

Anexo A. Plan de cargos del H.U.C.

Page 183: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

161

Page 184: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

162

Page 185: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

163

Page 186: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

164

Page 187: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

165

Page 188: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

166

Page 189: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

167

Page 190: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

Anexo B. Planillas de asignación de turnos del HUC

Page 191: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

169

Page 192: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

170

Page 193: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

Anexo C. Manual del Usuario para el Sistema de Asignación de Recursos SAR.

Page 194: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

172

SAR

Sistema para Asignación de Recursos Humanos

Manual del Usuario

Page 195: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

173

1 ACERCA DE SAR

El Sistema de Asignación de Recursos - SAR, es un prototipo de

herramienta para asignación de recursos humanos desarrollado

basándose en las necesidades y requerimientos del Hospital Universitario

de Cartagena.

SAR, brinda una interfaz gráfica intuitiva y de fácil manejo tanto para el

usuario que realiza la asignación para un período, como para usuarios que

deseen mejorar el comportamiento del SAR, configurando las opciones que

permiten cambiar los parámetros del algoritmo genético; ésta técnica es la

empleada por SAR, para obtener asignaciones factibles de horarios.

Page 196: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

174

2 INSTALACIÓN

2.1 CÓMO INSTALAR SAR Para instalar SAR siga las siguientes recomendaciones:

1. Inserte el disco que tiene la etiqueta SAR disco 1.

2. Pulse en Inicio la opción ejecutar.

3. En el recuadro abrir escriba a:\setup ó d:\setup.

4. Pulse el botón aceptar.

5. El asistente le guiará en el proceso, indicando los pasos para

realizar una correcta instalación.

2.2 REQUERIMIENTOS 2.2.1 Software

SAR es una herramienta diseñada para correr en plataforma Windows 95,

Windows 98 ó Windows NT Server 4.0 SP3.

Para ejecutar el entorno gráfico de la base de datos se requiere tener

instalado MS ACCES 97.

2.2.2 Hardware

SAR Requiere ser instalado en equipos con una configuración básica de:

Procesador Pentium 166 Mhz ó mayor

Memoria RAM 32 Mb

Page 197: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

175

Espacio en disco 10 MB

Resolución 800 x 600 pixels.

Page 198: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

176

3 USANDO SAR En esta sección se describen los componentes de la interfaz principal de

SAR.

La barra de herramientas, situada en la parte superior de la ventana

principal debajo de la barra del menú, consiste en un número de pequeños

botones identificados por las etiquetas.

� Botón Nuevo: despliega una interfaz de captura de información

necesaria para realizar el proceso de generar una asignación de

turnos.

� Botón Abrir: carga la información de una asignación de períodos

anteriores, sobre ésta se pueden realizar cambios en su

información y proceder a generar una nueva asignación.

� Botón Propiedades: despliega la interfaz para establecer los

parámetros de la asignación de horarios para un período.

Page 199: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

177

� Botón Explorador: despliega la interfaz para establecer los

parámetros del algoritmo genético, ver Módulo de configuración

avanzada.

� Botón Información: despliega la interfaz que indica el estado de la

búsqueda de la asignación.

� Botón Iniciar: Ejecuta la búsqueda de la solución, previa

configuración del módulo básico.

Barra de estado: Muestra información de estado y propiedades para

elementos seleccionados.

Barra de Menú: Presenta las mismas opciones que la barra de

herramienta, además de las siguientes:

� Opciones: Ejecuta la ventana de configuración de los valores

iniciales de las propiedades de un hábitat.

� Ayuda: Ejecuta el archivo de ayudas de SAR.

1. MÓDULO DE CONFIGURACIÓN BÁSICA 1.1 Configuración de la Asignación

Este formulario permite al usuario determinar los datos básicos que SAR

requiere para ejecutar la búsqueda de una solución.

El usuario debe suministrar la siguiente información:

Page 200: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

178

La barra de herramientas proporciona botones para activar comandos: En

el recuadro nombre escriba el nombre de la asignación.

1. En el recuadro descripción información adicional sobre la asignación, es

opcional.

2. En el recuadro No de asignaciones x turno, seleccione el número de

empleados que serán asignados por turno.

3. En el recuadro No de asig. nocturnas, seleccione el número de

empleados que serán asignados para el turno nocturno.

4. En el recuadro horas trabajo X semana, seleccione la cantidad de horas

que se laborarán durante una semana.

1.2 Configuración de Fechas

En la sección fechas el usuario determina el período a laborar en días.

Page 201: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

179

1. Pulsando click en la lista desplegable fecha inicial, despliega un

calendario que le permite seleccionar una fecha.

2. Pulsando click en la lista desplegable fecha final, despliega un

calendario que le permite seleccionar una fecha.

3. Pulsando el botón adicionar y ubicado sobre una fecha establece los

días que se clasifican como festivos o no laborables.

4. Pulsando el botón adicionar y ubicado sobre una fecha establece los

días que se clasifican como festivos o no laborables.

5. Ubicado sobre una fecha de la lista, y pulsando el botón eliminar borra

una fecha.

1.3 Selección de empleados

En este módulo el usuario realiza una clasificación de los empleados que

se deseen asignar.

Page 202: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

180

1. Pulse el botón consulta.

2. En la lista desplegable cargo seleccione el cargo que desempeñan las

personas que desea asignar.

3. En la lista desplegable departamento seleccione el departamento o

sección en la cual laboran las personas que desea asignar.

4. Pulse el botón ejecutar para procesar la consulta. Posterior a esto se

presenta la siguiente información.

Page 203: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

181

5. Puede desplazarse a través de los registros de la matriz inferior.

Pulsando el botón adicionar ó doble clik agrega empleados a la matriz

ubicada en la sección superior; éstos serán los empleados a ser

asignados.

6. Ubicado en un registro de la matriz superior, elimina el registro de la

selección pulsando el botón eliminar

7. Pulse el botón actualizar para confirmar la información suministrada.

8. Luego de haber completado la información de los módulos

asignaciones, fechas y empleados, proceda con la búsqueda de la

solución pulsando el botón iniciar de la barra de herramienta.

Page 204: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

182

2. MÓDULO DE CONFIGURACIÓN AVANZADA Al módulo de configuración avanzada se accede pulsando el botón

explorador de la barra de herramienta, la información manejada

corresponde a la estructura y modo de operación de un algoritmo genético

paralelo. SAR, permite al usuario a través de éste módulo aplicar

fundamentos sobre la teoría de los algoritmos genéticos, éste a su vez

puede tener un uso didáctico.

2.1 Configuración del Hábitat

SAR presenta la sección de explorador de hábitat, donde el usuario

configura los parámetros del hábitat, población y especie.

Page 205: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

183

Pulsando con el ratón sobre las imágenes del árbol que representa la

estructura genética, accede el usuario a la ventana de configuración del

hábitat, población y especie.

1. Pulsando clic en la imagen hábitat del árbol, activa la sección de

configuración del hábitat.

2. En el recuadro valor de parada, determine el valor máximo para

detener la búsqueda.

3. En la lista cálculo normalizador del costo, seleccione la forma de

normalizar el costo de cada asignación.

4. En la lista tipo de migración, seleccione el método que empleará el

algoritmo para intercambiar individuos entre poblaciones.

5. En la lista No de individuos por migración, seleccione la cantidad de

individuos que serán intercambiados en cada migración.

6. En la lista No de migraciones por ciclo, seleccione la cantidad de

migraciones que se darán durante el proceso evolutivo.

Page 206: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

184

2.2.Configuración de la Población

SAR le permite establecer los parámetros de las poblaciones que se usarán

para la búsqueda de la solución. Pulsando click con el ratón en la división

población del árbol, se accede a la ventana de configuración de la

población.

1. En el recuadro tamaño, determine la cantidad de individuos de cada

una de las poblaciones.

2. En el recuadro Gen x migración, determine el número de generaciones

que se darán antes de proceder a migrar, esto re efectúa para cada

población.

3. Active la opción permitir ind. Iguales, si desea que puedan haber

individuos con igual estructura genética en una población.

Page 207: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

185

4. En la sección coeficientes de factores del peso, ubicado en el recuadro

de cada uno de los factores, puede mover el selector y configurar los

valores para cada uno de los factores.

5. Pulse el botón actualizar para confirmar la entrada de la información.

Nota: Para agregar y eliminar poblaciones e individuos, pulse los botones

Más / Menos.

2.3 Configuración de la Especie

SAR le permite establecer los parámetros de la especie. Pulsando click con

el ratón en la división especie del árbol, se accede a la ventana de

configuración de la especie.

Page 208: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

186

1. Haga click en la lista selección de parejas, para determinar el modelo de

selección para individuos que serán los progenitores de la siguiente

generación.

2. Haga click en la lista tipo de reproducción, para determinar la forma de

división del cromosoma.

3. Haga click en la lista criterio de reemplazo, para determinar el método

que establece la forma en los individuos nuevos entran a una

población.

4. En el recuadro selección múltiple de individuos, determine el número de

veces que un individuo puede ser escogido como padre. El valor cero

representa ilimitado.

5. En el recuadro tamaño de selección por grupos, determine el número de

individuos que serán escogidos como padres, si el tipo de reproducción

es elitista, en el tipo de reproducción por tornero representa el número

de individuos que compiten para ser seleccionados.

6. En el recuadro porcentaje de reproducción, determine el porcentaje de

individuos que se aparean en una población.

7. En el recuadro probabilidad de mutación, determine la probabilidad de

que un gen de un nuevo individuo mute.

3. MÓDULO DE RESULTADOS 3.1 Información de la Asignación

Después de ejecutar el proceso de búsqueda, SAR presenta la ventana de

información de la asignación, donde despliega los resultados de la

búsqueda. Esta información corresponde al individuo con mejor peso.

Page 209: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

187

La ventana información de la asignación presenta cuatro secciones:

� Encabezado: nombre y descripción de las asignación.

� Análisis de los factores del peso: valores resultantes de la desviación

estándar, costo de la asignación, numero de personas con turnos

dobles, cantidad de personas que fueron asignadas, número de

personas que pasaron de cuarenta horas de labores por semana,

número de personas que laborarán más de dos turnos nocturnos en

una semana, total del peso del individuo(asignación).

� Cuadrícula de información: datos de los empleados asignados.

� Cuadrícula de factores: valores de los factores del peso por cada

empleado.

� Cuadrícula de asignación: distribución de los horarios de trabajo para

cada empleado.

Si desea imprimir la planilla de asignación pulse en el botón imprimir.

Page 210: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

188

3.2 Información del Proceso de Búsqueda

SAR presenta una ventana que informa sobre el comportamiento del

proceso de búsqueda, a ésta se accede pulsando el botón información de la

barra de herramientas de la ventana principal.

Page 211: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

Anexo D. Notación de representación de objetos según enfoque Coad y Yourdon.

Page 212: ASIGNACIÓN DE RECURSOS HUMANOS MEDIANTE ALGORITMOS …

190

Figura 30. notación de representación de objetos según enfoque coad y yourdon