Por haberme apoyado a lo largo de mi vida, brindándome fuerzas para salir adelante ante cualquier adversidad.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Por haberme apoyado a lo largo de mi vida, brindándome fuerzas para salir adelante ante cualquier adversidad."

Transcripción

1 i

2 AGRADECIMIENTOS A DIOS: Por haberme apoyado a lo largo de mi vida, brindándome fuerzas para salir adelante ante cualquier adversidad. A MIS PADRES: Por tener y jamás perder la confianza, por ese apoyo y preocupaciones incondicionales que solo los verdaderos padres pueden brindar a un hijo. A MIS BEBES: Mis chiquititos Koda y Cosita que han llenado mi vida de alegrías y preocupaciones, que me han acompañado a lo largo de todo este trayecto y lo seguirán haciendo ya sea terrenal o espiritualmente, por ese amor y lealtad incondicional que los mejores amigos puedan tener. A MI NOVIA: Por minimizar mis preocupaciones, brindarme valor cuando lo requiera y darme gratos momentos. A MIS ASESORES: Por haberme brindado su tiempo y conocimientos necesarios para la culminación de este proyecto. A CONACYT: Por haber financiado mis estudios. ii

3 CAPÍTULO I INTRODUCCIÓN PROBLEMÁTICA GENERAL METODOLOGÍA DEFINICIÓN DEL PROBLEMA DE ASIGNACIÓN DE HORARIOS CLASIFICACIÓN DEL PROBLEMA TRABAJO RELACIONADO JUSTIFICACIÓN Justificación científica Justificación tecnológica HIPÓTESIS OBJETIVOS Objetivo general Objetivos específicos ORGANIZACIÓN DEL DOCUMENTO... 7 CAPÍTULO II COMPUTACIÓN EVOLUTIVA INTRODUCCIÓN HISTORIA DE LA COMPUTACIÓN EVOLUTIVA CARACTERÍSTICAS GENERALES DE LOS ALGORITMOS EVOLUTIVOS COMPONENTES DE LOS ALGORITMOS EVOLUTIVOS Representación Función de calidad Población Mecanismo de selección de padres Mecanismo de selección de supervivientes Operadores de variación Mutación Recombinación o cruza Inicialización Condición de término CLASIFICACIÓN DE LA COMPUTACIÓN EVOLUTIVA Algoritmos Genéticos Representación Selección de candidatos Mutación Recombinación ó cruza Estrategias Evolutivas Mutación Recombinación o cruza Programación Evolutiva Mutación Programación Genética Mutación Recombinación o cruza Programación Memética Características generales Estructura CAPÍTULO III CASO DE ESTUDIO FACULTAD DE PSICOLOGÍA ANÁLISIS DEL PROBLEMA DE ASIGNACIÓN DE HORARIOS SISTEMA ACTUAL CAPÍTULO IV DESARROLLO Y RESULTADOS DE LA METODOLOGÍA PARA SOLUCIONAR EL PROBLEMA DE ASIGNACIÓN DE HORARIOS DE LA FACULTAD DE PSICOLOGÍA UNIVERSIDAD VERACRUZANA CAMPUS XALAPA DESARROLLO Y RESULTADOS DE LA METODOLOGÍA PARA LA SOLUCIÓN DEL PROBLEMA Aplicación de algoritmos inspirados en la naturaleza en su versión original iii

4 Representación Función de Calidad Selección de Padres Selección de sobrevivientes Operadores Cruza Mutación Inicialización Condición de paro Evaluación del desempeño del algoritmo Representaciones Alternativas Representación decimal Operadores Cruza Mutación Evaluación del desempeño del algoritmo Esquemas Poblacionales Evaluación del desempeño del algoritmo Algoritmo híbrido Representación Operadores Operador Operador Evaluación del desempeño del algoritmo Modificación al algoritmo memético Inicialización Evaluación del desempeño del algoritmo VISUALIZACIÓN GRÁFICA DE LOS DATOS PRUEBAS ESTADÍSTICAS Prueba de Kolmogorov Smirnov de una muestra Prueba de Wilcoxon Prueba de Friedman Prueba de Kruskal-Wallis CAPÍTULO V CONCLUSIONES ANÁLISIS DE LA METODOLOGÍA UTILIZADA ANÁLISIS DE LA HIPÓTESIS PLANTEADA ANÁLISIS DE LOS OBJETIVOS PLANTEADOS TRABAJO FUTURO BIBLIOGRAFÍA...78 iv

5 Capítulo I introducción 1.1. Problemática general El desafío del problema de asignación de horarios se ve acrecentado en las instituciones educativas, ya que en ellas el problema se presenta cotidianamente con cada cambio de periodo escolar. En este tipo de instituciones el problema general consiste en proponer una planificación de los recursos escolares (alumnos, profesores, aulas, equipo educativo etc.) que cumpla con todas las restricciones impuestas y obtenga una solución aceptable en un tiempo moderado. Como tal, esto no es una tarea trivial, ya que debido al número de restricciones impuestas, estos problemas normalmente se vuelven consumidores de tiempo y difíciles de resolver ya que en ellos existe una proporción directa entre el tiempo y la calidad de la solución, motivo por el cual han sido objeto de estudio de diversos investigadores, e incluso han originado competencias internacionales tales como international timetabling competition organizada por metaheuristics networks[2]. Cabe mencionar que los problemas de asignación de horarios pueden ser solucionados con diferentes técnicas tradicionales tales como búsquedas exhaustivas o programación lineal. Sin embargo, este tipo de técnicas normalmente sólo son capaces de resolver instancias pequeñas del problema[43]. Para problemas con una gran cantidad de insumos el tiempo computacional puede ser inviable, ademas de no garantizar la satisfacción de las restricciones. Debido a lo anterior, han sido desarrollados diversos algoritmos con técnicas no tradicionales tales como búsquedas locales, algoritmos genéticos y metaheurísticas en general, que sean capaces de resolver este tipo de problemas en un tiempo menor y que aseguren hasta cierto punto la satisfacción de las restricciones. En este trabajo se resolverá una instancia real de un problema de asignación de horarios en instituciones educativas, tomando como caso de estudio la Facultad de Psicología de la Universidad Veracruzana y se dará solución al mismo mediante el uso de un algoritmo evolutivo, todo ello siguiendo una metodología de aplicación de este tipo de algoritmo que ha sido desarrollada en el Laboratorio Nacional de Informática Avanzada (LANIA) A.C. que se describe a continuación. 1.2.Metodología Parte de la misión de LANIA se basa en la aplicación de tecnología emergente en la resolución de problemas reales en el ámbito educativo y 1

6 empresarial. derivado de ello, el grupo de investigación en cómputo inspirado en la naturaleza ha propuesto una serie de pasos que permiten la resolución de problemas reales usando algoritmos meta-heurísticos biológicamente inspirados [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados en aplicar un algoritmo de este tipo en la resolución de un problema particular. Esta metodología cuenta con los siguientes pasos: 1. Aplicación de algoritmos inspirados en la naturaleza en su versión original: el primer paso consiste en aplicar el algoritmo que, de acuerdo al estudio del estado del arte, sea el más popular al resolver un problema particular, en su versión original (sin modificaciones) y evaluar si el problema se resuelve de manera satisfactoria. Para ello se asume un diseño experimental adecuado y que proporcione evidencia sólida del desempeño del algoritmo. 2. Representaciones alternativas: el segundo paso, en el caso de que los resultados no fueran satisfactorios en el paso previo, consiste en diseñar representaciones alternativas a las soluciones del problema, de manera que el espacio de búsqueda que se define sea diferente y donde la búsqueda pudiera eficientarse y, así, resolver el problema de manera satisfactoria. Este cambio de representación puede involucrar el cambio de los operadores de variación que permiten generar nuevas soluciones a partir de las ya existentes. 3. Esquemas poblacionales: si las representaciones alternativas no funcionaran, se deberá diseñar un esquema donde diferentes poblaciones de soluciones manejen diferentes representaciones del problema y exista un mecanismo de control que permita que todas ellas evolucionen de manera paralela y colaborativa, para verificar si, en conjunto, puedan resolver el problema. 4. Hibridación: consiste en combinar dos algoritmos de búsqueda de manera que puedan, en conjunto, resolver el problema. Existen dos posibilidades, el enfoque combinado (dos algoritmos meta-heurísticos que manejan búsqueda global) o el enfoque memético (un algoritmo meta-heurístico de búsqueda global con un algoritmo de búsqueda local). 5. Enfoque híper-heurístico: consisten en la generación de un mecanismo de control que permita la ejecución de manera conveniente de tres o más algoritmos meta-heurísticos, donde cada uno de ellos se activa de acuerdo a las decisiones del mecanismo de control que están basadas en el desempeño de cada uno de ellos Definición del problema de asignación de horarios Los problemas de asignación de horarios escolares pueden ser pensados como un proceso de toma de decisiones donde concierne ubicar recursos limitados a determinadas tareas a través del tiempo, Wren[1] define este tipo de problemas como : la asignación, sujeta a restricciones, de los recursos otorgados con el propósito de ser establecidos en un espacio de tiempo, de tal manera que satisfaga lo más cercanamente posible el conjunto de objetivos deseados. 2

7 El objetivo planteado por un problema de asignación de horarios escolar, comúnmente llamado Scheduling, es crear una plantilla en la cual se tengan perfectamente estructuradas las asignaciones, ya sea de materias o de exámenes que serán impartidas por cierto grupo de profesores sin que existan choques de horarios entre los profesores ó de ubicación de las materias/exámenes en las aulas. Como tal forma parte de la división de problemas NP-duros[12] debido a la limitación de los recursos, la cantidad de restricciones que pueden llegar a tener y la forma en que estas son aplicadas. Los problemas de asignación de horarios están asociados a organizar una secuencia de eventos con recursos limitados y restricciones impuestas en un periodo de tiempo especificado. Las restricciones pueden comprender hechos tales como evitar choques de horario entre asignaturas, incapacidad de las salas, Infra ó sobre-valoración de la carga de trabajo, inadecuada disposición para estudiantes y profesores, sub ó sobre-asignación de recursos o equipos, entre otros [3]. Cabe señalar que cada instancia educativa presenta restricciones propias de su institución, aunque generalmente el problema considera el siguiente conjunto de restricciones: asignación de recursos, asignación de tiempo, restricciones de tiempo entre sesiones, capacidad de las salas, continuidad para las sesiones etc. Por otro lado, tomando como base las diversas complejidades de los algoritmos, donde en primer lugar encontramos la complejidad P que son algoritmos que encuentran siempre una solución a un problema en tiempo polinomial. Complejidad NP un algoritmo encuentra una solución a un problema en tiempo polinomial usando una computadora no determinística. Complejidad NP- Completo: en estos no existen algoritmos de solución exacta que entreguen respuesta en un tiempo razonable, de ahí se derivan los problemas de búsqueda NP-duros, donde no hay algoritmo de tiempo polinomial que lo resuelva, aquí es donde se encuentran los problemas de tipo de asignación de horarios [12]. Existen diversas técnicas para la resolución de problemas de asignación de horarios, las cuales se clasifican en dos grandes grupos[11]: 1. Técnicas tradicionales: Programación entera, Programación Lineal, Tableau, etc. 2. Técnicas no tradicionales: Algoritmos heurísticos o meta-heurísticos que proveen de una buena solución en un tiempo moderado y que suelen proveer de mejores resultados en instancias grandes del problema Clasificación del problema Una de las clasificaciones más comunes para los problemas de asignación de horarios es de acuerdo al tipo de problema que se presente en una situación real, aquí es posible diferenciar tres diferentes tipos, de acuerdo a la caracterización hecha por A. Wren[1]. 3

8 1. Rostering (Lista, Catalogo): ubicación de recursos en determinados periodos siguiendo un patrón. 2. Sequencing (Secuenciación): encontrar un orden para la ejecución de las actividades. 3. Timetabling: muestra cuándo una tarea o evento en particular debe ser llevado a cabo. La asignación de horarios se utiliza diariamente en distintas áreas para regular diferentes operaciones donde sea necesaria una ubicación de una herramienta en un sitio determinado en una hora específica, como por ejemplo en el transporte (vuelos aéreos), en el estudio (programación de clases o de exámenes), en salud (programación de cirugías), en el campo del entretenimiento (deportes, eventos en festivales), etc. La educacio n superior es uno de los campos donde el empleo de buenas te cnicas de secuenciacio n ha llegado a tener mucha importancia en los u ltimos an os, debido a la cantidad de materias que el estudiante puede elegir según su inclinación y a los modelos flexibles, lo que incrementa la dificultad al momento de programar clases o exámenes. Existen tres categorías en la asignación de horarios educativos: 1. Asignación de horarios escolares: este grupo considera el problema horario semanal para las sesiones de las asignaturas de una escuela, el problema consiste en asignar las sesiones por periodo de tiempo, evitando los choques de horario entre los profesores, de tal manera que ningún profesor tenga asignadas dos asignaturas en un mismo periodo de tiempo, en este tipo de problemas las asignaturas cuentan con un horario y aula establecidos. 2. Asignación de horarios universitarios: Consiste en organizar un horario para las sesiones de un conjunto de asignaturas, tomando en consideración un número determinado de salas y bloques de tiempo, presentan el mismo problema de empates de profesores, las asignaturas no poseen un horario predeterminado y generalmente no todas las aulas son aptas para todas las asignaturas. 3. Asignación de horarios de exámenes: Consiste en asignar el horario a los exámenes, determinando la cantidad de salas, capacidad de las mismas (pueden ser de capacidades diferentes) y tiempo para realizar cada examen Trabajo relacionado Una gran cantidad de investigaciones para la solución de los problemas de asignación de horarios ha sido presentada en la serie de conferencias internacionales sobre la práctica y teoría de Programación de Horarios 4

9 Automatizado (PATAT por sus siglas en ingles). Por otra parte, existe un grupo de trabajo europeo especializado en la investigación y solución de horarios automatizados (EURO-WATT) que se reúne una vez al año y mantiene un sitio web con información relevante sobre los problemas de horarios, por ejemplo, una bibliografía y varios puntos de referencia. Al ser considerados problemas NP-duros[12], los problemas de asignación de horarios han sido foco de múltiples investigaciones y probado con muchas técnicas de optimización, tales como búsquedas locales (búsqueda tabú, recocido simulado, coloreo etc.), algoritmos genéticos, algoritmos meméticos, colonia de hormigas etc., tan solo en el periodo ASAP[39] (Automated Scheduling, optimisation and planing research group) obtuvo alrededor de 103 documentos presentados y publicados entre capítulos de libros, papers y revistas. Uno de los enfoques de meta-heurísticas más utilizado para la resolución de este tipo de problemas de acuerdo al PATAT es el algoritmo de Búsqueda Tabú (TSA). Sin embargo, actualmente se está presentando una serie de artículos con enfoques híbridos entre TSA y algoritmos evolutivos[37,38] por citar algunos, el algoritmo ocupado es el memético, puesto que es capaz de mezclar la potencia de un algoritmo genético y una búsqueda local, para tal caso en la conferencia de 2010 de PATAT se presentaron una serie de algoritmos que utilizan un TSA como búsqueda local en un algoritmo memético[37,38]. Por otro lado existen muchos desarrollos en el mercado que dan solución al problema en su manera mas general, es decir, toman en cuenta solo las restricciones tales como empates de profesores y de aulas, sin embargo, la mayoría de estos resuelven el problema concerniente al grupo 1 (asignación de horarios escolares), debido a que son los que presentan el caso mas fácil de resolver, como ejemplo de estos sistemas tenemos a doccf[13], UNTIS[14],GES[15], entre otros. El solucionar este tipo de problemas es de vital importancia para una institución y de gran complejidad para el mundo científico, incluso se han organizado certámenes internacionales, en donde se proponen un caso particular con restricciones difíciles de abordar por los participantes, como ejemplo de este tipo de eventos tenemos a International Timetabling Competition de Metaheuristics Networks [2] y a PATAT, International Timetabling Competition [16]. De acuerdo al certamen del PATAT los 5 mejores algoritmos que han sido enviados para la resolución de asignación de horarios son mostrados en la Tabla 1 [40]: 5

10 Autor Hadrien Cambazard, Emmanuel Hebrard, Barry O Sullivan, Alexandre Papadopoulos Mitsunori Atsuta, Koji Nonobe, y Toshihide Ibaraki Marco Chiarandini and Chris Fawcett and Holger H. Hoos Alfred Mayer, Clemens Nothegger, Andreas Chwatal, and Gunther Raid Purdue University, West Lafayette Técnica utilizada Utiliza una técnica híbrida entre un operador local personalizado y un algoritmo Large Neighborhood Utiliza una técnica híbrida entre tabu search e iterated local search Utiliza dos métodos un hard constraint solver y un soft constraint violation minimizer Utiliza el algoritmo ant colony Utiliza una metodología de varias fases que incluye Iterative Forward Search, Hill Climbing, Great Deluge technique y Simulated Annealing Tabla 1 Mejores algoritmos para la solución de problemas de asignación de horarios de acuerdo al concurso del PATAT en el año 2007[40] Justificación Las justificaciones del presente trabajo de tesis son las siguientes: Justificación científica Dado que no se tienen antecedentes de la aplicación de la metodología antes descrita en problemas de asignación de horarios se desea evaluar su aplicación en una instancia real proveniente de la Facultad de Psicología de la Universidad Veracruzana Justificación tecnológica Considerando que no se tienen antecedentes de la aplicación de técnicas emergentes de inteligencia artificial en la resolución del problema de asignación de horarios en la Universidad Veracruzana, se busca probar su factibilidad y asu vez que se puede generar una herramienta útil y eficiente en una Facultad de la Universidad Veracruzana Hipótesis 6

11 Es posible encontrar, en un tiempo razonable para el usuario, una solución factible, es decir, un horario que cumpla con los requerimientos establecidos por la Facultad de Psicología, mediante el uso de un algoritmo metaheurístico inspirado en la naturaleza. Los requerimientos de la Facultad de Psicología versan sobre la eliminación de empalmes de horarios entre maestros y aulas en un tiempo permitido por dicha Facultad y el cuidar que se mantenga la asignación de materias basificadas, entre otros aspectos que se detallarán más adelante en este documento Objetivos Los objetivos del presente trabajo son los siguiente: Objetivo general Encontrar una solución computacional, basada en algoritmos meta-heurísticos inspirados en la naturaleza, que sea capaz de resolver de manera automatizada la asignación de horarios de la Facultad de Psicología, campus Xalapa, de la Universidad Veracruzana Objetivos específicos 1. Diseñar un algoritmo, basado en la metodología de aplicación de algoritmos meta-heurísticos inspirados en la naturaleza, que sea capaz de brindar una solución eficiente y eficaz al problema de asignación de horarios de dicha Facultad. 2. Generar un diseño experimental que permita valorar adecuadamente el desempeño de los algoritmos que se generen con base en la metodología antes descrita 3. Crear un sistema que sea capaz de optimizar la recolección, modificación y extracción de la información de experiencias educativas, asignaturas, docentes y horarios escolares de la Facultad de Psicología, campus Xalapa, Universidad Veracruzana. 4. Generar un prototipo funcional que permita el uso del algoritmo descrito en el objetivo no. 1 de esta lista 1.9. Organización del documento El documento está organizado de la siguiente manera: El capítulo 2 incluye una introducción al cómputo evolutivo, destacando sus principales algoritmos. 7

12 El capítulo 3 describe el caso de estudio resuelto en este trabajo. El capítulo 4 presenta el desarrollo de la metodología descrita anteriormente (capítulo 1) y detalla los resultados obtenidos por cada algoritmo desarrollado. Finalmente el capítulo 5 resume las conclusiones de la tesis y establece el trabajo futuro. 8

13 Capítulo II Computación Evolutiva 2.1. Introducción Yo al igual que Dios no juego al azar ni creo en la casualidad V de Vendetta La naturaleza encuentra brillantes soluciones a los problemas mediante la evolución continuada de las especies. Ligeras variaciones aleatorias en los genes de los descendientes, dan lugar a individuos con diferente capacidad de adaptación a su entorno. Primando la reproducción de los mejor adaptados, la especie evoluciona a formas cada vez más eficientes para sobrevivir en su entorno. La computación evolutiva es una rama de la inteligencia artificial utilizada principalmente en problemas con espacios de búsqueda extensos y no lineales, en donde otros métodos no son capaces de encontrar soluciones en un tiempo razonable. Ésta toma su inspiración en los procesos naturales de la evolución, el hecho de que muchos científicos hayan elegido a la evolución natural como medio de inspiración para la creación de algoritmos no es nada sorprendente, ya que el poder de la evolución (la forma en la que ésta se manifiesta) es evidente en todas las especies del planeta. Este tipo de computación ayuda a la resolución de problemas en los que su espacio de búsqueda es tan amplio que es imposible poder abarcarlo todo para entregar la solución óptima. La evolución natural puede ser vista de la siguiente manera: se tiene un medio ambiente con una cierta población de individuos que intentan sobrevivir y reproducirse en dicho medio. La calidad (aptitud) de estos individuos está dada por su medio ambiente, en donde, los mejores individuos (los más aptos) son aquellos que logran el objetivo de adaptarse al medio ambiente y por tanto reproducirse, generando con esto una descendencia capaz de adaptarse mejor al medio que sus predecesores. La idea original de la computación evolutiva es intentar emular a la evolución natural (ver Figura 1), en donde, la calidad de los individuos en un medio ambiente es generada a través de una función, normalmente llamada función de aptitud, los individuos son soluciones completas generadas normalmente al azar y se evalúan a modo de que los mejores individuos sean capaz de reproducirse y dejar descendencia (semillas o nuevas soluciones posibles), las cuales a su vez pasarán por la misma función de calidad para ver quienes podrán reproducirse en una futura generación y el proceso se repite hasta cumplir con una condición de paro. La computación evolutiva ofrece la posibilidad de resolver problemas cuyo espacio de búsqueda sea muy complejo o tenga demasiados óptimos locales en los cuales los algoritmos tradicionales converjan demasiado rápido en una solución factible. 9

14 Evolución Medio Ambiente Individuos Fitness Computación Evolutiva Problema a resolver Soluciones candidato Calidad de las soluciones candidato Figura 1 Computación natural imitando a la evolución natural(basado en [18]) Historia de la computación evolutiva La idea básica de aplicar los principios darwinianos para la automatización de solución de problemas complejos data de los años 40. Ya en 1948 Alan Turing propuso la búsqueda de la evolución genética y por 1962 Bremermann ya había realizado experimentos acerca de la optimización de la evolución y la recombinación. Los primeros ejemplos de algoritmos genéticos aparecieron a principios de los años 60, programados en computadoras por biólogos evolutivos que buscaban explícitamente realizar modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió que esta estrategia podría aplicarse de manera más general para la solución de diversas índoles, pero ese reconocimiento no tardaría en llegar, de hecho en palabras de Mitchell[35] La computación evolutiva estaba definitivamente en el aire en los días formativos de la computadora electrónica. En 1962 H.J. Bremermann había desarrollado algoritmos inspirados en la evolución para optimización de funciones y aprendizaje automático, pero sus trabajos generaron poca reacción. En 1965 surgió un desarrollo más exitoso, cuando Ingo Rechenberg y Schwefel dieron a conocer lo que llamaron estrategias evolutivas [23,24]. En esta técnica no había población ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtiéndose en el padre de la siguiente ronda de mutación. Versiones posteriores introdujeron la idea de población. El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel, A.J. Owens y M.J. Walsh[19,20] introdujeron en América una técnica que llamaron programación evolutiva. En este método, las soluciones candidatas para los problemas se representaban como máquinas de estado finito sencillas; al igual que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando aleatoriamente una de estas máquinas simuladas y conservando la mejor de las dos. También al igual que las estrategias evolutivas, hoy en día existe una formulación más amplia de la técnica de programación evolutiva que todavía es un área de investigación en curso. Sin embargo, lo que todavía faltaba en estas dos metodologías era el reconocimiento de la importancia del cruzamiento. En 1962, el trabajo de John Holland [21,22] estableció las bases para desarrollos posteriores; y lo que es más importante, Holland fue también el primero en proponer explícitamente el cruzamiento y otros operadores de recombinación. 10

15 Sin embargo, el trabajo fundamental en el campo de los algoritmos genéticos apareció en 1975, con la publicación del libro Adaptation in natural and artificial systems'' por parte de Holland. Este libro fue el primero en presentar sistemática y rigurosamente el concepto de sistemas digitales adaptativos utilizando la mutación, la selección y el cruzamiento, simulando el proceso de la evolución biológica como estrategia para resolver problemas. El libro también intentó colocar a los algoritmos genéticos sobre una base teórica firme introduciendo el concepto de esquema [35,36]. Ese mismo año, la importante tesis de Kenneth De Jong Analisys of the behaviour of a class of genetic adaptative system estableció el potencial de los AGs demostrando que podían desenvolverse bien en una gran variedad de funciones de prueba, incluyendo paisajes de búsqueda ruidosos, discontinuos y multimodales[30]. Estos trabajos establecieron un interés más generalizado en la computación evolutiva. Entre principios y mediados de los 80, los algoritmos genéticos se estaban aplicando en una amplia variedad de áreas, desde problemas matemáticos abstractos como el bin-packing y la coloración de grafos hasta asuntos tangibles de ingeniería como el control de flujo en una línea de ensamble, reconocimiento, clasificación de patrones y optimización estructural etc.[30]. Al principio, estas aplicaciones eran principalmente teóricas, sin embargo, al seguir proliferando la investigación, los algoritmos genéticos migraron hacia el sector comercial, al cobrar importancia con el crecimiento exponencial de la potencia de computación y el desarrollo de Internet. Hoy en día, la computación evolutiva es un campo floreciente, y los algoritmos genéticos están resolviendo problemas de interés cotidiano en áreas de estudio tan diversas como la predicción en la bolsa y la planificación de la cartera de valores, ingeniería aeroespacial, diseño de microchips, bioquímica y biología molecular, diseño de horarios en aeropuertos y líneas de montaje y en el corazón de todo esto se halla nada más que la simple y poderosa teoría de Charles Darwin: que el azar en la variación, junto con la ley de la selección, es una técnica de resolución de problemas de inmenso poder y de aplicación casi ilimitada Características generales de los algoritmos evolutivos La idea básica de todas las técnicas de los algoritmos evolutivos es la siguiente: Obtener una población inicial de individuos (soluciones factibles). Determinar un medio ambiente para la población que cause una selección natural. Determinar una función de calidad para los individuos dentro del medio ambiente. La idea detrás de esto es cruzar y mutar a los individuos, en la cruza se seleccionan a dos o más individuos (padres), se toman características de los mismos y se generan nuevos individuos a partir de la combinación de las 11

16 características de los padres. En la mutación se toma a un individuo mediante cierta probabilidad y se altera su código ligeramente, hasta generar a un nuevo individuo. Estos parámetros permiten entre otras cosas crear diversidad (por medio de la mutación) y explotar soluciones factibles para obtener una mejor solución (por medio de la cruza). Cabe mencionar que el proceso de mutación y cruza es estocástico ya que al seleccionar a los individuos se requiere de la generación de números aleatorios, sin embargo, el proceso de seleccionar a los individuos más aptos mediante técnicas como ruleta o torneo sesga la búsqueda hacia zonas prometedoras del espacio de búsqueda. La Figura 2 muestra el pseudocódigo general de un algoritmo evolutivo: INICIO FIN INICIAR UNA POBLACIÓN CON SOLUCIONES CANDIDATO ALEATORIAS EVALUAR CADA CANDIDATO CON UNA FUNCIÓN DE CALIDAD REPETIR HASTA (SE CUMPLA UNA CONDICIÓN DE PARO) SELECCIONAR PADRES CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIÓN MUTAR NUEVOS INDIVIDUOS EVALUAR NUEVOS INDIVIDUOS SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIÓN FIN REPETIR Figura 2 Algoritmo evolutivo general [30] Es fácil ver que este pseudocódigo cae dentro de la categoría de los algoritmos generate-and-test. La función de evaluación representa una estimación heurística de la solución de calidad y el proceso de búsqueda es guiada por la variación de los operadores. Los algoritmos evolutivos poseen un número de partes que pueden ayudarlo a posicionarlos, como se menciono antes dentro de los métodos generate-and-test y estos son[18]: Son basados en población, procesan varias soluciones candidato simultáneamente. Usan la recombinación para mezclar la información de varios candidatos. Son estocásticos. Su esquema general se muestra en la Figura 3[18]: 12

17 SELECCIÓN DE PADRES PADRES RECOMBINACIÓN O CRUZA POBLACIÓN INICIO MUTACIÓN SELECCIÓN DE SOBREVIVIENTES DESCENDENCIA FIN Figura 3 Esquema de un algoritmo evolutivo basado en[18] La representación de los candidatos puede variar significativamente, siendo las mas comunes: Cadenas de String de un cierto alfabeto (algoritmos genéticos) Vectores con valores reales(estrategias evolutivas) Máquinas de estado finito(programación evolutiva) Árboles(Programación genética) Sin embargo, existen representaciones alternativas dependiendo del problema que se quiere resolver. 13

18 2.4. Componentes de los algoritmos evolutivos Los componentes principales de los algoritmos evolutivos son los siguientes: Representación El primer paso de un algoritmo evolutivo es construir los candidatos. Es necesario pasar del contexto original del problema a su espacio de soluciones donde la evolución toma su lugar, esto es, construir el fenotipo y el genotipo. Los objetos que forman las soluciones posibles del problema son llamados fenotipos, mientras que su codificación, es decir, los individuos con los cuales trabaja el algoritmo evolutivo son llamados genotipos. El proceso de transformar un fenotipo a genotipo se le llama codificación y al proceso contrario (genotipo - fenotipo) se le conoce como decodificación, tanto al genotipo como al fenotipo se les conoce como representaciones de una solución. La Figura 4 muestra un esquema de lo anterior. CODIFICACIÓN DECODIFICACIÓN FENOTIPO GENOTIPO FENOTIPO Figura 4 Codificación y decodificación de soluciones Función de calidad El objetivo de la función de calidad es representar los requerimientos para la adaptación de los individuos en el medio ambiente. Esta función es asignada a las representaciones de los individuos (sea genotípica o fenotípica) para determinar su calidad dentro del medio ambiente y asignar su probabilidad de supervivencia o cruza dentro de la población Población La población es un conjunto de soluciones (genotipos o fenotipos) en un medio ambiente, y es la unidad que evoluciona en los algoritmos evolutivos, ya que los individuos son solo elementos estáticos que no cambian o se adaptan, la evolución se da al pasar de generación en generación, aunque, por supuesto, un número mayor de individuos otorga una mayor diversidad en el espacio de solución de un problema. 14

19 Mecanismo de selección de padres Este mecanismo es el encargado de seleccionar los individuos que podrán generar descendencia. Normalmente los individuos con una mayor calidad (definida mediante la función de calidad) tienen mayor posibilidad de ser elegidos, sin embargo, si sólo los de mejor calidad son elegidos se puede presentar la situación de encontrarse atrapado en algún óptimo local, esto es, puede que el algoritmo pierda diversidad Mecanismo de selección de supervivientes Similar al mecanismo de selección de padres, con la diferencia del momento en que operan, ya que mientras la selección de padres actúa antes de generar la descendencia, el mecanismo de supervivencia actúa después de generada la descendencia y es la encargada de elegir a los individuos de mejor calidad (aunque depende del algoritmo evolutivo adaptado) para que pasen a la siguiente generación Operadores de variación Su objetivo es crear nueva descendencia a partir de una anterior y con esto generar nuevas soluciones candidato. Como tal tenemos los siguientes: Mutación Es una pequeña variación impuesta a un individuo, este operador es siempre estocástico y su objetivo radica en brindar una mayor diversidad a la población (ver Figura 5). Figura 5 Ejemplo de Mutación 15

20 Recombinación o cruza Es el proceso de combinar dos o más individuos para generar nuevos con características similares a sus predecesores, a este proceso se le llama descendencia. Al igual que la mutación, este operador es estocástico, aunque la selección de los individuos a cruzarse puede variar, ya sea por la implementación de una ruleta de probabilidades, el uso de un torneo, etc. El objetivo es explotar varias soluciones dadas al combinar individuos y generar nuevos (ver Figura 6). Figura 6 Ejemplo de una cruza de dos puntos Inicialización Es la primera población, normalmente generada por individuos aleatorios, sin embargo, puede ser que se genere con base en una estrategia implementada para ayudar al algoritmo en el proceso de búsqueda Condición de término Existen varias condiciones de terminación para los algoritmos evolutivos, entre las más populares tenemos : El máximo tiempo de procesamiento permitido por el CPU. Por un periodo de tiempo determinado. Por un determinado número de generaciones (ciclos del algoritmo). El valor de la función de aptitud de la población alcanzó el valor de un umbral (no se detectan mejoras significativas). La función de calidad ha llegado a su límite (se encontró al mejor individuo o a un óptimo deseable). 16

21 Una vez terminado el algoritmo se procede normalmente a devolver aquellos individuos que maximicen o minimicen la función de calidad según sea el caso deseado Clasificación de la computación evolutiva Existen diferentes paradigmas dentro de la computación evolutiva, la mayoría de ellos difiere generalmente en la representación de los individuos, aunque otras lo hacen en la forma y utilización de los componentes del algoritmo evolutivo. Las principales se presentan a continuación Algoritmos Genéticos Los algoritmos genéticos fueron inicialmente concebidos por Holland como resultado de su estudio acerca del comportamiento adaptativo [28] y plasmados en su libro Adaptation in natural and artificial system. Los algoritmos genéticos en su versión más estricta poseen una representación binaria, una función de calidad que les permita sobrevivir en un medio ambiente y que actúe generacionalmente, deben tener una probabilidad de mutación muy baja y hacen énfasis en una cruza inspirada genéticamente Representación La parte más difícil de trabajar con este tipo de algoritmos es su representación, si bien, los algoritmos genéticos simples requieren de una representación binaria, ello no es una regla, y es posible crear representaciones diversas, entre las más comunes están la representación usando valores enteros y de valores de punto flotante. Sin embargo, en este tipo de representaciones se debe tener especial cuidado en que los operadores al momento de ser aplicados sobre un individuo no generen valores inválidos. Supongamos que tenemos un individuo con representación decimal y que parte del individuo codifica una dirección como Norte, Sur, Este y Oeste, el individuo codifica esto de la siguiente manera Norte = 1, Sur =2,Este =3, Oeste = 4, entonces tenemos cuatro números posibles , sin embargo, es posible que el operador de mutación entregue un 5 ó 6 al mutar esta sección de dicho individuo. 17

22 Selección de candidatos La selección de los candidatos tanto para cruzarse como para formar parte de la nueva generación usualmente se logra implementando ya sea una ruleta, en la cual a cada individuo le corresponde determinada porción de probabilidad dependiendo de su contribución al total de aptitud en la población Se gira la ruleta y se selecciona al individuo correspondiente, este método asegura en cierta medida que los individuos con mejor calidad serán los elegidos para reproducción. Otro método popular es implementar torneos, en los cuales se seleccionan dos o mas individuos y se elige al mejor candidato determinado por su función de calidad, en ambas metodologías el proceso se repite hasta obtener el número de individuos requeridos para reproducción. Es común en los algoritmos genéticos conservar de generación en generación ciertos individuos con el fin de que éstos generen descendencia, normalmente se seleccionan a los mejores de la generación anterior, los cuales reemplazan a los peores de la nueva generación (determinado por la función de calidad) Mutación La mutación en los algoritmos genéticos es el operador encargado de generar diversidad en la población, cambia (muta) una parte de un individuo. Normalmente se efectúa después de la recombinación o cruza. Existen diversos tipos de mutaciones, y algunas cambian dependiendo la representación de los individuos. Dentro de las más comunes tenemos las siguientes: Mutación Binaria: en representaciones binarias se toma cada bit por separado y se estima su probabilidad de mutar, si esta fue positiva, es decir, se mutará, cambiara su número de 0 a 1 ó de 1 a 0 según sea el caso (ver Figura 7) Figura 7 Ejemplo de mutación binaria[28], en este caso el individuo muto los lugares 3 y 4. Mutación Swap: En este tipo de mutación no es necesario una representación binaria como tal, simplemente se debe seleccionar dos posiciones(alelos) de un individuo aleatoriamente y se intercambian de lugar ( ver Figura 8) Figura 8 Ejemplo de mutación swap[28] en este caso se seleccionaron e intercambiaron las posiciones 2 y 5 Mutación de Inserción: Parecido a la mutación swap, aquí se seleccionan dos posiciones (alelos) de un individuo aleatoriamente y se cambia la 18

23 posición de uno de los allelos de tal forma que ambas estén juntas (ver Figura 9) Figura 9 Ejemplo de mutación de inserción[28] aquí fueron seleccionadas las posiciones 2 y 5 Mutación Scramble: En este tipo de mutación se seleccionan dos puntos aleatoriamente, se toman todas las posiciones(allelos) del individuo que estén entre los puntos seleccionados y se revuelven (ver Figura 10) Figura 10 Ejemplo de mutación Scramble[28] aquí fueron seleccionados los puntos 2 y 5 Mutación de Inversión: Aquí se seleccionan dos posiciones de un individuo, se toman todos las posiciones intermedias y se invierte su orden (ver Figura 11) Figura 11 Ejemplo de mutación de inversión[28] aquí fueron seleccionadas las posiciones 2 y Recombinación ó cruza Para muchos el más importante de los operadores en los algoritmos genéticos. La cruza es la encargada de explotar las soluciones posibles, su función es la de generar una nueva población (crear descendencia) generación tras generación. En su forma básica selecciona dos individuos (llamados padres), toma la información de ambos y crea un nuevo individuo con partes de información de los dos individuos seleccionados con anterioridad. Existen diversas formas de cruzar a los individuos seleccionados, algunas inspiradas en la biología y otras propias de la representación elegida, las más comunes son las siguientes: 19

24 Recombinación de un punto: Aquí se selecciona un punto aleatorio de un individuo y se cambia a partir del punto determinado la información de ambos individuos seleccionados para generar exactamente otros dos individuos (descendencia). Aquí, para el primer individuo creado se toma la primera sección del individuo seleccionado 1 (la parte antes del punto incluyendo al mismo) y la parte posterior al punto del individuo seleccionado 2, de la misma manera para generar al segundo individuo simplemente se intercambian las posiciones tomadas (ver Figura 12). Figura 12 Ejemplo de recombinación de un punto[28] aquí fue seleccionado el punto 4 Recombinación de N-puntos: De la misma manera que la anterior, con la diferencia de que aquí es posible seleccionar mas de un punto (ver Figura 13). Figura 13 Ejemplo de una cruza de dos puntos[28] 20

25 Cruza uniforme: En este tipo de cruza se asigna una probabilidad (normalmente de 0.5) a cada parte del individuo(alelo) y se efectúa un volado, de tal manera que si gana el individuo 1, esa parte de él pasará al nuevo individuo, si pierde será el individuo 2 quien proporcione su gen. El proceso se repite para todas las partes de los individuos. Este tipo de cruza puede generar varios individuos a partir de solo dos predecesores (ver Figura 14). Figura 14 Ejemplo de cruza uniforme[28] Estrategias Evolutivas Las estrategias evolutivas fueron inventadas en la década de 1960 por Rechenberg y Schwefel quienes estaban trabajando en la Universidad Técnica de Berlín en aplicaciones concernientes a la optimización de formas, ellos describieron un algoritmo básico llamado los dos eslabones de la estrategia evolutiva. Este tipo de algoritmos trabajan con una población de individuos que pertenecen al dominio de los números reales, que mediante los procesos de mutación y de recombinación evolucionan para alcanzar el óptimo de la función objetivo. Cada individuo de la población es una solución potencial al problema, la representación de cada individuo de la población consta de 2 tipos de variables: las variables objeto y las variables estratégicas. Las variables objeto son los posibles valores que hacen que la función objetivo alcance el óptimo global y las variables estratégicas son los parámetros mediante los que se gobierna el proceso evolutivo o, en otras palabras, las variables estratégicas indican de qué manera las variables objeto son afectadas por la mutación. Haciendo una analogía más precisa, el genotipo en las estrategias evolutivas es el conjunto formado por las variables objeto y las variables estratégicas y el fenotipo son las variables objeto, ya que conforme se da la variación de éstas, se percibe un mejor o peor desempeño del individuo. Las estrategias evolutivas pueden definirse como algoritmos evolutivos enfocados hacia la optimización paramétrica, teniendo como características 21

26 principales que utilizan una representación a través de vectores reales, una selección de supervivientes determinística y operadores genéticos específicos de cruce y mutación. Las estrategias evolutivas pueden dividirse en dos tipos: Simples y Múltiples. Simples: Son consideradas como procedimientos estocásticos de optimización paramétrica con paso adaptativo. Esta característica las hace similares al recocido simulado. En este caso, se hace evolucionar un solo individuo usando únicamente a la mutación como operador genético. Son relativamente sencillas, y se denominan también estrategias evolutivas de dos miembros. Debido a que evoluciona un solo individuo a la vez, no son consideradas estrictamente como métodos evolutivos. A pesar de ser muy sencillas, son de gran utilidad práctica y han sido utilizadas, con algunas mejoras, para resolver problemas reales en diversas áreas. Múltiples: Surgen como respuesta a las debilidades de las estrategias evolutivas simples, las cuales tienden a converger hacia sub-óptimos. En las estrategias evolutivas múltiples existen múltiples individuos (población), y se producen en cada generación varios nuevos individuos, usando los operadores de mutación y cruza. En cuanto a los criterios de reemplazo, siempre se usa un esquema determinístico pudiéndose utilizar una estrategia de inserción o de inclusión Mutación Es el operador principal de las estrategias evolutivas, realiza un cambio en los valores de las variables de los individuos añadiendo ruido aleatorio obtenido mediante una función de distribución Normal. Las desviaciones típicas a aplicar se encuentran dentro del mismo individuo (son calculadas a partir del individuo mismo) y coevolucionan junto con la solución Recombinación o cruza En las estrategias evolutivas el cruce se realiza de una forma literalmente sencilla, simplemente se toman dos individuos y a partir de ellos se generara un nuevo individuo, el cual en cada casilla del arreglo de números reales se coloca el promedio del valor que sus predecesores tienen en la misma posición Programación Evolutiva La programación evolutiva fue desarrollada originalmente para simular la evolución como un proceso de aprendizaje para poder generar inteligencia artificial. Esta rama de la computación evolutiva es prácticamente una variación 22

27 de los algoritmos genéticos, donde el cambio más significativo es la representación de los individuos, puesto que aquí cada individuo de la población está formado por una máquina de estado finito (ver Figura 15). Figura 15 Ejemplo de una máquina de estado finito[31], Los símbolos a la izquierda de / son de entrada y los de la derecha son de salida. El estado inicial es C. Desarrollada en la década de 1960 por Lawrence J. Fogel [20], enfatiza los nexos de comportamiento entre padres e hijos, en vez de buscar emular a los operadores genéticos específicos [31]. Su objetivo principal es construir individuos que sean capaces de reconocer un cierto conjunto de entradas y proporcionar salidas correspondientes a las mismas. Es importante destacar que este tipo de algoritmos no usan el operador de recombinación o cruza puesto que son una abstracción de la evolución a nivel de las especies [31] y parten de la idea de que individuos de diferentes especies pueden cruzarse Mutación Existen 5 formas posibles de mutar a un individuo cuya representación sea una máquina de estado finito, estas son las siguientes: Cambiar un símbolo de salida. Cambiar una transición. Agregar un estado. Borrar un estado. Cambiar el estado inicial Programación Genética Este tipo de algoritmos son una variación de los algoritmos genéticos, en donde su diferencia mas sustancial es la representación de los individuos, puesto que aquí cada individuo es representado por un árbol. El objetivo principal de 23

28 esta técnica de la computación evolutiva es la evolución automática de programas usando ideas basadas en la selección natural, permitiendo realizar regresión simbólica, esto es, permiten obtener además de un dato numérico predictivo, una expresión matemática en función de las variables de entrada[32]. Básicamente son una metodología automatizada inspirada por la evolución biológica para encontrar programas informáticos que mejor realicen una tarea definida por el usuario. Es por ello que son una técnica de aprendizaje de máquina particular que utiliza un algoritmo evolutivo para optimizar una población de programas informáticos según una función de calidad determinada por la habilidad de un programa para realizar una tarea computacional dada. Tomando como base el tipo de representación de los individuos dentro de esta técnica es fácil entender su gran potencial, por ejemplo tomando en cuenta la siguiente fórmula lógica :, su representación se muestra en la Figura 16: Figura 16 Ejemplo de una fórmula lógica representada por un individuo en programación genética Incluso es fácil representar algún programa informático, por ejemplo, tomando como base el siguiente algoritmo : Int i = 1 While (i < 20) i = i+1; su representación se muestra en la Figura 17: 24

29 Figura 17 Ejemplo de un algoritmos representando por un individuo en programación genética Mutación El operador de mutación empleado en este paradigma no difiere en gran medida al de los algoritmos genéticos, el mecanismo mas usual es seleccionar a un individuo con base en cierta probabilidad, posteriormente se seleccionara un nodo de ese individuo y se verificará su probabilidad de mutación del nodo específico, si este nodo será mutado se prosigue a realizar un cambio aleatorio en el nodo seleccionado, cuidando que esta mutación no incumpla con las normas del individuo, por ejemplo, no genere ciclos infinitos en el caso de ser un programa, o tenga cierta lógica, por ejemplo no cambie una función de tal manera que pregunte si X == X etc Recombinación o cruza La idea básica de este operador en la programación genética es seleccionar dos individuos(padres), posteriormente para cada individuo seleccionar un nodo aleatoriamente, una ves teniendo esto se intercambia la información de los nodos, generando con esto dos nuevos individuos(hijos) (ver Figura 18). Figura 18 Ejemplo de cruza en la programación genética[28] 25

30 Programación Memética Los algoritmos meméticos son técnicas de optimización que combinan sinérgicamente la búsqueda basada en poblaciones (algoritmos evolutivos) y las búsquedas locales (Tabú, Recosido Simulado etc.). Su idea fundamental es mantener una cierta población mediante los operadores tradicionales de los algoritmos evolutivos(cruza y mutación) e ir evolucionando estos individuos mediante mejoras significativas a cada uno con búsquedas locales, es aquí donde se diferencian de los algoritmos genéticos, puesto que en los algoritmos meméticos el individuo evoluciona constantemente al aplicarse un procedimiento meta heurístico en él, dado que tienen la capacidad de evolucionar por sí solo mediante una búsqueda local. Los diseñadores de algoritmos meméticos prefieren denominarle agente a un individuo. La Tabla 2 muestra las diferencias entre un algoritmo genético y un memético[33] Operadores Algoritmos Genéticos Algoritmos Meméticos Codificación Esquemas, cadenas lineales, Formas, no-linealidad, cercanía al alfabetos predefinidos problema Individuo Solución al problema Llamado agente, solución al problema + mecanismo de mejora local Cruza Intercambio no guiado de Intercambio guiado de información información Mutación Introducción aleatoria de nueva información Introducción sensible de nueva información Mejora local Aprendizaje Lamarckiano Tabla 2 Diferencias entre un algoritmo genético y un algoritmo memético La primera diferencia significativa entre estas dos técnicas de la computación evolutiva es la codificación de los individuos, puesto que en los algoritmos genéticos se parte de cadenas que mediante codificación se obtiene una solución (fenotipo y genotipo), sin embargo, ésta no es una restricción para los algoritmos meméticos, ya que éstos se basan en una experiencia de la persona que los esta creando. Entonces es posible ajustar cualquier tipo de modelo como individuo, en ocasiones, los individuos pueden tener algún programa o mejora significativa en ellos mismos. En el caso de la mutación, para los demás algoritmos evolutivos esta es un proceso estocástico, sin embargo, en los meméticos se prefiere sea una mutación especializada en el problema, la cual deberá modificar a un agente (individuo) significativamente con la idea de que mejore su calidad. El operador de cruza también se ve afectado, puesto que en los algoritmos meméticos es guiada, es decir, se pretende cruzar individuos de tal forma que su descendiente obtenga específicamente lo mejor de ambos, motivo por el cual su desarrollo y modelo depende exclusivamente del problema en cuestión, el ejemplo mas común de esto es la cruza EAX[34] (Edge Assembly Crossover) diseñada específicamente para problemas del agente viajero. 26

31 La diferencia más significativa es la aplicación de búsquedas locales para mejorar a los agentes (individuos) de la población, pues es la principal fuerza de los algoritmos meméticos, ya que sus agentes son capaces de evolucionar individualmente, al mismo tiempo que evoluciona la población gracias a los operadores de cruza y mutación. Existen diversos momentos en los cuales pueden aplicarse los operadores de búsqueda locales, normalmente se prefiere sea después de aplicar los operadores de mutación y cruza. Sin embargo, puede ocurrir al generar la población inicial, o inclusive al terminar el ciclo de generaciones. En este último caso se dice que trabaja como si un algoritmo genético diera buenas semillas a un algoritmo de búsqueda local Características generales Los algoritmos meméticos son algoritmos híbridos que incorporan conocimiento y combinan estrategias de búsqueda. Se potencia al mecanismo cooperativo de los algoritmos evolutivos incorporando un mecanismo guiado de competición. Los individuos tienen la potencialidad de intentar mejoras, y compiten entre s por propagar su descendencia. En la terminología de los algoritmos meméticos, a los individuos se los denomina agentes. La operativa de un algoritmo memético es la de un algoritmo evolutivo tradicional, con el agregado de una búsqueda local Estructura La Figura 19 muestra la estructura general de un algoritmo memético 27

32 POBLACIÓN INICIAL BÚSQUEDA LOCAL POBLACIÓN ACTUAL CRUZA MUTACIÓN BÚSQUEDA LOCAL BÚSQUEDA LOCAL Figura 19 Estructura general de un algoritmo memético BÚSQUEDA LOCAL Aquí se puede observar las diferentes etapas en las cuales puede efectuarse la búsqueda local. Cabe señalar que cuando aparece después de los operadores ya sea de cruza o de mutación, normalmente no ocurre generación tras generación, en vez de esto se prefiere actúe cada determinado periodo, el cual puede ser determinado por un número fijo de generaciones o por algún otro motivo tal como la detección de estancamiento en las mejoras de algunos agentes (individuos) o en la población en general. La Figura 20 muestra el pseudocódigo de un algoritmo memético en su aspecto más general: INICIO FIN INICIAR UNA POBLACIÓN CON SOLUCIONES CANDIDATO ALEATORIAS (POSIBLE APLICACIÓN DE UN ALGORITMO DE BÚSQUEDA LOCAL) EVALUAR CADA CANDIDATO CON UNA FUNCIÓN DE CALIDAD REPETIR HASTA (SE CUMPLA UNA CONDICIÓN DE PARO) SELECCIONAR PADRES CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIÓN MUTAR NUEVOS INDIVIDUOS EVALUAR NUEVOS INDIVIDUOS IMPLEMENTAR MEJORA VÍA BÚSQUEDA LOCAL SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIÓN FIN REPETIR (POSIBLE APLICACIÓN DE UN ALGORITMO DE BÚSQUEDA LOCAL) Figura 20 Pseudocódigo de algoritmo memético[18] 28

33 Capítulo III caso de estudio 3.1. Facultad de Psicología La Facultad de Psicología (Figura 21 y 22) de la Universidad Veracruzana Campus Xalapa, está ubicada en el municipio de Xalapa, estado de Veracruz, México. Es una institución de educación superior que ofrece la carrera de Licenciatura en Psicología. Fundada en Entre los años 1966 al 1976 logró ocupar un lugar prominente en el desarrollo y enseñanza de la Psicología a nivel Nacional e Internacional [17]. Figura 21 Ubicación de la Facultad de Psicología, Xalapa, Veracruz, México 29

34 Figura 22 Frente del Campus de la Facultad de Psicología Esta Facultad cuenta con la siguiente infraestructura [17]: 23 aulas 1 centro de cómputo dividido en dos secciones 1 cámara de Gesell Dirección Secretaria académica 1 Auditorio 2 Audiovisuales 1 cafetería 1 Explanada con entretenimiento para los estudiantes 1 Biblioteca Diversos cubículos para los profesores Diversos laboratorios ubicados fuera del campus En el aspecto académico en la Institución laboran aproximadamente 121 docentes y estudian más de 600 alumnos. Cuentan con el modelo flexible de la Universidad Veracruzana aprobado como primer nivel por parte del Consejo Nacional para la Enseñanza e Investigación en Psicología (CNEIP). Tiene 78 experiencias educativas y 408 asignaturas posibles (una experiencia educativa puede ser impartida más de dos veces en un mismo semestre, cada una de las experiencias impartidas se le conoce como asignatura y se identifica por un número de sección y una clave conocida como nrc). La Facultad inicia periodos cada 6 meses (semestrales), en los cuales en promedio apertura 168 asignaturas, los alumnos son libres de escoger la asignatura que ellos gusten, cumpliendo con una serie de requisitos, tales como : número de créditos, materias seriadas, disponibilidad de horario etc. Un periodo no es igual al otro, debido a que las asignaturas aperturadas son diferentes, normalmente con base en peticiones de los alumnos o conocimiento previo de los administradores de dicha Facultad. 30

35 3.2 Análisis del problema de asignación de horarios Al no contar con periodos de configuración de asignaturas iguales, no se puede asignar una asignatura a un aula fija permanentemente, más aun, pueden crearse nuevas asignaturas en base a los alumnos y la disponibilidad de los profesores. Ésto conlleva a la necesidad de configurar un horario cada inicio de ciclo (cada 6 meses) para todas las asignaturas que serán impartidas, la Figura 23 muestra un árbol de causa y efecto del problema de la asignación de horarios de esta Facultad. Deficiencia en la asignación de horarios, Facultad de Psicologia, campus xalapa, Universidad Veracruzana Cierre de asignatura s para evitar choque Cruce de Horarios Alumnos y docentes insatisfechos Problemas sindicales Información de dificil tratamiento que al no ser manejada eficientemente conlleva a una mala asignación de recursos, cierre de experiencias e inconformidad por parte de alumnos y docentes Necesidad de crear un nuevo horario cada 6 meses Inconsistencia de la carga de experiencias entre aulas (aulas con mayor número de asignaturas asignadas que otras) Falta de planeación de la información Mala asignación de los recursos Inconsistencia de la carga de experiencias asignada a docentes (docentes con una mayor carga académica) Metodología inapropiada Alumnos y docentes insatisfechos Sistema actual 100% dependiente del experto, su ayuda es mínima Desconocimiento de alternativas para soluciones optimas al problema Pérdida de tiempo Desfase del calendario académico Alumnos, docentes y personal administrativo insatisfechos El personal administra -tivo encargado de la elaboración de horarios debe abandonar sus otras actividade s por un periodo de tiempo considerable Figura 23 Árbol de causa y efecto, problema asignación de horarios, Facultad de Psicología, campus Xalapa, Universidad Veracruzana. El problema de asignación de horarios de esta Facultad cuenta con restricciones muy particulares, las cuales hacen difícil la organización de un horario escolar. Al formar parte de un sindicato, algunos maestros tienen a su cargo permanente ciertas asignaturas (llamadas de aquí en adelante como basificadas). Estas asignaturas tienen un día y un horario fijo el cual no puede ser movido salvo previo acuerdo con el profesor que la imparte. Mas aún ningún otro profesor puede impartir dicha asignatura. Existen otro tipo de asignaturas, las cuales no tienen asignado ningún profesor permanentemente (llamadas no basificadas de ahora en adelante). A este tipo de asignaturas es posible cambiarles el horario, el día y el aula en que serán impartidas. 31

36 No existe un número de horas fijo por asignatura; de hecho existen asignaturas con una necesidad de 3 horas a la semana y otras con 12 horas. Actualmente se cuenta con 408 asignaturas, las cuales suman un total de 2602 horas. No todos los docentes pueden impartir cualquier asignatura, dependiendo su formación se le asignan determinadas asignaturas posibles a impartir, actualmente la Facultad cuenta con 121 docentes activos. La Facultad tiene 23 posibles aulas, todas ellas con las mismas características y cada una de ellas está disponible 14 horas diarias (de 7am a 9pm) de lunes a viernes. Sin embargo, es deseable al crear la asignación de horarios, sea minimizado las últimas dos horas. Tomando en cuenta los datos anteriores, el espacio de búsqueda por cada materia ésta determinado de la siguiente manera : NHM * NP * NH*ND*NA, donde NHM es la suma de las horas de las materias posibles, NP es el número total de docentes, NH es el número de horas disponibles por aula, ND es el número de días posibles y NA es el número de aulas disponibles, el resultado de este calculo es : 2602 * 121 * 14 * 5 *23 = 506,895,620 posibles combinaciones para una asignatura en particular. Si tomamos en consideración que en un periodo normal se seleccionan 168 asignaturas a aperturarse, tenemos entonces : 506,895,620 * 168 = 85,158,464,160 posibles horarios. Por supuesto, la amplia mayoría de ellos no son horarios válidos debido a las restricciones impuestas por la Facultad, algunas de ellas de carácter forzado (restricción dura) y otras que pueden tolerarse(restricción blanda), la Tabla 3 muestra las restricciones existentes: Restricciones Duras No puede existir empates de horario entre profesores No puede existir empates de horariosaula entre materias No es posible colocar una asignatura en un horario no permitido En el caso de las materias basificadas no es posible el cambio de horario ni día No es posible cambiar de profesor a una materia Deben respetarse los 5 días laborables Restricciones Blandas Evitar en lo posible asignaciones en las últimas dos horas del día Los horarios de una asignatura deben tener cierta coherencia (horas consecutivas) No deben existir huecos de horarios en las aulas (horarios consecutivos) Una asignatura debe ser impartida en solo un aula Tabla 2 Restricciones del problema de asignación de horarios escolar de la Facultad de Psicología Debido a la configuración de las materias y a las múltiples restricciones impuestas por la Facultad, su problema de asignación de horarios está ubicado en el grupo 2 (asignación de horarios universitarios) y es un problema de búsqueda NP-duro. 32

37 3.3 Sistema Actual La Facultad cuenta con un sistema organizador de horarios de forma manual. En él se crea un periodo, se seleccionan las asignaturas y profesores y se confía en la habilidad del experto para configurar las horas, días y aulas necesarias para evitar los empates. Este sistema manda un aviso cuando existe un empate al momento de que se asignan las horas, muestra a las asignaturas informando si son basificadas o no y a los profesores disponibles para determinada asignatura. La efectividad del actual sistema radica en que detecta los empates posibles, ayudando en gran parte a la anterior forma de hacerlo (completamente manual en una hoja de cálculo). También permite el cambio de profesores o eliminación de una asignatura (normalmente esto se hace cuando no existe forma de eliminar empates). En este sistema el experto toma la iniciativa de aperturar tantas asignaturas como sea posible, normalmente logra un promedio de 168 asignaturas por periodo. Este procedimiento es demasiado tedioso y tardado, ya que en promedio el experto puede tardarse hasta una semana en generar un horario válido. Además, esta tarea debe realizarse dos veces por año. Las Figuras 24 y 25 muestran parte de la interfaz de usuario del sistema actual: Figura 24 Sistema actual para el diseño de horarios escolares Facultad de Psicología de la Universidad Veracruzana 33

38 Figura 25 Sistema actual para el diseño de horarios escolares en la Facultad de Psicología de la Universidad Veracruzana 34

39 Capítulo IV Desarrollo y resultados de la metodología para solucionar el problema de asignación de horarios de la Facultad de Psicología Universidad Veracruzana campus Xalapa Una de las principales problemáticas presentadas por los problemas de asignación de horarios es su gran espacio de búsqueda. Esto puede hacerse ver en el caso de estudio presentado en este proyecto, puesto que abarca alrededor de 85,158,464,160 soluciones posibles por periodo. Si se intentara resolver la problemática por un algoritmo de programación entera abordando todas las posibles soluciones con el objetivo de encontrar aquella que resulte óptima, y suponiendo que se tardase un milisegundo por solución, el tiempo consumido por el algoritmo seria alrededor de 2 años en poder culminar con éxito su objetivo. Por otro lado este tipo de problemas exigen el cumplimiento de ciertas restricciones, las cuales, debido a su naturaleza obligatoria se convierten en grandes consumidoras de tiempo computacional. De hecho los problemas de asignación de horarios con un número considerable de variables difícilmente llegan a terminar en tiempos permisibles para las instituciones si se opta por solucionarlos mediante programación del tipo entera, lineal o tableau. Cabe mencionar que el caso de estudio cuenta con una restricción particular, originada por la naturaleza de las asignaturas de la misma Universidad. Esta restricción obliga a dividir a las asignaturas en dos clases, las basificadas, que son asignaturas con horario y día forzados y las no basificadas, aquellas en las cuales el horario es de libre modificación. Otro punto importante a considerar como limitante para el algoritmo es el tiempo máximo permitido para entregar una solución aceptable por la institución educativa, el cual radica en un máximo de 8 horas. Con base en el análisis de los puntos anteriores las medidas a considerar para medir el buen desempeño de los algoritmos desarrollados serán las siguientes: 1. Tiempo computacional (tiempo necesario para entregar una solución aceptable). 2. Valor promedio de aptitud en la población. 3. Valor de la mediana de aptitud en la población. 4. Mejor solución en la población. 5. Desviación estándar del valor de aptitud en la población. Los datos del experimento corresponden al periodo de la Facultad de Psicología, el cual cuenta con 168 experiencias educativas, 120 profesores, 20 aulas, 14 horas por día y 5 días. Para poder medir el tiempo computacional, todas las pruebas fueron realizadas en un mismo equipo que cuenta con las características indicadas en la Tabla 4: 35

40 Configuración del equipo de cómputo Sistema operativo Mac OSX Procesador 2.53 GHz intel core 2 Duo Memoria 4 GB 1067 MHz DDr3 Tabla 4 Muestra la configuración del equipo de cómputo en el cual fueron ejecutados los algoritmos Cada algoritmo desarrollado en este trabajo fue ejecutado 30 veces (de acuerdo a [18]) y las gráficas mostradas representan el valor promedio de aptitud de dichas ejecuciones. 4.1 Desarrollo y resultados de la metodología para la solución del problema Parte de los objetivos presentados en este documento conlleva a la resolución de problemas utilizando la metodología de desarrollo de algoritmos inspirados en la naturaleza del Laboratorio Nacional de Informática Avanzada (LANIA). Debido a ésto el presente capítulo desarrollará una serie de algoritmos basados en las etapas de dicha metodología con el objetivo de dar solución a la problemática presentada Aplicación de algoritmos inspirados en la naturaleza en su versión original Existe una gran diversidad de representaciones posibles de individuos para la resolución de este tipo de problemas de asignación de horarios usando algoritmos evolutivos. Sin embargo, se optó para iniciar el proceso, por una representación general y tradicional como lo es una codificación binaria. La Figura 26 muestra el algoritmo de este proceso: 36

41 Figura 26 Algoritmo genético con representación binaria para resolver el problema de horarios Representación Debido al tipo de configuración que se requiere para los individuos de este problema se propone la siguiente representación: Cada gen será codificado de la siguiente manera : materia-profesor-horadía-aula En primera instancia, cada parte del gen tendrá formato decimal, este número corresponderá a una clave única de cada elemento, posteriormente se realizará su cambio en formato binario. La solución tendrá estructuradas de manera ordenada las asignaturas con formato basificado y se diferencian de las que no lo son. Con el objetivo de poder obtener una codificación binaria para los individuos del algoritmo, es necesario primero obtener una codificación decimal y posteriormente codificarla a un formato binario. Esto es debido a que toda la información de los elementos necesarios de este problema cuenta convenientemente con una clave única e individual representada por un número decimal, la Figura 27 muestra un ejemplo de esta situación: 37

42 Figura 27 Ejemplo de obtención de una codificación decimal La codificación binaria se obtiene al convertir los números de la representación decimal en formato binario, para poder realizarla se hace uso de las siguientes fórmulas: L = int[log2(lsup - linf) +.9] : Entrega el número de dígitos necesarios para poder convertir cualquier número decimal ubicado entre los rangos lsup y linf a binario. X_real = L_inf + ((X_decod*(L_sup L_inf)) / (2 L-1 ) : Devuelve, con base en un rango de valores, el número correspondiente. Por ejemplo supongamos que el rango de profesores se encuentra entre 1 y 350, entonces tenemos que: L = int[log2(350-1) +.9] = 9.35 = 9 Es decir, se requieren 9 dígitos binarios para poder codificar los números ubicados dentro del rango 1-350, donde = 1 y = 350, sin embargo, esto no es del todo cierto, debido a que = 0 y = 511, y es aquí donde entra la primera fórmula: = 511 X_real = 1 + ((511 * (350-1))/(2 9-1 )) = 350 Como puede observarse, el aplicar estas fórmulas hace posible la codificación de representaciones decimales a binarias, la Figura 28 muestra un ejemplo de ello. 38

43 Figura 28 Ejemplo de conversión de formato binario a decimal El algoritmo completo de conversión de decimal a binario se presenta en la Figura 29: Figura 29 Convierte números decimales en números binarios de acuerdo a su rango, donde solution{i} es un cromosoma binario y solution{i,j} es un gen del cromosoma solution{i}. 39

44 Función de Calidad Con la idea principal de poder definir la función de calidad, serán tomadas las siguientes variables: M = Cantidad de salones N = Cantidad de asignaturas P = Cantidad de profesores D = Días de la semana H = Horas disponibles por día C = Número total de horas hábiles por semana obtenido de D * H Tomando en cuenta las variables anteriores, serán definidas a continuación cada una de las restricciones consideradas en este proyecto, así como funciones requeridas para las mismas: Total de horas por materia (THM): Cada asignatura posee un número variable de horas asignadas durante los D días disponibles : Donde: Total de horas de una materia por día (THMD): Todas las materias pueden o no tener un número de horas asignados en un día determinado: Determinar si una hora h, en el día d es establecida para la materia n (NDH): 40

45 Restricción fuerte de asignaturas (RFA y ColFA): Un salón m, en un día d, de una hora h solo puede tener establecida una asignatura n: donde : Restricción fuerte de profesores (RFP y ColFP): Un profesor p en un día d, con una hora h, solo puede tener establecida una asignatura n: Donde: Restricción débil de profesores (RDP y ColDP): Un profesor p con una asignatura n debe poder impartir dicha asignatura exclusivamente en un salón m: Donde: Restricción débil de materias (ColDA): Los horarios h, en un día d, de una asignatura n sólo deben tener 3 horas de diferencia: 41

46 Tomando en consideración las definiciones anteriores la función de calidad es la siguiente: La idea de dividir las restricciones débiles en la función de calidad previamente descrita entre 2 es simplemente una ponderación otorgada para prestar mas atención a las restricciones duras. El algoritmo para calcular la función de calidad se presenta en la Figura 30: Figura 30 Algoritmo función de calidad, donde solution es una solución completa y solution{j} es una variable de la solución Selección de Padres En este punto se propone una selección de padres por torneo binario, es decir, se tomaran dos individuos aleatoriamente de la población actual, se evaluará su función de calidad y se seleccionará al mejor de ellos con base en esta última, luego se repite el proceso una vez más y de esta manera tenemos dos individuos que se cruzarán. Este proceso se repetirá hasta que se obtenga el 42

47 número de parejas requeridas para generar un número de descendientes igual al tamaño actual de la población, es decir, si se tiene una población de n individuos se generaran n descendientes y para ello se necesitan n/2 parejas dado que de la cruza de dos individuos se generarán dos nuevos individuos. El algoritmo aparece en la Figura 31: Figura 31 Algoritmo de selección de padres mediante torneo binario Selección de sobrevivientes Para mantener a la población con un tamaño fijo durante el proceso, se realiza una selección de sobrevivientes generacional, es decir, los nuevos individuos, es decir los hijos recién creados (New_population) permanecen y aquellos de la población actual son eliminados, excepto el mejor de ellos, que reemplazará al peor de los hijos. A ésto último se le conoce con el nombre de elitismo. El algoritmo se muestra en la figura 32: Figura 32 Algoritmo selección de sobrevivientes, donde New_population representa a la población actual y Old_population a la población de la cual se generó New_population. 43

48 Operadores Cruza La representación utilizada en este algoritmo brinda la posibilidad de desarrollar el operador de cruza de diversas maneras. El tipo de cruza utilizada por este algoritmo es de dos puntos (véanse Figuras 33 y 34). El motivo de esta elección fue debido a la simplicidad de la misma y a la superioridad mostrada sobre la cruza de un punto de acuerdo a la literatura especializada[18]. Figura 33 Ejemplo cruza de dos puntos con representación binaria 44

49 Figura 34 Algoritmo de cruza representación binaria, donde Old_population es la población actual y mediante la cual se generará al conjunto de hijos llamado New_population y New_population{i} representa un hijo dentro de New_population. Flip regresa 1 ó 0 con probabilidad prob Mutación El tipo de representación utilizada permite el desarrollo de un operador de mutación sencillo, puesto que solo deberá recorrer al individuo mutando dígito por dígito su estructura con cierta probabilidad. Cabe mencionar que el operador deberá identificar si la asignatura pertenece a la sección de basificadas o no, y dependiendo de ello podrá mutar los dígitos permitidos (véanse Figuras 35 y 36). 45

50 Figura 35 Ejemplo del operador de mutación Figura 36 Algoritmo de mutación con representación binaria. Aquí un dígito es un bit, y un conjunto de bits representa alguna parte de la codificación de un gen(materia-profesor-aula-día-hora). Un dígito es basificado si este pertenecen a un gen que corresponde a una materia basificada Inicialización Con el objetivo de generar puntos de inicio (soluciones) sobre todo el espacio de búsqueda, la creación de la primera población de soluciones es realizada de manera aleatoria con una distribución uniforma (véase Figura 37): 46

51 Figura 37 Algoritmo de inicialización con representación binaria, donde subjects{j,k} representa la hora k de la asignatura subjects{j} Condición de paro Tomando en consideración la restricción de tiempo, se controlará el término del algoritmo mediante un determinado número de generaciones. Lo anterior puede apreciarse en el algoritmo completo detallado en la Figura Evaluación del desempeño del algoritmo Una vez desarrollado el algoritmo. Éste fue probado con diversas combinaciones de sus parámetros (tamaño de población, número de generaciones, porcentaje de cruza y porcentaje de mutación). La Figura 38 y la Tabla 5 muestra los resultados obtenidos con probabilidad de mutación del 10% 47

52 , cruza del 98%, número de individuos 100 y número de generaciones 1000, mismas que ofrecieron un mejor resultado con la función de calidad. Figura 38 Resultados del algoritmo con representación binaria mutación 10% cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones. Máximo valor de la función de calidad Mínimo valor de la función de calidad Media Mediana Desviación estandar Tiempo total por corrida horas 23 minutos 43 segundos Tabla 5 Estadísticas de los resultados obtenidos con el algoritmo genético de representación binaria durante 25 ejecuciones. 48

53 La gráfica anterior sugiere que el algoritmo genético con representación binaria converge en un periodo relativamente corto de generaciones. La Tabla 2 muestra el resultado promedio de las ejecuciones realizadas con este algoritmo con valor de cruza del 98%, mutación del 10% número de individuos 100 y número de individuos 1000: De acuerdo a estos resultados se puede apreciar que el algoritmo sufre de convergencia prematura (se obtiene una solución no aceptable de manera rápida y el algoritmo no puede mejorarla al paso de las generaciones). Además el valor alto de la desviación estándar indica que el algoritmo no es robusto y varia en la calidad de los resultados entregados. Por otro lado, el tiempo requerido es superior al indicado por la Facultad, aunado a ello, la mejor solución entregada contiene un valor alto ( es decir, pobre) en la función de calidad. Es posible que el algoritmo converja en pocas generaciones debido a que el operador de mutación no es capaz de explorar correctamente, motivo por el cual se propone ahora un enfoque con mutación dinámica que dependa del número de generaciones del algoritmo, la intención es promover la exploración durante las primeras etapas de la búsqueda, mientras que en las etapas finales la mutación será muy pequeña para favorecer la convergencia. La fórmula para dicho proceso se encuentra en [18] y es la siguiente : 1-(0.9 * (Generación actual/número total de generaciones)) El algoritmo desarrollado se muestra en la Figura 39: Figura 39 Algoritmo principal enfoque binario con mutación dinámica Una vez desarrollado el algoritmo fue probado con diversas probabilidades del operador cruza siendo la mas efectiva la probabilidad de 98%, la Figura 40 muestra los resultados de esta ejecución y la Tabla 6 las estadísticas correspondientes: 49

54 Figura 40 Resultado del algoritmo representación binaria y mutación dinámica, cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones. Máximo valor de la función de calidad Mínimo valor de la función de calidad Media Mediana Desviación estandar Tiempo total por corrida horas 43 minutos 23 segundos Tabla 6 Estadísticas de los resultados obtenidos con el algoritmo genético de representación binaria y mutación dinámica durante 25 ejecuciones. Como se puede observar, este enfoque no permite un adecuado espacio de búsqueda e incrementa el costo computacional, motivo por el cual se omite la idea de un operador dinámico de mutación. La Tabla 3 muestra el resultado promedio de todas las corridas generadas con los valores de cruza del 98%, número de individuos 100 y número de generaciones 1000: Representaciones Alternativas Debido a que el tipo de representación binaria no logro un nivel aceptable en la función de calidad y trajo consigo un costo computacional elevado de 50

55 acuerdo a los estándares permitidos por la Facultad, se procederá a utilizar un nuevo tipo de representación. Para tal efecto se propone un formato decimal. Ya que es el formato en el que se encuentran las claves de todas las variables del problema y como consecuencia se espera tener un costo computacional menor Representación decimal La idea básica de cambiar a una representación decimal es disminuir el costo computacional que agrega la decodificación a partir de la representación binaria, debido a que las configuraciones de los parámetros de los genes (profesor-materia-hora-día-aula) están en números decimales y de esta manera se evita la conversión de los mismos. Con el objetivo de cambiar el tipo de representación fue necesario modificar la función de inicialización como se indica en la Figura 41: Figura 41 Algoritmo principal enfoque decimal, donde subjects{j,k} representa la hora k de la asignatura subjects{j}. 51

56 Operadores Cruza Para el tipo de representación decimal es necesario que el operador de cruza conozca específicamente donde comienza un gen y termina otro dentro de la solución, ya que, cada parte del gen tiene mínimos y máximos números diferentes, por ejemplo si tenemos 24 aulas y 163 maestros, la parte correspondientes a aulas permite números entre 1 y 24 mientras que la parte de maestros acepta valores entre 1 y 163. Si al cruzar se escoge un punto incorrecto al convertir los genes podría quedar una solución con un número, en la parte correspondiente a las aulas superior a 24, motivo por el cual la cruza no elegirá un punto al azar de entre toda la solución si no que partirá de puntos que abarquen genes completos. Por otro lado, debido a que la cruza de dos puntos resultó efectiva en la representación binaria no se cambiará de esquema y se seguirá trabajando con el mismo enfoque(cruza de dos puntos).la modificación al algoritmo se representa en la Figura 42 y se ejemplifica en la Figura 43: Figura 42 Algoritmo cruza representación decimal, donde Old_population es la población a través de la cual será generada New_population y New_population{i} representa a una solución del conjunto de soluciones de New_population 52

57 Figura 43 Ejemplo de cruza con formato decimal, muestra los puntos claves de cruza Mutación La mutación para la representación decimal deberá tener especial cuidado de no mutar una parte de la solución que conlleve a resultados no validos, por ejemplo, si se manejan un máximo de 24 aulas, al mutar un aula no será posible que mute un número 25 o valores negativos. Un ejemplo del diseño del operador de mutación se representa en la Figura 44 y el proceso se detalla en la Figura 45 Figura 44 Ejemplo de mutación con representación decimal 53

58 Figura 45 Algoritmo de mutación con representación decimal, una variable es basificada o no dependiendo el tipo de asignatura que corresponda su representación en el gen. Por su parte no_aulas, no_dias y no_horas representan los límites superiores de cada variable a mutar Evaluación del desempeño del algoritmo El mejor resultado observado con la representación decimal fue la configuración del 10% de probabilidad de mutación y 98% de probabilidad en cruza, los resultados de este experimento se muestran en la Figura 46 y las estadísticas se incluyen en la Tabla 7: 54

59 Figura 46 Resultados del algoritmo con representación decimal mutación 10% cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones. Máximo valor de la función de calidad Mínimo valor de la función de calidad Media Mediana Desviación estandar Tiempo total por corrida hora 10 minutos 28 segundos Tabla 7 Estadísticas de resultados obtenidos con el algoritmo genético de representación decimal durante 25 ejecuciones. Con el objetivo de estudiar con mayor detalle el problema se decidió graficar por separado los empates de aulas y de profesores. Sin embargo, como puede visualizarse en la Figura 21, la mejor solución entregada aún está lejos de tener un valor cero en la función de calidad. De la Figura 21 se puede concluir que la mayor problemática presentada son los empates de profesores, motivo por el 55

60 cual se puede plantear un mecanismo especial para minimizar este tipo de empates. Como se puede observar en la Tabla 4, la función de calidad ésta no mostró cambios favorables en cuanto a su disminución. Sin embargo, el tiempo computacional se vió favorecido al reducir de 8 horas a sólo 1 hora, lo cual se encuentra dentro del umbral permitido por la Facultad de Psicología Esquemas Poblacionales El punto 3 de la metodología de desarrollo tiene como objetivo analizar más a fondo los beneficios que detallan cada una de las representaciones probadas en los 2 pasos anteriores. Debido a la característica del problema presentado a lo largo de este trabajo, se han desarrollado dos diferentes representaciones : la binaria y la decimal, motivo por el cual se optará por construir un algoritmo con más de una población. En el se tendrán dos poblaciones cada una correspondiente al tipo de representaciones antes mencionadas. Ambas poblaciones contarán con los mismos elementos y configuración de operadores, además, evolucionarán en paralelo, de esta forma cada determinado número de generaciones, cierto número de integrantes de ambas poblaciones pasarán a la otra población, es decir, cada población intercambiará individuos a su población vecina, el objetivo de combinar los espacios de búsqueda de ambas, permitiendo ampliar la diversidad de las soluciones. La Figura 47 muestra un ejemplo de esta propuesta: Figura 47 Algoritmo genético paralelo con dos poblaciones e intercambio de soluciones. 56

61 El algoritmo puede observarse en la Figura 48: Figura 48 Algoritmo genético con dos poblaciones Evaluación del desempeño del algoritmo Una de las ideas fundamentales de la implementación de un enfoque con dos poblaciones es lograr beneficiar a alguna de ellas mejorando su proceso de búsqueda dentro del espacio de soluciones existentes. Motivo por el cual se optó por graficar el comportamiento de cada población de manera individual. Las Figuras 49 y 50 muestran el resultado de la mejor combinación de parámetros para ambas poblaciones, a su vez, en la Tabla 8 se muestran las estadísticas para cada población: 57

62 Figura 49 Resultados del algoritmo genético con dos poblaciones, se muestra la población con representación binaria pasando 20 individuos cada 100 generaciones. Las gráficas representan el valor promedio de la función de calidad a lo largo de 1000 generaciones en un total de 25 ejecuciones. 58

63 Figura 50 Resultados del algoritmo genético con dos poblaciones. Se muestra la población con representación decimal pasando 20 individuos cada 100 generaciones. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones. Tipo de representación Máximo valor de la función de calidad Mínimo valor de la función de calidad Media Mediana Desviación estandar Tiempo total por corrida Binaria horas 30 minutos 25 Decimal segundos Tabla 8 Estadísticas de resultados obtenidos con el algoritmo genético con dos poblaciones durante 25 ejecuciones. Como se muestra en las Figuras 49 y 50 y en la Tabla 8, al ocupar la técnica de subpoblaciones se logra visualizar un claro beneficio por parte de ambas poblaciones. De hecho, la población con representación decimal es ampliamente favorecida al obtener una calidad inferior a los 25 empates. Por su parte, la 59

64 población binaria logra disminuir a cero los empates de profesores que son el mayor problema de la población decimal. Tomando en cuenta que en la población con representación decimal no se nota una clara convergencia, seria factible permitirle al algoritmo seguir desempeñándose para visualizar si logra obtener algún individuo con una mejor calidad. Sin embargo, el tiempo computacional en este algoritmo fue muy alto y completamente prohibitivo de acuerdo a lo permitido por parte de la Facultad de Psicología. De ahí que es necesario desarrollar un algoritmo que mejore el proceso búsqueda de soluciones existentes con un costo computacional permisible Algoritmo híbrido Con base en los resultados de los algoritmos anteriormente desarrollados, es posible enmarcar las debilidades generales presentadas por los mismos: 1. Costo y tiempo computacional elevado o prohibitivo. 2. Existencia de numerosos óptimos locales. 3. La deficiente exploración del espacio de búsqueda de soluciones por parte de los operadores. 4. El principal problema de la minimización de la función de calidad es debido a la restricción dura concerniente a los profesores. Una manera de atacar las debilidades antes mencionadas es el uso de algoritmos meméticos[42], que proponen un método de integración de búsqueda global con búsqueda local. La forma en que este tipo de algoritmo es capaz de contrarrestar los problemas presentados por los algoritmos anteriores está determinado por los siguientes factores: 1. Es factible el desarrollo de cualquier representación motivo por el cual se utilizará la representación decimal, ya que ofreció un costo y tiempo computacional menor con respecto a la representación binaria. 2. La búsqueda local puede ser enfocada a la ampliación de la explotación, lo cual, de acuerdo a lo observado en el esquema de dos poblaciones, fomenta la convergencia, evitando óptimos locales y permitiendo una minimización de la función de calidad. 3. Es posible orientar la búsqueda local para fomentar la eliminación de las restricciones más problemáticas denotadas por los enfoques anteriormente desarrollados. 60

65 Representación Debido a que el algoritmo con representación decimal requiere un tiempo computacional que se encuentra dentro de los márgenes contemplados por la Facultad de Psicología, se optará por usar esta representación en el algoritmo memético. Además, esta representación fue la que logro disminuir mas la función de calidad en el algoritmo de dos poblaciones Operadores Tomando como base las problemáticas encontradas en los algoritmos anteriores se propone la creación de dos operadores los cuales ampliarán la capacidad de búsqueda y apoyarán en la minimización de la función de calidad. Operador 1 Este operador se aplicará en intervalos regulares dentro del ciclo del algoritmo genético e intentará disminuir los empates de profesores y posteriormente los de aulas para las materias no basificadas. Esto debido a que estas experiencias educativas cuentan con una mayor movilidad al poder modificar tres de sus parámetros los cuales son hora, día y aula, mientras que las basificadas solo tienen la posibilidad de mover el parámetro de aula. La Figura 51 muestra el algoritmo y la Figura 53 A) una representación gráfica del funcionamiento de este operador: Figura 51 Algoritmo operador uno, population{i,j} representa el empate de profesores j de la solución population{i} y population{i,k} simboliza el empate k de aulas de la solución population{i}, no_empates_profesor alude a los empates encontrados para el profesor en population{i}, no_empates_aulas indica los empates de aulas hallados en population{i} 61

66 Operador 2 Este operador se efectuará al final del algoritmo genético e intentará disminuir los empates de aulas para toda la solución, es decir, a diferencia del primer operador, no discriminará entre materias basificadas y no basificadas, sin embargo, la manera en que buscará disminuir los empates es la misma. La Figura 52 muestra el algoritmo y la Figura 53 B) muestra un ejemplo gráfico del mismo: Figura 52 Algoritmo operador 2, population{i,j} representa el empate de aulas j de la solución population{i}, no_empates_aulas alude a los empates de aulas hallados en population{i} La Figura 53 muestra un ejemplo del proceso de ambos operadores y en la Figura 54 se muestra el algoritmo memético completo. Figura 53 Ejemplo de la funcionalidad de los operadores 62

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

Más detalles

Algoritmos Genéticos. Introduccion a la Robótica Inteligente

Algoritmos Genéticos. Introduccion a la Robótica Inteligente Algoritmos Genéticos Introduccion a la Robótica Inteligente 7 Marzo 2014 (IRIN) AGs 7/03/2014 1 / 43 Índice 1 Introducción 2 Algoritmos Genéticos 3 Algunos Fundamentos Matemáticos 4 Conclusiones (IRIN)

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau

Un algoritmo genético híbrido para resolver el EternityII. Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Un algoritmo genético híbrido para resolver el EternityII Rico, Martin; Ros, Rodrigo Directora: Prof. Dra. Irene Loiseau Temas Temas Introducción Eternity II Historia Descripción Demo Metaheurísticas Algoritmos

Más detalles

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS Administración Nacional de Universidad de la República Educación Pública Facultad de Ingenieria CF Res..0.07 Consejo Directivo Central Consejo Directivo Central Res..05.07 Res. 17.0.07 TECNÓLOGO EN INFORMÁTICA

Más detalles

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos

Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos MT 6 Desarrollo de un sistema capaz de optimizar rutas de entrega utilizando algoritmos genéticos Rosario Baltazar 1 Judith Esquivel Vázquez 2 Andrea Rada 3 Claudia Díaz 4 Resumen Durante los últimos 15

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J.

Probabilidades y Estadística (Computación) Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Ana M. Bianco y Elena J. Generación de Números Aleatorios Números elegidos al azar son útiles en diversas aplicaciones, entre las cuáles podemos mencionar: Simulación o métodos de Monte Carlo: se simula un proceso natural en forma

Más detalles

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid

Métodos evolutivos de Optimización. Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Métodos evolutivos de Optimización Prof. Cesar de Prada Dpto. Ingeneiria de Sitemas y Automática Universidad de Valladolid Indice Introducción Método de Montecarlo Algoritmos genéticos Tabú Search Simulated

Más detalles

ANÁLISIS DE VARIANZA EMPLEANDO EXCEL y WINSTATS

ANÁLISIS DE VARIANZA EMPLEANDO EXCEL y WINSTATS ANÁLISIS DE VARIANZA EMPLEANDO EXCEL y WINSTATS 1) INTRODUCCIÓN El análisis de varianza es una técnica que se puede utilizar para decidir si las medias de dos o más poblaciones son iguales. La prueba se

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software Hugo F. Arboleda Jiménez. MSc. Docente-Investigador, Facultad de Ingenierías, Universidad de San

Más detalles

Métodos Heurísticos en Inteligencia Artificial

Métodos Heurísticos en Inteligencia Artificial Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de

Más detalles

Conceptos articuladores para el desarrollo de los proyectos del programa de Estudio. 1. Formulación de la situación problema.

Conceptos articuladores para el desarrollo de los proyectos del programa de Estudio. 1. Formulación de la situación problema. Conceptos articuladores para el desarrollo de los proyectos del programa de Estudio. El Programa de Educación Tecnológica propone una metodología de trabajo para los alumnos y alumnas basada en el desarrollo

Más detalles

Medias Móviles: Señales para invertir en la Bolsa

Medias Móviles: Señales para invertir en la Bolsa www.gacetafinanciera.com Medias Móviles: Señales para invertir en la Bolsa Juan P López..www.futuros.com Las medias móviles continúan siendo una herramienta básica en lo que se refiere a determinar tendencias

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

1.1 EL ESTUDIO TÉCNICO

1.1 EL ESTUDIO TÉCNICO 1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar

Más detalles

Introducción a la Computación Evolutiva

Introducción a la Computación Evolutiva Introducción a la Computación Evolutiva Sección de Computación CINVESTAV-IPN Av. IPN No. 2508 Col. San Pedro Zacatenco México, D.F. 07300 email: ccoello@cs.cinvestav.mx http: //delta.cs.cinvestav.mx/~ccoello

Más detalles

INGENIERÍA DEL SOFTWARE

INGENIERÍA DEL SOFTWARE INGENIERÍA DEL SOFTWARE Sesión No. 2 Nombre: Procesos de ingeniería del software INGENIERÍA DEL SOFTWARE 1 Contextualización La ingeniería de software actualmente es muy importante, pues con los avances

Más detalles

Mantenimiento de Sistemas de Información

Mantenimiento de Sistemas de Información de Sistemas de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ACTIVIDAD MSI 1: REGISTRO DE LA PETICIÓN...4 Tarea MSI 1.1: Registro de la Petición... 4 Tarea MSI 1.2: Asignación de la Petición... 5 ACTIVIDAD

Más detalles

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000 1 INTRODUCCIÓN Dos de los objetivos más importantes en la revisión de la serie de normas ISO 9000 han sido: desarrollar un grupo simple de normas que sean igualmente aplicables a las pequeñas, a las medianas

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

CAPITULO I: PLANTEAMIENTO DEL PROBLEMA

CAPITULO I: PLANTEAMIENTO DEL PROBLEMA CAPITULO I: PLANTEAMIENTO DEL PROBLEMA 1.1. DESCRIPCIÓN DEL PROBLEMA En la actualidad, es importante la preparación profesional para la inserción al campo laboral ya que día a día las exigencias son mayores

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

MÁQUINA DE VECTORES DE SOPORTE

MÁQUINA DE VECTORES DE SOPORTE MÁQUINA DE VECTORES DE SOPORTE La teoría de las (SVM por su nombre en inglés Support Vector Machine) fue desarrollada por Vapnik basado en la idea de minimización del riesgo estructural (SRM). Algunas

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Capítulo 2. Metodologías de selección de personal

Capítulo 2. Metodologías de selección de personal Capítulo 2. Metodologías de selección de personal 2.1 Introducción La selección de personal es una actividad en la cual toda empresa invierte parte de sus recursos, debido a que es una tarea de vital importancia.

Más detalles

CAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y

CAPITULO I. Introducción. En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y CAPITULO I Introducción 1.1 Introducción En la actualidad, las empresas están tomando un papel activo en cuanto al uso de sistemas y redes computacionales. La tecnología ha ido evolucionando constantemente

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

SISTEMA DE PRODUCCION. Pág. 1

SISTEMA DE PRODUCCION. Pág. 1 SISTEMA DE PRODUCCION Pág. 1 Componentes del sistema de producción La fábrica Máquinas de producción Herramientas Equipo para el movimiento de material Equipo de inspección Sistemas de computadora Distribución

Más detalles

Interoperabilidad de Fieldbus

Interoperabilidad de Fieldbus 2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en www.plantwebuniversity.com. Fieldbus 201 Interoperabilidad de Fieldbus Generalidades Qué es interoperabilidad?

Más detalles

Manual de la aplicación de seguimiento docente en la UJI

Manual de la aplicación de seguimiento docente en la UJI Manual de la aplicación de seguimiento docente en la UJI Introducción El objetivo del presente documento es, fundamentalmente, informar al PDI sobre el funcionamiento de la aplicación informática de apoyo

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI Ricardo Köller Jemio Departamento de Ciencias Exactas e Ingeniería, Universidad

Más detalles

2.1 Clasificación de los sistemas de Producción.

2.1 Clasificación de los sistemas de Producción. ADMINISTRACION DE OPERACIONES Sesión 2: La Administración de operaciones II Objetivo específico 1: El alumno conocerá la clasificación de los sistemas de producción, los sistemas avanzados de manufactura

Más detalles

CAPÍTULO 1 INTRODUCCIÓN

CAPÍTULO 1 INTRODUCCIÓN CAPÍTULO 1 INTRODUCCIÓN 1.0 INTRODUCCIÓN El desarrollo económico en la actualidad, ha propiciado una gran expansión de los mercados que comienzan a verse saturados de bienes, y el problema fundamental

Más detalles

Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción. www.fundibeq.org

Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción. www.fundibeq.org DIAGRAMA MATRICIAL 1.- INTRODUCCIÓN Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción. Muestra su potencial, como herramienta indispensable para la planificación

Más detalles

Dirección de Planificación Universitaria Dirección de Planificación Universitaria 0819-07289 Panamá, Rep. de Panamá 0819-07289 Panamá, Rep.

Dirección de Planificación Universitaria Dirección de Planificación Universitaria 0819-07289 Panamá, Rep. de Panamá 0819-07289 Panamá, Rep. Comparación de las tasas de aprobación, reprobación, abandono y costo estudiante de dos cohortes en carreras de Licenciatura en Ingeniería en la Universidad Tecnológica de Panamá Luzmelia Bernal Caballero

Más detalles

Introducción a los Algoritmos Genéticos

Introducción a los Algoritmos Genéticos Introducción a los Algoritmos Genéticos Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 17 de octubre de 2005 c FJRP 2005 ccia IA Métodos de 8 < : 1 Introducción 9 =

Más detalles

activuspaper Text Mining and BI Abstract

activuspaper Text Mining and BI Abstract Text Mining and BI Abstract Los recientes avances en lingüística computacional, así como la tecnología de la información en general, permiten que la inserción de datos no estructurados en una infraestructura

Más detalles

Administración del conocimiento y aprendizaje organizacional.

Administración del conocimiento y aprendizaje organizacional. Capítulo 2 Administración del conocimiento y aprendizaje organizacional. 2.1 La Importancia Del Aprendizaje En Las Organizaciones El aprendizaje ha sido una de las grandes necesidades básicas del ser humano,

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

NIFBdM B-12 COMPENSACIÓN DE ACTIVOS FINANCIEROS Y PASIVOS FINANCIEROS

NIFBdM B-12 COMPENSACIÓN DE ACTIVOS FINANCIEROS Y PASIVOS FINANCIEROS NIFBdM B-12 COMPENSACIÓN DE ACTIVOS FINANCIEROS Y PASIVOS FINANCIEROS OBJETIVO Establecer los criterios de presentación y revelación relativos a la compensación de activos financieros y pasivos financieros

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

Más detalles

EL PROCESO DE BENCHMARKING

EL PROCESO DE BENCHMARKING EL PROCESO DE BENCHMARKING Michael J. Spendolini El benchmarking es un proceso sistemático y continuo para evaluar los productos, servicios y procesos de trabajo de las organizaciones que son reconocidas

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Metodologías de diseño de hardware

Metodologías de diseño de hardware Capítulo 2 Metodologías de diseño de hardware Las metodologías de diseño de hardware denominadas Top-Down, basadas en la utilización de lenguajes de descripción de hardware, han posibilitado la reducción

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

El Futuro de la Computación en la Industria de Generación Eléctrica

El Futuro de la Computación en la Industria de Generación Eléctrica El Futuro de la Computación en la Industria de Generación Eléctrica Retos a los que se enfrenta la industria de generación La industria de generación eléctrica se enfrenta a dos retos muy significativos

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

ADAPTACIÓN AL EEES DE LAS ASIGNATURAS DEL ÁREA DE ESTADISTICA E INVESTIGACIÓN OPERATIVA EN LA TITULACIÓN DE INGENIERÍA DE TELECOMUNICACIÓN

ADAPTACIÓN AL EEES DE LAS ASIGNATURAS DEL ÁREA DE ESTADISTICA E INVESTIGACIÓN OPERATIVA EN LA TITULACIÓN DE INGENIERÍA DE TELECOMUNICACIÓN MEMORIA DEL PROYECTO DE INNOVACIÓN EDUCATIVA ADAPTACIÓN AL EEES DE LAS ASIGNATURAS DEL ÁREA DE ESTADISTICA E INVESTIGACIÓN OPERATIVA EN LA TITULACIÓN DE INGENIERÍA DE TELECOMUNICACIÓN Participantes: Germán

Más detalles

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) OFERTAS TECNOLÓGICAS 1) GESTIÓN ORGANIZACIONAL Y LOGÍSTICA INTEGRADA: TÉCNICAS Y SISTEMAS DE INFORMACIÓN 2) GESTIÓN

Más detalles

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk Prácticas ITIL para un mejor flujo de trabajo en el helpdesk Se diferencia tres partes de gestión para mejorar la resolución de las incidencias de soporte técnico según el marco ITIL: 1. Gestión de Incidencias

Más detalles

2 EL DOCUMENTO DE ESPECIFICACIONES

2 EL DOCUMENTO DE ESPECIFICACIONES Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

RESULTADOS CONSULTA CIUDADANA VIRTUAL. Consulta Laboral en Línea

RESULTADOS CONSULTA CIUDADANA VIRTUAL. Consulta Laboral en Línea RESULTADOS CONSULTA CIUDADANA VIRTUAL Consulta Laboral en Línea Septiembre, 2015 1 Agradecimientos Ponemos a disposición de ustedes los resultados de la Consulta Ciudadana Virtual, efectuada en julio de

Más detalles

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A Usuario Propietario: Gerencia de Informática Usuario Cliente: Todos los usuarios de ANDA Elaborada por: Gerencia de Informática,

Más detalles

Parte I: Introducción

Parte I: Introducción Parte I: Introducción Introducción al Data Mining: su Aplicación a la Empresa Cursada 2007 POR QUÉ? Las empresas de todos los tamaños necesitan aprender de sus datos para crear una relación one-to-one

Más detalles

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...

Más detalles

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS Arranz de la Peña, Jorge Universidad Carlos III 100025106@alumnos.uc3m.es ALGORITMOS GENÉTICOS Parra Truyol, Antonio Universidad Carlos III 100023822@alumnos.uc3m.es En este documento se pretende analizar

Más detalles

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3.

GANTT, PERT y CPM. Figura 5.3: Carta GANTT 3. GANTT, PERT y CPM Características Conseguir una buena programación es un reto, no obstante es razonable y alcanzable. Ella debe tener el compromiso del equipo al completo, para lo cual se recomienda que

Más detalles

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones

Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Computación Evolutiva - Mutación: Cruza, Inversión y Mutación para Permutaciones Dr. Gregorio Toscano Pulido Laboratorio de Tecnologías de Información Centro de Investigación y de Estudios Avanzados del

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red. Comercio electrónico. (e-commerce) Las empresas que ya están utilizando la red para hacer comercio ven como están cambiando las relaciones de la empresa con sus clientes, sus empleados, sus colaboradores

Más detalles

Guía Notas Parciales. Intermedio

Guía Notas Parciales. Intermedio Guía Notas Parciales Intermedio ÍNDICE I. INTRODUCCIÓN 3 II. CREAR LA ESTRUCTURA DE NOTAS PARCIALES (OPCIÓN NOTAS NORMALES) 4 III. CREAR LA ESTRUCTURA DE NOTA FINAL (OPCIÓN NOTAS CALCULAS) 6 IV. INGRESAR

Más detalles

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk.

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk. 3 Qué es un Help Desk? 3 Cómo trabaja un Help Desk? 3 Cómo se mide el éxito de un Help Desk? 5 Funciones de los miembros del equipo del Help Desk. 5 Técnico y sus funciones. 5 Función de los líderes. 6

Más detalles

Un Modelo de Diseño Instruccional para la Elaboración de Cursos en Línea José E. Díaz Camacho y Thalía Ramírez Velázquez Universidad Veracruzana

Un Modelo de Diseño Instruccional para la Elaboración de Cursos en Línea José E. Díaz Camacho y Thalía Ramírez Velázquez Universidad Veracruzana Un Modelo de Diseño Instruccional para la Elaboración de Cursos en Línea José E. Díaz Camacho y Thalía Ramírez Velázquez Universidad Veracruzana Introducción. Para elaborar cursos en línea para la educación

Más detalles

SISTEMAS Y MANUALES DE LA CALIDAD

SISTEMAS Y MANUALES DE LA CALIDAD SISTEMAS Y MANUALES DE LA CALIDAD NORMATIVAS SOBRE SISTEMAS DE CALIDAD Introducción La experiencia de algunos sectores industriales que por las características particulares de sus productos tenían necesidad

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

-OPS/CEPIS/01.61(AIRE) Original: español Página 11 5. Estructura del programa de evaluación con personal externo

-OPS/CEPIS/01.61(AIRE) Original: español Página 11 5. Estructura del programa de evaluación con personal externo Página 11 5. Estructura del programa de evaluación con personal externo 5.1 Introducción Esta sección presenta la estructura del programa de evaluación con personal externo. Describe las funciones y responsabilidades

Más detalles

MUESTREO TIPOS DE MUESTREO

MUESTREO TIPOS DE MUESTREO MUESTREO En ocasiones en que no es posible o conveniente realizar un censo (analizar a todos los elementos de una población), se selecciona una muestra, entendiendo por tal una parte representativa de

Más detalles

Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Licenciatura en Computación

Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Licenciatura en Computación Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Licenciatura en Computación Informe Final de Pasantía: Desarrollo de un Sistema Web para la Administración de Asignaturas Electivas

Más detalles

GUÍA PARA LA INDUCCIÓN AL PUESTO DE TRABAJO

GUÍA PARA LA INDUCCIÓN AL PUESTO DE TRABAJO GUÍA PARA LA INDUCCIÓN AL PUESTO DE TRABAJO DIRECCION DE RECURSOS HUMANOS INDUCCIÓN AL PUESTO. La finalidad de la Inducción es brindar información general, amplia y suficiente al colaborador que le permita

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

http://www.informatizate.net

http://www.informatizate.net http://www.informatizate.net Metodologías De Desarrollo De Software María A. Mendoza Sanchez Ing. Informático - UNT Microsoft Certified Professional - MCP Analísta y Desarrolladora - TeamSoft Perú S.A.C.

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

Más detalles

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo

4. METODOLOGÍA. 4.1 Materiales. 4.1.1 Equipo 4. METODOLOGÍA 4.1 Materiales 4.1.1 Equipo Equipo de cómputo. Para el empleo del la metodología HAZOP se requiere de un equipo de cómputo con interfase Windows 98 o más reciente con procesador Pentium

Más detalles

ISO9001:2015. Todos los certificados emitidos en este periodo tienen una fecha de caducidad de 15 de septiembre de 2018.

ISO9001:2015. Todos los certificados emitidos en este periodo tienen una fecha de caducidad de 15 de septiembre de 2018. ISO9001:2015 PLAN DE TRANSICIÓN Tras la publicación de la nueva versión de la norma ISO9001 el pasado mes de septiembre se inicia un periodo de convivencia entre las dos versiones de la norma. Este periodo

Más detalles

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones Introducción Las Compañías aseguradoras determinan sus precios basadas en modelos y en información histórica

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Por otro lado podemos enunciar los objetivos más específicos de nuestro estudio:

Por otro lado podemos enunciar los objetivos más específicos de nuestro estudio: RESUMEN La empresa familiar es aquella cuya administración, dirección y control está en manos de una familia. Sus miembros toman decisiones estratégicas y operativas, asumiendo por completo la responsabilidad

Más detalles

1. INTRODUCCIÓN 1.1 INGENIERÍA

1. INTRODUCCIÓN 1.1 INGENIERÍA 1. INTRODUCCIÓN 1.1 INGENIERÍA Es difícil dar una explicación de ingeniería en pocas palabras, pues se puede decir que la ingeniería comenzó con el hombre mismo, pero se puede intentar dar un bosquejo

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 1 de 12 Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 3 Bienvenida. 4 Objetivos. 5 Interacciones de Negocios

Más detalles

Autor: Jorge Bustos. Germán Poo. Versión: 0.02. Programa Haz un Hacker! Página 1/6

Autor: Jorge Bustos. Germán Poo. Versión: 0.02. Programa Haz un Hacker! Página 1/6 Programa de formación de nuevos desarrolladores: Haz un Hacker! Autor: Jorge Bustos Versión: 0.02 Germán Poo Programa Haz un Hacker! Página 1/6 Índice 1 Introducción...3 2 Motivación del programa...4 3

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un

INSTRODUCCION. Toda organización puede mejorar su manera de trabajar, lo cual significa un INSTRODUCCION Toda organización puede mejorar su manera de trabajar, lo cual significa un incremento de sus clientes y gestionar el riesgo de la mejor manera posible, reduciendo costes y mejorando la calidad

Más detalles

<Generador de exámenes> Visión preliminar

<Generador de exámenes> Visión preliminar 1. Introducción Proyecto Final del curso Técnicas de Producción de Sistemas Visión preliminar Para la evaluación de algunos temas de las materias que se imparten en diferentes niveles,

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

PRIMAVERA RISK ANALYSIS

PRIMAVERA RISK ANALYSIS PRIMAVERA RISK ANALYSIS CARACTERÍSTICAS PRINCIPALES Guía de análisis de riesgo Revisión del programa Plantilla de riesgo instantáneo Asistente para registro de riesgo Registro de riesgo Análisis de riesgo

Más detalles

METODOLOGÍA PARA VINCULAR LA EVALUACIÓN CON LOS OBJETIVOS EN UN CURSO DE PROGRAMACIÓN

METODOLOGÍA PARA VINCULAR LA EVALUACIÓN CON LOS OBJETIVOS EN UN CURSO DE PROGRAMACIÓN METODOLOGÍA PARA VINCULAR LA EVALUACIÓN CON LOS OBJETIVOS EN UN CURSO DE PROGRAMACIÓN Andrés Soto Villaverde Centro de Tecnologías de la Información, Universidad Autónoma del Carmen, México 1. INTRODUCCIÓN

Más detalles

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado.

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado. DIAGRAMA DE AÁRBOL 1.- INTRODUCCIÓN Este documento describe el proceso de construcción de un Diagrama de Árbol, mediante el cual se dispone de una metodología simple y sistemática para la identificación

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles