Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. ALGORITMO GENÉTICO SIMPLE EN EL PROCESAMIENTO DE LENGUAJE NATURAL Resumen-- Este trabajo plantea la aplicación de algoritmos genéticos a la obtención de palabras de entrada y de salida que representan procesos no lineales en los que aparecen términos producto, describiéndose el método y las ventajas de su utilización mediante simulaciones realizadas en MATLAB. Lo cual se aplica al procesamiento de lenguaje natural. Palabras claves-- Algoritmos Genéticos, Inteligencia Artificial. DORA MARÍA CALDERÓN NEPAMUCENO Profesora Investigadora EFRÉN GONZÁLEZ GÓMEZ Profesor Investigador DORICELA GUTIÉRREZ CRUZ Profesora WALTER CHARLES BAUTISTA TRACONIZ Estudiante Licenciatura en Ingeniería de Sistemas Inteligentes. Universidad Autónoma del Estado de México Unidad Académica Profesional Nezahualcóyotl [email protected] 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. Congreso Internacional de Investigación Tijuana. 1. Revista Aristas: Investigación Básica y Aplicada. INTRODUCCIÓN Un algoritmo genético es un método que se utiliza para resolver problemas de búsqueda y optimización. Se basa en la genética natural y en la teoría de la evolución de Darwin, utilizando la información histórica para encontrar nuevos puntos de búsqueda de una solución óptima a problemas para los que no existe un método preciso. [5] Los algoritmos genéticos son una de las principales herramientas tecnológicas de la inteligencia artificial y requieren una función-objetivo para llevar a cabo la búsqueda de soluciones, intentando encontrar aquella que optimice dicha función. Una vez que el algoritmo genético obtiene una población y en base a la función objetivo aplicada a cada uno de los individuos, se seleccionan los mejores y se combinan para generar nuevas poblaciones; este proceso se repite hasta que se cumplan los criterios de paro. [1] Funcionamiento básico de un algoritmo genético A continuación se muestra el funcionamiento básico de un algoritmo genético, considerando que previamente es necesario determinar una función objetivo del problema de optimización y especificar la manera de codificar las posibles soluciones. Generación de la población inicial Normalmente l algoritmo genético genera de forma aleatoria una población para el primer ciclo, formada por un conjunto de cromosomas (individuos), o cadenas de bits a los cuales se les aplica la función objetivo. Evaluación de los cromosomas La evaluación se realiza calculando la función objetivo para cada uno de los cromosomas que forman la población actual. De esta forma se determina la adaptación de cada individuo de la población actual. Las funciones para la evaluación de la aptitud son específicas a cada problema. Selección Consiste en seleccionar los cromosomas que serán cruzados en la siguiente generación. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados. Existen diferentes métodos de selección que pueden utilizar los algoritmos genéticos. A continuación se describen brevemente dos de ellos: Método de la ruleta o selección proporcional: Este método consiste en crear una ruleta en la que cada cromosoma tiene asignada una fracción proporcional a su aptitud. A los individuos más aptos se les asigna un área mayor de la ruleta, para que sean seleccionados más veces que los menos aptos. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. Método del torneo: En este método se eligen subgrupos de individuos de la población y después se hace competir a los individuos que integran cada subgrupo. Se elige el individuo de cada subgrupo que tenga el valor de aptitud más alto. [2][3] Cruza Es el intercambio de material genético entre dos cromosomas a la vez para generar dos descendientes donde se combinan las características de ambos cromosomas padres. Una forma común de cruza consiste en establecer un punto de intercambio en un lugar aleatorio del cromosoma de los dos individuos, y uno de los individuos contribuye todo su código anterior a ese punto y el otro individuo contribuye todo su código a partir de ese punto para producir una descendencia. Mutación Al igual que una mutación en los seres vivos cambia un gen por otro, una mutación en un algoritmo genético también causa pequeñas alteraciones en puntos determinados del código de un individuo. Por último, se comprueba si alguno de los individuos disponibles satisface los criterios establecidos y se puede considerar como solución al problema. El algoritmo genético se detiene cuando se cumpla un número determinado de generaciones o cuando no haya cambios en la población.[4] 2. DESARROLLO El programa inicia pidiendo la palabra objetivo y la palabra inicial, independientemente de sus tamaños, ya que la palabra inicial se ajustara a la palabra objetivo. Si la palabra inicial es mayor, el programa la recorta al tamaño de la palabra objetivo, y si es menor, obtiene letras del abecedario aleatoriamente para completar el tamaño. Para obtener las letras adicionales se utiliza una función random sobre el abecedario, y de este modo se genera las letras necesarias. La conversión a binario se hace utilizando una función llamado Bin, donde el resultado lo guarda en un arreglo para su posterior extracción. El siguiente paso consiste en hacer una selección y competencia de individuos, es decir, de los valores de 0 y 1 de las palabras ya convertidas, se toma el mayor y se asigna como el ganador. Posteriormente se inicia el proceso de cruce entre el individuo ganador y perdedor, para extraer de ellos los genes que generaran al nuevo individuo. Al nuevo individuo se le aplica el proceso de mutación para mejorarlo, el grado de mutación depende de la necesidad requerida, en nuestra caso es de 40%, lo que indica que el nuevo individuo es totalmente distinto al individuo anterior generado. El nuevo individuo pasa a ser nuestra nueva palabra inicial, y se le aplica nuevamente el algoritmo genético, para extraer las características necesarias, y de esta forma se repite el proceso hasta que se logre el objetivo que es encontrar la palabra final. ¿Qué se requiere para aplicar un algoritmo genético? 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 146 Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. Esto conlleva la ejecución de un ciclo compuesta de diferentes etapas. A continuación se presenta un esquema con el correspondiente ciclo: El ciclo está compuesto por los siguientes pasos: 1. Generar población 2. Evaluar adecuación 3. Los mejores se reproducen, los peores se extinguen 4. Aplicar mutaciones 5. Actualizar población 6. Volver a etapa 2 EJEMPLOS Ejemplo 1: Palabra Playa y océano desarrolla, sobre todo el procesamiento de lenguaje natural. Esto parece trascender a los mercados financieros, donde se viven cambios a consecuencia de las decisiones humanas. El hecho de pensar que los algoritmos computacionales puedan tener una base en la evolución de los organismos puede ser sorprendente, sin embargo el hecho de que los Algoritmos Genéticos puedan ser aplicados a muchas áreas donde los conocimientos computacionales actuales como las búsquedas aleatorias o graduales no han tenido resultados óptimos nos conduce a pensar que los Algoritmos Genéticos constituyen realmente una poderosa herramienta de búsqueda heurística con la habilidad de explotar y aprender de sus dominios. Lo Algoritmos Genéticos son relativamente fáciles de entender e implementar, y su principal ventaja y desventaja a la vez es su robustez, si posee una mala implementación, el Algoritmos Genéticos seguirá corriendo y tarde o temprano encotrará el problema o encotrará un óptimo local. Dejemos que la naturaleza sea nuestra guía, dado que la mayoría de los problemas a los que se van a aplicar los algoritmos genéticos son de naturaleza no lineal, es mejor actuar como lo hace la naturaleza, aunque intuitivamente pueda parecer la forma menos acertada. Por ultimo dejemos que la naturaleza actúe de forma distribuida, por tanto, se debe de minimizar la necesidad de operadores que "vean" a la población. Ello permite, además, una fácil paralelización del algoritmo genético. Por ejemplo, en vez de comparar el rendimiento de un individuo con todos los demás, se puede comparar sólo con los vecinos, es decir, aquellos que estén, de alguna forma, situados cerca de él. 4. Fuente: Elaboración propia. Ejemplo 2. Fuente: Elaboración propia. 3. CONCLUSIONES Los algoritmos genéticos son una herramienta útil para obtener soluciones de problemas que requieren la optimización y cuyas posibles respuestas se encuentran dentro de un universo limitado. La vida es un proceso de constante evolución que implica transformaciones ordenadas y no-ordenadas de los sistemas en donde se ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. REFERENCIAS Koza John R., Genetic Programming On the Programming of Computers by Means of Natural Selection. Editorial MIT Press, 1998. Bramer Max, Devedzic Vlandan, Artificial Intelligence Applications and Innovations. Editorial Kluwer Academic,2004. Coppin Ben, Artificial Intelligence Illuminated. Sudbury, MA. Editorial Jones and Bartlett, 2004. Russell Stuart y Norving Peter. Inteligencia Artificial: Un enfoque moderno. Editorial Prentice Hall, 2004. Lakhmi C., Martin N. M., Fusion of Neural Networks, Fuzzy Systems and Genetic Algorithms: Industrial Applications.Editorial CRC Press, 1998. Dora María Calderón Nepamuceno: Doctora en Ciencias en la especialidad en Control Automático. Profesora Investigadora de tiempo completo en la Universidad Autónoma del Estado de México – Unidad Académica Profesional Nezahualcóyotl. Áreas de interés: Ingeniería de software e Inteligencias Artificial (Sistemas Basados en conocimiento). 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. Efrén González Gómez. Maestro en Ciencias en Sistemas Computacionales. Profesor Investigador de tiempo completo en la Universidad Autónoma del Estado de México – Unidad Académica Profesional Nezahualcóyotl. Áreas de interés: Reconocimiento de Patrones e Inteligencias Artificial ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. Doricela Gutiérrez Cruz. Doctora en Sistemas. Profesor de tiempo completo en la Universidad Autónoma del Estado de México – Unidad Académica Profesional Nezahualcóyotl. Áreas de interés: Ingeniería de software e Inteligencias Artificial (Sistemas Basados en conocimiento). 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México.